PluginProbe
Elementor Website Builder – more than just a page builder / 3.18.3
Elementor Website Builder – more than just a page builder v3.18.3
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 4.0.7 All 451 releases
elementor / assets / js / ai-admin.js

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

41,395 lines 1.5 MB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.18.0 - 20-12-2023 */
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-search.js":
2277 /*!******************************************************************!*\
2278 !*** ../modules/ai/assets/js/editor/components/prompt-search.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 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2287 Object.defineProperty(exports, "__esModule", ({
2288 value: true
2289 }));
2290 exports["default"] = void 0;
2291 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2292 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2293 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2294 var _searchField = _interopRequireDefault(__webpack_require__(/*! ./ui/search-field */ "../modules/ai/assets/js/editor/components/ui/search-field.js"));
2295 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); }
2296 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; }
2297 var PromptSearch = (0, _react.forwardRef)(function (props, ref) {
2298 return /*#__PURE__*/_react.default.createElement(_searchField.default, (0, _extends2.default)({
2299 name: "prompt",
2300 placeholder: (0, _i18n.__)('Describe the text and tone you want to use', 'elementor') + '...'
2301 }, props, {
2302 ref: ref
2303 }));
2304 });
2305 var _default = PromptSearch;
2306 exports["default"] = _default;
2307
2308 /***/ }),
2309
2310 /***/ "../modules/ai/assets/js/editor/components/prompt-suggestions.js":
2311 /*!***********************************************************************!*\
2312 !*** ../modules/ai/assets/js/editor/components/prompt-suggestions.js ***!
2313 \***********************************************************************/
2314 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2315
2316 "use strict";
2317
2318
2319 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2320 Object.defineProperty(exports, "__esModule", ({
2321 value: true
2322 }));
2323 exports["default"] = void 0;
2324 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2325 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2326 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2327 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2328 var PromptSuggestions = function PromptSuggestions(props) {
2329 var _props$suggestions;
2330 return /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2331 variant: "subtitle1",
2332 color: "text.secondary"
2333 }, (0, _i18n.__)('Suggested prompts', 'elementor') + ':'), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2334 direction: "column",
2335 alignItems: "flex-start",
2336 gap: 1,
2337 sx: {
2338 my: 1
2339 }
2340 }, (_props$suggestions = props.suggestions) === null || _props$suggestions === void 0 ? void 0 : _props$suggestions.map(function (option, index) {
2341 var _props$suggestionFilt;
2342 return /*#__PURE__*/_react.default.createElement(_ui.Chip, {
2343 key: index,
2344 variant: "outlined",
2345 size: "large",
2346 color: "secondary",
2347 label: ((_props$suggestionFilt = props.suggestionFilter) === null || _props$suggestionFilt === void 0 ? void 0 : _props$suggestionFilt.call(props, option)) || option,
2348 onClick: function onClick() {
2349 return props.onSelect(option);
2350 }
2351 });
2352 })));
2353 };
2354 PromptSuggestions.propTypes = {
2355 suggestions: _propTypes.default.arrayOf(_propTypes.default.string),
2356 onSelect: _propTypes.default.func.isRequired,
2357 suggestionFilter: _propTypes.default.func
2358 };
2359 var _default = PromptSuggestions;
2360 exports["default"] = _default;
2361
2362 /***/ }),
2363
2364 /***/ "../modules/ai/assets/js/editor/components/textarea.js":
2365 /*!*************************************************************!*\
2366 !*** ../modules/ai/assets/js/editor/components/textarea.js ***!
2367 \*************************************************************/
2368 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2369
2370 "use strict";
2371
2372
2373 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2374 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2375 Object.defineProperty(exports, "__esModule", ({
2376 value: true
2377 }));
2378 exports["default"] = void 0;
2379 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2380 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2381 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2382 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2383 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); }
2384 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; }
2385 var Textarea = (0, _react.forwardRef)(function (props, ref) {
2386 return /*#__PURE__*/_react.default.createElement(_ui.TextField, (0, _extends2.default)({
2387 inputRef: ref,
2388 multiline: true,
2389 minRows: 4,
2390 maxRows: 20,
2391 color: "secondary"
2392 }, props));
2393 });
2394 Textarea.propTypes = {
2395 value: _propTypes.default.string,
2396 onChange: _propTypes.default.func,
2397 helperText: _propTypes.default.string
2398 };
2399 var _default = Textarea;
2400 exports["default"] = _default;
2401
2402 /***/ }),
2403
2404 /***/ "../modules/ai/assets/js/editor/components/tooltip.js":
2405 /*!************************************************************!*\
2406 !*** ../modules/ai/assets/js/editor/components/tooltip.js ***!
2407 \************************************************************/
2408 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2409
2410 "use strict";
2411
2412
2413 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2414 Object.defineProperty(exports, "__esModule", ({
2415 value: true
2416 }));
2417 exports["default"] = void 0;
2418 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2419 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2420 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2421 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2422 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2423 var _excluded = ["children"];
2424 var Tooltip = function Tooltip(_ref) {
2425 var children = _ref.children,
2426 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2427 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
2428 componentsProps: {
2429 tooltip: {
2430 sx: {
2431 '&.MuiTooltip-tooltip[class*="MuiTooltip-tooltipPlacement"]': {
2432 m: 0,
2433 fontSize: '10px',
2434 fontWeight: 500,
2435 lineHeight: '1.4em'
2436 },
2437 py: 0.5,
2438 px: 1
2439 }
2440 }
2441 }
2442 }, props), children);
2443 };
2444 Tooltip.propTypes = {
2445 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
2446 };
2447 var _default = Tooltip;
2448 exports["default"] = _default;
2449
2450 /***/ }),
2451
2452 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js":
2453 /*!************************************************************************!*\
2454 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js ***!
2455 \************************************************************************/
2456 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2457
2458 "use strict";
2459
2460
2461 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2462 Object.defineProperty(exports, "__esModule", ({
2463 value: true
2464 }));
2465 exports["default"] = void 0;
2466 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2467 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2468 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2469 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2470 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2471 var _excluded = ["children"];
2472 var OverlayBarText = function OverlayBarText(_ref) {
2473 var children = _ref.children,
2474 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2475 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({
2476 variant: "caption",
2477 color: "common.white"
2478 }, props), children);
2479 };
2480 OverlayBarText.propTypes = {
2481 children: _propTypes.default.node
2482 };
2483 var _default = OverlayBarText;
2484 exports["default"] = _default;
2485
2486 /***/ }),
2487
2488 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js":
2489 /*!*******************************************************************!*\
2490 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar.js ***!
2491 \*******************************************************************/
2492 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2493
2494 "use strict";
2495
2496
2497 Object.defineProperty(exports, "__esModule", ({
2498 value: true
2499 }));
2500 exports["default"] = void 0;
2501 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2502 var OverlayBar = (0, _ui.styled)(_ui.Stack)(function (_ref) {
2503 var theme = _ref.theme,
2504 position = _ref.position;
2505 var style = {
2506 width: '100%',
2507 position: 'absolute',
2508 left: 0,
2509 padding: theme.spacing(2.5)
2510 };
2511 if ('top' === position) {
2512 style.top = 0;
2513 } else if ('bottom' === position) {
2514 style.bottom = 0;
2515 }
2516 return style;
2517 });
2518 var _default = OverlayBar;
2519 exports["default"] = _default;
2520
2521 /***/ }),
2522
2523 /***/ "../modules/ai/assets/js/editor/components/ui/overlay.js":
2524 /*!***************************************************************!*\
2525 !*** ../modules/ai/assets/js/editor/components/ui/overlay.js ***!
2526 \***************************************************************/
2527 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2528
2529 "use strict";
2530
2531
2532 Object.defineProperty(exports, "__esModule", ({
2533 value: true
2534 }));
2535 exports["default"] = void 0;
2536 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2537 var Overlay = (0, _ui.styled)(_ui.Box)(function (_ref) {
2538 var theme = _ref.theme;
2539 return {
2540 width: '100%',
2541 height: '100%',
2542 position: 'absolute',
2543 backgroundColor: 'rgba(0,0,0,0.5)',
2544 transition: "opacity ".concat(theme.transitions.duration.short, "ms ").concat(theme.transitions.easing.easeInOut),
2545 opacity: 0,
2546 '&:hover': {
2547 opacity: 1
2548 }
2549 };
2550 });
2551 var _default = Overlay;
2552 exports["default"] = _default;
2553
2554 /***/ }),
2555
2556 /***/ "../modules/ai/assets/js/editor/components/ui/panel.js":
2557 /*!*************************************************************!*\
2558 !*** ../modules/ai/assets/js/editor/components/ui/panel.js ***!
2559 \*************************************************************/
2560 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2561
2562 "use strict";
2563
2564
2565 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2566 Object.defineProperty(exports, "__esModule", ({
2567 value: true
2568 }));
2569 exports["default"] = void 0;
2570 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2571 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2572 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2573 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2574 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2575 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2576 var _excluded = ["sx"];
2577 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; }
2578 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; }
2579 var Panel = function Panel(_ref) {
2580 var _ref$sx = _ref.sx,
2581 sx = _ref$sx === void 0 ? {} : _ref$sx,
2582 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2583 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
2584 sx: _objectSpread({
2585 p: 4,
2586 width: 360,
2587 flexShrink: 0,
2588 height: '100%',
2589 overflowY: 'auto'
2590 }, sx)
2591 }, props), props.children), /*#__PURE__*/_react.default.createElement(_ui.Divider, {
2592 orientation: "vertical"
2593 }));
2594 };
2595 Panel.propTypes = {
2596 children: _propTypes.default.node,
2597 sx: _propTypes.default.object
2598 };
2599 var _default = Panel;
2600 exports["default"] = _default;
2601
2602 /***/ }),
2603
2604 /***/ "../modules/ai/assets/js/editor/components/ui/search-field.js":
2605 /*!********************************************************************!*\
2606 !*** ../modules/ai/assets/js/editor/components/ui/search-field.js ***!
2607 \********************************************************************/
2608 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2609
2610 "use strict";
2611
2612
2613 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2614 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2615 Object.defineProperty(exports, "__esModule", ({
2616 value: true
2617 }));
2618 exports["default"] = void 0;
2619 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2620 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2621 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2622 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2623 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2624 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); }
2625 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; }
2626 // Customization for the WP admin global CSS.
2627 var StyledTextField = (0, _ui.styled)(_ui.TextField)(function () {
2628 return {
2629 '.wp-admin & .MuiInputBase-input, & .MuiInputBase-input:focus': {
2630 backgroundColor: 'initial',
2631 boxShadow: 'none',
2632 border: 0,
2633 color: 'inherit',
2634 outline: 0,
2635 /**
2636 * TODO:
2637 * Find a better solution to get the component padding value dynamically or fix the global CSS override.
2638 * These values are taken from Material UI's source code (the left padding reset was added to match the component style).
2639 */
2640 padding: '16.5px 14px 16.5px 0',
2641 '&.MuiInputBase-inputSizeSmall': {
2642 padding: '8.5px 14px 8.5px 0'
2643 }
2644 }
2645 };
2646 });
2647 var SearchField = (0, _react.forwardRef)(function (props, ref) {
2648 return /*#__PURE__*/_react.default.createElement(StyledTextField
2649 // eslint-disable-next-line jsx-a11y/no-autofocus
2650 , (0, _extends2.default)({
2651 autoFocus: true,
2652 fullWidth: true,
2653 required: true,
2654 size: "small",
2655 color: "secondary",
2656 InputProps: {
2657 autoComplete: 'off',
2658 startAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
2659 position: "start"
2660 }, /*#__PURE__*/_react.default.createElement(_icons.SearchIcon, null))
2661 },
2662 placeholder: props.placeholder,
2663 name: props.name,
2664 value: props.value,
2665 onChange: props.onChange
2666 }, props, {
2667 inputRef: ref
2668 }));
2669 });
2670 SearchField.propTypes = {
2671 placeholder: _propTypes.default.string,
2672 name: _propTypes.default.string,
2673 value: _propTypes.default.string,
2674 onChange: _propTypes.default.func
2675 };
2676 var _default = SearchField;
2677 exports["default"] = _default;
2678
2679 /***/ }),
2680
2681 /***/ "../modules/ai/assets/js/editor/components/upgrade-banner.js":
2682 /*!*******************************************************************!*\
2683 !*** ../modules/ai/assets/js/editor/components/upgrade-banner.js ***!
2684 \*******************************************************************/
2685 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2686
2687 "use strict";
2688 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2689 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2690
2691
2692 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2693 Object.defineProperty(exports, "__esModule", ({
2694 value: true
2695 }));
2696 exports["default"] = void 0;
2697 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2698 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2699 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2700 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2701 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2702 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2703 var _excluded = ["onClose", "sx"];
2704 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; }
2705 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; }
2706 var BannerActions = function BannerActions(_ref) {
2707 var onClose = _ref.onClose;
2708 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2709 direction: "row",
2710 alignItems: "center",
2711 gap: 1
2712 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
2713 size: "small",
2714 color: "inherit",
2715 variant: "outlined",
2716 onClick: function onClick() {
2717 return window.open('https://go.elementor.com/ai-banner-free-upgrade/', '_blank');
2718 }
2719 }, __('Upgrade', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2720 color: "inherit",
2721 size: "small",
2722 onClick: onClose
2723 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)));
2724 };
2725 BannerActions.propTypes = {
2726 onClose: PropTypes.func
2727 };
2728 var UpgradeBanner = function UpgradeBanner(_ref2) {
2729 var onClose = _ref2.onClose,
2730 _ref2$sx = _ref2.sx,
2731 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
2732 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
2733 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
2734 icon: false,
2735 action: /*#__PURE__*/_react.default.createElement(BannerActions, {
2736 onClose: onClose
2737 })
2738 }, props, {
2739 sx: _objectSpread({
2740 backgroundColor: 'accent.main',
2741 color: 'accent.contrastText'
2742 }, sx)
2743 }), __('You’re using a limited license. Get maximum access to Elementor AI.', 'elementor'));
2744 };
2745 UpgradeBanner.propTypes = {
2746 onClose: PropTypes.func,
2747 sx: PropTypes.object
2748 };
2749 var _default = UpgradeBanner;
2750 exports["default"] = _default;
2751
2752 /***/ }),
2753
2754 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
2755 /*!*****************************************************************!*\
2756 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
2757 \*****************************************************************/
2758 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2759
2760 "use strict";
2761
2762
2763 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2764 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2765 Object.defineProperty(exports, "__esModule", ({
2766 value: true
2767 }));
2768 exports["default"] = void 0;
2769 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2770 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2771 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2772 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2773 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2774 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2775 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); }
2776 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; }
2777 var popoverId = 'e-ai-upgrade-popover';
2778 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
2779 var theme = _ref.theme;
2780 return {
2781 position: 'relative',
2782 '[data-popper-placement="top"] &': {
2783 marginBottom: theme.spacing(2.5)
2784 },
2785 '[data-popper-placement="bottom"] &': {
2786 marginTop: theme.spacing(2.5)
2787 },
2788 padding: theme.spacing(3),
2789 boxShadow: theme.shadows[4],
2790 zIndex: '9999'
2791 };
2792 });
2793 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
2794 var theme = _ref2.theme;
2795 return {
2796 width: theme.spacing(5),
2797 height: theme.spacing(2.5),
2798 position: 'absolute',
2799 overflow: 'hidden',
2800 // Override Popper inline styles.
2801 left: '50% !important',
2802 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
2803 '[data-popper-placement="top"] &': {
2804 top: '100%'
2805 },
2806 '[data-popper-placement="bottom"] &': {
2807 '--rotate': '180deg',
2808 top: "calc(".concat(theme.spacing(2.5), " * -1)")
2809 },
2810 '&::after': {
2811 backgroundColor: theme.palette.background.paper,
2812 content: '""',
2813 display: 'block',
2814 position: 'absolute',
2815 width: theme.spacing(2.5),
2816 height: theme.spacing(2.5),
2817 top: 0,
2818 left: '50%',
2819 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
2820 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
2821 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
2822 }
2823 };
2824 });
2825 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')];
2826 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
2827 return {
2828 '& .MuiChip-label': {
2829 lineHeight: 1.5
2830 },
2831 '& .MuiSvgIcon-root.MuiChip-icon': {
2832 fontSize: '1.25rem'
2833 }
2834 };
2835 });
2836 var UpgradeChip = function UpgradeChip(_ref3) {
2837 var _ref3$hasSubscription = _ref3.hasSubscription,
2838 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
2839 _ref3$usagePercentage = _ref3.usagePercentage,
2840 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
2841 var _useState = (0, _react.useState)(false),
2842 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2843 isPopoverOpen = _useState2[0],
2844 setIsPopoverOpen = _useState2[1];
2845 var anchorEl = (0, _react.useRef)(null);
2846 var arrowEl = (0, _react.useRef)(null);
2847 var showPopover = function showPopover() {
2848 return setIsPopoverOpen(true);
2849 };
2850 var hidePopover = function hidePopover() {
2851 return setIsPopoverOpen(false);
2852 };
2853 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
2854 if (hasSubscription) {
2855 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
2856 }
2857 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
2858 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2859 component: "span",
2860 "aria-owns": isPopoverOpen ? popoverId : undefined,
2861 "aria-haspopup": "true",
2862 onMouseEnter: showPopover,
2863 onMouseLeave: hidePopover,
2864 ref: anchorEl,
2865 display: "flex",
2866 alignItems: "center"
2867 }, /*#__PURE__*/_react.default.createElement(Chip, {
2868 color: "accent",
2869 label: (0, _i18n.__)('Upgrade', 'elementor'),
2870 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2871 size: "small"
2872 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
2873 open: isPopoverOpen,
2874 anchorEl: anchorEl.current,
2875 sx: {
2876 zIndex: '9999',
2877 maxWidth: 300
2878 },
2879 modifiers: [{
2880 name: 'arrow',
2881 enabled: true,
2882 options: {
2883 element: arrowEl.current
2884 }
2885 }]
2886 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
2887 ref: arrowEl
2888 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2889 variant: "h5",
2890 color: "text.primary"
2891 }, (0, _i18n.__)('Maximize Your Access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
2892 sx: {
2893 mb: 1
2894 }
2895 }, upgradeBullets.map(function (bullet, index) {
2896 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
2897 key: index,
2898 disableGutters: true,
2899 sx: {
2900 alignItems: 'flex-start'
2901 }
2902 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
2903 sx: {
2904 m: 0
2905 }
2906 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2907 variant: "body2"
2908 }, bullet)));
2909 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2910 variant: "contained",
2911 color: "accent",
2912 size: "small",
2913 href: actionUrl,
2914 target: "_blank",
2915 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2916 sx: {
2917 '&:hover': {
2918 color: 'accent.contrastText'
2919 }
2920 }
2921 }, actionLabel))));
2922 };
2923 var _default = UpgradeChip;
2924 exports["default"] = _default;
2925 UpgradeChip.propTypes = {
2926 hasSubscription: _propTypes.default.bool,
2927 usagePercentage: _propTypes.default.number
2928 };
2929
2930 /***/ }),
2931
2932 /***/ "../modules/ai/assets/js/editor/components/usage-limit-alert.js":
2933 /*!**********************************************************************!*\
2934 !*** ../modules/ai/assets/js/editor/components/usage-limit-alert.js ***!
2935 \**********************************************************************/
2936 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2937
2938 "use strict";
2939 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2940 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2941
2942
2943 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2944 Object.defineProperty(exports, "__esModule", ({
2945 value: true
2946 }));
2947 exports["default"] = void 0;
2948 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2949 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2950 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2951 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2952 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2953 var _excluded = ["onClose", "usagePercentage", "hasSubscription"];
2954 var _title, _url, _title2, _url2;
2955 var KEY_SUBSCRIPTION = 'subscription';
2956 var KEY_NO_SUBSCRIPTION = 'noSubscription';
2957 var alertConfigs = [{
2958 threshold: 95,
2959 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),
2960 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),
2961 color: 'error'
2962 }, {
2963 threshold: 80,
2964 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),
2965 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),
2966 color: 'warning'
2967 }];
2968 var UpgradeButton = function UpgradeButton(props) {
2969 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
2970 color: "inherit"
2971 }, props), __('Upgrade', 'elementor'));
2972 };
2973 var UsageLimitAlert = function UsageLimitAlert(_ref) {
2974 var onClose = _ref.onClose,
2975 usagePercentage = _ref.usagePercentage,
2976 hasSubscription = _ref.hasSubscription,
2977 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2978 var config = alertConfigs.find(function (_ref2) {
2979 var threshold = _ref2.threshold;
2980 return usagePercentage >= threshold;
2981 });
2982 if (!config) {
2983 return null;
2984 }
2985 var subscriptionType = hasSubscription ? KEY_SUBSCRIPTION : KEY_NO_SUBSCRIPTION;
2986 var title = config.title,
2987 url = config.url,
2988 color = config.color;
2989 var handleUpgradeClick = function handleUpgradeClick() {
2990 return window.open(url[subscriptionType], '_blank');
2991 };
2992 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
2993 severity: "warning",
2994 action: /*#__PURE__*/_react.default.createElement(UpgradeButton, {
2995 onClick: handleUpgradeClick
2996 }),
2997 color: color
2998 }, props), /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, title[subscriptionType]), __('Get maximum access.', 'elementor'));
2999 };
3000 UsageLimitAlert.propTypes = {
3001 onClose: PropTypes.func,
3002 usagePercentage: PropTypes.number,
3003 hasSubscription: PropTypes.bool
3004 };
3005 var _default = UsageLimitAlert;
3006 exports["default"] = _default;
3007
3008 /***/ }),
3009
3010 /***/ "../modules/ai/assets/js/editor/components/usage-messages.js":
3011 /*!*******************************************************************!*\
3012 !*** ../modules/ai/assets/js/editor/components/usage-messages.js ***!
3013 \*******************************************************************/
3014 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3015
3016 "use strict";
3017 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
3018
3019
3020 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3021 Object.defineProperty(exports, "__esModule", ({
3022 value: true
3023 }));
3024 exports["default"] = void 0;
3025 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3026 var _upgradeBanner = _interopRequireDefault(__webpack_require__(/*! ./upgrade-banner */ "../modules/ai/assets/js/editor/components/upgrade-banner.js"));
3027 var _usageLimitAlert = _interopRequireDefault(__webpack_require__(/*! ./usage-limit-alert */ "../modules/ai/assets/js/editor/components/usage-limit-alert.js"));
3028 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
3029 var UsageMessages = function UsageMessages(_ref) {
3030 var hasSubscription = _ref.hasSubscription,
3031 usagePercentage = _ref.usagePercentage,
3032 sx = _ref.sx;
3033 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
3034 usagePercentage: usagePercentage,
3035 hasSubscription: hasSubscription
3036 }),
3037 showBanner = _useUpgradeMessage.showBanner,
3038 markBannerAsViewed = _useUpgradeMessage.markBannerAsViewed;
3039 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showBanner && /*#__PURE__*/_react.default.createElement(_upgradeBanner.default, {
3040 onClose: markBannerAsViewed,
3041 sx: sx
3042 }), /*#__PURE__*/_react.default.createElement(_usageLimitAlert.default, {
3043 hasSubscription: hasSubscription,
3044 usagePercentage: usagePercentage,
3045 sx: sx
3046 }));
3047 };
3048 UsageMessages.propTypes = {
3049 hasSubscription: PropTypes.bool,
3050 usagePercentage: PropTypes.number,
3051 sx: PropTypes.object
3052 };
3053 var _default = UsageMessages;
3054 exports["default"] = _default;
3055
3056 /***/ }),
3057
3058 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
3059 /*!******************************************************************!*\
3060 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
3061 \******************************************************************/
3062 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3063
3064 "use strict";
3065
3066
3067 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3068 Object.defineProperty(exports, "__esModule", ({
3069 value: true
3070 }));
3071 exports["default"] = void 0;
3072 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3073 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3074 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3075 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3076 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3077 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3078 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
3079 var _excluded = ["sx"];
3080 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; }
3081 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; }
3082 var WizardDialog = function WizardDialog(props) {
3083 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3084 open: true,
3085 onClose: props.onClose,
3086 fullWidth: true,
3087 hideBackdrop: true,
3088 maxWidth: "lg",
3089 PaperProps: {
3090 sx: {
3091 height: '88vh'
3092 }
3093 },
3094 sx: {
3095 zIndex: 9999
3096 }
3097 }, props.children);
3098 };
3099 WizardDialog.propTypes = {
3100 onClose: _propTypes.default.func.isRequired,
3101 children: _propTypes.default.node.isRequired
3102 };
3103 var WizardDialogContent = function WizardDialogContent(_ref) {
3104 var _ref$sx = _ref.sx,
3105 sx = _ref$sx === void 0 ? {} : _ref$sx,
3106 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3107 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
3108 sx: _objectSpread({
3109 display: 'flex',
3110 flexDirection: 'column',
3111 justifyContent: 'center'
3112 }, sx)
3113 }));
3114 };
3115 WizardDialogContent.propTypes = {
3116 sx: _propTypes.default.object
3117 };
3118 WizardDialog.Header = _dialogHeader.default;
3119 WizardDialog.Content = WizardDialogContent;
3120 var _default = WizardDialog;
3121 exports["default"] = _default;
3122
3123 /***/ }),
3124
3125 /***/ "../modules/ai/assets/js/editor/helpers/date-helpers.js":
3126 /*!**************************************************************!*\
3127 !*** ../modules/ai/assets/js/editor/helpers/date-helpers.js ***!
3128 \**************************************************************/
3129 /***/ ((__unused_webpack_module, exports) => {
3130
3131 "use strict";
3132
3133
3134 Object.defineProperty(exports, "__esModule", ({
3135 value: true
3136 }));
3137 exports.translateDate = exports.daysDiff = exports.MONTH_JANUARY_INDEX = exports.MONTH_DECEMBER_INDEX = void 0;
3138 var MONTH_DECEMBER_INDEX = 12;
3139 exports.MONTH_DECEMBER_INDEX = MONTH_DECEMBER_INDEX;
3140 var MONTH_JANUARY_INDEX = 0;
3141 /**
3142 * Formats a date (like wp_date() in PHP), translating it into site's locale.
3143 *
3144 * @param {string} format PHP-style formatting string.
3145 * @param {Date | string | undefined} date Date object
3146 * @param {string | number | undefined=} timezone Timezone to output result in or a UTC offset. Defaults to timezone from site.
3147 * @return {string}
3148 */
3149 exports.MONTH_JANUARY_INDEX = MONTH_JANUARY_INDEX;
3150 var translateDate = function translateDate(format, date, timezone) {
3151 var _window$wp;
3152 var _window$wp$date = (_window$wp = window.wp) === null || _window$wp === void 0 ? void 0 : _window$wp.date,
3153 dateI18n = _window$wp$date.dateI18n;
3154 return dateI18n(format, date, timezone);
3155 };
3156
3157 /**
3158 * Returns difference in days between two dates
3159 *
3160 * @param {Date} firstDate
3161 * @param {Date} secondDate
3162 * @return {number} Positive or negative number in days
3163 */
3164 exports.translateDate = translateDate;
3165 var daysDiff = function daysDiff(firstDate, secondDate) {
3166 var MS_PER_DAY = 1000 * 60 * 60 * 24;
3167 var firstUTC = Date.UTC(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate());
3168 var secondUTC = Date.UTC(secondDate.getFullYear(), secondDate.getMonth(), secondDate.getDate());
3169 return Math.floor((secondUTC - firstUTC) / MS_PER_DAY);
3170 };
3171 exports.daysDiff = daysDiff;
3172
3173 /***/ }),
3174
3175 /***/ "../modules/ai/assets/js/editor/helpers/index.js":
3176 /*!*******************************************************!*\
3177 !*** ../modules/ai/assets/js/editor/helpers/index.js ***!
3178 \*******************************************************/
3179 /***/ ((__unused_webpack_module, exports) => {
3180
3181 "use strict";
3182
3183
3184 Object.defineProperty(exports, "__esModule", ({
3185 value: true
3186 }));
3187 exports.vh = void 0;
3188 var vh = function vh(value) {
3189 var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
3190 return value * h / 100;
3191 };
3192 exports.vh = vh;
3193
3194 /***/ }),
3195
3196 /***/ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js":
3197 /*!***************************************************************!*\
3198 !*** ../modules/ai/assets/js/editor/hooks/use-code-prompt.js ***!
3199 \***************************************************************/
3200 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3201
3202 "use strict";
3203
3204
3205 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3206 Object.defineProperty(exports, "__esModule", ({
3207 value: true
3208 }));
3209 exports["default"] = void 0;
3210 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3211 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3212 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3213 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3214 var getCodeResult = /*#__PURE__*/function () {
3215 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prompt, _ref) {
3216 var codeLanguage, htmlMarkup, elementId;
3217 return _regenerator.default.wrap(function _callee$(_context) {
3218 while (1) switch (_context.prev = _context.next) {
3219 case 0:
3220 codeLanguage = _ref.codeLanguage, htmlMarkup = _ref.htmlMarkup, elementId = _ref.elementId;
3221 if (!('css' === codeLanguage)) {
3222 _context.next = 3;
3223 break;
3224 }
3225 return _context.abrupt("return", (0, _api.getCustomCSS)(prompt, htmlMarkup, elementId));
3226 case 3:
3227 return _context.abrupt("return", (0, _api.getCustomCode)(prompt, codeLanguage));
3228 case 4:
3229 case "end":
3230 return _context.stop();
3231 }
3232 }, _callee);
3233 }));
3234 return function getCodeResult(_x, _x2) {
3235 return _ref2.apply(this, arguments);
3236 };
3237 }();
3238 var useCodePrompt = function useCodePrompt(_ref3) {
3239 var codeLanguage = _ref3.codeLanguage,
3240 htmlMarkup = _ref3.htmlMarkup,
3241 elementId = _ref3.elementId,
3242 credits = _ref3.initialCredits;
3243 var promptData = (0, _usePrompt.default)(function (promptValue) {
3244 return getCodeResult(promptValue, {
3245 codeLanguage: codeLanguage,
3246 htmlMarkup: htmlMarkup,
3247 elementId: elementId
3248 });
3249 }, {
3250 credits: credits
3251 });
3252 return promptData;
3253 };
3254 var _default = useCodePrompt;
3255 exports["default"] = _default;
3256
3257 /***/ }),
3258
3259 /***/ "../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js":
3260 /*!******************************************************************************!*\
3261 !*** ../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js ***!
3262 \******************************************************************************/
3263 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3264
3265 "use strict";
3266
3267
3268 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3269 Object.defineProperty(exports, "__esModule", ({
3270 value: true
3271 }));
3272 exports["default"] = void 0;
3273 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3274 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3275 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3276 var _react = __webpack_require__(/*! react */ "react");
3277 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3278 var useDeletePromptHistoryItem = function useDeletePromptHistoryItem() {
3279 var _useState = (0, _react.useState)(false),
3280 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3281 isLoading = _useState2[0],
3282 setIsLoading = _useState2[1];
3283 var _useState3 = (0, _react.useState)(''),
3284 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3285 error = _useState4[0],
3286 setError = _useState4[1];
3287 var deleteItem = /*#__PURE__*/function () {
3288 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(id) {
3289 return _regenerator.default.wrap(function _callee$(_context) {
3290 while (1) switch (_context.prev = _context.next) {
3291 case 0:
3292 return _context.abrupt("return", new Promise(function (resolve, reject) {
3293 setError('');
3294 setIsLoading(true);
3295 (0, _api.deleteHistoryItem)(id).then(function () {
3296 resolve(true);
3297 }).catch(function (err) {
3298 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3299 setError(finalError);
3300 reject(finalError);
3301 }).finally(function () {
3302 return setIsLoading(false);
3303 });
3304 }));
3305 case 1:
3306 case "end":
3307 return _context.stop();
3308 }
3309 }, _callee);
3310 }));
3311 return function deleteItem(_x) {
3312 return _ref.apply(this, arguments);
3313 };
3314 }();
3315 return {
3316 isLoading: isLoading,
3317 error: error,
3318 deleteItem: deleteItem
3319 };
3320 };
3321 var _default = useDeletePromptHistoryItem;
3322 exports["default"] = _default;
3323
3324 /***/ }),
3325
3326 /***/ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js":
3327 /*!********************************************************************!*\
3328 !*** ../modules/ai/assets/js/editor/hooks/use-image-navigation.js ***!
3329 \********************************************************************/
3330 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3331
3332 "use strict";
3333
3334
3335 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3336 Object.defineProperty(exports, "__esModule", ({
3337 value: true
3338 }));
3339 exports["default"] = void 0;
3340 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3341 var _react = __webpack_require__(/*! react */ "react");
3342 var initialIndex = -1;
3343 var useImageNavigation = function useImageNavigation(images) {
3344 var _useState = (0, _react.useState)(initialIndex),
3345 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3346 zoomIndex = _useState2[0],
3347 setZoomIndex = _useState2[1];
3348 var actions = {
3349 reset: function reset() {
3350 return setZoomIndex(initialIndex);
3351 },
3352 prev: function prev() {
3353 var prevImage = zoomIndex + 1;
3354 if (prevImage >= images.length) {
3355 prevImage = 0;
3356 }
3357 setZoomIndex(prevImage);
3358 },
3359 next: function next() {
3360 var nextImage = zoomIndex - 1;
3361 if (nextImage < 0) {
3362 nextImage = images.length - 1;
3363 }
3364 setZoomIndex(nextImage);
3365 }
3366 };
3367 return {
3368 zoomIndex: zoomIndex,
3369 setZoomIndex: setZoomIndex,
3370 actions: actions
3371 };
3372 };
3373 var _default = useImageNavigation;
3374 exports["default"] = _default;
3375
3376 /***/ }),
3377
3378 /***/ "../modules/ai/assets/js/editor/hooks/use-images-preload.js":
3379 /*!******************************************************************!*\
3380 !*** ../modules/ai/assets/js/editor/hooks/use-images-preload.js ***!
3381 \******************************************************************/
3382 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3383
3384 "use strict";
3385
3386
3387 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3388 Object.defineProperty(exports, "__esModule", ({
3389 value: true
3390 }));
3391 exports["default"] = void 0;
3392 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3393 var _react = __webpack_require__(/*! react */ "react");
3394 var loadImage = function loadImage(url) {
3395 return new Promise(function (resolve, reject) {
3396 var loadImg = new Image();
3397 loadImg.src = url;
3398 loadImg.onload = function () {
3399 return resolve(url);
3400 };
3401 loadImg.onerror = function (err) {
3402 return reject(err);
3403 };
3404 });
3405 };
3406 var useImagesPreload = function useImagesPreload() {
3407 var _useState = (0, _react.useState)(false),
3408 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3409 ready = _useState2[0],
3410 setReady = _useState2[1];
3411 var preloadImages = function preloadImages(images) {
3412 setReady(false);
3413 Promise.all(images.map(function (url) {
3414 return loadImage(url);
3415 })).then(function () {
3416 return setReady(true);
3417 })
3418 // eslint-disable-next-line no-console
3419 .catch(function (err) {
3420 return console.log('Failed to load images', err);
3421 }); // Todo error better handling
3422 };
3423
3424 return {
3425 ready: ready,
3426 preloadImages: preloadImages
3427 };
3428 };
3429 var _default = useImagesPreload;
3430 exports["default"] = _default;
3431
3432 /***/ }),
3433
3434 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
3435 /*!****************************************************************!*\
3436 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
3437 \****************************************************************/
3438 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3439
3440 "use strict";
3441
3442
3443 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3444 Object.defineProperty(exports, "__esModule", ({
3445 value: true
3446 }));
3447 exports["default"] = useIntroduction;
3448 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3449 var _react = __webpack_require__(/*! react */ "react");
3450 function useIntroduction(key) {
3451 var _window$elementor$con, _window$elementorAdmi, _window$elementorAdmi2, _globalConfig$introdu;
3452 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;
3453 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
3454 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3455 isViewed = _useState2[0],
3456 setIsViewed = _useState2[1];
3457 function markAsViewed() {
3458 if (!key) {
3459 return Promise.reject();
3460 }
3461 return new Promise(function (resolve, reject) {
3462 if (isViewed) {
3463 reject();
3464 }
3465 setIsViewed(true);
3466 elementorCommon.ajax.addRequest('introduction_viewed', {
3467 data: {
3468 introductionKey: key
3469 },
3470 error: function error() {
3471 setIsViewed(false);
3472 reject();
3473 },
3474 success: function success() {
3475 setIsViewed(true);
3476 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
3477 globalConfig.introduction[key] = true;
3478 }
3479 resolve();
3480 }
3481 });
3482 });
3483 }
3484 return {
3485 isViewed: isViewed,
3486 markAsViewed: markAsViewed
3487 };
3488 }
3489
3490 /***/ }),
3491
3492 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
3493 /*!*******************************************************************!*\
3494 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
3495 \*******************************************************************/
3496 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3497
3498 "use strict";
3499
3500
3501 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3502 Object.defineProperty(exports, "__esModule", ({
3503 value: true
3504 }));
3505 exports["default"] = void 0;
3506 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3507 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3508 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3509 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
3510 var getResult = function getResult(prompt, type, enhanceType) {
3511 if (!enhancePromptMap.has(type)) {
3512 throw new Error("Invalid prompt type: ".concat(type));
3513 }
3514 return enhancePromptMap.get(type)(prompt, enhanceType);
3515 };
3516
3517 /**
3518 * Hook to enhance a prompt.
3519 *
3520 * @param {string} prompt
3521 * @param {'media' | 'layout'} type
3522 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
3523 */
3524 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
3525 var _useConfig = (0, _config.useConfig)(),
3526 mode = _useConfig.mode;
3527 var _usePrompt = (0, _usePrompt2.default)(function () {
3528 return getResult(prompt, type, mode);
3529 }, prompt),
3530 enhancedData = _usePrompt.data,
3531 isEnhancing = _usePrompt.isLoading,
3532 enhance = _usePrompt.send;
3533 return {
3534 enhance: enhance,
3535 isEnhancing: isEnhancing,
3536 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
3537 };
3538 };
3539 var _default = usePromptEnhancer;
3540 exports["default"] = _default;
3541
3542 /***/ }),
3543
3544 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-history.js":
3545 /*!******************************************************************!*\
3546 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-history.js ***!
3547 \******************************************************************/
3548 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3549
3550 "use strict";
3551
3552
3553 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3554 Object.defineProperty(exports, "__esModule", ({
3555 value: true
3556 }));
3557 exports["default"] = void 0;
3558 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3559 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3560 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3561 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3562 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3563 var _react = __webpack_require__(/*! react */ "react");
3564 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3565 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; }
3566 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; }
3567 var getImageThumbnailURL = function getImageThumbnailURL(base, imageURL) {
3568 if (!base) {
3569 return imageURL;
3570 }
3571 return "".concat(base, "/?o=").concat(btoa(imageURL, false));
3572 };
3573 var normalizeItems = function normalizeItems(response) {
3574 var meta = response.meta,
3575 items = response.items;
3576 return items === null || items === void 0 ? void 0 : items.map(function (item) {
3577 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;
3578 return {
3579 id: item === null || item === void 0 ? void 0 : item.elementorApiId,
3580 date: item === null || item === void 0 ? void 0 : item.createdAt,
3581 action: item === null || item === void 0 ? void 0 : item.action,
3582 prompt: item === null || item === void 0 ? void 0 : (_item$request = item.request) === null || _item$request === void 0 ? void 0 : _item$request.prompt,
3583 imageType: item === null || item === void 0 ? void 0 : (_item$request2 = item.request) === null || _item$request2 === void 0 ? void 0 : _item$request2.image_type,
3584 ratio: item === null || item === void 0 ? void 0 : (_item$request3 = item.request) === null || _item$request3 === void 0 ? void 0 : _item$request3.ratio,
3585 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,
3586 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,
3587 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) {
3588 return _objectSpread(_objectSpread({}, image), {}, {
3589 image_url: getImageThumbnailURL(meta.thumbnailUrl, image.image_url)
3590 });
3591 })
3592 };
3593 });
3594 };
3595 var usePromptHistory = function usePromptHistory(historyType) {
3596 var _useState = (0, _react.useState)(false),
3597 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3598 isLoading = _useState2[0],
3599 setIsLoading = _useState2[1];
3600 var _useState3 = (0, _react.useState)({}),
3601 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3602 data = _useState4[0],
3603 setData = _useState4[1];
3604 var _useState5 = (0, _react.useState)(''),
3605 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3606 error = _useState6[0],
3607 setError = _useState6[1];
3608 var fetchData = /*#__PURE__*/function () {
3609 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
3610 var page, limit;
3611 return _regenerator.default.wrap(function _callee$(_context) {
3612 while (1) switch (_context.prev = _context.next) {
3613 case 0:
3614 page = _ref.page, limit = _ref.limit;
3615 return _context.abrupt("return", new Promise(function (resolve, reject) {
3616 setIsLoading(true);
3617 (0, _api.getHistory)(historyType, page, limit).then(function (response) {
3618 var clone = JSON.parse(JSON.stringify(data));
3619 clone.meta = response.meta;
3620 clone.items = [].concat((0, _toConsumableArray2.default)((clone === null || clone === void 0 ? void 0 : clone.items) || []), (0, _toConsumableArray2.default)(normalizeItems(response)));
3621 setData(clone);
3622 resolve(true);
3623 }).catch(function (err) {
3624 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3625 setError(finalError);
3626 reject(finalError);
3627 }).finally(function () {
3628 return setIsLoading(false);
3629 });
3630 }));
3631 case 2:
3632 case "end":
3633 return _context.stop();
3634 }
3635 }, _callee);
3636 }));
3637 return function fetchData(_x) {
3638 return _ref2.apply(this, arguments);
3639 };
3640 }();
3641 var deleteItemById = function deleteItemById(id) {
3642 var itemIndex = data.items.findIndex(function (item) {
3643 return item.id === id;
3644 });
3645 if (-1 === itemIndex) {
3646 return false;
3647 }
3648 var clone = JSON.parse(JSON.stringify(data));
3649 clone.items.splice(itemIndex, 1);
3650 setData(clone);
3651 return true;
3652 };
3653 return {
3654 isLoading: isLoading,
3655 error: error,
3656 items: data.items,
3657 meta: data.meta,
3658 fetchData: fetchData,
3659 deleteItemById: deleteItemById
3660 };
3661 };
3662 var _default = usePromptHistory;
3663 exports["default"] = _default;
3664
3665 /***/ }),
3666
3667 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
3668 /*!**********************************************************!*\
3669 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
3670 \**********************************************************/
3671 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3672
3673 "use strict";
3674
3675
3676 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3677 Object.defineProperty(exports, "__esModule", ({
3678 value: true
3679 }));
3680 exports["default"] = void 0;
3681 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3682 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3683 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3684 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3685 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3686 var _react = __webpack_require__(/*! react */ "react");
3687 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3688 var _excluded = ["text", "response_id", "usage", "images"];
3689 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; }
3690 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; }
3691 var normalizeResponse = function normalizeResponse(_ref) {
3692 var text = _ref.text,
3693 responseId = _ref.response_id,
3694 usage = _ref.usage,
3695 images = _ref.images,
3696 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3697 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
3698 var credits = Math.max(creditsData, 0);
3699 var result = text || images;
3700 var normalized = {
3701 result: result,
3702 responseId: responseId,
3703 credits: credits
3704 };
3705 if (optional.base_template_id) {
3706 normalized.baseTemplateId = optional.base_template_id;
3707 }
3708 normalized.type = optional.template_type;
3709 return normalized;
3710 };
3711 var usePrompt = function usePrompt(fetchData, initialState) {
3712 var _useState = (0, _react.useState)(false),
3713 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3714 isLoading = _useState2[0],
3715 setIsLoading = _useState2[1];
3716 var _useState3 = (0, _react.useState)(''),
3717 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3718 error = _useState4[0],
3719 setError = _useState4[1];
3720 var _useState5 = (0, _react.useState)(initialState),
3721 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3722 data = _useState6[0],
3723 setData = _useState6[1];
3724 var send = /*#__PURE__*/function () {
3725 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
3726 var _len,
3727 args,
3728 _key,
3729 _args = arguments;
3730 return _regenerator.default.wrap(function _callee$(_context) {
3731 while (1) switch (_context.prev = _context.next) {
3732 case 0:
3733 for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3734 args[_key] = _args[_key];
3735 }
3736 return _context.abrupt("return", new Promise(function (resolve, reject) {
3737 setError('');
3738 setIsLoading(true);
3739 fetchData.apply(void 0, args).then(function (result) {
3740 var normalizedData = normalizeResponse(result);
3741 setData(normalizedData);
3742 resolve(normalizedData);
3743 }).catch(function (err) {
3744 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3745 setError(finalError);
3746 reject(finalError);
3747 }).finally(function () {
3748 return setIsLoading(false);
3749 });
3750 }));
3751 case 2:
3752 case "end":
3753 return _context.stop();
3754 }
3755 }, _callee);
3756 }));
3757 return function send() {
3758 return _ref2.apply(this, arguments);
3759 };
3760 }();
3761 var sendUsageData = function sendUsageData() {
3762 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
3763 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
3764 };
3765 var reset = function reset() {
3766 setData(function (_ref3) {
3767 var credits = _ref3.credits;
3768 return {
3769 credits: credits,
3770 result: '',
3771 responseId: ''
3772 };
3773 });
3774 setError('');
3775 setIsLoading(false);
3776 };
3777 var setResult = function setResult(result) {
3778 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3779 var updatedResult = _objectSpread({}, data);
3780 updatedResult.result = result;
3781 if (responseId) {
3782 updatedResult.responseId = responseId;
3783 }
3784 setData(updatedResult);
3785 };
3786 return {
3787 isLoading: isLoading,
3788 error: error,
3789 data: data,
3790 setResult: setResult,
3791 reset: reset,
3792 send: send,
3793 sendUsageData: sendUsageData
3794 };
3795 };
3796 var _default = usePrompt;
3797 exports["default"] = _default;
3798
3799 /***/ }),
3800
3801 /***/ "../modules/ai/assets/js/editor/hooks/use-session-storage.js":
3802 /*!*******************************************************************!*\
3803 !*** ../modules/ai/assets/js/editor/hooks/use-session-storage.js ***!
3804 \*******************************************************************/
3805 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3806
3807 "use strict";
3808
3809
3810 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3811 Object.defineProperty(exports, "__esModule", ({
3812 value: true
3813 }));
3814 exports["default"] = void 0;
3815 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3816 var _react = __webpack_require__(/*! react */ "react");
3817 var useSessionStorage = function useSessionStorage(storageKey) {
3818 var initialValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3819 var getSessionStorageData = function getSessionStorageData() {
3820 return JSON.parse(sessionStorage.getItem(storageKey)) || initialValue;
3821 };
3822 var setSessionStorageData = function setSessionStorageData(value) {
3823 return sessionStorage.setItem(storageKey, JSON.stringify(value));
3824 };
3825 var _useState = (0, _react.useState)(getSessionStorageData()),
3826 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3827 data = _useState2[0],
3828 setData = _useState2[1];
3829 var setStateAndSessionData = function setStateAndSessionData(value) {
3830 setSessionStorageData(value);
3831 setData(value);
3832 };
3833 return {
3834 data: data,
3835 setStateAndSessionData: setStateAndSessionData
3836 };
3837 };
3838 var _default = useSessionStorage;
3839 exports["default"] = _default;
3840
3841 /***/ }),
3842
3843 /***/ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js":
3844 /*!***************************************************************!*\
3845 !*** ../modules/ai/assets/js/editor/hooks/use-text-prompt.js ***!
3846 \***************************************************************/
3847 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3848
3849 "use strict";
3850
3851
3852 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3853 Object.defineProperty(exports, "__esModule", ({
3854 value: true
3855 }));
3856 exports["default"] = void 0;
3857 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3858 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3859 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3860 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3861 var getTextResult = /*#__PURE__*/function () {
3862 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prompt, instruction) {
3863 return _regenerator.default.wrap(function _callee$(_context) {
3864 while (1) switch (_context.prev = _context.next) {
3865 case 0:
3866 if (!instruction) {
3867 _context.next = 2;
3868 break;
3869 }
3870 return _context.abrupt("return", (0, _api.getEditText)(prompt, instruction));
3871 case 2:
3872 return _context.abrupt("return", (0, _api.getCompletionText)(prompt));
3873 case 3:
3874 case "end":
3875 return _context.stop();
3876 }
3877 }, _callee);
3878 }));
3879 return function getTextResult(_x, _x2) {
3880 return _ref.apply(this, arguments);
3881 };
3882 }();
3883 var useTextPrompt = function useTextPrompt(initialValue) {
3884 var promptData = (0, _usePrompt.default)(getTextResult, initialValue);
3885 return promptData;
3886 };
3887 var _default = useTextPrompt;
3888 exports["default"] = _default;
3889
3890 /***/ }),
3891
3892 /***/ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js":
3893 /*!*******************************************************************!*\
3894 !*** ../modules/ai/assets/js/editor/hooks/use-upgrade-message.js ***!
3895 \*******************************************************************/
3896 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3897
3898 "use strict";
3899
3900
3901 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3902 Object.defineProperty(exports, "__esModule", ({
3903 value: true
3904 }));
3905 exports["default"] = exports.USAGE_PERCENTAGE_THRESHOLD = void 0;
3906 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ./use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
3907 var USAGE_PERCENTAGE_THRESHOLD = 80;
3908 exports.USAGE_PERCENTAGE_THRESHOLD = USAGE_PERCENTAGE_THRESHOLD;
3909 var useUpgradeMessage = function useUpgradeMessage(_ref) {
3910 var usagePercentage = _ref.usagePercentage,
3911 hasSubscription = _ref.hasSubscription;
3912 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-upgrade-message'),
3913 isBannerViewed = _useIntroduction.isViewed,
3914 markBannerAsViewed = _useIntroduction.markAsViewed;
3915 var isFreeUser = !hasSubscription;
3916 var isBelowThreshold = usagePercentage < USAGE_PERCENTAGE_THRESHOLD;
3917 var isAboveThreshold = usagePercentage >= USAGE_PERCENTAGE_THRESHOLD;
3918 var showBadge = isAboveThreshold || isFreeUser && isBannerViewed;
3919 var showBanner = !isBannerViewed && isFreeUser && isBelowThreshold;
3920 return {
3921 showBadge: showBadge,
3922 showBanner: showBanner,
3923 markBannerAsViewed: markBannerAsViewed
3924 };
3925 };
3926 var _default = useUpgradeMessage;
3927 exports["default"] = _default;
3928
3929 /***/ }),
3930
3931 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
3932 /*!*************************************************************!*\
3933 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
3934 \*************************************************************/
3935 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3936
3937 "use strict";
3938
3939
3940 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3941 Object.defineProperty(exports, "__esModule", ({
3942 value: true
3943 }));
3944 exports["default"] = void 0;
3945 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3946 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3947 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3948 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3949 var _react = __webpack_require__(/*! react */ "react");
3950 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3951 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; }
3952 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; }
3953 var useUserInfo = function useUserInfo() {
3954 var _useState = (0, _react.useState)(false),
3955 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3956 isLoaded = _useState2[0],
3957 setIsLoaded = _useState2[1];
3958 var _useState3 = (0, _react.useState)(false),
3959 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3960 isLoading = _useState4[0],
3961 setIsLoading = _useState4[1];
3962 var _useState5 = (0, _react.useState)({
3963 is_connected: false,
3964 is_get_started: false,
3965 connect_url: '',
3966 builder_url: '',
3967 usage: {
3968 hasAiSubscription: false,
3969 quota: 0,
3970 usedQuota: 0
3971 }
3972 }),
3973 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3974 userInfo = _useState6[0],
3975 setUserInfo = _useState6[1];
3976 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
3977 var usagePercentage = userInfo.usage.usedQuota / userInfo.usage.quota * 100;
3978 var fetchData = /*#__PURE__*/function () {
3979 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
3980 var userInfoResult;
3981 return _regenerator.default.wrap(function _callee$(_context) {
3982 while (1) switch (_context.prev = _context.next) {
3983 case 0:
3984 setIsLoading(true);
3985 _context.next = 3;
3986 return (0, _api.getUserInformation)();
3987 case 3:
3988 userInfoResult = _context.sent;
3989 setUserInfo(function (prevState) {
3990 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
3991 });
3992 setIsLoaded(true);
3993 setIsLoading(false);
3994 case 7:
3995 case "end":
3996 return _context.stop();
3997 }
3998 }, _callee);
3999 }));
4000 return function fetchData() {
4001 return _ref.apply(this, arguments);
4002 };
4003 }();
4004 if (!isLoaded && !isLoading) {
4005 fetchData();
4006 }
4007 return {
4008 isLoading: isLoading,
4009 isLoaded: isLoaded,
4010 isConnected: userInfo.is_connected,
4011 isGetStarted: userInfo.is_get_started,
4012 connectUrl: userInfo.connect_url,
4013 builderUrl: userInfo.usage.builderUrl,
4014 hasSubscription: userInfo.usage.hasAiSubscription,
4015 credits: credits < 0 ? 0 : credits,
4016 usagePercentage: Math.round(usagePercentage),
4017 fetchData: fetchData
4018 };
4019 };
4020 var _default = useUserInfo;
4021 exports["default"] = _default;
4022
4023 /***/ }),
4024
4025 /***/ "../modules/ai/assets/js/editor/icons/brush-icon.js":
4026 /*!**********************************************************!*\
4027 !*** ../modules/ai/assets/js/editor/icons/brush-icon.js ***!
4028 \**********************************************************/
4029 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4030
4031 "use strict";
4032
4033
4034 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4035 Object.defineProperty(exports, "__esModule", ({
4036 value: true
4037 }));
4038 exports["default"] = void 0;
4039 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4040 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4041 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4042 var BrushIcon = _react.default.forwardRef(function (props, ref) {
4043 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4044 viewBox: "0 0 24 24"
4045 }, props, {
4046 ref: ref
4047 }), /*#__PURE__*/_react.default.createElement("path", {
4048 fillRule: "evenodd",
4049 clipRule: "evenodd",
4050 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"
4051 }));
4052 });
4053 var _default = BrushIcon;
4054 exports["default"] = _default;
4055
4056 /***/ }),
4057
4058 /***/ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js":
4059 /*!*****************************************************************!*\
4060 !*** ../modules/ai/assets/js/editor/icons/chevron-left-icon.js ***!
4061 \*****************************************************************/
4062 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4063
4064 "use strict";
4065
4066
4067 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4068 Object.defineProperty(exports, "__esModule", ({
4069 value: true
4070 }));
4071 exports["default"] = void 0;
4072 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4073 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4074 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4075 var ChevronLeftIcon = _react.default.forwardRef(function (props, ref) {
4076 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4077 viewBox: "0 0 24 24"
4078 }, props, {
4079 ref: ref
4080 }), /*#__PURE__*/_react.default.createElement("path", {
4081 fillRule: "evenodd",
4082 clipRule: "evenodd",
4083 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"
4084 }));
4085 });
4086 var _default = ChevronLeftIcon;
4087 exports["default"] = _default;
4088
4089 /***/ }),
4090
4091 /***/ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js":
4092 /*!******************************************************************!*\
4093 !*** ../modules/ai/assets/js/editor/icons/chevron-right-icon.js ***!
4094 \******************************************************************/
4095 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4096
4097 "use strict";
4098
4099
4100 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4101 Object.defineProperty(exports, "__esModule", ({
4102 value: true
4103 }));
4104 exports["default"] = void 0;
4105 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4106 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4107 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4108 var ChevronRightIcon = _react.default.forwardRef(function (props, ref) {
4109 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4110 viewBox: "0 0 24 24"
4111 }, props, {
4112 ref: ref
4113 }), /*#__PURE__*/_react.default.createElement("path", {
4114 fillRule: "evenodd",
4115 clipRule: "evenodd",
4116 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"
4117 }));
4118 });
4119 var _default = ChevronRightIcon;
4120 exports["default"] = _default;
4121
4122 /***/ }),
4123
4124 /***/ "../modules/ai/assets/js/editor/icons/code-icon.js":
4125 /*!*********************************************************!*\
4126 !*** ../modules/ai/assets/js/editor/icons/code-icon.js ***!
4127 \*********************************************************/
4128 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4129
4130 "use strict";
4131
4132
4133 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4134 Object.defineProperty(exports, "__esModule", ({
4135 value: true
4136 }));
4137 exports["default"] = void 0;
4138 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4139 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4140 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4141 var CodeIcon = _react.default.forwardRef(function (props, ref) {
4142 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4143 viewBox: "0 0 24 24"
4144 }, props, {
4145 ref: ref
4146 }), /*#__PURE__*/_react.default.createElement("path", {
4147 fillRule: "evenodd",
4148 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",
4149 clipRule: "evenodd"
4150 }));
4151 });
4152 var _default = CodeIcon;
4153 exports["default"] = _default;
4154
4155 /***/ }),
4156
4157 /***/ "../modules/ai/assets/js/editor/icons/copy-icon.js":
4158 /*!*********************************************************!*\
4159 !*** ../modules/ai/assets/js/editor/icons/copy-icon.js ***!
4160 \*********************************************************/
4161 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4162
4163 "use strict";
4164
4165
4166 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4167 Object.defineProperty(exports, "__esModule", ({
4168 value: true
4169 }));
4170 exports["default"] = void 0;
4171 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4172 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4173 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4174 var CopyIcon = _react.default.forwardRef(function (props, ref) {
4175 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4176 viewBox: "0 0 24 24"
4177 }, props, {
4178 ref: ref
4179 }), /*#__PURE__*/_react.default.createElement("path", {
4180 fillRule: "evenodd",
4181 clipRule: "evenodd",
4182 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"
4183 }), /*#__PURE__*/_react.default.createElement("path", {
4184 fillRule: "evenodd",
4185 clipRule: "evenodd",
4186 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"
4187 }));
4188 });
4189 var _default = CopyIcon;
4190 exports["default"] = _default;
4191
4192 /***/ }),
4193
4194 /***/ "../modules/ai/assets/js/editor/icons/download-icon.js":
4195 /*!*************************************************************!*\
4196 !*** ../modules/ai/assets/js/editor/icons/download-icon.js ***!
4197 \*************************************************************/
4198 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4199
4200 "use strict";
4201
4202
4203 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4204 Object.defineProperty(exports, "__esModule", ({
4205 value: true
4206 }));
4207 exports["default"] = void 0;
4208 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4209 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4210 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4211 var DownloadIcon = _react.default.forwardRef(function (props, ref) {
4212 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4213 viewBox: "0 0 24 24"
4214 }, props, {
4215 ref: ref
4216 }), /*#__PURE__*/_react.default.createElement("path", {
4217 fillRule: "evenodd",
4218 clipRule: "evenodd",
4219 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"
4220 }), /*#__PURE__*/_react.default.createElement("path", {
4221 fillRule: "evenodd",
4222 clipRule: "evenodd",
4223 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"
4224 }), /*#__PURE__*/_react.default.createElement("path", {
4225 fillRule: "evenodd",
4226 clipRule: "evenodd",
4227 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"
4228 }));
4229 });
4230 var _default = DownloadIcon;
4231 exports["default"] = _default;
4232
4233 /***/ }),
4234
4235 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
4236 /*!*********************************************************!*\
4237 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
4238 \*********************************************************/
4239 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4240
4241 "use strict";
4242
4243
4244 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4245 Object.defineProperty(exports, "__esModule", ({
4246 value: true
4247 }));
4248 exports["default"] = void 0;
4249 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4250 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4251 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4252 var EditIcon = _react.default.forwardRef(function (props, ref) {
4253 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4254 viewBox: "0 0 24 24"
4255 }, props, {
4256 ref: ref
4257 }), /*#__PURE__*/_react.default.createElement("path", {
4258 fillRule: "evenodd",
4259 clipRule: "evenodd",
4260 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"
4261 }), /*#__PURE__*/_react.default.createElement("path", {
4262 fillRule: "evenodd",
4263 clipRule: "evenodd",
4264 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"
4265 }));
4266 });
4267 var _default = EditIcon;
4268 exports["default"] = _default;
4269
4270 /***/ }),
4271
4272 /***/ "../modules/ai/assets/js/editor/icons/enlarger-icon.js":
4273 /*!*************************************************************!*\
4274 !*** ../modules/ai/assets/js/editor/icons/enlarger-icon.js ***!
4275 \*************************************************************/
4276 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4277
4278 "use strict";
4279
4280
4281 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4282 Object.defineProperty(exports, "__esModule", ({
4283 value: true
4284 }));
4285 exports["default"] = void 0;
4286 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4287 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4288 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4289 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4290 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4291 viewBox: "0 0 24 24"
4292 }, props, {
4293 ref: ref
4294 }), /*#__PURE__*/_react.default.createElement("path", {
4295 fillRule: "evenodd",
4296 clipRule: "evenodd",
4297 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"
4298 }));
4299 });
4300 var _default = ExpandIcon;
4301 exports["default"] = _default;
4302
4303 /***/ }),
4304
4305 /***/ "../modules/ai/assets/js/editor/icons/evolve-icon.js":
4306 /*!***********************************************************!*\
4307 !*** ../modules/ai/assets/js/editor/icons/evolve-icon.js ***!
4308 \***********************************************************/
4309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4310
4311 "use strict";
4312
4313
4314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4315 Object.defineProperty(exports, "__esModule", ({
4316 value: true
4317 }));
4318 exports["default"] = void 0;
4319 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4320 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4321 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4322 var EvolveIcon = _react.default.forwardRef(function (props, ref) {
4323 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4324 viewBox: "0 0 24 24"
4325 }, props, {
4326 ref: ref
4327 }), /*#__PURE__*/_react.default.createElement("path", {
4328 fillRule: "evenodd",
4329 clipRule: "evenodd",
4330 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"
4331 }));
4332 });
4333 var _default = EvolveIcon;
4334 exports["default"] = _default;
4335
4336 /***/ }),
4337
4338 /***/ "../modules/ai/assets/js/editor/icons/expand-icon.js":
4339 /*!***********************************************************!*\
4340 !*** ../modules/ai/assets/js/editor/icons/expand-icon.js ***!
4341 \***********************************************************/
4342 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4343
4344 "use strict";
4345
4346
4347 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4348 Object.defineProperty(exports, "__esModule", ({
4349 value: true
4350 }));
4351 exports["default"] = void 0;
4352 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4353 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4354 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4355 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4356 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4357 viewBox: "0 0 24 24"
4358 }, props, {
4359 ref: ref
4360 }), /*#__PURE__*/_react.default.createElement("path", {
4361 fillRule: "evenodd",
4362 clipRule: "evenodd",
4363 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"
4364 }));
4365 });
4366 var _default = ExpandIcon;
4367 exports["default"] = _default;
4368
4369 /***/ }),
4370
4371 /***/ "../modules/ai/assets/js/editor/icons/redo-icon.js":
4372 /*!*********************************************************!*\
4373 !*** ../modules/ai/assets/js/editor/icons/redo-icon.js ***!
4374 \*********************************************************/
4375 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4376
4377 "use strict";
4378
4379
4380 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4381 Object.defineProperty(exports, "__esModule", ({
4382 value: true
4383 }));
4384 exports["default"] = void 0;
4385 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4386 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4387 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4388 var RedoIcon = _react.default.forwardRef(function (props, ref) {
4389 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4390 viewBox: "0 0 24 24"
4391 }, props, {
4392 ref: ref
4393 }), /*#__PURE__*/_react.default.createElement("path", {
4394 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"
4395 }));
4396 });
4397 var _default = RedoIcon;
4398 exports["default"] = _default;
4399
4400 /***/ }),
4401
4402 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
4403 /*!************************************************************!*\
4404 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
4405 \************************************************************/
4406 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4407
4408 "use strict";
4409
4410
4411 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4412 Object.defineProperty(exports, "__esModule", ({
4413 value: true
4414 }));
4415 exports["default"] = void 0;
4416 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4417 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4418 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4419 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
4420 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4421 viewBox: "0 0 24 24"
4422 }, props, {
4423 ref: ref
4424 }), /*#__PURE__*/_react.default.createElement("path", {
4425 fillRule: "evenodd",
4426 clipRule: "evenodd",
4427 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"
4428 }), /*#__PURE__*/_react.default.createElement("path", {
4429 fillRule: "evenodd",
4430 clipRule: "evenodd",
4431 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"
4432 }));
4433 });
4434 var _default = RefreshIcon;
4435 exports["default"] = _default;
4436
4437 /***/ }),
4438
4439 /***/ "../modules/ai/assets/js/editor/icons/remove-bg.js":
4440 /*!*********************************************************!*\
4441 !*** ../modules/ai/assets/js/editor/icons/remove-bg.js ***!
4442 \*********************************************************/
4443 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4444
4445 "use strict";
4446
4447
4448 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4449 Object.defineProperty(exports, "__esModule", ({
4450 value: true
4451 }));
4452 exports["default"] = void 0;
4453 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4454 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4455 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4456 var RemoveBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4457 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4458 viewBox: "0 0 16 16"
4459 }, props, {
4460 ref: ref
4461 }), /*#__PURE__*/_react.default.createElement("path", {
4462 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"
4463 }), /*#__PURE__*/_react.default.createElement("path", {
4464 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"
4465 }), /*#__PURE__*/_react.default.createElement("path", {
4466 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"
4467 }), /*#__PURE__*/_react.default.createElement("path", {
4468 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"
4469 }), /*#__PURE__*/_react.default.createElement("path", {
4470 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"
4471 }), /*#__PURE__*/_react.default.createElement("path", {
4472 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"
4473 }), /*#__PURE__*/_react.default.createElement("path", {
4474 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"
4475 }), /*#__PURE__*/_react.default.createElement("path", {
4476 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"
4477 }), /*#__PURE__*/_react.default.createElement("path", {
4478 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"
4479 }), /*#__PURE__*/_react.default.createElement("path", {
4480 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"
4481 }), /*#__PURE__*/_react.default.createElement("path", {
4482 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"
4483 }));
4484 });
4485 var _default = RemoveBackgroundIcon;
4486 exports["default"] = _default;
4487
4488 /***/ }),
4489
4490 /***/ "../modules/ai/assets/js/editor/icons/replace-bg.js":
4491 /*!**********************************************************!*\
4492 !*** ../modules/ai/assets/js/editor/icons/replace-bg.js ***!
4493 \**********************************************************/
4494 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4495
4496 "use strict";
4497
4498
4499 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4500 Object.defineProperty(exports, "__esModule", ({
4501 value: true
4502 }));
4503 exports["default"] = void 0;
4504 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4505 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4506 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4507 var ReplaceBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4508 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4509 viewBox: "0 0 16 16"
4510 }, props, {
4511 ref: ref
4512 }), /*#__PURE__*/_react.default.createElement("path", {
4513 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"
4514 }), /*#__PURE__*/_react.default.createElement("path", {
4515 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"
4516 }), /*#__PURE__*/_react.default.createElement("path", {
4517 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"
4518 }), /*#__PURE__*/_react.default.createElement("path", {
4519 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"
4520 }), /*#__PURE__*/_react.default.createElement("path", {
4521 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"
4522 }), /*#__PURE__*/_react.default.createElement("path", {
4523 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"
4524 }), /*#__PURE__*/_react.default.createElement("path", {
4525 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"
4526 }), /*#__PURE__*/_react.default.createElement("path", {
4527 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"
4528 }), /*#__PURE__*/_react.default.createElement("path", {
4529 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"
4530 }));
4531 });
4532 var _default = ReplaceBackgroundIcon;
4533 exports["default"] = _default;
4534
4535 /***/ }),
4536
4537 /***/ "../modules/ai/assets/js/editor/icons/restore-icon.js":
4538 /*!************************************************************!*\
4539 !*** ../modules/ai/assets/js/editor/icons/restore-icon.js ***!
4540 \************************************************************/
4541 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4542
4543 "use strict";
4544
4545
4546 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4547 Object.defineProperty(exports, "__esModule", ({
4548 value: true
4549 }));
4550 exports["default"] = void 0;
4551 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4552 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4553 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4554 var RestoreIcon = _react.default.forwardRef(function (props, ref) {
4555 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4556 viewBox: "0 0 24 24"
4557 }, props, {
4558 ref: ref
4559 }), /*#__PURE__*/_react.default.createElement("path", {
4560 fillRule: "evenodd",
4561 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",
4562 clipRule: "evenodd"
4563 }));
4564 });
4565 var _default = RestoreIcon;
4566 exports["default"] = _default;
4567
4568 /***/ }),
4569
4570 /***/ "../modules/ai/assets/js/editor/icons/text-icon.js":
4571 /*!*********************************************************!*\
4572 !*** ../modules/ai/assets/js/editor/icons/text-icon.js ***!
4573 \*********************************************************/
4574 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4575
4576 "use strict";
4577
4578
4579 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4580 Object.defineProperty(exports, "__esModule", ({
4581 value: true
4582 }));
4583 exports["default"] = void 0;
4584 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4585 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4586 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4587 var TextIcon = _react.default.forwardRef(function (props, ref) {
4588 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4589 viewBox: "0 0 24 24"
4590 }, props, {
4591 ref: ref
4592 }), /*#__PURE__*/_react.default.createElement("path", {
4593 fillRule: "evenodd",
4594 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",
4595 clipRule: "evenodd"
4596 }), /*#__PURE__*/_react.default.createElement("path", {
4597 fillRule: "evenodd",
4598 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",
4599 clipRule: "evenodd"
4600 }), /*#__PURE__*/_react.default.createElement("path", {
4601 fillRule: "evenodd",
4602 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",
4603 clipRule: "evenodd"
4604 }));
4605 });
4606 var _default = TextIcon;
4607 exports["default"] = _default;
4608
4609 /***/ }),
4610
4611 /***/ "../modules/ai/assets/js/editor/icons/undo-icon.js":
4612 /*!*********************************************************!*\
4613 !*** ../modules/ai/assets/js/editor/icons/undo-icon.js ***!
4614 \*********************************************************/
4615 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4616
4617 "use strict";
4618
4619
4620 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4621 Object.defineProperty(exports, "__esModule", ({
4622 value: true
4623 }));
4624 exports["default"] = void 0;
4625 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4626 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4627 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4628 var UndoIcon = _react.default.forwardRef(function (props, ref) {
4629 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4630 viewBox: "0 0 24 24"
4631 }, props, {
4632 ref: ref
4633 }), /*#__PURE__*/_react.default.createElement("path", {
4634 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"
4635 }));
4636 });
4637 var _default = UndoIcon;
4638 exports["default"] = _default;
4639
4640 /***/ }),
4641
4642 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
4643 /*!*********************************************************!*\
4644 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
4645 \*********************************************************/
4646 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4647
4648 "use strict";
4649
4650
4651 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4652 Object.defineProperty(exports, "__esModule", ({
4653 value: true
4654 }));
4655 exports["default"] = void 0;
4656 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4657 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4658 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4659 var WandIcon = _react.default.forwardRef(function (props, ref) {
4660 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4661 viewBox: "0 0 24 24"
4662 }, props, {
4663 ref: ref
4664 }), /*#__PURE__*/_react.default.createElement("path", {
4665 fillRule: "evenodd",
4666 clipRule: "evenodd",
4667 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"
4668 }), /*#__PURE__*/_react.default.createElement("path", {
4669 fillRule: "evenodd",
4670 clipRule: "evenodd",
4671 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"
4672 }), /*#__PURE__*/_react.default.createElement("path", {
4673 fillRule: "evenodd",
4674 clipRule: "evenodd",
4675 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"
4676 }));
4677 });
4678 var _default = WandIcon;
4679 exports["default"] = _default;
4680
4681 /***/ }),
4682
4683 /***/ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js":
4684 /*!************************************************************!*\
4685 !*** ../modules/ai/assets/js/editor/icons/zoom-in-icon.js ***!
4686 \************************************************************/
4687 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4688
4689 "use strict";
4690
4691
4692 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4693 Object.defineProperty(exports, "__esModule", ({
4694 value: true
4695 }));
4696 exports["default"] = void 0;
4697 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4698 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4699 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4700 var ZoomInIcon = _react.default.forwardRef(function (props, ref) {
4701 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4702 viewBox: "0 0 24 24"
4703 }, props, {
4704 ref: ref
4705 }), /*#__PURE__*/_react.default.createElement("path", {
4706 fillRule: "evenodd",
4707 clipRule: "evenodd",
4708 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"
4709 }), /*#__PURE__*/_react.default.createElement("path", {
4710 fillRule: "evenodd",
4711 clipRule: "evenodd",
4712 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"
4713 }), /*#__PURE__*/_react.default.createElement("path", {
4714 fillRule: "evenodd",
4715 clipRule: "evenodd",
4716 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"
4717 }), /*#__PURE__*/_react.default.createElement("path", {
4718 fillRule: "evenodd",
4719 clipRule: "evenodd",
4720 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"
4721 }));
4722 });
4723 var _default = ZoomInIcon;
4724 exports["default"] = _default;
4725
4726 /***/ }),
4727
4728 /***/ "../modules/ai/assets/js/editor/page-content.js":
4729 /*!******************************************************!*\
4730 !*** ../modules/ai/assets/js/editor/page-content.js ***!
4731 \******************************************************/
4732 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4733
4734 "use strict";
4735
4736
4737 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4738 Object.defineProperty(exports, "__esModule", ({
4739 value: true
4740 }));
4741 exports["default"] = void 0;
4742 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4743 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4744 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4745 var _formText = _interopRequireDefault(__webpack_require__(/*! ./pages/form-text */ "../modules/ai/assets/js/editor/pages/form-text/index.js"));
4746 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
4747 var _formCode = _interopRequireDefault(__webpack_require__(/*! ./pages/form-code */ "../modules/ai/assets/js/editor/pages/form-code/index.js"));
4748 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
4749 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
4750 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
4751 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
4752 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
4753 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
4754 var _formMedia = _interopRequireDefault(__webpack_require__(/*! ./pages/form-media */ "../modules/ai/assets/js/editor/pages/form-media/index.js"));
4755 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
4756 var _historyTypes = __webpack_require__(/*! ./components/prompt-history/history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
4757 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");
4758 var _promptHistoryContext = __webpack_require__(/*! ./components/prompt-history/context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
4759 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
4760 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ./components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
4761 var PageContent = function PageContent(_ref) {
4762 var type = _ref.type,
4763 controlType = _ref.controlType,
4764 onClose = _ref.onClose,
4765 onConnect = _ref.onConnect,
4766 getControlValue = _ref.getControlValue,
4767 setControlValue = _ref.setControlValue,
4768 controlView = _ref.controlView,
4769 additionalOptions = _ref.additionalOptions;
4770 var _useUserInfo = (0, _useUserInfo2.default)(),
4771 isLoading = _useUserInfo.isLoading,
4772 isConnected = _useUserInfo.isConnected,
4773 isGetStarted = _useUserInfo.isGetStarted,
4774 connectUrl = _useUserInfo.connectUrl,
4775 fetchData = _useUserInfo.fetchData,
4776 hasSubscription = _useUserInfo.hasSubscription,
4777 credits = _useUserInfo.credits,
4778 usagePercentage = _useUserInfo.usagePercentage;
4779 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
4780 usagePercentage: usagePercentage,
4781 hasSubscription: hasSubscription
4782 }),
4783 showBadge = _useUpgradeMessage.showBadge;
4784 var promptDialogStyleProps = {
4785 sx: {
4786 '& .MuiDialog-container': {
4787 alignItems: 'flex-start',
4788 mt: 'media' === type ? '2.5vh' : '18vh'
4789 },
4790 '& .MuiDialogContent-root': {
4791 willChange: 'height',
4792 transition: 'height 300ms ease-in-out',
4793 position: 'relative'
4794 }
4795 },
4796 PaperProps: {
4797 sx: {
4798 m: 0,
4799 maxHeight: 'media' === type ? '95vh' : '76vh',
4800 height: !isLoading && 'media' === type ? '95vh' : 'auto'
4801 }
4802 }
4803 };
4804 var maybeRenderUpgradeChip = function maybeRenderUpgradeChip() {
4805 if (!showBadge) {
4806 return;
4807 }
4808 return /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
4809 hasSubscription: hasSubscription,
4810 usagePercentage: usagePercentage
4811 });
4812 };
4813 if (isLoading) {
4814 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4815 onClose: onClose
4816 }, promptDialogStyleProps, {
4817 maxWidth: 'media' === type ? 'lg' : 'sm'
4818 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4819 onClose: onClose
4820 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4821 dividers: true
4822 }, /*#__PURE__*/_react.default.createElement(_loader.default, null)));
4823 }
4824 if (!isConnected) {
4825 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
4826 onClose: onClose
4827 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
4828 onClose: onClose
4829 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
4830 dividers: true
4831 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
4832 connectUrl: connectUrl,
4833 onSuccess: function onSuccess(data) {
4834 onConnect(data);
4835 fetchData();
4836 }
4837 })));
4838 }
4839 if (!isGetStarted) {
4840 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
4841 onClose: onClose
4842 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
4843 onClose: onClose
4844 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
4845 dividers: true
4846 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
4847 onSuccess: fetchData
4848 })));
4849 }
4850 if ('media' === type) {
4851 return /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4852 historyType: _historyTypes.HISTORY_TYPES.IMAGE
4853 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_formMedia.default, {
4854 onClose: onClose,
4855 getControlValue: getControlValue,
4856 controlView: controlView,
4857 additionalOptions: additionalOptions,
4858 credits: credits,
4859 maybeRenderUpgradeChip: maybeRenderUpgradeChip,
4860 DialogProps: promptDialogStyleProps,
4861 hasSubscription: hasSubscription,
4862 usagePercentage: usagePercentage
4863 })));
4864 }
4865 if ('code' === type) {
4866 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4867 onClose: onClose
4868 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4869 historyType: _historyTypes.HISTORY_TYPES.CODE
4870 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4871 onClose: onClose
4872 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4873 className: "e-ai-dialog-content",
4874 dividers: true
4875 }, /*#__PURE__*/_react.default.createElement(_formCode.default, {
4876 onClose: onClose,
4877 getControlValue: getControlValue,
4878 setControlValue: setControlValue,
4879 additionalOptions: additionalOptions,
4880 credits: credits,
4881 usagePercentage: usagePercentage
4882 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
4883 hasSubscription: hasSubscription,
4884 usagePercentage: usagePercentage,
4885 sx: {
4886 mb: 2
4887 }
4888 }))))));
4889 }
4890 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
4891 onClose: onClose
4892 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
4893 historyType: _historyTypes.HISTORY_TYPES.TEXT
4894 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
4895 onClose: onClose
4896 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
4897 className: "e-ai-dialog-content",
4898 dividers: true
4899 }, /*#__PURE__*/_react.default.createElement(_formText.default, {
4900 type: type,
4901 controlType: controlType,
4902 onClose: onClose,
4903 getControlValue: getControlValue,
4904 setControlValue: setControlValue,
4905 additionalOptions: additionalOptions,
4906 credits: credits,
4907 usagePercentage: usagePercentage
4908 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
4909 hasSubscription: hasSubscription,
4910 usagePercentage: usagePercentage,
4911 sx: {
4912 mb: 2
4913 }
4914 }))))));
4915 };
4916 PageContent.propTypes = {
4917 type: _propTypes.default.string,
4918 controlType: _propTypes.default.string,
4919 onClose: _propTypes.default.func.isRequired,
4920 onConnect: _propTypes.default.func.isRequired,
4921 getControlValue: _propTypes.default.func.isRequired,
4922 setControlValue: _propTypes.default.func.isRequired,
4923 additionalOptions: _propTypes.default.object,
4924 controlView: _propTypes.default.object
4925 };
4926 var _default = PageContent;
4927 exports["default"] = _default;
4928
4929 /***/ }),
4930
4931 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
4932 /*!*************************************************************!*\
4933 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
4934 \*************************************************************/
4935 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4936
4937 "use strict";
4938
4939
4940 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4941 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4942 Object.defineProperty(exports, "__esModule", ({
4943 value: true
4944 }));
4945 exports["default"] = void 0;
4946 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4947 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4948 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4949 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4950 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
4951 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); }
4952 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; }
4953 var Connect = function Connect(_ref) {
4954 var connectUrl = _ref.connectUrl,
4955 onSuccess = _ref.onSuccess;
4956 var approveButtonRef = (0, _react.useRef)();
4957 (0, _react.useEffect)(function () {
4958 // On local dev (as a standalone app), the connect lib is not loaded.
4959 if (!jQuery.fn.elementorConnect) {
4960 return;
4961 }
4962 jQuery(approveButtonRef.current).elementorConnect({
4963 success: function success(_, data) {
4964 return onSuccess(data);
4965 },
4966 error: function error() {
4967 throw new Error('Elementor AI: Failed to connect.');
4968 }
4969 });
4970 }, []);
4971 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
4972 alignItems: "center",
4973 gap: 2
4974 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
4975 sx: {
4976 color: 'text.primary',
4977 fontSize: '60px',
4978 mb: 1
4979 }
4980 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
4981 variant: "h4",
4982 sx: {
4983 color: 'text.primary'
4984 }
4985 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
4986 variant: "body2"
4987 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
4988 variant: "caption",
4989 sx: {
4990 maxWidth: 520,
4991 textAlign: 'center'
4992 }
4993 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
4994 href: "https://go.elementor.com/ai-terms/",
4995 target: "_blank",
4996 color: "info.main"
4997 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
4998 href: "https://go.elementor.com/ai-privacy-policy/",
4999 target: "_blank",
5000 color: "info.main"
5001 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5002 ref: approveButtonRef,
5003 href: connectUrl,
5004 variant: "contained",
5005 sx: {
5006 mt: 1,
5007 '&:hover': {
5008 color: 'primary.contrastText'
5009 }
5010 }
5011 }, (0, _i18n.__)('Connect', 'elementor')));
5012 };
5013 Connect.propTypes = {
5014 connectUrl: _propTypes.default.string.isRequired,
5015 onSuccess: _propTypes.default.func.isRequired
5016 };
5017 var _default = Connect;
5018 exports["default"] = _default;
5019
5020 /***/ }),
5021
5022 /***/ "../modules/ai/assets/js/editor/pages/form-code/code-block.js":
5023 /*!********************************************************************!*\
5024 !*** ../modules/ai/assets/js/editor/pages/form-code/code-block.js ***!
5025 \********************************************************************/
5026 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5027
5028 "use strict";
5029
5030
5031 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5032 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5033 Object.defineProperty(exports, "__esModule", ({
5034 value: true
5035 }));
5036 exports["default"] = void 0;
5037 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5038 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5039 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5040 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5041 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5042 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5043 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
5044 var _excluded = ["node", "inline", "children", "defaultValue", "onInsert"];
5045 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); }
5046 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; }
5047 var CodeBlock = function CodeBlock(_ref) {
5048 var node = _ref.node,
5049 inline = _ref.inline,
5050 children = _ref.children,
5051 defaultValue = _ref.defaultValue,
5052 onInsert = _ref.onInsert,
5053 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5054 var codeBlockInput = (0, _react.useRef)(null);
5055 if (inline) {
5056 return /*#__PURE__*/_react.default.createElement("code", props);
5057 }
5058 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
5059 sx: {
5060 position: 'relative'
5061 },
5062 dir: "ltr"
5063 }, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
5064 fullWidth: true,
5065 ref: codeBlockInput,
5066 defaultValue: children[0],
5067 sx: {
5068 mb: 1
5069 },
5070 helperText: (0, _i18n.__)('Code generated by AI may be inaccurate.', 'elementor')
5071 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5072 size: "small",
5073 variant: "contained",
5074 onClick: function onClick() {
5075 return onInsert(defaultValue + '\n' + codeBlockInput.current.value);
5076 },
5077 sx: {
5078 position: 'absolute',
5079 right: '11px /* @noflip */',
5080 bottom: '44px'
5081 }
5082 }, (0, _i18n.__)('Insert', 'elementor')));
5083 };
5084 CodeBlock.propTypes = {
5085 node: _propTypes.default.object,
5086 inline: _propTypes.default.bool,
5087 children: _propTypes.default.arrayOf(_propTypes.default.node).isRequired,
5088 defaultValue: _propTypes.default.string,
5089 onInsert: _propTypes.default.func.isRequired
5090 };
5091 var _default = CodeBlock;
5092 exports["default"] = _default;
5093
5094 /***/ }),
5095
5096 /***/ "../modules/ai/assets/js/editor/pages/form-code/index.js":
5097 /*!***************************************************************!*\
5098 !*** ../modules/ai/assets/js/editor/pages/form-code/index.js ***!
5099 \***************************************************************/
5100 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5101
5102 "use strict";
5103
5104
5105 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5106 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5107 Object.defineProperty(exports, "__esModule", ({
5108 value: true
5109 }));
5110 exports["default"] = void 0;
5111 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5112 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5113 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5114 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5115 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5116 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5117 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5118 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5119 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5120 var _reactMarkdown = _interopRequireDefault(__webpack_require__(/*! react-markdown */ "../node_modules/react-markdown/index.js"));
5121 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
5122 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
5123 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
5124 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
5125 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5126 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
5127 var _codeBlock = _interopRequireDefault(__webpack_require__(/*! ./code-block */ "../modules/ai/assets/js/editor/pages/form-code/code-block.js"));
5128 var _useCodePrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-code-prompt */ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js"));
5129 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");
5130 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); }
5131 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; }
5132 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; }
5133 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; }
5134 var CodeDisplayWrapper = (0, _ui.styled)(_ui.Box)(function () {
5135 return {
5136 '& p': {
5137 mb: '10px',
5138 fontSize: '13px',
5139 lineHeight: '1.5'
5140 },
5141 '& pre': {
5142 position: 'relative'
5143 },
5144 '& textarea': {
5145 fontSize: '13px',
5146 lineHeight: '1.7'
5147 }
5148 };
5149 });
5150 var FormCode = function FormCode(_ref) {
5151 var onClose = _ref.onClose,
5152 getControlValue = _ref.getControlValue,
5153 setControlValue = _ref.setControlValue,
5154 additionalOptions = _ref.additionalOptions,
5155 credits = _ref.credits,
5156 children = _ref.children;
5157 var _useCodePrompt = (0, _useCodePrompt2.default)(_objectSpread(_objectSpread({}, additionalOptions), {}, {
5158 credits: credits
5159 })),
5160 data = _useCodePrompt.data,
5161 isLoading = _useCodePrompt.isLoading,
5162 error = _useCodePrompt.error,
5163 reset = _useCodePrompt.reset,
5164 send = _useCodePrompt.send,
5165 sendUsageData = _useCodePrompt.sendUsageData;
5166 var _useState = (0, _react.useState)(''),
5167 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5168 prompt = _useState2[0],
5169 setPrompt = _useState2[1];
5170 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
5171 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
5172 handler: function handler(action) {
5173 reset();
5174 setPrompt(action.data);
5175 }
5176 }]);
5177 var lastRun = (0, _react.useRef)(function () {});
5178 var autocompleteItems = 'css' === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.codeLanguage) ? _actionsData.codeCssAutocomplete : _actionsData.codeHtmlAutocomplete;
5179 var showSuggestions = !prompt;
5180 var handleSubmit = /*#__PURE__*/function () {
5181 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
5182 return _regenerator.default.wrap(function _callee$(_context) {
5183 while (1) switch (_context.prev = _context.next) {
5184 case 0:
5185 event.preventDefault();
5186 lastRun.current = function () {
5187 return send(prompt);
5188 };
5189 lastRun.current();
5190 case 3:
5191 case "end":
5192 return _context.stop();
5193 }
5194 }, _callee);
5195 }));
5196 return function handleSubmit(_x) {
5197 return _ref2.apply(this, arguments);
5198 };
5199 }();
5200 var applyPrompt = function applyPrompt(inputText) {
5201 sendUsageData();
5202 setControlValue(inputText);
5203 onClose();
5204 };
5205 if (isLoading) {
5206 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
5207 }
5208 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
5209 error: error,
5210 onRetry: lastRun.current,
5211 sx: {
5212 mb: 2.5
5213 }
5214 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
5215 component: "form",
5216 onSubmit: handleSubmit
5217 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5218 sx: {
5219 pb: 1.5
5220 }
5221 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
5222 placeholder: (0, _i18n.__)('Describe the code you want to use...', 'elementor'),
5223 name: "prompt",
5224 value: prompt,
5225 color: "secondary",
5226 onChange: function onChange(event) {
5227 return setPrompt(event.target.value);
5228 }
5229 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
5230 suggestions: autocompleteItems,
5231 onSelect: setPrompt
5232 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5233 direction: "row",
5234 alignItems: "center",
5235 sx: {
5236 py: 1.5,
5237 mt: 4
5238 }
5239 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5240 direction: "row",
5241 justifyContent: "flex-end",
5242 flexGrow: 1
5243 }, /*#__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, {
5244 components: {
5245 code: function code(props) {
5246 return /*#__PURE__*/_react.default.createElement(_codeBlock.default, (0, _extends2.default)({}, props, {
5247 defaultValue: getControlValue(),
5248 onInsert: applyPrompt
5249 }));
5250 }
5251 }
5252 }, data.result), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5253 direction: "row",
5254 alignItems: "center",
5255 sx: {
5256 mt: 4
5257 }
5258 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5259 direction: "row",
5260 gap: 1,
5261 justifyContent: "flex-end",
5262 flexGrow: 1
5263 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
5264 size: "small",
5265 color: "secondary",
5266 variant: "text",
5267 onClick: reset
5268 }, (0, _i18n.__)('New prompt', 'elementor'))))));
5269 };
5270 FormCode.propTypes = {
5271 onClose: _propTypes.default.func.isRequired,
5272 getControlValue: _propTypes.default.func.isRequired,
5273 setControlValue: _propTypes.default.func.isRequired,
5274 additionalOptions: _propTypes.default.shape({
5275 codeLanguage: _propTypes.default.string,
5276 htmlMarkup: _propTypes.default.string,
5277 elementId: _propTypes.default.string,
5278 initialCredits: _propTypes.default.number
5279 }),
5280 credits: _propTypes.default.number,
5281 children: _propTypes.default.node
5282 };
5283 var _default = FormCode;
5284 exports["default"] = _default;
5285
5286 /***/ }),
5287
5288 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
5289 /*!**************************************************************************!*\
5290 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
5291 \**************************************************************************/
5292 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5293
5294 "use strict";
5295
5296
5297 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5298 Object.defineProperty(exports, "__esModule", ({
5299 value: true
5300 }));
5301 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
5302 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5303 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5304 var MODE_LAYOUT = 'layout';
5305 exports.MODE_LAYOUT = MODE_LAYOUT;
5306 var MODE_VARIATION = 'variation';
5307 exports.MODE_VARIATION = MODE_VARIATION;
5308 var LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
5309 exports.LAYOUT_APP_MODES = LAYOUT_APP_MODES;
5310 var ConfigContext = _react.default.createContext({});
5311 var useConfig = function useConfig() {
5312 return _react.default.useContext(ConfigContext);
5313 };
5314 exports.useConfig = useConfig;
5315 var ConfigProvider = function ConfigProvider(props) {
5316 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
5317 value: {
5318 mode: props.mode,
5319 attachmentsTypes: props.attachmentsTypes,
5320 onClose: props.onClose,
5321 onConnect: props.onConnect,
5322 onData: props.onData,
5323 onInsert: props.onInsert,
5324 onSelect: props.onSelect,
5325 onGenerate: props.onGenerate,
5326 currentContext: props.currentContext,
5327 hasPro: props.hasPro,
5328 sessionId: props.sessionId,
5329 editorSessionId: props.editorSessionId
5330 }
5331 }, props.children);
5332 };
5333 exports.ConfigProvider = ConfigProvider;
5334 ConfigProvider.propTypes = {
5335 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
5336 children: _propTypes.default.node.isRequired,
5337 attachmentsTypes: _propTypes.default.object.isRequired,
5338 onClose: _propTypes.default.func.isRequired,
5339 onConnect: _propTypes.default.func.isRequired,
5340 onData: _propTypes.default.func.isRequired,
5341 onInsert: _propTypes.default.func.isRequired,
5342 onSelect: _propTypes.default.func.isRequired,
5343 onGenerate: _propTypes.default.func.isRequired,
5344 currentContext: _propTypes.default.object,
5345 hasPro: _propTypes.default.bool,
5346 sessionId: _propTypes.default.string,
5347 editorSessionId: _propTypes.default.string
5348 };
5349 var _default = ConfigContext;
5350 exports["default"] = _default;
5351
5352 /***/ }),
5353
5354 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js":
5355 /*!*********************************************************************************!*\
5356 !*** ../modules/ai/assets/js/editor/pages/form-media/components/back-button.js ***!
5357 \*********************************************************************************/
5358 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5359
5360 "use strict";
5361
5362
5363 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5364 Object.defineProperty(exports, "__esModule", ({
5365 value: true
5366 }));
5367 exports["default"] = void 0;
5368 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5369 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5370 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5371 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5372 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5373 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5374 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5375 var _excluded = ["children"];
5376 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
5377 var BackButton = function BackButton(_ref) {
5378 var children = _ref.children,
5379 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5380 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5381 size: "small",
5382 variant: "text",
5383 color: "secondary",
5384 startIcon: /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)
5385 }, props), children || (0, _i18n.__)('Back', 'elementor'));
5386 };
5387 BackButton.propTypes = {
5388 children: _propTypes.default.node
5389 };
5390 var _default = BackButton;
5391 exports["default"] = _default;
5392
5393 /***/ }),
5394
5395 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5396 /*!************************************************************************************!*\
5397 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5398 \************************************************************************************/
5399 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5400
5401 "use strict";
5402
5403
5404 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5405 Object.defineProperty(exports, "__esModule", ({
5406 value: true
5407 }));
5408 exports["default"] = void 0;
5409 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5410 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5411 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5412 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5413 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5414 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5415 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5416 var _excluded = ["isLoading"];
5417 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5418 var EnhanceButton = function EnhanceButton(_ref) {
5419 var isLoading = _ref.isLoading,
5420 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5421 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5422 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5423 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5424 component: "span",
5425 sx: {
5426 cursor: props.disabled ? 'default' : 'pointer'
5427 }
5428 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5429 size: "small",
5430 color: "secondary"
5431 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5432 color: "secondary",
5433 size: 20
5434 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5435 fontSize: "small"
5436 }))));
5437 };
5438 EnhanceButton.propTypes = {
5439 disabled: _propTypes.default.bool,
5440 isLoading: _propTypes.default.bool
5441 };
5442 var _default = EnhanceButton;
5443 exports["default"] = _default;
5444
5445 /***/ }),
5446
5447 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js":
5448 /*!*****************************************************************************!*\
5449 !*** ../modules/ai/assets/js/editor/pages/form-media/components/gallery.js ***!
5450 \*****************************************************************************/
5451 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5452
5453 "use strict";
5454
5455
5456 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5457 Object.defineProperty(exports, "__esModule", ({
5458 value: true
5459 }));
5460 exports["default"] = void 0;
5461 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5462 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5463 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5464 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5465 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5466 var _overlay = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay */ "../modules/ai/assets/js/editor/components/ui/overlay.js"));
5467 var _overlayBar = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar */ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js"));
5468 var _overlayBarText = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar-text */ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js"));
5469 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5470 var _excluded = ["children"],
5471 _excluded2 = ["alt", "src", "text", "children", "aspectRatio", "variant", "OverlayBarProps"];
5472 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
5473 var Gallery = function Gallery(_ref) {
5474 var children = _ref.children,
5475 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5476 return /*#__PURE__*/_react.default.createElement(_ui.ImageList, (0, _extends2.default)({
5477 width: "100%",
5478 cols: 2,
5479 gap: 24
5480 }, props), children);
5481 };
5482 Gallery.propTypes = {
5483 children: _propTypes.default.node
5484 };
5485 var GalleryImage = function GalleryImage(_ref2) {
5486 var alt = _ref2.alt,
5487 src = _ref2.src,
5488 text = _ref2.text,
5489 children = _ref2.children,
5490 _ref2$aspectRatio = _ref2.aspectRatio,
5491 aspectRatio = _ref2$aspectRatio === void 0 ? '1:1' : _ref2$aspectRatio,
5492 _ref2$variant = _ref2.variant,
5493 variant = _ref2$variant === void 0 ? 'contained' : _ref2$variant,
5494 _ref2$OverlayBarProps = _ref2.OverlayBarProps,
5495 OverlayBarProps = _ref2$OverlayBarProps === void 0 ? {} : _ref2$OverlayBarProps,
5496 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5497 var style = {};
5498 if ('thumbnail' === variant) {
5499 style.width = '100%';
5500 style.maxHeight = '238px';
5501 style.minWidth = '230px';
5502 } else {
5503 style.width = 'auto';
5504 style.height = 'auto';
5505 style.maxWidth = '100%';
5506 style.maxHeight = '1:1' === aspectRatio ? 'initial' : '100%';
5507 style.objectFit = 'contain';
5508 style.aspectRatio = aspectRatio.replace(':', ' / ');
5509 }
5510 return /*#__PURE__*/_react.default.createElement(_ui.ImageListItem, props, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5511 display: "flex",
5512 justifyContent: "center",
5513 alignItems: "center",
5514 sx: {
5515 bgcolor: 'action.selected',
5516 height: 'contained' === variant ? 336 : 'auto',
5517 position: 'relative',
5518 overflow: 'hidden'
5519 }
5520 }, /*#__PURE__*/_react.default.createElement("img", {
5521 alt: alt,
5522 src: src,
5523 style: style
5524 })), children && /*#__PURE__*/_react.default.createElement(_overlay.default, null, /*#__PURE__*/_react.default.createElement(_overlayBar.default, (0, _extends2.default)({
5525 gap: 1,
5526 position: "bottom"
5527 }, OverlayBarProps), text && /*#__PURE__*/_react.default.createElement(_overlayBarText.default, null, text), children)));
5528 };
5529 GalleryImage.propTypes = {
5530 alt: _propTypes.default.string,
5531 src: _propTypes.default.string,
5532 text: _propTypes.default.string,
5533 children: _propTypes.default.node,
5534 BoxProps: _propTypes.default.object,
5535 OverlayBarProps: _propTypes.default.object,
5536 aspectRatio: _propTypes.default.oneOf(aspectRatios),
5537 variant: _propTypes.default.oneOf(['contained', 'thumbnail'])
5538 };
5539 Gallery.Image = GalleryImage;
5540 var _default = Gallery;
5541 exports["default"] = _default;
5542
5543 /***/ }),
5544
5545 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js":
5546 /*!*******************************************************************************************!*\
5547 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js ***!
5548 \*******************************************************************************************/
5549 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5550
5551 "use strict";
5552
5553
5554 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5555 Object.defineProperty(exports, "__esModule", ({
5556 value: true
5557 }));
5558 exports["default"] = void 0;
5559 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5560 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5561 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5562 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5563 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
5564 var GenerateAgainSubmit = function GenerateAgainSubmit(props) {
5565 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5566 fullWidth: true,
5567 type: "submit",
5568 variant: "contained",
5569 color: "secondary",
5570 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null),
5571 sx: {
5572 // TODO: Remove on @elementor/ui 1.4.51.
5573 color: 'background.paper'
5574 }
5575 }, props), (0, _i18n.__)('Generate again', 'elementor'));
5576 };
5577 var _default = GenerateAgainSubmit;
5578 exports["default"] = _default;
5579
5580 /***/ }),
5581
5582 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js":
5583 /*!********************************************************************************************!*\
5584 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js ***!
5585 \********************************************************************************************/
5586 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5587
5588 "use strict";
5589
5590
5591 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5592 Object.defineProperty(exports, "__esModule", ({
5593 value: true
5594 }));
5595 exports["default"] = void 0;
5596 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5597 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5598 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5599 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5600 var GenerateImagesSubmit = function GenerateImagesSubmit(props) {
5601 return /*#__PURE__*/_react.default.createElement(_generateButton.default, (0, _extends2.default)({
5602 size: "medium",
5603 fullWidth: true
5604 }, props), (0, _i18n.__)('Generate images', 'elementor'));
5605 };
5606 var _default = GenerateImagesSubmit;
5607 exports["default"] = _default;
5608
5609 /***/ }),
5610
5611 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js":
5612 /*!*************************************************************************************!*\
5613 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js ***!
5614 \*************************************************************************************/
5615 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5616
5617 "use strict";
5618
5619
5620 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5621 Object.defineProperty(exports, "__esModule", ({
5622 value: true
5623 }));
5624 exports["default"] = void 0;
5625 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5626 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5627 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5628 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5629 var GenerateLoader = function GenerateLoader() {
5630 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5631 alignItems: "center",
5632 justifyContent: "center",
5633 gap: 2,
5634 width: "100%"
5635 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5636 sx: {
5637 color: 'text.primary',
5638 fontSize: '60px',
5639 mb: 1
5640 }
5641 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5642 variant: "h5",
5643 sx: {
5644 color: 'text.primary'
5645 }
5646 }, (0, _i18n.__)('Bringing your vision to life...', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5647 variant: "body1"
5648 }, (0, _i18n.__)('Hold tight, painting dreams might take a moment.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Box, {
5649 sx: {
5650 px: 1.5,
5651 py: 2.5,
5652 width: '100%',
5653 maxWidth: 600
5654 }
5655 }, /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
5656 color: "inherit"
5657 })));
5658 };
5659 var _default = GenerateLoader;
5660 exports["default"] = _default;
5661
5662 /***/ }),
5663
5664 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5665 /*!*************************************************************************************!*\
5666 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5667 \*************************************************************************************/
5668 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5669
5670 "use strict";
5671
5672
5673 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5674 Object.defineProperty(exports, "__esModule", ({
5675 value: true
5676 }));
5677 exports["default"] = void 0;
5678 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5679 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5680 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5681 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5682 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5683 var GenerateSubmit = function GenerateSubmit(props) {
5684 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5685 fullWidth: true,
5686 size: "medium",
5687 type: "submit",
5688 variant: "contained"
5689 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5690 };
5691 GenerateSubmit.propTypes = {
5692 children: _propTypes.default.node
5693 };
5694 var _default = GenerateSubmit;
5695 exports["default"] = _default;
5696
5697 /***/ }),
5698
5699 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js":
5700 /*!***********************************************************************************!*\
5701 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js ***!
5702 \***********************************************************************************/
5703 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5704
5705 "use strict";
5706
5707
5708 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5709 Object.defineProperty(exports, "__esModule", ({
5710 value: true
5711 }));
5712 exports["default"] = void 0;
5713 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5714 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5715 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5716 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5717 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5718 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5719 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5720 var _copyIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-icon */ "../modules/ai/assets/js/editor/icons/copy-icon.js"));
5721 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
5722 var _downloadIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/download-icon */ "../modules/ai/assets/js/editor/icons/download-icon.js"));
5723 var _zoomInIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/zoom-in-icon */ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js"));
5724 var _excluded = ["children"],
5725 _excluded2 = ["sx"],
5726 _excluded3 = ["sx"],
5727 _excluded4 = ["sx"],
5728 _excluded5 = ["sx"];
5729 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; }
5730 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; }
5731 var StyledEditSvgIcon = (0, _ui.withDirection)(_editIcon.default);
5732 var StyledCopySvgIcon = (0, _ui.withDirection)(_copyIcon.default);
5733 var StyledZoomInIcon = (0, _ui.withDirection)(_zoomInIcon.default);
5734 var Tooltip = function Tooltip(props) {
5735 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
5736 PopperProps: {
5737 sx: {
5738 '&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {
5739 mt: 1
5740 }
5741 }
5742 }
5743 }, props));
5744 };
5745 var ImageActions = function ImageActions(_ref) {
5746 var children = _ref.children,
5747 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5748 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5749 display: "flex",
5750 justifyContent: "space-between",
5751 alignItems: "center",
5752 width: "100%",
5753 gap: 1
5754 }, props), children);
5755 };
5756 ImageActions.propTypes = {
5757 children: _propTypes.default.node
5758 };
5759 var UseImage = function UseImage(_ref2) {
5760 var sx = _ref2.sx,
5761 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5762 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5763 size: "small",
5764 variant: "contained",
5765 startIcon: /*#__PURE__*/_react.default.createElement(_downloadIcon.default, null)
5766 }, props), (0, _i18n.__)('Use Image', 'elementor'));
5767 };
5768 UseImage.propTypes = {
5769 sx: _propTypes.default.object
5770 };
5771 var EditImage = function EditImage(props) {
5772 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5773 size: "small",
5774 color: "secondary",
5775 startIcon: /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)
5776 }, props), (0, _i18n.__)('Edit', 'elementor'));
5777 };
5778 var EditIcon = function EditIcon(_ref3) {
5779 var _ref3$sx = _ref3.sx,
5780 sx = _ref3$sx === void 0 ? {} : _ref3$sx,
5781 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
5782 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5783 title: (0, _i18n.__)('Edit', 'elementor')
5784 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5785 sx: _objectSpread({
5786 mr: -1.5,
5787 ml: 0.5,
5788 color: 'common.white',
5789 '&:hover': {
5790 color: 'common.white'
5791 }
5792 }, sx)
5793 }, props), /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)));
5794 };
5795 EditIcon.propTypes = {
5796 sx: _propTypes.default.object
5797 };
5798 var ZoomIcon = function ZoomIcon(_ref4) {
5799 var _ref4$sx = _ref4.sx,
5800 sx = _ref4$sx === void 0 ? {} : _ref4$sx,
5801 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
5802 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5803 title: (0, _i18n.__)('Zoom', 'elementor')
5804 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5805 color: "secondary",
5806 "aria-label": (0, _i18n.__)('Zoom', 'elementor'),
5807 sx: _objectSpread({
5808 color: 'common.white',
5809 '&:hover': {
5810 color: 'common.white'
5811 }
5812 }, sx)
5813 }, props), /*#__PURE__*/_react.default.createElement(StyledZoomInIcon, null)));
5814 };
5815 ZoomIcon.propTypes = {
5816 sx: _propTypes.default.object
5817 };
5818 var CopyIcon = function CopyIcon(_ref5) {
5819 var _ref5$sx = _ref5.sx,
5820 sx = _ref5$sx === void 0 ? {} : _ref5$sx,
5821 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
5822 return /*#__PURE__*/_react.default.createElement(Tooltip, {
5823 title: (0, _i18n.__)('Copy prompt', 'elementor')
5824 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5825 sx: _objectSpread({
5826 mr: -1.5,
5827 ml: 0.5,
5828 color: 'common.white',
5829 '&:hover': {
5830 color: 'common.white'
5831 }
5832 }, sx)
5833 }, props), /*#__PURE__*/_react.default.createElement(StyledCopySvgIcon, null)));
5834 };
5835 CopyIcon.propTypes = {
5836 sx: _propTypes.default.object
5837 };
5838 ImageActions.UseImage = UseImage;
5839 ImageActions.EditImage = EditImage;
5840 ImageActions.EditIcon = EditIcon;
5841 ImageActions.ZoomIcon = ZoomIcon;
5842 ImageActions.CopyIcon = CopyIcon;
5843 var _default = ImageActions;
5844 exports["default"] = _default;
5845
5846 /***/ }),
5847
5848 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js":
5849 /*!********************************************************************************!*\
5850 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-form.js ***!
5851 \********************************************************************************/
5852 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5853
5854 "use strict";
5855
5856
5857 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5858 Object.defineProperty(exports, "__esModule", ({
5859 value: true
5860 }));
5861 exports["default"] = void 0;
5862 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5863 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5864 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5865 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5866 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5867 var _excluded = ["children"];
5868 var ImageForm = function ImageForm(_ref) {
5869 var children = _ref.children,
5870 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5871 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5872 component: "form"
5873 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5874 spacing: 2.5
5875 }, children));
5876 };
5877 ImageForm.propTypes = {
5878 children: _propTypes.default.node
5879 };
5880 var _default = ImageForm;
5881 exports["default"] = _default;
5882
5883 /***/ }),
5884
5885 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js":
5886 /*!****************************************************************************************!*\
5887 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js ***!
5888 \****************************************************************************************/
5889 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5890
5891 "use strict";
5892
5893
5894 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5895 Object.defineProperty(exports, "__esModule", ({
5896 value: true
5897 }));
5898 exports["default"] = void 0;
5899 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5900 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5901 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5902 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
5903 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5904 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5905 var imageRatios = Object.entries(_constants.IMAGE_ASPECT_RATIO).map(function (_ref) {
5906 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
5907 value = _ref2[0],
5908 label = _ref2[1].label;
5909 return {
5910 label: label,
5911 value: value
5912 };
5913 });
5914 var ImageRatioSelect = function ImageRatioSelect(props) {
5915 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
5916 options: imageRatios,
5917 wrapperStyle: {
5918 width: '100%'
5919 },
5920 label: (0, _i18n.__)('Aspect ratio', 'elementor')
5921 }, props));
5922 };
5923 var _default = ImageRatioSelect;
5924 exports["default"] = _default;
5925
5926 /***/ }),
5927
5928 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js":
5929 /*!**********************************************************************************!*\
5930 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js ***!
5931 \**********************************************************************************/
5932 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5933
5934 "use strict";
5935
5936
5937 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5938 Object.defineProperty(exports, "__esModule", ({
5939 value: true
5940 }));
5941 exports["default"] = void 0;
5942 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5943 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5944 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5945 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5946 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5947 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5948 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5949 var _chevronRightIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-right-icon */ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js"));
5950 var _excluded = ["onPrev", "onNext", "children"],
5951 _excluded2 = ["children", "startAction", "sx"],
5952 _excluded3 = ["src", "alt"];
5953 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; }
5954 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; }
5955 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
5956 var StyledChevronRightIcon = (0, _ui.withDirection)(_chevronRightIcon.default);
5957 var ImageSlider = function ImageSlider(_ref) {
5958 var onPrev = _ref.onPrev,
5959 onNext = _ref.onNext,
5960 children = _ref.children,
5961 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5962 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
5963 alignItems: "flex-start",
5964 spacing: 0.5
5965 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5966 direction: "row",
5967 spacing: 2.5,
5968 alignSelf: "center",
5969 alignItems: "center"
5970 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
5971 onClick: onPrev,
5972 size: "large",
5973 color: "secondary"
5974 }, /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5975 spacing: 0.5,
5976 justifyContent: "space-around",
5977 alignItems: "center"
5978 }, children), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
5979 onClick: onNext,
5980 size: "large",
5981 color: "secondary"
5982 }, /*#__PURE__*/_react.default.createElement(StyledChevronRightIcon, null))));
5983 };
5984 ImageSlider.propTypes = {
5985 onPrev: _propTypes.default.func.isRequired,
5986 onNext: _propTypes.default.func.isRequired,
5987 children: _propTypes.default.node.isRequired
5988 };
5989 var Actions = function Actions(_ref2) {
5990 var children = _ref2.children,
5991 startAction = _ref2.startAction,
5992 _ref2$sx = _ref2.sx,
5993 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
5994 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5995 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
5996 display: "flex",
5997 justifyContent: "flex-end",
5998 alignItems: "center",
5999 width: "100%"
6000 }, props, {
6001 sx: _objectSpread({
6002 mb: 1.5
6003 }, sx)
6004 }), startAction, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6005 direction: "row",
6006 spacing: 2,
6007 justifyContent: "flex-end",
6008 flexGrow: 1,
6009 width: "100%"
6010 }, children));
6011 };
6012 Actions.propTypes = {
6013 sx: _propTypes.default.object,
6014 startAction: _propTypes.default.node,
6015 children: _propTypes.default.node.isRequired
6016 };
6017 var Image = function Image(_ref3) {
6018 var src = _ref3.src,
6019 _ref3$alt = _ref3.alt,
6020 alt = _ref3$alt === void 0 ? '' : _ref3$alt,
6021 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6022 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6023 display: "flex",
6024 justifyContent: "center",
6025 alignItems: "center"
6026 }, /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({
6027 src: src,
6028 alt: alt
6029 }, props)));
6030 };
6031 Image.propTypes = {
6032 alt: _propTypes.default.string,
6033 src: _propTypes.default.string.isRequired
6034 };
6035 ImageSlider.Actions = Actions;
6036 ImageSlider.Image = Image;
6037 var _default = ImageSlider;
6038 exports["default"] = _default;
6039
6040 /***/ }),
6041
6042 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js":
6043 /*!*******************************************************************************************!*\
6044 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js ***!
6045 \*******************************************************************************************/
6046 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6047
6048 "use strict";
6049
6050
6051 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6052 Object.defineProperty(exports, "__esModule", ({
6053 value: true
6054 }));
6055 exports["default"] = void 0;
6056 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6057 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6058 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6059 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6060 var ImageStrengthSlider = function ImageStrengthSlider(props) {
6061 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
6062 sx: {
6063 width: '100%'
6064 }
6065 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, (0, _extends2.default)({
6066 marks: true,
6067 min: 0,
6068 step: 10,
6069 max: 100,
6070 color: "secondary",
6071 id: "image_strength",
6072 name: "image_strength",
6073 valueLabelDisplay: "auto",
6074 getAriaValueText: function getAriaValueText(value) {
6075 return "".concat(value, "%");
6076 },
6077 "aria-label": (0, _i18n.__)('Reference strength', 'elementor')
6078 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
6079 display: "flex",
6080 justifyContent: "space-between",
6081 alignItems: "center"
6082 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6083 variant: "caption"
6084 }, (0, _i18n.__)('Prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6085 variant: "caption"
6086 }, (0, _i18n.__)('Reference image', 'elementor'))));
6087 };
6088 var _default = ImageStrengthSlider;
6089 exports["default"] = _default;
6090
6091 /***/ }),
6092
6093 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js":
6094 /*!****************************************************************************************!*\
6095 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js ***!
6096 \****************************************************************************************/
6097 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6098
6099 "use strict";
6100
6101
6102 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6103 Object.defineProperty(exports, "__esModule", ({
6104 value: true
6105 }));
6106 exports["default"] = void 0;
6107 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6108 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6109 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6110 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6111 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6112 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6113 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6114 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6115 var _excluded = ["type"];
6116 var ImageStyleSelect = function ImageStyleSelect(_ref) {
6117 var _IMAGE_PROMPT_CATEGOR;
6118 var _ref$type = _ref.type,
6119 type = _ref$type === void 0 ? '' : _ref$type,
6120 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6121 // The image styles are determined by the selected type.
6122 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) {
6123 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
6124 value = _ref3[0],
6125 label = _ref3[1];
6126 return {
6127 label: label,
6128 value: value
6129 };
6130 });
6131 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6132 options: imageStyles,
6133 wrapperStyle: {
6134 width: '100%'
6135 },
6136 label: (0, _i18n.__)('Style', 'elementor')
6137 }, props));
6138 };
6139 ImageStyleSelect.propTypes = {
6140 type: _propTypes.default.string.isRequired
6141 };
6142 var _default = ImageStyleSelect;
6143 exports["default"] = _default;
6144
6145 /***/ }),
6146
6147 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js":
6148 /*!***************************************************************************************!*\
6149 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js ***!
6150 \***************************************************************************************/
6151 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6152
6153 "use strict";
6154
6155
6156 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6157 Object.defineProperty(exports, "__esModule", ({
6158 value: true
6159 }));
6160 exports["default"] = void 0;
6161 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6162 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6163 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6164 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6165 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6166 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6167 var imageTypes = Object.entries(_constants.IMAGE_PROMPT_CATEGORIES).map(function (_ref) {
6168 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
6169 key = _ref2[0],
6170 label = _ref2[1].label;
6171 return {
6172 label: label,
6173 value: key
6174 };
6175 });
6176 var ImageTypeSelect = function ImageTypeSelect(props) {
6177 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6178 options: imageTypes,
6179 wrapperStyle: {
6180 width: '100%'
6181 },
6182 label: (0, _i18n.__)('Image type', 'elementor')
6183 }, props));
6184 };
6185 var _default = ImageTypeSelect;
6186 exports["default"] = _default;
6187
6188 /***/ }),
6189
6190 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js":
6191 /*!************************************************************************************!*\
6192 !*** ../modules/ai/assets/js/editor/pages/form-media/components/images-display.js ***!
6193 \************************************************************************************/
6194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6195
6196 "use strict";
6197
6198
6199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6200 Object.defineProperty(exports, "__esModule", ({
6201 value: true
6202 }));
6203 exports["default"] = void 0;
6204 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6205 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6206 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6207 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6208 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6209 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6210 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6211 var _useImageNavigation2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-navigation */ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js"));
6212 var _imageSlider = _interopRequireDefault(__webpack_require__(/*! ./image-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js"));
6213 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ./image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
6214 var _gallery = _interopRequireDefault(__webpack_require__(/*! ./gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
6215 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6216 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ./single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
6217 var _excluded = ["children", "sx"];
6218 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; }
6219 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; }
6220 var Container = function Container(_ref) {
6221 var children = _ref.children,
6222 _ref$sx = _ref.sx,
6223 sx = _ref$sx === void 0 ? {} : _ref$sx,
6224 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6225 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6226 flexGrow: 1
6227 }, props, {
6228 sx: _objectSpread({
6229 overflowY: 'scroll'
6230 }, sx)
6231 }), children);
6232 };
6233 Container.propTypes = {
6234 sx: _propTypes.default.object,
6235 children: _propTypes.default.node
6236 };
6237 var ImagesDisplay = function ImagesDisplay(_ref2) {
6238 var images = _ref2.images,
6239 aspectRatio = _ref2.aspectRatio,
6240 onUseImage = _ref2.onUseImage,
6241 onEditImage = _ref2.onEditImage,
6242 _ref2$transparentCont = _ref2.transparentContainer,
6243 transparentContainer = _ref2$transparentCont === void 0 ? false : _ref2$transparentCont;
6244 var _useImageNavigation = (0, _useImageNavigation2.default)(images),
6245 zoomIndex = _useImageNavigation.zoomIndex,
6246 setZoomIndex = _useImageNavigation.setZoomIndex,
6247 actions = _useImageNavigation.actions;
6248 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
6249 width = _useImageSize.width,
6250 height = _useImageSize.height;
6251 if (zoomIndex > -1) {
6252 var currentImage = images[zoomIndex];
6253 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_imageSlider.default, {
6254 onPrev: actions.prev,
6255 onNext: actions.next
6256 }, /*#__PURE__*/_react.default.createElement(_imageSlider.default.Actions, {
6257 startAction: /*#__PURE__*/_react.default.createElement(_backButton.default, {
6258 onClick: actions.reset
6259 })
6260 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6261 onClick: function onClick() {
6262 return onEditImage(currentImage);
6263 }
6264 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6265 onClick: function onClick() {
6266 return onUseImage(currentImage);
6267 }
6268 })), /*#__PURE__*/_react.default.createElement(_imageSlider.default.Image, {
6269 src: currentImage.image_url,
6270 style: {
6271 maxWidth: '630px',
6272 width: '100%',
6273 height: 'auto'
6274 }
6275 })));
6276 }
6277 if (1 === images.length) {
6278 var image = images[0];
6279 var singleImageStyle = {
6280 width: width,
6281 height: height
6282 };
6283 if (transparentContainer) {
6284 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%)';
6285 singleImageStyle.backgroundSize = '20px 20px';
6286 singleImageStyle.backgroundPosition = '0 0, 0 10px, 10px -10px, -10px 0px';
6287 }
6288 return /*#__PURE__*/_react.default.createElement(Container, {
6289 flexDirection: "column"
6290 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
6291 src: image.image_url || image.url,
6292 style: singleImageStyle,
6293 alt: "generated-image"
6294 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6295 onClick: function onClick() {
6296 return onEditImage(image);
6297 }
6298 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6299 onClick: function onClick() {
6300 return onUseImage(image);
6301 }
6302 })))));
6303 }
6304 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_gallery.default, null, images.map(function (image, index) {
6305 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
6306 key: "result-".concat(image.seed),
6307 alt: "generated-".concat(index),
6308 src: image.image_url,
6309 aspectRatio: aspectRatio,
6310 "data-testid": "e-gallery-image"
6311 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6312 onClick: function onClick() {
6313 return onUseImage(image);
6314 },
6315 size: "medium",
6316 fullWidth: true
6317 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6318 direction: "row",
6319 spacing: 0.25,
6320 alignItems: "center"
6321 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.ZoomIcon, {
6322 onClick: function onClick() {
6323 return setZoomIndex(index);
6324 },
6325 size: "medium"
6326 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
6327 onClick: function onClick() {
6328 return onEditImage(image);
6329 },
6330 size: "medium"
6331 }))));
6332 })));
6333 };
6334 ImagesDisplay.propTypes = {
6335 images: _propTypes.default.array,
6336 aspectRatio: _propTypes.default.string,
6337 onUseImage: _propTypes.default.func,
6338 onEditImage: _propTypes.default.func,
6339 transparentContainer: _propTypes.default.bool
6340 };
6341 ImagesDisplay.Container = Container;
6342 var _default = ImagesDisplay;
6343 exports["default"] = _default;
6344
6345 /***/ }),
6346
6347 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js":
6348 /*!***************************************************************************************!*\
6349 !*** ../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js ***!
6350 \***************************************************************************************/
6351 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6352
6353 "use strict";
6354
6355
6356 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6357 Object.defineProperty(exports, "__esModule", ({
6358 value: true
6359 }));
6360 exports["default"] = void 0;
6361 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6362 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6363 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6364 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6365 var NewPromptButton = function NewPromptButton(props) {
6366 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6367 fullWidth: true,
6368 variant: "text",
6369 color: "secondary"
6370 }, props), (0, _i18n.__)('New prompt', 'elementor'));
6371 };
6372 var _default = NewPromptButton;
6373 exports["default"] = _default;
6374
6375 /***/ }),
6376
6377 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js":
6378 /*!**********************************************************************************!*\
6379 !*** ../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js ***!
6380 \**********************************************************************************/
6381 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6382
6383 "use strict";
6384
6385
6386 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6387 Object.defineProperty(exports, "__esModule", ({
6388 value: true
6389 }));
6390 exports["default"] = void 0;
6391 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6392 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6393 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6394 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6395 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6396 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
6397 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ./enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
6398 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
6399 var _excluded = ["disabled", "onChange"];
6400 var PromptField = function PromptField(_ref) {
6401 var disabled = _ref.disabled,
6402 _onChange = _ref.onChange,
6403 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6404 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(props.value, 'media'),
6405 enhance = _usePromptEnhancer.enhance,
6406 isEnhancing = _usePromptEnhancer.isEnhancing;
6407 return /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
6408 minRows: 3,
6409 maxRows: 6,
6410 InputProps: {
6411 endAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
6412 position: "end",
6413 sx: {
6414 position: 'absolute',
6415 bottom: '24px',
6416 right: '8px'
6417 }
6418 }, /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
6419 isLoading: isEnhancing,
6420 disabled: disabled || isEnhancing || !props.value,
6421 onClick: function onClick() {
6422 enhance(prompt).then(function (_ref2) {
6423 var result = _ref2.result;
6424 return _onChange(result);
6425 });
6426 }
6427 }))
6428 },
6429 sx: {
6430 '& .MuiInputBase-input.MuiOutlinedInput-input.MuiInputBase-inputMultiline': {
6431 pb: 5,
6432 width: '89%'
6433 }
6434 },
6435 onKeyDown: function onKeyDown(event) {
6436 if ('Tab' === event.key) {
6437 event.preventDefault();
6438 _onChange(props.placeholder);
6439 }
6440 }
6441 }, props, {
6442 onChange: function onChange(event) {
6443 return _onChange(event.target.value);
6444 },
6445 disabled: disabled || isEnhancing
6446 }));
6447 };
6448 PromptField.propTypes = {
6449 value: _propTypes.default.string,
6450 disabled: _propTypes.default.bool,
6451 placeholder: _propTypes.default.string,
6452 onChange: _propTypes.default.func.isRequired
6453 };
6454 var _default = PromptField;
6455 exports["default"] = _default;
6456
6457 /***/ }),
6458
6459 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js":
6460 /*!******************************************************************************************!*\
6461 !*** ../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js ***!
6462 \******************************************************************************************/
6463 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6464
6465 "use strict";
6466
6467
6468 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6469 Object.defineProperty(exports, "__esModule", ({
6470 value: true
6471 }));
6472 exports["default"] = void 0;
6473 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6474 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6475 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6476 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6477 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6478 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6479 var _excluded = ["children"],
6480 _excluded2 = ["children", "sx"];
6481 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; }
6482 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; }
6483 var SingleImagePreview = function SingleImagePreview(_ref) {
6484 var children = _ref.children,
6485 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6486 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6487 display: "flex"
6488 }, props), children);
6489 };
6490 SingleImagePreview.propTypes = {
6491 children: _propTypes.default.node.isRequired
6492 };
6493 var Actions = function Actions(_ref2) {
6494 var children = _ref2.children,
6495 _ref2$sx = _ref2.sx,
6496 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6497 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6498 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6499 display: "flex",
6500 width: "100%",
6501 justifyContent: "flex-end",
6502 alignItems: "center"
6503 }, props, {
6504 sx: _objectSpread({
6505 mb: 1.5
6506 }, sx)
6507 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6508 direction: "row",
6509 spacing: 2,
6510 justifyContent: "flex-end",
6511 width: "100%"
6512 }, children));
6513 };
6514 Actions.propTypes = {
6515 sx: _propTypes.default.object,
6516 children: _propTypes.default.node.isRequired
6517 };
6518 var Image = function Image(_ref3) {
6519 var src = _ref3.src,
6520 alt = _ref3.alt,
6521 _ref3$style = _ref3.style,
6522 style = _ref3$style === void 0 ? {} : _ref3$style,
6523 children = _ref3.children;
6524 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6525 margin: "0 auto"
6526 }, children, /*#__PURE__*/_react.default.createElement("img", {
6527 src: src,
6528 alt: alt,
6529 style: _objectSpread({
6530 maxWidth: '100%',
6531 width: 'auto',
6532 maxHeight: '100%'
6533 }, style)
6534 }));
6535 };
6536 Image.propTypes = {
6537 style: _propTypes.default.object,
6538 children: _propTypes.default.node,
6539 src: _propTypes.default.string.isRequired,
6540 alt: _propTypes.default.string.isRequired
6541 };
6542 SingleImagePreview.Actions = Actions;
6543 SingleImagePreview.Image = Image;
6544 var _default = SingleImagePreview;
6545 exports["default"] = _default;
6546
6547 /***/ }),
6548
6549 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js":
6550 /*!*******************************************************************************************!*\
6551 !*** ../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js ***!
6552 \*******************************************************************************************/
6553 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6554
6555 "use strict";
6556
6557
6558 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6559 Object.defineProperty(exports, "__esModule", ({
6560 value: true
6561 }));
6562 exports["default"] = void 0;
6563 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6564 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6565 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6566 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6567 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6568 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6569 var _excluded = ["onClose", "onCancel"];
6570 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
6571 var onClose = _ref.onClose,
6572 onCancel = _ref.onCancel,
6573 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6574 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
6575 "aria-labelledby": "unsaved-changes-alert-title",
6576 "aria-describedby": "unsaved-changes-alert-description"
6577 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
6578 id: "unsaved-changes-alert-title"
6579 }, (0, _i18n.__)('Leave Elementor AI?', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
6580 id: "unsaved-changes-alert-description"
6581 }, (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, {
6582 onClick: onCancel,
6583 color: "secondary"
6584 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
6585 onClick: onClose,
6586 color: "error",
6587 variant: "contained"
6588 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
6589 };
6590 UnsavedChangesAlert.propTypes = {
6591 onClose: _propTypes.default.func,
6592 onCancel: _propTypes.default.func
6593 };
6594 var _default = UnsavedChangesAlert;
6595 exports["default"] = _default;
6596
6597 /***/ }),
6598
6599 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/view.js":
6600 /*!**************************************************************************!*\
6601 !*** ../modules/ai/assets/js/editor/pages/form-media/components/view.js ***!
6602 \**************************************************************************/
6603 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6604
6605 "use strict";
6606
6607
6608 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6609 Object.defineProperty(exports, "__esModule", ({
6610 value: true
6611 }));
6612 exports["default"] = void 0;
6613 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6614 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6615 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6616 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6617 var _panel = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/panel */ "../modules/ai/assets/js/editor/components/ui/panel.js"));
6618 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6619 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6620 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
6621 var _generateLoader = _interopRequireDefault(__webpack_require__(/*! ./generate-loader */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js"));
6622 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
6623 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6624 var _locationContext = __webpack_require__(/*! ../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
6625 var _useUpgradeMessage = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
6626 var _globalSettingsContext = __webpack_require__(/*! ../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
6627 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ../../../components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
6628 var _excluded = ["sx"],
6629 _excluded2 = ["primary", "secondary"],
6630 _excluded3 = ["primary", "secondary"],
6631 _excluded4 = ["children"],
6632 _excluded5 = ["isLoading", "isGenerating", "children"],
6633 _excluded6 = ["sx"];
6634 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; }
6635 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; }
6636 var ViewBackButton = function ViewBackButton(_ref) {
6637 var _ref$sx = _ref.sx,
6638 sx = _ref$sx === void 0 ? {} : _ref$sx,
6639 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6640 var _useLocation = (0, _locationContext.useLocation)(),
6641 back = _useLocation.back;
6642 return /*#__PURE__*/_react.default.createElement(_backButton.default, (0, _extends2.default)({
6643 onClick: function onClick(e) {
6644 e.preventDefault();
6645 back();
6646 }
6647 }, props, {
6648 sx: _objectSpread({
6649 mb: 1,
6650 alignSelf: 'flex-start'
6651 }, sx)
6652 }));
6653 };
6654 ViewBackButton.propTypes = {
6655 sx: _propTypes.default.object
6656 };
6657 var PanelHeading = function PanelHeading(_ref2) {
6658 var primary = _ref2.primary,
6659 secondary = _ref2.secondary,
6660 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6661 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6662 spacing: 1,
6663 sx: {
6664 mb: 3
6665 }
6666 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6667 variant: "h4"
6668 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6669 variant: "body1",
6670 color: "secondary"
6671 }, secondary));
6672 };
6673 PanelHeading.propTypes = {
6674 primary: _propTypes.default.string.isRequired,
6675 secondary: _propTypes.default.string
6676 };
6677 var ContentHeading = function ContentHeading(_ref3) {
6678 var primary = _ref3.primary,
6679 secondary = _ref3.secondary,
6680 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6681 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6682 gap: 1.5,
6683 sx: {
6684 mb: 3
6685 }
6686 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6687 variant: "h6"
6688 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6689 variant: "subtitle1",
6690 color: "secondary"
6691 }, secondary));
6692 };
6693 ContentHeading.propTypes = {
6694 primary: _propTypes.default.string.isRequired,
6695 secondary: _propTypes.default.string
6696 };
6697 var View = function View(_ref4) {
6698 var children = _ref4.children,
6699 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
6700 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6701 className: "e-ai-dialog-content",
6702 display: "flex",
6703 sx: {
6704 overflowY: 'auto',
6705 position: 'relative'
6706 },
6707 height: "100%"
6708 }, props), children);
6709 };
6710 var Content = function Content(_ref5) {
6711 var _ref5$isLoading = _ref5.isLoading,
6712 isLoading = _ref5$isLoading === void 0 ? false : _ref5$isLoading,
6713 _ref5$isGenerating = _ref5.isGenerating,
6714 isGenerating = _ref5$isGenerating === void 0 ? false : _ref5$isGenerating,
6715 children = _ref5.children,
6716 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
6717 if (isGenerating) {
6718 return /*#__PURE__*/_react.default.createElement(_generateLoader.default, null);
6719 }
6720 if (isLoading) {
6721 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6722 sx: {
6723 width: '100%',
6724 maxWidth: 600,
6725 margin: '0 auto',
6726 alignSelf: 'center'
6727 }
6728 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
6729 color: "inherit"
6730 }));
6731 }
6732 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6733 sx: {
6734 overflowY: 'scroll',
6735 p: 4
6736 },
6737 flexGrow: 1
6738 }, props), children);
6739 };
6740 Content.propTypes = {
6741 children: _propTypes.default.node,
6742 isLoading: _propTypes.default.bool,
6743 isGenerating: _propTypes.default.bool
6744 };
6745 var ErrorMessage = function ErrorMessage(_ref6) {
6746 var _ref6$sx = _ref6.sx,
6747 sx = _ref6$sx === void 0 ? {} : _ref6$sx,
6748 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded6);
6749 return /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, (0, _extends2.default)({
6750 actionPosition: "bottom"
6751 }, props, {
6752 sx: _objectSpread({
6753 mb: 2.5
6754 }, sx)
6755 }));
6756 };
6757 ErrorMessage.propTypes = {
6758 sx: _propTypes.default.object
6759 };
6760 var ViewPanel = function ViewPanel(props) {
6761 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
6762 hasSubscription = _useGlobalSettings.hasSubscription,
6763 usagePercentage = _useGlobalSettings.usagePercentage;
6764 return /*#__PURE__*/_react.default.createElement(_panel.default, null, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
6765 hasSubscription: hasSubscription,
6766 usagePercentage: usagePercentage,
6767 sx: {
6768 mb: 4
6769 }
6770 }), props.children);
6771 };
6772 ViewPanel.propTypes = {
6773 children: _propTypes.default.node
6774 };
6775 View.Panel = ViewPanel;
6776 View.Content = Content;
6777 View.BackButton = ViewBackButton;
6778 View.ErrorMessage = ErrorMessage;
6779 View.PanelHeading = PanelHeading;
6780 View.ContentHeading = ContentHeading;
6781 View.propTypes = {
6782 children: _propTypes.default.node
6783 };
6784 var _default = View;
6785 exports["default"] = _default;
6786
6787 /***/ }),
6788
6789 /***/ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js":
6790 /*!**************************************************************************!*\
6791 !*** ../modules/ai/assets/js/editor/pages/form-media/constants/index.js ***!
6792 \**************************************************************************/
6793 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6794
6795 "use strict";
6796
6797
6798 Object.defineProperty(exports, "__esModule", ({
6799 value: true
6800 }));
6801 exports.LOCATIONS = exports.IMAGE_PROMPT_SETTINGS = exports.IMAGE_PROMPT_CATEGORIES = exports.IMAGE_ASPECT_RATIO = void 0;
6802 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6803 var LOCATIONS = {
6804 RESIZE: 'resize',
6805 GENERATE: 'generate',
6806 VARIATIONS: 'variations',
6807 IMAGE_TOOLS: 'image-tools',
6808 IN_PAINTING: 'in-painting',
6809 OUT_PAINTING: 'out-painting',
6810 REMOVE_BACKGROUND: 'remove-background',
6811 REPLACE_BACKGROUND: 'replace-background',
6812 REMOVE_TEXT: 'remove-text'
6813 };
6814 exports.LOCATIONS = LOCATIONS;
6815 var IMAGE_PROMPT_SETTINGS = {
6816 IMAGE_TYPE: 'image_type',
6817 IMAGE_STYLE: 'style_preset',
6818 IMAGE_STRENGTH: 'image_strength',
6819 IMAGE_RATIO: 'ratio',
6820 IMAGE_ZOOM: 'zoom',
6821 IMAGE_UPSCALE: 'upscale_to'
6822 };
6823 exports.IMAGE_PROMPT_SETTINGS = IMAGE_PROMPT_SETTINGS;
6824 var IMAGE_PROMPT_CATEGORIES = {
6825 '': {
6826 label: (0, _i18n.__)('None', 'elementor'),
6827 subCategories: {}
6828 },
6829 photographic: {
6830 label: (0, _i18n.__)('Photographic', 'elementor'),
6831 subCategories: {
6832 '': (0, _i18n.__)('None', 'elementor'),
6833 landscape: (0, _i18n.__)('Landscape', 'elementor'),
6834 macro: (0, _i18n.__)('Macro', 'elementor'),
6835 portrait: (0, _i18n.__)('Portrait', 'elementor'),
6836 'long-exposure': (0, _i18n.__)('Long Exposure', 'elementor')
6837 }
6838 },
6839 background: {
6840 label: (0, _i18n.__)('Background', 'elementor'),
6841 subCategories: {
6842 '': (0, _i18n.__)('None', 'elementor'),
6843 floral: (0, _i18n.__)('Floral', 'elementor'),
6844 gradient: (0, _i18n.__)('Gradient', 'elementor'),
6845 mosaic: (0, _i18n.__)('Mosaic', 'elementor'),
6846 neon: (0, _i18n.__)('Neon', 'elementor'),
6847 bokeh: (0, _i18n.__)('Bokeh', 'elementor')
6848 }
6849 },
6850 handmade: {
6851 label: (0, _i18n.__)('Handmade', 'elementor'),
6852 subCategories: {
6853 '': (0, _i18n.__)('None', 'elementor'),
6854 doodle: (0, _i18n.__)('Doodle', 'elementor'),
6855 'line-art': (0, _i18n.__)('Line Art', 'elementor'),
6856 'oil-painting': (0, _i18n.__)('Oil Painting', 'elementor'),
6857 'pencil-drawing': (0, _i18n.__)('Pencil Drawing', 'elementor'),
6858 watercolor: (0, _i18n.__)('Watercolor', 'elementor')
6859 }
6860 },
6861 'digital-art': {
6862 label: (0, _i18n.__)('Digital Art', 'elementor'),
6863 subCategories: {
6864 '': (0, _i18n.__)('None', 'elementor'),
6865 amine: (0, _i18n.__)('Anime', 'elementor'),
6866 cartoon: (0, _i18n.__)('Cartoon', 'elementor'),
6867 cinematic: (0, _i18n.__)('Cinematic', 'elementor'),
6868 'comic-book': (0, _i18n.__)('Comic Book', 'elementor'),
6869 'fantasy-art': (0, _i18n.__)('Fantasy Art', 'elementor'),
6870 isometric: (0, _i18n.__)('Isometric', 'elementor'),
6871 vector: (0, _i18n.__)('Vector', 'elementor'),
6872 'pixel-art': (0, _i18n.__)('Pixel Art', 'elementor'),
6873 'low-poly': (0, _i18n.__)('Low Poly', 'elementor'),
6874 'neon-punk': (0, _i18n.__)('Neon Punk', 'elementor')
6875 }
6876 },
6877 '3d': {
6878 label: (0, _i18n.__)('3D', 'elementor'),
6879 subCategories: {
6880 '': (0, _i18n.__)('None', 'elementor'),
6881 clay: (0, _i18n.__)('Clay', 'elementor'),
6882 digital: (0, _i18n.__)('Digital', 'elementor'),
6883 origami: (0, _i18n.__)('Origami', 'elementor'),
6884 stone: (0, _i18n.__)('Stone', 'elementor'),
6885 wood: (0, _i18n.__)('Wood', 'elementor')
6886 }
6887 }
6888 };
6889 exports.IMAGE_PROMPT_CATEGORIES = IMAGE_PROMPT_CATEGORIES;
6890 var IMAGE_ASPECT_RATIO = {
6891 '1:1': {
6892 width: 512,
6893 height: 512,
6894 label: (0, _i18n.__)('Square', 'elementor') + ' (1:1)'
6895 },
6896 '3:2': {
6897 width: 640,
6898 height: 448,
6899 label: (0, _i18n.__)('Landscape', 'elementor') + ' (3:2)'
6900 },
6901 '4:3': {
6902 width: 640,
6903 height: 448,
6904 label: (0, _i18n.__)('Landscape', 'elementor') + ' (4:3)'
6905 },
6906 '16:9': {
6907 width: 704,
6908 height: 384,
6909 label: (0, _i18n.__)('Landscape', 'elementor') + ' (16:9)'
6910 },
6911 '2:3': {
6912 width: 448,
6913 height: 640,
6914 label: (0, _i18n.__)('Portrait', 'elementor') + ' (2:3)'
6915 },
6916 '3:4': {
6917 width: 448,
6918 height: 640,
6919 label: (0, _i18n.__)('Portrait', 'elementor') + ' (3:4)'
6920 },
6921 '9:16': {
6922 width: 384,
6923 height: 704,
6924 label: (0, _i18n.__)('Portrait', 'elementor') + ' (9:16)'
6925 }
6926 };
6927 exports.IMAGE_ASPECT_RATIO = IMAGE_ASPECT_RATIO;
6928
6929 /***/ }),
6930
6931 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js":
6932 /*!*************************************************************************************!*\
6933 !*** ../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js ***!
6934 \*************************************************************************************/
6935 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6936
6937 "use strict";
6938
6939
6940 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6941 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
6942 Object.defineProperty(exports, "__esModule", ({
6943 value: true
6944 }));
6945 exports.useEditImage = exports.SET_LOADING = exports.SET_ASPECT_RATIO = exports.RESET = exports.EditImageProvider = exports.EditImageContext = void 0;
6946 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
6947 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6948 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6949 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6950 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6951 var _utils = __webpack_require__(/*! ../utils */ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js");
6952 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); }
6953 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; }
6954 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; }
6955 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; }
6956 var EditImageContext = (0, _react.createContext)({});
6957 exports.EditImageContext = EditImageContext;
6958 var SET_STATE = 'SET_STATE';
6959 var SET_ASPECT_RATIO = 'SET_ASPECT_RATIO';
6960 exports.SET_ASPECT_RATIO = SET_ASPECT_RATIO;
6961 var SET_LOADING = 'SET_LOADING';
6962 exports.SET_LOADING = SET_LOADING;
6963 var RESET = 'RESET';
6964 exports.RESET = RESET;
6965 var initialValue = {
6966 id: '',
6967 url: '',
6968 isLoading: false,
6969 aspectRatio: '1:1'
6970 };
6971 var reducer = function reducer(state, _ref) {
6972 var type = _ref.type,
6973 payload = _ref.payload;
6974 switch (type) {
6975 case SET_STATE:
6976 return _objectSpread(_objectSpread({}, state), payload);
6977 case SET_ASPECT_RATIO:
6978 return _objectSpread(_objectSpread({}, state), {}, {
6979 aspectRatio: payload
6980 });
6981 case SET_LOADING:
6982 return _objectSpread(_objectSpread({}, state), {}, {
6983 isLoading: payload
6984 });
6985 case RESET:
6986 return initialValue;
6987 default:
6988 throw Error('Unknown action.');
6989 }
6990 };
6991 var EditImageProvider = function EditImageProvider(_ref2) {
6992 var children = _ref2.children,
6993 imageData = _ref2.imageData;
6994 var initialData = _objectSpread(_objectSpread({}, initialValue), imageData);
6995 var _useReducer = (0, _react.useReducer)(reducer, initialData),
6996 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
6997 state = _useReducer2[0],
6998 dispatch = _useReducer2[1];
6999 return /*#__PURE__*/_react.default.createElement(EditImageContext.Provider, {
7000 value: {
7001 state: state,
7002 dispatch: dispatch
7003 }
7004 }, children);
7005 };
7006 exports.EditImageProvider = EditImageProvider;
7007 EditImageProvider.propTypes = {
7008 children: _propTypes.default.node,
7009 imageData: _propTypes.default.object
7010 };
7011 var useEditImage = function useEditImage() {
7012 var _useContext = (0, _react.useContext)(EditImageContext),
7013 state = _useContext.state,
7014 dispatch = _useContext.dispatch;
7015 var id = state.id,
7016 url = state.url,
7017 aspectRatio = state.aspectRatio,
7018 isLoading = state.isLoading;
7019 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
7020 width = _useImageSize.width,
7021 height = _useImageSize.height;
7022 var setEditImage = function setEditImage(payload) {
7023 return dispatch({
7024 type: SET_STATE,
7025 payload: payload
7026 });
7027 };
7028 var setAspectRatio = function setAspectRatio(payload) {
7029 return dispatch({
7030 type: SET_ASPECT_RATIO,
7031 payload: payload
7032 });
7033 };
7034 var reset = function reset() {
7035 return dispatch({
7036 type: RESET
7037 });
7038 };
7039
7040 // Getting the aspect ratio of the image.
7041 (0, _react.useEffect)(function () {
7042 if (!id) {
7043 return;
7044 }
7045 dispatch({
7046 type: SET_LOADING,
7047 payload: true
7048 });
7049 var img = new Image();
7050 img.src = url;
7051 img.onload = function () {
7052 var _getAspectRatioSizes = (0, _utils.getAspectRatioSizes)(img.width, img.height),
7053 ratio = _getAspectRatioSizes.ratio;
7054 dispatch({
7055 type: SET_STATE,
7056 payload: {
7057 aspectRatio: ratio,
7058 isLoading: false
7059 }
7060 });
7061 };
7062 }, [id]);
7063 return {
7064 editImage: state,
7065 isLoading: isLoading,
7066 aspectRatio: aspectRatio,
7067 width: width,
7068 height: height,
7069 setEditImage: setEditImage,
7070 setAspectRatio: setAspectRatio,
7071 reset: reset
7072 };
7073 };
7074 exports.useEditImage = useEditImage;
7075
7076 /***/ }),
7077
7078 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js":
7079 /*!*****************************************************************************************!*\
7080 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js ***!
7081 \*****************************************************************************************/
7082 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7083
7084 "use strict";
7085
7086
7087 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7088 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7089 Object.defineProperty(exports, "__esModule", ({
7090 value: true
7091 }));
7092 exports.useGlobalActions = exports.GlobalActionsProvider = exports.GlobalActionsContext = void 0;
7093 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7094 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7095 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); }
7096 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; }
7097 var GlobalActionsContext = (0, _react.createContext)({});
7098 exports.GlobalActionsContext = GlobalActionsContext;
7099 var GlobalActionsProvider = function GlobalActionsProvider(_ref) {
7100 var actions = _ref.actions,
7101 children = _ref.children;
7102 return /*#__PURE__*/_react.default.createElement(GlobalActionsContext.Provider, {
7103 value: actions
7104 }, children);
7105 };
7106 exports.GlobalActionsProvider = GlobalActionsProvider;
7107 GlobalActionsProvider.propTypes = {
7108 actions: _propTypes.default.object,
7109 children: _propTypes.default.node
7110 };
7111 var useGlobalActions = function useGlobalActions() {
7112 return (0, _react.useContext)(GlobalActionsContext);
7113 };
7114 exports.useGlobalActions = useGlobalActions;
7115
7116 /***/ }),
7117
7118 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js":
7119 /*!******************************************************************************************!*\
7120 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js ***!
7121 \******************************************************************************************/
7122 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7123
7124 "use strict";
7125
7126
7127 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7128 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7129 Object.defineProperty(exports, "__esModule", ({
7130 value: true
7131 }));
7132 exports.useGlobalSettings = exports.GlobalSettingsProvider = exports.GlobalSettingsContext = void 0;
7133 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7134 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7135 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); }
7136 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; }
7137 var GlobalSettingsContext = (0, _react.createContext)({});
7138 exports.GlobalSettingsContext = GlobalSettingsContext;
7139 var GlobalSettingsProvider = function GlobalSettingsProvider(_ref) {
7140 var settings = _ref.settings,
7141 children = _ref.children;
7142 return /*#__PURE__*/_react.default.createElement(GlobalSettingsContext.Provider, {
7143 value: settings
7144 }, children);
7145 };
7146 exports.GlobalSettingsProvider = GlobalSettingsProvider;
7147 GlobalSettingsProvider.propTypes = {
7148 settings: _propTypes.default.object,
7149 children: _propTypes.default.node
7150 };
7151 var useGlobalSettings = function useGlobalSettings() {
7152 return (0, _react.useContext)(GlobalSettingsContext);
7153 };
7154 exports.useGlobalSettings = useGlobalSettings;
7155
7156 /***/ }),
7157
7158 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js":
7159 /*!***********************************************************************************!*\
7160 !*** ../modules/ai/assets/js/editor/pages/form-media/context/location-context.js ***!
7161 \***********************************************************************************/
7162 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7163
7164 "use strict";
7165
7166
7167 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7168 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7169 Object.defineProperty(exports, "__esModule", ({
7170 value: true
7171 }));
7172 exports.useLocation = exports.RoutesContext = exports.NAVIGATE = exports.LocationProvider = exports.BACK = void 0;
7173 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7174 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7175 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
7176 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7177 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7178 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); }
7179 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; }
7180 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; }
7181 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; }
7182 var RoutesContext = (0, _react.createContext)(null);
7183 exports.RoutesContext = RoutesContext;
7184 var NAVIGATE = 'NAVIGATE';
7185 exports.NAVIGATE = NAVIGATE;
7186 var BACK = 'BACK';
7187 exports.BACK = BACK;
7188 var initialValue = {
7189 current: '',
7190 history: []
7191 };
7192 var reducer = function reducer(state, _ref) {
7193 var type = _ref.type,
7194 payload = _ref.payload;
7195 switch (type) {
7196 case NAVIGATE:
7197 return _objectSpread(_objectSpread({}, state), {}, {
7198 current: payload,
7199 history: [].concat((0, _toConsumableArray2.default)(state.history), [payload])
7200 });
7201 case BACK:
7202 return _objectSpread(_objectSpread({}, state), {}, {
7203 current: state.history[state.history.length - 2],
7204 history: state.history.slice(0, state.history.length - 1)
7205 });
7206 default:
7207 return state;
7208 }
7209 };
7210 var LocationProvider = function LocationProvider(_ref2) {
7211 var children = _ref2.children;
7212 var _useReducer = (0, _react.useReducer)(reducer, initialValue),
7213 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7214 state = _useReducer2[0],
7215 dispatch = _useReducer2[1];
7216 return /*#__PURE__*/_react.default.createElement(RoutesContext.Provider, {
7217 value: {
7218 state: state,
7219 dispatch: dispatch
7220 }
7221 }, children);
7222 };
7223 exports.LocationProvider = LocationProvider;
7224 LocationProvider.propTypes = {
7225 children: _propTypes.default.node
7226 };
7227 var useLocation = function useLocation() {
7228 var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7229 current = _ref3.current;
7230 var _useContext = (0, _react.useContext)(RoutesContext),
7231 state = _useContext.state,
7232 dispatch = _useContext.dispatch;
7233 var navigate = function navigate(location) {
7234 dispatch({
7235 type: NAVIGATE,
7236 payload: location
7237 });
7238 };
7239 var back = function back() {
7240 dispatch({
7241 type: BACK
7242 });
7243 };
7244 (0, _react.useEffect)(function () {
7245 if (current) {
7246 navigate(current);
7247 }
7248 }, []);
7249 return {
7250 current: state.current,
7251 history: state.history,
7252 navigate: navigate,
7253 back: back
7254 };
7255 };
7256 exports.useLocation = useLocation;
7257
7258 /***/ }),
7259
7260 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js":
7261 /*!**********************************************************************************!*\
7262 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js ***!
7263 \**********************************************************************************/
7264 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7265
7266 "use strict";
7267
7268
7269 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7270 Object.defineProperty(exports, "__esModule", ({
7271 value: true
7272 }));
7273 exports["default"] = void 0;
7274 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
7275 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
7276 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
7277 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7278 var _editImageContext = __webpack_require__(/*! ../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7279 var _useImageUpload2 = _interopRequireDefault(__webpack_require__(/*! ./use-image-upload */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js"));
7280 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7281 var _excluded = ["image"];
7282 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; }
7283 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; }
7284 var normalizeImageData = function normalizeImageData(imageToUpload) {
7285 if (!(imageToUpload !== null && imageToUpload !== void 0 && imageToUpload.imageUrl)) {
7286 return imageToUpload;
7287 }
7288 return _objectSpread(_objectSpread({}, imageToUpload), {}, {
7289 image_url: imageToUpload.imageUrl,
7290 use_gallery_image: true
7291 });
7292 };
7293 var useImageActions = function useImageActions() {
7294 var _useEditImage = (0, _editImageContext.useEditImage)(),
7295 editImage = _useEditImage.editImage,
7296 setEditImage = _useEditImage.setEditImage;
7297 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7298 setControlImage = _useGlobalActions.setControlImage,
7299 saveAndClose = _useGlobalActions.saveAndClose;
7300 var _useImageUpload = (0, _useImageUpload2.default)(),
7301 attachmentData = _useImageUpload.attachmentData,
7302 isUploading = _useImageUpload.isUploading,
7303 uploadError = _useImageUpload.uploadError,
7304 uploadImage = _useImageUpload.upload,
7305 resetUpload = _useImageUpload.resetUpload;
7306 var upload = function upload(imageToUpload, prompt) {
7307 return uploadImage({
7308 image: normalizeImageData(imageToUpload),
7309 prompt: prompt || imageToUpload.prompt
7310 });
7311 };
7312 var getFinalImage = /*#__PURE__*/function () {
7313 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(imageToUpload, prompt) {
7314 var isImageAlreadyUploaded, image, _result, result;
7315 return _regenerator.default.wrap(function _callee$(_context) {
7316 while (1) switch (_context.prev = _context.next) {
7317 case 0:
7318 isImageAlreadyUploaded = editImage.url === imageToUpload.url;
7319 if (!isImageAlreadyUploaded) {
7320 _context.next = 4;
7321 break;
7322 }
7323 // Removing inner image property to avoid duplicated uploads.
7324 image = editImage.image, _result = (0, _objectWithoutProperties2.default)(editImage, _excluded);
7325 return _context.abrupt("return", _result);
7326 case 4:
7327 _context.next = 6;
7328 return upload(imageToUpload, prompt);
7329 case 6:
7330 result = _context.sent;
7331 return _context.abrupt("return", result.image);
7332 case 8:
7333 case "end":
7334 return _context.stop();
7335 }
7336 }, _callee);
7337 }));
7338 return function getFinalImage(_x, _x2) {
7339 return _ref.apply(this, arguments);
7340 };
7341 }();
7342 var edit = /*#__PURE__*/function () {
7343 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageToUpload, prompt) {
7344 var result;
7345 return _regenerator.default.wrap(function _callee2$(_context2) {
7346 while (1) switch (_context2.prev = _context2.next) {
7347 case 0:
7348 _context2.next = 2;
7349 return upload(imageToUpload, prompt);
7350 case 2:
7351 result = _context2.sent;
7352 setEditImage(result.image);
7353 case 4:
7354 case "end":
7355 return _context2.stop();
7356 }
7357 }, _callee2);
7358 }));
7359 return function edit(_x3, _x4) {
7360 return _ref2.apply(this, arguments);
7361 };
7362 }();
7363 var use = /*#__PURE__*/function () {
7364 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(imageToUpload, prompt) {
7365 var result;
7366 return _regenerator.default.wrap(function _callee3$(_context3) {
7367 while (1) switch (_context3.prev = _context3.next) {
7368 case 0:
7369 _context3.next = 2;
7370 return getFinalImage(imageToUpload, prompt);
7371 case 2:
7372 result = _context3.sent;
7373 setControlImage(result);
7374 saveAndClose();
7375 case 5:
7376 case "end":
7377 return _context3.stop();
7378 }
7379 }, _callee3);
7380 }));
7381 return function use(_x5, _x6) {
7382 return _ref3.apply(this, arguments);
7383 };
7384 }();
7385 return {
7386 use: use,
7387 edit: edit,
7388 reset: resetUpload,
7389 error: uploadError,
7390 data: attachmentData,
7391 isLoading: isUploading
7392 };
7393 };
7394 var _default = useImageActions;
7395 exports["default"] = _default;
7396
7397 /***/ }),
7398
7399 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js":
7400 /*!*********************************************************************************!*\
7401 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js ***!
7402 \*********************************************************************************/
7403 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7404
7405 "use strict";
7406
7407
7408 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7409 Object.defineProperty(exports, "__esModule", ({
7410 value: true
7411 }));
7412 exports["default"] = void 0;
7413 var _react = __webpack_require__(/*! react */ "react");
7414 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
7415 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7416 var useImagePrompt = function useImagePrompt() {
7417 var promptData = _usePrompt.default.apply(void 0, arguments);
7418 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7419 setHasUnsavedChanges = _useGlobalActions.setHasUnsavedChanges,
7420 state = _useGlobalActions.state;
7421 (0, _react.useEffect)(function () {
7422 var _promptData$data;
7423 if ((_promptData$data = promptData.data) !== null && _promptData$data !== void 0 && _promptData$data.result) {
7424 // Updating the hasUnsavedChanges global state that will trigger the unsaved changes dialog.
7425 setHasUnsavedChanges(true);
7426 }
7427 }, [promptData.data]);
7428 (0, _react.useEffect)(function () {
7429 if (state.isAllSaved) {
7430 promptData.sendUsageData();
7431 }
7432 }, [state.isAllSaved]);
7433 return promptData;
7434 };
7435 var _default = useImagePrompt;
7436 exports["default"] = _default;
7437
7438 /***/ }),
7439
7440 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js":
7441 /*!*******************************************************************************!*\
7442 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js ***!
7443 \*******************************************************************************/
7444 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7445
7446 "use strict";
7447
7448
7449 Object.defineProperty(exports, "__esModule", ({
7450 value: true
7451 }));
7452 exports["default"] = void 0;
7453 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7454 var useImageSize = function useImageSize(aspectRatio) {
7455 var _IMAGE_ASPECT_RATIO$a = _constants.IMAGE_ASPECT_RATIO[aspectRatio],
7456 width = _IMAGE_ASPECT_RATIO$a.width,
7457 height = _IMAGE_ASPECT_RATIO$a.height;
7458 return {
7459 width: width,
7460 height: height
7461 };
7462 };
7463 var _default = useImageSize;
7464 exports["default"] = _default;
7465
7466 /***/ }),
7467
7468 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js":
7469 /*!*********************************************************************************!*\
7470 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js ***!
7471 \*********************************************************************************/
7472 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7473
7474 "use strict";
7475
7476
7477 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7478 Object.defineProperty(exports, "__esModule", ({
7479 value: true
7480 }));
7481 exports["default"] = void 0;
7482 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7483 var _react = __webpack_require__(/*! react */ "react");
7484 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
7485 var useImageUpload = function useImageUpload() {
7486 var _useState = (0, _react.useState)(false),
7487 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7488 isUploading = _useState2[0],
7489 setIsUploading = _useState2[1];
7490 var _useState3 = (0, _react.useState)(''),
7491 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
7492 uploadError = _useState4[0],
7493 setUploadError = _useState4[1];
7494 var _useState5 = (0, _react.useState)({}),
7495 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
7496 attachmentData = _useState6[0],
7497 setAttachmentData = _useState6[1];
7498 var upload = function upload(_ref) {
7499 var image = _ref.image,
7500 prompt = _ref.prompt;
7501 return new Promise(function (resolve, reject) {
7502 setUploadError('');
7503 setAttachmentData({});
7504 setIsUploading(true);
7505 (0, _api.uploadImage)({
7506 image: image,
7507 prompt: prompt
7508 }).then(function (result) {
7509 setAttachmentData(result);
7510 resolve(result);
7511 }).catch(function (err) {
7512 var error = (err === null || err === void 0 ? void 0 : err.responseText) || err;
7513 setUploadError(error);
7514 reject(error);
7515 }).finally(function () {
7516 return setIsUploading(false);
7517 });
7518 });
7519 };
7520 var resetUpload = function resetUpload() {
7521 setUploadError('');
7522 setAttachmentData({});
7523 setIsUploading(false);
7524 };
7525 return {
7526 upload: upload,
7527 resetUpload: resetUpload,
7528 isUploading: isUploading,
7529 uploadError: uploadError,
7530 attachmentData: attachmentData
7531 };
7532 };
7533 var _default = useImageUpload;
7534 exports["default"] = _default;
7535
7536 /***/ }),
7537
7538 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js":
7539 /*!************************************************************************************!*\
7540 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js ***!
7541 \************************************************************************************/
7542 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7543
7544 "use strict";
7545
7546
7547 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7548 Object.defineProperty(exports, "__esModule", ({
7549 value: true
7550 }));
7551 exports["default"] = exports.IMAGE_ZOOM = exports.IMAGE_UPSCALE = exports.IMAGE_TYPE = exports.IMAGE_STYLE = exports.IMAGE_STRENGTH = exports.IMAGE_RATIO = void 0;
7552 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7553 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7554 var _react = __webpack_require__(/*! react */ "react");
7555 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7556 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; }
7557 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; }
7558 var IMAGE_TYPE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_TYPE,
7559 IMAGE_STYLE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STYLE,
7560 IMAGE_STRENGTH = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STRENGTH,
7561 IMAGE_RATIO = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_RATIO,
7562 IMAGE_ZOOM = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_ZOOM,
7563 IMAGE_UPSCALE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_UPSCALE;
7564 exports.IMAGE_UPSCALE = IMAGE_UPSCALE;
7565 exports.IMAGE_ZOOM = IMAGE_ZOOM;
7566 exports.IMAGE_RATIO = IMAGE_RATIO;
7567 exports.IMAGE_STRENGTH = IMAGE_STRENGTH;
7568 exports.IMAGE_STYLE = IMAGE_STYLE;
7569 exports.IMAGE_TYPE = IMAGE_TYPE;
7570 var DEFAULT_TYPE = '';
7571 var DEFAULT_STYLE = '';
7572 var DEFAULT_STRENGTH = 0;
7573 var DEFAULT_RATIO = '1:1';
7574 var DEFAULT_ZOOM = '1';
7575 var DEFAULT_UPSCALE = '512';
7576 var usePromptSettings = function usePromptSettings() {
7577 var _useState3;
7578 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7579 _ref$type = _ref.type,
7580 type = _ref$type === void 0 ? DEFAULT_TYPE : _ref$type,
7581 _ref$style = _ref.style,
7582 style = _ref$style === void 0 ? DEFAULT_STYLE : _ref$style,
7583 _ref$imageWeight = _ref.imageWeight,
7584 imageWeight = _ref$imageWeight === void 0 ? DEFAULT_STRENGTH : _ref$imageWeight,
7585 _ref$aspectRatio = _ref.aspectRatio,
7586 aspectRatio = _ref$aspectRatio === void 0 ? DEFAULT_RATIO : _ref$aspectRatio,
7587 _ref$zoom = _ref.zoom,
7588 zoom = _ref$zoom === void 0 ? DEFAULT_ZOOM : _ref$zoom,
7589 _ref$upScaleTo = _ref.upScaleTo,
7590 upScaleTo = _ref$upScaleTo === void 0 ? DEFAULT_UPSCALE : _ref$upScaleTo;
7591 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)),
7592 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7593 settings = _useState2[0],
7594 setSettings = _useState2[1];
7595 var updateSettings = function updateSettings(updated) {
7596 return setSettings(function (prev) {
7597 return _objectSpread(_objectSpread({}, prev), updated);
7598 });
7599 };
7600 var resetSettings = function resetSettings() {
7601 var _setSettings;
7602 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));
7603 };
7604 return {
7605 settings: settings,
7606 updateSettings: updateSettings,
7607 resetSettings: resetSettings
7608 };
7609 };
7610 var _default = usePromptSettings;
7611 exports["default"] = _default;
7612
7613 /***/ }),
7614
7615 /***/ "../modules/ai/assets/js/editor/pages/form-media/index.js":
7616 /*!****************************************************************!*\
7617 !*** ../modules/ai/assets/js/editor/pages/form-media/index.js ***!
7618 \****************************************************************/
7619 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7620
7621 "use strict";
7622
7623
7624 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7625 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7626 Object.defineProperty(exports, "__esModule", ({
7627 value: true
7628 }));
7629 exports["default"] = void 0;
7630 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7631 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
7632 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7633 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7634 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7635 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
7636 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7637 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
7638 var _mediaOutlet = _interopRequireDefault(__webpack_require__(/*! ./media-outlet */ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js"));
7639 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js"));
7640 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7641 var _globalActionsContext = __webpack_require__(/*! ./context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7642 var _globalSettingsContext = __webpack_require__(/*! ./context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
7643 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
7644 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); }
7645 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; }
7646 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; }
7647 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; }
7648 var initialData = {
7649 isAllSaved: false,
7650 hasUnsavedChanges: false
7651 };
7652 var SET_UNSAVED_CHANGES = 'SET_UNSAVED_CHANGES';
7653 var SAVE_AND_CLOSE = 'SAVE_AND_CLOSE';
7654 var reducer = function reducer(state, _ref) {
7655 var type = _ref.type,
7656 payload = _ref.payload;
7657 switch (type) {
7658 case SET_UNSAVED_CHANGES:
7659 return _objectSpread(_objectSpread({}, state), {}, {
7660 hasUnsavedChanges: payload,
7661 isAllSaved: payload ? false : state.isAllSaved
7662 });
7663 case SAVE_AND_CLOSE:
7664 return _objectSpread(_objectSpread({}, state), {}, {
7665 isAllSaved: true,
7666 hasUnsavedChanges: false
7667 });
7668 default:
7669 throw Error('Unknown action.');
7670 }
7671 };
7672 var FormMedia = function FormMedia(_ref2) {
7673 var onClose = _ref2.onClose,
7674 DialogProps = _ref2.DialogProps,
7675 getControlValue = _ref2.getControlValue,
7676 controlView = _ref2.controlView,
7677 additionalOptions = _ref2.additionalOptions,
7678 maybeRenderUpgradeChip = _ref2.maybeRenderUpgradeChip,
7679 hasSubscription = _ref2.hasSubscription,
7680 usagePercentage = _ref2.usagePercentage;
7681 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7682 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7683 state = _useReducer2[0],
7684 dispatch = _useReducer2[1];
7685 var _useState = (0, _react.useState)(false),
7686 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7687 showUnsavedChangeAlert = _useState2[0],
7688 setShowUnsavedChangeAlert = _useState2[1];
7689 var setHasUnsavedChanges = function setHasUnsavedChanges(payload) {
7690 return dispatch({
7691 type: SET_UNSAVED_CHANGES,
7692 payload: payload
7693 });
7694 };
7695 var saveAndClose = function saveAndClose() {
7696 return dispatch({
7697 type: SAVE_AND_CLOSE
7698 });
7699 };
7700 var onCloseIntent = function onCloseIntent() {
7701 if (state.hasUnsavedChanges) {
7702 setShowUnsavedChangeAlert(true);
7703 return;
7704 }
7705 onClose();
7706 };
7707 var editImageInitialData = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? {} : getControlValue();
7708 var globalSettings = {
7709 initialImageType: (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultImageType) || '',
7710 hasSubscription: hasSubscription,
7711 usagePercentage: usagePercentage
7712 };
7713 var globalActions = {
7714 state: state,
7715 getControlValue: getControlValue,
7716 saveAndClose: saveAndClose,
7717 close: onCloseIntent,
7718 setHasUnsavedChanges: setHasUnsavedChanges,
7719 setControlImage: function setControlImage(image) {
7720 controlView.setSettingsModel(image);
7721 controlView.applySavedValue();
7722 }
7723 };
7724 (0, _react.useEffect)(function () {
7725 if (state.isAllSaved) {
7726 // Closing the app only once the state was updated, to allow registered effects to take place before closing.
7727 onClose();
7728 }
7729 }, [state.isAllSaved]);
7730 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
7731 id: "e-form-media",
7732 onClose: function onClose() {
7733 return onCloseIntent();
7734 },
7735 maxWidth: "lg"
7736 }, DialogProps), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
7737 onClose: function onClose() {
7738 return onCloseIntent();
7739 }
7740 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_globalSettingsContext.GlobalSettingsProvider, {
7741 settings: globalSettings
7742 }, /*#__PURE__*/_react.default.createElement(_globalActionsContext.GlobalActionsProvider, {
7743 actions: globalActions
7744 }, /*#__PURE__*/_react.default.createElement(_locationContext.LocationProvider, null, /*#__PURE__*/_react.default.createElement(_editImageContext.EditImageProvider, {
7745 imageData: editImageInitialData
7746 }, /*#__PURE__*/_react.default.createElement(_mediaOutlet.default, null)))))), showUnsavedChangeAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
7747 onClose: onClose,
7748 onCancel: function onCancel() {
7749 return setShowUnsavedChangeAlert(false);
7750 },
7751 open: true
7752 }));
7753 };
7754 FormMedia.propTypes = {
7755 onClose: _propTypes.default.func.isRequired,
7756 DialogProps: _propTypes.default.object,
7757 getControlValue: _propTypes.default.func.isRequired,
7758 controlView: _propTypes.default.object,
7759 additionalOptions: _propTypes.default.object,
7760 credits: _propTypes.default.number,
7761 maybeRenderUpgradeChip: _propTypes.default.func,
7762 hasSubscription: _propTypes.default.bool,
7763 usagePercentage: _propTypes.default.number
7764 };
7765 var _default = FormMedia;
7766 exports["default"] = _default;
7767
7768 /***/ }),
7769
7770 /***/ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js":
7771 /*!***********************************************************************!*\
7772 !*** ../modules/ai/assets/js/editor/pages/form-media/media-outlet.js ***!
7773 \***********************************************************************/
7774 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7775
7776 "use strict";
7777
7778
7779 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7780 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7781 Object.defineProperty(exports, "__esModule", ({
7782 value: true
7783 }));
7784 exports["default"] = void 0;
7785 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7786 var _view = _interopRequireDefault(__webpack_require__(/*! ./components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
7787 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
7788 var _constants = __webpack_require__(/*! ./constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7789 var _generate = _interopRequireDefault(__webpack_require__(/*! ./views/generate */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js"));
7790 var _imageTools = _interopRequireDefault(__webpack_require__(/*! ./views/image-tools */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js"));
7791 var _resize = _interopRequireDefault(__webpack_require__(/*! ./views/resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js"));
7792 var _inPainting = _interopRequireDefault(__webpack_require__(/*! ./views/in-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js"));
7793 var _outPainting = _interopRequireDefault(__webpack_require__(/*! ./views/out-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js"));
7794 var _variations = _interopRequireDefault(__webpack_require__(/*! ./views/variations */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js"));
7795 var _replaceBackground = _interopRequireDefault(__webpack_require__(/*! ./views/replace-background */ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js"));
7796 var _removeBackground = _interopRequireDefault(__webpack_require__(/*! ./views/remove-background */ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js"));
7797 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7798 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7799 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");
7800 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); }
7801 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; }
7802 var MediaOutlet = function MediaOutlet() {
7803 var _useEditImage = (0, _editImageContext.useEditImage)(),
7804 editImage = _useEditImage.editImage;
7805 var _useLocation = (0, _locationContext.useLocation)({
7806 current: _constants.LOCATIONS.GENERATE
7807 }),
7808 current = _useLocation.current,
7809 navigate = _useLocation.navigate;
7810 (0, _react.useEffect)(function () {
7811 var isNotPlaceholderImage = editImage.id;
7812 if (isNotPlaceholderImage) {
7813 navigate(_constants.LOCATIONS.IMAGE_TOOLS);
7814 }
7815 }, [editImage.id]);
7816 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
7817 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
7818 handler: function handler() {
7819 if (current !== _constants.LOCATIONS.GENERATE) {
7820 navigate(_constants.LOCATIONS.GENERATE);
7821 }
7822 }
7823 }]);
7824 if (!current) {
7825 return /*#__PURE__*/_react.default.createElement(_view.default, {
7826 alignItems: "center"
7827 }, /*#__PURE__*/_react.default.createElement(_loader.default, null));
7828 }
7829 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));
7830 };
7831 var _default = MediaOutlet;
7832 exports["default"] = _default;
7833
7834 /***/ }),
7835
7836 /***/ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js":
7837 /*!**********************************************************************!*\
7838 !*** ../modules/ai/assets/js/editor/pages/form-media/utils/index.js ***!
7839 \**********************************************************************/
7840 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7841
7842 "use strict";
7843
7844
7845 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7846 Object.defineProperty(exports, "__esModule", ({
7847 value: true
7848 }));
7849 exports.getAspectRatioSizes = void 0;
7850 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7851 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7852 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7853 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; }
7854 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; }
7855 var getAspectRatioSizes = function getAspectRatioSizes(width, height) {
7856 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
7857 var targetRatio = width / height;
7858 var closestRatio = aspectRatios[0];
7859 var minDiff = Infinity;
7860 aspectRatios.forEach(function (ratio) {
7861 var _ratio$split$map = ratio.split(':').map(Number),
7862 _ratio$split$map2 = (0, _slicedToArray2.default)(_ratio$split$map, 2),
7863 w = _ratio$split$map2[0],
7864 h = _ratio$split$map2[1];
7865 var diff = Math.abs(targetRatio - w / h);
7866 if (diff < minDiff) {
7867 minDiff = diff;
7868 closestRatio = ratio;
7869 }
7870 });
7871 return _objectSpread({
7872 ratio: closestRatio
7873 }, _constants.IMAGE_ASPECT_RATIO[closestRatio]);
7874 };
7875 exports.getAspectRatioSizes = getAspectRatioSizes;
7876
7877 /***/ }),
7878
7879 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js":
7880 /*!****************************************************************************************************!*\
7881 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js ***!
7882 \****************************************************************************************************/
7883 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7884
7885 "use strict";
7886
7887
7888 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7889 Object.defineProperty(exports, "__esModule", ({
7890 value: true
7891 }));
7892 exports["default"] = void 0;
7893 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7894 var _react = __webpack_require__(/*! react */ "react");
7895 var _useImagesPreload2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-images-preload */ "../modules/ai/assets/js/editor/hooks/use-images-preload.js"));
7896 var _useSessionStorage2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-session-storage */ "../modules/ai/assets/js/editor/hooks/use-session-storage.js"));
7897 var shuffleImages = function shuffleImages(images) {
7898 return images.map(function (image) {
7899 return [Math.random(), image];
7900 }).sort(function (_ref, _ref2) {
7901 var _ref3 = (0, _slicedToArray2.default)(_ref, 1),
7902 a = _ref3[0];
7903 var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
7904 b = _ref4[0];
7905 return a - b;
7906 }).map(function (_ref5) {
7907 var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
7908 image = _ref6[1];
7909 return image;
7910 });
7911 };
7912 var useSuggestedImages = function useSuggestedImages(_ref7) {
7913 var selectedType = _ref7.selectedType;
7914 var _useState = (0, _react.useState)(false),
7915 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7916 isLoading = _useState2[0],
7917 setIsLoading = _useState2[1];
7918 var _useSessionStorage = (0, _useSessionStorage2.default)('ai-image-gallery', {
7919 images: []
7920 }),
7921 data = _useSessionStorage.data,
7922 setStateAndSessionData = _useSessionStorage.setStateAndSessionData;
7923 var _useImagesPreload = (0, _useImagesPreload2.default)(),
7924 ready = _useImagesPreload.ready,
7925 preloadImages = _useImagesPreload.preloadImages;
7926 var imagesData = (0, _react.useMemo)(function () {
7927 var shuffledImages = shuffleImages(data.images);
7928 if (!selectedType) {
7929 return shuffledImages;
7930 }
7931 var categoryImages = shuffledImages.filter(function (_ref8) {
7932 var imageType = _ref8.imageType;
7933 return imageType.includes(selectedType);
7934 });
7935
7936 // Some categories don't have images, so we TEMPORARLY fallback to the shuffled images.
7937 return categoryImages.length ? categoryImages : shuffledImages;
7938 }, [selectedType, data]);
7939 var fetchImages = function fetchImages() {
7940 setIsLoading(true);
7941 fetch('https://my.elementor.com/ai/images-prompt-gallery/ai-gallery.json').then(function (response) {
7942 return response.json();
7943 }).then(function (json) {
7944 return setStateAndSessionData(json);
7945 })
7946 // eslint-disable-next-line no-console
7947 .catch(function (e) {
7948 return console.log(e.message);
7949 }).finally(function () {
7950 return setIsLoading(false);
7951 });
7952 };
7953 (0, _react.useEffect)(function () {
7954 if (0 === (data === null || data === void 0 ? void 0 : data.images.length)) {
7955 fetchImages();
7956 return;
7957 }
7958 preloadImages(data.images.map(function (_ref9) {
7959 var thumbnailUrl = _ref9.thumbnailUrl;
7960 return thumbnailUrl;
7961 }));
7962 }, [data]);
7963 return {
7964 imagesData: imagesData,
7965 isLoading: !ready || isLoading
7966 };
7967 };
7968 var _default = useSuggestedImages;
7969 exports["default"] = _default;
7970
7971 /***/ }),
7972
7973 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js":
7974 /*!*************************************************************************************************!*\
7975 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js ***!
7976 \*************************************************************************************************/
7977 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7978
7979 "use strict";
7980
7981
7982 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7983 Object.defineProperty(exports, "__esModule", ({
7984 value: true
7985 }));
7986 exports["default"] = void 0;
7987 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
7988 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
7989 var useTextToImage = function useTextToImage(initialValue) {
7990 return (0, _useImagePrompt.default)(_api.getTextToImageGeneration, initialValue);
7991 };
7992 var _default = useTextToImage;
7993 exports["default"] = _default;
7994
7995 /***/ }),
7996
7997 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js":
7998 /*!*******************************************************************************!*\
7999 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js ***!
8000 \*******************************************************************************/
8001 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8002
8003 "use strict";
8004
8005
8006 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8007 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8008 Object.defineProperty(exports, "__esModule", ({
8009 value: true
8010 }));
8011 exports["default"] = void 0;
8012 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8013 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8014 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8015 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8016 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8017 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8018 var _gallery = _interopRequireDefault(__webpack_require__(/*! ../../components/gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
8019 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8020 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8021 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
8022 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
8023 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8024 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8025 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8026 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
8027 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8028 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8029 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8030 var _useSuggestedImages2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-suggested-images */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js"));
8031 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"));
8032 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8033 var _globalSettingsContext = __webpack_require__(/*! ../../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
8034 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");
8035 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); }
8036 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; }
8037 var getPromptPlaceholder = function getPromptPlaceholder(images) {
8038 if (!(images !== null && images !== void 0 && images.length)) {
8039 return (0, _i18n.__)('describe your image', 'elementor');
8040 }
8041 var randomImage = images[Math.floor(Math.random() * images.length)];
8042 return randomImage.prompt;
8043 };
8044 var Generate = function Generate() {
8045 var _useState = (0, _react.useState)(''),
8046 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8047 prompt = _useState2[0],
8048 setPrompt = _useState2[1];
8049 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
8050 initialImageType = _useGlobalSettings.initialImageType;
8051 var _usePromptSettings = (0, _usePromptSettings2.default)({
8052 type: initialImageType
8053 }),
8054 settings = _usePromptSettings.settings,
8055 updateSettings = _usePromptSettings.updateSettings,
8056 resetSettings = _usePromptSettings.resetSettings;
8057 var _useSuggestedImages = (0, _useSuggestedImages2.default)({
8058 selectedType: settings[_usePromptSettings2.IMAGE_TYPE]
8059 }),
8060 suggestedImages = _useSuggestedImages.imagesData,
8061 isPreloading = _useSuggestedImages.isLoading;
8062 var promptPlaceholder = getPromptPlaceholder(suggestedImages);
8063 var _useTextToImage = (0, _useTextToImage2.default)({}),
8064 generatedImages = _useTextToImage.data,
8065 setResult = _useTextToImage.setResult,
8066 send = _useTextToImage.send,
8067 isGenerating = _useTextToImage.isLoading,
8068 error = _useTextToImage.error,
8069 reset = _useTextToImage.reset;
8070 var _useImageActions = (0, _useImageActions2.default)(),
8071 use = _useImageActions.use,
8072 edit = _useImageActions.edit,
8073 isUploading = _useImageActions.isLoading;
8074 var isLoading = isPreloading || isGenerating || isUploading;
8075
8076 // The aspect ratio in the content view should only be updated when the generated images are updated.
8077 var generateAspectRatio = (0, _react.useMemo)(function () {
8078 return settings[_usePromptSettings2.IMAGE_RATIO];
8079 }, [generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result]);
8080 var handleSubmit = function handleSubmit(event) {
8081 event.preventDefault();
8082 send(prompt, settings);
8083 };
8084 var handleCopyPrompt = function handleCopyPrompt(_ref) {
8085 var _updateSettings;
8086 var selectedPrompt = _ref.prompt,
8087 imageType = _ref.imageType;
8088 setPrompt(selectedPrompt);
8089 var _imageType$split = imageType.split('/'),
8090 _imageType$split2 = (0, _slicedToArray2.default)(_imageType$split, 2),
8091 type = _imageType$split2[0],
8092 style = _imageType$split2[1];
8093 updateSettings((_updateSettings = {}, (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_TYPE, type), (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_STYLE, style), _updateSettings));
8094 };
8095 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
8096 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
8097 handler: function handler(action) {
8098 var _action$data, _action$data2, _action$data3, _action$data4;
8099 handleCopyPrompt({
8100 prompt: (_action$data = action.data) === null || _action$data === void 0 ? void 0 : _action$data.prompt,
8101 imageType: ((_action$data2 = action.data) === null || _action$data2 === void 0 ? void 0 : _action$data2.imageType) || ''
8102 });
8103 updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, (_action$data3 = action.data) === null || _action$data3 === void 0 ? void 0 : _action$data3.ratio));
8104 setResult((_action$data4 = action.data) === null || _action$data4 === void 0 ? void 0 : _action$data4.images, action.id);
8105 }
8106 }]);
8107 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8108 primary: (0, _i18n.__)('Imagine anything create everything', 'elementor'),
8109 secondary: (0, _i18n.__)('Generate images by selecting the desired type and style, and entering a prompt.', 'elementor')
8110 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8111 error: error,
8112 onRetry: handleSubmit
8113 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8114 onSubmit: handleSubmit
8115 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8116 "data-testid": "e-image-prompt",
8117 value: prompt,
8118 disabled: isLoading,
8119 placeholder: promptPlaceholder,
8120 onChange: setPrompt
8121 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
8122 disabled: isLoading,
8123 value: settings[_usePromptSettings2.IMAGE_TYPE],
8124 onChange: function onChange(event) {
8125 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
8126 }
8127 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
8128 type: settings[_usePromptSettings2.IMAGE_TYPE],
8129 value: settings[_usePromptSettings2.IMAGE_STYLE],
8130 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
8131 onChange: function onChange(event) {
8132 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
8133 }
8134 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
8135 disabled: isLoading,
8136 value: settings[_usePromptSettings2.IMAGE_RATIO],
8137 onChange: function onChange(event) {
8138 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
8139 }
8140 }), generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8141 gap: 2,
8142 sx: {
8143 my: 2.5
8144 }
8145 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8146 disabled: isLoading || '' === prompt
8147 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8148 disabled: isLoading,
8149 onClick: function onClick() {
8150 resetSettings();
8151 setPrompt('');
8152 reset();
8153 }
8154 })) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
8155 disabled: isLoading || '' === prompt
8156 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8157 isLoading: isPreloading || isUploading,
8158 isGenerating: isGenerating
8159 }, generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8160 images: generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result,
8161 aspectRatio: generateAspectRatio,
8162 onUseImage: use,
8163 onEditImage: edit
8164 }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_view.default.ContentHeading, {
8165 primary: (0, _i18n.__)('Spark your imagination with images generated by our community', 'elementor')
8166 }), /*#__PURE__*/_react.default.createElement(_gallery.default, {
8167 cols: 3
8168 }, suggestedImages === null || suggestedImages === void 0 ? void 0 : suggestedImages.map(function (suggestedPrompt) {
8169 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
8170 variant: "thumbnail",
8171 key: suggestedPrompt.prompt,
8172 alt: suggestedPrompt.prompt,
8173 text: suggestedPrompt.prompt,
8174 src: suggestedPrompt.thumbnailUrl
8175 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8176 onClick: function onClick() {
8177 return use(suggestedPrompt);
8178 },
8179 fullWidth: true
8180 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.CopyIcon, {
8181 onClick: function onClick() {
8182 return handleCopyPrompt(suggestedPrompt);
8183 }
8184 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
8185 onClick: function onClick() {
8186 return edit(suggestedPrompt);
8187 }
8188 })));
8189 })))));
8190 };
8191 var _default = Generate;
8192 exports["default"] = _default;
8193
8194 /***/ }),
8195
8196 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js":
8197 /*!************************************************************************************************!*\
8198 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js ***!
8199 \************************************************************************************************/
8200 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8201
8202 "use strict";
8203
8204
8205 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8206 Object.defineProperty(exports, "__esModule", ({
8207 value: true
8208 }));
8209 exports["default"] = void 0;
8210 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8211 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
8212 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8213 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8214 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8215 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8216 var ImageToolsContent = function ImageToolsContent() {
8217 var _useEditImage = (0, _editImageContext.useEditImage)(),
8218 editImage = _useEditImage.editImage,
8219 width = _useEditImage.width,
8220 height = _useEditImage.height;
8221 var _useImageActions = (0, _useImageActions2.default)(),
8222 use = _useImageActions.use;
8223 return /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
8224 src: editImage.url,
8225 style: {
8226 width: width,
8227 height: height
8228 },
8229 alt: editImage.alt || (0, _i18n.__)('Image preview', 'elementor')
8230 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8231 onClick: function onClick() {
8232 return use(editImage);
8233 }
8234 }))));
8235 };
8236 var _default = ImageToolsContent;
8237 exports["default"] = _default;
8238
8239 /***/ }),
8240
8241 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js":
8242 /*!**********************************************************************************************!*\
8243 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js ***!
8244 \**********************************************************************************************/
8245 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8246
8247 "use strict";
8248
8249
8250 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8251 Object.defineProperty(exports, "__esModule", ({
8252 value: true
8253 }));
8254 exports["default"] = void 0;
8255 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8256 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8257 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8258 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8259 var _expandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/expand-icon */ "../modules/ai/assets/js/editor/icons/expand-icon.js"));
8260 var _brushIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/brush-icon */ "../modules/ai/assets/js/editor/icons/brush-icon.js"));
8261 var _evolveIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/evolve-icon */ "../modules/ai/assets/js/editor/icons/evolve-icon.js"));
8262 var _enlargerIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/enlarger-icon */ "../modules/ai/assets/js/editor/icons/enlarger-icon.js"));
8263 var _removeBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/remove-bg */ "../modules/ai/assets/js/editor/icons/remove-bg.js"));
8264 var _replaceBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/replace-bg */ "../modules/ai/assets/js/editor/icons/replace-bg.js"));
8265 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8266 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8267 var TeaserDrawing = function TeaserDrawing() {
8268 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, {
8269 viewBox: "0 0 184 80",
8270 sx: {
8271 width: 184,
8272 height: 80
8273 }
8274 }, /*#__PURE__*/_react.default.createElement("g", {
8275 clipPath: "url(#clip0_3127_96542)"
8276 }, /*#__PURE__*/_react.default.createElement("path", {
8277 fillRule: "evenodd",
8278 clipRule: "evenodd",
8279 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",
8280 fill: "#69727D"
8281 }), /*#__PURE__*/_react.default.createElement("path", {
8282 fillRule: "evenodd",
8283 clipRule: "evenodd",
8284 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",
8285 fill: "#69727D"
8286 }), /*#__PURE__*/_react.default.createElement("path", {
8287 d: "M53.9717 12L57.2198 17.0456L3.24796 51.4731L-0.000164873 46.4275L53.9717 12Z",
8288 fill: "#69727D"
8289 }), /*#__PURE__*/_react.default.createElement("path", {
8290 d: "M64.9761 5L68.2242 10.0456L57.2612 17.0387L54.013 11.9931L64.9761 5Z",
8291 fill: "#E6E8EA"
8292 }), /*#__PURE__*/_react.default.createElement("path", {
8293 fillRule: "evenodd",
8294 clipRule: "evenodd",
8295 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",
8296 fill: "#69727D"
8297 }), /*#__PURE__*/_react.default.createElement("path", {
8298 fillRule: "evenodd",
8299 clipRule: "evenodd",
8300 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",
8301 fill: "#69727D"
8302 }), /*#__PURE__*/_react.default.createElement("path", {
8303 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",
8304 fill: "#E6E8EA"
8305 }), /*#__PURE__*/_react.default.createElement("path", {
8306 fillRule: "evenodd",
8307 clipRule: "evenodd",
8308 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",
8309 fill: "#69727D"
8310 }), /*#__PURE__*/_react.default.createElement("path", {
8311 fillRule: "evenodd",
8312 clipRule: "evenodd",
8313 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",
8314 fill: "#69727D"
8315 }), /*#__PURE__*/_react.default.createElement("path", {
8316 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",
8317 fill: "#E6E8EA"
8318 }), /*#__PURE__*/_react.default.createElement("path", {
8319 fillRule: "evenodd",
8320 clipRule: "evenodd",
8321 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",
8322 fill: "#69727D"
8323 }), /*#__PURE__*/_react.default.createElement("path", {
8324 fillRule: "evenodd",
8325 clipRule: "evenodd",
8326 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",
8327 fill: "#69727D"
8328 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
8329 id: "clip0_3127_96542"
8330 }, /*#__PURE__*/_react.default.createElement("rect", {
8331 width: "184",
8332 height: "80",
8333 fill: "white"
8334 }))));
8335 };
8336 var ImageToolsContainer = (0, _ui.styled)(_ui.Box)(function (_ref) {
8337 var theme = _ref.theme;
8338 return {
8339 height: "calc(100% - ".concat(theme.spacing(13), ")")
8340 };
8341 });
8342 var ToolsTeaserContainer = (0, _ui.styled)(_ui.Box)(function (_ref2) {
8343 var theme = _ref2.theme;
8344 return {
8345 position: 'sticky',
8346 top: '100%',
8347 padding: theme.spacing(4, 0, 1)
8348 };
8349 });
8350 var ImageToolsPanel = function ImageToolsPanel() {
8351 var _useLocation = (0, _locationContext.useLocation)(),
8352 navigate = _useLocation.navigate;
8353 var tools = [{
8354 label: (0, _i18n.__)('Expand Image', 'elementor'),
8355 Icon: _expandIcon.default,
8356 onClick: function onClick() {
8357 return navigate(_constants.LOCATIONS.OUT_PAINTING);
8358 }
8359 }, {
8360 label: (0, _i18n.__)('Generative Fill', 'elementor'),
8361 Icon: _brushIcon.default,
8362 onClick: function onClick() {
8363 return navigate(_constants.LOCATIONS.IN_PAINTING);
8364 }
8365 }, {
8366 label: (0, _i18n.__)('Resize', 'elementor'),
8367 Icon: _enlargerIcon.default,
8368 onClick: function onClick() {
8369 return navigate(_constants.LOCATIONS.RESIZE);
8370 }
8371 }, {
8372 label: (0, _i18n.__)('Variations', 'elementor'),
8373 Icon: _evolveIcon.default,
8374 onClick: function onClick() {
8375 return navigate(_constants.LOCATIONS.VARIATIONS);
8376 }
8377 }, {
8378 label: (0, _i18n.__)('Remove Background', 'elementor'),
8379 Icon: _removeBg.default,
8380 onClick: function onClick() {
8381 return navigate(_constants.LOCATIONS.REMOVE_BACKGROUND);
8382 }
8383 }, {
8384 label: (0, _i18n.__)('Replace Background', 'elementor'),
8385 Icon: _replaceBg.default,
8386 onClick: function onClick() {
8387 return navigate(_constants.LOCATIONS.REPLACE_BACKGROUND);
8388 }
8389 }];
8390 return /*#__PURE__*/_react.default.createElement(ImageToolsContainer, null, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8391 display: "grid",
8392 gridTemplateColumns: "repeat(2, 1fr)",
8393 gap: 1,
8394 justifyContent: "center"
8395 }, tools.map(function (_ref3) {
8396 var label = _ref3.label,
8397 Icon = _ref3.Icon,
8398 onClick = _ref3.onClick;
8399 return /*#__PURE__*/_react.default.createElement(_ui.Button, {
8400 onClick: onClick,
8401 key: label,
8402 variant: "outlined",
8403 color: "secondary",
8404 disabled: false,
8405 sx: {
8406 py: 3,
8407 fontSize: '12px',
8408 height: 'auto',
8409 borderRadius: '4px'
8410 }
8411 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8412 display: "flex",
8413 justifyContent: "center",
8414 alignItems: "center",
8415 flexDirection: "column"
8416 }, /*#__PURE__*/_react.default.createElement(Icon, {
8417 sx: {
8418 mb: 0.5
8419 }
8420 }), label));
8421 })), /*#__PURE__*/_react.default.createElement(ToolsTeaserContainer, {
8422 display: "flex",
8423 flexDirection: "column",
8424 alignItems: "center"
8425 }, /*#__PURE__*/_react.default.createElement(TeaserDrawing, null), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
8426 variant: "body2",
8427 align: "center",
8428 color: "secondary",
8429 sx: {
8430 mt: 2
8431 }
8432 }, (0, _i18n.__)('Stay tuned! More incredible AI tools are coming your way soon.', 'elementor'))));
8433 };
8434 ImageToolsPanel.propTypes = {
8435 generateNewPrompt: _propTypes.default.func,
8436 panelActive: _propTypes.default.bool
8437 };
8438 var _default = ImageToolsPanel;
8439 exports["default"] = _default;
8440
8441 /***/ }),
8442
8443 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js":
8444 /*!**********************************************************************************!*\
8445 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js ***!
8446 \**********************************************************************************/
8447 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8448
8449 "use strict";
8450
8451
8452 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8453 Object.defineProperty(exports, "__esModule", ({
8454 value: true
8455 }));
8456 exports["default"] = void 0;
8457 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8458 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8459 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8460 var _imageToolsPanel = _interopRequireDefault(__webpack_require__(/*! ./image-tools-panel */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js"));
8461 var _imageToolsContent = _interopRequireDefault(__webpack_require__(/*! ./image-tools-content */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js"));
8462 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8463 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8464 var ImageTools = function ImageTools() {
8465 var _useLocation = (0, _locationContext.useLocation)(),
8466 navigate = _useLocation.navigate;
8467 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, {
8468 onClick: function onClick() {
8469 return navigate(_constants.LOCATIONS.GENERATE);
8470 }
8471 }, (0, _i18n.__)('Generate with a prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8472 primary: (0, _i18n.__)('Edit with AI', 'elementor')
8473 }), /*#__PURE__*/_react.default.createElement(_imageToolsPanel.default, null)), /*#__PURE__*/_react.default.createElement(_view.default.Content, null, /*#__PURE__*/_react.default.createElement(_imageToolsContent.default, null)));
8474 };
8475 var _default = ImageTools;
8476 exports["default"] = _default;
8477
8478 /***/ }),
8479
8480 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js":
8481 /*!**************************************************************************************************!*\
8482 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js ***!
8483 \**************************************************************************************************/
8484 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8485
8486 "use strict";
8487
8488
8489 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8490 Object.defineProperty(exports, "__esModule", ({
8491 value: true
8492 }));
8493 exports["default"] = void 0;
8494 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8495 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8496 var useInPainting = function useInPainting(initialValue) {
8497 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8498 return (0, _api.getImageToImageMaskGeneration)(prompt, promptSettings, image, mask);
8499 };
8500 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8501 };
8502 var _default = useInPainting;
8503 exports["default"] = _default;
8504
8505 /***/ }),
8506
8507 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js":
8508 /*!************************************************************************************************!*\
8509 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js ***!
8510 \************************************************************************************************/
8511 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8512
8513 "use strict";
8514
8515
8516 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8517 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8518 Object.defineProperty(exports, "__esModule", ({
8519 value: true
8520 }));
8521 exports["default"] = void 0;
8522 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8523 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
8524 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8525 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8526 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8527 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8528 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8529 var _reactSketchCanvas = __webpack_require__(/*! react-sketch-canvas */ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js");
8530 var _undoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/undo-icon */ "../modules/ai/assets/js/editor/icons/undo-icon.js"));
8531 var _redoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/redo-icon */ "../modules/ai/assets/js/editor/icons/redo-icon.js"));
8532 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); }
8533 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; }
8534 var STROKE_SELECT_WIDTH = 120;
8535 var BRUSH_COLOR = 'rgba(0, 0, 0, 0.75)';
8536 var StyledUndoIcon = (0, _ui.withDirection)(_undoIcon.default);
8537 var StyledRedoIcon = (0, _ui.withDirection)(_redoIcon.default);
8538 var BrushCursor = (0, _ui.styled)(_ui.Box, {
8539 shouldForwardProp: function shouldForwardProp(prop) {
8540 return 'size' === prop;
8541 }
8542 })(function (_ref) {
8543 var theme = _ref.theme,
8544 size = _ref.size;
8545 return {
8546 position: 'absolute',
8547 width: size,
8548 height: size,
8549 borderRadius: '50%',
8550 backgroundColor: BRUSH_COLOR,
8551 pointerEvents: 'none',
8552 transform: "translate(".concat('rtl' === theme.direction ? '50%' : '-50%', ", -50%)"),
8553 border: "1px solid #fff"
8554 };
8555 });
8556 var BrishSizeIcon = (0, _ui.styled)(_ui.Box, {
8557 shouldForwardProp: function shouldForwardProp(prop) {
8558 return 'size' === prop;
8559 }
8560 })(function (_ref2) {
8561 var theme = _ref2.theme,
8562 size = _ref2.size;
8563 return {
8564 width: size / 2,
8565 height: size / 2,
8566 borderRadius: '50%',
8567 backgroundColor: theme.palette.secondary.main
8568 };
8569 });
8570 var InPaintingContent = function InPaintingContent(_ref3) {
8571 var editImage = _ref3.editImage,
8572 setMask = _ref3.setMask,
8573 canvasWidth = _ref3.width,
8574 canvasHeight = _ref3.height;
8575 var sketchRef = (0, _react.useRef)();
8576 var _useState = (0, _react.useState)(30),
8577 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8578 stroke = _useState2[0],
8579 setStroke = _useState2[1];
8580 var brushCursorRef = (0, _react.useRef)();
8581 (0, _react.useEffect)(function () {
8582 var canvas = document.querySelector('.eui-in-painting-canvas');
8583
8584 // The BrushCursor should follow the mouse position but should stay only inside the canvas.
8585 var positionElement = function positionElement(e) {
8586 var _canvas$getBoundingCl = canvas.getBoundingClientRect(),
8587 left = _canvas$getBoundingCl.left,
8588 top = _canvas$getBoundingCl.top,
8589 width = _canvas$getBoundingCl.width,
8590 height = _canvas$getBoundingCl.height;
8591 var x = e.clientX - left;
8592 var y = e.clientY - top;
8593 if (x > 0 && x < width && y > 0 && y < height) {
8594 brushCursorRef.current.style.left = "".concat(x, "px");
8595 brushCursorRef.current.style.top = "".concat(y, "px");
8596 }
8597 };
8598 window.addEventListener('mousemove', positionElement);
8599 return function () {
8600 window.removeEventListener('mousemove', positionElement);
8601 };
8602 }, [stroke]);
8603 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8604 alignItems: "flex-start",
8605 spacing: 0.5,
8606 flexGrow: 1
8607 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8608 width: "100%",
8609 direction: "row",
8610 spacing: 3,
8611 alignSelf: "center",
8612 justifyContent: "center",
8613 sx: {
8614 mb: 2.5
8615 }
8616 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8617 direction: "row",
8618 gap: 1
8619 }, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8620 title: (0, _i18n.__)('Undo', 'elementor')
8621 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8622 variant: "outlined",
8623 color: "secondary",
8624 onClick: function onClick() {
8625 return sketchRef.current.undo();
8626 },
8627 sx: {
8628 px: 0
8629 }
8630 }, /*#__PURE__*/_react.default.createElement(StyledUndoIcon, null))), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8631 title: (0, _i18n.__)('Redo', 'elementor')
8632 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8633 variant: "outlined",
8634 color: "secondary",
8635 onClick: function onClick() {
8636 return sketchRef.current.redo();
8637 },
8638 sx: {
8639 px: 0
8640 }
8641 }, /*#__PURE__*/_react.default.createElement(StyledRedoIcon, null)))), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
8642 size: "small",
8643 color: "secondary",
8644 sx: {
8645 minWidth: STROKE_SELECT_WIDTH
8646 }
8647 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
8648 id: "stroke"
8649 }, "Stroke"), /*#__PURE__*/_react.default.createElement(_ui.Select, {
8650 autoWidth: true,
8651 label: "Stroke",
8652 value: stroke,
8653 id: "demo-simple-select",
8654 labelId: "demo-simple-select-label",
8655 onChange: function onChange(e) {
8656 return setStroke(e.target.value);
8657 },
8658 MenuProps: {
8659 PaperProps: {
8660 sx: {
8661 maxWidth: STROKE_SELECT_WIDTH
8662 }
8663 },
8664 MenuListProps: {
8665 sx: {
8666 minWidth: STROKE_SELECT_WIDTH
8667 }
8668 }
8669 },
8670 sx: {
8671 '& .MuiSelect-select .MuiListItemIcon-root': {
8672 mr: 0.25,
8673 width: 'initial',
8674 minWidth: 'initial',
8675 justifyContent: 'flex-start'
8676 }
8677 }
8678 }, [10, 20, 30, 40, 50].map(function (value) {
8679 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
8680 key: 'stroke-width-option-' + value,
8681 value: value
8682 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8683 direction: "row",
8684 alignItems: "center",
8685 gap: 1
8686 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, {
8687 sx: {
8688 width: 30,
8689 display: 'flex',
8690 justifyContent: 'center'
8691 }
8692 }, /*#__PURE__*/_react.default.createElement(BrishSizeIcon, {
8693 size: value
8694 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, null, value)));
8695 })))), /*#__PURE__*/_react.default.createElement("div", {
8696 style: {
8697 margin: '0 auto',
8698 position: 'relative',
8699 cursor: 'none',
8700 overflow: 'hidden'
8701 }
8702 }, /*#__PURE__*/_react.default.createElement(BrushCursor, {
8703 ref: brushCursorRef,
8704 size: stroke
8705 }), /*#__PURE__*/_react.default.createElement(_reactSketchCanvas.ReactSketchCanvas, {
8706 className: "eui-in-painting-canvas",
8707 withViewBox: true,
8708 ref: sketchRef,
8709 height: canvasHeight + 'px',
8710 width: canvasWidth + 'px',
8711 strokeWidth: stroke,
8712 strokeColor: BRUSH_COLOR,
8713 backgroundImage: editImage.url,
8714 onChange: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
8715 var svg;
8716 return _regenerator.default.wrap(function _callee$(_context) {
8717 while (1) switch (_context.prev = _context.next) {
8718 case 0:
8719 _context.next = 2;
8720 return sketchRef.current.exportSvg();
8721 case 2:
8722 svg = _context.sent;
8723 setMask(svg);
8724 case 4:
8725 case "end":
8726 return _context.stop();
8727 }
8728 }, _callee);
8729 }))
8730 })));
8731 };
8732 InPaintingContent.propTypes = {
8733 setMask: _propTypes.default.func.isRequired,
8734 width: _propTypes.default.number.isRequired,
8735 height: _propTypes.default.number.isRequired,
8736 editImage: _propTypes.default.object.isRequired
8737 };
8738 var _default = InPaintingContent;
8739 exports["default"] = _default;
8740
8741 /***/ }),
8742
8743 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js":
8744 /*!**********************************************************************************!*\
8745 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js ***!
8746 \**********************************************************************************/
8747 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8748
8749 "use strict";
8750
8751
8752 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8753 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8754 Object.defineProperty(exports, "__esModule", ({
8755 value: true
8756 }));
8757 exports["default"] = void 0;
8758 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8759 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8760 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8761 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8762 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8763 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8764 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8765 var _inPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./in-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js"));
8766 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8767 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8768 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8769 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8770 var _usePromptSettings2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8771 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"));
8772 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8773 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8774 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); }
8775 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; }
8776 var InPainting = function InPainting() {
8777 var _useState = (0, _react.useState)(''),
8778 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8779 prompt = _useState2[0],
8780 setPrompt = _useState2[1];
8781 var _useState3 = (0, _react.useState)(''),
8782 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8783 mask = _useState4[0],
8784 setMask = _useState4[1];
8785 var _usePromptSettings = (0, _usePromptSettings2.default)(),
8786 settings = _usePromptSettings.settings,
8787 resetSettings = _usePromptSettings.resetSettings;
8788 var _useEditImage = (0, _editImageContext.useEditImage)(),
8789 editImage = _useEditImage.editImage,
8790 width = _useEditImage.width,
8791 height = _useEditImage.height;
8792 var _useImageActions = (0, _useImageActions2.default)(),
8793 use = _useImageActions.use,
8794 edit = _useImageActions.edit,
8795 isUploading = _useImageActions.isLoading;
8796 var _useInPainting = (0, _useInPainting2.default)(),
8797 data = _useInPainting.data,
8798 send = _useInPainting.send,
8799 isGenerating = _useInPainting.isLoading,
8800 error = _useInPainting.error,
8801 reset = _useInPainting.reset;
8802 var isLoading = isGenerating || isUploading;
8803 var handleSubmit = function handleSubmit(event) {
8804 event.preventDefault();
8805
8806 // The fallback instruction should be hidden for the user.
8807 var finalPrompt = prompt || 'Remove object and fill based on the surroundings';
8808 send(finalPrompt, settings, editImage, mask);
8809 };
8810 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, {
8811 primary: (0, _i18n.__)('Generative Fill', 'elementor'),
8812 secondary: (0, _i18n.__)('Mark an area and edit it with a prompt.', 'elementor')
8813 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8814 error: error,
8815 onRetry: handleSubmit
8816 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8817 onSubmit: handleSubmit
8818 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8819 value: prompt,
8820 disabled: isLoading,
8821 onChange: setPrompt,
8822 placeholder: (0, _i18n.__)('Describe what you want to generate in the marked area (English only)', 'elementor')
8823 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8824 gap: 2,
8825 sx: {
8826 my: 2.5
8827 }
8828 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8829 disabled: isLoading
8830 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8831 disabled: isLoading,
8832 onClick: function onClick() {
8833 resetSettings();
8834 setPrompt('');
8835 reset();
8836 }
8837 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
8838 disabled: isLoading
8839 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8840 isGenerating: isLoading
8841 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8842 images: data.result,
8843 aspectRatio: editImage.aspectRatio,
8844 onUseImage: use,
8845 onEditImage: edit
8846 }) : /*#__PURE__*/_react.default.createElement(_inPaintingContent.default, {
8847 editImage: editImage,
8848 width: width,
8849 height: height,
8850 setMask: setMask
8851 })));
8852 };
8853 var _default = InPainting;
8854 exports["default"] = _default;
8855
8856 /***/ }),
8857
8858 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js":
8859 /*!****************************************************************************************************!*\
8860 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js ***!
8861 \****************************************************************************************************/
8862 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8863
8864 "use strict";
8865
8866
8867 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8868 Object.defineProperty(exports, "__esModule", ({
8869 value: true
8870 }));
8871 exports["default"] = void 0;
8872 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8873 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8874 var useOutPainting = function useOutPainting(initialValue) {
8875 var fetchAction = function fetchAction(prompt, promptSettings, image, mask) {
8876 return (0, _api.getImageToImageOutPainting)(prompt, promptSettings, image, mask);
8877 };
8878 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8879 };
8880 var _default = useOutPainting;
8881 exports["default"] = _default;
8882
8883 /***/ }),
8884
8885 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js":
8886 /*!***********************************************************************************!*\
8887 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js ***!
8888 \***********************************************************************************/
8889 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8890
8891 "use strict";
8892
8893
8894 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8895 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8896 Object.defineProperty(exports, "__esModule", ({
8897 value: true
8898 }));
8899 exports["default"] = void 0;
8900 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8901 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8902 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8903 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8904 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8905 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8906 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8907 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8908 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
8909 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8910 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8911 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8912 var _outPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./out-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js"));
8913 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8914 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8915 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8916 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8917 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"));
8918 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); }
8919 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; }
8920 var OutPainting = function OutPainting() {
8921 var _useState = (0, _react.useState)(''),
8922 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8923 prompt = _useState2[0],
8924 setPrompt = _useState2[1];
8925 var _useEditImage = (0, _editImageContext.useEditImage)(),
8926 editImage = _useEditImage.editImage,
8927 initialAspectRatio = _useEditImage.aspectRatio;
8928 var _useState3 = (0, _react.useState)(''),
8929 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8930 mask = _useState4[0],
8931 setMask = _useState4[1];
8932 var _usePromptSettings = (0, _usePromptSettings2.default)({
8933 aspectRatio: initialAspectRatio
8934 }),
8935 settings = _usePromptSettings.settings,
8936 updateSettings = _usePromptSettings.updateSettings,
8937 resetSettings = _usePromptSettings.resetSettings;
8938 var _useImageActions = (0, _useImageActions2.default)(),
8939 use = _useImageActions.use,
8940 edit = _useImageActions.edit,
8941 isUploading = _useImageActions.isLoading;
8942 var _useOutPainting = (0, _useOutPainting2.default)(),
8943 data = _useOutPainting.data,
8944 send = _useOutPainting.send,
8945 isGenerating = _useOutPainting.isLoading,
8946 error = _useOutPainting.error,
8947 reset = _useOutPainting.reset;
8948 var isLoading = isGenerating || isUploading;
8949 var generatedAspectRatio = (0, _react.useMemo)(function () {
8950 return settings[_usePromptSettings2.IMAGE_RATIO];
8951 }, [data === null || data === void 0 ? void 0 : data.result]);
8952 var hasGeneratedResult = !!(data !== null && data !== void 0 && data.result);
8953 var handleSubmit = function handleSubmit(event) {
8954 event.preventDefault();
8955
8956 // The fallback instruction should be hidden for the user.
8957 var finalPrompt = prompt || 'Fill based on the surroundings';
8958 send(finalPrompt, settings, editImage, mask);
8959 };
8960 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, {
8961 primary: (0, _i18n.__)('Expand Image', 'elementor'),
8962 secondary: (0, _i18n.__)('Position image in it’s new size to generate content around the edges.', 'elementor')
8963 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8964 error: error,
8965 onRetry: handleSubmit
8966 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8967 onSubmit: handleSubmit
8968 }, /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
8969 disabled: isLoading || hasGeneratedResult,
8970 value: settings[_usePromptSettings2.IMAGE_RATIO],
8971 onChange: function onChange(event) {
8972 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
8973 }
8974 }), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
8975 sx: {
8976 width: '100%',
8977 mb: 2.5
8978 }
8979 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
8980 marks: true,
8981 id: "zoom",
8982 name: "zoom",
8983 max: 2,
8984 min: 0.1,
8985 step: 0.1,
8986 color: "secondary",
8987 defaultValue: 1,
8988 disabled: isLoading || hasGeneratedResult,
8989 valueLabelDisplay: "auto",
8990 "aria-labelledby": "image-size-slider",
8991 "aria-label": (0, _i18n.__)('Reference strength', 'elementor'),
8992 onChange: function onChange(_, value) {
8993 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_ZOOM, value));
8994 }
8995 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
8996 id: "image-size-slider",
8997 variant: "caption",
8998 gutterBottom: true
8999 }, (0, _i18n.__)('Original image size', 'elementor'))), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9000 value: prompt,
9001 disabled: isLoading,
9002 onChange: setPrompt,
9003 placeholder: (0, _i18n.__)('Describe what you want to generate in the expended area (English only)', 'elementor')
9004 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9005 gap: 2,
9006 sx: {
9007 my: 2.5
9008 }
9009 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9010 disabled: isLoading
9011 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9012 disabled: isLoading,
9013 onClick: function onClick() {
9014 resetSettings();
9015 setPrompt('');
9016 reset();
9017 }
9018 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9019 disabled: isLoading
9020 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9021 isGenerating: isLoading
9022 }, hasGeneratedResult ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9023 onUseImage: use,
9024 onEditImage: edit,
9025 images: data.result,
9026 aspectRatio: generatedAspectRatio
9027 }) : /*#__PURE__*/_react.default.createElement(_outPaintingContent.default, {
9028 setMask: setMask,
9029 editImage: editImage,
9030 scale: settings[_usePromptSettings2.IMAGE_ZOOM],
9031 aspectRatio: settings[_usePromptSettings2.IMAGE_RATIO]
9032 })));
9033 };
9034 var _default = OutPainting;
9035 exports["default"] = _default;
9036
9037 /***/ }),
9038
9039 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js":
9040 /*!**************************************************************************************************!*\
9041 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js ***!
9042 \**************************************************************************************************/
9043 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9044
9045 "use strict";
9046
9047
9048 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9049 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9050 Object.defineProperty(exports, "__esModule", ({
9051 value: true
9052 }));
9053 exports["default"] = void 0;
9054 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9055 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9056 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9057 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9058 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9059 var _reactAvatarEditor = _interopRequireDefault(__webpack_require__(/*! react-avatar-editor */ "../node_modules/react-avatar-editor/dist/index.js"));
9060 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9061 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); }
9062 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; }
9063 var OutPaintingContent = function OutPaintingContent(_ref) {
9064 var scale = _ref.scale,
9065 setMask = _ref.setMask,
9066 editImage = _ref.editImage,
9067 aspectRatio = _ref.aspectRatio;
9068 var cropperRef = (0, _react.useRef)();
9069 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
9070 width = _useImageSize.width,
9071 height = _useImageSize.height;
9072 var updateMask = /*#__PURE__*/function () {
9073 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
9074 var imageDataURL;
9075 return _regenerator.default.wrap(function _callee$(_context) {
9076 while (1) switch (_context.prev = _context.next) {
9077 case 0:
9078 _context.next = 2;
9079 return cropperRef.current.getImageScaledToCanvas().toDataURL();
9080 case 2:
9081 imageDataURL = _context.sent;
9082 setMask(imageDataURL);
9083 case 4:
9084 case "end":
9085 return _context.stop();
9086 }
9087 }, _callee);
9088 }));
9089 return function updateMask() {
9090 return _ref2.apply(this, arguments);
9091 };
9092 }();
9093 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9094 alignItems: 'center',
9095 spacing: 0.5,
9096 flexGrow: 1
9097 }, /*#__PURE__*/_react.default.createElement(_reactAvatarEditor.default, {
9098 ref: cropperRef,
9099 image: editImage.url,
9100 style: {
9101 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%)',
9102 backgroundSize: '20px 20px',
9103 backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0px',
9104 outline: '2px dashed #000',
9105 marginTop: '12px'
9106 },
9107 color: [0, 0, 0, 0.9],
9108 rotate: 0,
9109 border: 0,
9110 allowZoomOut: true,
9111 backgroundColor: 'transparent',
9112 showGrid: true,
9113 onImageChange: function onImageChange() {
9114 return updateMask();
9115 },
9116 onPositionChange: function onPositionChange() {
9117 return updateMask();
9118 },
9119 width: width,
9120 height: height,
9121 scale: scale
9122 }));
9123 };
9124 OutPaintingContent.propTypes = {
9125 scale: _propTypes.default.number.isRequired,
9126 setMask: _propTypes.default.func.isRequired,
9127 editImage: _propTypes.default.object.isRequired,
9128 aspectRatio: _propTypes.default.string.isRequired
9129 };
9130 var _default = OutPaintingContent;
9131 exports["default"] = _default;
9132
9133 /***/ }),
9134
9135 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js":
9136 /*!**************************************************************************************************************!*\
9137 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js ***!
9138 \**************************************************************************************************************/
9139 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9140
9141 "use strict";
9142
9143
9144 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9145 Object.defineProperty(exports, "__esModule", ({
9146 value: true
9147 }));
9148 exports["default"] = void 0;
9149 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9150 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9151 var useRemoveBackground = function useRemoveBackground(initialValue) {
9152 var fetchAction = function fetchAction(image) {
9153 return (0, _api.getImageToImageRemoveBackground)(image);
9154 };
9155 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9156 };
9157 var _default = useRemoveBackground;
9158 exports["default"] = _default;
9159
9160 /***/ }),
9161
9162 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js":
9163 /*!****************************************************************************************!*\
9164 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js ***!
9165 \****************************************************************************************/
9166 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9167
9168 "use strict";
9169
9170
9171 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9172 Object.defineProperty(exports, "__esModule", ({
9173 value: true
9174 }));
9175 exports["default"] = void 0;
9176 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9177 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9178 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9179 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9180 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9181 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9182 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9183 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9184 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9185 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9186 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"));
9187 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9188 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9189 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9190 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9191 var RemoveBackground = function RemoveBackground() {
9192 var _useEditImage = (0, _editImageContext.useEditImage)(),
9193 editImage = _useEditImage.editImage;
9194 var _useImageActions = (0, _useImageActions2.default)(),
9195 use = _useImageActions.use,
9196 edit = _useImageActions.edit,
9197 isUploading = _useImageActions.isLoading;
9198 var _useRemoveBackground = (0, _useRemoveBackground2.default)(),
9199 data = _useRemoveBackground.data,
9200 send = _useRemoveBackground.send,
9201 isGenerating = _useRemoveBackground.isLoading,
9202 error = _useRemoveBackground.error;
9203 var _useLocation = (0, _locationContext.useLocation)(),
9204 navigate = _useLocation.navigate;
9205 var isLoading = isGenerating || isUploading;
9206 var _useImageSize = (0, _useImageSize2.default)(editImage.aspectRatio),
9207 width = _useImageSize.width,
9208 height = _useImageSize.height;
9209 var handleSubmit = function handleSubmit(event) {
9210 event.preventDefault();
9211 send(editImage);
9212 };
9213 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, {
9214 primary: (0, _i18n.__)('Remove Background', 'elementor'),
9215 secondary: (0, _i18n.__)('Create an image of the subject with a transparent background', 'elementor')
9216 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9217 error: error,
9218 onRetry: handleSubmit
9219 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9220 onSubmit: handleSubmit
9221 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9222 variant: "contained",
9223 disabled: isLoading,
9224 onClick: function onClick() {
9225 return navigate(_constants.LOCATIONS.GENERATE);
9226 }
9227 }) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9228 disabled: isLoading
9229 }, (0, _i18n.__)('Remove Background', 'elementor')))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9230 isGenerating: isLoading
9231 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9232 transparentContainer: true,
9233 onUseImage: use,
9234 onEditImage: edit,
9235 images: data.result,
9236 aspectRatio: editImage.aspectRatio
9237 })) : /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9238 src: editImage.url,
9239 alt: editImage.alt,
9240 style: {
9241 width: width,
9242 height: height
9243 }
9244 })))));
9245 };
9246 var _default = RemoveBackground;
9247 exports["default"] = _default;
9248
9249 /***/ }),
9250
9251 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js":
9252 /*!****************************************************************************************************************!*\
9253 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js ***!
9254 \****************************************************************************************************************/
9255 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9256
9257 "use strict";
9258
9259
9260 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9261 Object.defineProperty(exports, "__esModule", ({
9262 value: true
9263 }));
9264 exports["default"] = void 0;
9265 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9266 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9267 var useReplaceBackground = function useReplaceBackground(initialValue) {
9268 var fetchAction = function fetchAction(prompt, image) {
9269 return (0, _api.getImageToImageReplaceBackground)(prompt, image);
9270 };
9271 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9272 };
9273 var _default = useReplaceBackground;
9274 exports["default"] = _default;
9275
9276 /***/ }),
9277
9278 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js":
9279 /*!*****************************************************************************************!*\
9280 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js ***!
9281 \*****************************************************************************************/
9282 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9283
9284 "use strict";
9285
9286
9287 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9288 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9289 Object.defineProperty(exports, "__esModule", ({
9290 value: true
9291 }));
9292 exports["default"] = void 0;
9293 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9294 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9295 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9296 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9297 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9298 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9299 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9300 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9301 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9302 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9303 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"));
9304 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9305 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9306 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9307 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9308 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); }
9309 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; }
9310 var ReplaceBackground = function ReplaceBackground() {
9311 var _useState = (0, _react.useState)(''),
9312 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9313 prompt = _useState2[0],
9314 setPrompt = _useState2[1];
9315 var _useEditImage = (0, _editImageContext.useEditImage)(),
9316 editImage = _useEditImage.editImage;
9317 var _useImageActions = (0, _useImageActions2.default)(),
9318 use = _useImageActions.use,
9319 edit = _useImageActions.edit,
9320 isUploading = _useImageActions.isLoading;
9321 var _useReplaceBackground = (0, _useReplaceBackground2.default)(),
9322 data = _useReplaceBackground.data,
9323 send = _useReplaceBackground.send,
9324 isGenerating = _useReplaceBackground.isLoading,
9325 error = _useReplaceBackground.error,
9326 reset = _useReplaceBackground.reset;
9327 var _useLocation = (0, _locationContext.useLocation)(),
9328 navigate = _useLocation.navigate;
9329 var isLoading = isGenerating || isUploading;
9330 var handleSubmit = function handleSubmit(event) {
9331 event.preventDefault();
9332 send(prompt, editImage);
9333 };
9334 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, {
9335 primary: (0, _i18n.__)('Replace Background', 'elementor'),
9336 secondary: (0, _i18n.__)('Generate a new background with a prompt.', 'elementor')
9337 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9338 error: error,
9339 onRetry: handleSubmit
9340 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9341 onSubmit: handleSubmit
9342 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
9343 value: prompt,
9344 disabled: isLoading,
9345 onChange: setPrompt,
9346 placeholder: (0, _i18n.__)('Describe what you want to generate in the background (English only)', 'elementor')
9347 }), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9348 disabled: isLoading || '' === prompt,
9349 color: data !== null && data !== void 0 && data.result ? 'secondary' : 'primary'
9350 }, 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, {
9351 disabled: isLoading,
9352 onClick: function onClick() {
9353 return navigate(_constants.LOCATIONS.GENERATE);
9354 }
9355 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9356 isGenerating: isLoading
9357 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9358 onUseImage: use,
9359 onEditImage: edit,
9360 images: data.result,
9361 aspectRatio: editImage.aspectRatio
9362 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9363 src: editImage.url,
9364 alt: editImage.alt,
9365 style: {
9366 width: editImage.width,
9367 height: editImage.height
9368 }
9369 }))));
9370 };
9371 var _default = ReplaceBackground;
9372 exports["default"] = _default;
9373
9374 /***/ }),
9375
9376 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js":
9377 /*!****************************************************************************************!*\
9378 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js ***!
9379 \****************************************************************************************/
9380 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9381
9382 "use strict";
9383
9384
9385 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9386 Object.defineProperty(exports, "__esModule", ({
9387 value: true
9388 }));
9389 exports["default"] = void 0;
9390 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9391 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9392 var useResize = function useResize(initialValue) {
9393 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9394 return (0, _api.getImageToImageUpscale)(prompt, promptSettings, image);
9395 };
9396 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9397 };
9398 var _default = useResize;
9399 exports["default"] = _default;
9400
9401 /***/ }),
9402
9403 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js":
9404 /*!*****************************************************************************!*\
9405 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js ***!
9406 \*****************************************************************************/
9407 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9408
9409 "use strict";
9410
9411
9412 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9413 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9414 Object.defineProperty(exports, "__esModule", ({
9415 value: true
9416 }));
9417 exports["default"] = void 0;
9418 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9419 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9420 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9421 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9422 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9423 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9424 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9425 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9426 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9427 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9428 var _useResize2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js"));
9429 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9430 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9431 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); }
9432 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; }
9433 var Resize = function Resize() {
9434 var _useEditImage = (0, _editImageContext.useEditImage)(),
9435 editImage = _useEditImage.editImage,
9436 initialEditImageWidth = _useEditImage.width;
9437 var _useImageActions = (0, _useImageActions2.default)(),
9438 use = _useImageActions.use,
9439 edit = _useImageActions.edit,
9440 isUploading = _useImageActions.isLoading;
9441 var _usePromptSettings = (0, _usePromptSettings2.default)(),
9442 settings = _usePromptSettings.settings,
9443 updateSettings = _usePromptSettings.updateSettings;
9444 var _useResize = (0, _useResize2.default)(),
9445 data = _useResize.data,
9446 send = _useResize.send,
9447 isGenerating = _useResize.isLoading,
9448 error = _useResize.error;
9449 var isLoading = isGenerating || isUploading;
9450 var handleSubmit = function handleSubmit(event) {
9451 event.preventDefault();
9452 send(null, settings, editImage);
9453 };
9454 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, {
9455 primary: (0, _i18n.__)('Resize', 'elementor'),
9456 secondary: (0, _i18n.__)('Make an image larger and improve it’s resolution.', 'elementor')
9457 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9458 error: error,
9459 onRetry: handleSubmit
9460 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9461 onSubmit: handleSubmit
9462 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9463 spacing: 0.2
9464 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9465 display: "flex",
9466 justifyContent: "space-between",
9467 alignItems: "center"
9468 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9469 variant: "caption"
9470 }, "512px"), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9471 variant: "caption"
9472 }, "2048px")), /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9473 marks: true,
9474 step: 64,
9475 min: 512,
9476 max: 2048,
9477 id: "upscale_to",
9478 color: "secondary",
9479 name: "upscale_to",
9480 disabled: isLoading,
9481 defaultValue: initialEditImageWidth,
9482 valueLabelDisplay: "auto",
9483 "aria-label": (0, _i18n.__)('Upscale to', 'elementor'),
9484 onChange: function onChange(_, value) {
9485 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_UPSCALE, value));
9486 }
9487 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
9488 display: "flex",
9489 justifyContent: "space-between",
9490 alignItems: "center"
9491 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9492 variant: "caption"
9493 }, (0, _i18n.__)('Current', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9494 variant: "caption"
9495 }, (0, _i18n.__)('Output', 'elementor')))), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9496 disabled: isLoading
9497 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9498 isGenerating: isLoading
9499 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9500 onUseImage: use,
9501 onEditImage: edit,
9502 images: data.result,
9503 aspectRatio: editImage.aspectRatio
9504 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9505 src: editImage.url,
9506 alt: editImage.alt,
9507 style: {
9508 width: editImage.width,
9509 height: editImage.height
9510 }
9511 }))));
9512 };
9513 var _default = Resize;
9514 exports["default"] = _default;
9515
9516 /***/ }),
9517
9518 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js":
9519 /*!*************************************************************************************************************!*\
9520 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js ***!
9521 \*************************************************************************************************************/
9522 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9523
9524 "use strict";
9525
9526
9527 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9528 Object.defineProperty(exports, "__esModule", ({
9529 value: true
9530 }));
9531 exports["default"] = void 0;
9532 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9533 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9534 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9535 var VariationsPlaceholder = function VariationsPlaceholder() {
9536 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9537 sx: {
9538 overflowY: 'scroll'
9539 },
9540 flexGrow: 1
9541 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9542 display: "grid",
9543 gridTemplateColumns: "repeat(2, 1fr)",
9544 gap: 3
9545 }, Array(4).fill(true).map(function (_, index) {
9546 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9547 key: "placeholder-".concat(index),
9548 display: "flex",
9549 justifyContent: "center",
9550 alignItems: "center",
9551 sx: {
9552 bgcolor: 'action.selected',
9553 height: 336
9554 }
9555 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9556 color: "secondary",
9557 sx: {
9558 fontSize: 36
9559 }
9560 }));
9561 })));
9562 };
9563 VariationsPlaceholder.propTypes = {};
9564 var _default = VariationsPlaceholder;
9565 exports["default"] = _default;
9566
9567 /***/ }),
9568
9569 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js":
9570 /*!****************************************************************************************************!*\
9571 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js ***!
9572 \****************************************************************************************************/
9573 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9574
9575 "use strict";
9576
9577
9578 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9579 Object.defineProperty(exports, "__esModule", ({
9580 value: true
9581 }));
9582 exports["default"] = void 0;
9583 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9584 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9585 var useImageToImage = function useImageToImage(initialValue) {
9586 var fetchAction = function fetchAction(prompt, promptSettings, image) {
9587 return (0, _api.getImageToImageGeneration)(prompt, promptSettings, image);
9588 };
9589 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9590 };
9591 var _default = useImageToImage;
9592 exports["default"] = _default;
9593
9594 /***/ }),
9595
9596 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js":
9597 /*!*********************************************************************************!*\
9598 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js ***!
9599 \*********************************************************************************/
9600 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9601
9602 "use strict";
9603
9604
9605 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9606 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9607 Object.defineProperty(exports, "__esModule", ({
9608 value: true
9609 }));
9610 exports["default"] = void 0;
9611 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9612 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9613 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9614 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9615 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9616 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9617 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9618 var _imageStrengthSlider = _interopRequireDefault(__webpack_require__(/*! ../../components/image-strength-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js"));
9619 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9620 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
9621 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
9622 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
9623 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9624 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
9625 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9626 var _variationsPlaceholder = _interopRequireDefault(__webpack_require__(/*! ./components/variations-placeholder */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js"));
9627 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"));
9628 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9629 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9630 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9631 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); }
9632 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; }
9633 var IMAGE_WEIGHT_DEFAULT = 45;
9634 var Variations = function Variations() {
9635 var _data$result;
9636 var _useState = (0, _react.useState)(''),
9637 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9638 prompt = _useState2[0],
9639 setPrompt = _useState2[1];
9640 var _useEditImage = (0, _editImageContext.useEditImage)(),
9641 editImage = _useEditImage.editImage,
9642 initialAspectRatio = _useEditImage.aspectRatio;
9643 var _usePromptSettings = (0, _usePromptSettings2.default)({
9644 aspectRatio: initialAspectRatio,
9645 imageWeight: IMAGE_WEIGHT_DEFAULT
9646 }),
9647 settings = _usePromptSettings.settings,
9648 updateSettings = _usePromptSettings.updateSettings;
9649 var _useImageToImage = (0, _useImageToImage2.default)(),
9650 data = _useImageToImage.data,
9651 send = _useImageToImage.send,
9652 isGenerating = _useImageToImage.isLoading,
9653 error = _useImageToImage.error;
9654 var _useImageActions = (0, _useImageActions2.default)(),
9655 use = _useImageActions.use,
9656 edit = _useImageActions.edit,
9657 isUploading = _useImageActions.isLoading;
9658 var isLoading = isGenerating || isUploading;
9659 var generatedAspectRatio = (0, _react.useMemo)(function () {
9660 return settings[_usePromptSettings2.IMAGE_RATIO];
9661 }, [data === null || data === void 0 ? void 0 : data.result]);
9662 var handleSubmit = function handleSubmit(event) {
9663 event.preventDefault();
9664 send(prompt, settings, editImage);
9665 };
9666 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, {
9667 primary: (0, _i18n.__)('Variations', 'elementor'),
9668 secondary: (0, _i18n.__)('Create new versions of the original image.', 'elementor')
9669 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9670 error: error,
9671 onRetry: handleSubmit
9672 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9673 onSubmit: handleSubmit
9674 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9675 sx: {
9676 display: 'flex',
9677 alignItems: 'center',
9678 justifyContent: 'center',
9679 bgcolor: 'action.selected'
9680 }
9681 }, /*#__PURE__*/_react.default.createElement("img", {
9682 src: (editImage === null || editImage === void 0 ? void 0 : editImage.image_url) || (editImage === null || editImage === void 0 ? void 0 : editImage.url),
9683 alt: prompt,
9684 style: {
9685 width: 'auto',
9686 height: 'auto',
9687 maxWidth: '100%',
9688 maxHeight: 166,
9689 objectFit: 'contained'
9690 }
9691 })), /*#__PURE__*/_react.default.createElement(_imageStrengthSlider.default, {
9692 disabled: isLoading,
9693 defaultValue: IMAGE_WEIGHT_DEFAULT,
9694 onChange: function onChange(event) {
9695 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STRENGTH, event.target.value));
9696 }
9697 }), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9698 value: prompt,
9699 disabled: isLoading,
9700 placeholder: (0, _i18n.__)('describe your image', 'elementor'),
9701 onChange: setPrompt
9702 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
9703 disabled: isLoading,
9704 value: settings[_usePromptSettings2.IMAGE_TYPE],
9705 onChange: function onChange(event) {
9706 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
9707 }
9708 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
9709 type: settings[_usePromptSettings2.IMAGE_TYPE],
9710 value: settings[_usePromptSettings2.IMAGE_STYLE],
9711 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
9712 onChange: function onChange(event) {
9713 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
9714 }
9715 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9716 disabled: isLoading,
9717 value: settings[_usePromptSettings2.IMAGE_RATIO],
9718 onChange: function onChange(event) {
9719 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9720 }
9721 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9722 gap: 2,
9723 sx: {
9724 my: 2.5
9725 }
9726 }, (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, {
9727 disabled: isLoading || '' === prompt
9728 }) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
9729 disabled: isLoading || '' === prompt
9730 })))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9731 isGenerating: isLoading
9732 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9733 images: data.result,
9734 aspectRatio: generatedAspectRatio,
9735 onUseImage: use,
9736 onEditImage: edit
9737 }) : /*#__PURE__*/_react.default.createElement(_variationsPlaceholder.default, null)));
9738 };
9739 Variations.propTypes = {};
9740 var _default = Variations;
9741 exports["default"] = _default;
9742
9743 /***/ }),
9744
9745 /***/ "../modules/ai/assets/js/editor/pages/form-text/index.js":
9746 /*!***************************************************************!*\
9747 !*** ../modules/ai/assets/js/editor/pages/form-text/index.js ***!
9748 \***************************************************************/
9749 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9750
9751 "use strict";
9752
9753
9754 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9755 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9756 Object.defineProperty(exports, "__esModule", ({
9757 value: true
9758 }));
9759 exports["default"] = void 0;
9760 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9761 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9762 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9763 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9764 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9765 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9766 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9767 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9768 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
9769 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
9770 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
9771 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
9772 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
9773 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
9774 var _promptAction = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action */ "../modules/ai/assets/js/editor/components/prompt-action.js"));
9775 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
9776 var _useTextPrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-text-prompt */ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js"));
9777 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
9778 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");
9779 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); }
9780 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; }
9781 var promptActions = [{
9782 label: (0, _i18n.__)('Simplify language', 'elementor'),
9783 icon: /*#__PURE__*/_react.default.createElement(_icons.MessageIcon, {
9784 fontSize: "small"
9785 }),
9786 value: 'Simplify the language of the following message'
9787 }, {
9788 label: (0, _i18n.__)('Make it longer', 'elementor'),
9789 icon: /*#__PURE__*/_react.default.createElement(_icons.ExpandIcon, {
9790 fontSize: "small"
9791 }),
9792 value: 'Make the following message longer'
9793 }, {
9794 label: (0, _i18n.__)('Make it shorter', 'elementor'),
9795 icon: /*#__PURE__*/_react.default.createElement(_icons.ShrinkIcon, {
9796 fontSize: "small"
9797 }),
9798 value: 'Make the following message shorter'
9799 }, {
9800 label: (0, _i18n.__)('Fix spelling & grammar', 'elementor'),
9801 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9802 fontSize: "small"
9803 }),
9804 value: 'Fix the spelling and grammar of the following message'
9805 }];
9806 var promptInstructions = [{
9807 label: (0, _i18n.__)('Change tone', 'elementor'),
9808 options: _actionsData.vocalTones,
9809 getInstruction: function getInstruction(value) {
9810 return "Change the tone of the following message to ".concat(value);
9811 }
9812 }, {
9813 label: (0, _i18n.__)('Translate to', 'elementor'),
9814 options: _actionsData.translateLanguages,
9815 getInstruction: function getInstruction(value) {
9816 return "Translate the following message to ".concat(value);
9817 }
9818 }];
9819 var FormText = function FormText(_ref) {
9820 var type = _ref.type,
9821 onClose = _ref.onClose,
9822 getControlValue = _ref.getControlValue,
9823 setControlValue = _ref.setControlValue,
9824 additionalOptions = _ref.additionalOptions,
9825 credits = _ref.credits,
9826 children = _ref.children;
9827 var initialValue = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? '' : getControlValue();
9828 var _useTextPrompt = (0, _useTextPrompt2.default)({
9829 result: initialValue,
9830 credits: credits
9831 }),
9832 data = _useTextPrompt.data,
9833 isLoading = _useTextPrompt.isLoading,
9834 error = _useTextPrompt.error,
9835 setResult = _useTextPrompt.setResult,
9836 reset = _useTextPrompt.reset,
9837 send = _useTextPrompt.send,
9838 sendUsageData = _useTextPrompt.sendUsageData;
9839 var _useState = (0, _react.useState)(''),
9840 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9841 prompt = _useState2[0],
9842 setPrompt = _useState2[1];
9843 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
9844 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
9845 handler: function handler(action) {
9846 reset();
9847 setPrompt(action.data);
9848 }
9849 }, {
9850 type: _promptHistoryActionContext.ACTION_TYPES.EDIT,
9851 handler: function handler(action) {
9852 setResult(action.data);
9853 }
9854 }]);
9855 var searchField = (0, _react.useRef)(null);
9856 var resultField = (0, _react.useRef)(null);
9857 var lastRun = (0, _react.useRef)(function () {});
9858 var autocompleteItems = 'textarea' === type ? _actionsData.textareaAutocomplete : _actionsData.textAutocomplete;
9859 var showSuggestions = !prompt;
9860 var handleSubmit = function handleSubmit(event) {
9861 event.preventDefault();
9862 lastRun.current = function () {
9863 return send(prompt);
9864 };
9865 lastRun.current();
9866 };
9867 var handleCustomInstruction = /*#__PURE__*/function () {
9868 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(instruction) {
9869 return _regenerator.default.wrap(function _callee$(_context) {
9870 while (1) switch (_context.prev = _context.next) {
9871 case 0:
9872 lastRun.current = function () {
9873 return send(resultField.current.value, instruction);
9874 };
9875 lastRun.current();
9876 case 2:
9877 case "end":
9878 return _context.stop();
9879 }
9880 }, _callee);
9881 }));
9882 return function handleCustomInstruction(_x) {
9883 return _ref2.apply(this, arguments);
9884 };
9885 }();
9886 var handleSuggestion = function handleSuggestion(suggestion) {
9887 setPrompt(suggestion + ' ');
9888 searchField.current.focus();
9889 };
9890 var applyPrompt = function applyPrompt() {
9891 sendUsageData();
9892 setControlValue(resultField.current.value);
9893 onClose();
9894 };
9895 if (isLoading) {
9896 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
9897 }
9898 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
9899 error: error,
9900 onRetry: lastRun.current,
9901 sx: {
9902 mb: 2.5
9903 }
9904 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9905 component: "form",
9906 onSubmit: handleSubmit
9907 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9908 sx: {
9909 mb: 2.5
9910 }
9911 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
9912 ref: searchField,
9913 placeholder: (0, _i18n.__)('Describe the text and tone you want to use...', 'elementor'),
9914 name: "prompt",
9915 value: prompt,
9916 onChange: function onChange(event) {
9917 return setPrompt(event.target.value);
9918 }
9919 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
9920 suggestions: autocompleteItems,
9921 onSelect: handleSuggestion,
9922 suggestionFilter: function suggestionFilter(suggestion) {
9923 return suggestion + '...';
9924 }
9925 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9926 direction: "row",
9927 alignItems: "center",
9928 sx: {
9929 py: 1.5,
9930 mt: 4
9931 }
9932 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9933 direction: "row",
9934 justifyContent: "flex-end",
9935 flexGrow: 1
9936 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate text', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
9937 sx: {
9938 mt: 1
9939 }
9940 }, /*#__PURE__*/_react.default.createElement(_textarea.default, {
9941 fullWidth: true,
9942 ref: resultField,
9943 value: data.result,
9944 helperText: (0, _i18n.__)('Text generated by AI may be inaccurate or offensive.', 'elementor'),
9945 onChange: function onChange(event) {
9946 return setResult(event.target.value);
9947 }
9948 }), /*#__PURE__*/_react.default.createElement(_ui.Grid, {
9949 container: true,
9950 spacing: 1,
9951 sx: {
9952 mt: 2.5
9953 }
9954 }, promptActions.map(function (_ref3) {
9955 var label = _ref3.label,
9956 icon = _ref3.icon,
9957 value = _ref3.value;
9958 return /*#__PURE__*/_react.default.createElement(_ui.Grid, {
9959 item: true,
9960 key: label
9961 }, /*#__PURE__*/_react.default.createElement(_promptAction.default, {
9962 label: label,
9963 icon: icon,
9964 onClick: function onClick() {
9965 return handleCustomInstruction(value);
9966 }
9967 }));
9968 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9969 direction: "row",
9970 alignItems: "center",
9971 spacing: 1,
9972 sx: {
9973 mt: 2.5
9974 }
9975 }, promptInstructions.map(function (_ref4) {
9976 var label = _ref4.label,
9977 options = _ref4.options,
9978 getInstruction = _ref4.getInstruction;
9979 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, {
9980 key: label,
9981 label: label,
9982 options: options,
9983 onChange: function onChange(event) {
9984 return handleCustomInstruction(getInstruction(event.target.value));
9985 }
9986 });
9987 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9988 direction: "row",
9989 alignItems: "center",
9990 sx: {
9991 my: 1
9992 }
9993 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9994 direction: "row",
9995 gap: 1,
9996 justifyContent: "flex-end",
9997 flexGrow: 1
9998 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
9999 size: "small",
10000 color: "secondary",
10001 variant: "text",
10002 onClick: reset
10003 }, (0, _i18n.__)('New prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
10004 size: "small",
10005 variant: "contained",
10006 color: "primary",
10007 onClick: applyPrompt
10008 }, (0, _i18n.__)('Use text', 'elementor'))))));
10009 };
10010 FormText.propTypes = {
10011 type: _propTypes.default.string.isRequired,
10012 controlType: _propTypes.default.string,
10013 onClose: _propTypes.default.func.isRequired,
10014 getControlValue: _propTypes.default.func.isRequired,
10015 setControlValue: _propTypes.default.func.isRequired,
10016 additionalOptions: _propTypes.default.object,
10017 credits: _propTypes.default.number,
10018 usagePercentage: _propTypes.default.number,
10019 children: _propTypes.default.node
10020 };
10021 var _default = FormText;
10022 exports["default"] = _default;
10023
10024 /***/ }),
10025
10026 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
10027 /*!*****************************************************************!*\
10028 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
10029 \*****************************************************************/
10030 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10031
10032 "use strict";
10033
10034
10035 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10036 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
10037 Object.defineProperty(exports, "__esModule", ({
10038 value: true
10039 }));
10040 exports["default"] = void 0;
10041 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
10042 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10043 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10044 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
10045 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
10046 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10047 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
10048 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
10049 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
10050 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); }
10051 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; }
10052 var GetStarted = function GetStarted(_ref) {
10053 var onSuccess = _ref.onSuccess;
10054 var _useState = (0, _react.useState)(false),
10055 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
10056 isTermsChecked = _useState2[0],
10057 setIsTermsChecked = _useState2[1];
10058 var onGetStartedClick = /*#__PURE__*/function () {
10059 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
10060 return _regenerator.default.wrap(function _callee$(_context) {
10061 while (1) switch (_context.prev = _context.next) {
10062 case 0:
10063 _context.next = 2;
10064 return (0, _api.setGetStarted)();
10065 case 2:
10066 onSuccess();
10067 case 3:
10068 case "end":
10069 return _context.stop();
10070 }
10071 }, _callee);
10072 }));
10073 return function onGetStartedClick() {
10074 return _ref2.apply(this, arguments);
10075 };
10076 }();
10077 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10078 alignItems: "center",
10079 gap: 1.5
10080 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
10081 sx: {
10082 color: 'text.primary',
10083 fontSize: '60px',
10084 mb: 1
10085 }
10086 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10087 variant: "h4",
10088 sx: {
10089 color: 'text.primary'
10090 }
10091 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10092 variant: "body2"
10093 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10094 direction: "row",
10095 gap: 1.5,
10096 alignItems: "flex-start"
10097 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
10098 id: "e-ai-terms-approval",
10099 color: "secondary",
10100 sx: {
10101 p: 0
10102 },
10103 onChange: function onChange() {
10104 return setIsTermsChecked(function (prevState) {
10105 return !prevState;
10106 });
10107 }
10108 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10109 variant: "caption",
10110 sx: {
10111 maxWidth: 520
10112 },
10113 component: "label",
10114 htmlFor: "e-ai-terms-approval"
10115 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
10116 href: "https://go.elementor.com/ai-terms/",
10117 target: "_blank",
10118 color: "info.main"
10119 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
10120 href: "https://go.elementor.com/ai-privacy-policy/",
10121 target: "_blank",
10122 color: "info.main"
10123 }, (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, {
10124 disabled: !isTermsChecked,
10125 variant: "contained",
10126 onClick: onGetStartedClick,
10127 sx: {
10128 mt: 1,
10129 '&:hover': {
10130 color: 'primary.contrastText'
10131 }
10132 }
10133 }, (0, _i18n.__)('Get Started', 'elementor')));
10134 };
10135 GetStarted.propTypes = {
10136 onSuccess: _propTypes.default.func.isRequired
10137 };
10138 var _default = GetStarted;
10139 exports["default"] = _default;
10140
10141 /***/ }),
10142
10143 /***/ "../node_modules/clsx/dist/clsx.m.js":
10144 /*!*******************************************!*\
10145 !*** ../node_modules/clsx/dist/clsx.m.js ***!
10146 \*******************************************/
10147 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10148
10149 "use strict";
10150 __webpack_require__.r(__webpack_exports__);
10151 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10152 /* harmony export */ clsx: () => (/* binding */ clsx),
10153 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10154 /* harmony export */ });
10155 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);
10156
10157 /***/ }),
10158
10159 /***/ "../node_modules/debug/src/browser.js":
10160 /*!********************************************!*\
10161 !*** ../node_modules/debug/src/browser.js ***!
10162 \********************************************/
10163 /***/ ((module, exports, __webpack_require__) => {
10164
10165 /* eslint-env browser */
10166
10167 /**
10168 * This is the web browser implementation of `debug()`.
10169 */
10170
10171 exports.formatArgs = formatArgs;
10172 exports.save = save;
10173 exports.load = load;
10174 exports.useColors = useColors;
10175 exports.storage = localstorage();
10176 exports.destroy = (() => {
10177 let warned = false;
10178
10179 return () => {
10180 if (!warned) {
10181 warned = true;
10182 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10183 }
10184 };
10185 })();
10186
10187 /**
10188 * Colors.
10189 */
10190
10191 exports.colors = [
10192 '#0000CC',
10193 '#0000FF',
10194 '#0033CC',
10195 '#0033FF',
10196 '#0066CC',
10197 '#0066FF',
10198 '#0099CC',
10199 '#0099FF',
10200 '#00CC00',
10201 '#00CC33',
10202 '#00CC66',
10203 '#00CC99',
10204 '#00CCCC',
10205 '#00CCFF',
10206 '#3300CC',
10207 '#3300FF',
10208 '#3333CC',
10209 '#3333FF',
10210 '#3366CC',
10211 '#3366FF',
10212 '#3399CC',
10213 '#3399FF',
10214 '#33CC00',
10215 '#33CC33',
10216 '#33CC66',
10217 '#33CC99',
10218 '#33CCCC',
10219 '#33CCFF',
10220 '#6600CC',
10221 '#6600FF',
10222 '#6633CC',
10223 '#6633FF',
10224 '#66CC00',
10225 '#66CC33',
10226 '#9900CC',
10227 '#9900FF',
10228 '#9933CC',
10229 '#9933FF',
10230 '#99CC00',
10231 '#99CC33',
10232 '#CC0000',
10233 '#CC0033',
10234 '#CC0066',
10235 '#CC0099',
10236 '#CC00CC',
10237 '#CC00FF',
10238 '#CC3300',
10239 '#CC3333',
10240 '#CC3366',
10241 '#CC3399',
10242 '#CC33CC',
10243 '#CC33FF',
10244 '#CC6600',
10245 '#CC6633',
10246 '#CC9900',
10247 '#CC9933',
10248 '#CCCC00',
10249 '#CCCC33',
10250 '#FF0000',
10251 '#FF0033',
10252 '#FF0066',
10253 '#FF0099',
10254 '#FF00CC',
10255 '#FF00FF',
10256 '#FF3300',
10257 '#FF3333',
10258 '#FF3366',
10259 '#FF3399',
10260 '#FF33CC',
10261 '#FF33FF',
10262 '#FF6600',
10263 '#FF6633',
10264 '#FF9900',
10265 '#FF9933',
10266 '#FFCC00',
10267 '#FFCC33'
10268 ];
10269
10270 /**
10271 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
10272 * and the Firebug extension (any Firefox version) are known
10273 * to support "%c" CSS customizations.
10274 *
10275 * TODO: add a `localStorage` variable to explicitly enable/disable colors
10276 */
10277
10278 // eslint-disable-next-line complexity
10279 function useColors() {
10280 // NB: In an Electron preload script, document will be defined but not fully
10281 // initialized. Since we know we're in Chrome, we'll just detect this case
10282 // explicitly
10283 if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
10284 return true;
10285 }
10286
10287 // Internet Explorer and Edge do not support colors.
10288 if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
10289 return false;
10290 }
10291
10292 // Is webkit? http://stackoverflow.com/a/16459606/376773
10293 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
10294 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
10295 // Is firebug? http://stackoverflow.com/a/398120/376773
10296 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
10297 // Is firefox >= v31?
10298 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
10299 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
10300 // Double check webkit in userAgent just in case we are in a worker
10301 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
10302 }
10303
10304 /**
10305 * Colorize log arguments if enabled.
10306 *
10307 * @api public
10308 */
10309
10310 function formatArgs(args) {
10311 args[0] = (this.useColors ? '%c' : '') +
10312 this.namespace +
10313 (this.useColors ? ' %c' : ' ') +
10314 args[0] +
10315 (this.useColors ? '%c ' : ' ') +
10316 '+' + module.exports.humanize(this.diff);
10317
10318 if (!this.useColors) {
10319 return;
10320 }
10321
10322 const c = 'color: ' + this.color;
10323 args.splice(1, 0, c, 'color: inherit');
10324
10325 // The final "%c" is somewhat tricky, because there could be other
10326 // arguments passed either before or after the %c, so we need to
10327 // figure out the correct index to insert the CSS into
10328 let index = 0;
10329 let lastC = 0;
10330 args[0].replace(/%[a-zA-Z%]/g, match => {
10331 if (match === '%%') {
10332 return;
10333 }
10334 index++;
10335 if (match === '%c') {
10336 // We only are interested in the *last* %c
10337 // (the user may have provided their own)
10338 lastC = index;
10339 }
10340 });
10341
10342 args.splice(lastC, 0, c);
10343 }
10344
10345 /**
10346 * Invokes `console.debug()` when available.
10347 * No-op when `console.debug` is not a "function".
10348 * If `console.debug` is not available, falls back
10349 * to `console.log`.
10350 *
10351 * @api public
10352 */
10353 exports.log = console.debug || console.log || (() => {});
10354
10355 /**
10356 * Save `namespaces`.
10357 *
10358 * @param {String} namespaces
10359 * @api private
10360 */
10361 function save(namespaces) {
10362 try {
10363 if (namespaces) {
10364 exports.storage.setItem('debug', namespaces);
10365 } else {
10366 exports.storage.removeItem('debug');
10367 }
10368 } catch (error) {
10369 // Swallow
10370 // XXX (@Qix-) should we be logging these?
10371 }
10372 }
10373
10374 /**
10375 * Load `namespaces`.
10376 *
10377 * @return {String} returns the previously persisted debug modes
10378 * @api private
10379 */
10380 function load() {
10381 let r;
10382 try {
10383 r = exports.storage.getItem('debug');
10384 } catch (error) {
10385 // Swallow
10386 // XXX (@Qix-) should we be logging these?
10387 }
10388
10389 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
10390 if (!r && typeof process !== 'undefined' && 'env' in process) {
10391 r = process.env.DEBUG;
10392 }
10393
10394 return r;
10395 }
10396
10397 /**
10398 * Localstorage attempts to return the localstorage.
10399 *
10400 * This is necessary because safari throws
10401 * when a user disables cookies/localstorage
10402 * and you attempt to access it.
10403 *
10404 * @return {LocalStorage}
10405 * @api private
10406 */
10407
10408 function localstorage() {
10409 try {
10410 // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
10411 // The Browser also has localStorage in the global context.
10412 return localStorage;
10413 } catch (error) {
10414 // Swallow
10415 // XXX (@Qix-) should we be logging these?
10416 }
10417 }
10418
10419 module.exports = __webpack_require__(/*! ./common */ "../node_modules/debug/src/common.js")(exports);
10420
10421 const {formatters} = module.exports;
10422
10423 /**
10424 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
10425 */
10426
10427 formatters.j = function (v) {
10428 try {
10429 return JSON.stringify(v);
10430 } catch (error) {
10431 return '[UnexpectedJSONParseError]: ' + error.message;
10432 }
10433 };
10434
10435
10436 /***/ }),
10437
10438 /***/ "../node_modules/debug/src/common.js":
10439 /*!*******************************************!*\
10440 !*** ../node_modules/debug/src/common.js ***!
10441 \*******************************************/
10442 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10443
10444
10445 /**
10446 * This is the common logic for both the Node.js and web browser
10447 * implementations of `debug()`.
10448 */
10449
10450 function setup(env) {
10451 createDebug.debug = createDebug;
10452 createDebug.default = createDebug;
10453 createDebug.coerce = coerce;
10454 createDebug.disable = disable;
10455 createDebug.enable = enable;
10456 createDebug.enabled = enabled;
10457 createDebug.humanize = __webpack_require__(/*! ms */ "../node_modules/ms/index.js");
10458 createDebug.destroy = destroy;
10459
10460 Object.keys(env).forEach(key => {
10461 createDebug[key] = env[key];
10462 });
10463
10464 /**
10465 * The currently active debug mode names, and names to skip.
10466 */
10467
10468 createDebug.names = [];
10469 createDebug.skips = [];
10470
10471 /**
10472 * Map of special "%n" handling functions, for the debug "format" argument.
10473 *
10474 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
10475 */
10476 createDebug.formatters = {};
10477
10478 /**
10479 * Selects a color for a debug namespace
10480 * @param {String} namespace The namespace string for the debug instance to be colored
10481 * @return {Number|String} An ANSI color code for the given namespace
10482 * @api private
10483 */
10484 function selectColor(namespace) {
10485 let hash = 0;
10486
10487 for (let i = 0; i < namespace.length; i++) {
10488 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
10489 hash |= 0; // Convert to 32bit integer
10490 }
10491
10492 return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
10493 }
10494 createDebug.selectColor = selectColor;
10495
10496 /**
10497 * Create a debugger with the given `namespace`.
10498 *
10499 * @param {String} namespace
10500 * @return {Function}
10501 * @api public
10502 */
10503 function createDebug(namespace) {
10504 let prevTime;
10505 let enableOverride = null;
10506 let namespacesCache;
10507 let enabledCache;
10508
10509 function debug(...args) {
10510 // Disabled?
10511 if (!debug.enabled) {
10512 return;
10513 }
10514
10515 const self = debug;
10516
10517 // Set `diff` timestamp
10518 const curr = Number(new Date());
10519 const ms = curr - (prevTime || curr);
10520 self.diff = ms;
10521 self.prev = prevTime;
10522 self.curr = curr;
10523 prevTime = curr;
10524
10525 args[0] = createDebug.coerce(args[0]);
10526
10527 if (typeof args[0] !== 'string') {
10528 // Anything else let's inspect with %O
10529 args.unshift('%O');
10530 }
10531
10532 // Apply any `formatters` transformations
10533 let index = 0;
10534 args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
10535 // If we encounter an escaped % then don't increase the array index
10536 if (match === '%%') {
10537 return '%';
10538 }
10539 index++;
10540 const formatter = createDebug.formatters[format];
10541 if (typeof formatter === 'function') {
10542 const val = args[index];
10543 match = formatter.call(self, val);
10544
10545 // Now we need to remove `args[index]` since it's inlined in the `format`
10546 args.splice(index, 1);
10547 index--;
10548 }
10549 return match;
10550 });
10551
10552 // Apply env-specific formatting (colors, etc.)
10553 createDebug.formatArgs.call(self, args);
10554
10555 const logFn = self.log || createDebug.log;
10556 logFn.apply(self, args);
10557 }
10558
10559 debug.namespace = namespace;
10560 debug.useColors = createDebug.useColors();
10561 debug.color = createDebug.selectColor(namespace);
10562 debug.extend = extend;
10563 debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
10564
10565 Object.defineProperty(debug, 'enabled', {
10566 enumerable: true,
10567 configurable: false,
10568 get: () => {
10569 if (enableOverride !== null) {
10570 return enableOverride;
10571 }
10572 if (namespacesCache !== createDebug.namespaces) {
10573 namespacesCache = createDebug.namespaces;
10574 enabledCache = createDebug.enabled(namespace);
10575 }
10576
10577 return enabledCache;
10578 },
10579 set: v => {
10580 enableOverride = v;
10581 }
10582 });
10583
10584 // Env-specific initialization logic for debug instances
10585 if (typeof createDebug.init === 'function') {
10586 createDebug.init(debug);
10587 }
10588
10589 return debug;
10590 }
10591
10592 function extend(namespace, delimiter) {
10593 const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
10594 newDebug.log = this.log;
10595 return newDebug;
10596 }
10597
10598 /**
10599 * Enables a debug mode by namespaces. This can include modes
10600 * separated by a colon and wildcards.
10601 *
10602 * @param {String} namespaces
10603 * @api public
10604 */
10605 function enable(namespaces) {
10606 createDebug.save(namespaces);
10607 createDebug.namespaces = namespaces;
10608
10609 createDebug.names = [];
10610 createDebug.skips = [];
10611
10612 let i;
10613 const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
10614 const len = split.length;
10615
10616 for (i = 0; i < len; i++) {
10617 if (!split[i]) {
10618 // ignore empty strings
10619 continue;
10620 }
10621
10622 namespaces = split[i].replace(/\*/g, '.*?');
10623
10624 if (namespaces[0] === '-') {
10625 createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
10626 } else {
10627 createDebug.names.push(new RegExp('^' + namespaces + '$'));
10628 }
10629 }
10630 }
10631
10632 /**
10633 * Disable debug output.
10634 *
10635 * @return {String} namespaces
10636 * @api public
10637 */
10638 function disable() {
10639 const namespaces = [
10640 ...createDebug.names.map(toNamespace),
10641 ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
10642 ].join(',');
10643 createDebug.enable('');
10644 return namespaces;
10645 }
10646
10647 /**
10648 * Returns true if the given mode name is enabled, false otherwise.
10649 *
10650 * @param {String} name
10651 * @return {Boolean}
10652 * @api public
10653 */
10654 function enabled(name) {
10655 if (name[name.length - 1] === '*') {
10656 return true;
10657 }
10658
10659 let i;
10660 let len;
10661
10662 for (i = 0, len = createDebug.skips.length; i < len; i++) {
10663 if (createDebug.skips[i].test(name)) {
10664 return false;
10665 }
10666 }
10667
10668 for (i = 0, len = createDebug.names.length; i < len; i++) {
10669 if (createDebug.names[i].test(name)) {
10670 return true;
10671 }
10672 }
10673
10674 return false;
10675 }
10676
10677 /**
10678 * Convert regexp to namespace
10679 *
10680 * @param {RegExp} regxep
10681 * @return {String} namespace
10682 * @api private
10683 */
10684 function toNamespace(regexp) {
10685 return regexp.toString()
10686 .substring(2, regexp.toString().length - 2)
10687 .replace(/\.\*\?$/, '*');
10688 }
10689
10690 /**
10691 * Coerce `val`.
10692 *
10693 * @param {Mixed} val
10694 * @return {Mixed}
10695 * @api private
10696 */
10697 function coerce(val) {
10698 if (val instanceof Error) {
10699 return val.stack || val.message;
10700 }
10701 return val;
10702 }
10703
10704 /**
10705 * XXX DO NOT USE. This is a temporary stub function.
10706 * XXX It WILL be removed in the next major release.
10707 */
10708 function destroy() {
10709 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10710 }
10711
10712 createDebug.enable(createDebug.load());
10713
10714 return createDebug;
10715 }
10716
10717 module.exports = setup;
10718
10719
10720 /***/ }),
10721
10722 /***/ "../node_modules/extend/index.js":
10723 /*!***************************************!*\
10724 !*** ../node_modules/extend/index.js ***!
10725 \***************************************/
10726 /***/ ((module) => {
10727
10728 "use strict";
10729
10730
10731 var hasOwn = Object.prototype.hasOwnProperty;
10732 var toStr = Object.prototype.toString;
10733 var defineProperty = Object.defineProperty;
10734 var gOPD = Object.getOwnPropertyDescriptor;
10735
10736 var isArray = function isArray(arr) {
10737 if (typeof Array.isArray === 'function') {
10738 return Array.isArray(arr);
10739 }
10740
10741 return toStr.call(arr) === '[object Array]';
10742 };
10743
10744 var isPlainObject = function isPlainObject(obj) {
10745 if (!obj || toStr.call(obj) !== '[object Object]') {
10746 return false;
10747 }
10748
10749 var hasOwnConstructor = hasOwn.call(obj, 'constructor');
10750 var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
10751 // Not own constructor property must be Object
10752 if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
10753 return false;
10754 }
10755
10756 // Own properties are enumerated firstly, so to speed up,
10757 // if last one is own, then all properties are own.
10758 var key;
10759 for (key in obj) { /**/ }
10760
10761 return typeof key === 'undefined' || hasOwn.call(obj, key);
10762 };
10763
10764 // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
10765 var setProperty = function setProperty(target, options) {
10766 if (defineProperty && options.name === '__proto__') {
10767 defineProperty(target, options.name, {
10768 enumerable: true,
10769 configurable: true,
10770 value: options.newValue,
10771 writable: true
10772 });
10773 } else {
10774 target[options.name] = options.newValue;
10775 }
10776 };
10777
10778 // Return undefined instead of __proto__ if '__proto__' is not an own property
10779 var getProperty = function getProperty(obj, name) {
10780 if (name === '__proto__') {
10781 if (!hasOwn.call(obj, name)) {
10782 return void 0;
10783 } else if (gOPD) {
10784 // In early versions of node, obj['__proto__'] is buggy when obj has
10785 // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
10786 return gOPD(obj, name).value;
10787 }
10788 }
10789
10790 return obj[name];
10791 };
10792
10793 module.exports = function extend() {
10794 var options, name, src, copy, copyIsArray, clone;
10795 var target = arguments[0];
10796 var i = 1;
10797 var length = arguments.length;
10798 var deep = false;
10799
10800 // Handle a deep copy situation
10801 if (typeof target === 'boolean') {
10802 deep = target;
10803 target = arguments[1] || {};
10804 // skip the boolean and the target
10805 i = 2;
10806 }
10807 if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
10808 target = {};
10809 }
10810
10811 for (; i < length; ++i) {
10812 options = arguments[i];
10813 // Only deal with non-null/undefined values
10814 if (options != null) {
10815 // Extend the base object
10816 for (name in options) {
10817 src = getProperty(target, name);
10818 copy = getProperty(options, name);
10819
10820 // Prevent never-ending loop
10821 if (target !== copy) {
10822 // Recurse if we're merging plain objects or arrays
10823 if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
10824 if (copyIsArray) {
10825 copyIsArray = false;
10826 clone = src && isArray(src) ? src : [];
10827 } else {
10828 clone = src && isPlainObject(src) ? src : {};
10829 }
10830
10831 // Never move original objects, clone them
10832 setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
10833
10834 // Don't bring in undefined values
10835 } else if (typeof copy !== 'undefined') {
10836 setProperty(target, { name: name, newValue: copy });
10837 }
10838 }
10839 }
10840 }
10841 }
10842
10843 // Return the modified object
10844 return target;
10845 };
10846
10847
10848 /***/ }),
10849
10850 /***/ "../node_modules/inline-style-parser/index.js":
10851 /*!****************************************************!*\
10852 !*** ../node_modules/inline-style-parser/index.js ***!
10853 \****************************************************/
10854 /***/ ((module) => {
10855
10856 // http://www.w3.org/TR/CSS21/grammar.html
10857 // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
10858 var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
10859
10860 var NEWLINE_REGEX = /\n/g;
10861 var WHITESPACE_REGEX = /^\s*/;
10862
10863 // declaration
10864 var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
10865 var COLON_REGEX = /^:\s*/;
10866 var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
10867 var SEMICOLON_REGEX = /^[;\s]*/;
10868
10869 // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
10870 var TRIM_REGEX = /^\s+|\s+$/g;
10871
10872 // strings
10873 var NEWLINE = '\n';
10874 var FORWARD_SLASH = '/';
10875 var ASTERISK = '*';
10876 var EMPTY_STRING = '';
10877
10878 // types
10879 var TYPE_COMMENT = 'comment';
10880 var TYPE_DECLARATION = 'declaration';
10881
10882 /**
10883 * @param {String} style
10884 * @param {Object} [options]
10885 * @return {Object[]}
10886 * @throws {TypeError}
10887 * @throws {Error}
10888 */
10889 module.exports = function(style, options) {
10890 if (typeof style !== 'string') {
10891 throw new TypeError('First argument must be a string');
10892 }
10893
10894 if (!style) return [];
10895
10896 options = options || {};
10897
10898 /**
10899 * Positional.
10900 */
10901 var lineno = 1;
10902 var column = 1;
10903
10904 /**
10905 * Update lineno and column based on `str`.
10906 *
10907 * @param {String} str
10908 */
10909 function updatePosition(str) {
10910 var lines = str.match(NEWLINE_REGEX);
10911 if (lines) lineno += lines.length;
10912 var i = str.lastIndexOf(NEWLINE);
10913 column = ~i ? str.length - i : column + str.length;
10914 }
10915
10916 /**
10917 * Mark position and patch `node.position`.
10918 *
10919 * @return {Function}
10920 */
10921 function position() {
10922 var start = { line: lineno, column: column };
10923 return function(node) {
10924 node.position = new Position(start);
10925 whitespace();
10926 return node;
10927 };
10928 }
10929
10930 /**
10931 * Store position information for a node.
10932 *
10933 * @constructor
10934 * @property {Object} start
10935 * @property {Object} end
10936 * @property {undefined|String} source
10937 */
10938 function Position(start) {
10939 this.start = start;
10940 this.end = { line: lineno, column: column };
10941 this.source = options.source;
10942 }
10943
10944 /**
10945 * Non-enumerable source string.
10946 */
10947 Position.prototype.content = style;
10948
10949 var errorsList = [];
10950
10951 /**
10952 * Error `msg`.
10953 *
10954 * @param {String} msg
10955 * @throws {Error}
10956 */
10957 function error(msg) {
10958 var err = new Error(
10959 options.source + ':' + lineno + ':' + column + ': ' + msg
10960 );
10961 err.reason = msg;
10962 err.filename = options.source;
10963 err.line = lineno;
10964 err.column = column;
10965 err.source = style;
10966
10967 if (options.silent) {
10968 errorsList.push(err);
10969 } else {
10970 throw err;
10971 }
10972 }
10973
10974 /**
10975 * Match `re` and return captures.
10976 *
10977 * @param {RegExp} re
10978 * @return {undefined|Array}
10979 */
10980 function match(re) {
10981 var m = re.exec(style);
10982 if (!m) return;
10983 var str = m[0];
10984 updatePosition(str);
10985 style = style.slice(str.length);
10986 return m;
10987 }
10988
10989 /**
10990 * Parse whitespace.
10991 */
10992 function whitespace() {
10993 match(WHITESPACE_REGEX);
10994 }
10995
10996 /**
10997 * Parse comments.
10998 *
10999 * @param {Object[]} [rules]
11000 * @return {Object[]}
11001 */
11002 function comments(rules) {
11003 var c;
11004 rules = rules || [];
11005 while ((c = comment())) {
11006 if (c !== false) {
11007 rules.push(c);
11008 }
11009 }
11010 return rules;
11011 }
11012
11013 /**
11014 * Parse comment.
11015 *
11016 * @return {Object}
11017 * @throws {Error}
11018 */
11019 function comment() {
11020 var pos = position();
11021 if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
11022
11023 var i = 2;
11024 while (
11025 EMPTY_STRING != style.charAt(i) &&
11026 (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))
11027 ) {
11028 ++i;
11029 }
11030 i += 2;
11031
11032 if (EMPTY_STRING === style.charAt(i - 1)) {
11033 return error('End of comment missing');
11034 }
11035
11036 var str = style.slice(2, i - 2);
11037 column += 2;
11038 updatePosition(str);
11039 style = style.slice(i);
11040 column += 2;
11041
11042 return pos({
11043 type: TYPE_COMMENT,
11044 comment: str
11045 });
11046 }
11047
11048 /**
11049 * Parse declaration.
11050 *
11051 * @return {Object}
11052 * @throws {Error}
11053 */
11054 function declaration() {
11055 var pos = position();
11056
11057 // prop
11058 var prop = match(PROPERTY_REGEX);
11059 if (!prop) return;
11060 comment();
11061
11062 // :
11063 if (!match(COLON_REGEX)) return error("property missing ':'");
11064
11065 // val
11066 var val = match(VALUE_REGEX);
11067
11068 var ret = pos({
11069 type: TYPE_DECLARATION,
11070 property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
11071 value: val
11072 ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
11073 : EMPTY_STRING
11074 });
11075
11076 // ;
11077 match(SEMICOLON_REGEX);
11078
11079 return ret;
11080 }
11081
11082 /**
11083 * Parse declarations.
11084 *
11085 * @return {Object[]}
11086 */
11087 function declarations() {
11088 var decls = [];
11089
11090 comments(decls);
11091
11092 // declarations
11093 var decl;
11094 while ((decl = declaration())) {
11095 if (decl !== false) {
11096 decls.push(decl);
11097 comments(decls);
11098 }
11099 }
11100
11101 return decls;
11102 }
11103
11104 whitespace();
11105 return declarations();
11106 };
11107
11108 /**
11109 * Trim `str`.
11110 *
11111 * @param {String} str
11112 * @return {String}
11113 */
11114 function trim(str) {
11115 return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
11116 }
11117
11118
11119 /***/ }),
11120
11121 /***/ "../node_modules/is-buffer/index.js":
11122 /*!******************************************!*\
11123 !*** ../node_modules/is-buffer/index.js ***!
11124 \******************************************/
11125 /***/ ((module) => {
11126
11127 /*!
11128 * Determine if an object is a Buffer
11129 *
11130 * @author Feross Aboukhadijeh <https://feross.org>
11131 * @license MIT
11132 */
11133
11134 module.exports = function isBuffer (obj) {
11135 return obj != null && obj.constructor != null &&
11136 typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
11137 }
11138
11139
11140 /***/ }),
11141
11142 /***/ "../node_modules/ms/index.js":
11143 /*!***********************************!*\
11144 !*** ../node_modules/ms/index.js ***!
11145 \***********************************/
11146 /***/ ((module) => {
11147
11148 /**
11149 * Helpers.
11150 */
11151
11152 var s = 1000;
11153 var m = s * 60;
11154 var h = m * 60;
11155 var d = h * 24;
11156 var w = d * 7;
11157 var y = d * 365.25;
11158
11159 /**
11160 * Parse or format the given `val`.
11161 *
11162 * Options:
11163 *
11164 * - `long` verbose formatting [false]
11165 *
11166 * @param {String|Number} val
11167 * @param {Object} [options]
11168 * @throws {Error} throw an error if val is not a non-empty string or a number
11169 * @return {String|Number}
11170 * @api public
11171 */
11172
11173 module.exports = function(val, options) {
11174 options = options || {};
11175 var type = typeof val;
11176 if (type === 'string' && val.length > 0) {
11177 return parse(val);
11178 } else if (type === 'number' && isFinite(val)) {
11179 return options.long ? fmtLong(val) : fmtShort(val);
11180 }
11181 throw new Error(
11182 'val is not a non-empty string or a valid number. val=' +
11183 JSON.stringify(val)
11184 );
11185 };
11186
11187 /**
11188 * Parse the given `str` and return milliseconds.
11189 *
11190 * @param {String} str
11191 * @return {Number}
11192 * @api private
11193 */
11194
11195 function parse(str) {
11196 str = String(str);
11197 if (str.length > 100) {
11198 return;
11199 }
11200 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(
11201 str
11202 );
11203 if (!match) {
11204 return;
11205 }
11206 var n = parseFloat(match[1]);
11207 var type = (match[2] || 'ms').toLowerCase();
11208 switch (type) {
11209 case 'years':
11210 case 'year':
11211 case 'yrs':
11212 case 'yr':
11213 case 'y':
11214 return n * y;
11215 case 'weeks':
11216 case 'week':
11217 case 'w':
11218 return n * w;
11219 case 'days':
11220 case 'day':
11221 case 'd':
11222 return n * d;
11223 case 'hours':
11224 case 'hour':
11225 case 'hrs':
11226 case 'hr':
11227 case 'h':
11228 return n * h;
11229 case 'minutes':
11230 case 'minute':
11231 case 'mins':
11232 case 'min':
11233 case 'm':
11234 return n * m;
11235 case 'seconds':
11236 case 'second':
11237 case 'secs':
11238 case 'sec':
11239 case 's':
11240 return n * s;
11241 case 'milliseconds':
11242 case 'millisecond':
11243 case 'msecs':
11244 case 'msec':
11245 case 'ms':
11246 return n;
11247 default:
11248 return undefined;
11249 }
11250 }
11251
11252 /**
11253 * Short format for `ms`.
11254 *
11255 * @param {Number} ms
11256 * @return {String}
11257 * @api private
11258 */
11259
11260 function fmtShort(ms) {
11261 var msAbs = Math.abs(ms);
11262 if (msAbs >= d) {
11263 return Math.round(ms / d) + 'd';
11264 }
11265 if (msAbs >= h) {
11266 return Math.round(ms / h) + 'h';
11267 }
11268 if (msAbs >= m) {
11269 return Math.round(ms / m) + 'm';
11270 }
11271 if (msAbs >= s) {
11272 return Math.round(ms / s) + 's';
11273 }
11274 return ms + 'ms';
11275 }
11276
11277 /**
11278 * Long format for `ms`.
11279 *
11280 * @param {Number} ms
11281 * @return {String}
11282 * @api private
11283 */
11284
11285 function fmtLong(ms) {
11286 var msAbs = Math.abs(ms);
11287 if (msAbs >= d) {
11288 return plural(ms, msAbs, d, 'day');
11289 }
11290 if (msAbs >= h) {
11291 return plural(ms, msAbs, h, 'hour');
11292 }
11293 if (msAbs >= m) {
11294 return plural(ms, msAbs, m, 'minute');
11295 }
11296 if (msAbs >= s) {
11297 return plural(ms, msAbs, s, 'second');
11298 }
11299 return ms + ' ms';
11300 }
11301
11302 /**
11303 * Pluralization helper.
11304 */
11305
11306 function plural(ms, msAbs, n, name) {
11307 var isPlural = msAbs >= n * 1.5;
11308 return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
11309 }
11310
11311
11312 /***/ }),
11313
11314 /***/ "../node_modules/object-assign/index.js":
11315 /*!**********************************************!*\
11316 !*** ../node_modules/object-assign/index.js ***!
11317 \**********************************************/
11318 /***/ ((module) => {
11319
11320 "use strict";
11321 /*
11322 object-assign
11323 (c) Sindre Sorhus
11324 @license MIT
11325 */
11326
11327
11328 /* eslint-disable no-unused-vars */
11329 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
11330 var hasOwnProperty = Object.prototype.hasOwnProperty;
11331 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
11332
11333 function toObject(val) {
11334 if (val === null || val === undefined) {
11335 throw new TypeError('Object.assign cannot be called with null or undefined');
11336 }
11337
11338 return Object(val);
11339 }
11340
11341 function shouldUseNative() {
11342 try {
11343 if (!Object.assign) {
11344 return false;
11345 }
11346
11347 // Detect buggy property enumeration order in older V8 versions.
11348
11349 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
11350 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
11351 test1[5] = 'de';
11352 if (Object.getOwnPropertyNames(test1)[0] === '5') {
11353 return false;
11354 }
11355
11356 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11357 var test2 = {};
11358 for (var i = 0; i < 10; i++) {
11359 test2['_' + String.fromCharCode(i)] = i;
11360 }
11361 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
11362 return test2[n];
11363 });
11364 if (order2.join('') !== '0123456789') {
11365 return false;
11366 }
11367
11368 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11369 var test3 = {};
11370 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
11371 test3[letter] = letter;
11372 });
11373 if (Object.keys(Object.assign({}, test3)).join('') !==
11374 'abcdefghijklmnopqrst') {
11375 return false;
11376 }
11377
11378 return true;
11379 } catch (err) {
11380 // We don't expect any of the above to throw, but better to be safe.
11381 return false;
11382 }
11383 }
11384
11385 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
11386 var from;
11387 var to = toObject(target);
11388 var symbols;
11389
11390 for (var s = 1; s < arguments.length; s++) {
11391 from = Object(arguments[s]);
11392
11393 for (var key in from) {
11394 if (hasOwnProperty.call(from, key)) {
11395 to[key] = from[key];
11396 }
11397 }
11398
11399 if (getOwnPropertySymbols) {
11400 symbols = getOwnPropertySymbols(from);
11401 for (var i = 0; i < symbols.length; i++) {
11402 if (propIsEnumerable.call(from, symbols[i])) {
11403 to[symbols[i]] = from[symbols[i]];
11404 }
11405 }
11406 }
11407 }
11408
11409 return to;
11410 };
11411
11412
11413 /***/ }),
11414
11415 /***/ "../node_modules/prop-types/checkPropTypes.js":
11416 /*!****************************************************!*\
11417 !*** ../node_modules/prop-types/checkPropTypes.js ***!
11418 \****************************************************/
11419 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11420
11421 "use strict";
11422 /**
11423 * Copyright (c) 2013-present, Facebook, Inc.
11424 *
11425 * This source code is licensed under the MIT license found in the
11426 * LICENSE file in the root directory of this source tree.
11427 */
11428
11429
11430
11431 var printWarning = function() {};
11432
11433 if (true) {
11434 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11435 var loggedTypeFailures = {};
11436 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11437
11438 printWarning = function(text) {
11439 var message = 'Warning: ' + text;
11440 if (typeof console !== 'undefined') {
11441 console.error(message);
11442 }
11443 try {
11444 // --- Welcome to debugging React ---
11445 // This error was thrown as a convenience so that you can use this stack
11446 // to find the callsite that caused this warning to fire.
11447 throw new Error(message);
11448 } catch (x) { /**/ }
11449 };
11450 }
11451
11452 /**
11453 * Assert that the values match with the type specs.
11454 * Error messages are memorized and will only be shown once.
11455 *
11456 * @param {object} typeSpecs Map of name to a ReactPropType
11457 * @param {object} values Runtime values that need to be type-checked
11458 * @param {string} location e.g. "prop", "context", "child context"
11459 * @param {string} componentName Name of the component for error messages.
11460 * @param {?Function} getStack Returns the component stack.
11461 * @private
11462 */
11463 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
11464 if (true) {
11465 for (var typeSpecName in typeSpecs) {
11466 if (has(typeSpecs, typeSpecName)) {
11467 var error;
11468 // Prop type validation may throw. In case they do, we don't want to
11469 // fail the render phase where it didn't fail before. So we log it.
11470 // After these have been cleaned up, we'll let them throw.
11471 try {
11472 // This is intentionally an invariant that gets caught. It's the same
11473 // behavior as without this statement except with a better message.
11474 if (typeof typeSpecs[typeSpecName] !== 'function') {
11475 var err = Error(
11476 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
11477 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
11478 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
11479 );
11480 err.name = 'Invariant Violation';
11481 throw err;
11482 }
11483 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
11484 } catch (ex) {
11485 error = ex;
11486 }
11487 if (error && !(error instanceof Error)) {
11488 printWarning(
11489 (componentName || 'React class') + ': type specification of ' +
11490 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
11491 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
11492 'You may have forgotten to pass an argument to the type checker ' +
11493 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
11494 'shape all require an argument).'
11495 );
11496 }
11497 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
11498 // Only monitor this failure once because there tends to be a lot of the
11499 // same error.
11500 loggedTypeFailures[error.message] = true;
11501
11502 var stack = getStack ? getStack() : '';
11503
11504 printWarning(
11505 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
11506 );
11507 }
11508 }
11509 }
11510 }
11511 }
11512
11513 /**
11514 * Resets warning cache when testing.
11515 *
11516 * @private
11517 */
11518 checkPropTypes.resetWarningCache = function() {
11519 if (true) {
11520 loggedTypeFailures = {};
11521 }
11522 }
11523
11524 module.exports = checkPropTypes;
11525
11526
11527 /***/ }),
11528
11529 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
11530 /*!*************************************************************!*\
11531 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
11532 \*************************************************************/
11533 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11534
11535 "use strict";
11536 /**
11537 * Copyright (c) 2013-present, Facebook, Inc.
11538 *
11539 * This source code is licensed under the MIT license found in the
11540 * LICENSE file in the root directory of this source tree.
11541 */
11542
11543
11544
11545 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
11546 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
11547
11548 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11549 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11550 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
11551
11552 var printWarning = function() {};
11553
11554 if (true) {
11555 printWarning = function(text) {
11556 var message = 'Warning: ' + text;
11557 if (typeof console !== 'undefined') {
11558 console.error(message);
11559 }
11560 try {
11561 // --- Welcome to debugging React ---
11562 // This error was thrown as a convenience so that you can use this stack
11563 // to find the callsite that caused this warning to fire.
11564 throw new Error(message);
11565 } catch (x) {}
11566 };
11567 }
11568
11569 function emptyFunctionThatReturnsNull() {
11570 return null;
11571 }
11572
11573 module.exports = function(isValidElement, throwOnDirectAccess) {
11574 /* global Symbol */
11575 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
11576 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
11577
11578 /**
11579 * Returns the iterator method function contained on the iterable object.
11580 *
11581 * Be sure to invoke the function with the iterable as context:
11582 *
11583 * var iteratorFn = getIteratorFn(myIterable);
11584 * if (iteratorFn) {
11585 * var iterator = iteratorFn.call(myIterable);
11586 * ...
11587 * }
11588 *
11589 * @param {?object} maybeIterable
11590 * @return {?function}
11591 */
11592 function getIteratorFn(maybeIterable) {
11593 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
11594 if (typeof iteratorFn === 'function') {
11595 return iteratorFn;
11596 }
11597 }
11598
11599 /**
11600 * Collection of methods that allow declaration and validation of props that are
11601 * supplied to React components. Example usage:
11602 *
11603 * var Props = require('ReactPropTypes');
11604 * var MyArticle = React.createClass({
11605 * propTypes: {
11606 * // An optional string prop named "description".
11607 * description: Props.string,
11608 *
11609 * // A required enum prop named "category".
11610 * category: Props.oneOf(['News','Photos']).isRequired,
11611 *
11612 * // A prop named "dialog" that requires an instance of Dialog.
11613 * dialog: Props.instanceOf(Dialog).isRequired
11614 * },
11615 * render: function() { ... }
11616 * });
11617 *
11618 * A more formal specification of how these methods are used:
11619 *
11620 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
11621 * decl := ReactPropTypes.{type}(.isRequired)?
11622 *
11623 * Each and every declaration produces a function with the same signature. This
11624 * allows the creation of custom validation functions. For example:
11625 *
11626 * var MyLink = React.createClass({
11627 * propTypes: {
11628 * // An optional string or URI prop named "href".
11629 * href: function(props, propName, componentName) {
11630 * var propValue = props[propName];
11631 * if (propValue != null && typeof propValue !== 'string' &&
11632 * !(propValue instanceof URI)) {
11633 * return new Error(
11634 * 'Expected a string or an URI for ' + propName + ' in ' +
11635 * componentName
11636 * );
11637 * }
11638 * }
11639 * },
11640 * render: function() {...}
11641 * });
11642 *
11643 * @internal
11644 */
11645
11646 var ANONYMOUS = '<<anonymous>>';
11647
11648 // Important!
11649 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
11650 var ReactPropTypes = {
11651 array: createPrimitiveTypeChecker('array'),
11652 bigint: createPrimitiveTypeChecker('bigint'),
11653 bool: createPrimitiveTypeChecker('boolean'),
11654 func: createPrimitiveTypeChecker('function'),
11655 number: createPrimitiveTypeChecker('number'),
11656 object: createPrimitiveTypeChecker('object'),
11657 string: createPrimitiveTypeChecker('string'),
11658 symbol: createPrimitiveTypeChecker('symbol'),
11659
11660 any: createAnyTypeChecker(),
11661 arrayOf: createArrayOfTypeChecker,
11662 element: createElementTypeChecker(),
11663 elementType: createElementTypeTypeChecker(),
11664 instanceOf: createInstanceTypeChecker,
11665 node: createNodeChecker(),
11666 objectOf: createObjectOfTypeChecker,
11667 oneOf: createEnumTypeChecker,
11668 oneOfType: createUnionTypeChecker,
11669 shape: createShapeTypeChecker,
11670 exact: createStrictShapeTypeChecker,
11671 };
11672
11673 /**
11674 * inlined Object.is polyfill to avoid requiring consumers ship their own
11675 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
11676 */
11677 /*eslint-disable no-self-compare*/
11678 function is(x, y) {
11679 // SameValue algorithm
11680 if (x === y) {
11681 // Steps 1-5, 7-10
11682 // Steps 6.b-6.e: +0 != -0
11683 return x !== 0 || 1 / x === 1 / y;
11684 } else {
11685 // Step 6.a: NaN == NaN
11686 return x !== x && y !== y;
11687 }
11688 }
11689 /*eslint-enable no-self-compare*/
11690
11691 /**
11692 * We use an Error-like object for backward compatibility as people may call
11693 * PropTypes directly and inspect their output. However, we don't use real
11694 * Errors anymore. We don't inspect their stack anyway, and creating them
11695 * is prohibitively expensive if they are created too often, such as what
11696 * happens in oneOfType() for any type before the one that matched.
11697 */
11698 function PropTypeError(message, data) {
11699 this.message = message;
11700 this.data = data && typeof data === 'object' ? data: {};
11701 this.stack = '';
11702 }
11703 // Make `instanceof Error` still work for returned errors.
11704 PropTypeError.prototype = Error.prototype;
11705
11706 function createChainableTypeChecker(validate) {
11707 if (true) {
11708 var manualPropTypeCallCache = {};
11709 var manualPropTypeWarningCount = 0;
11710 }
11711 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
11712 componentName = componentName || ANONYMOUS;
11713 propFullName = propFullName || propName;
11714
11715 if (secret !== ReactPropTypesSecret) {
11716 if (throwOnDirectAccess) {
11717 // New behavior only for users of `prop-types` package
11718 var err = new Error(
11719 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
11720 'Use `PropTypes.checkPropTypes()` to call them. ' +
11721 'Read more at http://fb.me/use-check-prop-types'
11722 );
11723 err.name = 'Invariant Violation';
11724 throw err;
11725 } else if ( true && typeof console !== 'undefined') {
11726 // Old behavior for people using React.PropTypes
11727 var cacheKey = componentName + ':' + propName;
11728 if (
11729 !manualPropTypeCallCache[cacheKey] &&
11730 // Avoid spamming the console because they are often not actionable except for lib authors
11731 manualPropTypeWarningCount < 3
11732 ) {
11733 printWarning(
11734 'You are manually calling a React.PropTypes validation ' +
11735 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
11736 'and will throw in the standalone `prop-types` package. ' +
11737 'You may be seeing this warning due to a third-party PropTypes ' +
11738 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
11739 );
11740 manualPropTypeCallCache[cacheKey] = true;
11741 manualPropTypeWarningCount++;
11742 }
11743 }
11744 }
11745 if (props[propName] == null) {
11746 if (isRequired) {
11747 if (props[propName] === null) {
11748 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
11749 }
11750 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
11751 }
11752 return null;
11753 } else {
11754 return validate(props, propName, componentName, location, propFullName);
11755 }
11756 }
11757
11758 var chainedCheckType = checkType.bind(null, false);
11759 chainedCheckType.isRequired = checkType.bind(null, true);
11760
11761 return chainedCheckType;
11762 }
11763
11764 function createPrimitiveTypeChecker(expectedType) {
11765 function validate(props, propName, componentName, location, propFullName, secret) {
11766 var propValue = props[propName];
11767 var propType = getPropType(propValue);
11768 if (propType !== expectedType) {
11769 // `propValue` being instance of, say, date/regexp, pass the 'object'
11770 // check, but we can offer a more precise error message here rather than
11771 // 'of type `object`'.
11772 var preciseType = getPreciseType(propValue);
11773
11774 return new PropTypeError(
11775 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
11776 {expectedType: expectedType}
11777 );
11778 }
11779 return null;
11780 }
11781 return createChainableTypeChecker(validate);
11782 }
11783
11784 function createAnyTypeChecker() {
11785 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
11786 }
11787
11788 function createArrayOfTypeChecker(typeChecker) {
11789 function validate(props, propName, componentName, location, propFullName) {
11790 if (typeof typeChecker !== 'function') {
11791 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
11792 }
11793 var propValue = props[propName];
11794 if (!Array.isArray(propValue)) {
11795 var propType = getPropType(propValue);
11796 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
11797 }
11798 for (var i = 0; i < propValue.length; i++) {
11799 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
11800 if (error instanceof Error) {
11801 return error;
11802 }
11803 }
11804 return null;
11805 }
11806 return createChainableTypeChecker(validate);
11807 }
11808
11809 function createElementTypeChecker() {
11810 function validate(props, propName, componentName, location, propFullName) {
11811 var propValue = props[propName];
11812 if (!isValidElement(propValue)) {
11813 var propType = getPropType(propValue);
11814 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
11815 }
11816 return null;
11817 }
11818 return createChainableTypeChecker(validate);
11819 }
11820
11821 function createElementTypeTypeChecker() {
11822 function validate(props, propName, componentName, location, propFullName) {
11823 var propValue = props[propName];
11824 if (!ReactIs.isValidElementType(propValue)) {
11825 var propType = getPropType(propValue);
11826 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
11827 }
11828 return null;
11829 }
11830 return createChainableTypeChecker(validate);
11831 }
11832
11833 function createInstanceTypeChecker(expectedClass) {
11834 function validate(props, propName, componentName, location, propFullName) {
11835 if (!(props[propName] instanceof expectedClass)) {
11836 var expectedClassName = expectedClass.name || ANONYMOUS;
11837 var actualClassName = getClassName(props[propName]);
11838 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
11839 }
11840 return null;
11841 }
11842 return createChainableTypeChecker(validate);
11843 }
11844
11845 function createEnumTypeChecker(expectedValues) {
11846 if (!Array.isArray(expectedValues)) {
11847 if (true) {
11848 if (arguments.length > 1) {
11849 printWarning(
11850 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
11851 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
11852 );
11853 } else {
11854 printWarning('Invalid argument supplied to oneOf, expected an array.');
11855 }
11856 }
11857 return emptyFunctionThatReturnsNull;
11858 }
11859
11860 function validate(props, propName, componentName, location, propFullName) {
11861 var propValue = props[propName];
11862 for (var i = 0; i < expectedValues.length; i++) {
11863 if (is(propValue, expectedValues[i])) {
11864 return null;
11865 }
11866 }
11867
11868 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
11869 var type = getPreciseType(value);
11870 if (type === 'symbol') {
11871 return String(value);
11872 }
11873 return value;
11874 });
11875 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
11876 }
11877 return createChainableTypeChecker(validate);
11878 }
11879
11880 function createObjectOfTypeChecker(typeChecker) {
11881 function validate(props, propName, componentName, location, propFullName) {
11882 if (typeof typeChecker !== 'function') {
11883 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
11884 }
11885 var propValue = props[propName];
11886 var propType = getPropType(propValue);
11887 if (propType !== 'object') {
11888 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
11889 }
11890 for (var key in propValue) {
11891 if (has(propValue, key)) {
11892 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
11893 if (error instanceof Error) {
11894 return error;
11895 }
11896 }
11897 }
11898 return null;
11899 }
11900 return createChainableTypeChecker(validate);
11901 }
11902
11903 function createUnionTypeChecker(arrayOfTypeCheckers) {
11904 if (!Array.isArray(arrayOfTypeCheckers)) {
11905 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
11906 return emptyFunctionThatReturnsNull;
11907 }
11908
11909 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11910 var checker = arrayOfTypeCheckers[i];
11911 if (typeof checker !== 'function') {
11912 printWarning(
11913 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
11914 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
11915 );
11916 return emptyFunctionThatReturnsNull;
11917 }
11918 }
11919
11920 function validate(props, propName, componentName, location, propFullName) {
11921 var expectedTypes = [];
11922 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
11923 var checker = arrayOfTypeCheckers[i];
11924 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
11925 if (checkerResult == null) {
11926 return null;
11927 }
11928 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
11929 expectedTypes.push(checkerResult.data.expectedType);
11930 }
11931 }
11932 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
11933 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
11934 }
11935 return createChainableTypeChecker(validate);
11936 }
11937
11938 function createNodeChecker() {
11939 function validate(props, propName, componentName, location, propFullName) {
11940 if (!isNode(props[propName])) {
11941 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
11942 }
11943 return null;
11944 }
11945 return createChainableTypeChecker(validate);
11946 }
11947
11948 function invalidValidatorError(componentName, location, propFullName, key, type) {
11949 return new PropTypeError(
11950 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
11951 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
11952 );
11953 }
11954
11955 function createShapeTypeChecker(shapeTypes) {
11956 function validate(props, propName, componentName, location, propFullName) {
11957 var propValue = props[propName];
11958 var propType = getPropType(propValue);
11959 if (propType !== 'object') {
11960 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
11961 }
11962 for (var key in shapeTypes) {
11963 var checker = shapeTypes[key];
11964 if (typeof checker !== 'function') {
11965 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
11966 }
11967 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
11968 if (error) {
11969 return error;
11970 }
11971 }
11972 return null;
11973 }
11974 return createChainableTypeChecker(validate);
11975 }
11976
11977 function createStrictShapeTypeChecker(shapeTypes) {
11978 function validate(props, propName, componentName, location, propFullName) {
11979 var propValue = props[propName];
11980 var propType = getPropType(propValue);
11981 if (propType !== 'object') {
11982 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
11983 }
11984 // We need to check all keys in case some are required but missing from props.
11985 var allKeys = assign({}, props[propName], shapeTypes);
11986 for (var key in allKeys) {
11987 var checker = shapeTypes[key];
11988 if (has(shapeTypes, key) && typeof checker !== 'function') {
11989 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
11990 }
11991 if (!checker) {
11992 return new PropTypeError(
11993 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
11994 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
11995 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
11996 );
11997 }
11998 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
11999 if (error) {
12000 return error;
12001 }
12002 }
12003 return null;
12004 }
12005
12006 return createChainableTypeChecker(validate);
12007 }
12008
12009 function isNode(propValue) {
12010 switch (typeof propValue) {
12011 case 'number':
12012 case 'string':
12013 case 'undefined':
12014 return true;
12015 case 'boolean':
12016 return !propValue;
12017 case 'object':
12018 if (Array.isArray(propValue)) {
12019 return propValue.every(isNode);
12020 }
12021 if (propValue === null || isValidElement(propValue)) {
12022 return true;
12023 }
12024
12025 var iteratorFn = getIteratorFn(propValue);
12026 if (iteratorFn) {
12027 var iterator = iteratorFn.call(propValue);
12028 var step;
12029 if (iteratorFn !== propValue.entries) {
12030 while (!(step = iterator.next()).done) {
12031 if (!isNode(step.value)) {
12032 return false;
12033 }
12034 }
12035 } else {
12036 // Iterator will provide entry [k,v] tuples rather than values.
12037 while (!(step = iterator.next()).done) {
12038 var entry = step.value;
12039 if (entry) {
12040 if (!isNode(entry[1])) {
12041 return false;
12042 }
12043 }
12044 }
12045 }
12046 } else {
12047 return false;
12048 }
12049
12050 return true;
12051 default:
12052 return false;
12053 }
12054 }
12055
12056 function isSymbol(propType, propValue) {
12057 // Native Symbol.
12058 if (propType === 'symbol') {
12059 return true;
12060 }
12061
12062 // falsy value can't be a Symbol
12063 if (!propValue) {
12064 return false;
12065 }
12066
12067 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
12068 if (propValue['@@toStringTag'] === 'Symbol') {
12069 return true;
12070 }
12071
12072 // Fallback for non-spec compliant Symbols which are polyfilled.
12073 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
12074 return true;
12075 }
12076
12077 return false;
12078 }
12079
12080 // Equivalent of `typeof` but with special handling for array and regexp.
12081 function getPropType(propValue) {
12082 var propType = typeof propValue;
12083 if (Array.isArray(propValue)) {
12084 return 'array';
12085 }
12086 if (propValue instanceof RegExp) {
12087 // Old webkits (at least until Android 4.0) return 'function' rather than
12088 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
12089 // passes PropTypes.object.
12090 return 'object';
12091 }
12092 if (isSymbol(propType, propValue)) {
12093 return 'symbol';
12094 }
12095 return propType;
12096 }
12097
12098 // This handles more types than `getPropType`. Only used for error messages.
12099 // See `createPrimitiveTypeChecker`.
12100 function getPreciseType(propValue) {
12101 if (typeof propValue === 'undefined' || propValue === null) {
12102 return '' + propValue;
12103 }
12104 var propType = getPropType(propValue);
12105 if (propType === 'object') {
12106 if (propValue instanceof Date) {
12107 return 'date';
12108 } else if (propValue instanceof RegExp) {
12109 return 'regexp';
12110 }
12111 }
12112 return propType;
12113 }
12114
12115 // Returns a string that is postfixed to a warning about an invalid type.
12116 // For example, "undefined" or "of type array"
12117 function getPostfixForTypeWarning(value) {
12118 var type = getPreciseType(value);
12119 switch (type) {
12120 case 'array':
12121 case 'object':
12122 return 'an ' + type;
12123 case 'boolean':
12124 case 'date':
12125 case 'regexp':
12126 return 'a ' + type;
12127 default:
12128 return type;
12129 }
12130 }
12131
12132 // Returns class name of the object, if any.
12133 function getClassName(propValue) {
12134 if (!propValue.constructor || !propValue.constructor.name) {
12135 return ANONYMOUS;
12136 }
12137 return propValue.constructor.name;
12138 }
12139
12140 ReactPropTypes.checkPropTypes = checkPropTypes;
12141 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
12142 ReactPropTypes.PropTypes = ReactPropTypes;
12143
12144 return ReactPropTypes;
12145 };
12146
12147
12148 /***/ }),
12149
12150 /***/ "../node_modules/prop-types/index.js":
12151 /*!*******************************************!*\
12152 !*** ../node_modules/prop-types/index.js ***!
12153 \*******************************************/
12154 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12155
12156 /**
12157 * Copyright (c) 2013-present, Facebook, Inc.
12158 *
12159 * This source code is licensed under the MIT license found in the
12160 * LICENSE file in the root directory of this source tree.
12161 */
12162
12163 if (true) {
12164 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
12165
12166 // By explicitly using `prop-types` you are opting into new development behavior.
12167 // http://fb.me/prop-types-in-prod
12168 var throwOnDirectAccess = true;
12169 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
12170 } else {}
12171
12172
12173 /***/ }),
12174
12175 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
12176 /*!**************************************************************!*\
12177 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
12178 \**************************************************************/
12179 /***/ ((module) => {
12180
12181 "use strict";
12182 /**
12183 * Copyright (c) 2013-present, Facebook, Inc.
12184 *
12185 * This source code is licensed under the MIT license found in the
12186 * LICENSE file in the root directory of this source tree.
12187 */
12188
12189
12190
12191 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
12192
12193 module.exports = ReactPropTypesSecret;
12194
12195
12196 /***/ }),
12197
12198 /***/ "../node_modules/prop-types/lib/has.js":
12199 /*!*********************************************!*\
12200 !*** ../node_modules/prop-types/lib/has.js ***!
12201 \*********************************************/
12202 /***/ ((module) => {
12203
12204 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
12205
12206
12207 /***/ }),
12208
12209 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
12210 /*!************************************************************************************!*\
12211 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
12212 \************************************************************************************/
12213 /***/ ((__unused_webpack_module, exports) => {
12214
12215 "use strict";
12216 /** @license React v16.13.1
12217 * react-is.development.js
12218 *
12219 * Copyright (c) Facebook, Inc. and its affiliates.
12220 *
12221 * This source code is licensed under the MIT license found in the
12222 * LICENSE file in the root directory of this source tree.
12223 */
12224
12225
12226
12227
12228
12229 if (true) {
12230 (function() {
12231 'use strict';
12232
12233 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
12234 // nor polyfill, then a plain number is used for performance.
12235 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
12236 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
12237 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
12238 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
12239 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
12240 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
12241 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
12242 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
12243 // (unstable) APIs that have been removed. Can we remove the symbols?
12244
12245 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
12246 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
12247 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
12248 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
12249 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
12250 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
12251 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
12252 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
12253 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
12254 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
12255 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
12256
12257 function isValidElementType(type) {
12258 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
12259 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);
12260 }
12261
12262 function typeOf(object) {
12263 if (typeof object === 'object' && object !== null) {
12264 var $$typeof = object.$$typeof;
12265
12266 switch ($$typeof) {
12267 case REACT_ELEMENT_TYPE:
12268 var type = object.type;
12269
12270 switch (type) {
12271 case REACT_ASYNC_MODE_TYPE:
12272 case REACT_CONCURRENT_MODE_TYPE:
12273 case REACT_FRAGMENT_TYPE:
12274 case REACT_PROFILER_TYPE:
12275 case REACT_STRICT_MODE_TYPE:
12276 case REACT_SUSPENSE_TYPE:
12277 return type;
12278
12279 default:
12280 var $$typeofType = type && type.$$typeof;
12281
12282 switch ($$typeofType) {
12283 case REACT_CONTEXT_TYPE:
12284 case REACT_FORWARD_REF_TYPE:
12285 case REACT_LAZY_TYPE:
12286 case REACT_MEMO_TYPE:
12287 case REACT_PROVIDER_TYPE:
12288 return $$typeofType;
12289
12290 default:
12291 return $$typeof;
12292 }
12293
12294 }
12295
12296 case REACT_PORTAL_TYPE:
12297 return $$typeof;
12298 }
12299 }
12300
12301 return undefined;
12302 } // AsyncMode is deprecated along with isAsyncMode
12303
12304 var AsyncMode = REACT_ASYNC_MODE_TYPE;
12305 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
12306 var ContextConsumer = REACT_CONTEXT_TYPE;
12307 var ContextProvider = REACT_PROVIDER_TYPE;
12308 var Element = REACT_ELEMENT_TYPE;
12309 var ForwardRef = REACT_FORWARD_REF_TYPE;
12310 var Fragment = REACT_FRAGMENT_TYPE;
12311 var Lazy = REACT_LAZY_TYPE;
12312 var Memo = REACT_MEMO_TYPE;
12313 var Portal = REACT_PORTAL_TYPE;
12314 var Profiler = REACT_PROFILER_TYPE;
12315 var StrictMode = REACT_STRICT_MODE_TYPE;
12316 var Suspense = REACT_SUSPENSE_TYPE;
12317 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
12318
12319 function isAsyncMode(object) {
12320 {
12321 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
12322 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
12323
12324 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.');
12325 }
12326 }
12327
12328 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
12329 }
12330 function isConcurrentMode(object) {
12331 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
12332 }
12333 function isContextConsumer(object) {
12334 return typeOf(object) === REACT_CONTEXT_TYPE;
12335 }
12336 function isContextProvider(object) {
12337 return typeOf(object) === REACT_PROVIDER_TYPE;
12338 }
12339 function isElement(object) {
12340 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
12341 }
12342 function isForwardRef(object) {
12343 return typeOf(object) === REACT_FORWARD_REF_TYPE;
12344 }
12345 function isFragment(object) {
12346 return typeOf(object) === REACT_FRAGMENT_TYPE;
12347 }
12348 function isLazy(object) {
12349 return typeOf(object) === REACT_LAZY_TYPE;
12350 }
12351 function isMemo(object) {
12352 return typeOf(object) === REACT_MEMO_TYPE;
12353 }
12354 function isPortal(object) {
12355 return typeOf(object) === REACT_PORTAL_TYPE;
12356 }
12357 function isProfiler(object) {
12358 return typeOf(object) === REACT_PROFILER_TYPE;
12359 }
12360 function isStrictMode(object) {
12361 return typeOf(object) === REACT_STRICT_MODE_TYPE;
12362 }
12363 function isSuspense(object) {
12364 return typeOf(object) === REACT_SUSPENSE_TYPE;
12365 }
12366
12367 exports.AsyncMode = AsyncMode;
12368 exports.ConcurrentMode = ConcurrentMode;
12369 exports.ContextConsumer = ContextConsumer;
12370 exports.ContextProvider = ContextProvider;
12371 exports.Element = Element;
12372 exports.ForwardRef = ForwardRef;
12373 exports.Fragment = Fragment;
12374 exports.Lazy = Lazy;
12375 exports.Memo = Memo;
12376 exports.Portal = Portal;
12377 exports.Profiler = Profiler;
12378 exports.StrictMode = StrictMode;
12379 exports.Suspense = Suspense;
12380 exports.isAsyncMode = isAsyncMode;
12381 exports.isConcurrentMode = isConcurrentMode;
12382 exports.isContextConsumer = isContextConsumer;
12383 exports.isContextProvider = isContextProvider;
12384 exports.isElement = isElement;
12385 exports.isForwardRef = isForwardRef;
12386 exports.isFragment = isFragment;
12387 exports.isLazy = isLazy;
12388 exports.isMemo = isMemo;
12389 exports.isPortal = isPortal;
12390 exports.isProfiler = isProfiler;
12391 exports.isStrictMode = isStrictMode;
12392 exports.isSuspense = isSuspense;
12393 exports.isValidElementType = isValidElementType;
12394 exports.typeOf = typeOf;
12395 })();
12396 }
12397
12398
12399 /***/ }),
12400
12401 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
12402 /*!*****************************************************************!*\
12403 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
12404 \*****************************************************************/
12405 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12406
12407 "use strict";
12408
12409
12410 if (false) {} else {
12411 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
12412 }
12413
12414
12415 /***/ }),
12416
12417 /***/ "../node_modules/react-avatar-editor/dist/index.js":
12418 /*!*********************************************************!*\
12419 !*** ../node_modules/react-avatar-editor/dist/index.js ***!
12420 \*********************************************************/
12421 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
12422
12423 !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});
12424
12425
12426 /***/ }),
12427
12428 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
12429 /*!**************************************************************!*\
12430 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
12431 \**************************************************************/
12432 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12433
12434 "use strict";
12435
12436
12437 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); }
12438
12439 Object.defineProperty(exports, "__esModule", ({
12440 value: true
12441 }));
12442 Object.defineProperty(exports, "DraggableCore", ({
12443 enumerable: true,
12444 get: function get() {
12445 return _DraggableCore.default;
12446 }
12447 }));
12448 exports["default"] = void 0;
12449
12450 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12451
12452 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12453
12454 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12455
12456 var _clsx2 = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/clsx/dist/clsx.m.js"));
12457
12458 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12459
12460 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12461
12462 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12463
12464 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
12465
12466 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12467
12468 var _excluded = ["axis", "bounds", "children", "defaultPosition", "defaultClassName", "defaultClassNameDragging", "defaultClassNameDragged", "position", "positionOffset", "scale"];
12469
12470 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12471
12472 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); }
12473
12474 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; }
12475
12476 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); }
12477
12478 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; }
12479
12480 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; }
12481
12482 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; }
12483
12484 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; }
12485
12486 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12487
12488 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."); }
12489
12490 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); }
12491
12492 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; }
12493
12494 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; }
12495
12496 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12497
12498 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12499
12500 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); } }
12501
12502 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
12503
12504 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); }
12505
12506 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12507
12508 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); }; }
12509
12510 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); }
12511
12512 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12513
12514 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; } }
12515
12516 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12517
12518 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; }
12519
12520 //
12521 // Define <Draggable>
12522 //
12523 var Draggable = /*#__PURE__*/function (_React$Component) {
12524 _inherits(Draggable, _React$Component);
12525
12526 var _super = _createSuper(Draggable);
12527
12528 function Draggable(props
12529 /*: DraggableProps*/
12530 ) {
12531 var _this;
12532
12533 _classCallCheck(this, Draggable);
12534
12535 _this = _super.call(this, props);
12536
12537 _defineProperty(_assertThisInitialized(_this), "onDragStart", function (e, coreData) {
12538 (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.
12539
12540 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.
12541
12542
12543 if (shouldStart === false) return false;
12544
12545 _this.setState({
12546 dragging: true,
12547 dragged: true
12548 });
12549 });
12550
12551 _defineProperty(_assertThisInitialized(_this), "onDrag", function (e, coreData) {
12552 if (!_this.state.dragging) return false;
12553 (0, _log.default)('Draggable: onDrag: %j', coreData);
12554 var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);
12555 var newState
12556 /*: $Shape<DraggableState>*/
12557 = {
12558 x: uiData.x,
12559 y: uiData.y
12560 }; // Keep within bounds.
12561
12562 if (_this.props.bounds) {
12563 // Save original x and y.
12564 var x = newState.x,
12565 y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if
12566 // we start removing slack, the element won't react to it right away until it's been
12567 // completely removed.
12568
12569 newState.x += _this.state.slackX;
12570 newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.
12571
12572 var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),
12573 _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),
12574 newStateX = _getBoundPosition2[0],
12575 newStateY = _getBoundPosition2[1];
12576
12577 newState.x = newStateX;
12578 newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.
12579
12580 newState.slackX = _this.state.slackX + (x - newState.x);
12581 newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.
12582
12583 uiData.x = newState.x;
12584 uiData.y = newState.y;
12585 uiData.deltaX = newState.x - _this.state.x;
12586 uiData.deltaY = newState.y - _this.state.y;
12587 } // Short-circuit if user's callback killed it.
12588
12589
12590 var shouldUpdate = _this.props.onDrag(e, uiData);
12591
12592 if (shouldUpdate === false) return false;
12593
12594 _this.setState(newState);
12595 });
12596
12597 _defineProperty(_assertThisInitialized(_this), "onDragStop", function (e, coreData) {
12598 if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.
12599
12600 var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));
12601
12602 if (shouldContinue === false) return false;
12603 (0, _log.default)('Draggable: onDragStop: %j', coreData);
12604 var newState
12605 /*: $Shape<DraggableState>*/
12606 = {
12607 dragging: false,
12608 slackX: 0,
12609 slackY: 0
12610 }; // If this is a controlled component, the result of this operation will be to
12611 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
12612
12613 var controlled = Boolean(_this.props.position);
12614
12615 if (controlled) {
12616 var _this$props$position = _this.props.position,
12617 x = _this$props$position.x,
12618 y = _this$props$position.y;
12619 newState.x = x;
12620 newState.y = y;
12621 }
12622
12623 _this.setState(newState);
12624 });
12625
12626 _this.state = {
12627 // Whether or not we are currently dragging.
12628 dragging: false,
12629 // Whether or not we have been dragged before.
12630 dragged: false,
12631 // Current transform x and y.
12632 x: props.position ? props.position.x : props.defaultPosition.x,
12633 y: props.position ? props.position.y : props.defaultPosition.y,
12634 prevPropsPosition: _objectSpread({}, props.position),
12635 // Used for compensating for out-of-bounds drags
12636 slackX: 0,
12637 slackY: 0,
12638 // Can only determine if SVG after mounting
12639 isElementSVG: false
12640 };
12641
12642 if (props.position && !(props.onDrag || props.onStop)) {
12643 // eslint-disable-next-line no-console
12644 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.');
12645 }
12646
12647 return _this;
12648 }
12649
12650 _createClass(Draggable, [{
12651 key: "componentDidMount",
12652 value: function componentDidMount() {
12653 // Check to see if the element passed is an instanceof SVGElement
12654 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
12655 this.setState({
12656 isElementSVG: true
12657 });
12658 }
12659 }
12660 }, {
12661 key: "componentWillUnmount",
12662 value: function componentWillUnmount() {
12663 this.setState({
12664 dragging: false
12665 }); // prevents invariant if unmounted while dragging
12666 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
12667 // the underlying DOM node ourselves. See the README for more information.
12668
12669 }, {
12670 key: "findDOMNode",
12671 value: function findDOMNode()
12672 /*: ?HTMLElement*/
12673 {
12674 var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;
12675
12676 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);
12677 }
12678 }, {
12679 key: "render",
12680 value: function render()
12681 /*: ReactElement<any>*/
12682 {
12683 var _clsx;
12684
12685 var _this$props2 = this.props,
12686 axis = _this$props2.axis,
12687 bounds = _this$props2.bounds,
12688 children = _this$props2.children,
12689 defaultPosition = _this$props2.defaultPosition,
12690 defaultClassName = _this$props2.defaultClassName,
12691 defaultClassNameDragging = _this$props2.defaultClassNameDragging,
12692 defaultClassNameDragged = _this$props2.defaultClassNameDragged,
12693 position = _this$props2.position,
12694 positionOffset = _this$props2.positionOffset,
12695 scale = _this$props2.scale,
12696 draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);
12697
12698 var style = {};
12699 var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.
12700
12701 var controlled = Boolean(position);
12702 var draggable = !controlled || this.state.dragging;
12703 var validPosition = position || defaultPosition;
12704 var transformOpts = {
12705 // Set left if horizontal drag is enabled
12706 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
12707 // Set top if vertical drag is enabled
12708 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
12709 }; // If this element was SVG, we use the `transform` attribute.
12710
12711 if (this.state.isElementSVG) {
12712 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
12713 } else {
12714 // Add a CSS transform to move the element around. This allows us to move the element around
12715 // without worrying about whether or not it is relatively or absolutely positioned.
12716 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
12717 // has a clean slate.
12718 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
12719 } // Mark with class while dragging
12720
12721
12722 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
12723 // This makes it flexible to use whatever element is wanted (div, ul, etc)
12724
12725 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
12726 onStart: this.onDragStart,
12727 onDrag: this.onDrag,
12728 onStop: this.onDragStop
12729 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
12730 className: className,
12731 style: _objectSpread(_objectSpread({}, children.props.style), style),
12732 transform: svgTransform
12733 }));
12734 }
12735 }], [{
12736 key: "getDerivedStateFromProps",
12737 value: // React 16.3+
12738 // Arity (props, state)
12739 function getDerivedStateFromProps(_ref, _ref2)
12740 /*: ?$Shape<DraggableState>*/
12741 {
12742 var position = _ref.position;
12743 var prevPropsPosition = _ref2.prevPropsPosition;
12744
12745 // Set x/y if a new position is provided in props that is different than the previous.
12746 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
12747 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
12748 position: position,
12749 prevPropsPosition: prevPropsPosition
12750 });
12751 return {
12752 x: position.x,
12753 y: position.y,
12754 prevPropsPosition: _objectSpread({}, position)
12755 };
12756 }
12757
12758 return null;
12759 }
12760 }]);
12761
12762 return Draggable;
12763 }(React.Component);
12764
12765 exports["default"] = Draggable;
12766
12767 _defineProperty(Draggable, "displayName", 'Draggable');
12768
12769 _defineProperty(Draggable, "propTypes", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {
12770 /**
12771 * `axis` determines which axis the draggable can move.
12772 *
12773 * Note that all callbacks will still return data as normal. This only
12774 * controls flushing to the DOM.
12775 *
12776 * 'both' allows movement horizontally and vertically.
12777 * 'x' limits movement to horizontal axis.
12778 * 'y' limits movement to vertical axis.
12779 * 'none' limits all movement.
12780 *
12781 * Defaults to 'both'.
12782 */
12783 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
12784
12785 /**
12786 * `bounds` determines the range of movement available to the element.
12787 * Available values are:
12788 *
12789 * 'parent' restricts movement within the Draggable's parent node.
12790 *
12791 * Alternatively, pass an object with the following properties, all of which are optional:
12792 *
12793 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
12794 *
12795 * All values are in px.
12796 *
12797 * Example:
12798 *
12799 * ```jsx
12800 * let App = React.createClass({
12801 * render: function () {
12802 * return (
12803 * <Draggable bounds={{right: 300, bottom: 300}}>
12804 * <div>Content</div>
12805 * </Draggable>
12806 * );
12807 * }
12808 * });
12809 * ```
12810 */
12811 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
12812 left: _propTypes.default.number,
12813 right: _propTypes.default.number,
12814 top: _propTypes.default.number,
12815 bottom: _propTypes.default.number
12816 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
12817 defaultClassName: _propTypes.default.string,
12818 defaultClassNameDragging: _propTypes.default.string,
12819 defaultClassNameDragged: _propTypes.default.string,
12820
12821 /**
12822 * `defaultPosition` specifies the x and y that the dragged item should start at
12823 *
12824 * Example:
12825 *
12826 * ```jsx
12827 * let App = React.createClass({
12828 * render: function () {
12829 * return (
12830 * <Draggable defaultPosition={{x: 25, y: 25}}>
12831 * <div>I start with transformX: 25px and transformY: 25px;</div>
12832 * </Draggable>
12833 * );
12834 * }
12835 * });
12836 * ```
12837 */
12838 defaultPosition: _propTypes.default.shape({
12839 x: _propTypes.default.number,
12840 y: _propTypes.default.number
12841 }),
12842 positionOffset: _propTypes.default.shape({
12843 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
12844 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
12845 }),
12846
12847 /**
12848 * `position`, if present, defines the current position of the element.
12849 *
12850 * This is similar to how form elements in React work - if no `position` is supplied, the component
12851 * is uncontrolled.
12852 *
12853 * Example:
12854 *
12855 * ```jsx
12856 * let App = React.createClass({
12857 * render: function () {
12858 * return (
12859 * <Draggable position={{x: 25, y: 25}}>
12860 * <div>I start with transformX: 25px and transformY: 25px;</div>
12861 * </Draggable>
12862 * );
12863 * }
12864 * });
12865 * ```
12866 */
12867 position: _propTypes.default.shape({
12868 x: _propTypes.default.number,
12869 y: _propTypes.default.number
12870 }),
12871
12872 /**
12873 * These properties should be defined on the child, not here.
12874 */
12875 className: _shims.dontSetMe,
12876 style: _shims.dontSetMe,
12877 transform: _shims.dontSetMe
12878 }));
12879
12880 _defineProperty(Draggable, "defaultProps", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {
12881 axis: 'both',
12882 bounds: false,
12883 defaultClassName: 'react-draggable',
12884 defaultClassNameDragging: 'react-draggable-dragging',
12885 defaultClassNameDragged: 'react-draggable-dragged',
12886 defaultPosition: {
12887 x: 0,
12888 y: 0
12889 },
12890 scale: 1
12891 }));
12892
12893 /***/ }),
12894
12895 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
12896 /*!******************************************************************!*\
12897 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
12898 \******************************************************************/
12899 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12900
12901 "use strict";
12902
12903
12904 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); }
12905
12906 Object.defineProperty(exports, "__esModule", ({
12907 value: true
12908 }));
12909 exports["default"] = void 0;
12910
12911 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12912
12913 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12914
12915 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12916
12917 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12918
12919 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12920
12921 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12922
12923 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12924
12925 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12926
12927 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); }
12928
12929 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; }
12930
12931 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12932
12933 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."); }
12934
12935 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); }
12936
12937 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; }
12938
12939 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; }
12940
12941 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12942
12943 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12944
12945 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); } }
12946
12947 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
12948
12949 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); }
12950
12951 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12952
12953 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); }; }
12954
12955 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); }
12956
12957 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12958
12959 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; } }
12960
12961 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12962
12963 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; }
12964
12965 // Simple abstraction for dragging events names.
12966 var eventsFor = {
12967 touch: {
12968 start: 'touchstart',
12969 move: 'touchmove',
12970 stop: 'touchend'
12971 },
12972 mouse: {
12973 start: 'mousedown',
12974 move: 'mousemove',
12975 stop: 'mouseup'
12976 }
12977 }; // Default to mouse events.
12978
12979 var dragEventFor = eventsFor.mouse;
12980 /*:: type DraggableCoreState = {
12981 dragging: boolean,
12982 lastX: number,
12983 lastY: number,
12984 touchIdentifier: ?number
12985 };*/
12986
12987 /*:: export type DraggableData = {
12988 node: HTMLElement,
12989 x: number, y: number,
12990 deltaX: number, deltaY: number,
12991 lastX: number, lastY: number,
12992 };*/
12993
12994 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
12995
12996 /*:: export type ControlPosition = {x: number, y: number};*/
12997
12998 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
12999
13000 /*:: export type DraggableCoreDefaultProps = {
13001 allowAnyClick: boolean,
13002 disabled: boolean,
13003 enableUserSelectHack: boolean,
13004 onStart: DraggableEventHandler,
13005 onDrag: DraggableEventHandler,
13006 onStop: DraggableEventHandler,
13007 onMouseDown: (e: MouseEvent) => void,
13008 scale: number,
13009 };*/
13010
13011 /*:: export type DraggableCoreProps = {
13012 ...DraggableCoreDefaultProps,
13013 cancel: string,
13014 children: ReactElement<any>,
13015 offsetParent: HTMLElement,
13016 grid: [number, number],
13017 handle: string,
13018 nodeRef?: ?React.ElementRef<any>,
13019 };*/
13020
13021 //
13022 // Define <DraggableCore>.
13023 //
13024 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
13025 // work well with libraries that require more control over the element.
13026 //
13027 var DraggableCore = /*#__PURE__*/function (_React$Component) {
13028 _inherits(DraggableCore, _React$Component);
13029
13030 var _super = _createSuper(DraggableCore);
13031
13032 function DraggableCore() {
13033 var _this;
13034
13035 _classCallCheck(this, DraggableCore);
13036
13037 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13038 args[_key] = arguments[_key];
13039 }
13040
13041 _this = _super.call.apply(_super, [this].concat(args));
13042
13043 _defineProperty(_assertThisInitialized(_this), "state", {
13044 dragging: false,
13045 // Used while dragging to determine deltas.
13046 lastX: NaN,
13047 lastY: NaN,
13048 touchIdentifier: null
13049 });
13050
13051 _defineProperty(_assertThisInitialized(_this), "mounted", false);
13052
13053 _defineProperty(_assertThisInitialized(_this), "handleDragStart", function (e) {
13054 // Make it possible to attach event handlers on top of this one.
13055 _this.props.onMouseDown(e); // Only accept left-clicks.
13056
13057
13058 if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)
13059
13060 var thisNode = _this.findDOMNode();
13061
13062 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
13063 throw new Error('<DraggableCore> not mounted on DragStart!');
13064 }
13065
13066 var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.
13067
13068 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)) {
13069 return;
13070 } // Prevent scrolling on mobile devices, like ipad/iphone.
13071 // Important that this is after handle/cancel.
13072
13073
13074 if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to
13075 // distinguish between individual touches on multitouch screens by identifying which
13076 // touchpoint was set to this element.
13077
13078 var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
13079
13080 _this.setState({
13081 touchIdentifier: touchIdentifier
13082 }); // Get the current drag point from the event. This is used as the offset.
13083
13084
13085 var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));
13086 if (position == null) return; // not possible but satisfies flow
13087
13088 var x = position.x,
13089 y = position.y; // Create an event object with all the data parents need to make a decision here.
13090
13091 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13092 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.
13093
13094 (0, _log.default)('calling', _this.props.onStart);
13095
13096 var shouldUpdate = _this.props.onStart(e, coreEvent);
13097
13098 if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from
13099 // being selected all over the page.
13100
13101 if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets
13102 // so we know how much we've moved during the drag. This allows us
13103 // to drag elements around even if they have been moved, without issue.
13104
13105 _this.setState({
13106 dragging: true,
13107 lastX: x,
13108 lastY: y
13109 }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of
13110 // this element. We use different events depending on whether or not we have detected that this
13111 // is a touch-capable device.
13112
13113
13114 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);
13115 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);
13116 });
13117
13118 _defineProperty(_assertThisInitialized(_this), "handleDrag", function (e) {
13119 // Get the current drag point from the event. This is used as the offset.
13120 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13121 if (position == null) return;
13122 var x = position.x,
13123 y = position.y; // Snap to grid if prop has been provided
13124
13125 if (Array.isArray(_this.props.grid)) {
13126 var deltaX = x - _this.state.lastX,
13127 deltaY = y - _this.state.lastY;
13128
13129 var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13130
13131 var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);
13132
13133 deltaX = _snapToGrid2[0];
13134 deltaY = _snapToGrid2[1];
13135 if (!deltaX && !deltaY) return; // skip useless drag
13136
13137 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13138 }
13139
13140 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13141 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.
13142
13143 var shouldUpdate = _this.props.onDrag(e, coreEvent);
13144
13145 if (shouldUpdate === false || _this.mounted === false) {
13146 try {
13147 // $FlowIgnore
13148 _this.handleDragStop(new MouseEvent('mouseup'));
13149 } catch (err) {
13150 // Old browsers
13151 var event = ((document.createEvent('MouseEvents')
13152 /*: any*/
13153 )
13154 /*: MouseTouchEvent*/
13155 ); // I see why this insanity was deprecated
13156 // $FlowIgnore
13157
13158 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
13159
13160 _this.handleDragStop(event);
13161 }
13162
13163 return;
13164 }
13165
13166 _this.setState({
13167 lastX: x,
13168 lastY: y
13169 });
13170 });
13171
13172 _defineProperty(_assertThisInitialized(_this), "handleDragStop", function (e) {
13173 if (!_this.state.dragging) return;
13174 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13175 if (position == null) return;
13176 var x = position.x,
13177 y = position.y; // Snap to grid if prop has been provided
13178
13179 if (Array.isArray(_this.props.grid)) {
13180 var deltaX = x - _this.state.lastX || 0;
13181 var deltaY = y - _this.state.lastY || 0;
13182
13183 var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13184
13185 var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);
13186
13187 deltaX = _snapToGrid4[0];
13188 deltaY = _snapToGrid4[1];
13189 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13190 }
13191
13192 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler
13193
13194 var shouldContinue = _this.props.onStop(e, coreEvent);
13195
13196 if (shouldContinue === false || _this.mounted === false) return false;
13197
13198 var thisNode = _this.findDOMNode();
13199
13200 if (thisNode) {
13201 // Remove user-select hack
13202 if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
13203 }
13204
13205 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.
13206
13207 _this.setState({
13208 dragging: false,
13209 lastX: NaN,
13210 lastY: NaN
13211 });
13212
13213 if (thisNode) {
13214 // Remove event handlers
13215 (0, _log.default)('DraggableCore: Removing handlers');
13216 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);
13217 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);
13218 }
13219 });
13220
13221 _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (e) {
13222 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
13223
13224 return _this.handleDragStart(e);
13225 });
13226
13227 _defineProperty(_assertThisInitialized(_this), "onMouseUp", function (e) {
13228 dragEventFor = eventsFor.mouse;
13229 return _this.handleDragStop(e);
13230 });
13231
13232 _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (e) {
13233 // We're on a touch device now, so change the event handlers
13234 dragEventFor = eventsFor.touch;
13235 return _this.handleDragStart(e);
13236 });
13237
13238 _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (e) {
13239 // We're on a touch device now, so change the event handlers
13240 dragEventFor = eventsFor.touch;
13241 return _this.handleDragStop(e);
13242 });
13243
13244 return _this;
13245 }
13246
13247 _createClass(DraggableCore, [{
13248 key: "componentDidMount",
13249 value: function componentDidMount() {
13250 this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.
13251 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13252
13253 var thisNode = this.findDOMNode();
13254
13255 if (thisNode) {
13256 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13257 passive: false
13258 });
13259 }
13260 }
13261 }, {
13262 key: "componentWillUnmount",
13263 value: function componentWillUnmount() {
13264 this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case
13265 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
13266
13267 var thisNode = this.findDOMNode();
13268
13269 if (thisNode) {
13270 var ownerDocument = thisNode.ownerDocument;
13271 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
13272 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
13273 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
13274 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
13275 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13276 passive: false
13277 });
13278 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
13279 }
13280 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
13281 // the underlying DOM node ourselves. See the README for more information.
13282
13283 }, {
13284 key: "findDOMNode",
13285 value: function findDOMNode()
13286 /*: ?HTMLElement*/
13287 {
13288 var _this$props, _this$props2, _this$props2$nodeRef;
13289
13290 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);
13291 }
13292 }, {
13293 key: "render",
13294 value: function render()
13295 /*: React.Element<any>*/
13296 {
13297 // Reuse the child provided
13298 // This makes it flexible to use whatever element is wanted (div, ul, etc)
13299 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
13300 // Note: mouseMove handler is attached to document so it will still function
13301 // when the user drags quickly and leaves the bounds of the element.
13302 onMouseDown: this.onMouseDown,
13303 onMouseUp: this.onMouseUp,
13304 // onTouchStart is added on `componentDidMount` so they can be added with
13305 // {passive: false}, which allows it to cancel. See
13306 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13307 onTouchEnd: this.onTouchEnd
13308 });
13309 }
13310 }]);
13311
13312 return DraggableCore;
13313 }(React.Component);
13314
13315 exports["default"] = DraggableCore;
13316
13317 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
13318
13319 _defineProperty(DraggableCore, "propTypes", {
13320 /**
13321 * `allowAnyClick` allows dragging using any mouse button.
13322 * By default, we only accept the left button.
13323 *
13324 * Defaults to `false`.
13325 */
13326 allowAnyClick: _propTypes.default.bool,
13327
13328 /**
13329 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
13330 * with the exception of `onMouseDown`, will not fire.
13331 */
13332 disabled: _propTypes.default.bool,
13333
13334 /**
13335 * By default, we add 'user-select:none' attributes to the document body
13336 * to prevent ugly text selection during drag. If this is causing problems
13337 * for your app, set this to `false`.
13338 */
13339 enableUserSelectHack: _propTypes.default.bool,
13340
13341 /**
13342 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
13343 * instead of using the parent node.
13344 */
13345 offsetParent: function offsetParent(props
13346 /*: DraggableCoreProps*/
13347 , propName
13348 /*: $Keys<DraggableCoreProps>*/
13349 ) {
13350 if (props[propName] && props[propName].nodeType !== 1) {
13351 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
13352 }
13353 },
13354
13355 /**
13356 * `grid` specifies the x and y that dragging should snap to.
13357 */
13358 grid: _propTypes.default.arrayOf(_propTypes.default.number),
13359
13360 /**
13361 * `handle` specifies a selector to be used as the handle that initiates drag.
13362 *
13363 * Example:
13364 *
13365 * ```jsx
13366 * let App = React.createClass({
13367 * render: function () {
13368 * return (
13369 * <Draggable handle=".handle">
13370 * <div>
13371 * <div className="handle">Click me to drag</div>
13372 * <div>This is some other content</div>
13373 * </div>
13374 * </Draggable>
13375 * );
13376 * }
13377 * });
13378 * ```
13379 */
13380 handle: _propTypes.default.string,
13381
13382 /**
13383 * `cancel` specifies a selector to be used to prevent drag initialization.
13384 *
13385 * Example:
13386 *
13387 * ```jsx
13388 * let App = React.createClass({
13389 * render: function () {
13390 * return(
13391 * <Draggable cancel=".cancel">
13392 * <div>
13393 * <div className="cancel">You can't drag from here</div>
13394 * <div>Dragging here works fine</div>
13395 * </div>
13396 * </Draggable>
13397 * );
13398 * }
13399 * });
13400 * ```
13401 */
13402 cancel: _propTypes.default.string,
13403
13404 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
13405 * Unfortunately, in order for <Draggable> to work properly, we need raw access
13406 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
13407 * as in this example:
13408 *
13409 * function MyComponent() {
13410 * const nodeRef = React.useRef(null);
13411 * return (
13412 * <Draggable nodeRef={nodeRef}>
13413 * <div ref={nodeRef}>Example Target</div>
13414 * </Draggable>
13415 * );
13416 * }
13417 *
13418 * This can be used for arbitrarily nested components, so long as the ref ends up
13419 * pointing to the actual child DOM node and not a custom component.
13420 */
13421 nodeRef: _propTypes.default.object,
13422
13423 /**
13424 * Called when dragging starts.
13425 * If this function returns the boolean false, dragging will be canceled.
13426 */
13427 onStart: _propTypes.default.func,
13428
13429 /**
13430 * Called while dragging.
13431 * If this function returns the boolean false, dragging will be canceled.
13432 */
13433 onDrag: _propTypes.default.func,
13434
13435 /**
13436 * Called when dragging stops.
13437 * If this function returns the boolean false, the drag will remain active.
13438 */
13439 onStop: _propTypes.default.func,
13440
13441 /**
13442 * A workaround option which can be passed if onMouseDown needs to be accessed,
13443 * since it'll always be blocked (as there is internal use of onMouseDown)
13444 */
13445 onMouseDown: _propTypes.default.func,
13446
13447 /**
13448 * `scale`, if set, applies scaling while dragging an element
13449 */
13450 scale: _propTypes.default.number,
13451
13452 /**
13453 * These properties should be defined on the child, not here.
13454 */
13455 className: _shims.dontSetMe,
13456 style: _shims.dontSetMe,
13457 transform: _shims.dontSetMe
13458 });
13459
13460 _defineProperty(DraggableCore, "defaultProps", {
13461 allowAnyClick: false,
13462 // by default only accept left click
13463 disabled: false,
13464 enableUserSelectHack: true,
13465 onStart: function onStart() {},
13466 onDrag: function onDrag() {},
13467 onStop: function onStop() {},
13468 onMouseDown: function onMouseDown() {},
13469 scale: 1
13470 });
13471
13472 /***/ }),
13473
13474 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
13475 /*!********************************************************!*\
13476 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
13477 \********************************************************/
13478 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13479
13480 "use strict";
13481
13482
13483 var _require = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js"),
13484 Draggable = _require.default,
13485 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'.
13486 // See https://github.com/mzabriskie/react-draggable/pull/254
13487 // and https://github.com/mzabriskie/react-draggable/issues/266
13488
13489
13490 module.exports = Draggable;
13491 module.exports["default"] = Draggable;
13492 module.exports.DraggableCore = DraggableCore;
13493
13494 /***/ }),
13495
13496 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
13497 /*!*****************************************************************!*\
13498 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
13499 \*****************************************************************/
13500 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13501
13502 "use strict";
13503
13504
13505 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); }
13506
13507 Object.defineProperty(exports, "__esModule", ({
13508 value: true
13509 }));
13510 exports.addClassName = addClassName;
13511 exports.addEvent = addEvent;
13512 exports.addUserSelectStyles = addUserSelectStyles;
13513 exports.createCSSTransform = createCSSTransform;
13514 exports.createSVGTransform = createSVGTransform;
13515 exports.getTouch = getTouch;
13516 exports.getTouchIdentifier = getTouchIdentifier;
13517 exports.getTranslation = getTranslation;
13518 exports.innerHeight = innerHeight;
13519 exports.innerWidth = innerWidth;
13520 exports.matchesSelector = matchesSelector;
13521 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
13522 exports.offsetXYFromParent = offsetXYFromParent;
13523 exports.outerHeight = outerHeight;
13524 exports.outerWidth = outerWidth;
13525 exports.removeClassName = removeClassName;
13526 exports.removeEvent = removeEvent;
13527 exports.removeUserSelectStyles = removeUserSelectStyles;
13528
13529 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
13530
13531 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
13532
13533 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); }
13534
13535 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; }
13536
13537 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; }
13538
13539 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; }
13540
13541 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; }
13542
13543 var matchesSelectorFunc = '';
13544
13545 function matchesSelector(el
13546 /*: Node*/
13547 , selector
13548 /*: string*/
13549 )
13550 /*: boolean*/
13551 {
13552 if (!matchesSelectorFunc) {
13553 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
13554 // $FlowIgnore: Doesn't think elements are indexable
13555 return (0, _shims.isFunction)(el[method]);
13556 });
13557 } // Might not be found entirely (not an Element?) - in that case, bail
13558 // $FlowIgnore: Doesn't think elements are indexable
13559
13560
13561 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable
13562
13563 return el[matchesSelectorFunc](selector);
13564 } // Works up the tree to the draggable itself attempting to match selector.
13565
13566
13567 function matchesSelectorAndParentsTo(el
13568 /*: Node*/
13569 , selector
13570 /*: string*/
13571 , baseNode
13572 /*: Node*/
13573 )
13574 /*: boolean*/
13575 {
13576 var node = el;
13577
13578 do {
13579 if (matchesSelector(node, selector)) return true;
13580 if (node === baseNode) return false;
13581 node = node.parentNode;
13582 } while (node);
13583
13584 return false;
13585 }
13586
13587 function addEvent(el
13588 /*: ?Node*/
13589 , event
13590 /*: string*/
13591 , handler
13592 /*: Function*/
13593 , inputOptions
13594 /*: Object*/
13595 )
13596 /*: void*/
13597 {
13598 if (!el) return;
13599
13600 var options = _objectSpread({
13601 capture: true
13602 }, inputOptions); // $FlowIgnore[method-unbinding]
13603
13604
13605 if (el.addEventListener) {
13606 el.addEventListener(event, handler, options);
13607 } else if (el.attachEvent) {
13608 el.attachEvent('on' + event, handler);
13609 } else {
13610 // $FlowIgnore: Doesn't think elements are indexable
13611 el['on' + event] = handler;
13612 }
13613 }
13614
13615 function removeEvent(el
13616 /*: ?Node*/
13617 , event
13618 /*: string*/
13619 , handler
13620 /*: Function*/
13621 , inputOptions
13622 /*: Object*/
13623 )
13624 /*: void*/
13625 {
13626 if (!el) return;
13627
13628 var options = _objectSpread({
13629 capture: true
13630 }, inputOptions); // $FlowIgnore[method-unbinding]
13631
13632
13633 if (el.removeEventListener) {
13634 el.removeEventListener(event, handler, options);
13635 } else if (el.detachEvent) {
13636 el.detachEvent('on' + event, handler);
13637 } else {
13638 // $FlowIgnore: Doesn't think elements are indexable
13639 el['on' + event] = null;
13640 }
13641 }
13642
13643 function outerHeight(node
13644 /*: HTMLElement*/
13645 )
13646 /*: number*/
13647 {
13648 // This is deliberately excluding margin for our calculations, since we are using
13649 // offsetTop which is including margin. See getBoundPosition
13650 var height = node.clientHeight;
13651 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13652 height += (0, _shims.int)(computedStyle.borderTopWidth);
13653 height += (0, _shims.int)(computedStyle.borderBottomWidth);
13654 return height;
13655 }
13656
13657 function outerWidth(node
13658 /*: HTMLElement*/
13659 )
13660 /*: number*/
13661 {
13662 // This is deliberately excluding margin for our calculations, since we are using
13663 // offsetLeft which is including margin. See getBoundPosition
13664 var width = node.clientWidth;
13665 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13666 width += (0, _shims.int)(computedStyle.borderLeftWidth);
13667 width += (0, _shims.int)(computedStyle.borderRightWidth);
13668 return width;
13669 }
13670
13671 function innerHeight(node
13672 /*: HTMLElement*/
13673 )
13674 /*: number*/
13675 {
13676 var height = node.clientHeight;
13677 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13678 height -= (0, _shims.int)(computedStyle.paddingTop);
13679 height -= (0, _shims.int)(computedStyle.paddingBottom);
13680 return height;
13681 }
13682
13683 function innerWidth(node
13684 /*: HTMLElement*/
13685 )
13686 /*: number*/
13687 {
13688 var width = node.clientWidth;
13689 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
13690 width -= (0, _shims.int)(computedStyle.paddingLeft);
13691 width -= (0, _shims.int)(computedStyle.paddingRight);
13692 return width;
13693 }
13694 /*:: interface EventWithOffset {
13695 clientX: number, clientY: number
13696 }*/
13697
13698
13699 // Get from offsetParent
13700 function offsetXYFromParent(evt
13701 /*: EventWithOffset*/
13702 , offsetParent
13703 /*: HTMLElement*/
13704 , scale
13705 /*: number*/
13706 )
13707 /*: ControlPosition*/
13708 {
13709 var isBody = offsetParent === offsetParent.ownerDocument.body;
13710 var offsetParentRect = isBody ? {
13711 left: 0,
13712 top: 0
13713 } : offsetParent.getBoundingClientRect();
13714 var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
13715 var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
13716 return {
13717 x: x,
13718 y: y
13719 };
13720 }
13721
13722 function createCSSTransform(controlPos
13723 /*: ControlPosition*/
13724 , positionOffset
13725 /*: PositionOffsetControlPosition*/
13726 )
13727 /*: Object*/
13728 {
13729 var translation = getTranslation(controlPos, positionOffset, 'px');
13730 return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);
13731 }
13732
13733 function createSVGTransform(controlPos
13734 /*: ControlPosition*/
13735 , positionOffset
13736 /*: PositionOffsetControlPosition*/
13737 )
13738 /*: string*/
13739 {
13740 var translation = getTranslation(controlPos, positionOffset, '');
13741 return translation;
13742 }
13743
13744 function getTranslation(_ref2, positionOffset
13745 /*: PositionOffsetControlPosition*/
13746 , unitSuffix
13747 /*: string*/
13748 )
13749 /*: string*/
13750 {
13751 var x = _ref2.x,
13752 y = _ref2.y;
13753 var translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
13754
13755 if (positionOffset) {
13756 var defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
13757 var defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
13758 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
13759 }
13760
13761 return translation;
13762 }
13763
13764 function getTouch(e
13765 /*: MouseTouchEvent*/
13766 , identifier
13767 /*: number*/
13768 )
13769 /*: ?{clientX: number, clientY: number}*/
13770 {
13771 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {
13772 return identifier === t.identifier;
13773 }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {
13774 return identifier === t.identifier;
13775 });
13776 }
13777
13778 function getTouchIdentifier(e
13779 /*: MouseTouchEvent*/
13780 )
13781 /*: ?number*/
13782 {
13783 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
13784 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
13785 } // User-select Hacks:
13786 //
13787 // Useful for preventing blue highlights all over everything when dragging.
13788 // Note we're passing `document` b/c we could be iframed
13789
13790
13791 function addUserSelectStyles(doc
13792 /*: ?Document*/
13793 ) {
13794 if (!doc) return;
13795 var styleEl = doc.getElementById('react-draggable-style-el');
13796
13797 if (!styleEl) {
13798 styleEl = doc.createElement('style');
13799 styleEl.type = 'text/css';
13800 styleEl.id = 'react-draggable-style-el';
13801 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
13802 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
13803 doc.getElementsByTagName('head')[0].appendChild(styleEl);
13804 }
13805
13806 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
13807 }
13808
13809 function removeUserSelectStyles(doc
13810 /*: ?Document*/
13811 ) {
13812 if (!doc) return;
13813
13814 try {
13815 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE
13816
13817 if (doc.selection) {
13818 // $FlowIgnore: IE
13819 doc.selection.empty();
13820 } else {
13821 // Remove selection caused by scroll, unless it's a focused input
13822 // (we use doc.defaultView in case we're in an iframe)
13823 var selection = (doc.defaultView || window).getSelection();
13824
13825 if (selection && selection.type !== 'Caret') {
13826 selection.removeAllRanges();
13827 }
13828 }
13829 } catch (e) {// probably IE
13830 }
13831 }
13832
13833 function addClassName(el
13834 /*: HTMLElement*/
13835 , className
13836 /*: string*/
13837 ) {
13838 if (el.classList) {
13839 el.classList.add(className);
13840 } else {
13841 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
13842 el.className += " ".concat(className);
13843 }
13844 }
13845 }
13846
13847 function removeClassName(el
13848 /*: HTMLElement*/
13849 , className
13850 /*: string*/
13851 ) {
13852 if (el.classList) {
13853 el.classList.remove(className);
13854 } else {
13855 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
13856 }
13857 }
13858
13859 /***/ }),
13860
13861 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
13862 /*!********************************************************************!*\
13863 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
13864 \********************************************************************/
13865 /***/ ((__unused_webpack_module, exports) => {
13866
13867 "use strict";
13868
13869
13870 Object.defineProperty(exports, "__esModule", ({
13871 value: true
13872 }));
13873 exports.browserPrefixToKey = browserPrefixToKey;
13874 exports.browserPrefixToStyle = browserPrefixToStyle;
13875 exports["default"] = void 0;
13876 exports.getPrefix = getPrefix;
13877 var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
13878
13879 function getPrefix()
13880 /*: string*/
13881 {
13882 var _window$document, _window$document$docu;
13883
13884 var prop
13885 /*: string*/
13886 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
13887 // Ensure we're running in an environment where there is actually a global
13888 // `window` obj
13889 if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access
13890 // path may not exist, so bail out if it doesn't.
13891
13892 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;
13893 if (!style) return '';
13894 if (prop in style) return '';
13895
13896 for (var i = 0; i < prefixes.length; i++) {
13897 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
13898 }
13899
13900 return '';
13901 }
13902
13903 function browserPrefixToKey(prop
13904 /*: string*/
13905 , prefix
13906 /*: string*/
13907 )
13908 /*: string*/
13909 {
13910 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
13911 }
13912
13913 function browserPrefixToStyle(prop
13914 /*: string*/
13915 , prefix
13916 /*: string*/
13917 )
13918 /*: string*/
13919 {
13920 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
13921 }
13922
13923 function kebabToTitleCase(str
13924 /*: string*/
13925 )
13926 /*: string*/
13927 {
13928 var out = '';
13929 var shouldCapitalize = true;
13930
13931 for (var i = 0; i < str.length; i++) {
13932 if (shouldCapitalize) {
13933 out += str[i].toUpperCase();
13934 shouldCapitalize = false;
13935 } else if (str[i] === '-') {
13936 shouldCapitalize = true;
13937 } else {
13938 out += str[i];
13939 }
13940 }
13941
13942 return out;
13943 } // Default export is the prefix itself, like 'Moz', 'Webkit', etc
13944 // Note that you may have to re-test for certain things; for instance, Chrome 50
13945 // can handle unprefixed `transform`, but not unprefixed `user-select`
13946
13947
13948 var _default = (getPrefix()
13949 /*: string*/
13950 );
13951
13952 exports["default"] = _default;
13953
13954 /***/ }),
13955
13956 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
13957 /*!**************************************************************!*\
13958 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
13959 \**************************************************************/
13960 /***/ ((__unused_webpack_module, exports) => {
13961
13962 "use strict";
13963
13964
13965 Object.defineProperty(exports, "__esModule", ({
13966 value: true
13967 }));
13968 exports["default"] = log;
13969
13970 /*eslint no-console:0*/
13971 function log() {
13972 var _console;
13973
13974 if (false) {}
13975 }
13976
13977 /***/ }),
13978
13979 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
13980 /*!**********************************************************************!*\
13981 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
13982 \**********************************************************************/
13983 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13984
13985 "use strict";
13986
13987
13988 Object.defineProperty(exports, "__esModule", ({
13989 value: true
13990 }));
13991 exports.canDragX = canDragX;
13992 exports.canDragY = canDragY;
13993 exports.createCoreData = createCoreData;
13994 exports.createDraggableData = createDraggableData;
13995 exports.getBoundPosition = getBoundPosition;
13996 exports.getControlPosition = getControlPosition;
13997 exports.snapToGrid = snapToGrid;
13998
13999 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
14000
14001 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
14002
14003 function getBoundPosition(draggable
14004 /*: Draggable*/
14005 , x
14006 /*: number*/
14007 , y
14008 /*: number*/
14009 )
14010 /*: [number, number]*/
14011 {
14012 // If no bounds, short-circuit and move on
14013 if (!draggable.props.bounds) return [x, y]; // Clone new bounds
14014
14015 var bounds = draggable.props.bounds;
14016 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
14017 var node = findDOMNode(draggable);
14018
14019 if (typeof bounds === 'string') {
14020 var ownerDocument = node.ownerDocument;
14021 var ownerWindow = ownerDocument.defaultView;
14022 var boundNode;
14023
14024 if (bounds === 'parent') {
14025 boundNode = node.parentNode;
14026 } else {
14027 boundNode = ownerDocument.querySelector(bounds);
14028 }
14029
14030 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
14031 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
14032 }
14033
14034 var boundNodeEl
14035 /*: HTMLElement*/
14036 = boundNode; // for Flow, can't seem to refine correctly
14037
14038 var nodeStyle = ownerWindow.getComputedStyle(node);
14039 var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
14040
14041 bounds = {
14042 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
14043 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
14044 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
14045 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
14046 };
14047 } // Keep x and y below right and bottom limits...
14048
14049
14050 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
14051 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.
14052
14053 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
14054 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
14055 return [x, y];
14056 }
14057
14058 function snapToGrid(grid
14059 /*: [number, number]*/
14060 , pendingX
14061 /*: number*/
14062 , pendingY
14063 /*: number*/
14064 )
14065 /*: [number, number]*/
14066 {
14067 var x = Math.round(pendingX / grid[0]) * grid[0];
14068 var y = Math.round(pendingY / grid[1]) * grid[1];
14069 return [x, y];
14070 }
14071
14072 function canDragX(draggable
14073 /*: Draggable*/
14074 )
14075 /*: boolean*/
14076 {
14077 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
14078 }
14079
14080 function canDragY(draggable
14081 /*: Draggable*/
14082 )
14083 /*: boolean*/
14084 {
14085 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
14086 } // Get {x, y} positions from event.
14087
14088
14089 function getControlPosition(e
14090 /*: MouseTouchEvent*/
14091 , touchIdentifier
14092 /*: ?number*/
14093 , draggableCore
14094 /*: DraggableCore*/
14095 )
14096 /*: ?ControlPosition*/
14097 {
14098 var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
14099 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
14100
14101 var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.
14102
14103 var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
14104 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
14105 } // Create an data object exposed by <DraggableCore>'s events
14106
14107
14108 function createCoreData(draggable
14109 /*: DraggableCore*/
14110 , x
14111 /*: number*/
14112 , y
14113 /*: number*/
14114 )
14115 /*: DraggableData*/
14116 {
14117 var state = draggable.state;
14118 var isStart = !(0, _shims.isNum)(state.lastX);
14119 var node = findDOMNode(draggable);
14120
14121 if (isStart) {
14122 // If this is our first move, use the x and y as last coords.
14123 return {
14124 node: node,
14125 deltaX: 0,
14126 deltaY: 0,
14127 lastX: x,
14128 lastY: y,
14129 x: x,
14130 y: y
14131 };
14132 } else {
14133 // Otherwise calculate proper values.
14134 return {
14135 node: node,
14136 deltaX: x - state.lastX,
14137 deltaY: y - state.lastY,
14138 lastX: state.lastX,
14139 lastY: state.lastY,
14140 x: x,
14141 y: y
14142 };
14143 }
14144 } // Create an data exposed by <Draggable>'s events
14145
14146
14147 function createDraggableData(draggable
14148 /*: Draggable*/
14149 , coreData
14150 /*: DraggableData*/
14151 )
14152 /*: DraggableData*/
14153 {
14154 var scale = draggable.props.scale;
14155 return {
14156 node: coreData.node,
14157 x: draggable.state.x + coreData.deltaX / scale,
14158 y: draggable.state.y + coreData.deltaY / scale,
14159 deltaX: coreData.deltaX / scale,
14160 deltaY: coreData.deltaY / scale,
14161 lastX: draggable.state.x,
14162 lastY: draggable.state.y
14163 };
14164 } // A lot faster than stringify/parse
14165
14166
14167 function cloneBounds(bounds
14168 /*: Bounds*/
14169 )
14170 /*: Bounds*/
14171 {
14172 return {
14173 left: bounds.left,
14174 top: bounds.top,
14175 right: bounds.right,
14176 bottom: bounds.bottom
14177 };
14178 }
14179
14180 function findDOMNode(draggable
14181 /*: Draggable | DraggableCore*/
14182 )
14183 /*: HTMLElement*/
14184 {
14185 var node = draggable.findDOMNode();
14186
14187 if (!node) {
14188 throw new Error('<DraggableCore>: Unmounted during event!');
14189 } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
14190
14191
14192 return node;
14193 }
14194
14195 /***/ }),
14196
14197 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
14198 /*!****************************************************************!*\
14199 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
14200 \****************************************************************/
14201 /***/ ((__unused_webpack_module, exports) => {
14202
14203 "use strict";
14204
14205
14206 Object.defineProperty(exports, "__esModule", ({
14207 value: true
14208 }));
14209 exports.dontSetMe = dontSetMe;
14210 exports.findInArray = findInArray;
14211 exports.int = int;
14212 exports.isFunction = isFunction;
14213 exports.isNum = isNum;
14214
14215 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
14216 function findInArray(array
14217 /*: Array<any> | TouchList*/
14218 , callback
14219 /*: Function*/
14220 )
14221 /*: any*/
14222 {
14223 for (var i = 0, length = array.length; i < length; i++) {
14224 if (callback.apply(callback, [array[i], i, array])) return array[i];
14225 }
14226 }
14227
14228 function isFunction(func
14229 /*: any*/
14230 )
14231 /*: boolean %checks*/
14232 {
14233 // $FlowIgnore[method-unbinding]
14234 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
14235 }
14236
14237 function isNum(num
14238 /*: any*/
14239 )
14240 /*: boolean %checks*/
14241 {
14242 return typeof num === 'number' && !isNaN(num);
14243 }
14244
14245 function int(a
14246 /*: string*/
14247 )
14248 /*: number*/
14249 {
14250 return parseInt(a, 10);
14251 }
14252
14253 function dontSetMe(props
14254 /*: Object*/
14255 , propName
14256 /*: string*/
14257 , componentName
14258 /*: string*/
14259 )
14260 /*: ?Error*/
14261 {
14262 if (props[propName]) {
14263 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
14264 }
14265 }
14266
14267 /***/ }),
14268
14269 /***/ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js":
14270 /*!**********************************************************************!*\
14271 !*** ../node_modules/react-infinite-scroller/dist/InfiniteScroll.js ***!
14272 \**********************************************************************/
14273 /***/ ((module, exports, __webpack_require__) => {
14274
14275 "use strict";
14276
14277
14278 Object.defineProperty(exports, "__esModule", ({
14279 value: true
14280 }));
14281
14282 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; }; }();
14283
14284 var _react = __webpack_require__(/*! react */ "react");
14285
14286 var _react2 = _interopRequireDefault(_react);
14287
14288 var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
14289
14290 var _propTypes2 = _interopRequireDefault(_propTypes);
14291
14292 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14293
14294 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; }
14295
14296 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14297
14298 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; }
14299
14300 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; }
14301
14302 var InfiniteScroll = function (_Component) {
14303 _inherits(InfiniteScroll, _Component);
14304
14305 function InfiniteScroll(props) {
14306 _classCallCheck(this, InfiniteScroll);
14307
14308 var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
14309
14310 _this.scrollListener = _this.scrollListener.bind(_this);
14311 _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
14312 _this.mousewheelListener = _this.mousewheelListener.bind(_this);
14313 return _this;
14314 }
14315
14316 _createClass(InfiniteScroll, [{
14317 key: 'componentDidMount',
14318 value: function componentDidMount() {
14319 this.pageLoaded = this.props.pageStart;
14320 this.options = this.eventListenerOptions();
14321 this.attachScrollListener();
14322 }
14323 }, {
14324 key: 'componentDidUpdate',
14325 value: function componentDidUpdate() {
14326 if (this.props.isReverse && this.loadMore) {
14327 var parentElement = this.getParentElement(this.scrollComponent);
14328 parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
14329 this.loadMore = false;
14330 }
14331 this.attachScrollListener();
14332 }
14333 }, {
14334 key: 'componentWillUnmount',
14335 value: function componentWillUnmount() {
14336 this.detachScrollListener();
14337 this.detachMousewheelListener();
14338 }
14339 }, {
14340 key: 'isPassiveSupported',
14341 value: function isPassiveSupported() {
14342 var passive = false;
14343
14344 var testOptions = {
14345 get passive() {
14346 passive = true;
14347 }
14348 };
14349
14350 try {
14351 document.addEventListener('test', null, testOptions);
14352 document.removeEventListener('test', null, testOptions);
14353 } catch (e) {
14354 // ignore
14355 }
14356 return passive;
14357 }
14358 }, {
14359 key: 'eventListenerOptions',
14360 value: function eventListenerOptions() {
14361 var options = this.props.useCapture;
14362
14363 if (this.isPassiveSupported()) {
14364 options = {
14365 useCapture: this.props.useCapture,
14366 passive: true
14367 };
14368 } else {
14369 options = {
14370 passive: false
14371 };
14372 }
14373 return options;
14374 }
14375
14376 // Set a defaut loader for all your `InfiniteScroll` components
14377
14378 }, {
14379 key: 'setDefaultLoader',
14380 value: function setDefaultLoader(loader) {
14381 this.defaultLoader = loader;
14382 }
14383 }, {
14384 key: 'detachMousewheelListener',
14385 value: function detachMousewheelListener() {
14386 var scrollEl = window;
14387 if (this.props.useWindow === false) {
14388 scrollEl = this.scrollComponent.parentNode;
14389 }
14390
14391 scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14392 }
14393 }, {
14394 key: 'detachScrollListener',
14395 value: function detachScrollListener() {
14396 var scrollEl = window;
14397 if (this.props.useWindow === false) {
14398 scrollEl = this.getParentElement(this.scrollComponent);
14399 }
14400
14401 scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14402 scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14403 }
14404 }, {
14405 key: 'getParentElement',
14406 value: function getParentElement(el) {
14407 var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
14408 if (scrollParent != null) {
14409 return scrollParent;
14410 }
14411 return el && el.parentNode;
14412 }
14413 }, {
14414 key: 'filterProps',
14415 value: function filterProps(props) {
14416 return props;
14417 }
14418 }, {
14419 key: 'attachScrollListener',
14420 value: function attachScrollListener() {
14421 var parentElement = this.getParentElement(this.scrollComponent);
14422
14423 if (!this.props.hasMore || !parentElement) {
14424 return;
14425 }
14426
14427 var scrollEl = window;
14428 if (this.props.useWindow === false) {
14429 scrollEl = parentElement;
14430 }
14431
14432 scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14433 scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14434 scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14435
14436 if (this.props.initialLoad) {
14437 this.scrollListener();
14438 }
14439 }
14440 }, {
14441 key: 'mousewheelListener',
14442 value: function mousewheelListener(e) {
14443 // Prevents Chrome hangups
14444 // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
14445 if (e.deltaY === 1 && !this.isPassiveSupported()) {
14446 e.preventDefault();
14447 }
14448 }
14449 }, {
14450 key: 'scrollListener',
14451 value: function scrollListener() {
14452 var el = this.scrollComponent;
14453 var scrollEl = window;
14454 var parentNode = this.getParentElement(el);
14455
14456 var offset = void 0;
14457 if (this.props.useWindow) {
14458 var doc = document.documentElement || document.body.parentNode || document.body;
14459 var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
14460 if (this.props.isReverse) {
14461 offset = scrollTop;
14462 } else {
14463 offset = this.calculateOffset(el, scrollTop);
14464 }
14465 } else if (this.props.isReverse) {
14466 offset = parentNode.scrollTop;
14467 } else {
14468 offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
14469 }
14470
14471 // Here we make sure the element is visible as well as checking the offset
14472 if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
14473 this.detachScrollListener();
14474 this.beforeScrollHeight = parentNode.scrollHeight;
14475 this.beforeScrollTop = parentNode.scrollTop;
14476 // Call loadMore after detachScrollListener to allow for non-async loadMore functions
14477 if (typeof this.props.loadMore === 'function') {
14478 this.props.loadMore(this.pageLoaded += 1);
14479 this.loadMore = true;
14480 }
14481 }
14482 }
14483 }, {
14484 key: 'calculateOffset',
14485 value: function calculateOffset(el, scrollTop) {
14486 if (!el) {
14487 return 0;
14488 }
14489
14490 return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
14491 }
14492 }, {
14493 key: 'calculateTopPosition',
14494 value: function calculateTopPosition(el) {
14495 if (!el) {
14496 return 0;
14497 }
14498 return el.offsetTop + this.calculateTopPosition(el.offsetParent);
14499 }
14500 }, {
14501 key: 'render',
14502 value: function render() {
14503 var _this2 = this;
14504
14505 var renderProps = this.filterProps(this.props);
14506
14507 var children = renderProps.children,
14508 element = renderProps.element,
14509 hasMore = renderProps.hasMore,
14510 initialLoad = renderProps.initialLoad,
14511 isReverse = renderProps.isReverse,
14512 loader = renderProps.loader,
14513 loadMore = renderProps.loadMore,
14514 pageStart = renderProps.pageStart,
14515 ref = renderProps.ref,
14516 threshold = renderProps.threshold,
14517 useCapture = renderProps.useCapture,
14518 useWindow = renderProps.useWindow,
14519 getScrollParent = renderProps.getScrollParent,
14520 props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
14521
14522 props.ref = function (node) {
14523 _this2.scrollComponent = node;
14524 if (ref) {
14525 ref(node);
14526 }
14527 };
14528
14529 var childrenArray = [children];
14530 if (hasMore) {
14531 if (loader) {
14532 isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
14533 } else if (this.defaultLoader) {
14534 isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
14535 }
14536 }
14537 return _react2.default.createElement(element, props, childrenArray);
14538 }
14539 }]);
14540
14541 return InfiniteScroll;
14542 }(_react.Component);
14543
14544 InfiniteScroll.propTypes = {
14545 children: _propTypes2.default.node.isRequired,
14546 element: _propTypes2.default.node,
14547 hasMore: _propTypes2.default.bool,
14548 initialLoad: _propTypes2.default.bool,
14549 isReverse: _propTypes2.default.bool,
14550 loader: _propTypes2.default.node,
14551 loadMore: _propTypes2.default.func.isRequired,
14552 pageStart: _propTypes2.default.number,
14553 ref: _propTypes2.default.func,
14554 getScrollParent: _propTypes2.default.func,
14555 threshold: _propTypes2.default.number,
14556 useCapture: _propTypes2.default.bool,
14557 useWindow: _propTypes2.default.bool
14558 };
14559 InfiniteScroll.defaultProps = {
14560 element: 'div',
14561 hasMore: false,
14562 initialLoad: true,
14563 pageStart: 0,
14564 ref: null,
14565 threshold: 250,
14566 useWindow: true,
14567 isReverse: false,
14568 useCapture: false,
14569 loader: null,
14570 getScrollParent: null
14571 };
14572 exports["default"] = InfiniteScroll;
14573 module.exports = exports['default'];
14574
14575
14576 /***/ }),
14577
14578 /***/ "../node_modules/react-infinite-scroller/index.js":
14579 /*!********************************************************!*\
14580 !*** ../node_modules/react-infinite-scroller/index.js ***!
14581 \********************************************************/
14582 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14583
14584 module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js")
14585
14586
14587 /***/ }),
14588
14589 /***/ "../node_modules/react-is/cjs/react-is.development.js":
14590 /*!************************************************************!*\
14591 !*** ../node_modules/react-is/cjs/react-is.development.js ***!
14592 \************************************************************/
14593 /***/ ((__unused_webpack_module, exports) => {
14594
14595 "use strict";
14596 /**
14597 * @license React
14598 * react-is.development.js
14599 *
14600 * Copyright (c) Facebook, Inc. and its affiliates.
14601 *
14602 * This source code is licensed under the MIT license found in the
14603 * LICENSE file in the root directory of this source tree.
14604 */
14605
14606
14607
14608 if (true) {
14609 (function() {
14610 'use strict';
14611
14612 // ATTENTION
14613 // When adding new symbols to this file,
14614 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
14615 // The Symbol used to tag the ReactElement-like types.
14616 var REACT_ELEMENT_TYPE = Symbol.for('react.element');
14617 var REACT_PORTAL_TYPE = Symbol.for('react.portal');
14618 var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
14619 var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
14620 var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
14621 var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
14622 var REACT_CONTEXT_TYPE = Symbol.for('react.context');
14623 var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
14624 var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
14625 var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
14626 var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
14627 var REACT_MEMO_TYPE = Symbol.for('react.memo');
14628 var REACT_LAZY_TYPE = Symbol.for('react.lazy');
14629 var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
14630
14631 // -----------------------------------------------------------------------------
14632
14633 var enableScopeAPI = false; // Experimental Create Event Handle API.
14634 var enableCacheElement = false;
14635 var enableTransitionTracing = false; // No known bugs, but needs performance testing
14636
14637 var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
14638 // stuff. Intended to enable React core members to more easily debug scheduling
14639 // issues in DEV builds.
14640
14641 var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
14642
14643 var REACT_MODULE_REFERENCE;
14644
14645 {
14646 REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
14647 }
14648
14649 function isValidElementType(type) {
14650 if (typeof type === 'string' || typeof type === 'function') {
14651 return true;
14652 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
14653
14654
14655 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 ) {
14656 return true;
14657 }
14658
14659 if (typeof type === 'object' && type !== null) {
14660 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
14661 // types supported by any Flight configuration anywhere since
14662 // we don't know which Flight build this will end up being used
14663 // with.
14664 type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
14665 return true;
14666 }
14667 }
14668
14669 return false;
14670 }
14671
14672 function typeOf(object) {
14673 if (typeof object === 'object' && object !== null) {
14674 var $$typeof = object.$$typeof;
14675
14676 switch ($$typeof) {
14677 case REACT_ELEMENT_TYPE:
14678 var type = object.type;
14679
14680 switch (type) {
14681 case REACT_FRAGMENT_TYPE:
14682 case REACT_PROFILER_TYPE:
14683 case REACT_STRICT_MODE_TYPE:
14684 case REACT_SUSPENSE_TYPE:
14685 case REACT_SUSPENSE_LIST_TYPE:
14686 return type;
14687
14688 default:
14689 var $$typeofType = type && type.$$typeof;
14690
14691 switch ($$typeofType) {
14692 case REACT_SERVER_CONTEXT_TYPE:
14693 case REACT_CONTEXT_TYPE:
14694 case REACT_FORWARD_REF_TYPE:
14695 case REACT_LAZY_TYPE:
14696 case REACT_MEMO_TYPE:
14697 case REACT_PROVIDER_TYPE:
14698 return $$typeofType;
14699
14700 default:
14701 return $$typeof;
14702 }
14703
14704 }
14705
14706 case REACT_PORTAL_TYPE:
14707 return $$typeof;
14708 }
14709 }
14710
14711 return undefined;
14712 }
14713 var ContextConsumer = REACT_CONTEXT_TYPE;
14714 var ContextProvider = REACT_PROVIDER_TYPE;
14715 var Element = REACT_ELEMENT_TYPE;
14716 var ForwardRef = REACT_FORWARD_REF_TYPE;
14717 var Fragment = REACT_FRAGMENT_TYPE;
14718 var Lazy = REACT_LAZY_TYPE;
14719 var Memo = REACT_MEMO_TYPE;
14720 var Portal = REACT_PORTAL_TYPE;
14721 var Profiler = REACT_PROFILER_TYPE;
14722 var StrictMode = REACT_STRICT_MODE_TYPE;
14723 var Suspense = REACT_SUSPENSE_TYPE;
14724 var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
14725 var hasWarnedAboutDeprecatedIsAsyncMode = false;
14726 var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
14727
14728 function isAsyncMode(object) {
14729 {
14730 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
14731 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
14732
14733 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14734 }
14735 }
14736
14737 return false;
14738 }
14739 function isConcurrentMode(object) {
14740 {
14741 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
14742 hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
14743
14744 console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
14745 }
14746 }
14747
14748 return false;
14749 }
14750 function isContextConsumer(object) {
14751 return typeOf(object) === REACT_CONTEXT_TYPE;
14752 }
14753 function isContextProvider(object) {
14754 return typeOf(object) === REACT_PROVIDER_TYPE;
14755 }
14756 function isElement(object) {
14757 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
14758 }
14759 function isForwardRef(object) {
14760 return typeOf(object) === REACT_FORWARD_REF_TYPE;
14761 }
14762 function isFragment(object) {
14763 return typeOf(object) === REACT_FRAGMENT_TYPE;
14764 }
14765 function isLazy(object) {
14766 return typeOf(object) === REACT_LAZY_TYPE;
14767 }
14768 function isMemo(object) {
14769 return typeOf(object) === REACT_MEMO_TYPE;
14770 }
14771 function isPortal(object) {
14772 return typeOf(object) === REACT_PORTAL_TYPE;
14773 }
14774 function isProfiler(object) {
14775 return typeOf(object) === REACT_PROFILER_TYPE;
14776 }
14777 function isStrictMode(object) {
14778 return typeOf(object) === REACT_STRICT_MODE_TYPE;
14779 }
14780 function isSuspense(object) {
14781 return typeOf(object) === REACT_SUSPENSE_TYPE;
14782 }
14783 function isSuspenseList(object) {
14784 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
14785 }
14786
14787 exports.ContextConsumer = ContextConsumer;
14788 exports.ContextProvider = ContextProvider;
14789 exports.Element = Element;
14790 exports.ForwardRef = ForwardRef;
14791 exports.Fragment = Fragment;
14792 exports.Lazy = Lazy;
14793 exports.Memo = Memo;
14794 exports.Portal = Portal;
14795 exports.Profiler = Profiler;
14796 exports.StrictMode = StrictMode;
14797 exports.Suspense = Suspense;
14798 exports.SuspenseList = SuspenseList;
14799 exports.isAsyncMode = isAsyncMode;
14800 exports.isConcurrentMode = isConcurrentMode;
14801 exports.isContextConsumer = isContextConsumer;
14802 exports.isContextProvider = isContextProvider;
14803 exports.isElement = isElement;
14804 exports.isForwardRef = isForwardRef;
14805 exports.isFragment = isFragment;
14806 exports.isLazy = isLazy;
14807 exports.isMemo = isMemo;
14808 exports.isPortal = isPortal;
14809 exports.isProfiler = isProfiler;
14810 exports.isStrictMode = isStrictMode;
14811 exports.isSuspense = isSuspense;
14812 exports.isSuspenseList = isSuspenseList;
14813 exports.isValidElementType = isValidElementType;
14814 exports.typeOf = typeOf;
14815 })();
14816 }
14817
14818
14819 /***/ }),
14820
14821 /***/ "../node_modules/react-is/index.js":
14822 /*!*****************************************!*\
14823 !*** ../node_modules/react-is/index.js ***!
14824 \*****************************************/
14825 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14826
14827 "use strict";
14828
14829
14830 if (false) {} else {
14831 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
14832 }
14833
14834
14835 /***/ }),
14836
14837 /***/ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js":
14838 /*!***************************************************************************!*\
14839 !*** ../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js ***!
14840 \***************************************************************************/
14841 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
14842
14843 "use strict";
14844 __webpack_require__.r(__webpack_exports__);
14845 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14846 /* harmony export */ Canvas: () => (/* binding */ Canvas),
14847 /* harmony export */ ReactSketchCanvas: () => (/* binding */ ReactSketchCanvas)
14848 /* harmony export */ });
14849 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14850 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14851
14852
14853 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14854 try {
14855 var info = gen[key](arg);
14856 var value = info.value;
14857 } catch (error) {
14858 reject(error);
14859 return;
14860 }
14861
14862 if (info.done) {
14863 resolve(value);
14864 } else {
14865 Promise.resolve(value).then(_next, _throw);
14866 }
14867 }
14868
14869 function _asyncToGenerator(fn) {
14870 return function () {
14871 var self = this,
14872 args = arguments;
14873 return new Promise(function (resolve, reject) {
14874 var gen = fn.apply(self, args);
14875
14876 function _next(value) {
14877 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
14878 }
14879
14880 function _throw(err) {
14881 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
14882 }
14883
14884 _next(undefined);
14885 });
14886 };
14887 }
14888
14889 function _extends() {
14890 _extends = Object.assign || function (target) {
14891 for (var i = 1; i < arguments.length; i++) {
14892 var source = arguments[i];
14893
14894 for (var key in source) {
14895 if (Object.prototype.hasOwnProperty.call(source, key)) {
14896 target[key] = source[key];
14897 }
14898 }
14899 }
14900
14901 return target;
14902 };
14903
14904 return _extends.apply(this, arguments);
14905 }
14906
14907 var runtime = {exports: {}};
14908
14909 /**
14910 * Copyright (c) 2014-present, Facebook, Inc.
14911 *
14912 * This source code is licensed under the MIT license found in the
14913 * LICENSE file in the root directory of this source tree.
14914 */
14915
14916 (function (module) {
14917 var runtime = (function (exports) {
14918
14919 var Op = Object.prototype;
14920 var hasOwn = Op.hasOwnProperty;
14921 var undefined$1; // More compressible than void 0.
14922 var $Symbol = typeof Symbol === "function" ? Symbol : {};
14923 var iteratorSymbol = $Symbol.iterator || "@@iterator";
14924 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
14925 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
14926
14927 function define(obj, key, value) {
14928 Object.defineProperty(obj, key, {
14929 value: value,
14930 enumerable: true,
14931 configurable: true,
14932 writable: true
14933 });
14934 return obj[key];
14935 }
14936 try {
14937 // IE 8 has a broken Object.defineProperty that only works on DOM objects.
14938 define({}, "");
14939 } catch (err) {
14940 define = function(obj, key, value) {
14941 return obj[key] = value;
14942 };
14943 }
14944
14945 function wrap(innerFn, outerFn, self, tryLocsList) {
14946 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
14947 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
14948 var generator = Object.create(protoGenerator.prototype);
14949 var context = new Context(tryLocsList || []);
14950
14951 // The ._invoke method unifies the implementations of the .next,
14952 // .throw, and .return methods.
14953 generator._invoke = makeInvokeMethod(innerFn, self, context);
14954
14955 return generator;
14956 }
14957 exports.wrap = wrap;
14958
14959 // Try/catch helper to minimize deoptimizations. Returns a completion
14960 // record like context.tryEntries[i].completion. This interface could
14961 // have been (and was previously) designed to take a closure to be
14962 // invoked without arguments, but in all the cases we care about we
14963 // already have an existing method we want to call, so there's no need
14964 // to create a new function object. We can even get away with assuming
14965 // the method takes exactly one argument, since that happens to be true
14966 // in every case, so we don't have to touch the arguments object. The
14967 // only additional allocation required is the completion record, which
14968 // has a stable shape and so hopefully should be cheap to allocate.
14969 function tryCatch(fn, obj, arg) {
14970 try {
14971 return { type: "normal", arg: fn.call(obj, arg) };
14972 } catch (err) {
14973 return { type: "throw", arg: err };
14974 }
14975 }
14976
14977 var GenStateSuspendedStart = "suspendedStart";
14978 var GenStateSuspendedYield = "suspendedYield";
14979 var GenStateExecuting = "executing";
14980 var GenStateCompleted = "completed";
14981
14982 // Returning this object from the innerFn has the same effect as
14983 // breaking out of the dispatch switch statement.
14984 var ContinueSentinel = {};
14985
14986 // Dummy constructor functions that we use as the .constructor and
14987 // .constructor.prototype properties for functions that return Generator
14988 // objects. For full spec compliance, you may wish to configure your
14989 // minifier not to mangle the names of these two functions.
14990 function Generator() {}
14991 function GeneratorFunction() {}
14992 function GeneratorFunctionPrototype() {}
14993
14994 // This is a polyfill for %IteratorPrototype% for environments that
14995 // don't natively support it.
14996 var IteratorPrototype = {};
14997 define(IteratorPrototype, iteratorSymbol, function () {
14998 return this;
14999 });
15000
15001 var getProto = Object.getPrototypeOf;
15002 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
15003 if (NativeIteratorPrototype &&
15004 NativeIteratorPrototype !== Op &&
15005 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
15006 // This environment has a native %IteratorPrototype%; use it instead
15007 // of the polyfill.
15008 IteratorPrototype = NativeIteratorPrototype;
15009 }
15010
15011 var Gp = GeneratorFunctionPrototype.prototype =
15012 Generator.prototype = Object.create(IteratorPrototype);
15013 GeneratorFunction.prototype = GeneratorFunctionPrototype;
15014 define(Gp, "constructor", GeneratorFunctionPrototype);
15015 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
15016 GeneratorFunction.displayName = define(
15017 GeneratorFunctionPrototype,
15018 toStringTagSymbol,
15019 "GeneratorFunction"
15020 );
15021
15022 // Helper for defining the .next, .throw, and .return methods of the
15023 // Iterator interface in terms of a single ._invoke method.
15024 function defineIteratorMethods(prototype) {
15025 ["next", "throw", "return"].forEach(function(method) {
15026 define(prototype, method, function(arg) {
15027 return this._invoke(method, arg);
15028 });
15029 });
15030 }
15031
15032 exports.isGeneratorFunction = function(genFun) {
15033 var ctor = typeof genFun === "function" && genFun.constructor;
15034 return ctor
15035 ? ctor === GeneratorFunction ||
15036 // For the native GeneratorFunction constructor, the best we can
15037 // do is to check its .name property.
15038 (ctor.displayName || ctor.name) === "GeneratorFunction"
15039 : false;
15040 };
15041
15042 exports.mark = function(genFun) {
15043 if (Object.setPrototypeOf) {
15044 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
15045 } else {
15046 genFun.__proto__ = GeneratorFunctionPrototype;
15047 define(genFun, toStringTagSymbol, "GeneratorFunction");
15048 }
15049 genFun.prototype = Object.create(Gp);
15050 return genFun;
15051 };
15052
15053 // Within the body of any async function, `await x` is transformed to
15054 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
15055 // `hasOwn.call(value, "__await")` to determine if the yielded value is
15056 // meant to be awaited.
15057 exports.awrap = function(arg) {
15058 return { __await: arg };
15059 };
15060
15061 function AsyncIterator(generator, PromiseImpl) {
15062 function invoke(method, arg, resolve, reject) {
15063 var record = tryCatch(generator[method], generator, arg);
15064 if (record.type === "throw") {
15065 reject(record.arg);
15066 } else {
15067 var result = record.arg;
15068 var value = result.value;
15069 if (value &&
15070 typeof value === "object" &&
15071 hasOwn.call(value, "__await")) {
15072 return PromiseImpl.resolve(value.__await).then(function(value) {
15073 invoke("next", value, resolve, reject);
15074 }, function(err) {
15075 invoke("throw", err, resolve, reject);
15076 });
15077 }
15078
15079 return PromiseImpl.resolve(value).then(function(unwrapped) {
15080 // When a yielded Promise is resolved, its final value becomes
15081 // the .value of the Promise<{value,done}> result for the
15082 // current iteration.
15083 result.value = unwrapped;
15084 resolve(result);
15085 }, function(error) {
15086 // If a rejected Promise was yielded, throw the rejection back
15087 // into the async generator function so it can be handled there.
15088 return invoke("throw", error, resolve, reject);
15089 });
15090 }
15091 }
15092
15093 var previousPromise;
15094
15095 function enqueue(method, arg) {
15096 function callInvokeWithMethodAndArg() {
15097 return new PromiseImpl(function(resolve, reject) {
15098 invoke(method, arg, resolve, reject);
15099 });
15100 }
15101
15102 return previousPromise =
15103 // If enqueue has been called before, then we want to wait until
15104 // all previous Promises have been resolved before calling invoke,
15105 // so that results are always delivered in the correct order. If
15106 // enqueue has not been called before, then it is important to
15107 // call invoke immediately, without waiting on a callback to fire,
15108 // so that the async generator function has the opportunity to do
15109 // any necessary setup in a predictable way. This predictability
15110 // is why the Promise constructor synchronously invokes its
15111 // executor callback, and why async functions synchronously
15112 // execute code before the first await. Since we implement simple
15113 // async functions in terms of async generators, it is especially
15114 // important to get this right, even though it requires care.
15115 previousPromise ? previousPromise.then(
15116 callInvokeWithMethodAndArg,
15117 // Avoid propagating failures to Promises returned by later
15118 // invocations of the iterator.
15119 callInvokeWithMethodAndArg
15120 ) : callInvokeWithMethodAndArg();
15121 }
15122
15123 // Define the unified helper method that is used to implement .next,
15124 // .throw, and .return (see defineIteratorMethods).
15125 this._invoke = enqueue;
15126 }
15127
15128 defineIteratorMethods(AsyncIterator.prototype);
15129 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
15130 return this;
15131 });
15132 exports.AsyncIterator = AsyncIterator;
15133
15134 // Note that simple async functions are implemented on top of
15135 // AsyncIterator objects; they just return a Promise for the value of
15136 // the final result produced by the iterator.
15137 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
15138 if (PromiseImpl === void 0) PromiseImpl = Promise;
15139
15140 var iter = new AsyncIterator(
15141 wrap(innerFn, outerFn, self, tryLocsList),
15142 PromiseImpl
15143 );
15144
15145 return exports.isGeneratorFunction(outerFn)
15146 ? iter // If outerFn is a generator, return the full iterator.
15147 : iter.next().then(function(result) {
15148 return result.done ? result.value : iter.next();
15149 });
15150 };
15151
15152 function makeInvokeMethod(innerFn, self, context) {
15153 var state = GenStateSuspendedStart;
15154
15155 return function invoke(method, arg) {
15156 if (state === GenStateExecuting) {
15157 throw new Error("Generator is already running");
15158 }
15159
15160 if (state === GenStateCompleted) {
15161 if (method === "throw") {
15162 throw arg;
15163 }
15164
15165 // Be forgiving, per 25.3.3.3.3 of the spec:
15166 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
15167 return doneResult();
15168 }
15169
15170 context.method = method;
15171 context.arg = arg;
15172
15173 while (true) {
15174 var delegate = context.delegate;
15175 if (delegate) {
15176 var delegateResult = maybeInvokeDelegate(delegate, context);
15177 if (delegateResult) {
15178 if (delegateResult === ContinueSentinel) continue;
15179 return delegateResult;
15180 }
15181 }
15182
15183 if (context.method === "next") {
15184 // Setting context._sent for legacy support of Babel's
15185 // function.sent implementation.
15186 context.sent = context._sent = context.arg;
15187
15188 } else if (context.method === "throw") {
15189 if (state === GenStateSuspendedStart) {
15190 state = GenStateCompleted;
15191 throw context.arg;
15192 }
15193
15194 context.dispatchException(context.arg);
15195
15196 } else if (context.method === "return") {
15197 context.abrupt("return", context.arg);
15198 }
15199
15200 state = GenStateExecuting;
15201
15202 var record = tryCatch(innerFn, self, context);
15203 if (record.type === "normal") {
15204 // If an exception is thrown from innerFn, we leave state ===
15205 // GenStateExecuting and loop back for another invocation.
15206 state = context.done
15207 ? GenStateCompleted
15208 : GenStateSuspendedYield;
15209
15210 if (record.arg === ContinueSentinel) {
15211 continue;
15212 }
15213
15214 return {
15215 value: record.arg,
15216 done: context.done
15217 };
15218
15219 } else if (record.type === "throw") {
15220 state = GenStateCompleted;
15221 // Dispatch the exception by looping back around to the
15222 // context.dispatchException(context.arg) call above.
15223 context.method = "throw";
15224 context.arg = record.arg;
15225 }
15226 }
15227 };
15228 }
15229
15230 // Call delegate.iterator[context.method](context.arg) and handle the
15231 // result, either by returning a { value, done } result from the
15232 // delegate iterator, or by modifying context.method and context.arg,
15233 // setting context.delegate to null, and returning the ContinueSentinel.
15234 function maybeInvokeDelegate(delegate, context) {
15235 var method = delegate.iterator[context.method];
15236 if (method === undefined$1) {
15237 // A .throw or .return when the delegate iterator has no .throw
15238 // method always terminates the yield* loop.
15239 context.delegate = null;
15240
15241 if (context.method === "throw") {
15242 // Note: ["return"] must be used for ES3 parsing compatibility.
15243 if (delegate.iterator["return"]) {
15244 // If the delegate iterator has a return method, give it a
15245 // chance to clean up.
15246 context.method = "return";
15247 context.arg = undefined$1;
15248 maybeInvokeDelegate(delegate, context);
15249
15250 if (context.method === "throw") {
15251 // If maybeInvokeDelegate(context) changed context.method from
15252 // "return" to "throw", let that override the TypeError below.
15253 return ContinueSentinel;
15254 }
15255 }
15256
15257 context.method = "throw";
15258 context.arg = new TypeError(
15259 "The iterator does not provide a 'throw' method");
15260 }
15261
15262 return ContinueSentinel;
15263 }
15264
15265 var record = tryCatch(method, delegate.iterator, context.arg);
15266
15267 if (record.type === "throw") {
15268 context.method = "throw";
15269 context.arg = record.arg;
15270 context.delegate = null;
15271 return ContinueSentinel;
15272 }
15273
15274 var info = record.arg;
15275
15276 if (! info) {
15277 context.method = "throw";
15278 context.arg = new TypeError("iterator result is not an object");
15279 context.delegate = null;
15280 return ContinueSentinel;
15281 }
15282
15283 if (info.done) {
15284 // Assign the result of the finished delegate to the temporary
15285 // variable specified by delegate.resultName (see delegateYield).
15286 context[delegate.resultName] = info.value;
15287
15288 // Resume execution at the desired location (see delegateYield).
15289 context.next = delegate.nextLoc;
15290
15291 // If context.method was "throw" but the delegate handled the
15292 // exception, let the outer generator proceed normally. If
15293 // context.method was "next", forget context.arg since it has been
15294 // "consumed" by the delegate iterator. If context.method was
15295 // "return", allow the original .return call to continue in the
15296 // outer generator.
15297 if (context.method !== "return") {
15298 context.method = "next";
15299 context.arg = undefined$1;
15300 }
15301
15302 } else {
15303 // Re-yield the result returned by the delegate method.
15304 return info;
15305 }
15306
15307 // The delegate iterator is finished, so forget it and continue with
15308 // the outer generator.
15309 context.delegate = null;
15310 return ContinueSentinel;
15311 }
15312
15313 // Define Generator.prototype.{next,throw,return} in terms of the
15314 // unified ._invoke helper method.
15315 defineIteratorMethods(Gp);
15316
15317 define(Gp, toStringTagSymbol, "Generator");
15318
15319 // A Generator should always return itself as the iterator object when the
15320 // @@iterator function is called on it. Some browsers' implementations of the
15321 // iterator prototype chain incorrectly implement this, causing the Generator
15322 // object to not be returned from this call. This ensures that doesn't happen.
15323 // See https://github.com/facebook/regenerator/issues/274 for more details.
15324 define(Gp, iteratorSymbol, function() {
15325 return this;
15326 });
15327
15328 define(Gp, "toString", function() {
15329 return "[object Generator]";
15330 });
15331
15332 function pushTryEntry(locs) {
15333 var entry = { tryLoc: locs[0] };
15334
15335 if (1 in locs) {
15336 entry.catchLoc = locs[1];
15337 }
15338
15339 if (2 in locs) {
15340 entry.finallyLoc = locs[2];
15341 entry.afterLoc = locs[3];
15342 }
15343
15344 this.tryEntries.push(entry);
15345 }
15346
15347 function resetTryEntry(entry) {
15348 var record = entry.completion || {};
15349 record.type = "normal";
15350 delete record.arg;
15351 entry.completion = record;
15352 }
15353
15354 function Context(tryLocsList) {
15355 // The root entry object (effectively a try statement without a catch
15356 // or a finally block) gives us a place to store values thrown from
15357 // locations where there is no enclosing try statement.
15358 this.tryEntries = [{ tryLoc: "root" }];
15359 tryLocsList.forEach(pushTryEntry, this);
15360 this.reset(true);
15361 }
15362
15363 exports.keys = function(object) {
15364 var keys = [];
15365 for (var key in object) {
15366 keys.push(key);
15367 }
15368 keys.reverse();
15369
15370 // Rather than returning an object with a next method, we keep
15371 // things simple and return the next function itself.
15372 return function next() {
15373 while (keys.length) {
15374 var key = keys.pop();
15375 if (key in object) {
15376 next.value = key;
15377 next.done = false;
15378 return next;
15379 }
15380 }
15381
15382 // To avoid creating an additional object, we just hang the .value
15383 // and .done properties off the next function object itself. This
15384 // also ensures that the minifier will not anonymize the function.
15385 next.done = true;
15386 return next;
15387 };
15388 };
15389
15390 function values(iterable) {
15391 if (iterable) {
15392 var iteratorMethod = iterable[iteratorSymbol];
15393 if (iteratorMethod) {
15394 return iteratorMethod.call(iterable);
15395 }
15396
15397 if (typeof iterable.next === "function") {
15398 return iterable;
15399 }
15400
15401 if (!isNaN(iterable.length)) {
15402 var i = -1, next = function next() {
15403 while (++i < iterable.length) {
15404 if (hasOwn.call(iterable, i)) {
15405 next.value = iterable[i];
15406 next.done = false;
15407 return next;
15408 }
15409 }
15410
15411 next.value = undefined$1;
15412 next.done = true;
15413
15414 return next;
15415 };
15416
15417 return next.next = next;
15418 }
15419 }
15420
15421 // Return an iterator with no values.
15422 return { next: doneResult };
15423 }
15424 exports.values = values;
15425
15426 function doneResult() {
15427 return { value: undefined$1, done: true };
15428 }
15429
15430 Context.prototype = {
15431 constructor: Context,
15432
15433 reset: function(skipTempReset) {
15434 this.prev = 0;
15435 this.next = 0;
15436 // Resetting context._sent for legacy support of Babel's
15437 // function.sent implementation.
15438 this.sent = this._sent = undefined$1;
15439 this.done = false;
15440 this.delegate = null;
15441
15442 this.method = "next";
15443 this.arg = undefined$1;
15444
15445 this.tryEntries.forEach(resetTryEntry);
15446
15447 if (!skipTempReset) {
15448 for (var name in this) {
15449 // Not sure about the optimal order of these conditions:
15450 if (name.charAt(0) === "t" &&
15451 hasOwn.call(this, name) &&
15452 !isNaN(+name.slice(1))) {
15453 this[name] = undefined$1;
15454 }
15455 }
15456 }
15457 },
15458
15459 stop: function() {
15460 this.done = true;
15461
15462 var rootEntry = this.tryEntries[0];
15463 var rootRecord = rootEntry.completion;
15464 if (rootRecord.type === "throw") {
15465 throw rootRecord.arg;
15466 }
15467
15468 return this.rval;
15469 },
15470
15471 dispatchException: function(exception) {
15472 if (this.done) {
15473 throw exception;
15474 }
15475
15476 var context = this;
15477 function handle(loc, caught) {
15478 record.type = "throw";
15479 record.arg = exception;
15480 context.next = loc;
15481
15482 if (caught) {
15483 // If the dispatched exception was caught by a catch block,
15484 // then let that catch block handle the exception normally.
15485 context.method = "next";
15486 context.arg = undefined$1;
15487 }
15488
15489 return !! caught;
15490 }
15491
15492 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15493 var entry = this.tryEntries[i];
15494 var record = entry.completion;
15495
15496 if (entry.tryLoc === "root") {
15497 // Exception thrown outside of any try block that could handle
15498 // it, so set the completion value of the entire function to
15499 // throw the exception.
15500 return handle("end");
15501 }
15502
15503 if (entry.tryLoc <= this.prev) {
15504 var hasCatch = hasOwn.call(entry, "catchLoc");
15505 var hasFinally = hasOwn.call(entry, "finallyLoc");
15506
15507 if (hasCatch && hasFinally) {
15508 if (this.prev < entry.catchLoc) {
15509 return handle(entry.catchLoc, true);
15510 } else if (this.prev < entry.finallyLoc) {
15511 return handle(entry.finallyLoc);
15512 }
15513
15514 } else if (hasCatch) {
15515 if (this.prev < entry.catchLoc) {
15516 return handle(entry.catchLoc, true);
15517 }
15518
15519 } else if (hasFinally) {
15520 if (this.prev < entry.finallyLoc) {
15521 return handle(entry.finallyLoc);
15522 }
15523
15524 } else {
15525 throw new Error("try statement without catch or finally");
15526 }
15527 }
15528 }
15529 },
15530
15531 abrupt: function(type, arg) {
15532 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15533 var entry = this.tryEntries[i];
15534 if (entry.tryLoc <= this.prev &&
15535 hasOwn.call(entry, "finallyLoc") &&
15536 this.prev < entry.finallyLoc) {
15537 var finallyEntry = entry;
15538 break;
15539 }
15540 }
15541
15542 if (finallyEntry &&
15543 (type === "break" ||
15544 type === "continue") &&
15545 finallyEntry.tryLoc <= arg &&
15546 arg <= finallyEntry.finallyLoc) {
15547 // Ignore the finally entry if control is not jumping to a
15548 // location outside the try/catch block.
15549 finallyEntry = null;
15550 }
15551
15552 var record = finallyEntry ? finallyEntry.completion : {};
15553 record.type = type;
15554 record.arg = arg;
15555
15556 if (finallyEntry) {
15557 this.method = "next";
15558 this.next = finallyEntry.finallyLoc;
15559 return ContinueSentinel;
15560 }
15561
15562 return this.complete(record);
15563 },
15564
15565 complete: function(record, afterLoc) {
15566 if (record.type === "throw") {
15567 throw record.arg;
15568 }
15569
15570 if (record.type === "break" ||
15571 record.type === "continue") {
15572 this.next = record.arg;
15573 } else if (record.type === "return") {
15574 this.rval = this.arg = record.arg;
15575 this.method = "return";
15576 this.next = "end";
15577 } else if (record.type === "normal" && afterLoc) {
15578 this.next = afterLoc;
15579 }
15580
15581 return ContinueSentinel;
15582 },
15583
15584 finish: function(finallyLoc) {
15585 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15586 var entry = this.tryEntries[i];
15587 if (entry.finallyLoc === finallyLoc) {
15588 this.complete(entry.completion, entry.afterLoc);
15589 resetTryEntry(entry);
15590 return ContinueSentinel;
15591 }
15592 }
15593 },
15594
15595 "catch": function(tryLoc) {
15596 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15597 var entry = this.tryEntries[i];
15598 if (entry.tryLoc === tryLoc) {
15599 var record = entry.completion;
15600 if (record.type === "throw") {
15601 var thrown = record.arg;
15602 resetTryEntry(entry);
15603 }
15604 return thrown;
15605 }
15606 }
15607
15608 // The context.catch method must only be called with a location
15609 // argument that corresponds to a known catch block.
15610 throw new Error("illegal catch attempt");
15611 },
15612
15613 delegateYield: function(iterable, resultName, nextLoc) {
15614 this.delegate = {
15615 iterator: values(iterable),
15616 resultName: resultName,
15617 nextLoc: nextLoc
15618 };
15619
15620 if (this.method === "next") {
15621 // Deliberately forget the last sent value so that we don't
15622 // accidentally pass it on to the delegate.
15623 this.arg = undefined$1;
15624 }
15625
15626 return ContinueSentinel;
15627 }
15628 };
15629
15630 // Regardless of whether this script is executing as a CommonJS module
15631 // or not, return the runtime object so that we can declare the variable
15632 // regeneratorRuntime in the outer scope, which allows this module to be
15633 // injected easily by `bin/regenerator --include-runtime script.js`.
15634 return exports;
15635
15636 }(
15637 // If this script is executing as a CommonJS module, use module.exports
15638 // as the regeneratorRuntime namespace. Otherwise create a new empty
15639 // object. Either way, the resulting object will be used to initialize
15640 // the regeneratorRuntime variable at the top of this file.
15641 module.exports
15642 ));
15643
15644 try {
15645 regeneratorRuntime = runtime;
15646 } catch (accidentalStrictMode) {
15647 // This module should not be running in strict mode, so the above
15648 // assignment should always work unless something is misconfigured. Just
15649 // in case runtime.js accidentally runs in strict mode, in modern engines
15650 // we can explicitly access globalThis. In older engines we can escape
15651 // strict mode using a global Function call. This could conceivably fail
15652 // if a Content Security Policy forbids using Function, but in that case
15653 // the proper solution is to fix the accidental strict mode problem. If
15654 // you've misconfigured your bundler to force strict mode and applied a
15655 // CSP to forbid Function, and you're not willing to fix either of those
15656 // problems, please detail your unique predicament in a GitHub issue.
15657 if (typeof globalThis === "object") {
15658 globalThis.regeneratorRuntime = runtime;
15659 } else {
15660 Function("r", "regeneratorRuntime = r")(runtime);
15661 }
15662 }
15663 }(runtime));
15664
15665 var _regeneratorRuntime = runtime.exports;
15666
15667 /**
15668 * Generate SVG Path tag from the given points
15669 */
15670
15671 var SvgPath = function SvgPath(_ref) {
15672 var paths = _ref.paths,
15673 id = _ref.id,
15674 strokeWidth = _ref.strokeWidth,
15675 strokeColor = _ref.strokeColor,
15676 _ref$command = _ref.command,
15677 command = _ref$command === void 0 ? bezierCommand : _ref$command;
15678
15679 if (paths.length === 1) {
15680 var _paths$ = paths[0],
15681 x = _paths$.x,
15682 y = _paths$.y;
15683 var radius = strokeWidth / 2;
15684 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
15685 key: id,
15686 id: id,
15687 cx: x,
15688 cy: y,
15689 r: radius,
15690 stroke: strokeColor,
15691 fill: strokeColor
15692 });
15693 }
15694
15695 var d = paths.reduce(function (acc, point, i, a) {
15696 return i === 0 ? "M " + point.x + "," + point.y : acc + " " + command(point, i, a);
15697 }, '');
15698 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
15699 key: id,
15700 id: id,
15701 d: d,
15702 fill: "none",
15703 strokeLinecap: "round",
15704 stroke: strokeColor,
15705 strokeWidth: strokeWidth
15706 });
15707 };
15708 var line = function line(pointA, pointB) {
15709 var lengthX = pointB.x - pointA.x;
15710 var lengthY = pointB.y - pointA.y;
15711 return {
15712 length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
15713 angle: Math.atan2(lengthY, lengthX)
15714 };
15715 };
15716
15717 var controlPoint = function controlPoint(controlPoints) {
15718 var current = controlPoints.current,
15719 next = controlPoints.next,
15720 previous = controlPoints.previous,
15721 reverse = controlPoints.reverse;
15722 var p = previous || current;
15723 var n = next || current;
15724 var smoothing = 0.2;
15725 var o = line(p, n);
15726 var angle = o.angle + (reverse ? Math.PI : 0);
15727 var length = o.length * smoothing;
15728 var x = current.x + Math.cos(angle) * length;
15729 var y = current.y + Math.sin(angle) * length;
15730 return [x, y];
15731 };
15732
15733 var bezierCommand = function bezierCommand(point, i, a) {
15734 var cpsX = null;
15735 var cpsY = null;
15736
15737 switch (i) {
15738 case 0:
15739 var _controlPoint = controlPoint({
15740 current: point
15741 });
15742
15743 cpsX = _controlPoint[0];
15744 cpsY = _controlPoint[1];
15745 break;
15746
15747 case 1:
15748 var _controlPoint2 = controlPoint({
15749 current: a[i - 1],
15750 next: point
15751 });
15752
15753 cpsX = _controlPoint2[0];
15754 cpsY = _controlPoint2[1];
15755 break;
15756
15757 default:
15758 var _controlPoint3 = controlPoint({
15759 current: a[i - 1],
15760 previous: a[i - 2],
15761 next: point
15762 });
15763
15764 cpsX = _controlPoint3[0];
15765 cpsY = _controlPoint3[1];
15766 break;
15767 }
15768
15769 var _controlPoint4 = controlPoint({
15770 current: point,
15771 previous: a[i - 1],
15772 next: a[i + 1],
15773 reverse: true
15774 }),
15775 cpeX = _controlPoint4[0],
15776 cpeY = _controlPoint4[1];
15777
15778 return "C " + cpsX + "," + cpsY + " " + cpeX + "," + cpeY + " " + point.x + ", " + point.y;
15779 };
15780
15781 var Paths = function Paths(_ref2) {
15782 var id = _ref2.id,
15783 paths = _ref2.paths;
15784 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, paths.map(function (path, index) {
15785 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
15786 key: id + "__" + index,
15787 paths: path.paths,
15788 id: id + "__" + index,
15789 strokeWidth: path.strokeWidth,
15790 strokeColor: path.strokeColor,
15791 command: bezierCommand
15792 });
15793 }));
15794 };
15795
15796 var loadImage = function loadImage(url) {
15797 return new Promise(function (resolve, reject) {
15798 var img = new Image();
15799 img.addEventListener('load', function () {
15800 if (img.width > 0) {
15801 resolve(img);
15802 }
15803
15804 reject('Image not found');
15805 });
15806 img.addEventListener('error', function (err) {
15807 return reject(err);
15808 });
15809 img.src = url;
15810 img.setAttribute('crossorigin', 'anonymous');
15811 });
15812 };
15813
15814 function getCanvasWithViewBox(canvas) {
15815 var _canvas$firstChild;
15816
15817 var svgCanvas = (_canvas$firstChild = canvas.firstChild) == null ? void 0 : _canvas$firstChild.cloneNode(true);
15818 var width = canvas.offsetWidth;
15819 var height = canvas.offsetHeight;
15820 svgCanvas.setAttribute('viewBox', "0 0 " + width + " " + height);
15821 svgCanvas.setAttribute('width', width.toString());
15822 svgCanvas.setAttribute('height', height.toString());
15823 return {
15824 svgCanvas: svgCanvas,
15825 width: width,
15826 height: height
15827 };
15828 }
15829
15830 var Canvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
15831 var paths = props.paths,
15832 isDrawing = props.isDrawing,
15833 onPointerDown = props.onPointerDown,
15834 onPointerMove = props.onPointerMove,
15835 onPointerUp = props.onPointerUp,
15836 _props$id = props.id,
15837 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
15838 _props$width = props.width,
15839 width = _props$width === void 0 ? '100%' : _props$width,
15840 _props$height = props.height,
15841 height = _props$height === void 0 ? '100%' : _props$height,
15842 _props$className = props.className,
15843 className = _props$className === void 0 ? 'react-sketch-canvas' : _props$className,
15844 _props$canvasColor = props.canvasColor,
15845 canvasColor = _props$canvasColor === void 0 ? 'red' : _props$canvasColor,
15846 _props$backgroundImag = props.backgroundImage,
15847 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
15848 _props$exportWithBack = props.exportWithBackgroundImage,
15849 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
15850 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
15851 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
15852 _props$allowOnlyPoint = props.allowOnlyPointerType,
15853 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
15854 _props$style = props.style,
15855 style = _props$style === void 0 ? {
15856 border: '0.0625rem solid #9c9c9c',
15857 borderRadius: '0.25rem'
15858 } : _props$style,
15859 _props$svgStyle = props.svgStyle,
15860 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle;
15861 var canvasRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); // Converts mouse coordinates to relative coordinate based on the absolute position of svg
15862
15863 var getCoordinates = function getCoordinates(pointerEvent) {
15864 var _canvasRef$current, _window$scrollX, _window$scrollY;
15865
15866 var boundingArea = (_canvasRef$current = canvasRef.current) == null ? void 0 : _canvasRef$current.getBoundingClientRect();
15867 var scrollLeft = (_window$scrollX = window.scrollX) != null ? _window$scrollX : 0;
15868 var scrollTop = (_window$scrollY = window.scrollY) != null ? _window$scrollY : 0;
15869
15870 if (!boundingArea) {
15871 return {
15872 x: 0,
15873 y: 0
15874 };
15875 }
15876
15877 var point = {
15878 x: pointerEvent.pageX - boundingArea.left - scrollLeft,
15879 y: pointerEvent.pageY - boundingArea.top - scrollTop
15880 };
15881 return point;
15882 };
15883 /* Mouse Handlers - Mouse down, move and up */
15884
15885
15886 var handlePointerDown = function handlePointerDown(event) {
15887 // Allow only chosen pointer type
15888 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15889 return;
15890 }
15891
15892 if (event.pointerType === 'mouse' && event.button !== 0) return;
15893 var point = getCoordinates(event);
15894 onPointerDown(point);
15895 };
15896
15897 var handlePointerMove = function handlePointerMove(event) {
15898 if (!isDrawing) return; // Allow only chosen pointer type
15899
15900 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15901 return;
15902 }
15903
15904 var point = getCoordinates(event);
15905 onPointerMove(point);
15906 };
15907
15908 var handlePointerUp = function handlePointerUp(event) {
15909 if (event.pointerType === 'mouse' && event.button !== 0) return; // Allow only chosen pointer type
15910
15911 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
15912 return;
15913 }
15914
15915 onPointerUp();
15916 };
15917 /* Mouse Handlers ends */
15918
15919
15920 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
15921 return {
15922 exportImage: function exportImage(imageType) {
15923 return new Promise( /*#__PURE__*/function () {
15924 var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
15925 var canvas, _getCanvasWithViewBox, svgCanvas, _width, _height, canvasSketch, loadImagePromises, img;
15926
15927 return _regeneratorRuntime.wrap(function _callee$(_context) {
15928 while (1) {
15929 switch (_context.prev = _context.next) {
15930 case 0:
15931 _context.prev = 0;
15932 canvas = canvasRef.current;
15933
15934 if (canvas) {
15935 _context.next = 4;
15936 break;
15937 }
15938
15939 throw Error('Canvas not rendered yet');
15940
15941 case 4:
15942 _getCanvasWithViewBox = getCanvasWithViewBox(canvas), svgCanvas = _getCanvasWithViewBox.svgCanvas, _width = _getCanvasWithViewBox.width, _height = _getCanvasWithViewBox.height;
15943 canvasSketch = "data:image/svg+xml;base64," + btoa(svgCanvas.outerHTML);
15944 _context.next = 8;
15945 return loadImage(canvasSketch);
15946
15947 case 8:
15948 _context.t0 = _context.sent;
15949 loadImagePromises = [_context.t0];
15950
15951 if (!exportWithBackgroundImage) {
15952 _context.next = 21;
15953 break;
15954 }
15955
15956 _context.prev = 11;
15957 _context.next = 14;
15958 return loadImage(backgroundImage);
15959
15960 case 14:
15961 img = _context.sent;
15962 loadImagePromises.push(img);
15963 _context.next = 21;
15964 break;
15965
15966 case 18:
15967 _context.prev = 18;
15968 _context.t1 = _context["catch"](11);
15969 console.warn('exportWithBackgroundImage props is set without a valid background image URL. This option is ignored');
15970
15971 case 21:
15972 Promise.all(loadImagePromises).then(function (images) {
15973 var renderCanvas = document.createElement('canvas');
15974 renderCanvas.setAttribute('width', _width.toString());
15975 renderCanvas.setAttribute('height', _height.toString());
15976 var context = renderCanvas.getContext('2d');
15977
15978 if (!context) {
15979 throw Error('Canvas not rendered yet');
15980 }
15981
15982 images.reverse().forEach(function (image) {
15983 context.drawImage(image, 0, 0);
15984 });
15985 resolve(renderCanvas.toDataURL("image/" + imageType));
15986 })["catch"](function (e) {
15987 throw e;
15988 });
15989 _context.next = 27;
15990 break;
15991
15992 case 24:
15993 _context.prev = 24;
15994 _context.t2 = _context["catch"](0);
15995 reject(_context.t2);
15996
15997 case 27:
15998 case "end":
15999 return _context.stop();
16000 }
16001 }
16002 }, _callee, null, [[0, 24], [11, 18]]);
16003 }));
16004
16005 return function (_x, _x2) {
16006 return _ref.apply(this, arguments);
16007 };
16008 }());
16009 },
16010 exportSvg: function exportSvg() {
16011 return new Promise(function (resolve, reject) {
16012 try {
16013 var _canvasRef$current2;
16014
16015 var canvas = (_canvasRef$current2 = canvasRef.current) != null ? _canvasRef$current2 : null;
16016
16017 if (canvas !== null) {
16018 var _svgCanvas$querySelec, _svgCanvas$querySelec2;
16019
16020 var _getCanvasWithViewBox2 = getCanvasWithViewBox(canvas),
16021 svgCanvas = _getCanvasWithViewBox2.svgCanvas;
16022
16023 if (exportWithBackgroundImage) {
16024 resolve(svgCanvas.outerHTML);
16025 return;
16026 }
16027
16028 (_svgCanvas$querySelec = svgCanvas.querySelector("#" + id + "__background")) == null ? void 0 : _svgCanvas$querySelec.remove();
16029 (_svgCanvas$querySelec2 = svgCanvas.querySelector("#" + id + "__canvas-background")) == null ? void 0 : _svgCanvas$querySelec2.setAttribute('fill', canvasColor);
16030 resolve(svgCanvas.outerHTML);
16031 }
16032
16033 reject(new Error('Canvas not loaded'));
16034 } catch (e) {
16035 reject(e);
16036 }
16037 });
16038 }
16039 };
16040 });
16041 /* Add event listener to Mouse up and Touch up to
16042 release drawing even when point goes out of canvas */
16043
16044 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16045 document.addEventListener('pointerup', handlePointerUp);
16046 return function () {
16047 document.removeEventListener('pointerup', handlePointerUp);
16048 };
16049 }, [handlePointerUp]);
16050 var eraserPaths = paths.filter(function (path) {
16051 return !path.drawMode;
16052 });
16053 var currentGroup = 0;
16054 var pathGroups = paths.reduce(function (arrayGroup, path) {
16055 if (!path.drawMode) {
16056 currentGroup += 1;
16057 return arrayGroup;
16058 }
16059
16060 if (arrayGroup[currentGroup] === undefined) {
16061 arrayGroup[currentGroup] = [];
16062 }
16063
16064 arrayGroup[currentGroup].push(path);
16065 return arrayGroup;
16066 }, [[]]);
16067 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
16068 role: "presentation",
16069 ref: canvasRef,
16070 className: className,
16071 style: _extends({
16072 touchAction: 'none',
16073 width: width,
16074 height: height
16075 }, style),
16076 "touch-action": "none",
16077 onPointerDown: handlePointerDown,
16078 onPointerMove: handlePointerMove,
16079 onPointerUp: handlePointerUp
16080 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", {
16081 version: "1.1",
16082 baseProfile: "full",
16083 xmlns: "http://www.w3.org/2000/svg",
16084 xmlnsXlink: "http://www.w3.org/1999/xlink",
16085 style: _extends({
16086 width: '100%',
16087 height: '100%'
16088 }, svgStyle),
16089 id: id
16090 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16091 id: id + "__eraser-stroke-group",
16092 display: "none"
16093 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16094 id: id + "__mask-background",
16095 x: "0",
16096 y: "0",
16097 width: "100%",
16098 height: "100%",
16099 fill: "white"
16100 }), eraserPaths.map(function (eraserPath, i) {
16101 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
16102 key: id + "__eraser-" + i,
16103 id: id + "__eraser-" + i,
16104 paths: eraserPath.paths,
16105 strokeColor: "#000000",
16106 strokeWidth: eraserPath.strokeWidth
16107 });
16108 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, backgroundImage && react__WEBPACK_IMPORTED_MODULE_0__.createElement("pattern", {
16109 id: id + "__background",
16110 x: "0",
16111 y: "0",
16112 width: "100%",
16113 height: "100%",
16114 patternUnits: "userSpaceOnUse"
16115 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("image", {
16116 x: "0",
16117 y: "0",
16118 width: "100%",
16119 height: "100%",
16120 xlinkHref: backgroundImage,
16121 preserveAspectRatio: preserveBackgroundImageAspectRatio
16122 })), eraserPaths.map(function (_, i) {
16123 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
16124 id: id + "__eraser-mask-" + i,
16125 key: id + "__eraser-mask-" + i,
16126 maskUnits: "userSpaceOnUse"
16127 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16128 href: "#" + id + "__mask-background"
16129 }), Array.from({
16130 length: eraserPaths.length - i
16131 }, function (_, j) {
16132 return j + i;
16133 }).map(function (k) {
16134 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16135 key: k.toString(),
16136 href: "#" + id + "__eraser-" + k.toString()
16137 });
16138 }));
16139 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16140 id: id + "__canvas-background-group"
16141 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16142 id: id + "__canvas-background",
16143 x: "0",
16144 y: "0",
16145 width: "100%",
16146 height: "100%",
16147 fill: backgroundImage ? "url(#" + id + "__background)" : canvasColor
16148 })), pathGroups.map(function (pathGroup, i) {
16149 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16150 id: id + "__stroke-group-" + i,
16151 key: id + "__stroke-group-" + i,
16152 mask: "url(#" + id + "__eraser-mask-" + i + ")"
16153 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(Paths, {
16154 id: id,
16155 paths: pathGroup
16156 }));
16157 })));
16158 });
16159
16160 var ReactSketchCanvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
16161 var _props$id = props.id,
16162 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
16163 _props$width = props.width,
16164 width = _props$width === void 0 ? '100%' : _props$width,
16165 _props$height = props.height,
16166 height = _props$height === void 0 ? '100%' : _props$height,
16167 _props$className = props.className,
16168 className = _props$className === void 0 ? '' : _props$className,
16169 _props$canvasColor = props.canvasColor,
16170 canvasColor = _props$canvasColor === void 0 ? 'white' : _props$canvasColor,
16171 _props$strokeColor = props.strokeColor,
16172 strokeColor = _props$strokeColor === void 0 ? 'red' : _props$strokeColor,
16173 _props$backgroundImag = props.backgroundImage,
16174 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
16175 _props$exportWithBack = props.exportWithBackgroundImage,
16176 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
16177 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
16178 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
16179 _props$strokeWidth = props.strokeWidth,
16180 strokeWidth = _props$strokeWidth === void 0 ? 4 : _props$strokeWidth,
16181 _props$eraserWidth = props.eraserWidth,
16182 eraserWidth = _props$eraserWidth === void 0 ? 8 : _props$eraserWidth,
16183 _props$allowOnlyPoint = props.allowOnlyPointerType,
16184 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
16185 _props$style = props.style,
16186 style = _props$style === void 0 ? {
16187 border: '0.0625rem solid #9c9c9c',
16188 borderRadius: '0.25rem'
16189 } : _props$style,
16190 _props$svgStyle = props.svgStyle,
16191 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle,
16192 _props$onChange = props.onChange,
16193 onChange = _props$onChange === void 0 ? function (_paths) {} : _props$onChange,
16194 _props$onStroke = props.onStroke,
16195 onStroke = _props$onStroke === void 0 ? function (_path, _isEraser) {} : _props$onStroke,
16196 _props$withTimestamp = props.withTimestamp,
16197 withTimestamp = _props$withTimestamp === void 0 ? false : _props$withTimestamp;
16198 var svgCanvas = react__WEBPACK_IMPORTED_MODULE_0__.createRef();
16199
16200 var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(true),
16201 drawMode = _React$useState[0],
16202 setDrawMode = _React$useState[1];
16203
16204 var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),
16205 isDrawing = _React$useState2[0],
16206 setIsDrawing = _React$useState2[1];
16207
16208 var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16209 resetStack = _React$useState3[0],
16210 setResetStack = _React$useState3[1];
16211
16212 var _React$useState4 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16213 undoStack = _React$useState4[0],
16214 setUndoStack = _React$useState4[1];
16215
16216 var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16217 currentPaths = _React$useState5[0],
16218 setCurrentPaths = _React$useState5[1];
16219
16220 var liftStrokeUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
16221 var _currentPaths$slice$, _currentPaths$slice;
16222
16223 var lastStroke = (_currentPaths$slice$ = (_currentPaths$slice = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice[0]) != null ? _currentPaths$slice$ : null;
16224
16225 if (lastStroke === null) {
16226 console.warn('No stroke found!');
16227 return;
16228 }
16229
16230 onStroke(lastStroke, !lastStroke.drawMode);
16231 }, [isDrawing]);
16232 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16233 liftStrokeUp();
16234 }, [isDrawing]);
16235 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16236 onChange(currentPaths);
16237 }, [currentPaths]);
16238 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
16239 return {
16240 eraseMode: function eraseMode(erase) {
16241 setDrawMode(!erase);
16242 },
16243 clearCanvas: function clearCanvas() {
16244 setResetStack([].concat(currentPaths));
16245 setCurrentPaths([]);
16246 },
16247 undo: function undo() {
16248 // If there was a last reset then
16249 if (resetStack.length !== 0) {
16250 setCurrentPaths([].concat(resetStack));
16251 setResetStack([]);
16252 return;
16253 }
16254
16255 setUndoStack(function (undoStack) {
16256 return [].concat(undoStack, currentPaths.slice(-1));
16257 });
16258 setCurrentPaths(function (currentPaths) {
16259 return currentPaths.slice(0, -1);
16260 });
16261 },
16262 redo: function redo() {
16263 // Nothing to Redo
16264 if (undoStack.length === 0) return;
16265 setCurrentPaths(function (currentPaths) {
16266 return [].concat(currentPaths, undoStack.slice(-1));
16267 });
16268 setUndoStack(function (undoStack) {
16269 return undoStack.slice(0, -1);
16270 });
16271 },
16272 exportImage: function exportImage(imageType) {
16273 var _svgCanvas$current;
16274
16275 var exportImage = (_svgCanvas$current = svgCanvas.current) == null ? void 0 : _svgCanvas$current.exportImage;
16276
16277 if (!exportImage) {
16278 throw Error('Export function called before canvas loaded');
16279 } else {
16280 return exportImage(imageType);
16281 }
16282 },
16283 exportSvg: function exportSvg() {
16284 return new Promise(function (resolve, reject) {
16285 var _svgCanvas$current2;
16286
16287 var exportSvg = (_svgCanvas$current2 = svgCanvas.current) == null ? void 0 : _svgCanvas$current2.exportSvg;
16288
16289 if (!exportSvg) {
16290 reject(Error('Export function called before canvas loaded'));
16291 } else {
16292 exportSvg().then(function (data) {
16293 resolve(data);
16294 })["catch"](function (e) {
16295 reject(e);
16296 });
16297 }
16298 });
16299 },
16300 exportPaths: function exportPaths() {
16301 return new Promise(function (resolve, reject) {
16302 try {
16303 resolve(currentPaths);
16304 } catch (e) {
16305 reject(e);
16306 }
16307 });
16308 },
16309 loadPaths: function loadPaths(paths) {
16310 setCurrentPaths(function (currentPaths) {
16311 return [].concat(currentPaths, paths);
16312 });
16313 },
16314 getSketchingTime: function getSketchingTime() {
16315 return new Promise(function (resolve, reject) {
16316 if (!withTimestamp) {
16317 reject(new Error("Set 'withTimestamp' prop to get sketching time"));
16318 }
16319
16320 try {
16321 var sketchingTime = currentPaths.reduce(function (totalSketchingTime, path) {
16322 var _path$startTimestamp, _path$endTimestamp;
16323
16324 var startTimestamp = (_path$startTimestamp = path.startTimestamp) != null ? _path$startTimestamp : 0;
16325 var endTimestamp = (_path$endTimestamp = path.endTimestamp) != null ? _path$endTimestamp : 0;
16326 return totalSketchingTime + (endTimestamp - startTimestamp);
16327 }, 0);
16328 resolve(sketchingTime);
16329 } catch (e) {
16330 reject(e);
16331 }
16332 });
16333 },
16334 resetCanvas: function resetCanvas() {
16335 setResetStack([]);
16336 setUndoStack([]);
16337 setCurrentPaths([]);
16338 }
16339 };
16340 });
16341
16342 var handlePointerDown = function handlePointerDown(point) {
16343 setIsDrawing(true);
16344 setUndoStack([]);
16345 var stroke = {
16346 drawMode: drawMode,
16347 strokeColor: drawMode ? strokeColor : '#000000',
16348 strokeWidth: drawMode ? strokeWidth : eraserWidth,
16349 paths: [point]
16350 };
16351
16352 if (withTimestamp) {
16353 stroke = _extends({}, stroke, {
16354 startTimestamp: Date.now(),
16355 endTimestamp: 0
16356 });
16357 }
16358
16359 setCurrentPaths(function (currentPaths) {
16360 return [].concat(currentPaths, [stroke]);
16361 });
16362 };
16363
16364 var handlePointerMove = function handlePointerMove(point) {
16365 if (!isDrawing) return;
16366 var currentStroke = currentPaths.slice(-1)[0];
16367
16368 var updatedStroke = _extends({}, currentStroke, {
16369 paths: [].concat(currentStroke.paths, [point])
16370 });
16371
16372 setCurrentPaths(function (currentPaths) {
16373 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16374 });
16375 };
16376
16377 var handlePointerUp = function handlePointerUp() {
16378 var _currentPaths$slice$2, _currentPaths$slice2;
16379
16380 if (!isDrawing) {
16381 return;
16382 }
16383
16384 setIsDrawing(false);
16385
16386 if (!withTimestamp) {
16387 return;
16388 }
16389
16390 var currentStroke = (_currentPaths$slice$2 = (_currentPaths$slice2 = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice2[0]) != null ? _currentPaths$slice$2 : null;
16391
16392 if (currentStroke === null) {
16393 return;
16394 }
16395
16396 var updatedStroke = _extends({}, currentStroke, {
16397 endTimestamp: Date.now()
16398 });
16399
16400 setCurrentPaths(function (currentPaths) {
16401 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16402 });
16403 };
16404
16405 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Canvas, {
16406 ref: svgCanvas,
16407 id: id,
16408 width: width,
16409 height: height,
16410 className: className,
16411 canvasColor: canvasColor,
16412 backgroundImage: backgroundImage,
16413 exportWithBackgroundImage: exportWithBackgroundImage,
16414 preserveBackgroundImageAspectRatio: preserveBackgroundImageAspectRatio,
16415 allowOnlyPointerType: allowOnlyPointerType,
16416 style: style,
16417 svgStyle: svgStyle,
16418 paths: currentPaths,
16419 isDrawing: isDrawing,
16420 onPointerDown: handlePointerDown,
16421 onPointerMove: handlePointerMove,
16422 onPointerUp: handlePointerUp
16423 });
16424 });
16425
16426
16427 //# sourceMappingURL=react-sketch-canvas.esm.js.map
16428
16429
16430 /***/ }),
16431
16432 /***/ "../node_modules/style-to-object/index.js":
16433 /*!************************************************!*\
16434 !*** ../node_modules/style-to-object/index.js ***!
16435 \************************************************/
16436 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16437
16438 var parse = __webpack_require__(/*! inline-style-parser */ "../node_modules/inline-style-parser/index.js");
16439
16440 /**
16441 * Parses inline style to object.
16442 *
16443 * @example
16444 * // returns { 'line-height': '42' }
16445 * StyleToObject('line-height: 42;');
16446 *
16447 * @param {String} style - The inline style.
16448 * @param {Function} [iterator] - The iterator function.
16449 * @return {null|Object}
16450 */
16451 function StyleToObject(style, iterator) {
16452 var output = null;
16453 if (!style || typeof style !== 'string') {
16454 return output;
16455 }
16456
16457 var declaration;
16458 var declarations = parse(style);
16459 var hasIterator = typeof iterator === 'function';
16460 var property;
16461 var value;
16462
16463 for (var i = 0, len = declarations.length; i < len; i++) {
16464 declaration = declarations[i];
16465 property = declaration.property;
16466 value = declaration.value;
16467
16468 if (hasIterator) {
16469 iterator(property, value, declaration);
16470 } else if (value) {
16471 output || (output = {});
16472 output[property] = value;
16473 }
16474 }
16475
16476 return output;
16477 }
16478
16479 module.exports = StyleToObject;
16480 module.exports["default"] = StyleToObject; // ESM support
16481
16482
16483 /***/ }),
16484
16485 /***/ "react":
16486 /*!************************!*\
16487 !*** external "React" ***!
16488 \************************/
16489 /***/ ((module) => {
16490
16491 "use strict";
16492 module.exports = React;
16493
16494 /***/ }),
16495
16496 /***/ "react-dom":
16497 /*!***************************!*\
16498 !*** external "ReactDOM" ***!
16499 \***************************/
16500 /***/ ((module) => {
16501
16502 "use strict";
16503 module.exports = ReactDOM;
16504
16505 /***/ }),
16506
16507 /***/ "@elementor/icons":
16508 /*!************************************!*\
16509 !*** external "elementorV2.icons" ***!
16510 \************************************/
16511 /***/ ((module) => {
16512
16513 "use strict";
16514 module.exports = elementorV2.icons;
16515
16516 /***/ }),
16517
16518 /***/ "@elementor/ui":
16519 /*!*********************************!*\
16520 !*** external "elementorV2.ui" ***!
16521 \*********************************/
16522 /***/ ((module) => {
16523
16524 "use strict";
16525 module.exports = elementorV2.ui;
16526
16527 /***/ }),
16528
16529 /***/ "@wordpress/i18n":
16530 /*!**************************!*\
16531 !*** external "wp.i18n" ***!
16532 \**************************/
16533 /***/ ((module) => {
16534
16535 "use strict";
16536 module.exports = wp.i18n;
16537
16538 /***/ }),
16539
16540 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
16541 /*!******************************************************************!*\
16542 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
16543 \******************************************************************/
16544 /***/ ((module) => {
16545
16546 function _arrayLikeToArray(arr, len) {
16547 if (len == null || len > arr.length) len = arr.length;
16548 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16549 return arr2;
16550 }
16551 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16552
16553 /***/ }),
16554
16555 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
16556 /*!****************************************************************!*\
16557 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
16558 \****************************************************************/
16559 /***/ ((module) => {
16560
16561 function _arrayWithHoles(arr) {
16562 if (Array.isArray(arr)) return arr;
16563 }
16564 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16565
16566 /***/ }),
16567
16568 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
16569 /*!*******************************************************************!*\
16570 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
16571 \*******************************************************************/
16572 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16573
16574 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
16575 function _arrayWithoutHoles(arr) {
16576 if (Array.isArray(arr)) return arrayLikeToArray(arr);
16577 }
16578 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16579
16580 /***/ }),
16581
16582 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
16583 /*!******************************************************************!*\
16584 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
16585 \******************************************************************/
16586 /***/ ((module) => {
16587
16588 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
16589 try {
16590 var info = gen[key](arg);
16591 var value = info.value;
16592 } catch (error) {
16593 reject(error);
16594 return;
16595 }
16596 if (info.done) {
16597 resolve(value);
16598 } else {
16599 Promise.resolve(value).then(_next, _throw);
16600 }
16601 }
16602 function _asyncToGenerator(fn) {
16603 return function () {
16604 var self = this,
16605 args = arguments;
16606 return new Promise(function (resolve, reject) {
16607 var gen = fn.apply(self, args);
16608 function _next(value) {
16609 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
16610 }
16611 function _throw(err) {
16612 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
16613 }
16614 _next(undefined);
16615 });
16616 };
16617 }
16618 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
16619
16620 /***/ }),
16621
16622 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
16623 /*!****************************************************************!*\
16624 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
16625 \****************************************************************/
16626 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16627
16628 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
16629 function _defineProperty(obj, key, value) {
16630 key = toPropertyKey(key);
16631 if (key in obj) {
16632 Object.defineProperty(obj, key, {
16633 value: value,
16634 enumerable: true,
16635 configurable: true,
16636 writable: true
16637 });
16638 } else {
16639 obj[key] = value;
16640 }
16641 return obj;
16642 }
16643 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
16644
16645 /***/ }),
16646
16647 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
16648 /*!*********************************************************!*\
16649 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
16650 \*********************************************************/
16651 /***/ ((module) => {
16652
16653 function _extends() {
16654 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
16655 for (var i = 1; i < arguments.length; i++) {
16656 var source = arguments[i];
16657 for (var key in source) {
16658 if (Object.prototype.hasOwnProperty.call(source, key)) {
16659 target[key] = source[key];
16660 }
16661 }
16662 }
16663 return target;
16664 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16665 return _extends.apply(this, arguments);
16666 }
16667 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
16668
16669 /***/ }),
16670
16671 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
16672 /*!***********************************************************************!*\
16673 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
16674 \***********************************************************************/
16675 /***/ ((module) => {
16676
16677 function _interopRequireDefault(obj) {
16678 return obj && obj.__esModule ? obj : {
16679 "default": obj
16680 };
16681 }
16682 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
16683
16684 /***/ }),
16685
16686 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
16687 /*!*****************************************************************!*\
16688 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
16689 \*****************************************************************/
16690 /***/ ((module) => {
16691
16692 function _iterableToArray(iter) {
16693 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
16694 }
16695 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16696
16697 /***/ }),
16698
16699 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
16700 /*!**********************************************************************!*\
16701 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
16702 \**********************************************************************/
16703 /***/ ((module) => {
16704
16705 function _iterableToArrayLimit(r, l) {
16706 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
16707 if (null != t) {
16708 var e,
16709 n,
16710 i,
16711 u,
16712 a = [],
16713 f = !0,
16714 o = !1;
16715 try {
16716 if (i = (t = t.call(r)).next, 0 === l) {
16717 if (Object(t) !== t) return;
16718 f = !1;
16719 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
16720 } catch (r) {
16721 o = !0, n = r;
16722 } finally {
16723 try {
16724 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
16725 } finally {
16726 if (o) throw n;
16727 }
16728 }
16729 return a;
16730 }
16731 }
16732 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
16733
16734 /***/ }),
16735
16736 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
16737 /*!*****************************************************************!*\
16738 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
16739 \*****************************************************************/
16740 /***/ ((module) => {
16741
16742 function _nonIterableRest() {
16743 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16744 }
16745 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
16746
16747 /***/ }),
16748
16749 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
16750 /*!*******************************************************************!*\
16751 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
16752 \*******************************************************************/
16753 /***/ ((module) => {
16754
16755 function _nonIterableSpread() {
16756 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16757 }
16758 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
16759
16760 /***/ }),
16761
16762 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
16763 /*!*************************************************************************!*\
16764 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
16765 \*************************************************************************/
16766 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16767
16768 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
16769 function _objectWithoutProperties(source, excluded) {
16770 if (source == null) return {};
16771 var target = objectWithoutPropertiesLoose(source, excluded);
16772 var key, i;
16773 if (Object.getOwnPropertySymbols) {
16774 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
16775 for (i = 0; i < sourceSymbolKeys.length; i++) {
16776 key = sourceSymbolKeys[i];
16777 if (excluded.indexOf(key) >= 0) continue;
16778 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
16779 target[key] = source[key];
16780 }
16781 }
16782 return target;
16783 }
16784 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
16785
16786 /***/ }),
16787
16788 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
16789 /*!******************************************************************************!*\
16790 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
16791 \******************************************************************************/
16792 /***/ ((module) => {
16793
16794 function _objectWithoutPropertiesLoose(source, excluded) {
16795 if (source == null) return {};
16796 var target = {};
16797 var sourceKeys = Object.keys(source);
16798 var key, i;
16799 for (i = 0; i < sourceKeys.length; i++) {
16800 key = sourceKeys[i];
16801 if (excluded.indexOf(key) >= 0) continue;
16802 target[key] = source[key];
16803 }
16804 return target;
16805 }
16806 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
16807
16808 /***/ }),
16809
16810 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
16811 /*!********************************************************************!*\
16812 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
16813 \********************************************************************/
16814 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16815
16816 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
16817 function _regeneratorRuntime() {
16818 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
16819 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
16820 return e;
16821 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
16822 var t,
16823 e = {},
16824 r = Object.prototype,
16825 n = r.hasOwnProperty,
16826 o = Object.defineProperty || function (t, e, r) {
16827 t[e] = r.value;
16828 },
16829 i = "function" == typeof Symbol ? Symbol : {},
16830 a = i.iterator || "@@iterator",
16831 c = i.asyncIterator || "@@asyncIterator",
16832 u = i.toStringTag || "@@toStringTag";
16833 function define(t, e, r) {
16834 return Object.defineProperty(t, e, {
16835 value: r,
16836 enumerable: !0,
16837 configurable: !0,
16838 writable: !0
16839 }), t[e];
16840 }
16841 try {
16842 define({}, "");
16843 } catch (t) {
16844 define = function define(t, e, r) {
16845 return t[e] = r;
16846 };
16847 }
16848 function wrap(t, e, r, n) {
16849 var i = e && e.prototype instanceof Generator ? e : Generator,
16850 a = Object.create(i.prototype),
16851 c = new Context(n || []);
16852 return o(a, "_invoke", {
16853 value: makeInvokeMethod(t, r, c)
16854 }), a;
16855 }
16856 function tryCatch(t, e, r) {
16857 try {
16858 return {
16859 type: "normal",
16860 arg: t.call(e, r)
16861 };
16862 } catch (t) {
16863 return {
16864 type: "throw",
16865 arg: t
16866 };
16867 }
16868 }
16869 e.wrap = wrap;
16870 var h = "suspendedStart",
16871 l = "suspendedYield",
16872 f = "executing",
16873 s = "completed",
16874 y = {};
16875 function Generator() {}
16876 function GeneratorFunction() {}
16877 function GeneratorFunctionPrototype() {}
16878 var p = {};
16879 define(p, a, function () {
16880 return this;
16881 });
16882 var d = Object.getPrototypeOf,
16883 v = d && d(d(values([])));
16884 v && v !== r && n.call(v, a) && (p = v);
16885 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
16886 function defineIteratorMethods(t) {
16887 ["next", "throw", "return"].forEach(function (e) {
16888 define(t, e, function (t) {
16889 return this._invoke(e, t);
16890 });
16891 });
16892 }
16893 function AsyncIterator(t, e) {
16894 function invoke(r, o, i, a) {
16895 var c = tryCatch(t[r], t, o);
16896 if ("throw" !== c.type) {
16897 var u = c.arg,
16898 h = u.value;
16899 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
16900 invoke("next", t, i, a);
16901 }, function (t) {
16902 invoke("throw", t, i, a);
16903 }) : e.resolve(h).then(function (t) {
16904 u.value = t, i(u);
16905 }, function (t) {
16906 return invoke("throw", t, i, a);
16907 });
16908 }
16909 a(c.arg);
16910 }
16911 var r;
16912 o(this, "_invoke", {
16913 value: function value(t, n) {
16914 function callInvokeWithMethodAndArg() {
16915 return new e(function (e, r) {
16916 invoke(t, n, e, r);
16917 });
16918 }
16919 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
16920 }
16921 });
16922 }
16923 function makeInvokeMethod(e, r, n) {
16924 var o = h;
16925 return function (i, a) {
16926 if (o === f) throw new Error("Generator is already running");
16927 if (o === s) {
16928 if ("throw" === i) throw a;
16929 return {
16930 value: t,
16931 done: !0
16932 };
16933 }
16934 for (n.method = i, n.arg = a;;) {
16935 var c = n.delegate;
16936 if (c) {
16937 var u = maybeInvokeDelegate(c, n);
16938 if (u) {
16939 if (u === y) continue;
16940 return u;
16941 }
16942 }
16943 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
16944 if (o === h) throw o = s, n.arg;
16945 n.dispatchException(n.arg);
16946 } else "return" === n.method && n.abrupt("return", n.arg);
16947 o = f;
16948 var p = tryCatch(e, r, n);
16949 if ("normal" === p.type) {
16950 if (o = n.done ? s : l, p.arg === y) continue;
16951 return {
16952 value: p.arg,
16953 done: n.done
16954 };
16955 }
16956 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
16957 }
16958 };
16959 }
16960 function maybeInvokeDelegate(e, r) {
16961 var n = r.method,
16962 o = e.iterator[n];
16963 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;
16964 var i = tryCatch(o, e.iterator, r.arg);
16965 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
16966 var a = i.arg;
16967 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);
16968 }
16969 function pushTryEntry(t) {
16970 var e = {
16971 tryLoc: t[0]
16972 };
16973 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
16974 }
16975 function resetTryEntry(t) {
16976 var e = t.completion || {};
16977 e.type = "normal", delete e.arg, t.completion = e;
16978 }
16979 function Context(t) {
16980 this.tryEntries = [{
16981 tryLoc: "root"
16982 }], t.forEach(pushTryEntry, this), this.reset(!0);
16983 }
16984 function values(e) {
16985 if (e || "" === e) {
16986 var r = e[a];
16987 if (r) return r.call(e);
16988 if ("function" == typeof e.next) return e;
16989 if (!isNaN(e.length)) {
16990 var o = -1,
16991 i = function next() {
16992 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
16993 return next.value = t, next.done = !0, next;
16994 };
16995 return i.next = i;
16996 }
16997 }
16998 throw new TypeError(_typeof(e) + " is not iterable");
16999 }
17000 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
17001 value: GeneratorFunctionPrototype,
17002 configurable: !0
17003 }), o(GeneratorFunctionPrototype, "constructor", {
17004 value: GeneratorFunction,
17005 configurable: !0
17006 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
17007 var e = "function" == typeof t && t.constructor;
17008 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
17009 }, e.mark = function (t) {
17010 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
17011 }, e.awrap = function (t) {
17012 return {
17013 __await: t
17014 };
17015 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
17016 return this;
17017 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
17018 void 0 === i && (i = Promise);
17019 var a = new AsyncIterator(wrap(t, r, n, o), i);
17020 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
17021 return t.done ? t.value : a.next();
17022 });
17023 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
17024 return this;
17025 }), define(g, "toString", function () {
17026 return "[object Generator]";
17027 }), e.keys = function (t) {
17028 var e = Object(t),
17029 r = [];
17030 for (var n in e) r.push(n);
17031 return r.reverse(), function next() {
17032 for (; r.length;) {
17033 var t = r.pop();
17034 if (t in e) return next.value = t, next.done = !1, next;
17035 }
17036 return next.done = !0, next;
17037 };
17038 }, e.values = values, Context.prototype = {
17039 constructor: Context,
17040 reset: function reset(e) {
17041 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);
17042 },
17043 stop: function stop() {
17044 this.done = !0;
17045 var t = this.tryEntries[0].completion;
17046 if ("throw" === t.type) throw t.arg;
17047 return this.rval;
17048 },
17049 dispatchException: function dispatchException(e) {
17050 if (this.done) throw e;
17051 var r = this;
17052 function handle(n, o) {
17053 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
17054 }
17055 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
17056 var i = this.tryEntries[o],
17057 a = i.completion;
17058 if ("root" === i.tryLoc) return handle("end");
17059 if (i.tryLoc <= this.prev) {
17060 var c = n.call(i, "catchLoc"),
17061 u = n.call(i, "finallyLoc");
17062 if (c && u) {
17063 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17064 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17065 } else if (c) {
17066 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17067 } else {
17068 if (!u) throw new Error("try statement without catch or finally");
17069 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17070 }
17071 }
17072 }
17073 },
17074 abrupt: function abrupt(t, e) {
17075 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
17076 var o = this.tryEntries[r];
17077 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
17078 var i = o;
17079 break;
17080 }
17081 }
17082 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
17083 var a = i ? i.completion : {};
17084 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
17085 },
17086 complete: function complete(t, e) {
17087 if ("throw" === t.type) throw t.arg;
17088 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;
17089 },
17090 finish: function finish(t) {
17091 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17092 var r = this.tryEntries[e];
17093 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
17094 }
17095 },
17096 "catch": function _catch(t) {
17097 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17098 var r = this.tryEntries[e];
17099 if (r.tryLoc === t) {
17100 var n = r.completion;
17101 if ("throw" === n.type) {
17102 var o = n.arg;
17103 resetTryEntry(r);
17104 }
17105 return o;
17106 }
17107 }
17108 throw new Error("illegal catch attempt");
17109 },
17110 delegateYield: function delegateYield(e, r, n) {
17111 return this.delegate = {
17112 iterator: values(e),
17113 resultName: r,
17114 nextLoc: n
17115 }, "next" === this.method && (this.arg = t), y;
17116 }
17117 }, e;
17118 }
17119 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
17120
17121 /***/ }),
17122
17123 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
17124 /*!***************************************************************!*\
17125 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
17126 \***************************************************************/
17127 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17128
17129 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
17130 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
17131 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17132 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
17133 function _slicedToArray(arr, i) {
17134 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
17135 }
17136 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17137
17138 /***/ }),
17139
17140 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
17141 /*!***********************************************************************!*\
17142 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
17143 \***********************************************************************/
17144 /***/ ((module) => {
17145
17146 function _taggedTemplateLiteral(strings, raw) {
17147 if (!raw) {
17148 raw = strings.slice(0);
17149 }
17150 return Object.freeze(Object.defineProperties(strings, {
17151 raw: {
17152 value: Object.freeze(raw)
17153 }
17154 }));
17155 }
17156 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
17157
17158 /***/ }),
17159
17160 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
17161 /*!*******************************************************************!*\
17162 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
17163 \*******************************************************************/
17164 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17165
17166 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
17167 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
17168 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17169 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
17170 function _toConsumableArray(arr) {
17171 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
17172 }
17173 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17174
17175 /***/ }),
17176
17177 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
17178 /*!*************************************************************!*\
17179 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
17180 \*************************************************************/
17181 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17182
17183 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17184 function _toPrimitive(input, hint) {
17185 if (_typeof(input) !== "object" || input === null) return input;
17186 var prim = input[Symbol.toPrimitive];
17187 if (prim !== undefined) {
17188 var res = prim.call(input, hint || "default");
17189 if (_typeof(res) !== "object") return res;
17190 throw new TypeError("@@toPrimitive must return a primitive value.");
17191 }
17192 return (hint === "string" ? String : Number)(input);
17193 }
17194 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
17195
17196 /***/ }),
17197
17198 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
17199 /*!***************************************************************!*\
17200 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
17201 \***************************************************************/
17202 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17203
17204 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17205 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
17206 function _toPropertyKey(arg) {
17207 var key = toPrimitive(arg, "string");
17208 return _typeof(key) === "symbol" ? key : String(key);
17209 }
17210 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
17211
17212 /***/ }),
17213
17214 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
17215 /*!********************************************************!*\
17216 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
17217 \********************************************************/
17218 /***/ ((module) => {
17219
17220 function _typeof(o) {
17221 "@babel/helpers - typeof";
17222
17223 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
17224 return typeof o;
17225 } : function (o) {
17226 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
17227 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
17228 }
17229 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
17230
17231 /***/ }),
17232
17233 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
17234 /*!****************************************************************************!*\
17235 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
17236 \****************************************************************************/
17237 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17238
17239 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
17240 function _unsupportedIterableToArray(o, minLen) {
17241 if (!o) return;
17242 if (typeof o === "string") return arrayLikeToArray(o, minLen);
17243 var n = Object.prototype.toString.call(o).slice(8, -1);
17244 if (n === "Object" && o.constructor) n = o.constructor.name;
17245 if (n === "Map" || n === "Set") return Array.from(o);
17246 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
17247 }
17248 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17249
17250 /***/ }),
17251
17252 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
17253 /*!***********************************************************!*\
17254 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
17255 \***********************************************************/
17256 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17257
17258 // TODO(Babel 8): Remove this file.
17259
17260 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
17261 module.exports = runtime;
17262
17263 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
17264 try {
17265 regeneratorRuntime = runtime;
17266 } catch (accidentalStrictMode) {
17267 if (typeof globalThis === "object") {
17268 globalThis.regeneratorRuntime = runtime;
17269 } else {
17270 Function("r", "regeneratorRuntime = r")(runtime);
17271 }
17272 }
17273
17274
17275 /***/ }),
17276
17277 /***/ "../node_modules/bail/index.js":
17278 /*!*************************************!*\
17279 !*** ../node_modules/bail/index.js ***!
17280 \*************************************/
17281 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17282
17283 "use strict";
17284 __webpack_require__.r(__webpack_exports__);
17285 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17286 /* harmony export */ bail: () => (/* binding */ bail)
17287 /* harmony export */ });
17288 /**
17289 * Throw a given error.
17290 *
17291 * @param {Error|null|undefined} [error]
17292 * Maybe error.
17293 * @returns {asserts error is null|undefined}
17294 */
17295 function bail(error) {
17296 if (error) {
17297 throw error
17298 }
17299 }
17300
17301
17302 /***/ }),
17303
17304 /***/ "../node_modules/comma-separated-tokens/index.js":
17305 /*!*******************************************************!*\
17306 !*** ../node_modules/comma-separated-tokens/index.js ***!
17307 \*******************************************************/
17308 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17309
17310 "use strict";
17311 __webpack_require__.r(__webpack_exports__);
17312 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17313 /* harmony export */ parse: () => (/* binding */ parse),
17314 /* harmony export */ stringify: () => (/* binding */ stringify)
17315 /* harmony export */ });
17316 /**
17317 * @typedef Options
17318 * Configuration for `stringify`.
17319 * @property {boolean} [padLeft=true]
17320 * Whether to pad a space before a token.
17321 * @property {boolean} [padRight=false]
17322 * Whether to pad a space after a token.
17323 */
17324
17325 /**
17326 * @typedef {Options} StringifyOptions
17327 * Please use `StringifyOptions` instead.
17328 */
17329
17330 /**
17331 * Parse comma-separated tokens to an array.
17332 *
17333 * @param {string} value
17334 * Comma-separated tokens.
17335 * @returns {Array<string>}
17336 * List of tokens.
17337 */
17338 function parse(value) {
17339 /** @type {Array<string>} */
17340 const tokens = []
17341 const input = String(value || '')
17342 let index = input.indexOf(',')
17343 let start = 0
17344 /** @type {boolean} */
17345 let end = false
17346
17347 while (!end) {
17348 if (index === -1) {
17349 index = input.length
17350 end = true
17351 }
17352
17353 const token = input.slice(start, index).trim()
17354
17355 if (token || !end) {
17356 tokens.push(token)
17357 }
17358
17359 start = index + 1
17360 index = input.indexOf(',', start)
17361 }
17362
17363 return tokens
17364 }
17365
17366 /**
17367 * Serialize an array of strings or numbers to comma-separated tokens.
17368 *
17369 * @param {Array<string|number>} values
17370 * List of tokens.
17371 * @param {Options} [options]
17372 * Configuration for `stringify` (optional).
17373 * @returns {string}
17374 * Comma-separated tokens.
17375 */
17376 function stringify(values, options) {
17377 const settings = options || {}
17378
17379 // Ensure the last empty entry is seen.
17380 const input = values[values.length - 1] === '' ? [...values, ''] : values
17381
17382 return input
17383 .join(
17384 (settings.padRight ? ' ' : '') +
17385 ',' +
17386 (settings.padLeft === false ? '' : ' ')
17387 )
17388 .trim()
17389 }
17390
17391
17392 /***/ }),
17393
17394 /***/ "../node_modules/decode-named-character-reference/index.dom.js":
17395 /*!*********************************************************************!*\
17396 !*** ../node_modules/decode-named-character-reference/index.dom.js ***!
17397 \*********************************************************************/
17398 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17399
17400 "use strict";
17401 __webpack_require__.r(__webpack_exports__);
17402 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17403 /* harmony export */ decodeNamedCharacterReference: () => (/* binding */ decodeNamedCharacterReference)
17404 /* harmony export */ });
17405 /// <reference lib="dom" />
17406
17407 /* eslint-env browser */
17408
17409 const element = document.createElement('i')
17410
17411 /**
17412 * @param {string} value
17413 * @returns {string|false}
17414 */
17415 function decodeNamedCharacterReference(value) {
17416 const characterReference = '&' + value + ';'
17417 element.innerHTML = characterReference
17418 const char = element.textContent
17419
17420 // Some named character references do not require the closing semicolon
17421 // (`&not`, for instance), which leads to situations where parsing the assumed
17422 // named reference of `&notit;` will result in the string `¬it;`.
17423 // When we encounter a trailing semicolon after parsing, and the character
17424 // reference to decode was not a semicolon (`&semi;`), we can assume that the
17425 // matching was not complete.
17426 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17427 // yield `null`.
17428 if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {
17429 return false
17430 }
17431
17432 // If the decoded string is equal to the input, the character reference was
17433 // not valid.
17434 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17435 // yield `null`.
17436 return char === characterReference ? false : char
17437 }
17438
17439
17440 /***/ }),
17441
17442 /***/ "../node_modules/dequal/dist/index.mjs":
17443 /*!*********************************************!*\
17444 !*** ../node_modules/dequal/dist/index.mjs ***!
17445 \*********************************************/
17446 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17447
17448 "use strict";
17449 __webpack_require__.r(__webpack_exports__);
17450 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17451 /* harmony export */ dequal: () => (/* binding */ dequal)
17452 /* harmony export */ });
17453 var has = Object.prototype.hasOwnProperty;
17454
17455 function find(iter, tar, key) {
17456 for (key of iter.keys()) {
17457 if (dequal(key, tar)) return key;
17458 }
17459 }
17460
17461 function dequal(foo, bar) {
17462 var ctor, len, tmp;
17463 if (foo === bar) return true;
17464
17465 if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
17466 if (ctor === Date) return foo.getTime() === bar.getTime();
17467 if (ctor === RegExp) return foo.toString() === bar.toString();
17468
17469 if (ctor === Array) {
17470 if ((len=foo.length) === bar.length) {
17471 while (len-- && dequal(foo[len], bar[len]));
17472 }
17473 return len === -1;
17474 }
17475
17476 if (ctor === Set) {
17477 if (foo.size !== bar.size) {
17478 return false;
17479 }
17480 for (len of foo) {
17481 tmp = len;
17482 if (tmp && typeof tmp === 'object') {
17483 tmp = find(bar, tmp);
17484 if (!tmp) return false;
17485 }
17486 if (!bar.has(tmp)) return false;
17487 }
17488 return true;
17489 }
17490
17491 if (ctor === Map) {
17492 if (foo.size !== bar.size) {
17493 return false;
17494 }
17495 for (len of foo) {
17496 tmp = len[0];
17497 if (tmp && typeof tmp === 'object') {
17498 tmp = find(bar, tmp);
17499 if (!tmp) return false;
17500 }
17501 if (!dequal(len[1], bar.get(tmp))) {
17502 return false;
17503 }
17504 }
17505 return true;
17506 }
17507
17508 if (ctor === ArrayBuffer) {
17509 foo = new Uint8Array(foo);
17510 bar = new Uint8Array(bar);
17511 } else if (ctor === DataView) {
17512 if ((len=foo.byteLength) === bar.byteLength) {
17513 while (len-- && foo.getInt8(len) === bar.getInt8(len));
17514 }
17515 return len === -1;
17516 }
17517
17518 if (ArrayBuffer.isView(foo)) {
17519 if ((len=foo.byteLength) === bar.byteLength) {
17520 while (len-- && foo[len] === bar[len]);
17521 }
17522 return len === -1;
17523 }
17524
17525 if (!ctor || typeof foo === 'object') {
17526 len = 0;
17527 for (ctor in foo) {
17528 if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
17529 if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
17530 }
17531 return Object.keys(bar).length === len;
17532 }
17533 }
17534
17535 return foo !== foo && bar !== bar;
17536 }
17537
17538
17539 /***/ }),
17540
17541 /***/ "../node_modules/diff/lib/index.mjs":
17542 /*!******************************************!*\
17543 !*** ../node_modules/diff/lib/index.mjs ***!
17544 \******************************************/
17545 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17546
17547 "use strict";
17548 __webpack_require__.r(__webpack_exports__);
17549 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17550 /* harmony export */ Diff: () => (/* binding */ Diff),
17551 /* harmony export */ applyPatch: () => (/* binding */ applyPatch),
17552 /* harmony export */ applyPatches: () => (/* binding */ applyPatches),
17553 /* harmony export */ canonicalize: () => (/* binding */ canonicalize),
17554 /* harmony export */ convertChangesToDMP: () => (/* binding */ convertChangesToDMP),
17555 /* harmony export */ convertChangesToXML: () => (/* binding */ convertChangesToXML),
17556 /* harmony export */ createPatch: () => (/* binding */ createPatch),
17557 /* harmony export */ createTwoFilesPatch: () => (/* binding */ createTwoFilesPatch),
17558 /* harmony export */ diffArrays: () => (/* binding */ diffArrays),
17559 /* harmony export */ diffChars: () => (/* binding */ diffChars),
17560 /* harmony export */ diffCss: () => (/* binding */ diffCss),
17561 /* harmony export */ diffJson: () => (/* binding */ diffJson),
17562 /* harmony export */ diffLines: () => (/* binding */ diffLines),
17563 /* harmony export */ diffSentences: () => (/* binding */ diffSentences),
17564 /* harmony export */ diffTrimmedLines: () => (/* binding */ diffTrimmedLines),
17565 /* harmony export */ diffWords: () => (/* binding */ diffWords),
17566 /* harmony export */ diffWordsWithSpace: () => (/* binding */ diffWordsWithSpace),
17567 /* harmony export */ merge: () => (/* binding */ merge),
17568 /* harmony export */ parsePatch: () => (/* binding */ parsePatch),
17569 /* harmony export */ structuredPatch: () => (/* binding */ structuredPatch)
17570 /* harmony export */ });
17571 function Diff() {}
17572 Diff.prototype = {
17573 diff: function diff(oldString, newString) {
17574 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
17575 var callback = options.callback;
17576
17577 if (typeof options === 'function') {
17578 callback = options;
17579 options = {};
17580 }
17581
17582 this.options = options;
17583 var self = this;
17584
17585 function done(value) {
17586 if (callback) {
17587 setTimeout(function () {
17588 callback(undefined, value);
17589 }, 0);
17590 return true;
17591 } else {
17592 return value;
17593 }
17594 } // Allow subclasses to massage the input prior to running
17595
17596
17597 oldString = this.castInput(oldString);
17598 newString = this.castInput(newString);
17599 oldString = this.removeEmpty(this.tokenize(oldString));
17600 newString = this.removeEmpty(this.tokenize(newString));
17601 var newLen = newString.length,
17602 oldLen = oldString.length;
17603 var editLength = 1;
17604 var maxEditLength = newLen + oldLen;
17605
17606 if (options.maxEditLength) {
17607 maxEditLength = Math.min(maxEditLength, options.maxEditLength);
17608 }
17609
17610 var bestPath = [{
17611 newPos: -1,
17612 components: []
17613 }]; // Seed editLength = 0, i.e. the content starts with the same values
17614
17615 var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
17616
17617 if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
17618 // Identity per the equality and tokenizer
17619 return done([{
17620 value: this.join(newString),
17621 count: newString.length
17622 }]);
17623 } // Main worker method. checks all permutations of a given edit length for acceptance.
17624
17625
17626 function execEditLength() {
17627 for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
17628 var basePath = void 0;
17629
17630 var addPath = bestPath[diagonalPath - 1],
17631 removePath = bestPath[diagonalPath + 1],
17632 _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
17633
17634 if (addPath) {
17635 // No one else is going to attempt to use this value, clear it
17636 bestPath[diagonalPath - 1] = undefined;
17637 }
17638
17639 var canAdd = addPath && addPath.newPos + 1 < newLen,
17640 canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
17641
17642 if (!canAdd && !canRemove) {
17643 // If this path is a terminal then prune
17644 bestPath[diagonalPath] = undefined;
17645 continue;
17646 } // Select the diagonal that we want to branch from. We select the prior
17647 // path whose position in the new string is the farthest from the origin
17648 // and does not pass the bounds of the diff graph
17649
17650
17651 if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
17652 basePath = clonePath(removePath);
17653 self.pushComponent(basePath.components, undefined, true);
17654 } else {
17655 basePath = addPath; // No need to clone, we've pulled it from the list
17656
17657 basePath.newPos++;
17658 self.pushComponent(basePath.components, true, undefined);
17659 }
17660
17661 _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
17662
17663 if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
17664 return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
17665 } else {
17666 // Otherwise track this path as a potential candidate and continue.
17667 bestPath[diagonalPath] = basePath;
17668 }
17669 }
17670
17671 editLength++;
17672 } // Performs the length of edit iteration. Is a bit fugly as this has to support the
17673 // sync and async mode which is never fun. Loops over execEditLength until a value
17674 // is produced, or until the edit length exceeds options.maxEditLength (if given),
17675 // in which case it will return undefined.
17676
17677
17678 if (callback) {
17679 (function exec() {
17680 setTimeout(function () {
17681 if (editLength > maxEditLength) {
17682 return callback();
17683 }
17684
17685 if (!execEditLength()) {
17686 exec();
17687 }
17688 }, 0);
17689 })();
17690 } else {
17691 while (editLength <= maxEditLength) {
17692 var ret = execEditLength();
17693
17694 if (ret) {
17695 return ret;
17696 }
17697 }
17698 }
17699 },
17700 pushComponent: function pushComponent(components, added, removed) {
17701 var last = components[components.length - 1];
17702
17703 if (last && last.added === added && last.removed === removed) {
17704 // We need to clone here as the component clone operation is just
17705 // as shallow array clone
17706 components[components.length - 1] = {
17707 count: last.count + 1,
17708 added: added,
17709 removed: removed
17710 };
17711 } else {
17712 components.push({
17713 count: 1,
17714 added: added,
17715 removed: removed
17716 });
17717 }
17718 },
17719 extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
17720 var newLen = newString.length,
17721 oldLen = oldString.length,
17722 newPos = basePath.newPos,
17723 oldPos = newPos - diagonalPath,
17724 commonCount = 0;
17725
17726 while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
17727 newPos++;
17728 oldPos++;
17729 commonCount++;
17730 }
17731
17732 if (commonCount) {
17733 basePath.components.push({
17734 count: commonCount
17735 });
17736 }
17737
17738 basePath.newPos = newPos;
17739 return oldPos;
17740 },
17741 equals: function equals(left, right) {
17742 if (this.options.comparator) {
17743 return this.options.comparator(left, right);
17744 } else {
17745 return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
17746 }
17747 },
17748 removeEmpty: function removeEmpty(array) {
17749 var ret = [];
17750
17751 for (var i = 0; i < array.length; i++) {
17752 if (array[i]) {
17753 ret.push(array[i]);
17754 }
17755 }
17756
17757 return ret;
17758 },
17759 castInput: function castInput(value) {
17760 return value;
17761 },
17762 tokenize: function tokenize(value) {
17763 return value.split('');
17764 },
17765 join: function join(chars) {
17766 return chars.join('');
17767 }
17768 };
17769
17770 function buildValues(diff, components, newString, oldString, useLongestToken) {
17771 var componentPos = 0,
17772 componentLen = components.length,
17773 newPos = 0,
17774 oldPos = 0;
17775
17776 for (; componentPos < componentLen; componentPos++) {
17777 var component = components[componentPos];
17778
17779 if (!component.removed) {
17780 if (!component.added && useLongestToken) {
17781 var value = newString.slice(newPos, newPos + component.count);
17782 value = value.map(function (value, i) {
17783 var oldValue = oldString[oldPos + i];
17784 return oldValue.length > value.length ? oldValue : value;
17785 });
17786 component.value = diff.join(value);
17787 } else {
17788 component.value = diff.join(newString.slice(newPos, newPos + component.count));
17789 }
17790
17791 newPos += component.count; // Common case
17792
17793 if (!component.added) {
17794 oldPos += component.count;
17795 }
17796 } else {
17797 component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
17798 oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
17799 // The diffing algorithm is tied to add then remove output and this is the simplest
17800 // route to get the desired output with minimal overhead.
17801
17802 if (componentPos && components[componentPos - 1].added) {
17803 var tmp = components[componentPos - 1];
17804 components[componentPos - 1] = components[componentPos];
17805 components[componentPos] = tmp;
17806 }
17807 }
17808 } // Special case handle for when one terminal is ignored (i.e. whitespace).
17809 // For this case we merge the terminal into the prior string and drop the change.
17810 // This is only available for string mode.
17811
17812
17813 var lastComponent = components[componentLen - 1];
17814
17815 if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
17816 components[componentLen - 2].value += lastComponent.value;
17817 components.pop();
17818 }
17819
17820 return components;
17821 }
17822
17823 function clonePath(path) {
17824 return {
17825 newPos: path.newPos,
17826 components: path.components.slice(0)
17827 };
17828 }
17829
17830 var characterDiff = new Diff();
17831 function diffChars(oldStr, newStr, options) {
17832 return characterDiff.diff(oldStr, newStr, options);
17833 }
17834
17835 function generateOptions(options, defaults) {
17836 if (typeof options === 'function') {
17837 defaults.callback = options;
17838 } else if (options) {
17839 for (var name in options) {
17840 /* istanbul ignore else */
17841 if (options.hasOwnProperty(name)) {
17842 defaults[name] = options[name];
17843 }
17844 }
17845 }
17846
17847 return defaults;
17848 }
17849
17850 //
17851 // Ranges and exceptions:
17852 // Latin-1 Supplement, 0080–00FF
17853 // - U+00D7 × Multiplication sign
17854 // - U+00F7 ÷ Division sign
17855 // Latin Extended-A, 0100–017F
17856 // Latin Extended-B, 0180–024F
17857 // IPA Extensions, 0250–02AF
17858 // Spacing Modifier Letters, 02B0–02FF
17859 // - U+02C7 ˇ &#711; Caron
17860 // - U+02D8 ˘ &#728; Breve
17861 // - U+02D9 ˙ &#729; Dot Above
17862 // - U+02DA ˚ &#730; Ring Above
17863 // - U+02DB ˛ &#731; Ogonek
17864 // - U+02DC ˜ &#732; Small Tilde
17865 // - U+02DD ˝ &#733; Double Acute Accent
17866 // Latin Extended Additional, 1E00–1EFF
17867
17868 var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
17869 var reWhitespace = /\S/;
17870 var wordDiff = new Diff();
17871
17872 wordDiff.equals = function (left, right) {
17873 if (this.options.ignoreCase) {
17874 left = left.toLowerCase();
17875 right = right.toLowerCase();
17876 }
17877
17878 return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
17879 };
17880
17881 wordDiff.tokenize = function (value) {
17882 // All whitespace symbols except newline group into one token, each newline - in separate token
17883 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.
17884
17885 for (var i = 0; i < tokens.length - 1; i++) {
17886 // If we have an empty string in the next field and we have only word chars before and after, merge
17887 if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
17888 tokens[i] += tokens[i + 2];
17889 tokens.splice(i + 1, 2);
17890 i--;
17891 }
17892 }
17893
17894 return tokens;
17895 };
17896
17897 function diffWords(oldStr, newStr, options) {
17898 options = generateOptions(options, {
17899 ignoreWhitespace: true
17900 });
17901 return wordDiff.diff(oldStr, newStr, options);
17902 }
17903 function diffWordsWithSpace(oldStr, newStr, options) {
17904 return wordDiff.diff(oldStr, newStr, options);
17905 }
17906
17907 var lineDiff = new Diff();
17908
17909 lineDiff.tokenize = function (value) {
17910 var retLines = [],
17911 linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
17912
17913 if (!linesAndNewlines[linesAndNewlines.length - 1]) {
17914 linesAndNewlines.pop();
17915 } // Merge the content and line separators into single tokens
17916
17917
17918 for (var i = 0; i < linesAndNewlines.length; i++) {
17919 var line = linesAndNewlines[i];
17920
17921 if (i % 2 && !this.options.newlineIsToken) {
17922 retLines[retLines.length - 1] += line;
17923 } else {
17924 if (this.options.ignoreWhitespace) {
17925 line = line.trim();
17926 }
17927
17928 retLines.push(line);
17929 }
17930 }
17931
17932 return retLines;
17933 };
17934
17935 function diffLines(oldStr, newStr, callback) {
17936 return lineDiff.diff(oldStr, newStr, callback);
17937 }
17938 function diffTrimmedLines(oldStr, newStr, callback) {
17939 var options = generateOptions(callback, {
17940 ignoreWhitespace: true
17941 });
17942 return lineDiff.diff(oldStr, newStr, options);
17943 }
17944
17945 var sentenceDiff = new Diff();
17946
17947 sentenceDiff.tokenize = function (value) {
17948 return value.split(/(\S.+?[.!?])(?=\s+|$)/);
17949 };
17950
17951 function diffSentences(oldStr, newStr, callback) {
17952 return sentenceDiff.diff(oldStr, newStr, callback);
17953 }
17954
17955 var cssDiff = new Diff();
17956
17957 cssDiff.tokenize = function (value) {
17958 return value.split(/([{}:;,]|\s+)/);
17959 };
17960
17961 function diffCss(oldStr, newStr, callback) {
17962 return cssDiff.diff(oldStr, newStr, callback);
17963 }
17964
17965 function _typeof(obj) {
17966 "@babel/helpers - typeof";
17967
17968 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
17969 _typeof = function (obj) {
17970 return typeof obj;
17971 };
17972 } else {
17973 _typeof = function (obj) {
17974 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17975 };
17976 }
17977
17978 return _typeof(obj);
17979 }
17980
17981 function _toConsumableArray(arr) {
17982 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
17983 }
17984
17985 function _arrayWithoutHoles(arr) {
17986 if (Array.isArray(arr)) return _arrayLikeToArray(arr);
17987 }
17988
17989 function _iterableToArray(iter) {
17990 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
17991 }
17992
17993 function _unsupportedIterableToArray(o, minLen) {
17994 if (!o) return;
17995 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
17996 var n = Object.prototype.toString.call(o).slice(8, -1);
17997 if (n === "Object" && o.constructor) n = o.constructor.name;
17998 if (n === "Map" || n === "Set") return Array.from(o);
17999 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
18000 }
18001
18002 function _arrayLikeToArray(arr, len) {
18003 if (len == null || len > arr.length) len = arr.length;
18004
18005 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
18006
18007 return arr2;
18008 }
18009
18010 function _nonIterableSpread() {
18011 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18012 }
18013
18014 var objectPrototypeToString = Object.prototype.toString;
18015 var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
18016 // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
18017
18018 jsonDiff.useLongestToken = true;
18019 jsonDiff.tokenize = lineDiff.tokenize;
18020
18021 jsonDiff.castInput = function (value) {
18022 var _this$options = this.options,
18023 undefinedReplacement = _this$options.undefinedReplacement,
18024 _this$options$stringi = _this$options.stringifyReplacer,
18025 stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {
18026 return typeof v === 'undefined' ? undefinedReplacement : v;
18027 } : _this$options$stringi;
18028 return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');
18029 };
18030
18031 jsonDiff.equals = function (left, right) {
18032 return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
18033 };
18034
18035 function diffJson(oldObj, newObj, options) {
18036 return jsonDiff.diff(oldObj, newObj, options);
18037 } // This function handles the presence of circular references by bailing out when encountering an
18038 // object that is already on the "stack" of items being processed. Accepts an optional replacer
18039
18040 function canonicalize(obj, stack, replacementStack, replacer, key) {
18041 stack = stack || [];
18042 replacementStack = replacementStack || [];
18043
18044 if (replacer) {
18045 obj = replacer(key, obj);
18046 }
18047
18048 var i;
18049
18050 for (i = 0; i < stack.length; i += 1) {
18051 if (stack[i] === obj) {
18052 return replacementStack[i];
18053 }
18054 }
18055
18056 var canonicalizedObj;
18057
18058 if ('[object Array]' === objectPrototypeToString.call(obj)) {
18059 stack.push(obj);
18060 canonicalizedObj = new Array(obj.length);
18061 replacementStack.push(canonicalizedObj);
18062
18063 for (i = 0; i < obj.length; i += 1) {
18064 canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
18065 }
18066
18067 stack.pop();
18068 replacementStack.pop();
18069 return canonicalizedObj;
18070 }
18071
18072 if (obj && obj.toJSON) {
18073 obj = obj.toJSON();
18074 }
18075
18076 if (_typeof(obj) === 'object' && obj !== null) {
18077 stack.push(obj);
18078 canonicalizedObj = {};
18079 replacementStack.push(canonicalizedObj);
18080
18081 var sortedKeys = [],
18082 _key;
18083
18084 for (_key in obj) {
18085 /* istanbul ignore else */
18086 if (obj.hasOwnProperty(_key)) {
18087 sortedKeys.push(_key);
18088 }
18089 }
18090
18091 sortedKeys.sort();
18092
18093 for (i = 0; i < sortedKeys.length; i += 1) {
18094 _key = sortedKeys[i];
18095 canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
18096 }
18097
18098 stack.pop();
18099 replacementStack.pop();
18100 } else {
18101 canonicalizedObj = obj;
18102 }
18103
18104 return canonicalizedObj;
18105 }
18106
18107 var arrayDiff = new Diff();
18108
18109 arrayDiff.tokenize = function (value) {
18110 return value.slice();
18111 };
18112
18113 arrayDiff.join = arrayDiff.removeEmpty = function (value) {
18114 return value;
18115 };
18116
18117 function diffArrays(oldArr, newArr, callback) {
18118 return arrayDiff.diff(oldArr, newArr, callback);
18119 }
18120
18121 function parsePatch(uniDiff) {
18122 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18123 var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
18124 delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18125 list = [],
18126 i = 0;
18127
18128 function parseIndex() {
18129 var index = {};
18130 list.push(index); // Parse diff metadata
18131
18132 while (i < diffstr.length) {
18133 var line = diffstr[i]; // File header found, end parsing diff metadata
18134
18135 if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
18136 break;
18137 } // Diff index
18138
18139
18140 var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
18141
18142 if (header) {
18143 index.index = header[1];
18144 }
18145
18146 i++;
18147 } // Parse file headers if they are defined. Unified diff requires them, but
18148 // there's no technical issues to have an isolated hunk without file header
18149
18150
18151 parseFileHeader(index);
18152 parseFileHeader(index); // Parse hunks
18153
18154 index.hunks = [];
18155
18156 while (i < diffstr.length) {
18157 var _line = diffstr[i];
18158
18159 if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
18160 break;
18161 } else if (/^@@/.test(_line)) {
18162 index.hunks.push(parseHunk());
18163 } else if (_line && options.strict) {
18164 // Ignore unexpected content unless in strict mode
18165 throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
18166 } else {
18167 i++;
18168 }
18169 }
18170 } // Parses the --- and +++ headers, if none are found, no lines
18171 // are consumed.
18172
18173
18174 function parseFileHeader(index) {
18175 var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
18176
18177 if (fileHeader) {
18178 var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
18179 var data = fileHeader[2].split('\t', 2);
18180 var fileName = data[0].replace(/\\\\/g, '\\');
18181
18182 if (/^".*"$/.test(fileName)) {
18183 fileName = fileName.substr(1, fileName.length - 2);
18184 }
18185
18186 index[keyPrefix + 'FileName'] = fileName;
18187 index[keyPrefix + 'Header'] = (data[1] || '').trim();
18188 i++;
18189 }
18190 } // Parses a hunk
18191 // This assumes that we are at the start of a hunk.
18192
18193
18194 function parseHunk() {
18195 var chunkHeaderIndex = i,
18196 chunkHeaderLine = diffstr[i++],
18197 chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
18198 var hunk = {
18199 oldStart: +chunkHeader[1],
18200 oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],
18201 newStart: +chunkHeader[3],
18202 newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],
18203 lines: [],
18204 linedelimiters: []
18205 }; // Unified Diff Format quirk: If the chunk size is 0,
18206 // the first number is one lower than one would expect.
18207 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18208
18209 if (hunk.oldLines === 0) {
18210 hunk.oldStart += 1;
18211 }
18212
18213 if (hunk.newLines === 0) {
18214 hunk.newStart += 1;
18215 }
18216
18217 var addCount = 0,
18218 removeCount = 0;
18219
18220 for (; i < diffstr.length; i++) {
18221 // Lines starting with '---' could be mistaken for the "remove line" operation
18222 // But they could be the header for the next file. Therefore prune such cases out.
18223 if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
18224 break;
18225 }
18226
18227 var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
18228
18229 if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
18230 hunk.lines.push(diffstr[i]);
18231 hunk.linedelimiters.push(delimiters[i] || '\n');
18232
18233 if (operation === '+') {
18234 addCount++;
18235 } else if (operation === '-') {
18236 removeCount++;
18237 } else if (operation === ' ') {
18238 addCount++;
18239 removeCount++;
18240 }
18241 } else {
18242 break;
18243 }
18244 } // Handle the empty block count case
18245
18246
18247 if (!addCount && hunk.newLines === 1) {
18248 hunk.newLines = 0;
18249 }
18250
18251 if (!removeCount && hunk.oldLines === 1) {
18252 hunk.oldLines = 0;
18253 } // Perform optional sanity checking
18254
18255
18256 if (options.strict) {
18257 if (addCount !== hunk.newLines) {
18258 throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18259 }
18260
18261 if (removeCount !== hunk.oldLines) {
18262 throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18263 }
18264 }
18265
18266 return hunk;
18267 }
18268
18269 while (i < diffstr.length) {
18270 parseIndex();
18271 }
18272
18273 return list;
18274 }
18275
18276 // Iterator that traverses in the range of [min, max], stepping
18277 // by distance from a given start position. I.e. for [0, 4], with
18278 // start of 2, this will iterate 2, 3, 1, 4, 0.
18279 function distanceIterator (start, minLine, maxLine) {
18280 var wantForward = true,
18281 backwardExhausted = false,
18282 forwardExhausted = false,
18283 localOffset = 1;
18284 return function iterator() {
18285 if (wantForward && !forwardExhausted) {
18286 if (backwardExhausted) {
18287 localOffset++;
18288 } else {
18289 wantForward = false;
18290 } // Check if trying to fit beyond text length, and if not, check it fits
18291 // after offset location (or desired location on first iteration)
18292
18293
18294 if (start + localOffset <= maxLine) {
18295 return localOffset;
18296 }
18297
18298 forwardExhausted = true;
18299 }
18300
18301 if (!backwardExhausted) {
18302 if (!forwardExhausted) {
18303 wantForward = true;
18304 } // Check if trying to fit before text beginning, and if not, check it fits
18305 // before offset location
18306
18307
18308 if (minLine <= start - localOffset) {
18309 return -localOffset++;
18310 }
18311
18312 backwardExhausted = true;
18313 return iterator();
18314 } // We tried to fit hunk before text beginning and beyond text length, then
18315 // hunk can't fit on the text. Return undefined
18316
18317 };
18318 }
18319
18320 function applyPatch(source, uniDiff) {
18321 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18322
18323 if (typeof uniDiff === 'string') {
18324 uniDiff = parsePatch(uniDiff);
18325 }
18326
18327 if (Array.isArray(uniDiff)) {
18328 if (uniDiff.length > 1) {
18329 throw new Error('applyPatch only works with a single input.');
18330 }
18331
18332 uniDiff = uniDiff[0];
18333 } // Apply the diff to the input
18334
18335
18336 var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
18337 delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18338 hunks = uniDiff.hunks,
18339 compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {
18340 return line === patchContent;
18341 },
18342 errorCount = 0,
18343 fuzzFactor = options.fuzzFactor || 0,
18344 minLine = 0,
18345 offset = 0,
18346 removeEOFNL,
18347 addEOFNL;
18348 /**
18349 * Checks if the hunk exactly fits on the provided location
18350 */
18351
18352
18353 function hunkFits(hunk, toPos) {
18354 for (var j = 0; j < hunk.lines.length; j++) {
18355 var line = hunk.lines[j],
18356 operation = line.length > 0 ? line[0] : ' ',
18357 content = line.length > 0 ? line.substr(1) : line;
18358
18359 if (operation === ' ' || operation === '-') {
18360 // Context sanity check
18361 if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
18362 errorCount++;
18363
18364 if (errorCount > fuzzFactor) {
18365 return false;
18366 }
18367 }
18368
18369 toPos++;
18370 }
18371 }
18372
18373 return true;
18374 } // Search best fit offsets for each hunk based on the previous ones
18375
18376
18377 for (var i = 0; i < hunks.length; i++) {
18378 var hunk = hunks[i],
18379 maxLine = lines.length - hunk.oldLines,
18380 localOffset = 0,
18381 toPos = offset + hunk.oldStart - 1;
18382 var iterator = distanceIterator(toPos, minLine, maxLine);
18383
18384 for (; localOffset !== undefined; localOffset = iterator()) {
18385 if (hunkFits(hunk, toPos + localOffset)) {
18386 hunk.offset = offset += localOffset;
18387 break;
18388 }
18389 }
18390
18391 if (localOffset === undefined) {
18392 return false;
18393 } // Set lower text limit to end of the current hunk, so next ones don't try
18394 // to fit over already patched text
18395
18396
18397 minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
18398 } // Apply patch hunks
18399
18400
18401 var diffOffset = 0;
18402
18403 for (var _i = 0; _i < hunks.length; _i++) {
18404 var _hunk = hunks[_i],
18405 _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
18406
18407 diffOffset += _hunk.newLines - _hunk.oldLines;
18408
18409 for (var j = 0; j < _hunk.lines.length; j++) {
18410 var line = _hunk.lines[j],
18411 operation = line.length > 0 ? line[0] : ' ',
18412 content = line.length > 0 ? line.substr(1) : line,
18413 delimiter = _hunk.linedelimiters[j];
18414
18415 if (operation === ' ') {
18416 _toPos++;
18417 } else if (operation === '-') {
18418 lines.splice(_toPos, 1);
18419 delimiters.splice(_toPos, 1);
18420 /* istanbul ignore else */
18421 } else if (operation === '+') {
18422 lines.splice(_toPos, 0, content);
18423 delimiters.splice(_toPos, 0, delimiter);
18424 _toPos++;
18425 } else if (operation === '\\') {
18426 var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
18427
18428 if (previousOperation === '+') {
18429 removeEOFNL = true;
18430 } else if (previousOperation === '-') {
18431 addEOFNL = true;
18432 }
18433 }
18434 }
18435 } // Handle EOFNL insertion/removal
18436
18437
18438 if (removeEOFNL) {
18439 while (!lines[lines.length - 1]) {
18440 lines.pop();
18441 delimiters.pop();
18442 }
18443 } else if (addEOFNL) {
18444 lines.push('');
18445 delimiters.push('\n');
18446 }
18447
18448 for (var _k = 0; _k < lines.length - 1; _k++) {
18449 lines[_k] = lines[_k] + delimiters[_k];
18450 }
18451
18452 return lines.join('');
18453 } // Wrapper that supports multiple file patches via callbacks.
18454
18455 function applyPatches(uniDiff, options) {
18456 if (typeof uniDiff === 'string') {
18457 uniDiff = parsePatch(uniDiff);
18458 }
18459
18460 var currentIndex = 0;
18461
18462 function processIndex() {
18463 var index = uniDiff[currentIndex++];
18464
18465 if (!index) {
18466 return options.complete();
18467 }
18468
18469 options.loadFile(index, function (err, data) {
18470 if (err) {
18471 return options.complete(err);
18472 }
18473
18474 var updatedContent = applyPatch(data, index, options);
18475 options.patched(index, updatedContent, function (err) {
18476 if (err) {
18477 return options.complete(err);
18478 }
18479
18480 processIndex();
18481 });
18482 });
18483 }
18484
18485 processIndex();
18486 }
18487
18488 function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18489 if (!options) {
18490 options = {};
18491 }
18492
18493 if (typeof options.context === 'undefined') {
18494 options.context = 4;
18495 }
18496
18497 var diff = diffLines(oldStr, newStr, options);
18498
18499 if (!diff) {
18500 return;
18501 }
18502
18503 diff.push({
18504 value: '',
18505 lines: []
18506 }); // Append an empty value to make cleanup easier
18507
18508 function contextLines(lines) {
18509 return lines.map(function (entry) {
18510 return ' ' + entry;
18511 });
18512 }
18513
18514 var hunks = [];
18515 var oldRangeStart = 0,
18516 newRangeStart = 0,
18517 curRange = [],
18518 oldLine = 1,
18519 newLine = 1;
18520
18521 var _loop = function _loop(i) {
18522 var current = diff[i],
18523 lines = current.lines || current.value.replace(/\n$/, '').split('\n');
18524 current.lines = lines;
18525
18526 if (current.added || current.removed) {
18527 var _curRange;
18528
18529 // If we have previous context, start with that
18530 if (!oldRangeStart) {
18531 var prev = diff[i - 1];
18532 oldRangeStart = oldLine;
18533 newRangeStart = newLine;
18534
18535 if (prev) {
18536 curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
18537 oldRangeStart -= curRange.length;
18538 newRangeStart -= curRange.length;
18539 }
18540 } // Output our changes
18541
18542
18543 (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {
18544 return (current.added ? '+' : '-') + entry;
18545 }))); // Track the updated file position
18546
18547
18548 if (current.added) {
18549 newLine += lines.length;
18550 } else {
18551 oldLine += lines.length;
18552 }
18553 } else {
18554 // Identical context lines. Track line changes
18555 if (oldRangeStart) {
18556 // Close out any changes that have been output (or join overlapping)
18557 if (lines.length <= options.context * 2 && i < diff.length - 2) {
18558 var _curRange2;
18559
18560 // Overlapping
18561 (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));
18562 } else {
18563 var _curRange3;
18564
18565 // end the range and output
18566 var contextSize = Math.min(lines.length, options.context);
18567
18568 (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));
18569
18570 var hunk = {
18571 oldStart: oldRangeStart,
18572 oldLines: oldLine - oldRangeStart + contextSize,
18573 newStart: newRangeStart,
18574 newLines: newLine - newRangeStart + contextSize,
18575 lines: curRange
18576 };
18577
18578 if (i >= diff.length - 2 && lines.length <= options.context) {
18579 // EOF is inside this hunk
18580 var oldEOFNewline = /\n$/.test(oldStr);
18581 var newEOFNewline = /\n$/.test(newStr);
18582 var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
18583
18584 if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
18585 // special case: old has no eol and no trailing context; no-nl can end up before adds
18586 // however, if the old file is empty, do not output the no-nl line
18587 curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
18588 }
18589
18590 if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
18591 curRange.push('\\ No newline at end of file');
18592 }
18593 }
18594
18595 hunks.push(hunk);
18596 oldRangeStart = 0;
18597 newRangeStart = 0;
18598 curRange = [];
18599 }
18600 }
18601
18602 oldLine += lines.length;
18603 newLine += lines.length;
18604 }
18605 };
18606
18607 for (var i = 0; i < diff.length; i++) {
18608 _loop(i);
18609 }
18610
18611 return {
18612 oldFileName: oldFileName,
18613 newFileName: newFileName,
18614 oldHeader: oldHeader,
18615 newHeader: newHeader,
18616 hunks: hunks
18617 };
18618 }
18619 function formatPatch(diff) {
18620 var ret = [];
18621
18622 if (diff.oldFileName == diff.newFileName) {
18623 ret.push('Index: ' + diff.oldFileName);
18624 }
18625
18626 ret.push('===================================================================');
18627 ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
18628 ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
18629
18630 for (var i = 0; i < diff.hunks.length; i++) {
18631 var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
18632 // the first number is one lower than one would expect.
18633 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18634
18635 if (hunk.oldLines === 0) {
18636 hunk.oldStart -= 1;
18637 }
18638
18639 if (hunk.newLines === 0) {
18640 hunk.newStart -= 1;
18641 }
18642
18643 ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
18644 ret.push.apply(ret, hunk.lines);
18645 }
18646
18647 return ret.join('\n') + '\n';
18648 }
18649 function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18650 return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
18651 }
18652 function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
18653 return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
18654 }
18655
18656 function arrayEqual(a, b) {
18657 if (a.length !== b.length) {
18658 return false;
18659 }
18660
18661 return arrayStartsWith(a, b);
18662 }
18663 function arrayStartsWith(array, start) {
18664 if (start.length > array.length) {
18665 return false;
18666 }
18667
18668 for (var i = 0; i < start.length; i++) {
18669 if (start[i] !== array[i]) {
18670 return false;
18671 }
18672 }
18673
18674 return true;
18675 }
18676
18677 function calcLineCount(hunk) {
18678 var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),
18679 oldLines = _calcOldNewLineCount.oldLines,
18680 newLines = _calcOldNewLineCount.newLines;
18681
18682 if (oldLines !== undefined) {
18683 hunk.oldLines = oldLines;
18684 } else {
18685 delete hunk.oldLines;
18686 }
18687
18688 if (newLines !== undefined) {
18689 hunk.newLines = newLines;
18690 } else {
18691 delete hunk.newLines;
18692 }
18693 }
18694 function merge(mine, theirs, base) {
18695 mine = loadPatch(mine, base);
18696 theirs = loadPatch(theirs, base);
18697 var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.
18698 // Leaving sanity checks on this to the API consumer that may know more about the
18699 // meaning in their own context.
18700
18701 if (mine.index || theirs.index) {
18702 ret.index = mine.index || theirs.index;
18703 }
18704
18705 if (mine.newFileName || theirs.newFileName) {
18706 if (!fileNameChanged(mine)) {
18707 // No header or no change in ours, use theirs (and ours if theirs does not exist)
18708 ret.oldFileName = theirs.oldFileName || mine.oldFileName;
18709 ret.newFileName = theirs.newFileName || mine.newFileName;
18710 ret.oldHeader = theirs.oldHeader || mine.oldHeader;
18711 ret.newHeader = theirs.newHeader || mine.newHeader;
18712 } else if (!fileNameChanged(theirs)) {
18713 // No header or no change in theirs, use ours
18714 ret.oldFileName = mine.oldFileName;
18715 ret.newFileName = mine.newFileName;
18716 ret.oldHeader = mine.oldHeader;
18717 ret.newHeader = mine.newHeader;
18718 } else {
18719 // Both changed... figure it out
18720 ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
18721 ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
18722 ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
18723 ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
18724 }
18725 }
18726
18727 ret.hunks = [];
18728 var mineIndex = 0,
18729 theirsIndex = 0,
18730 mineOffset = 0,
18731 theirsOffset = 0;
18732
18733 while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
18734 var mineCurrent = mine.hunks[mineIndex] || {
18735 oldStart: Infinity
18736 },
18737 theirsCurrent = theirs.hunks[theirsIndex] || {
18738 oldStart: Infinity
18739 };
18740
18741 if (hunkBefore(mineCurrent, theirsCurrent)) {
18742 // This patch does not overlap with any of the others, yay.
18743 ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
18744 mineIndex++;
18745 theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
18746 } else if (hunkBefore(theirsCurrent, mineCurrent)) {
18747 // This patch does not overlap with any of the others, yay.
18748 ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
18749 theirsIndex++;
18750 mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
18751 } else {
18752 // Overlap, merge as best we can
18753 var mergedHunk = {
18754 oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
18755 oldLines: 0,
18756 newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
18757 newLines: 0,
18758 lines: []
18759 };
18760 mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
18761 theirsIndex++;
18762 mineIndex++;
18763 ret.hunks.push(mergedHunk);
18764 }
18765 }
18766
18767 return ret;
18768 }
18769
18770 function loadPatch(param, base) {
18771 if (typeof param === 'string') {
18772 if (/^@@/m.test(param) || /^Index:/m.test(param)) {
18773 return parsePatch(param)[0];
18774 }
18775
18776 if (!base) {
18777 throw new Error('Must provide a base reference or pass in a patch');
18778 }
18779
18780 return structuredPatch(undefined, undefined, base, param);
18781 }
18782
18783 return param;
18784 }
18785
18786 function fileNameChanged(patch) {
18787 return patch.newFileName && patch.newFileName !== patch.oldFileName;
18788 }
18789
18790 function selectField(index, mine, theirs) {
18791 if (mine === theirs) {
18792 return mine;
18793 } else {
18794 index.conflict = true;
18795 return {
18796 mine: mine,
18797 theirs: theirs
18798 };
18799 }
18800 }
18801
18802 function hunkBefore(test, check) {
18803 return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
18804 }
18805
18806 function cloneHunk(hunk, offset) {
18807 return {
18808 oldStart: hunk.oldStart,
18809 oldLines: hunk.oldLines,
18810 newStart: hunk.newStart + offset,
18811 newLines: hunk.newLines,
18812 lines: hunk.lines
18813 };
18814 }
18815
18816 function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
18817 // This will generally result in a conflicted hunk, but there are cases where the context
18818 // is the only overlap where we can successfully merge the content here.
18819 var mine = {
18820 offset: mineOffset,
18821 lines: mineLines,
18822 index: 0
18823 },
18824 their = {
18825 offset: theirOffset,
18826 lines: theirLines,
18827 index: 0
18828 }; // Handle any leading content
18829
18830 insertLeading(hunk, mine, their);
18831 insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.
18832
18833 while (mine.index < mine.lines.length && their.index < their.lines.length) {
18834 var mineCurrent = mine.lines[mine.index],
18835 theirCurrent = their.lines[their.index];
18836
18837 if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
18838 // Both modified ...
18839 mutualChange(hunk, mine, their);
18840 } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
18841 var _hunk$lines;
18842
18843 // Mine inserted
18844 (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));
18845 } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
18846 var _hunk$lines2;
18847
18848 // Theirs inserted
18849 (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));
18850 } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
18851 // Mine removed or edited
18852 removal(hunk, mine, their);
18853 } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
18854 // Their removed or edited
18855 removal(hunk, their, mine, true);
18856 } else if (mineCurrent === theirCurrent) {
18857 // Context identity
18858 hunk.lines.push(mineCurrent);
18859 mine.index++;
18860 their.index++;
18861 } else {
18862 // Context mismatch
18863 conflict(hunk, collectChange(mine), collectChange(their));
18864 }
18865 } // Now push anything that may be remaining
18866
18867
18868 insertTrailing(hunk, mine);
18869 insertTrailing(hunk, their);
18870 calcLineCount(hunk);
18871 }
18872
18873 function mutualChange(hunk, mine, their) {
18874 var myChanges = collectChange(mine),
18875 theirChanges = collectChange(their);
18876
18877 if (allRemoves(myChanges) && allRemoves(theirChanges)) {
18878 // Special case for remove changes that are supersets of one another
18879 if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
18880 var _hunk$lines3;
18881
18882 (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));
18883
18884 return;
18885 } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
18886 var _hunk$lines4;
18887
18888 (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));
18889
18890 return;
18891 }
18892 } else if (arrayEqual(myChanges, theirChanges)) {
18893 var _hunk$lines5;
18894
18895 (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));
18896
18897 return;
18898 }
18899
18900 conflict(hunk, myChanges, theirChanges);
18901 }
18902
18903 function removal(hunk, mine, their, swap) {
18904 var myChanges = collectChange(mine),
18905 theirChanges = collectContext(their, myChanges);
18906
18907 if (theirChanges.merged) {
18908 var _hunk$lines6;
18909
18910 (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));
18911 } else {
18912 conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
18913 }
18914 }
18915
18916 function conflict(hunk, mine, their) {
18917 hunk.conflict = true;
18918 hunk.lines.push({
18919 conflict: true,
18920 mine: mine,
18921 theirs: their
18922 });
18923 }
18924
18925 function insertLeading(hunk, insert, their) {
18926 while (insert.offset < their.offset && insert.index < insert.lines.length) {
18927 var line = insert.lines[insert.index++];
18928 hunk.lines.push(line);
18929 insert.offset++;
18930 }
18931 }
18932
18933 function insertTrailing(hunk, insert) {
18934 while (insert.index < insert.lines.length) {
18935 var line = insert.lines[insert.index++];
18936 hunk.lines.push(line);
18937 }
18938 }
18939
18940 function collectChange(state) {
18941 var ret = [],
18942 operation = state.lines[state.index][0];
18943
18944 while (state.index < state.lines.length) {
18945 var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
18946
18947 if (operation === '-' && line[0] === '+') {
18948 operation = '+';
18949 }
18950
18951 if (operation === line[0]) {
18952 ret.push(line);
18953 state.index++;
18954 } else {
18955 break;
18956 }
18957 }
18958
18959 return ret;
18960 }
18961
18962 function collectContext(state, matchChanges) {
18963 var changes = [],
18964 merged = [],
18965 matchIndex = 0,
18966 contextChanges = false,
18967 conflicted = false;
18968
18969 while (matchIndex < matchChanges.length && state.index < state.lines.length) {
18970 var change = state.lines[state.index],
18971 match = matchChanges[matchIndex]; // Once we've hit our add, then we are done
18972
18973 if (match[0] === '+') {
18974 break;
18975 }
18976
18977 contextChanges = contextChanges || change[0] !== ' ';
18978 merged.push(match);
18979 matchIndex++; // Consume any additions in the other block as a conflict to attempt
18980 // to pull in the remaining context after this
18981
18982 if (change[0] === '+') {
18983 conflicted = true;
18984
18985 while (change[0] === '+') {
18986 changes.push(change);
18987 change = state.lines[++state.index];
18988 }
18989 }
18990
18991 if (match.substr(1) === change.substr(1)) {
18992 changes.push(change);
18993 state.index++;
18994 } else {
18995 conflicted = true;
18996 }
18997 }
18998
18999 if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
19000 conflicted = true;
19001 }
19002
19003 if (conflicted) {
19004 return changes;
19005 }
19006
19007 while (matchIndex < matchChanges.length) {
19008 merged.push(matchChanges[matchIndex++]);
19009 }
19010
19011 return {
19012 merged: merged,
19013 changes: changes
19014 };
19015 }
19016
19017 function allRemoves(changes) {
19018 return changes.reduce(function (prev, change) {
19019 return prev && change[0] === '-';
19020 }, true);
19021 }
19022
19023 function skipRemoveSuperset(state, removeChanges, delta) {
19024 for (var i = 0; i < delta; i++) {
19025 var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
19026
19027 if (state.lines[state.index + i] !== ' ' + changeContent) {
19028 return false;
19029 }
19030 }
19031
19032 state.index += delta;
19033 return true;
19034 }
19035
19036 function calcOldNewLineCount(lines) {
19037 var oldLines = 0;
19038 var newLines = 0;
19039 lines.forEach(function (line) {
19040 if (typeof line !== 'string') {
19041 var myCount = calcOldNewLineCount(line.mine);
19042 var theirCount = calcOldNewLineCount(line.theirs);
19043
19044 if (oldLines !== undefined) {
19045 if (myCount.oldLines === theirCount.oldLines) {
19046 oldLines += myCount.oldLines;
19047 } else {
19048 oldLines = undefined;
19049 }
19050 }
19051
19052 if (newLines !== undefined) {
19053 if (myCount.newLines === theirCount.newLines) {
19054 newLines += myCount.newLines;
19055 } else {
19056 newLines = undefined;
19057 }
19058 }
19059 } else {
19060 if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
19061 newLines++;
19062 }
19063
19064 if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
19065 oldLines++;
19066 }
19067 }
19068 });
19069 return {
19070 oldLines: oldLines,
19071 newLines: newLines
19072 };
19073 }
19074
19075 // See: http://code.google.com/p/google-diff-match-patch/wiki/API
19076 function convertChangesToDMP(changes) {
19077 var ret = [],
19078 change,
19079 operation;
19080
19081 for (var i = 0; i < changes.length; i++) {
19082 change = changes[i];
19083
19084 if (change.added) {
19085 operation = 1;
19086 } else if (change.removed) {
19087 operation = -1;
19088 } else {
19089 operation = 0;
19090 }
19091
19092 ret.push([operation, change.value]);
19093 }
19094
19095 return ret;
19096 }
19097
19098 function convertChangesToXML(changes) {
19099 var ret = [];
19100
19101 for (var i = 0; i < changes.length; i++) {
19102 var change = changes[i];
19103
19104 if (change.added) {
19105 ret.push('<ins>');
19106 } else if (change.removed) {
19107 ret.push('<del>');
19108 }
19109
19110 ret.push(escapeHTML(change.value));
19111
19112 if (change.added) {
19113 ret.push('</ins>');
19114 } else if (change.removed) {
19115 ret.push('</del>');
19116 }
19117 }
19118
19119 return ret.join('');
19120 }
19121
19122 function escapeHTML(s) {
19123 var n = s;
19124 n = n.replace(/&/g, '&amp;');
19125 n = n.replace(/</g, '&lt;');
19126 n = n.replace(/>/g, '&gt;');
19127 n = n.replace(/"/g, '&quot;');
19128 return n;
19129 }
19130
19131
19132
19133
19134 /***/ }),
19135
19136 /***/ "../node_modules/hast-util-whitespace/index.js":
19137 /*!*****************************************************!*\
19138 !*** ../node_modules/hast-util-whitespace/index.js ***!
19139 \*****************************************************/
19140 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19141
19142 "use strict";
19143 __webpack_require__.r(__webpack_exports__);
19144 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19145 /* harmony export */ whitespace: () => (/* binding */ whitespace)
19146 /* harmony export */ });
19147 /**
19148 * Check if the given value is *inter-element whitespace*.
19149 *
19150 * @param {unknown} thing
19151 * Thing to check (typically `Node` or `string`).
19152 * @returns {boolean}
19153 * Whether the `value` is inter-element whitespace (`boolean`): consisting of
19154 * zero or more of space, tab (`\t`), line feed (`\n`), carriage return
19155 * (`\r`), or form feed (`\f`).
19156 * If a node is passed it must be a `Text` node, whose `value` field is
19157 * checked.
19158 */
19159 function whitespace(thing) {
19160 /** @type {string} */
19161 const value =
19162 // @ts-expect-error looks like a node.
19163 thing && typeof thing === 'object' && thing.type === 'text'
19164 ? // @ts-expect-error looks like a text.
19165 thing.value || ''
19166 : thing
19167
19168 // HTML whitespace expression.
19169 // See <https://infra.spec.whatwg.org/#ascii-whitespace>.
19170 return typeof value === 'string' && value.replace(/[ \t\n\f\r]/g, '') === ''
19171 }
19172
19173
19174 /***/ }),
19175
19176 /***/ "../node_modules/is-plain-obj/index.js":
19177 /*!*********************************************!*\
19178 !*** ../node_modules/is-plain-obj/index.js ***!
19179 \*********************************************/
19180 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19181
19182 "use strict";
19183 __webpack_require__.r(__webpack_exports__);
19184 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19185 /* harmony export */ "default": () => (/* binding */ isPlainObject)
19186 /* harmony export */ });
19187 function isPlainObject(value) {
19188 if (typeof value !== 'object' || value === null) {
19189 return false;
19190 }
19191
19192 const prototype = Object.getPrototypeOf(value);
19193 return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
19194 }
19195
19196
19197 /***/ }),
19198
19199 /***/ "../node_modules/mdast-util-definitions/lib/index.js":
19200 /*!***********************************************************!*\
19201 !*** ../node_modules/mdast-util-definitions/lib/index.js ***!
19202 \***********************************************************/
19203 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19204
19205 "use strict";
19206 __webpack_require__.r(__webpack_exports__);
19207 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19208 /* harmony export */ definitions: () => (/* binding */ definitions)
19209 /* harmony export */ });
19210 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
19211 /**
19212 * @typedef {import('mdast').Root} Root
19213 * @typedef {import('mdast').Content} Content
19214 * @typedef {import('mdast').Definition} Definition
19215 */
19216
19217 /**
19218 * @typedef {Root | Content} Node
19219 *
19220 * @callback GetDefinition
19221 * Get a definition by identifier.
19222 * @param {string | null | undefined} [identifier]
19223 * Identifier of definition.
19224 * @returns {Definition | null}
19225 * Definition corresponding to `identifier` or `null`.
19226 */
19227
19228
19229
19230 const own = {}.hasOwnProperty
19231
19232 /**
19233 * Find definitions in `tree`.
19234 *
19235 * Uses CommonMark precedence, which means that earlier definitions are
19236 * preferred over duplicate later definitions.
19237 *
19238 * @param {Node} tree
19239 * Tree to check.
19240 * @returns {GetDefinition}
19241 * Getter.
19242 */
19243 function definitions(tree) {
19244 /** @type {Record<string, Definition>} */
19245 const cache = Object.create(null)
19246
19247 if (!tree || !tree.type) {
19248 throw new Error('mdast-util-definitions expected node')
19249 }
19250
19251 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'definition', (definition) => {
19252 const id = clean(definition.identifier)
19253 if (id && !own.call(cache, id)) {
19254 cache[id] = definition
19255 }
19256 })
19257
19258 return definition
19259
19260 /** @type {GetDefinition} */
19261 function definition(identifier) {
19262 const id = clean(identifier)
19263 // To do: next major: return `undefined` when not found.
19264 return id && own.call(cache, id) ? cache[id] : null
19265 }
19266 }
19267
19268 /**
19269 * @param {string | null | undefined} [value]
19270 * @returns {string}
19271 */
19272 function clean(value) {
19273 return String(value || '').toUpperCase()
19274 }
19275
19276
19277 /***/ }),
19278
19279 /***/ "../node_modules/mdast-util-from-markdown/dev/lib/index.js":
19280 /*!*****************************************************************!*\
19281 !*** ../node_modules/mdast-util-from-markdown/dev/lib/index.js ***!
19282 \*****************************************************************/
19283 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19284
19285 "use strict";
19286 __webpack_require__.r(__webpack_exports__);
19287 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19288 /* harmony export */ fromMarkdown: () => (/* binding */ fromMarkdown)
19289 /* harmony export */ });
19290 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
19291 /* 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");
19292 /* harmony import */ var micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark/lib/parse.js */ "../node_modules/micromark/dev/lib/parse.js");
19293 /* harmony import */ var micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark/lib/preprocess.js */ "../node_modules/micromark/dev/lib/preprocess.js");
19294 /* harmony import */ var micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark/lib/postprocess.js */ "../node_modules/micromark/dev/lib/postprocess.js");
19295 /* 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");
19296 /* 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");
19297 /* 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");
19298 /* 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");
19299 /* 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");
19300 /* 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");
19301 /* 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");
19302 /* 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");
19303 /**
19304 * @typedef {import('micromark-util-types').Encoding} Encoding
19305 * @typedef {import('micromark-util-types').Event} Event
19306 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
19307 * @typedef {import('micromark-util-types').Token} Token
19308 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
19309 * @typedef {import('micromark-util-types').Value} Value
19310 *
19311 * @typedef {import('unist').Parent} UnistParent
19312 * @typedef {import('unist').Point} Point
19313 *
19314 * @typedef {import('mdast').PhrasingContent} PhrasingContent
19315 * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
19316 * @typedef {import('mdast').Content} Content
19317 * @typedef {import('mdast').Break} Break
19318 * @typedef {import('mdast').Blockquote} Blockquote
19319 * @typedef {import('mdast').Code} Code
19320 * @typedef {import('mdast').Definition} Definition
19321 * @typedef {import('mdast').Emphasis} Emphasis
19322 * @typedef {import('mdast').Heading} Heading
19323 * @typedef {import('mdast').HTML} HTML
19324 * @typedef {import('mdast').Image} Image
19325 * @typedef {import('mdast').ImageReference} ImageReference
19326 * @typedef {import('mdast').InlineCode} InlineCode
19327 * @typedef {import('mdast').Link} Link
19328 * @typedef {import('mdast').LinkReference} LinkReference
19329 * @typedef {import('mdast').List} List
19330 * @typedef {import('mdast').ListItem} ListItem
19331 * @typedef {import('mdast').Paragraph} Paragraph
19332 * @typedef {import('mdast').Root} Root
19333 * @typedef {import('mdast').Strong} Strong
19334 * @typedef {import('mdast').Text} Text
19335 * @typedef {import('mdast').ThematicBreak} ThematicBreak
19336 * @typedef {import('mdast').ReferenceType} ReferenceType
19337 * @typedef {import('../index.js').CompileData} CompileData
19338 */
19339
19340 /**
19341 * @typedef {Root | Content} Node
19342 * @typedef {Extract<Node, UnistParent>} Parent
19343 *
19344 * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment
19345 */
19346
19347 /**
19348 * @callback Transform
19349 * Extra transform, to change the AST afterwards.
19350 * @param {Root} tree
19351 * Tree to transform.
19352 * @returns {Root | undefined | null | void}
19353 * New tree or nothing (in which case the current tree is used).
19354 *
19355 * @callback Handle
19356 * Handle a token.
19357 * @param {CompileContext} this
19358 * Context.
19359 * @param {Token} token
19360 * Current token.
19361 * @returns {void}
19362 * Nothing.
19363 *
19364 * @typedef {Record<string, Handle>} Handles
19365 * Token types mapping to handles
19366 *
19367 * @callback OnEnterError
19368 * Handle the case where the `right` token is open, but it is closed (by the
19369 * `left` token) or because we reached the end of the document.
19370 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19371 * Context.
19372 * @param {Token | undefined} left
19373 * Left token.
19374 * @param {Token} right
19375 * Right token.
19376 * @returns {void}
19377 * Nothing.
19378 *
19379 * @callback OnExitError
19380 * Handle the case where the `right` token is open but it is closed by
19381 * exiting the `left` token.
19382 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19383 * Context.
19384 * @param {Token} left
19385 * Left token.
19386 * @param {Token} right
19387 * Right token.
19388 * @returns {void}
19389 * Nothing.
19390 *
19391 * @typedef {[Token, OnEnterError | undefined]} TokenTuple
19392 * Open token on the stack, with an optional error handler for when
19393 * that token isn’t closed properly.
19394 */
19395
19396 /**
19397 * @typedef Config
19398 * Configuration.
19399 *
19400 * We have our defaults, but extensions will add more.
19401 * @property {Array<string>} canContainEols
19402 * Token types where line endings are used.
19403 * @property {Handles} enter
19404 * Opening handles.
19405 * @property {Handles} exit
19406 * Closing handles.
19407 * @property {Array<Transform>} transforms
19408 * Tree transforms.
19409 *
19410 * @typedef {Partial<Config>} Extension
19411 * Change how markdown tokens from micromark are turned into mdast.
19412 *
19413 * @typedef CompileContext
19414 * mdast compiler context.
19415 * @property {Array<Node | Fragment>} stack
19416 * Stack of nodes.
19417 * @property {Array<TokenTuple>} tokenStack
19418 * Stack of tokens.
19419 * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData
19420 * Get data from the key/value store.
19421 * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData
19422 * Set data into the key/value store.
19423 * @property {(this: CompileContext) => void} buffer
19424 * Capture some of the output data.
19425 * @property {(this: CompileContext) => string} resume
19426 * Stop capturing and access the output data.
19427 * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
19428 * Enter a token.
19429 * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
19430 * Exit a token.
19431 * @property {TokenizeContext['sliceSerialize']} sliceSerialize
19432 * Get the string value of a token.
19433 * @property {Config} config
19434 * Configuration.
19435 *
19436 * @typedef FromMarkdownOptions
19437 * Configuration for how to build mdast.
19438 * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]
19439 * Extensions for this utility to change how tokens are turned into a tree.
19440 *
19441 * @typedef {ParseOptions & FromMarkdownOptions} Options
19442 * Configuration.
19443 */
19444
19445 // To do: micromark: create a registry of tokens?
19446 // To do: next major: don’t return given `Node` from `enter`.
19447 // To do: next major: remove setter/getter.
19448
19449
19450
19451
19452
19453
19454
19455
19456
19457
19458
19459
19460
19461
19462
19463 const own = {}.hasOwnProperty
19464
19465 /**
19466 * @param value
19467 * Markdown to parse.
19468 * @param encoding
19469 * Character encoding for when `value` is `Buffer`.
19470 * @param options
19471 * Configuration.
19472 * @returns
19473 * mdast tree.
19474 */
19475 const fromMarkdown =
19476 /**
19477 * @type {(
19478 * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
19479 * ((value: Value, options?: Options | null | undefined) => Root)
19480 * )}
19481 */
19482 (
19483 /**
19484 * @param {Value} value
19485 * @param {Encoding | Options | null | undefined} [encoding]
19486 * @param {Options | null | undefined} [options]
19487 * @returns {Root}
19488 */
19489 function (value, encoding, options) {
19490 if (typeof encoding !== 'string') {
19491 options = encoding
19492 encoding = undefined
19493 }
19494
19495 return compiler(options)(
19496 (0,micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__.postprocess)(
19497 (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))
19498 )
19499 )
19500 }
19501 )
19502
19503 /**
19504 * Note this compiler only understand complete buffering, not streaming.
19505 *
19506 * @param {Options | null | undefined} [options]
19507 */
19508 function compiler(options) {
19509 /** @type {Config} */
19510 const config = {
19511 transforms: [],
19512 canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
19513 enter: {
19514 autolink: opener(link),
19515 autolinkProtocol: onenterdata,
19516 autolinkEmail: onenterdata,
19517 atxHeading: opener(heading),
19518 blockQuote: opener(blockQuote),
19519 characterEscape: onenterdata,
19520 characterReference: onenterdata,
19521 codeFenced: opener(codeFlow),
19522 codeFencedFenceInfo: buffer,
19523 codeFencedFenceMeta: buffer,
19524 codeIndented: opener(codeFlow, buffer),
19525 codeText: opener(codeText, buffer),
19526 codeTextData: onenterdata,
19527 data: onenterdata,
19528 codeFlowValue: onenterdata,
19529 definition: opener(definition),
19530 definitionDestinationString: buffer,
19531 definitionLabelString: buffer,
19532 definitionTitleString: buffer,
19533 emphasis: opener(emphasis),
19534 hardBreakEscape: opener(hardBreak),
19535 hardBreakTrailing: opener(hardBreak),
19536 htmlFlow: opener(html, buffer),
19537 htmlFlowData: onenterdata,
19538 htmlText: opener(html, buffer),
19539 htmlTextData: onenterdata,
19540 image: opener(image),
19541 label: buffer,
19542 link: opener(link),
19543 listItem: opener(listItem),
19544 listItemValue: onenterlistitemvalue,
19545 listOrdered: opener(list, onenterlistordered),
19546 listUnordered: opener(list),
19547 paragraph: opener(paragraph),
19548 reference: onenterreference,
19549 referenceString: buffer,
19550 resourceDestinationString: buffer,
19551 resourceTitleString: buffer,
19552 setextHeading: opener(heading),
19553 strong: opener(strong),
19554 thematicBreak: opener(thematicBreak)
19555 },
19556 exit: {
19557 atxHeading: closer(),
19558 atxHeadingSequence: onexitatxheadingsequence,
19559 autolink: closer(),
19560 autolinkEmail: onexitautolinkemail,
19561 autolinkProtocol: onexitautolinkprotocol,
19562 blockQuote: closer(),
19563 characterEscapeValue: onexitdata,
19564 characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
19565 characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
19566 characterReferenceValue: onexitcharacterreferencevalue,
19567 codeFenced: closer(onexitcodefenced),
19568 codeFencedFence: onexitcodefencedfence,
19569 codeFencedFenceInfo: onexitcodefencedfenceinfo,
19570 codeFencedFenceMeta: onexitcodefencedfencemeta,
19571 codeFlowValue: onexitdata,
19572 codeIndented: closer(onexitcodeindented),
19573 codeText: closer(onexitcodetext),
19574 codeTextData: onexitdata,
19575 data: onexitdata,
19576 definition: closer(),
19577 definitionDestinationString: onexitdefinitiondestinationstring,
19578 definitionLabelString: onexitdefinitionlabelstring,
19579 definitionTitleString: onexitdefinitiontitlestring,
19580 emphasis: closer(),
19581 hardBreakEscape: closer(onexithardbreak),
19582 hardBreakTrailing: closer(onexithardbreak),
19583 htmlFlow: closer(onexithtmlflow),
19584 htmlFlowData: onexitdata,
19585 htmlText: closer(onexithtmltext),
19586 htmlTextData: onexitdata,
19587 image: closer(onexitimage),
19588 label: onexitlabel,
19589 labelText: onexitlabeltext,
19590 lineEnding: onexitlineending,
19591 link: closer(onexitlink),
19592 listItem: closer(),
19593 listOrdered: closer(),
19594 listUnordered: closer(),
19595 paragraph: closer(),
19596 referenceString: onexitreferencestring,
19597 resourceDestinationString: onexitresourcedestinationstring,
19598 resourceTitleString: onexitresourcetitlestring,
19599 resource: onexitresource,
19600 setextHeading: closer(onexitsetextheading),
19601 setextHeadingLineSequence: onexitsetextheadinglinesequence,
19602 setextHeadingText: onexitsetextheadingtext,
19603 strong: closer(),
19604 thematicBreak: closer()
19605 }
19606 }
19607
19608 configure(config, (options || {}).mdastExtensions || [])
19609
19610 /** @type {CompileData} */
19611 const data = {}
19612
19613 return compile
19614
19615 /**
19616 * Turn micromark events into an mdast tree.
19617 *
19618 * @param {Array<Event>} events
19619 * Events.
19620 * @returns {Root}
19621 * mdast tree.
19622 */
19623 function compile(events) {
19624 /** @type {Root} */
19625 let tree = {type: 'root', children: []}
19626 /** @type {Omit<CompileContext, 'sliceSerialize'>} */
19627 const context = {
19628 stack: [tree],
19629 tokenStack: [],
19630 config,
19631 enter,
19632 exit,
19633 buffer,
19634 resume,
19635 setData,
19636 getData
19637 }
19638 /** @type {Array<number>} */
19639 const listStack = []
19640 let index = -1
19641
19642 while (++index < events.length) {
19643 // We preprocess lists to add `listItem` tokens, and to infer whether
19644 // items the list itself are spread out.
19645 if (
19646 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19647 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered
19648 ) {
19649 if (events[index][0] === 'enter') {
19650 listStack.push(index)
19651 } else {
19652 const tail = listStack.pop()
19653 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tail === 'number', 'expected list ot be open')
19654 index = prepareList(events, tail, index)
19655 }
19656 }
19657 }
19658
19659 index = -1
19660
19661 while (++index < events.length) {
19662 const handler = config[events[index][0]]
19663
19664 if (own.call(handler, events[index][1].type)) {
19665 handler[events[index][1].type].call(
19666 Object.assign(
19667 {sliceSerialize: events[index][2].sliceSerialize},
19668 context
19669 ),
19670 events[index][1]
19671 )
19672 }
19673 }
19674
19675 // Handle tokens still being open.
19676 if (context.tokenStack.length > 0) {
19677 const tail = context.tokenStack[context.tokenStack.length - 1]
19678 const handler = tail[1] || defaultOnError
19679 handler.call(context, undefined, tail[0])
19680 }
19681
19682 // Figure out `root` position.
19683 tree.position = {
19684 start: point(
19685 events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}
19686 ),
19687 end: point(
19688 events.length > 0
19689 ? events[events.length - 2][1].end
19690 : {line: 1, column: 1, offset: 0}
19691 )
19692 }
19693
19694 // Call transforms.
19695 index = -1
19696 while (++index < config.transforms.length) {
19697 tree = config.transforms[index](tree) || tree
19698 }
19699
19700 return tree
19701 }
19702
19703 /**
19704 * @param {Array<Event>} events
19705 * @param {number} start
19706 * @param {number} length
19707 * @returns {number}
19708 */
19709 function prepareList(events, start, length) {
19710 let index = start - 1
19711 let containerBalance = -1
19712 let listSpread = false
19713 /** @type {Token | undefined} */
19714 let listItem
19715 /** @type {number | undefined} */
19716 let lineIndex
19717 /** @type {number | undefined} */
19718 let firstBlankLineIndex
19719 /** @type {boolean | undefined} */
19720 let atMarker
19721
19722 while (++index <= length) {
19723 const event = events[index]
19724
19725 if (
19726 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19727 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19728 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuote
19729 ) {
19730 if (event[0] === 'enter') {
19731 containerBalance++
19732 } else {
19733 containerBalance--
19734 }
19735
19736 atMarker = undefined
19737 } else if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank) {
19738 if (event[0] === 'enter') {
19739 if (
19740 listItem &&
19741 !atMarker &&
19742 !containerBalance &&
19743 !firstBlankLineIndex
19744 ) {
19745 firstBlankLineIndex = index
19746 }
19747
19748 atMarker = undefined
19749 }
19750 } else if (
19751 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19752 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemValue ||
19753 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemMarker ||
19754 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix ||
19755 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefixWhitespace
19756 ) {
19757 // Empty.
19758 } else {
19759 atMarker = undefined
19760 }
19761
19762 if (
19763 (!containerBalance &&
19764 event[0] === 'enter' &&
19765 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) ||
19766 (containerBalance === -1 &&
19767 event[0] === 'exit' &&
19768 (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
19769 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered))
19770 ) {
19771 if (listItem) {
19772 let tailIndex = index
19773 lineIndex = undefined
19774
19775 while (tailIndex--) {
19776 const tailEvent = events[tailIndex]
19777
19778 if (
19779 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding ||
19780 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19781 ) {
19782 if (tailEvent[0] === 'exit') continue
19783
19784 if (lineIndex) {
19785 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
19786 listSpread = true
19787 }
19788
19789 tailEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding
19790 lineIndex = tailIndex
19791 } else if (
19792 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
19793 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefix ||
19794 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefixWhitespace ||
19795 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuoteMarker ||
19796 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemIndent
19797 ) {
19798 // Empty
19799 } else {
19800 break
19801 }
19802 }
19803
19804 if (
19805 firstBlankLineIndex &&
19806 (!lineIndex || firstBlankLineIndex < lineIndex)
19807 ) {
19808 listItem._spread = true
19809 }
19810
19811 // Fix position.
19812 listItem.end = Object.assign(
19813 {},
19814 lineIndex ? events[lineIndex][1].start : event[1].end
19815 )
19816
19817 events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])
19818 index++
19819 length++
19820 }
19821
19822 // Create a new list item.
19823 if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) {
19824 listItem = {
19825 type: 'listItem',
19826 _spread: false,
19827 start: Object.assign({}, event[1].start),
19828 // @ts-expect-error: we’ll add `end` in a second.
19829 end: undefined
19830 }
19831 // @ts-expect-error: `listItem` is most definitely defined, TS...
19832 events.splice(index, 0, ['enter', listItem, event[2]])
19833 index++
19834 length++
19835 firstBlankLineIndex = undefined
19836 atMarker = true
19837 }
19838 }
19839 }
19840
19841 events[start][1]._spread = listSpread
19842 return length
19843 }
19844
19845 /**
19846 * Set data.
19847 *
19848 * @template {keyof CompileData} Key
19849 * Field type.
19850 * @param {Key} key
19851 * Key of field.
19852 * @param {CompileData[Key]} [value]
19853 * New value.
19854 * @returns {void}
19855 * Nothing.
19856 */
19857 function setData(key, value) {
19858 data[key] = value
19859 }
19860
19861 /**
19862 * Get data.
19863 *
19864 * @template {keyof CompileData} Key
19865 * Field type.
19866 * @param {Key} key
19867 * Key of field.
19868 * @returns {CompileData[Key]}
19869 * Value.
19870 */
19871 function getData(key) {
19872 return data[key]
19873 }
19874
19875 /**
19876 * Create an opener handle.
19877 *
19878 * @param {(token: Token) => Node} create
19879 * Create a node.
19880 * @param {Handle} [and]
19881 * Optional function to also run.
19882 * @returns {Handle}
19883 * Handle.
19884 */
19885 function opener(create, and) {
19886 return open
19887
19888 /**
19889 * @this {CompileContext}
19890 * @param {Token} token
19891 * @returns {void}
19892 */
19893 function open(token) {
19894 enter.call(this, create(token), token)
19895 if (and) and.call(this, token)
19896 }
19897 }
19898
19899 /**
19900 * @this {CompileContext}
19901 * @returns {void}
19902 */
19903 function buffer() {
19904 this.stack.push({type: 'fragment', children: []})
19905 }
19906
19907 /**
19908 * @template {Node} Kind
19909 * Node type.
19910 * @this {CompileContext}
19911 * Context.
19912 * @param {Kind} node
19913 * Node to enter.
19914 * @param {Token} token
19915 * Corresponding token.
19916 * @param {OnEnterError | undefined} [errorHandler]
19917 * Handle the case where this token is open, but it is closed by something else.
19918 * @returns {Kind}
19919 * The given node.
19920 */
19921 function enter(node, token, errorHandler) {
19922 const parent = this.stack[this.stack.length - 1]
19923 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(parent, 'expected `parent`')
19924 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in parent, 'expected `parent`')
19925 // @ts-expect-error: Assume `Node` can exist as a child of `parent`.
19926 parent.children.push(node)
19927 this.stack.push(node)
19928 this.tokenStack.push([token, errorHandler])
19929 // @ts-expect-error: `end` will be patched later.
19930 node.position = {start: point(token.start)}
19931 return node
19932 }
19933
19934 /**
19935 * Create a closer handle.
19936 *
19937 * @param {Handle} [and]
19938 * Optional function to also run.
19939 * @returns {Handle}
19940 * Handle.
19941 */
19942 function closer(and) {
19943 return close
19944
19945 /**
19946 * @this {CompileContext}
19947 * @param {Token} token
19948 * @returns {void}
19949 */
19950 function close(token) {
19951 if (and) and.call(this, token)
19952 exit.call(this, token)
19953 }
19954 }
19955
19956 /**
19957 * @this {CompileContext}
19958 * Context.
19959 * @param {Token} token
19960 * Corresponding token.
19961 * @param {OnExitError | undefined} [onExitError]
19962 * Handle the case where another token is open.
19963 * @returns {Node}
19964 * The closed node.
19965 */
19966 function exit(token, onExitError) {
19967 const node = this.stack.pop()
19968 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected `node`')
19969 const open = this.tokenStack.pop()
19970
19971 if (!open) {
19972 throw new Error(
19973 'Cannot close `' +
19974 token.type +
19975 '` (' +
19976 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: token.start, end: token.end}) +
19977 '): it’s not open'
19978 )
19979 } else if (open[0].type !== token.type) {
19980 if (onExitError) {
19981 onExitError.call(this, token, open[0])
19982 } else {
19983 const handler = open[1] || defaultOnError
19984 handler.call(this, token, open[0])
19985 }
19986 }
19987
19988 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type !== 'fragment', 'unexpected fragment `exit`ed')
19989 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.position, 'expected `position` to be defined')
19990 node.position.end = point(token.end)
19991 return node
19992 }
19993
19994 /**
19995 * @this {CompileContext}
19996 * @returns {string}
19997 */
19998 function resume() {
19999 return (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__.toString)(this.stack.pop())
20000 }
20001
20002 //
20003 // Handlers.
20004 //
20005
20006 /**
20007 * @this {CompileContext}
20008 * @type {Handle}
20009 */
20010 function onenterlistordered() {
20011 setData('expectingFirstListItemValue', true)
20012 }
20013
20014 /**
20015 * @this {CompileContext}
20016 * @type {Handle}
20017 */
20018 function onenterlistitemvalue(token) {
20019 if (getData('expectingFirstListItemValue')) {
20020 const ancestor = this.stack[this.stack.length - 2]
20021 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected nodes on stack')
20022 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor.type === 'list', 'expected list on stack')
20023 ancestor.start = Number.parseInt(
20024 this.sliceSerialize(token),
20025 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20026 )
20027 setData('expectingFirstListItemValue')
20028 }
20029 }
20030
20031 /**
20032 * @this {CompileContext}
20033 * @type {Handle}
20034 */
20035 function onexitcodefencedfenceinfo() {
20036 const data = this.resume()
20037 const node = this.stack[this.stack.length - 1]
20038 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20039 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20040 node.lang = data
20041 }
20042
20043 /**
20044 * @this {CompileContext}
20045 * @type {Handle}
20046 */
20047 function onexitcodefencedfencemeta() {
20048 const data = this.resume()
20049 const node = this.stack[this.stack.length - 1]
20050 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20051 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20052 node.meta = data
20053 }
20054
20055 /**
20056 * @this {CompileContext}
20057 * @type {Handle}
20058 */
20059 function onexitcodefencedfence() {
20060 // Exit if this is the closing fence.
20061 if (getData('flowCodeInside')) return
20062 this.buffer()
20063 setData('flowCodeInside', true)
20064 }
20065
20066 /**
20067 * @this {CompileContext}
20068 * @type {Handle}
20069 */
20070 function onexitcodefenced() {
20071 const data = this.resume()
20072 const node = this.stack[this.stack.length - 1]
20073 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20074 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20075
20076 node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
20077 setData('flowCodeInside')
20078 }
20079
20080 /**
20081 * @this {CompileContext}
20082 * @type {Handle}
20083 */
20084 function onexitcodeindented() {
20085 const data = this.resume()
20086 const node = this.stack[this.stack.length - 1]
20087 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20088 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20089
20090 node.value = data.replace(/(\r?\n|\r)$/g, '')
20091 }
20092
20093 /**
20094 * @this {CompileContext}
20095 * @type {Handle}
20096 */
20097 function onexitdefinitionlabelstring(token) {
20098 const label = this.resume()
20099 const node = this.stack[this.stack.length - 1]
20100 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20101 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20102
20103 node.label = label
20104 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20105 this.sliceSerialize(token)
20106 ).toLowerCase()
20107 }
20108
20109 /**
20110 * @this {CompileContext}
20111 * @type {Handle}
20112 */
20113 function onexitdefinitiontitlestring() {
20114 const data = this.resume()
20115 const node = this.stack[this.stack.length - 1]
20116 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20117 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20118
20119 node.title = data
20120 }
20121
20122 /**
20123 * @this {CompileContext}
20124 * @type {Handle}
20125 */
20126 function onexitdefinitiondestinationstring() {
20127 const data = this.resume()
20128 const node = this.stack[this.stack.length - 1]
20129 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20130 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20131
20132 node.url = data
20133 }
20134
20135 /**
20136 * @this {CompileContext}
20137 * @type {Handle}
20138 */
20139 function onexitatxheadingsequence(token) {
20140 const node = this.stack[this.stack.length - 1]
20141 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20142 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20143
20144 if (!node.depth) {
20145 const depth = this.sliceSerialize(token).length
20146
20147 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20148 depth === 1 ||
20149 depth === 2 ||
20150 depth === 3 ||
20151 depth === 4 ||
20152 depth === 5 ||
20153 depth === 6,
20154 'expected `depth` between `1` and `6`'
20155 )
20156
20157 node.depth = depth
20158 }
20159 }
20160
20161 /**
20162 * @this {CompileContext}
20163 * @type {Handle}
20164 */
20165 function onexitsetextheadingtext() {
20166 setData('setextHeadingSlurpLineEnding', true)
20167 }
20168
20169 /**
20170 * @this {CompileContext}
20171 * @type {Handle}
20172 */
20173 function onexitsetextheadinglinesequence(token) {
20174 const node = this.stack[this.stack.length - 1]
20175 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20176 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20177
20178 node.depth =
20179 this.sliceSerialize(token).charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_9__.codes.equalsTo ? 1 : 2
20180 }
20181
20182 /**
20183 * @this {CompileContext}
20184 * @type {Handle}
20185 */
20186 function onexitsetextheading() {
20187 setData('setextHeadingSlurpLineEnding')
20188 }
20189
20190 /**
20191 * @this {CompileContext}
20192 * @type {Handle}
20193 */
20194
20195 function onenterdata(token) {
20196 const node = this.stack[this.stack.length - 1]
20197 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20198 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in node, 'expected parent on stack')
20199
20200 let tail = node.children[node.children.length - 1]
20201
20202 if (!tail || tail.type !== 'text') {
20203 // Add a new text node.
20204 tail = text()
20205 // @ts-expect-error: we’ll add `end` later.
20206 tail.position = {start: point(token.start)}
20207 // @ts-expect-error: Assume `parent` accepts `text`.
20208 node.children.push(tail)
20209 }
20210
20211 this.stack.push(tail)
20212 }
20213
20214 /**
20215 * @this {CompileContext}
20216 * @type {Handle}
20217 */
20218
20219 function onexitdata(token) {
20220 const tail = this.stack.pop()
20221 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected a `node` to be on the stack')
20222 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected a `literal` to be on the stack')
20223 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node` to have an open position')
20224 tail.value += this.sliceSerialize(token)
20225 tail.position.end = point(token.end)
20226 }
20227
20228 /**
20229 * @this {CompileContext}
20230 * @type {Handle}
20231 */
20232
20233 function onexitlineending(token) {
20234 const context = this.stack[this.stack.length - 1]
20235 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(context, 'expected `node`')
20236
20237 // If we’re at a hard break, include the line ending in there.
20238 if (getData('atHardBreak')) {
20239 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in context, 'expected `parent`')
20240 const tail = context.children[context.children.length - 1]
20241 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected tail to have a starting position')
20242 tail.position.end = point(token.end)
20243 setData('atHardBreak')
20244 return
20245 }
20246
20247 if (
20248 !getData('setextHeadingSlurpLineEnding') &&
20249 config.canContainEols.includes(context.type)
20250 ) {
20251 onenterdata.call(this, token)
20252 onexitdata.call(this, token)
20253 }
20254 }
20255
20256 /**
20257 * @this {CompileContext}
20258 * @type {Handle}
20259 */
20260
20261 function onexithardbreak() {
20262 setData('atHardBreak', true)
20263 }
20264
20265 /**
20266 * @this {CompileContext}
20267 * @type {Handle}
20268 */
20269
20270 function onexithtmlflow() {
20271 const data = this.resume()
20272 const node = this.stack[this.stack.length - 1]
20273 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20274 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20275
20276 node.value = data
20277 }
20278
20279 /**
20280 * @this {CompileContext}
20281 * @type {Handle}
20282 */
20283
20284 function onexithtmltext() {
20285 const data = this.resume()
20286 const node = this.stack[this.stack.length - 1]
20287 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20288 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20289
20290 node.value = data
20291 }
20292
20293 /**
20294 * @this {CompileContext}
20295 * @type {Handle}
20296 */
20297
20298 function onexitcodetext() {
20299 const data = this.resume()
20300 const node = this.stack[this.stack.length - 1]
20301 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20302 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'inlineCode', 'expected inline code on stack')
20303
20304 node.value = data
20305 }
20306
20307 /**
20308 * @this {CompileContext}
20309 * @type {Handle}
20310 */
20311
20312 function onexitlink() {
20313 const node = this.stack[this.stack.length - 1]
20314 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20315 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20316
20317 // Note: there are also `identifier` and `label` fields on this link node!
20318 // These are used / cleaned here.
20319
20320 // To do: clean.
20321 if (getData('inReference')) {
20322 /** @type {ReferenceType} */
20323 const referenceType = getData('referenceType') || 'shortcut'
20324
20325 node.type += 'Reference'
20326 // @ts-expect-error: mutate.
20327 node.referenceType = referenceType
20328 // @ts-expect-error: mutate.
20329 delete node.url
20330 delete node.title
20331 } else {
20332 // @ts-expect-error: mutate.
20333 delete node.identifier
20334 // @ts-expect-error: mutate.
20335 delete node.label
20336 }
20337
20338 setData('referenceType')
20339 }
20340
20341 /**
20342 * @this {CompileContext}
20343 * @type {Handle}
20344 */
20345
20346 function onexitimage() {
20347 const node = this.stack[this.stack.length - 1]
20348 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20349 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'image', 'expected image on stack')
20350
20351 // Note: there are also `identifier` and `label` fields on this link node!
20352 // These are used / cleaned here.
20353
20354 // To do: clean.
20355 if (getData('inReference')) {
20356 /** @type {ReferenceType} */
20357 const referenceType = getData('referenceType') || 'shortcut'
20358
20359 node.type += 'Reference'
20360 // @ts-expect-error: mutate.
20361 node.referenceType = referenceType
20362 // @ts-expect-error: mutate.
20363 delete node.url
20364 delete node.title
20365 } else {
20366 // @ts-expect-error: mutate.
20367 delete node.identifier
20368 // @ts-expect-error: mutate.
20369 delete node.label
20370 }
20371
20372 setData('referenceType')
20373 }
20374
20375 /**
20376 * @this {CompileContext}
20377 * @type {Handle}
20378 */
20379
20380 function onexitlabeltext(token) {
20381 const string = this.sliceSerialize(token)
20382 const ancestor = this.stack[this.stack.length - 2]
20383 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected ancestor on stack')
20384 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20385 ancestor.type === 'image' || ancestor.type === 'link',
20386 'expected image or link on stack'
20387 )
20388
20389 // @ts-expect-error: stash this on the node, as it might become a reference
20390 // later.
20391 ancestor.label = (0,micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__.decodeString)(string)
20392 // @ts-expect-error: same as above.
20393 ancestor.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(string).toLowerCase()
20394 }
20395
20396 /**
20397 * @this {CompileContext}
20398 * @type {Handle}
20399 */
20400
20401 function onexitlabel() {
20402 const fragment = this.stack[this.stack.length - 1]
20403 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment, 'expected node on stack')
20404 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment.type === 'fragment', 'expected fragment on stack')
20405 const value = this.resume()
20406 const node = this.stack[this.stack.length - 1]
20407 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20408 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20409 node.type === 'image' || node.type === 'link',
20410 'expected image or link on stack'
20411 )
20412
20413 // Assume a reference.
20414 setData('inReference', true)
20415
20416 if (node.type === 'link') {
20417 /** @type {Array<StaticPhrasingContent>} */
20418 // @ts-expect-error: Assume static phrasing content.
20419 const children = fragment.children
20420
20421 node.children = children
20422 } else {
20423 node.alt = value
20424 }
20425 }
20426
20427 /**
20428 * @this {CompileContext}
20429 * @type {Handle}
20430 */
20431
20432 function onexitresourcedestinationstring() {
20433 const data = this.resume()
20434 const node = this.stack[this.stack.length - 1]
20435 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20436 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20437 node.type === 'image' || node.type === 'link',
20438 'expected image or link on stack'
20439 )
20440 node.url = data
20441 }
20442
20443 /**
20444 * @this {CompileContext}
20445 * @type {Handle}
20446 */
20447
20448 function onexitresourcetitlestring() {
20449 const data = this.resume()
20450 const node = this.stack[this.stack.length - 1]
20451 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20452 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20453 node.type === 'image' || node.type === 'link',
20454 'expected image or link on stack'
20455 )
20456 node.title = data
20457 }
20458
20459 /**
20460 * @this {CompileContext}
20461 * @type {Handle}
20462 */
20463
20464 function onexitresource() {
20465 setData('inReference')
20466 }
20467
20468 /**
20469 * @this {CompileContext}
20470 * @type {Handle}
20471 */
20472
20473 function onenterreference() {
20474 setData('referenceType', 'collapsed')
20475 }
20476
20477 /**
20478 * @this {CompileContext}
20479 * @type {Handle}
20480 */
20481
20482 function onexitreferencestring(token) {
20483 const label = this.resume()
20484 const node = this.stack[this.stack.length - 1]
20485 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20486 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20487 node.type === 'image' || node.type === 'link',
20488 'expected image reference or link reference on stack'
20489 )
20490
20491 // @ts-expect-error: stash this on the node, as it might become a reference
20492 // later.
20493 node.label = label
20494 // @ts-expect-error: same as above.
20495 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20496 this.sliceSerialize(token)
20497 ).toLowerCase()
20498 setData('referenceType', 'full')
20499 }
20500
20501 /**
20502 * @this {CompileContext}
20503 * @type {Handle}
20504 */
20505
20506 function onexitcharacterreferencemarker(token) {
20507 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20508 token.type === 'characterReferenceMarkerNumeric' ||
20509 token.type === 'characterReferenceMarkerHexadecimal'
20510 )
20511 setData('characterReferenceType', token.type)
20512 }
20513
20514 /**
20515 * @this {CompileContext}
20516 * @type {Handle}
20517 */
20518 function onexitcharacterreferencevalue(token) {
20519 const data = this.sliceSerialize(token)
20520 const type = getData('characterReferenceType')
20521 /** @type {string} */
20522 let value
20523
20524 if (type) {
20525 value = (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__.decodeNumericCharacterReference)(
20526 data,
20527 type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.characterReferenceMarkerNumeric
20528 ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20529 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseHexadecimal
20530 )
20531 setData('characterReferenceType')
20532 } else {
20533 const result = (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__.decodeNamedCharacterReference)(data)
20534 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(result !== false, 'expected reference to decode')
20535 value = result
20536 }
20537
20538 const tail = this.stack.pop()
20539 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected `node`')
20540 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node.position`')
20541 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected `node.value`')
20542 tail.value += value
20543 tail.position.end = point(token.end)
20544 }
20545
20546 /**
20547 * @this {CompileContext}
20548 * @type {Handle}
20549 */
20550 function onexitautolinkprotocol(token) {
20551 onexitdata.call(this, token)
20552 const node = this.stack[this.stack.length - 1]
20553 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20554 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20555
20556 node.url = this.sliceSerialize(token)
20557 }
20558
20559 /**
20560 * @this {CompileContext}
20561 * @type {Handle}
20562 */
20563 function onexitautolinkemail(token) {
20564 onexitdata.call(this, token)
20565 const node = this.stack[this.stack.length - 1]
20566 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20567 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20568
20569 node.url = 'mailto:' + this.sliceSerialize(token)
20570 }
20571
20572 //
20573 // Creaters.
20574 //
20575
20576 /** @returns {Blockquote} */
20577 function blockQuote() {
20578 return {type: 'blockquote', children: []}
20579 }
20580
20581 /** @returns {Code} */
20582 function codeFlow() {
20583 return {type: 'code', lang: null, meta: null, value: ''}
20584 }
20585
20586 /** @returns {InlineCode} */
20587 function codeText() {
20588 return {type: 'inlineCode', value: ''}
20589 }
20590
20591 /** @returns {Definition} */
20592 function definition() {
20593 return {
20594 type: 'definition',
20595 identifier: '',
20596 label: null,
20597 title: null,
20598 url: ''
20599 }
20600 }
20601
20602 /** @returns {Emphasis} */
20603 function emphasis() {
20604 return {type: 'emphasis', children: []}
20605 }
20606
20607 /** @returns {Heading} */
20608 function heading() {
20609 // @ts-expect-error `depth` will be set later.
20610 return {type: 'heading', depth: undefined, children: []}
20611 }
20612
20613 /** @returns {Break} */
20614 function hardBreak() {
20615 return {type: 'break'}
20616 }
20617
20618 /** @returns {HTML} */
20619 function html() {
20620 return {type: 'html', value: ''}
20621 }
20622
20623 /** @returns {Image} */
20624 function image() {
20625 return {type: 'image', title: null, url: '', alt: null}
20626 }
20627
20628 /** @returns {Link} */
20629 function link() {
20630 return {type: 'link', title: null, url: '', children: []}
20631 }
20632
20633 /**
20634 * @param {Token} token
20635 * @returns {List}
20636 */
20637 function list(token) {
20638 return {
20639 type: 'list',
20640 ordered: token.type === 'listOrdered',
20641 start: null,
20642 spread: token._spread,
20643 children: []
20644 }
20645 }
20646
20647 /**
20648 * @param {Token} token
20649 * @returns {ListItem}
20650 */
20651 function listItem(token) {
20652 return {
20653 type: 'listItem',
20654 spread: token._spread,
20655 checked: null,
20656 children: []
20657 }
20658 }
20659
20660 /** @returns {Paragraph} */
20661 function paragraph() {
20662 return {type: 'paragraph', children: []}
20663 }
20664
20665 /** @returns {Strong} */
20666 function strong() {
20667 return {type: 'strong', children: []}
20668 }
20669
20670 /** @returns {Text} */
20671 function text() {
20672 return {type: 'text', value: ''}
20673 }
20674
20675 /** @returns {ThematicBreak} */
20676 function thematicBreak() {
20677 return {type: 'thematicBreak'}
20678 }
20679 }
20680
20681 /**
20682 * Copy a point-like value.
20683 *
20684 * @param {Point} d
20685 * Point-like value.
20686 * @returns {Point}
20687 * unist point.
20688 */
20689 function point(d) {
20690 return {line: d.line, column: d.column, offset: d.offset}
20691 }
20692
20693 /**
20694 * @param {Config} combined
20695 * @param {Array<Extension | Array<Extension>>} extensions
20696 * @returns {void}
20697 */
20698 function configure(combined, extensions) {
20699 let index = -1
20700
20701 while (++index < extensions.length) {
20702 const value = extensions[index]
20703
20704 if (Array.isArray(value)) {
20705 configure(combined, value)
20706 } else {
20707 extension(combined, value)
20708 }
20709 }
20710 }
20711
20712 /**
20713 * @param {Config} combined
20714 * @param {Extension} extension
20715 * @returns {void}
20716 */
20717 function extension(combined, extension) {
20718 /** @type {keyof Extension} */
20719 let key
20720
20721 for (key in extension) {
20722 if (own.call(extension, key)) {
20723 if (key === 'canContainEols') {
20724 const right = extension[key]
20725 if (right) {
20726 combined[key].push(...right)
20727 }
20728 } else if (key === 'transforms') {
20729 const right = extension[key]
20730 if (right) {
20731 combined[key].push(...right)
20732 }
20733 } else if (key === 'enter' || key === 'exit') {
20734 const right = extension[key]
20735 if (right) {
20736 Object.assign(combined[key], right)
20737 }
20738 }
20739 }
20740 }
20741 }
20742
20743 /** @type {OnEnterError} */
20744 function defaultOnError(left, right) {
20745 if (left) {
20746 throw new Error(
20747 'Cannot close `' +
20748 left.type +
20749 '` (' +
20750 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: left.start, end: left.end}) +
20751 '): a different token (`' +
20752 right.type +
20753 '`, ' +
20754 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20755 ') is open'
20756 )
20757 } else {
20758 throw new Error(
20759 'Cannot close document, a token (`' +
20760 right.type +
20761 '`, ' +
20762 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
20763 ') is still open'
20764 )
20765 }
20766 }
20767
20768
20769 /***/ }),
20770
20771 /***/ "../node_modules/mdast-util-to-hast/lib/footer.js":
20772 /*!********************************************************!*\
20773 !*** ../node_modules/mdast-util-to-hast/lib/footer.js ***!
20774 \********************************************************/
20775 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20776
20777 "use strict";
20778 __webpack_require__.r(__webpack_exports__);
20779 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20780 /* harmony export */ footer: () => (/* binding */ footer)
20781 /* harmony export */ });
20782 /* 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");
20783 /**
20784 * @typedef {import('hast').Element} Element
20785 * @typedef {import('hast').ElementContent} ElementContent
20786 *
20787 * @typedef {import('./state.js').State} State
20788 */
20789
20790
20791
20792 /**
20793 * Generate a hast footer for called footnote definitions.
20794 *
20795 * @param {State} state
20796 * Info passed around.
20797 * @returns {Element | undefined}
20798 * `section` element or `undefined`.
20799 */
20800 function footer(state) {
20801 /** @type {Array<ElementContent>} */
20802 const listItems = []
20803 let index = -1
20804
20805 while (++index < state.footnoteOrder.length) {
20806 const def = state.footnoteById[state.footnoteOrder[index]]
20807
20808 if (!def) {
20809 continue
20810 }
20811
20812 const content = state.all(def)
20813 const id = String(def.identifier).toUpperCase()
20814 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
20815 let referenceIndex = 0
20816 /** @type {Array<ElementContent>} */
20817 const backReferences = []
20818
20819 while (++referenceIndex <= state.footnoteCounts[id]) {
20820 /** @type {Element} */
20821 const backReference = {
20822 type: 'element',
20823 tagName: 'a',
20824 properties: {
20825 href:
20826 '#' +
20827 state.clobberPrefix +
20828 'fnref-' +
20829 safeId +
20830 (referenceIndex > 1 ? '-' + referenceIndex : ''),
20831 dataFootnoteBackref: true,
20832 className: ['data-footnote-backref'],
20833 ariaLabel: state.footnoteBackLabel
20834 },
20835 children: [{type: 'text', value: '↩'}]
20836 }
20837
20838 if (referenceIndex > 1) {
20839 backReference.children.push({
20840 type: 'element',
20841 tagName: 'sup',
20842 children: [{type: 'text', value: String(referenceIndex)}]
20843 })
20844 }
20845
20846 if (backReferences.length > 0) {
20847 backReferences.push({type: 'text', value: ' '})
20848 }
20849
20850 backReferences.push(backReference)
20851 }
20852
20853 const tail = content[content.length - 1]
20854
20855 if (tail && tail.type === 'element' && tail.tagName === 'p') {
20856 const tailTail = tail.children[tail.children.length - 1]
20857 if (tailTail && tailTail.type === 'text') {
20858 tailTail.value += ' '
20859 } else {
20860 tail.children.push({type: 'text', value: ' '})
20861 }
20862
20863 tail.children.push(...backReferences)
20864 } else {
20865 content.push(...backReferences)
20866 }
20867
20868 /** @type {Element} */
20869 const listItem = {
20870 type: 'element',
20871 tagName: 'li',
20872 properties: {id: state.clobberPrefix + 'fn-' + safeId},
20873 children: state.wrap(content, true)
20874 }
20875
20876 state.patch(def, listItem)
20877
20878 listItems.push(listItem)
20879 }
20880
20881 if (listItems.length === 0) {
20882 return
20883 }
20884
20885 return {
20886 type: 'element',
20887 tagName: 'section',
20888 properties: {dataFootnotes: true, className: ['footnotes']},
20889 children: [
20890 {
20891 type: 'element',
20892 tagName: state.footnoteLabelTagName,
20893 properties: {
20894 // To do: use structured clone.
20895 ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),
20896 id: 'footnote-label'
20897 },
20898 children: [{type: 'text', value: state.footnoteLabel}]
20899 },
20900 {type: 'text', value: '\n'},
20901 {
20902 type: 'element',
20903 tagName: 'ol',
20904 properties: {},
20905 children: state.wrap(listItems, true)
20906 },
20907 {type: 'text', value: '\n'}
20908 ]
20909 }
20910 }
20911
20912
20913 /***/ }),
20914
20915 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js":
20916 /*!*********************************************************************!*\
20917 !*** ../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js ***!
20918 \*********************************************************************/
20919 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20920
20921 "use strict";
20922 __webpack_require__.r(__webpack_exports__);
20923 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20924 /* harmony export */ blockquote: () => (/* binding */ blockquote)
20925 /* harmony export */ });
20926 /**
20927 * @typedef {import('hast').Element} Element
20928 * @typedef {import('mdast').Blockquote} Blockquote
20929 * @typedef {import('../state.js').State} State
20930 */
20931
20932 /**
20933 * Turn an mdast `blockquote` node into hast.
20934 *
20935 * @param {State} state
20936 * Info passed around.
20937 * @param {Blockquote} node
20938 * mdast node.
20939 * @returns {Element}
20940 * hast node.
20941 */
20942 function blockquote(state, node) {
20943 /** @type {Element} */
20944 const result = {
20945 type: 'element',
20946 tagName: 'blockquote',
20947 properties: {},
20948 children: state.wrap(state.all(node), true)
20949 }
20950 state.patch(node, result)
20951 return state.applyData(node, result)
20952 }
20953
20954
20955 /***/ }),
20956
20957 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/break.js":
20958 /*!****************************************************************!*\
20959 !*** ../node_modules/mdast-util-to-hast/lib/handlers/break.js ***!
20960 \****************************************************************/
20961 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20962
20963 "use strict";
20964 __webpack_require__.r(__webpack_exports__);
20965 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20966 /* harmony export */ hardBreak: () => (/* binding */ hardBreak)
20967 /* harmony export */ });
20968 /**
20969 * @typedef {import('hast').Element} Element
20970 * @typedef {import('hast').Text} Text
20971 * @typedef {import('mdast').Break} Break
20972 * @typedef {import('../state.js').State} State
20973 */
20974
20975 /**
20976 * Turn an mdast `break` node into hast.
20977 *
20978 * @param {State} state
20979 * Info passed around.
20980 * @param {Break} node
20981 * mdast node.
20982 * @returns {Array<Element | Text>}
20983 * hast element content.
20984 */
20985 function hardBreak(state, node) {
20986 /** @type {Element} */
20987 const result = {type: 'element', tagName: 'br', properties: {}, children: []}
20988 state.patch(node, result)
20989 return [state.applyData(node, result), {type: 'text', value: '\n'}]
20990 }
20991
20992
20993 /***/ }),
20994
20995 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/code.js":
20996 /*!***************************************************************!*\
20997 !*** ../node_modules/mdast-util-to-hast/lib/handlers/code.js ***!
20998 \***************************************************************/
20999 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21000
21001 "use strict";
21002 __webpack_require__.r(__webpack_exports__);
21003 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21004 /* harmony export */ code: () => (/* binding */ code)
21005 /* harmony export */ });
21006 /**
21007 * @typedef {import('hast').Element} Element
21008 * @typedef {import('hast').Properties} Properties
21009 * @typedef {import('mdast').Code} Code
21010 * @typedef {import('../state.js').State} State
21011
21012 */
21013
21014 /**
21015 * Turn an mdast `code` node into hast.
21016 *
21017 * @param {State} state
21018 * Info passed around.
21019 * @param {Code} node
21020 * mdast node.
21021 * @returns {Element}
21022 * hast node.
21023 */
21024 function code(state, node) {
21025 const value = node.value ? node.value + '\n' : ''
21026 // To do: next major, use `node.lang` w/o regex, the splitting’s been going
21027 // on for years in remark now.
21028 const lang = node.lang ? node.lang.match(/^[^ \t]+(?=[ \t]|$)/) : null
21029 /** @type {Properties} */
21030 const properties = {}
21031
21032 if (lang) {
21033 properties.className = ['language-' + lang]
21034 }
21035
21036 // Create `<code>`.
21037 /** @type {Element} */
21038 let result = {
21039 type: 'element',
21040 tagName: 'code',
21041 properties,
21042 children: [{type: 'text', value}]
21043 }
21044
21045 if (node.meta) {
21046 result.data = {meta: node.meta}
21047 }
21048
21049 state.patch(node, result)
21050 result = state.applyData(node, result)
21051
21052 // Create `<pre>`.
21053 result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}
21054 state.patch(node, result)
21055 return result
21056 }
21057
21058
21059 /***/ }),
21060
21061 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js":
21062 /*!*****************************************************************!*\
21063 !*** ../node_modules/mdast-util-to-hast/lib/handlers/delete.js ***!
21064 \*****************************************************************/
21065 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21066
21067 "use strict";
21068 __webpack_require__.r(__webpack_exports__);
21069 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21070 /* harmony export */ strikethrough: () => (/* binding */ strikethrough)
21071 /* harmony export */ });
21072 /**
21073 * @typedef {import('hast').Element} Element
21074 * @typedef {import('mdast').Delete} Delete
21075 * @typedef {import('../state.js').State} State
21076
21077 */
21078
21079 /**
21080 * Turn an mdast `delete` node into hast.
21081 *
21082 * @param {State} state
21083 * Info passed around.
21084 * @param {Delete} node
21085 * mdast node.
21086 * @returns {Element}
21087 * hast node.
21088 */
21089 function strikethrough(state, node) {
21090 /** @type {Element} */
21091 const result = {
21092 type: 'element',
21093 tagName: 'del',
21094 properties: {},
21095 children: state.all(node)
21096 }
21097 state.patch(node, result)
21098 return state.applyData(node, result)
21099 }
21100
21101
21102 /***/ }),
21103
21104 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js":
21105 /*!*******************************************************************!*\
21106 !*** ../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js ***!
21107 \*******************************************************************/
21108 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21109
21110 "use strict";
21111 __webpack_require__.r(__webpack_exports__);
21112 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21113 /* harmony export */ emphasis: () => (/* binding */ emphasis)
21114 /* harmony export */ });
21115 /**
21116 * @typedef {import('hast').Element} Element
21117 * @typedef {import('mdast').Emphasis} Emphasis
21118 * @typedef {import('../state.js').State} State
21119 */
21120
21121 /**
21122 * Turn an mdast `emphasis` node into hast.
21123 *
21124 * @param {State} state
21125 * Info passed around.
21126 * @param {Emphasis} node
21127 * mdast node.
21128 * @returns {Element}
21129 * hast node.
21130 */
21131 function emphasis(state, node) {
21132 /** @type {Element} */
21133 const result = {
21134 type: 'element',
21135 tagName: 'em',
21136 properties: {},
21137 children: state.all(node)
21138 }
21139 state.patch(node, result)
21140 return state.applyData(node, result)
21141 }
21142
21143
21144 /***/ }),
21145
21146 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js":
21147 /*!*****************************************************************************!*\
21148 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js ***!
21149 \*****************************************************************************/
21150 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21151
21152 "use strict";
21153 __webpack_require__.r(__webpack_exports__);
21154 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21155 /* harmony export */ footnoteReference: () => (/* binding */ footnoteReference)
21156 /* harmony export */ });
21157 /* 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");
21158 /**
21159 * @typedef {import('mdast').FootnoteReference} FootnoteReference
21160 * @typedef {import('hast').Element} Element
21161 * @typedef {import('../state.js').State} State
21162 */
21163
21164
21165
21166 /**
21167 * Turn an mdast `footnoteReference` node into hast.
21168 *
21169 * @param {State} state
21170 * Info passed around.
21171 * @param {FootnoteReference} node
21172 * mdast node.
21173 * @returns {Element}
21174 * hast node.
21175 */
21176 function footnoteReference(state, node) {
21177 const id = String(node.identifier).toUpperCase()
21178 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
21179 const index = state.footnoteOrder.indexOf(id)
21180 /** @type {number} */
21181 let counter
21182
21183 if (index === -1) {
21184 state.footnoteOrder.push(id)
21185 state.footnoteCounts[id] = 1
21186 counter = state.footnoteOrder.length
21187 } else {
21188 state.footnoteCounts[id]++
21189 counter = index + 1
21190 }
21191
21192 const reuseCounter = state.footnoteCounts[id]
21193
21194 /** @type {Element} */
21195 const link = {
21196 type: 'element',
21197 tagName: 'a',
21198 properties: {
21199 href: '#' + state.clobberPrefix + 'fn-' + safeId,
21200 id:
21201 state.clobberPrefix +
21202 'fnref-' +
21203 safeId +
21204 (reuseCounter > 1 ? '-' + reuseCounter : ''),
21205 dataFootnoteRef: true,
21206 ariaDescribedBy: ['footnote-label']
21207 },
21208 children: [{type: 'text', value: String(counter)}]
21209 }
21210 state.patch(node, link)
21211
21212 /** @type {Element} */
21213 const sup = {
21214 type: 'element',
21215 tagName: 'sup',
21216 properties: {},
21217 children: [link]
21218 }
21219 state.patch(node, sup)
21220 return state.applyData(node, sup)
21221 }
21222
21223
21224 /***/ }),
21225
21226 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js":
21227 /*!*******************************************************************!*\
21228 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote.js ***!
21229 \*******************************************************************/
21230 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21231
21232 "use strict";
21233 __webpack_require__.r(__webpack_exports__);
21234 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21235 /* harmony export */ footnote: () => (/* binding */ footnote)
21236 /* harmony export */ });
21237 /* 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");
21238 /**
21239 * @typedef {import('hast').Element} Element
21240 * @typedef {import('mdast').Footnote} Footnote
21241 * @typedef {import('../state.js').State} State
21242 */
21243
21244
21245
21246 // To do: when both:
21247 // * <https://github.com/micromark/micromark-extension-footnote>
21248 // * <https://github.com/syntax-tree/mdast-util-footnote>
21249 // …are archived, remove this (also from mdast).
21250 // These inline notes are not used in GFM.
21251
21252 /**
21253 * Turn an mdast `footnote` node into hast.
21254 *
21255 * @param {State} state
21256 * Info passed around.
21257 * @param {Footnote} node
21258 * mdast node.
21259 * @returns {Element}
21260 * hast node.
21261 */
21262 function footnote(state, node) {
21263 const footnoteById = state.footnoteById
21264 let no = 1
21265
21266 while (no in footnoteById) no++
21267
21268 const identifier = String(no)
21269
21270 footnoteById[identifier] = {
21271 type: 'footnoteDefinition',
21272 identifier,
21273 children: [{type: 'paragraph', children: node.children}],
21274 position: node.position
21275 }
21276
21277 return (0,_footnote_reference_js__WEBPACK_IMPORTED_MODULE_0__.footnoteReference)(state, {
21278 type: 'footnoteReference',
21279 identifier,
21280 position: node.position
21281 })
21282 }
21283
21284
21285 /***/ }),
21286
21287 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js":
21288 /*!******************************************************************!*\
21289 !*** ../node_modules/mdast-util-to-hast/lib/handlers/heading.js ***!
21290 \******************************************************************/
21291 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21292
21293 "use strict";
21294 __webpack_require__.r(__webpack_exports__);
21295 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21296 /* harmony export */ heading: () => (/* binding */ heading)
21297 /* harmony export */ });
21298 /**
21299 * @typedef {import('hast').Element} Element
21300 * @typedef {import('mdast').Heading} Heading
21301 * @typedef {import('../state.js').State} State
21302 */
21303
21304 /**
21305 * Turn an mdast `heading` node into hast.
21306 *
21307 * @param {State} state
21308 * Info passed around.
21309 * @param {Heading} node
21310 * mdast node.
21311 * @returns {Element}
21312 * hast node.
21313 */
21314 function heading(state, node) {
21315 /** @type {Element} */
21316 const result = {
21317 type: 'element',
21318 tagName: 'h' + node.depth,
21319 properties: {},
21320 children: state.all(node)
21321 }
21322 state.patch(node, result)
21323 return state.applyData(node, result)
21324 }
21325
21326
21327 /***/ }),
21328
21329 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/html.js":
21330 /*!***************************************************************!*\
21331 !*** ../node_modules/mdast-util-to-hast/lib/handlers/html.js ***!
21332 \***************************************************************/
21333 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21334
21335 "use strict";
21336 __webpack_require__.r(__webpack_exports__);
21337 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21338 /* harmony export */ html: () => (/* binding */ html)
21339 /* harmony export */ });
21340 /**
21341 * @typedef {import('hast').Element} Element
21342 * @typedef {import('mdast').HTML} Html
21343 * @typedef {import('../state.js').State} State
21344 * @typedef {import('../../index.js').Raw} Raw
21345 */
21346
21347 /**
21348 * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise
21349 * nothing).
21350 *
21351 * @param {State} state
21352 * Info passed around.
21353 * @param {Html} node
21354 * mdast node.
21355 * @returns {Raw | Element | null}
21356 * hast node.
21357 */
21358 function html(state, node) {
21359 if (state.dangerous) {
21360 /** @type {Raw} */
21361 const result = {type: 'raw', value: node.value}
21362 state.patch(node, result)
21363 return state.applyData(node, result)
21364 }
21365
21366 // To do: next major: return `undefined`.
21367 return null
21368 }
21369
21370
21371 /***/ }),
21372
21373 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js":
21374 /*!**************************************************************************!*\
21375 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js ***!
21376 \**************************************************************************/
21377 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21378
21379 "use strict";
21380 __webpack_require__.r(__webpack_exports__);
21381 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21382 /* harmony export */ imageReference: () => (/* binding */ imageReference)
21383 /* harmony export */ });
21384 /* 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");
21385 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21386 /**
21387 * @typedef {import('hast').ElementContent} ElementContent
21388 * @typedef {import('hast').Element} Element
21389 * @typedef {import('hast').Properties} Properties
21390 * @typedef {import('mdast').ImageReference} ImageReference
21391 * @typedef {import('../state.js').State} State
21392 */
21393
21394
21395
21396
21397 /**
21398 * Turn an mdast `imageReference` node into hast.
21399 *
21400 * @param {State} state
21401 * Info passed around.
21402 * @param {ImageReference} node
21403 * mdast node.
21404 * @returns {ElementContent | Array<ElementContent>}
21405 * hast node.
21406 */
21407 function imageReference(state, node) {
21408 const def = state.definition(node.identifier)
21409
21410 if (!def) {
21411 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21412 }
21413
21414 /** @type {Properties} */
21415 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || ''), alt: node.alt}
21416
21417 if (def.title !== null && def.title !== undefined) {
21418 properties.title = def.title
21419 }
21420
21421 /** @type {Element} */
21422 const result = {type: 'element', tagName: 'img', properties, children: []}
21423 state.patch(node, result)
21424 return state.applyData(node, result)
21425 }
21426
21427
21428 /***/ }),
21429
21430 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image.js":
21431 /*!****************************************************************!*\
21432 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image.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 */ image: () => (/* binding */ image)
21440 /* harmony export */ });
21441 /* 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");
21442 /**
21443 * @typedef {import('hast').Element} Element
21444 * @typedef {import('hast').Properties} Properties
21445 * @typedef {import('mdast').Image} Image
21446 * @typedef {import('../state.js').State} State
21447 */
21448
21449
21450
21451 /**
21452 * Turn an mdast `image` node into hast.
21453 *
21454 * @param {State} state
21455 * Info passed around.
21456 * @param {Image} node
21457 * mdast node.
21458 * @returns {Element}
21459 * hast node.
21460 */
21461 function image(state, node) {
21462 /** @type {Properties} */
21463 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21464
21465 if (node.alt !== null && node.alt !== undefined) {
21466 properties.alt = node.alt
21467 }
21468
21469 if (node.title !== null && node.title !== undefined) {
21470 properties.title = node.title
21471 }
21472
21473 /** @type {Element} */
21474 const result = {type: 'element', tagName: 'img', properties, children: []}
21475 state.patch(node, result)
21476 return state.applyData(node, result)
21477 }
21478
21479
21480 /***/ }),
21481
21482 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/index.js":
21483 /*!****************************************************************!*\
21484 !*** ../node_modules/mdast-util-to-hast/lib/handlers/index.js ***!
21485 \****************************************************************/
21486 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21487
21488 "use strict";
21489 __webpack_require__.r(__webpack_exports__);
21490 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21491 /* harmony export */ handlers: () => (/* binding */ handlers)
21492 /* harmony export */ });
21493 /* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js");
21494 /* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ "../node_modules/mdast-util-to-hast/lib/handlers/break.js");
21495 /* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ "../node_modules/mdast-util-to-hast/lib/handlers/code.js");
21496 /* harmony import */ var _delete_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete.js */ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js");
21497 /* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js");
21498 /* 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");
21499 /* harmony import */ var _footnote_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./footnote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js");
21500 /* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./heading.js */ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js");
21501 /* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./html.js */ "../node_modules/mdast-util-to-hast/lib/handlers/html.js");
21502 /* 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");
21503 /* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./image.js */ "../node_modules/mdast-util-to-hast/lib/handlers/image.js");
21504 /* 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");
21505 /* 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");
21506 /* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./link.js */ "../node_modules/mdast-util-to-hast/lib/handlers/link.js");
21507 /* 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");
21508 /* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./list.js */ "../node_modules/mdast-util-to-hast/lib/handlers/list.js");
21509 /* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./paragraph.js */ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js");
21510 /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./root.js */ "../node_modules/mdast-util-to-hast/lib/handlers/root.js");
21511 /* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./strong.js */ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js");
21512 /* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./table.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table.js");
21513 /* 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");
21514 /* 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");
21515 /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ "../node_modules/mdast-util-to-hast/lib/handlers/text.js");
21516 /* 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");
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542 /**
21543 * Default handlers for nodes.
21544 */
21545 const handlers = {
21546 blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,
21547 break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,
21548 code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,
21549 delete: _delete_js__WEBPACK_IMPORTED_MODULE_3__.strikethrough,
21550 emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,
21551 footnoteReference: _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__.footnoteReference,
21552 footnote: _footnote_js__WEBPACK_IMPORTED_MODULE_6__.footnote,
21553 heading: _heading_js__WEBPACK_IMPORTED_MODULE_7__.heading,
21554 html: _html_js__WEBPACK_IMPORTED_MODULE_8__.html,
21555 imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_9__.imageReference,
21556 image: _image_js__WEBPACK_IMPORTED_MODULE_10__.image,
21557 inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_11__.inlineCode,
21558 linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_12__.linkReference,
21559 link: _link_js__WEBPACK_IMPORTED_MODULE_13__.link,
21560 listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_14__.listItem,
21561 list: _list_js__WEBPACK_IMPORTED_MODULE_15__.list,
21562 paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_16__.paragraph,
21563 root: _root_js__WEBPACK_IMPORTED_MODULE_17__.root,
21564 strong: _strong_js__WEBPACK_IMPORTED_MODULE_18__.strong,
21565 table: _table_js__WEBPACK_IMPORTED_MODULE_19__.table,
21566 tableCell: _table_cell_js__WEBPACK_IMPORTED_MODULE_20__.tableCell,
21567 tableRow: _table_row_js__WEBPACK_IMPORTED_MODULE_21__.tableRow,
21568 text: _text_js__WEBPACK_IMPORTED_MODULE_22__.text,
21569 thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_23__.thematicBreak,
21570 toml: ignore,
21571 yaml: ignore,
21572 definition: ignore,
21573 footnoteDefinition: ignore
21574 }
21575
21576 // Return nothing for nodes that are ignored.
21577 function ignore() {
21578 // To do: next major: return `undefined`.
21579 return null
21580 }
21581
21582
21583 /***/ }),
21584
21585 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js":
21586 /*!**********************************************************************!*\
21587 !*** ../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js ***!
21588 \**********************************************************************/
21589 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21590
21591 "use strict";
21592 __webpack_require__.r(__webpack_exports__);
21593 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21594 /* harmony export */ inlineCode: () => (/* binding */ inlineCode)
21595 /* harmony export */ });
21596 /**
21597 * @typedef {import('hast').Element} Element
21598 * @typedef {import('hast').Text} Text
21599 * @typedef {import('mdast').InlineCode} InlineCode
21600 * @typedef {import('../state.js').State} State
21601 */
21602
21603 /**
21604 * Turn an mdast `inlineCode` node into hast.
21605 *
21606 * @param {State} state
21607 * Info passed around.
21608 * @param {InlineCode} node
21609 * mdast node.
21610 * @returns {Element}
21611 * hast node.
21612 */
21613 function inlineCode(state, node) {
21614 /** @type {Text} */
21615 const text = {type: 'text', value: node.value.replace(/\r?\n|\r/g, ' ')}
21616 state.patch(node, text)
21617
21618 /** @type {Element} */
21619 const result = {
21620 type: 'element',
21621 tagName: 'code',
21622 properties: {},
21623 children: [text]
21624 }
21625 state.patch(node, result)
21626 return state.applyData(node, result)
21627 }
21628
21629
21630 /***/ }),
21631
21632 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js":
21633 /*!*************************************************************************!*\
21634 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js ***!
21635 \*************************************************************************/
21636 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21637
21638 "use strict";
21639 __webpack_require__.r(__webpack_exports__);
21640 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21641 /* harmony export */ linkReference: () => (/* binding */ linkReference)
21642 /* harmony export */ });
21643 /* 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");
21644 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21645 /**
21646 * @typedef {import('hast').Element} Element
21647 * @typedef {import('hast').ElementContent} ElementContent
21648 * @typedef {import('hast').Properties} Properties
21649 * @typedef {import('mdast').LinkReference} LinkReference
21650 * @typedef {import('../state.js').State} State
21651 */
21652
21653
21654
21655
21656 /**
21657 * Turn an mdast `linkReference` node into hast.
21658 *
21659 * @param {State} state
21660 * Info passed around.
21661 * @param {LinkReference} node
21662 * mdast node.
21663 * @returns {ElementContent | Array<ElementContent>}
21664 * hast node.
21665 */
21666 function linkReference(state, node) {
21667 const def = state.definition(node.identifier)
21668
21669 if (!def) {
21670 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21671 }
21672
21673 /** @type {Properties} */
21674 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || '')}
21675
21676 if (def.title !== null && def.title !== undefined) {
21677 properties.title = def.title
21678 }
21679
21680 /** @type {Element} */
21681 const result = {
21682 type: 'element',
21683 tagName: 'a',
21684 properties,
21685 children: state.all(node)
21686 }
21687 state.patch(node, result)
21688 return state.applyData(node, result)
21689 }
21690
21691
21692 /***/ }),
21693
21694 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link.js":
21695 /*!***************************************************************!*\
21696 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link.js ***!
21697 \***************************************************************/
21698 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21699
21700 "use strict";
21701 __webpack_require__.r(__webpack_exports__);
21702 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21703 /* harmony export */ link: () => (/* binding */ link)
21704 /* harmony export */ });
21705 /* 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");
21706 /**
21707 * @typedef {import('hast').Element} Element
21708 * @typedef {import('hast').Properties} Properties
21709 * @typedef {import('mdast').Link} Link
21710 * @typedef {import('../state.js').State} State
21711 */
21712
21713
21714
21715 /**
21716 * Turn an mdast `link` node into hast.
21717 *
21718 * @param {State} state
21719 * Info passed around.
21720 * @param {Link} node
21721 * mdast node.
21722 * @returns {Element}
21723 * hast node.
21724 */
21725 function link(state, node) {
21726 /** @type {Properties} */
21727 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21728
21729 if (node.title !== null && node.title !== undefined) {
21730 properties.title = node.title
21731 }
21732
21733 /** @type {Element} */
21734 const result = {
21735 type: 'element',
21736 tagName: 'a',
21737 properties,
21738 children: state.all(node)
21739 }
21740 state.patch(node, result)
21741 return state.applyData(node, result)
21742 }
21743
21744
21745 /***/ }),
21746
21747 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js":
21748 /*!********************************************************************!*\
21749 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list-item.js ***!
21750 \********************************************************************/
21751 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21752
21753 "use strict";
21754 __webpack_require__.r(__webpack_exports__);
21755 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21756 /* harmony export */ listItem: () => (/* binding */ listItem)
21757 /* harmony export */ });
21758 /**
21759 * @typedef {import('hast').Element} Element
21760 * @typedef {import('hast').ElementContent} ElementContent
21761 * @typedef {import('hast').Properties} Properties
21762 * @typedef {import('mdast').Content} Content
21763 * @typedef {import('mdast').ListItem} ListItem
21764 * @typedef {import('mdast').Parent} Parent
21765 * @typedef {import('mdast').Root} Root
21766 * @typedef {import('../state.js').State} State
21767 */
21768
21769 /**
21770 * @typedef {Root | Content} Nodes
21771 * @typedef {Extract<Nodes, Parent>} Parents
21772 */
21773
21774 /**
21775 * Turn an mdast `listItem` node into hast.
21776 *
21777 * @param {State} state
21778 * Info passed around.
21779 * @param {ListItem} node
21780 * mdast node.
21781 * @param {Parents | null | undefined} parent
21782 * Parent of `node`.
21783 * @returns {Element}
21784 * hast node.
21785 */
21786 function listItem(state, node, parent) {
21787 const results = state.all(node)
21788 const loose = parent ? listLoose(parent) : listItemLoose(node)
21789 /** @type {Properties} */
21790 const properties = {}
21791 /** @type {Array<ElementContent>} */
21792 const children = []
21793
21794 if (typeof node.checked === 'boolean') {
21795 const head = results[0]
21796 /** @type {Element} */
21797 let paragraph
21798
21799 if (head && head.type === 'element' && head.tagName === 'p') {
21800 paragraph = head
21801 } else {
21802 paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}
21803 results.unshift(paragraph)
21804 }
21805
21806 if (paragraph.children.length > 0) {
21807 paragraph.children.unshift({type: 'text', value: ' '})
21808 }
21809
21810 paragraph.children.unshift({
21811 type: 'element',
21812 tagName: 'input',
21813 properties: {type: 'checkbox', checked: node.checked, disabled: true},
21814 children: []
21815 })
21816
21817 // According to github-markdown-css, this class hides bullet.
21818 // See: <https://github.com/sindresorhus/github-markdown-css>.
21819 properties.className = ['task-list-item']
21820 }
21821
21822 let index = -1
21823
21824 while (++index < results.length) {
21825 const child = results[index]
21826
21827 // Add eols before nodes, except if this is a loose, first paragraph.
21828 if (
21829 loose ||
21830 index !== 0 ||
21831 child.type !== 'element' ||
21832 child.tagName !== 'p'
21833 ) {
21834 children.push({type: 'text', value: '\n'})
21835 }
21836
21837 if (child.type === 'element' && child.tagName === 'p' && !loose) {
21838 children.push(...child.children)
21839 } else {
21840 children.push(child)
21841 }
21842 }
21843
21844 const tail = results[results.length - 1]
21845
21846 // Add a final eol.
21847 if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {
21848 children.push({type: 'text', value: '\n'})
21849 }
21850
21851 /** @type {Element} */
21852 const result = {type: 'element', tagName: 'li', properties, children}
21853 state.patch(node, result)
21854 return state.applyData(node, result)
21855 }
21856
21857 /**
21858 * @param {Parents} node
21859 * @return {Boolean}
21860 */
21861 function listLoose(node) {
21862 let loose = false
21863 if (node.type === 'list') {
21864 loose = node.spread || false
21865 const children = node.children
21866 let index = -1
21867
21868 while (!loose && ++index < children.length) {
21869 loose = listItemLoose(children[index])
21870 }
21871 }
21872
21873 return loose
21874 }
21875
21876 /**
21877 * @param {ListItem} node
21878 * @return {Boolean}
21879 */
21880 function listItemLoose(node) {
21881 const spread = node.spread
21882
21883 return spread === undefined || spread === null
21884 ? node.children.length > 1
21885 : spread
21886 }
21887
21888
21889 /***/ }),
21890
21891 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list.js":
21892 /*!***************************************************************!*\
21893 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list.js ***!
21894 \***************************************************************/
21895 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21896
21897 "use strict";
21898 __webpack_require__.r(__webpack_exports__);
21899 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21900 /* harmony export */ list: () => (/* binding */ list)
21901 /* harmony export */ });
21902 /**
21903 * @typedef {import('hast').Element} Element
21904 * @typedef {import('hast').Properties} Properties
21905 * @typedef {import('mdast').List} List
21906 * @typedef {import('../state.js').State} State
21907 */
21908
21909 /**
21910 * Turn an mdast `list` node into hast.
21911 *
21912 * @param {State} state
21913 * Info passed around.
21914 * @param {List} node
21915 * mdast node.
21916 * @returns {Element}
21917 * hast node.
21918 */
21919 function list(state, node) {
21920 /** @type {Properties} */
21921 const properties = {}
21922 const results = state.all(node)
21923 let index = -1
21924
21925 if (typeof node.start === 'number' && node.start !== 1) {
21926 properties.start = node.start
21927 }
21928
21929 // Like GitHub, add a class for custom styling.
21930 while (++index < results.length) {
21931 const child = results[index]
21932
21933 if (
21934 child.type === 'element' &&
21935 child.tagName === 'li' &&
21936 child.properties &&
21937 Array.isArray(child.properties.className) &&
21938 child.properties.className.includes('task-list-item')
21939 ) {
21940 properties.className = ['contains-task-list']
21941 break
21942 }
21943 }
21944
21945 /** @type {Element} */
21946 const result = {
21947 type: 'element',
21948 tagName: node.ordered ? 'ol' : 'ul',
21949 properties,
21950 children: state.wrap(results, true)
21951 }
21952 state.patch(node, result)
21953 return state.applyData(node, result)
21954 }
21955
21956
21957 /***/ }),
21958
21959 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js":
21960 /*!********************************************************************!*\
21961 !*** ../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js ***!
21962 \********************************************************************/
21963 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21964
21965 "use strict";
21966 __webpack_require__.r(__webpack_exports__);
21967 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21968 /* harmony export */ paragraph: () => (/* binding */ paragraph)
21969 /* harmony export */ });
21970 /**
21971 * @typedef {import('hast').Element} Element
21972 * @typedef {import('mdast').Paragraph} Paragraph
21973 * @typedef {import('../state.js').State} State
21974 */
21975
21976 /**
21977 * Turn an mdast `paragraph` node into hast.
21978 *
21979 * @param {State} state
21980 * Info passed around.
21981 * @param {Paragraph} node
21982 * mdast node.
21983 * @returns {Element}
21984 * hast node.
21985 */
21986 function paragraph(state, node) {
21987 /** @type {Element} */
21988 const result = {
21989 type: 'element',
21990 tagName: 'p',
21991 properties: {},
21992 children: state.all(node)
21993 }
21994 state.patch(node, result)
21995 return state.applyData(node, result)
21996 }
21997
21998
21999 /***/ }),
22000
22001 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/root.js":
22002 /*!***************************************************************!*\
22003 !*** ../node_modules/mdast-util-to-hast/lib/handlers/root.js ***!
22004 \***************************************************************/
22005 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22006
22007 "use strict";
22008 __webpack_require__.r(__webpack_exports__);
22009 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22010 /* harmony export */ root: () => (/* binding */ root)
22011 /* harmony export */ });
22012 /**
22013 * @typedef {import('hast').Root} HastRoot
22014 * @typedef {import('hast').Element} HastElement
22015 * @typedef {import('mdast').Root} MdastRoot
22016 * @typedef {import('../state.js').State} State
22017 */
22018
22019 /**
22020 * Turn an mdast `root` node into hast.
22021 *
22022 * @param {State} state
22023 * Info passed around.
22024 * @param {MdastRoot} node
22025 * mdast node.
22026 * @returns {HastRoot | HastElement}
22027 * hast node.
22028 */
22029 function root(state, node) {
22030 /** @type {HastRoot} */
22031 const result = {type: 'root', children: state.wrap(state.all(node))}
22032 state.patch(node, result)
22033 return state.applyData(node, result)
22034 }
22035
22036
22037 /***/ }),
22038
22039 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js":
22040 /*!*****************************************************************!*\
22041 !*** ../node_modules/mdast-util-to-hast/lib/handlers/strong.js ***!
22042 \*****************************************************************/
22043 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22044
22045 "use strict";
22046 __webpack_require__.r(__webpack_exports__);
22047 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22048 /* harmony export */ strong: () => (/* binding */ strong)
22049 /* harmony export */ });
22050 /**
22051 * @typedef {import('hast').Element} Element
22052 * @typedef {import('mdast').Strong} Strong
22053 * @typedef {import('../state.js').State} State
22054 */
22055
22056 /**
22057 * Turn an mdast `strong` node into hast.
22058 *
22059 * @param {State} state
22060 * Info passed around.
22061 * @param {Strong} node
22062 * mdast node.
22063 * @returns {Element}
22064 * hast node.
22065 */
22066 function strong(state, node) {
22067 /** @type {Element} */
22068 const result = {
22069 type: 'element',
22070 tagName: 'strong',
22071 properties: {},
22072 children: state.all(node)
22073 }
22074 state.patch(node, result)
22075 return state.applyData(node, result)
22076 }
22077
22078
22079 /***/ }),
22080
22081 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js":
22082 /*!*********************************************************************!*\
22083 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js ***!
22084 \*********************************************************************/
22085 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22086
22087 "use strict";
22088 __webpack_require__.r(__webpack_exports__);
22089 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22090 /* harmony export */ tableCell: () => (/* binding */ tableCell)
22091 /* harmony export */ });
22092 /**
22093 * @typedef {import('hast').Element} Element
22094 * @typedef {import('mdast').TableCell} TableCell
22095 * @typedef {import('../state.js').State} State
22096 */
22097
22098 /**
22099 * Turn an mdast `tableCell` node into hast.
22100 *
22101 * @param {State} state
22102 * Info passed around.
22103 * @param {TableCell} node
22104 * mdast node.
22105 * @returns {Element}
22106 * hast node.
22107 */
22108 function tableCell(state, node) {
22109 // Note: this function is normally not called: see `table-row` for how rows
22110 // and their cells are compiled.
22111 /** @type {Element} */
22112 const result = {
22113 type: 'element',
22114 tagName: 'td', // Assume body cell.
22115 properties: {},
22116 children: state.all(node)
22117 }
22118 state.patch(node, result)
22119 return state.applyData(node, result)
22120 }
22121
22122
22123 /***/ }),
22124
22125 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js":
22126 /*!********************************************************************!*\
22127 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-row.js ***!
22128 \********************************************************************/
22129 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22130
22131 "use strict";
22132 __webpack_require__.r(__webpack_exports__);
22133 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22134 /* harmony export */ tableRow: () => (/* binding */ tableRow)
22135 /* harmony export */ });
22136 /**
22137 * @typedef {import('hast').Properties} Properties
22138 * @typedef {import('hast').Element} Element
22139 * @typedef {import('hast').ElementContent} ElementContent
22140 * @typedef {import('mdast').Content} Content
22141 * @typedef {import('mdast').Parent} Parent
22142 * @typedef {import('mdast').Root} Root
22143 * @typedef {import('mdast').TableRow} TableRow
22144 * @typedef {import('../state.js').State} State
22145 */
22146
22147 /**
22148 * @typedef {Root | Content} Nodes
22149 * @typedef {Extract<Nodes, Parent>} Parents
22150 */
22151
22152 /**
22153 * Turn an mdast `tableRow` node into hast.
22154 *
22155 * @param {State} state
22156 * Info passed around.
22157 * @param {TableRow} node
22158 * mdast node.
22159 * @param {Parents | null | undefined} parent
22160 * Parent of `node`.
22161 * @returns {Element}
22162 * hast node.
22163 */
22164 function tableRow(state, node, parent) {
22165 const siblings = parent ? parent.children : undefined
22166 // Generate a body row when without parent.
22167 const rowIndex = siblings ? siblings.indexOf(node) : 1
22168 const tagName = rowIndex === 0 ? 'th' : 'td'
22169 const align = parent && parent.type === 'table' ? parent.align : undefined
22170 const length = align ? align.length : node.children.length
22171 let cellIndex = -1
22172 /** @type {Array<ElementContent>} */
22173 const cells = []
22174
22175 while (++cellIndex < length) {
22176 // Note: can also be undefined.
22177 const cell = node.children[cellIndex]
22178 /** @type {Properties} */
22179 const properties = {}
22180 const alignValue = align ? align[cellIndex] : undefined
22181
22182 if (alignValue) {
22183 properties.align = alignValue
22184 }
22185
22186 /** @type {Element} */
22187 let result = {type: 'element', tagName, properties, children: []}
22188
22189 if (cell) {
22190 result.children = state.all(cell)
22191 state.patch(cell, result)
22192 result = state.applyData(node, result)
22193 }
22194
22195 cells.push(result)
22196 }
22197
22198 /** @type {Element} */
22199 const result = {
22200 type: 'element',
22201 tagName: 'tr',
22202 properties: {},
22203 children: state.wrap(cells, true)
22204 }
22205 state.patch(node, result)
22206 return state.applyData(node, result)
22207 }
22208
22209
22210 /***/ }),
22211
22212 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table.js":
22213 /*!****************************************************************!*\
22214 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table.js ***!
22215 \****************************************************************/
22216 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22217
22218 "use strict";
22219 __webpack_require__.r(__webpack_exports__);
22220 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22221 /* harmony export */ table: () => (/* binding */ table)
22222 /* harmony export */ });
22223 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22224 /**
22225 * @typedef {import('hast').Element} Element
22226 * @typedef {import('mdast').Table} Table
22227 * @typedef {import('../state.js').State} State
22228 */
22229
22230
22231
22232 /**
22233 * Turn an mdast `table` node into hast.
22234 *
22235 * @param {State} state
22236 * Info passed around.
22237 * @param {Table} node
22238 * mdast node.
22239 * @returns {Element}
22240 * hast node.
22241 */
22242 function table(state, node) {
22243 const rows = state.all(node)
22244 const firstRow = rows.shift()
22245 /** @type {Array<Element>} */
22246 const tableContent = []
22247
22248 if (firstRow) {
22249 /** @type {Element} */
22250 const head = {
22251 type: 'element',
22252 tagName: 'thead',
22253 properties: {},
22254 children: state.wrap([firstRow], true)
22255 }
22256 state.patch(node.children[0], head)
22257 tableContent.push(head)
22258 }
22259
22260 if (rows.length > 0) {
22261 /** @type {Element} */
22262 const body = {
22263 type: 'element',
22264 tagName: 'tbody',
22265 properties: {},
22266 children: state.wrap(rows, true)
22267 }
22268
22269 const start = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointStart)(node.children[1])
22270 const end = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointEnd)(node.children[node.children.length - 1])
22271 if (start.line && end.line) body.position = {start, end}
22272 tableContent.push(body)
22273 }
22274
22275 /** @type {Element} */
22276 const result = {
22277 type: 'element',
22278 tagName: 'table',
22279 properties: {},
22280 children: state.wrap(tableContent, true)
22281 }
22282 state.patch(node, result)
22283 return state.applyData(node, result)
22284 }
22285
22286
22287 /***/ }),
22288
22289 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/text.js":
22290 /*!***************************************************************!*\
22291 !*** ../node_modules/mdast-util-to-hast/lib/handlers/text.js ***!
22292 \***************************************************************/
22293 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22294
22295 "use strict";
22296 __webpack_require__.r(__webpack_exports__);
22297 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22298 /* harmony export */ text: () => (/* binding */ text)
22299 /* harmony export */ });
22300 /* harmony import */ var trim_lines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! trim-lines */ "../node_modules/trim-lines/index.js");
22301 /**
22302 * @typedef {import('hast').Element} HastElement
22303 * @typedef {import('hast').Text} HastText
22304 * @typedef {import('mdast').Text} MdastText
22305 * @typedef {import('../state.js').State} State
22306 */
22307
22308
22309
22310 /**
22311 * Turn an mdast `text` node into hast.
22312 *
22313 * @param {State} state
22314 * Info passed around.
22315 * @param {MdastText} node
22316 * mdast node.
22317 * @returns {HastText | HastElement}
22318 * hast node.
22319 */
22320 function text(state, node) {
22321 /** @type {HastText} */
22322 const result = {type: 'text', value: (0,trim_lines__WEBPACK_IMPORTED_MODULE_0__.trimLines)(String(node.value))}
22323 state.patch(node, result)
22324 return state.applyData(node, result)
22325 }
22326
22327
22328 /***/ }),
22329
22330 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js":
22331 /*!*************************************************************************!*\
22332 !*** ../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js ***!
22333 \*************************************************************************/
22334 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22335
22336 "use strict";
22337 __webpack_require__.r(__webpack_exports__);
22338 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22339 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
22340 /* harmony export */ });
22341 /**
22342 * @typedef {import('hast').Element} Element
22343 * @typedef {import('mdast').ThematicBreak} ThematicBreak
22344 * @typedef {import('../state.js').State} State
22345 */
22346
22347 /**
22348 * Turn an mdast `thematicBreak` node into hast.
22349 *
22350 * @param {State} state
22351 * Info passed around.
22352 * @param {ThematicBreak} node
22353 * mdast node.
22354 * @returns {Element}
22355 * hast node.
22356 */
22357 function thematicBreak(state, node) {
22358 /** @type {Element} */
22359 const result = {
22360 type: 'element',
22361 tagName: 'hr',
22362 properties: {},
22363 children: []
22364 }
22365 state.patch(node, result)
22366 return state.applyData(node, result)
22367 }
22368
22369
22370 /***/ }),
22371
22372 /***/ "../node_modules/mdast-util-to-hast/lib/index.js":
22373 /*!*******************************************************!*\
22374 !*** ../node_modules/mdast-util-to-hast/lib/index.js ***!
22375 \*******************************************************/
22376 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22377
22378 "use strict";
22379 __webpack_require__.r(__webpack_exports__);
22380 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22381 /* harmony export */ toHast: () => (/* binding */ toHast)
22382 /* harmony export */ });
22383 /* harmony import */ var _footer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer.js */ "../node_modules/mdast-util-to-hast/lib/footer.js");
22384 /* harmony import */ var _state_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.js */ "../node_modules/mdast-util-to-hast/lib/state.js");
22385 /**
22386 * @typedef {import('hast').Content} HastContent
22387 * @typedef {import('hast').Root} HastRoot
22388 *
22389 * @typedef {import('mdast').Content} MdastContent
22390 * @typedef {import('mdast').Root} MdastRoot
22391 *
22392 * @typedef {import('./state.js').Options} Options
22393 */
22394
22395 /**
22396 * @typedef {HastRoot | HastContent} HastNodes
22397 * @typedef {MdastRoot | MdastContent} MdastNodes
22398 */
22399
22400
22401
22402
22403 /**
22404 * Transform mdast to hast.
22405 *
22406 * ##### Notes
22407 *
22408 * ###### HTML
22409 *
22410 * Raw HTML is available in mdast as `html` nodes and can be embedded in hast
22411 * as semistandard `raw` nodes.
22412 * Most utilities ignore `raw` nodes but two notable ones don’t:
22413 *
22414 * * `hast-util-to-html` also has an option `allowDangerousHtml` which will
22415 * output the raw HTML.
22416 * This is typically discouraged as noted by the option name but is useful
22417 * if you completely trust authors
22418 * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them
22419 * into standard hast nodes (`element`, `text`, etc).
22420 * This is a heavy task as it needs a full HTML parser, but it is the only
22421 * way to support untrusted content
22422 *
22423 * ###### Footnotes
22424 *
22425 * Many options supported here relate to footnotes.
22426 * Footnotes are not specified by CommonMark, which we follow by default.
22427 * They are supported by GitHub, so footnotes can be enabled in markdown with
22428 * `mdast-util-gfm`.
22429 *
22430 * The options `footnoteBackLabel` and `footnoteLabel` define natural language
22431 * that explains footnotes, which is hidden for sighted users but shown to
22432 * assistive technology.
22433 * When your page is not in English, you must define translated values.
22434 *
22435 * Back references use ARIA attributes, but the section label itself uses a
22436 * heading that is hidden with an `sr-only` class.
22437 * To show it to sighted users, define different attributes in
22438 * `footnoteLabelProperties`.
22439 *
22440 * ###### Clobbering
22441 *
22442 * Footnotes introduces a problem, as it links footnote calls to footnote
22443 * definitions on the page through `id` attributes generated from user content,
22444 * which results in DOM clobbering.
22445 *
22446 * DOM clobbering is this:
22447 *
22448 * ```html
22449 * <p id=x></p>
22450 * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>
22451 * ```
22452 *
22453 * Elements by their ID are made available by browsers on the `window` object,
22454 * which is a security risk.
22455 * Using a prefix solves this problem.
22456 *
22457 * More information on how to handle clobbering and the prefix is explained in
22458 * Example: headings (DOM clobbering) in `rehype-sanitize`.
22459 *
22460 * ###### Unknown nodes
22461 *
22462 * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.
22463 * The default behavior for unknown nodes is:
22464 *
22465 * * when the node has a `value` (and doesn’t have `data.hName`,
22466 * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`
22467 * node
22468 * * otherwise, create a `<div>` element (which could be changed with
22469 * `data.hName`), with its children mapped from mdast to hast as well
22470 *
22471 * This behavior can be changed by passing an `unknownHandler`.
22472 *
22473 * @param {MdastNodes} tree
22474 * mdast tree.
22475 * @param {Options | null | undefined} [options]
22476 * Configuration.
22477 * @returns {HastNodes | null | undefined}
22478 * hast tree.
22479 */
22480 // To do: next major: always return a single `root`.
22481 function toHast(tree, options) {
22482 const state = (0,_state_js__WEBPACK_IMPORTED_MODULE_0__.createState)(tree, options)
22483 const node = state.one(tree, null)
22484 const foot = (0,_footer_js__WEBPACK_IMPORTED_MODULE_1__.footer)(state)
22485
22486 if (foot) {
22487 // @ts-expect-error If there’s a footer, there were definitions, meaning block
22488 // content.
22489 // So assume `node` is a parent node.
22490 node.children.push({type: 'text', value: '\n'}, foot)
22491 }
22492
22493 // To do: next major: always return root?
22494 return Array.isArray(node) ? {type: 'root', children: node} : node
22495 }
22496
22497
22498 /***/ }),
22499
22500 /***/ "../node_modules/mdast-util-to-hast/lib/revert.js":
22501 /*!********************************************************!*\
22502 !*** ../node_modules/mdast-util-to-hast/lib/revert.js ***!
22503 \********************************************************/
22504 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22505
22506 "use strict";
22507 __webpack_require__.r(__webpack_exports__);
22508 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22509 /* harmony export */ revert: () => (/* binding */ revert)
22510 /* harmony export */ });
22511 /**
22512 * @typedef {import('hast').ElementContent} ElementContent
22513 *
22514 * @typedef {import('mdast').Content} Content
22515 * @typedef {import('mdast').Reference} Reference
22516 * @typedef {import('mdast').Root} Root
22517 *
22518 * @typedef {import('./state.js').State} State
22519 */
22520
22521 /**
22522 * @typedef {Root | Content} Nodes
22523 * @typedef {Extract<Nodes, Reference>} References
22524 */
22525
22526 // To do: next major: always return array.
22527
22528 /**
22529 * Return the content of a reference without definition as plain text.
22530 *
22531 * @param {State} state
22532 * Info passed around.
22533 * @param {References} node
22534 * Reference node (image, link).
22535 * @returns {ElementContent | Array<ElementContent>}
22536 * hast content.
22537 */
22538 function revert(state, node) {
22539 const subtype = node.referenceType
22540 let suffix = ']'
22541
22542 if (subtype === 'collapsed') {
22543 suffix += '[]'
22544 } else if (subtype === 'full') {
22545 suffix += '[' + (node.label || node.identifier) + ']'
22546 }
22547
22548 if (node.type === 'imageReference') {
22549 return {type: 'text', value: '![' + node.alt + suffix}
22550 }
22551
22552 const contents = state.all(node)
22553 const head = contents[0]
22554
22555 if (head && head.type === 'text') {
22556 head.value = '[' + head.value
22557 } else {
22558 contents.unshift({type: 'text', value: '['})
22559 }
22560
22561 const tail = contents[contents.length - 1]
22562
22563 if (tail && tail.type === 'text') {
22564 tail.value += suffix
22565 } else {
22566 contents.push({type: 'text', value: suffix})
22567 }
22568
22569 return contents
22570 }
22571
22572
22573 /***/ }),
22574
22575 /***/ "../node_modules/mdast-util-to-hast/lib/state.js":
22576 /*!*******************************************************!*\
22577 !*** ../node_modules/mdast-util-to-hast/lib/state.js ***!
22578 \*******************************************************/
22579 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22580
22581 "use strict";
22582 __webpack_require__.r(__webpack_exports__);
22583 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22584 /* harmony export */ all: () => (/* binding */ all),
22585 /* harmony export */ createState: () => (/* binding */ createState),
22586 /* harmony export */ one: () => (/* binding */ one),
22587 /* harmony export */ wrap: () => (/* binding */ wrap)
22588 /* harmony export */ });
22589 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
22590 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22591 /* harmony import */ var unist_util_generated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! unist-util-generated */ "../node_modules/unist-util-generated/lib/index.js");
22592 /* harmony import */ var mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-definitions */ "../node_modules/mdast-util-definitions/lib/index.js");
22593 /* 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");
22594 /**
22595 * @typedef {import('hast').Content} HastContent
22596 * @typedef {import('hast').Element} HastElement
22597 * @typedef {import('hast').ElementContent} HastElementContent
22598 * @typedef {import('hast').Properties} HastProperties
22599 * @typedef {import('hast').Root} HastRoot
22600 * @typedef {import('hast').Text} HastText
22601 *
22602 * @typedef {import('mdast').Content} MdastContent
22603 * @typedef {import('mdast').Definition} MdastDefinition
22604 * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition
22605 * @typedef {import('mdast').Parent} MdastParent
22606 * @typedef {import('mdast').Root} MdastRoot
22607 */
22608
22609 /**
22610 * @typedef {HastRoot | HastContent} HastNodes
22611 * @typedef {MdastRoot | MdastContent} MdastNodes
22612 * @typedef {Extract<MdastNodes, MdastParent>} MdastParents
22613 *
22614 * @typedef EmbeddedHastFields
22615 * hast fields.
22616 * @property {string | null | undefined} [hName]
22617 * Generate a specific element with this tag name instead.
22618 * @property {HastProperties | null | undefined} [hProperties]
22619 * Generate an element with these properties instead.
22620 * @property {Array<HastElementContent> | null | undefined} [hChildren]
22621 * Generate an element with this content instead.
22622 *
22623 * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData
22624 * mdast data with embedded hast fields.
22625 *
22626 * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData
22627 * mdast node with embedded hast data.
22628 *
22629 * @typedef PointLike
22630 * Point-like value.
22631 * @property {number | null | undefined} [line]
22632 * Line.
22633 * @property {number | null | undefined} [column]
22634 * Column.
22635 * @property {number | null | undefined} [offset]
22636 * Offset.
22637 *
22638 * @typedef PositionLike
22639 * Position-like value.
22640 * @property {PointLike | null | undefined} [start]
22641 * Point-like value.
22642 * @property {PointLike | null | undefined} [end]
22643 * Point-like value.
22644 *
22645 * @callback Handler
22646 * Handle a node.
22647 * @param {State} state
22648 * Info passed around.
22649 * @param {any} node
22650 * mdast node to handle.
22651 * @param {MdastParents | null | undefined} parent
22652 * Parent of `node`.
22653 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22654 * hast node.
22655 *
22656 * @callback HFunctionProps
22657 * Signature of `state` for when props are passed.
22658 * @param {MdastNodes | PositionLike | null | undefined} node
22659 * mdast node or unist position.
22660 * @param {string} tagName
22661 * HTML tag name.
22662 * @param {HastProperties} props
22663 * Properties.
22664 * @param {Array<HastElementContent> | null | undefined} [children]
22665 * hast content.
22666 * @returns {HastElement}
22667 * Compiled element.
22668 *
22669 * @callback HFunctionNoProps
22670 * Signature of `state` for when no props are passed.
22671 * @param {MdastNodes | PositionLike | null | undefined} node
22672 * mdast node or unist position.
22673 * @param {string} tagName
22674 * HTML tag name.
22675 * @param {Array<HastElementContent> | null | undefined} [children]
22676 * hast content.
22677 * @returns {HastElement}
22678 * Compiled element.
22679 *
22680 * @typedef HFields
22681 * Info on `state`.
22682 * @property {boolean} dangerous
22683 * Whether HTML is allowed.
22684 * @property {string} clobberPrefix
22685 * Prefix to use to prevent DOM clobbering.
22686 * @property {string} footnoteLabel
22687 * Label to use to introduce the footnote section.
22688 * @property {string} footnoteLabelTagName
22689 * HTML used for the footnote label.
22690 * @property {HastProperties} footnoteLabelProperties
22691 * Properties on the HTML tag used for the footnote label.
22692 * @property {string} footnoteBackLabel
22693 * Label to use from backreferences back to their footnote call.
22694 * @property {(identifier: string) => MdastDefinition | null} definition
22695 * Definition cache.
22696 * @property {Record<string, MdastFootnoteDefinition>} footnoteById
22697 * Footnote definitions by their identifier.
22698 * @property {Array<string>} footnoteOrder
22699 * Identifiers of order when footnote calls first appear in tree order.
22700 * @property {Record<string, number>} footnoteCounts
22701 * Counts for how often the same footnote was called.
22702 * @property {Handlers} handlers
22703 * Applied handlers.
22704 * @property {Handler} unknownHandler
22705 * Handler for any none not in `passThrough` or otherwise handled.
22706 * @property {(from: MdastNodes, node: HastNodes) => void} patch
22707 * Copy a node’s positional info.
22708 * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData
22709 * Honor the `data` of `from`, and generate an element instead of `node`.
22710 * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one
22711 * Transform an mdast node to hast.
22712 * @property {(node: MdastNodes) => Array<HastElementContent>} all
22713 * Transform the children of an mdast parent to hast.
22714 * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap
22715 * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.
22716 * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment
22717 * Like `state` but lower-level and usable on non-elements.
22718 * Deprecated: use `patch` and `applyData`.
22719 * @property {Array<string>} passThrough
22720 * List of node types to pass through untouched (except for their children).
22721 *
22722 * @typedef Options
22723 * Configuration (optional).
22724 * @property {boolean | null | undefined} [allowDangerousHtml=false]
22725 * Whether to persist raw HTML in markdown in the hast tree.
22726 * @property {string | null | undefined} [clobberPrefix='user-content-']
22727 * Prefix to use before the `id` attribute on footnotes to prevent it from
22728 * *clobbering*.
22729 * @property {string | null | undefined} [footnoteBackLabel='Back to content']
22730 * Label to use from backreferences back to their footnote call (affects
22731 * screen readers).
22732 * @property {string | null | undefined} [footnoteLabel='Footnotes']
22733 * Label to use for the footnotes section (affects screen readers).
22734 * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]
22735 * Properties to use on the footnote label (note that `id: 'footnote-label'`
22736 * is always added as footnote calls use it with `aria-describedby` to
22737 * provide an accessible label).
22738 * @property {string | null | undefined} [footnoteLabelTagName='h2']
22739 * Tag name to use for the footnote label.
22740 * @property {Handlers | null | undefined} [handlers]
22741 * Extra handlers for nodes.
22742 * @property {Array<string> | null | undefined} [passThrough]
22743 * List of custom mdast node types to pass through (keep) in hast (note that
22744 * the node itself is passed, but eventual children are transformed).
22745 * @property {Handler | null | undefined} [unknownHandler]
22746 * Handler for all unknown nodes.
22747 *
22748 * @typedef {Record<string, Handler>} Handlers
22749 * Handle nodes.
22750 *
22751 * @typedef {HFunctionProps & HFunctionNoProps & HFields} State
22752 * Info passed around.
22753 */
22754
22755
22756
22757
22758
22759
22760
22761 const own = {}.hasOwnProperty
22762
22763 /**
22764 * Create `state` from an mdast tree.
22765 *
22766 * @param {MdastNodes} tree
22767 * mdast node to transform.
22768 * @param {Options | null | undefined} [options]
22769 * Configuration.
22770 * @returns {State}
22771 * `state` function.
22772 */
22773 function createState(tree, options) {
22774 const settings = options || {}
22775 const dangerous = settings.allowDangerousHtml || false
22776 /** @type {Record<string, MdastFootnoteDefinition>} */
22777 const footnoteById = {}
22778
22779 // To do: next major: add `options` to state, remove:
22780 // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,
22781 // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,
22782 // `unknownHandler`.
22783
22784 // To do: next major: move to `state.options.allowDangerousHtml`.
22785 state.dangerous = dangerous
22786 // To do: next major: move to `state.options`.
22787 state.clobberPrefix =
22788 settings.clobberPrefix === undefined || settings.clobberPrefix === null
22789 ? 'user-content-'
22790 : settings.clobberPrefix
22791 // To do: next major: move to `state.options`.
22792 state.footnoteLabel = settings.footnoteLabel || 'Footnotes'
22793 // To do: next major: move to `state.options`.
22794 state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'
22795 // To do: next major: move to `state.options`.
22796 state.footnoteLabelProperties = settings.footnoteLabelProperties || {
22797 className: ['sr-only']
22798 }
22799 // To do: next major: move to `state.options`.
22800 state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'
22801 // To do: next major: move to `state.options`.
22802 state.unknownHandler = settings.unknownHandler
22803 // To do: next major: move to `state.options`.
22804 state.passThrough = settings.passThrough
22805
22806 state.handlers = {..._handlers_index_js__WEBPACK_IMPORTED_MODULE_0__.handlers, ...settings.handlers}
22807
22808 // To do: next major: replace utility with `definitionById` object, so we
22809 // only walk once (as we need footnotes too).
22810 state.definition = (0,mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__.definitions)(tree)
22811 state.footnoteById = footnoteById
22812 /** @type {Array<string>} */
22813 state.footnoteOrder = []
22814 /** @type {Record<string, number>} */
22815 state.footnoteCounts = {}
22816
22817 state.patch = patch
22818 state.applyData = applyData
22819 state.one = oneBound
22820 state.all = allBound
22821 state.wrap = wrap
22822 // To do: next major: remove `augment`.
22823 state.augment = augment
22824
22825 ;(0,unist_util_visit__WEBPACK_IMPORTED_MODULE_2__.visit)(tree, 'footnoteDefinition', (definition) => {
22826 const id = String(definition.identifier).toUpperCase()
22827
22828 // Mimick CM behavior of link definitions.
22829 // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.
22830 if (!own.call(footnoteById, id)) {
22831 footnoteById[id] = definition
22832 }
22833 })
22834
22835 // @ts-expect-error Hush, it’s fine!
22836 return state
22837
22838 /**
22839 * Finalise the created `right`, a hast node, from `left`, an mdast node.
22840 *
22841 * @param {MdastNodeWithData | PositionLike | null | undefined} left
22842 * @param {HastElementContent} right
22843 * @returns {HastElementContent}
22844 */
22845 /* c8 ignore start */
22846 // To do: next major: remove.
22847 function augment(left, right) {
22848 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
22849 if (left && 'data' in left && left.data) {
22850 /** @type {MdastData} */
22851 const data = left.data
22852
22853 if (data.hName) {
22854 if (right.type !== 'element') {
22855 right = {
22856 type: 'element',
22857 tagName: '',
22858 properties: {},
22859 children: []
22860 }
22861 }
22862
22863 right.tagName = data.hName
22864 }
22865
22866 if (right.type === 'element' && data.hProperties) {
22867 right.properties = {...right.properties, ...data.hProperties}
22868 }
22869
22870 if ('children' in right && right.children && data.hChildren) {
22871 right.children = data.hChildren
22872 }
22873 }
22874
22875 if (left) {
22876 const ctx = 'type' in left ? left : {position: left}
22877
22878 if (!(0,unist_util_generated__WEBPACK_IMPORTED_MODULE_3__.generated)(ctx)) {
22879 // @ts-expect-error: fine.
22880 right.position = {start: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointStart)(ctx), end: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointEnd)(ctx)}
22881 }
22882 }
22883
22884 return right
22885 }
22886 /* c8 ignore stop */
22887
22888 /**
22889 * Create an element for `node`.
22890 *
22891 * @type {HFunctionProps}
22892 */
22893 /* c8 ignore start */
22894 // To do: next major: remove.
22895 function state(node, tagName, props, children) {
22896 if (Array.isArray(props)) {
22897 children = props
22898 props = {}
22899 }
22900
22901 // @ts-expect-error augmenting an element yields an element.
22902 return augment(node, {
22903 type: 'element',
22904 tagName,
22905 properties: props || {},
22906 children: children || []
22907 })
22908 }
22909 /* c8 ignore stop */
22910
22911 /**
22912 * Transform an mdast node into a hast node.
22913 *
22914 * @param {MdastNodes} node
22915 * mdast node.
22916 * @param {MdastParents | null | undefined} [parent]
22917 * Parent of `node`.
22918 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
22919 * Resulting hast node.
22920 */
22921 function oneBound(node, parent) {
22922 // @ts-expect-error: that’s a state :)
22923 return one(state, node, parent)
22924 }
22925
22926 /**
22927 * Transform the children of an mdast node into hast nodes.
22928 *
22929 * @param {MdastNodes} parent
22930 * mdast node to compile
22931 * @returns {Array<HastElementContent>}
22932 * Resulting hast nodes.
22933 */
22934 function allBound(parent) {
22935 // @ts-expect-error: that’s a state :)
22936 return all(state, parent)
22937 }
22938 }
22939
22940 /**
22941 * Copy a node’s positional info.
22942 *
22943 * @param {MdastNodes} from
22944 * mdast node to copy from.
22945 * @param {HastNodes} to
22946 * hast node to copy into.
22947 * @returns {void}
22948 * Nothing.
22949 */
22950 function patch(from, to) {
22951 if (from.position) to.position = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.position)(from)
22952 }
22953
22954 /**
22955 * Honor the `data` of `from` and maybe generate an element instead of `to`.
22956 *
22957 * @template {HastNodes} Type
22958 * Node type.
22959 * @param {MdastNodes} from
22960 * mdast node to use data from.
22961 * @param {Type} to
22962 * hast node to change.
22963 * @returns {Type | HastElement}
22964 * Nothing.
22965 */
22966 function applyData(from, to) {
22967 /** @type {Type | HastElement} */
22968 let result = to
22969
22970 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
22971 if (from && from.data) {
22972 const hName = from.data.hName
22973 const hChildren = from.data.hChildren
22974 const hProperties = from.data.hProperties
22975
22976 if (typeof hName === 'string') {
22977 // Transforming the node resulted in an element with a different name
22978 // than wanted:
22979 if (result.type === 'element') {
22980 result.tagName = hName
22981 }
22982 // Transforming the node resulted in a non-element, which happens for
22983 // raw, text, and root nodes (unless custom handlers are passed).
22984 // The intent is likely to keep the content around (otherwise: pass
22985 // `hChildren`).
22986 else {
22987 result = {
22988 type: 'element',
22989 tagName: hName,
22990 properties: {},
22991 children: []
22992 }
22993
22994 // To do: next major: take the children from the `root`, or inject the
22995 // raw/text/comment or so into the element?
22996 // if ('children' in node) {
22997 // // @ts-expect-error: assume `children` are allowed in elements.
22998 // result.children = node.children
22999 // } else {
23000 // // @ts-expect-error: assume `node` is allowed in elements.
23001 // result.children.push(node)
23002 // }
23003 }
23004 }
23005
23006 if (result.type === 'element' && hProperties) {
23007 result.properties = {...result.properties, ...hProperties}
23008 }
23009
23010 if (
23011 'children' in result &&
23012 result.children &&
23013 hChildren !== null &&
23014 hChildren !== undefined
23015 ) {
23016 // @ts-expect-error: assume valid children are defined.
23017 result.children = hChildren
23018 }
23019 }
23020
23021 return result
23022 }
23023
23024 /**
23025 * Transform an mdast node into a hast node.
23026 *
23027 * @param {State} state
23028 * Info passed around.
23029 * @param {MdastNodes} node
23030 * mdast node.
23031 * @param {MdastParents | null | undefined} [parent]
23032 * Parent of `node`.
23033 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23034 * Resulting hast node.
23035 */
23036 // To do: next major: do not expose, keep bound.
23037 function one(state, node, parent) {
23038 const type = node && node.type
23039
23040 // Fail on non-nodes.
23041 if (!type) {
23042 throw new Error('Expected node, got `' + node + '`')
23043 }
23044
23045 if (own.call(state.handlers, type)) {
23046 return state.handlers[type](state, node, parent)
23047 }
23048
23049 if (state.passThrough && state.passThrough.includes(type)) {
23050 // To do: next major: deep clone.
23051 // @ts-expect-error: types of passed through nodes are expected to be added manually.
23052 return 'children' in node ? {...node, children: all(state, node)} : node
23053 }
23054
23055 if (state.unknownHandler) {
23056 return state.unknownHandler(state, node, parent)
23057 }
23058
23059 return defaultUnknownHandler(state, node)
23060 }
23061
23062 /**
23063 * Transform the children of an mdast node into hast nodes.
23064 *
23065 * @param {State} state
23066 * Info passed around.
23067 * @param {MdastNodes} parent
23068 * mdast node to compile
23069 * @returns {Array<HastElementContent>}
23070 * Resulting hast nodes.
23071 */
23072 // To do: next major: do not expose, keep bound.
23073 function all(state, parent) {
23074 /** @type {Array<HastElementContent>} */
23075 const values = []
23076
23077 if ('children' in parent) {
23078 const nodes = parent.children
23079 let index = -1
23080 while (++index < nodes.length) {
23081 const result = one(state, nodes[index], parent)
23082
23083 // To do: see if we van clean this? Can we merge texts?
23084 if (result) {
23085 if (index && nodes[index - 1].type === 'break') {
23086 if (!Array.isArray(result) && result.type === 'text') {
23087 result.value = result.value.replace(/^\s+/, '')
23088 }
23089
23090 if (!Array.isArray(result) && result.type === 'element') {
23091 const head = result.children[0]
23092
23093 if (head && head.type === 'text') {
23094 head.value = head.value.replace(/^\s+/, '')
23095 }
23096 }
23097 }
23098
23099 if (Array.isArray(result)) {
23100 values.push(...result)
23101 } else {
23102 values.push(result)
23103 }
23104 }
23105 }
23106 }
23107
23108 return values
23109 }
23110
23111 /**
23112 * Transform an unknown node.
23113 *
23114 * @param {State} state
23115 * Info passed around.
23116 * @param {MdastNodes} node
23117 * Unknown mdast node.
23118 * @returns {HastText | HastElement}
23119 * Resulting hast node.
23120 */
23121 function defaultUnknownHandler(state, node) {
23122 const data = node.data || {}
23123 /** @type {HastText | HastElement} */
23124 const result =
23125 'value' in node &&
23126 !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))
23127 ? {type: 'text', value: node.value}
23128 : {
23129 type: 'element',
23130 tagName: 'div',
23131 properties: {},
23132 children: all(state, node)
23133 }
23134
23135 state.patch(node, result)
23136 return state.applyData(node, result)
23137 }
23138
23139 /**
23140 * Wrap `nodes` with line endings between each node.
23141 *
23142 * @template {HastContent} Type
23143 * Node type.
23144 * @param {Array<Type>} nodes
23145 * List of nodes to wrap.
23146 * @param {boolean | null | undefined} [loose=false]
23147 * Whether to add line endings at start and end.
23148 * @returns {Array<Type | HastText>}
23149 * Wrapped nodes.
23150 */
23151 function wrap(nodes, loose) {
23152 /** @type {Array<Type | HastText>} */
23153 const result = []
23154 let index = -1
23155
23156 if (loose) {
23157 result.push({type: 'text', value: '\n'})
23158 }
23159
23160 while (++index < nodes.length) {
23161 if (index) result.push({type: 'text', value: '\n'})
23162 result.push(nodes[index])
23163 }
23164
23165 if (loose && nodes.length > 0) {
23166 result.push({type: 'text', value: '\n'})
23167 }
23168
23169 return result
23170 }
23171
23172
23173 /***/ }),
23174
23175 /***/ "../node_modules/mdast-util-to-string/lib/index.js":
23176 /*!*********************************************************!*\
23177 !*** ../node_modules/mdast-util-to-string/lib/index.js ***!
23178 \*********************************************************/
23179 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23180
23181 "use strict";
23182 __webpack_require__.r(__webpack_exports__);
23183 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23184 /* harmony export */ toString: () => (/* binding */ toString)
23185 /* harmony export */ });
23186 /**
23187 * @typedef {import('mdast').Root|import('mdast').Content} Node
23188 *
23189 * @typedef Options
23190 * Configuration (optional).
23191 * @property {boolean | null | undefined} [includeImageAlt=true]
23192 * Whether to use `alt` for `image`s.
23193 * @property {boolean | null | undefined} [includeHtml=true]
23194 * Whether to use `value` of HTML.
23195 */
23196
23197 /** @type {Options} */
23198 const emptyOptions = {}
23199
23200 /**
23201 * Get the text content of a node or list of nodes.
23202 *
23203 * Prefers the node’s plain-text fields, otherwise serializes its children,
23204 * and if the given value is an array, serialize the nodes in it.
23205 *
23206 * @param {unknown} value
23207 * Thing to serialize, typically `Node`.
23208 * @param {Options | null | undefined} [options]
23209 * Configuration (optional).
23210 * @returns {string}
23211 * Serialized `value`.
23212 */
23213 function toString(value, options) {
23214 const settings = options || emptyOptions
23215 const includeImageAlt =
23216 typeof settings.includeImageAlt === 'boolean'
23217 ? settings.includeImageAlt
23218 : true
23219 const includeHtml =
23220 typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true
23221
23222 return one(value, includeImageAlt, includeHtml)
23223 }
23224
23225 /**
23226 * One node or several nodes.
23227 *
23228 * @param {unknown} value
23229 * Thing to serialize.
23230 * @param {boolean} includeImageAlt
23231 * Include image `alt`s.
23232 * @param {boolean} includeHtml
23233 * Include HTML.
23234 * @returns {string}
23235 * Serialized node.
23236 */
23237 function one(value, includeImageAlt, includeHtml) {
23238 if (node(value)) {
23239 if ('value' in value) {
23240 return value.type === 'html' && !includeHtml ? '' : value.value
23241 }
23242
23243 if (includeImageAlt && 'alt' in value && value.alt) {
23244 return value.alt
23245 }
23246
23247 if ('children' in value) {
23248 return all(value.children, includeImageAlt, includeHtml)
23249 }
23250 }
23251
23252 if (Array.isArray(value)) {
23253 return all(value, includeImageAlt, includeHtml)
23254 }
23255
23256 return ''
23257 }
23258
23259 /**
23260 * Serialize a list of nodes.
23261 *
23262 * @param {Array<unknown>} values
23263 * Thing to serialize.
23264 * @param {boolean} includeImageAlt
23265 * Include image `alt`s.
23266 * @param {boolean} includeHtml
23267 * Include HTML.
23268 * @returns {string}
23269 * Serialized nodes.
23270 */
23271 function all(values, includeImageAlt, includeHtml) {
23272 /** @type {Array<string>} */
23273 const result = []
23274 let index = -1
23275
23276 while (++index < values.length) {
23277 result[index] = one(values[index], includeImageAlt, includeHtml)
23278 }
23279
23280 return result.join('')
23281 }
23282
23283 /**
23284 * Check if `value` looks like a node.
23285 *
23286 * @param {unknown} value
23287 * Thing.
23288 * @returns {value is Node}
23289 * Whether `value` is a node.
23290 */
23291 function node(value) {
23292 return Boolean(value && typeof value === 'object')
23293 }
23294
23295
23296 /***/ }),
23297
23298 /***/ "../node_modules/micromark-core-commonmark/dev/lib/attention.js":
23299 /*!**********************************************************************!*\
23300 !*** ../node_modules/micromark-core-commonmark/dev/lib/attention.js ***!
23301 \**********************************************************************/
23302 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23303
23304 "use strict";
23305 __webpack_require__.r(__webpack_exports__);
23306 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23307 /* harmony export */ attention: () => (/* binding */ attention)
23308 /* harmony export */ });
23309 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
23310 /* 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");
23311 /* 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");
23312 /* 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");
23313 /* 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");
23314 /* 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");
23315 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23316 /**
23317 * @typedef {import('micromark-util-types').Code} Code
23318 * @typedef {import('micromark-util-types').Construct} Construct
23319 * @typedef {import('micromark-util-types').Event} Event
23320 * @typedef {import('micromark-util-types').Point} Point
23321 * @typedef {import('micromark-util-types').Resolver} Resolver
23322 * @typedef {import('micromark-util-types').State} State
23323 * @typedef {import('micromark-util-types').Token} Token
23324 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23325 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23326 */
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336 /** @type {Construct} */
23337 const attention = {
23338 name: 'attention',
23339 tokenize: tokenizeAttention,
23340 resolveAll: resolveAllAttention
23341 }
23342
23343 /**
23344 * Take all events and resolve attention to emphasis or strong.
23345 *
23346 * @type {Resolver}
23347 */
23348 function resolveAllAttention(events, context) {
23349 let index = -1
23350 /** @type {number} */
23351 let open
23352 /** @type {Token} */
23353 let group
23354 /** @type {Token} */
23355 let text
23356 /** @type {Token} */
23357 let openingSequence
23358 /** @type {Token} */
23359 let closingSequence
23360 /** @type {number} */
23361 let use
23362 /** @type {Array<Event>} */
23363 let nextEvents
23364 /** @type {number} */
23365 let offset
23366
23367 // Walk through all events.
23368 //
23369 // Note: performance of this is fine on an mb of normal markdown, but it’s
23370 // a bottleneck for malicious stuff.
23371 while (++index < events.length) {
23372 // Find a token that can close.
23373 if (
23374 events[index][0] === 'enter' &&
23375 events[index][1].type === 'attentionSequence' &&
23376 events[index][1]._close
23377 ) {
23378 open = index
23379
23380 // Now walk back to find an opener.
23381 while (open--) {
23382 // Find a token that can open the closer.
23383 if (
23384 events[open][0] === 'exit' &&
23385 events[open][1].type === 'attentionSequence' &&
23386 events[open][1]._open &&
23387 // If the markers are the same:
23388 context.sliceSerialize(events[open][1]).charCodeAt(0) ===
23389 context.sliceSerialize(events[index][1]).charCodeAt(0)
23390 ) {
23391 // If the opening can close or the closing can open,
23392 // and the close size *is not* a multiple of three,
23393 // but the sum of the opening and closing size *is* multiple of three,
23394 // then don’t match.
23395 if (
23396 (events[open][1]._close || events[index][1]._open) &&
23397 (events[index][1].end.offset - events[index][1].start.offset) % 3 &&
23398 !(
23399 (events[open][1].end.offset -
23400 events[open][1].start.offset +
23401 events[index][1].end.offset -
23402 events[index][1].start.offset) %
23403 3
23404 )
23405 ) {
23406 continue
23407 }
23408
23409 // Number of markers to use from the sequence.
23410 use =
23411 events[open][1].end.offset - events[open][1].start.offset > 1 &&
23412 events[index][1].end.offset - events[index][1].start.offset > 1
23413 ? 2
23414 : 1
23415
23416 const start = Object.assign({}, events[open][1].end)
23417 const end = Object.assign({}, events[index][1].start)
23418 movePoint(start, -use)
23419 movePoint(end, use)
23420
23421 openingSequence = {
23422 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,
23423 start,
23424 end: Object.assign({}, events[open][1].end)
23425 }
23426 closingSequence = {
23427 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,
23428 start: Object.assign({}, events[index][1].start),
23429 end
23430 }
23431 text = {
23432 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,
23433 start: Object.assign({}, events[open][1].end),
23434 end: Object.assign({}, events[index][1].start)
23435 }
23436 group = {
23437 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,
23438 start: Object.assign({}, openingSequence.start),
23439 end: Object.assign({}, closingSequence.end)
23440 }
23441
23442 events[open][1].end = Object.assign({}, openingSequence.start)
23443 events[index][1].start = Object.assign({}, closingSequence.end)
23444
23445 nextEvents = []
23446
23447 // If there are more markers in the opening, add them before.
23448 if (events[open][1].end.offset - events[open][1].start.offset) {
23449 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23450 ['enter', events[open][1], context],
23451 ['exit', events[open][1], context]
23452 ])
23453 }
23454
23455 // Opening.
23456 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23457 ['enter', group, context],
23458 ['enter', openingSequence, context],
23459 ['exit', openingSequence, context],
23460 ['enter', text, context]
23461 ])
23462
23463 // Always populated by defaults.
23464 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23465 context.parser.constructs.insideSpan.null,
23466 'expected `insideSpan` to be populated'
23467 )
23468
23469 // Between.
23470 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
23471 nextEvents,
23472 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
23473 context.parser.constructs.insideSpan.null,
23474 events.slice(open + 1, index),
23475 context
23476 )
23477 )
23478
23479 // Closing.
23480 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23481 ['exit', text, context],
23482 ['enter', closingSequence, context],
23483 ['exit', closingSequence, context],
23484 ['exit', group, context]
23485 ])
23486
23487 // If there are more markers in the closing, add them after.
23488 if (events[index][1].end.offset - events[index][1].start.offset) {
23489 offset = 2
23490 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23491 ['enter', events[index][1], context],
23492 ['exit', events[index][1], context]
23493 ])
23494 } else {
23495 offset = 0
23496 }
23497
23498 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open - 1, index - open + 3, nextEvents)
23499
23500 index = open + nextEvents.length - offset - 2
23501 break
23502 }
23503 }
23504 }
23505 }
23506
23507 // Remove remaining sequences.
23508 index = -1
23509
23510 while (++index < events.length) {
23511 if (events[index][1].type === 'attentionSequence') {
23512 events[index][1].type = 'data'
23513 }
23514 }
23515
23516 return events
23517 }
23518
23519 /**
23520 * @this {TokenizeContext}
23521 * @type {Tokenizer}
23522 */
23523 function tokenizeAttention(effects, ok) {
23524 const attentionMarkers = this.parser.constructs.attentionMarkers.null
23525 const previous = this.previous
23526 const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(previous)
23527
23528 /** @type {NonNullable<Code>} */
23529 let marker
23530
23531 return start
23532
23533 /**
23534 * Before a sequence.
23535 *
23536 * ```markdown
23537 * > | **
23538 * ^
23539 * ```
23540 *
23541 * @type {State}
23542 */
23543 function start(code) {
23544 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23545 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.underscore,
23546 'expected asterisk or underscore'
23547 )
23548 marker = code
23549 effects.enter('attentionSequence')
23550 return inside(code)
23551 }
23552
23553 /**
23554 * In a sequence.
23555 *
23556 * ```markdown
23557 * > | **
23558 * ^^
23559 * ```
23560 *
23561 * @type {State}
23562 */
23563 function inside(code) {
23564 if (code === marker) {
23565 effects.consume(code)
23566 return inside
23567 }
23568
23569 const token = effects.exit('attentionSequence')
23570
23571 // To do: next major: move this to resolver, just like `markdown-rs`.
23572 const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(code)
23573
23574 // Always populated by defaults.
23575 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(attentionMarkers, 'expected `attentionMarkers` to be populated')
23576
23577 const open =
23578 !after ||
23579 (after === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && before) ||
23580 attentionMarkers.includes(code)
23581 const close =
23582 !before ||
23583 (before === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && after) ||
23584 attentionMarkers.includes(previous)
23585
23586 token._open = Boolean(
23587 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? open : open && (before || !close)
23588 )
23589 token._close = Boolean(
23590 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? close : close && (after || !open)
23591 )
23592 return ok(code)
23593 }
23594 }
23595
23596 /**
23597 * Move a point a bit.
23598 *
23599 * Note: `move` only works inside lines! It’s not possible to move past other
23600 * chunks (replacement characters, tabs, or line endings).
23601 *
23602 * @param {Point} point
23603 * @param {number} offset
23604 * @returns {void}
23605 */
23606 function movePoint(point, offset) {
23607 point.column += offset
23608 point.offset += offset
23609 point._bufferIndex += offset
23610 }
23611
23612
23613 /***/ }),
23614
23615 /***/ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js":
23616 /*!*********************************************************************!*\
23617 !*** ../node_modules/micromark-core-commonmark/dev/lib/autolink.js ***!
23618 \*********************************************************************/
23619 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23620
23621 "use strict";
23622 __webpack_require__.r(__webpack_exports__);
23623 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23624 /* harmony export */ autolink: () => (/* binding */ autolink)
23625 /* harmony export */ });
23626 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23627 /* 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");
23628 /* 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");
23629 /* 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");
23630 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23631 /**
23632 * @typedef {import('micromark-util-types').Construct} Construct
23633 * @typedef {import('micromark-util-types').State} State
23634 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23635 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23636 */
23637
23638
23639
23640
23641
23642
23643
23644 /** @type {Construct} */
23645 const autolink = {name: 'autolink', tokenize: tokenizeAutolink}
23646
23647 /**
23648 * @this {TokenizeContext}
23649 * @type {Tokenizer}
23650 */
23651 function tokenizeAutolink(effects, ok, nok) {
23652 let size = 0
23653
23654 return start
23655
23656 /**
23657 * Start of an autolink.
23658 *
23659 * ```markdown
23660 * > | a<https://example.com>b
23661 * ^
23662 * > | a<user@example.com>b
23663 * ^
23664 * ```
23665 *
23666 * @type {State}
23667 */
23668 function start(code) {
23669 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
23670 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23671 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23672 effects.consume(code)
23673 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23674 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23675 return open
23676 }
23677
23678 /**
23679 * After `<`, at protocol or atext.
23680 *
23681 * ```markdown
23682 * > | a<https://example.com>b
23683 * ^
23684 * > | a<user@example.com>b
23685 * ^
23686 * ```
23687 *
23688 * @type {State}
23689 */
23690 function open(code) {
23691 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
23692 effects.consume(code)
23693 return schemeOrEmailAtext
23694 }
23695
23696 return emailAtext(code)
23697 }
23698
23699 /**
23700 * At second byte of protocol or atext.
23701 *
23702 * ```markdown
23703 * > | a<https://example.com>b
23704 * ^
23705 * > | a<user@example.com>b
23706 * ^
23707 * ```
23708 *
23709 * @type {State}
23710 */
23711 function schemeOrEmailAtext(code) {
23712 // ASCII alphanumeric and `+`, `-`, and `.`.
23713 if (
23714 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23715 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23716 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23717 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
23718 ) {
23719 // Count the previous alphabetical from `open` too.
23720 size = 1
23721 return schemeInsideOrEmailAtext(code)
23722 }
23723
23724 return emailAtext(code)
23725 }
23726
23727 /**
23728 * In ambiguous protocol or atext.
23729 *
23730 * ```markdown
23731 * > | a<https://example.com>b
23732 * ^
23733 * > | a<user@example.com>b
23734 * ^
23735 * ```
23736 *
23737 * @type {State}
23738 */
23739 function schemeInsideOrEmailAtext(code) {
23740 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {
23741 effects.consume(code)
23742 size = 0
23743 return urlInside
23744 }
23745
23746 // ASCII alphanumeric and `+`, `-`, and `.`.
23747 if (
23748 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
23749 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
23750 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
23751 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23752 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax
23753 ) {
23754 effects.consume(code)
23755 return schemeInsideOrEmailAtext
23756 }
23757
23758 size = 0
23759 return emailAtext(code)
23760 }
23761
23762 /**
23763 * After protocol, in URL.
23764 *
23765 * ```markdown
23766 * > | a<https://example.com>b
23767 * ^
23768 * ```
23769 *
23770 * @type {State}
23771 */
23772 function urlInside(code) {
23773 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23774 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
23775 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23776 effects.consume(code)
23777 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23778 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23779 return ok
23780 }
23781
23782 // ASCII control, space, or `<`.
23783 if (
23784 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
23785 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space ||
23786 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
23787 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)
23788 ) {
23789 return nok(code)
23790 }
23791
23792 effects.consume(code)
23793 return urlInside
23794 }
23795
23796 /**
23797 * In email atext.
23798 *
23799 * ```markdown
23800 * > | a<user.name@example.com>b
23801 * ^
23802 * ```
23803 *
23804 * @type {State}
23805 */
23806 function emailAtext(code) {
23807 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {
23808 effects.consume(code)
23809 return emailAtSignOrDot
23810 }
23811
23812 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {
23813 effects.consume(code)
23814 return emailAtext
23815 }
23816
23817 return nok(code)
23818 }
23819
23820 /**
23821 * In label, after at-sign or dot.
23822 *
23823 * ```markdown
23824 * > | a<user.name@example.com>b
23825 * ^ ^
23826 * ```
23827 *
23828 * @type {State}
23829 */
23830 function emailAtSignOrDot(code) {
23831 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code)
23832 }
23833
23834 /**
23835 * In label, where `.` and `>` are allowed.
23836 *
23837 * ```markdown
23838 * > | a<user.name@example.com>b
23839 * ^
23840 * ```
23841 *
23842 * @type {State}
23843 */
23844 function emailLabel(code) {
23845 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {
23846 effects.consume(code)
23847 size = 0
23848 return emailAtSignOrDot
23849 }
23850
23851 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
23852 // Exit, then change the token type.
23853 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
23854 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23855 effects.consume(code)
23856 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
23857 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
23858 return ok
23859 }
23860
23861 return emailValue(code)
23862 }
23863
23864 /**
23865 * In label, where `.` and `>` are *not* allowed.
23866 *
23867 * Though, this is also used in `emailLabel` to parse other values.
23868 *
23869 * ```markdown
23870 * > | a<user.name@ex-ample.com>b
23871 * ^
23872 * ```
23873 *
23874 * @type {State}
23875 */
23876 function emailValue(code) {
23877 // ASCII alphanumeric or `-`.
23878 if (
23879 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
23880 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax
23881 ) {
23882 const next = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel
23883 effects.consume(code)
23884 return next
23885 }
23886
23887 return nok(code)
23888 }
23889 }
23890
23891
23892 /***/ }),
23893
23894 /***/ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js":
23895 /*!***********************************************************************!*\
23896 !*** ../node_modules/micromark-core-commonmark/dev/lib/blank-line.js ***!
23897 \***********************************************************************/
23898 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23899
23900 "use strict";
23901 __webpack_require__.r(__webpack_exports__);
23902 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23903 /* harmony export */ blankLine: () => (/* binding */ blankLine)
23904 /* harmony export */ });
23905 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
23906 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23907 /* 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");
23908 /* 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");
23909 /**
23910 * @typedef {import('micromark-util-types').Construct} Construct
23911 * @typedef {import('micromark-util-types').State} State
23912 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23913 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23914 */
23915
23916
23917
23918
23919
23920
23921 /** @type {Construct} */
23922 const blankLine = {tokenize: tokenizeBlankLine, partial: true}
23923
23924 /**
23925 * @this {TokenizeContext}
23926 * @type {Tokenizer}
23927 */
23928 function tokenizeBlankLine(effects, ok, nok) {
23929 return start
23930
23931 /**
23932 * Start of blank line.
23933 *
23934 * > 👉 **Note**: `␠` represents a space character.
23935 *
23936 * ```markdown
23937 * > | ␠␠␊
23938 * ^
23939 * > | ␊
23940 * ^
23941 * ```
23942 *
23943 * @type {State}
23944 */
23945 function start(code) {
23946 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)
23947 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)(code)
23948 : after(code)
23949 }
23950
23951 /**
23952 * At eof/eol, after optional whitespace.
23953 *
23954 * > 👉 **Note**: `␠` represents a space character.
23955 *
23956 * ```markdown
23957 * > | ␠␠␊
23958 * ^
23959 * > | ␊
23960 * ^
23961 * ```
23962 *
23963 * @type {State}
23964 */
23965 function after(code) {
23966 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)
23967 }
23968 }
23969
23970
23971 /***/ }),
23972
23973 /***/ "../node_modules/micromark-core-commonmark/dev/lib/block-quote.js":
23974 /*!************************************************************************!*\
23975 !*** ../node_modules/micromark-core-commonmark/dev/lib/block-quote.js ***!
23976 \************************************************************************/
23977 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23978
23979 "use strict";
23980 __webpack_require__.r(__webpack_exports__);
23981 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23982 /* harmony export */ blockQuote: () => (/* binding */ blockQuote)
23983 /* harmony export */ });
23984 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
23985 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23986 /* 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");
23987 /* 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");
23988 /* 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");
23989 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23990 /**
23991 * @typedef {import('micromark-util-types').Construct} Construct
23992 * @typedef {import('micromark-util-types').Exiter} Exiter
23993 * @typedef {import('micromark-util-types').State} State
23994 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23995 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23996 */
23997
23998
23999
24000
24001
24002
24003
24004
24005 /** @type {Construct} */
24006 const blockQuote = {
24007 name: 'blockQuote',
24008 tokenize: tokenizeBlockQuoteStart,
24009 continuation: {tokenize: tokenizeBlockQuoteContinuation},
24010 exit
24011 }
24012
24013 /**
24014 * @this {TokenizeContext}
24015 * @type {Tokenizer}
24016 */
24017 function tokenizeBlockQuoteStart(effects, ok, nok) {
24018 const self = this
24019
24020 return start
24021
24022 /**
24023 * Start of block quote.
24024 *
24025 * ```markdown
24026 * > | > a
24027 * ^
24028 * ```
24029 *
24030 * @type {State}
24031 */
24032 function start(code) {
24033 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24034 const state = self.containerState
24035
24036 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(state, 'expected `containerState` to be defined in container')
24037
24038 if (!state.open) {
24039 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote, {_container: true})
24040 state.open = true
24041 }
24042
24043 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24044 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24045 effects.consume(code)
24046 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24047 return after
24048 }
24049
24050 return nok(code)
24051 }
24052
24053 /**
24054 * After `>`, before optional whitespace.
24055 *
24056 * ```markdown
24057 * > | > a
24058 * ^
24059 * ```
24060 *
24061 * @type {State}
24062 */
24063 function after(code) {
24064 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24065 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24066 effects.consume(code)
24067 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24068 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24069 return ok
24070 }
24071
24072 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24073 return ok(code)
24074 }
24075 }
24076
24077 /**
24078 * Start of block quote continuation.
24079 *
24080 * ```markdown
24081 * | > a
24082 * > | > b
24083 * ^
24084 * ```
24085 *
24086 * @this {TokenizeContext}
24087 * @type {Tokenizer}
24088 */
24089 function tokenizeBlockQuoteContinuation(effects, ok, nok) {
24090 const self = this
24091
24092 return contStart
24093
24094 /**
24095 * Start of block quote continuation.
24096 *
24097 * Also used to parse the first block quote opening.
24098 *
24099 * ```markdown
24100 * | > a
24101 * > | > b
24102 * ^
24103 * ```
24104 *
24105 * @type {State}
24106 */
24107 function contStart(code) {
24108 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24109 // Always populated by defaults.
24110 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24111 self.parser.constructs.disable.null,
24112 'expected `disable.null` to be populated'
24113 )
24114
24115 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(
24116 effects,
24117 contBefore,
24118 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24119 self.parser.constructs.disable.null.includes('codeIndented')
24120 ? undefined
24121 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
24122 )(code)
24123 }
24124
24125 return contBefore(code)
24126 }
24127
24128 /**
24129 * At `>`, after optional whitespace.
24130 *
24131 * Also used to parse the first block quote opening.
24132 *
24133 * ```markdown
24134 * | > a
24135 * > | > b
24136 * ^
24137 * ```
24138 *
24139 * @type {State}
24140 */
24141 function contBefore(code) {
24142 return effects.attempt(blockQuote, ok, nok)(code)
24143 }
24144 }
24145
24146 /** @type {Exiter} */
24147 function exit(effects) {
24148 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote)
24149 }
24150
24151
24152 /***/ }),
24153
24154 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-escape.js":
24155 /*!*****************************************************************************!*\
24156 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-escape.js ***!
24157 \*****************************************************************************/
24158 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24159
24160 "use strict";
24161 __webpack_require__.r(__webpack_exports__);
24162 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24163 /* harmony export */ characterEscape: () => (/* binding */ characterEscape)
24164 /* harmony export */ });
24165 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24166 /* 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");
24167 /* 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");
24168 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24169 /**
24170 * @typedef {import('micromark-util-types').Construct} Construct
24171 * @typedef {import('micromark-util-types').State} State
24172 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24173 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24174 */
24175
24176
24177
24178
24179
24180
24181 /** @type {Construct} */
24182 const characterEscape = {
24183 name: 'characterEscape',
24184 tokenize: tokenizeCharacterEscape
24185 }
24186
24187 /**
24188 * @this {TokenizeContext}
24189 * @type {Tokenizer}
24190 */
24191 function tokenizeCharacterEscape(effects, ok, nok) {
24192 return start
24193
24194 /**
24195 * Start of character escape.
24196 *
24197 * ```markdown
24198 * > | a\*b
24199 * ^
24200 * ```
24201 *
24202 * @type {State}
24203 */
24204 function start(code) {
24205 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
24206 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24207 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24208 effects.consume(code)
24209 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24210 return inside
24211 }
24212
24213 /**
24214 * After `\`, at punctuation.
24215 *
24216 * ```markdown
24217 * > | a\*b
24218 * ^
24219 * ```
24220 *
24221 * @type {State}
24222 */
24223 function inside(code) {
24224 // ASCII punctuation.
24225 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiPunctuation)(code)) {
24226 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24227 effects.consume(code)
24228 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24229 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24230 return ok
24231 }
24232
24233 return nok(code)
24234 }
24235 }
24236
24237
24238 /***/ }),
24239
24240 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-reference.js":
24241 /*!********************************************************************************!*\
24242 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-reference.js ***!
24243 \********************************************************************************/
24244 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24245
24246 "use strict";
24247 __webpack_require__.r(__webpack_exports__);
24248 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24249 /* harmony export */ characterReference: () => (/* binding */ characterReference)
24250 /* harmony export */ });
24251 /* 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");
24252 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24253 /* 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");
24254 /* 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");
24255 /* 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");
24256 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24257 /**
24258 * @typedef {import('micromark-util-types').Code} Code
24259 * @typedef {import('micromark-util-types').Construct} Construct
24260 * @typedef {import('micromark-util-types').State} State
24261 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24262 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24263 */
24264
24265
24266
24267
24268
24269
24270
24271
24272 /** @type {Construct} */
24273 const characterReference = {
24274 name: 'characterReference',
24275 tokenize: tokenizeCharacterReference
24276 }
24277
24278 /**
24279 * @this {TokenizeContext}
24280 * @type {Tokenizer}
24281 */
24282 function tokenizeCharacterReference(effects, ok, nok) {
24283 const self = this
24284 let size = 0
24285 /** @type {number} */
24286 let max
24287 /** @type {(code: Code) => boolean} */
24288 let test
24289
24290 return start
24291
24292 /**
24293 * Start of character reference.
24294 *
24295 * ```markdown
24296 * > | a&amp;b
24297 * ^
24298 * > | a&#123;b
24299 * ^
24300 * > | a&#x9;b
24301 * ^
24302 * ```
24303 *
24304 * @type {State}
24305 */
24306 function start(code) {
24307 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.ampersand, 'expected `&`')
24308 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24309 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24310 effects.consume(code)
24311 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24312 return open
24313 }
24314
24315 /**
24316 * After `&`, at `#` for numeric references or alphanumeric for named
24317 * references.
24318 *
24319 * ```markdown
24320 * > | a&amp;b
24321 * ^
24322 * > | a&#123;b
24323 * ^
24324 * > | a&#x9;b
24325 * ^
24326 * ```
24327 *
24328 * @type {State}
24329 */
24330 function open(code) {
24331 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.numberSign) {
24332 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24333 effects.consume(code)
24334 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24335 return numeric
24336 }
24337
24338 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24339 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceNamedSizeMax
24340 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric
24341 return value(code)
24342 }
24343
24344 /**
24345 * After `#`, at `x` for hexadecimals or digit for decimals.
24346 *
24347 * ```markdown
24348 * > | a&#123;b
24349 * ^
24350 * > | a&#x9;b
24351 * ^
24352 * ```
24353 *
24354 * @type {State}
24355 */
24356 function numeric(code) {
24357 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) {
24358 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24359 effects.consume(code)
24360 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24361 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24362 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceHexadecimalSizeMax
24363 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiHexDigit
24364 return value
24365 }
24366
24367 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24368 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceDecimalSizeMax
24369 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiDigit
24370 return value(code)
24371 }
24372
24373 /**
24374 * After markers (`&#x`, `&#`, or `&`), in value, before `;`.
24375 *
24376 * The character reference kind defines what and how many characters are
24377 * allowed.
24378 *
24379 * ```markdown
24380 * > | a&amp;b
24381 * ^^^
24382 * > | a&#123;b
24383 * ^^^
24384 * > | a&#x9;b
24385 * ^
24386 * ```
24387 *
24388 * @type {State}
24389 */
24390 function value(code) {
24391 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.semicolon && size) {
24392 const token = effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24393
24394 if (
24395 test === micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric &&
24396 !(0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__.decodeNamedCharacterReference)(self.sliceSerialize(token))
24397 ) {
24398 return nok(code)
24399 }
24400
24401 // To do: `markdown-rs` uses a different name:
24402 // `CharacterReferenceMarkerSemi`.
24403 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24404 effects.consume(code)
24405 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24406 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24407 return ok
24408 }
24409
24410 if (test(code) && size++ < max) {
24411 effects.consume(code)
24412 return value
24413 }
24414
24415 return nok(code)
24416 }
24417 }
24418
24419
24420 /***/ }),
24421
24422 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js":
24423 /*!************************************************************************!*\
24424 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js ***!
24425 \************************************************************************/
24426 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24427
24428 "use strict";
24429 __webpack_require__.r(__webpack_exports__);
24430 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24431 /* harmony export */ codeFenced: () => (/* binding */ codeFenced)
24432 /* harmony export */ });
24433 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24434 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24435 /* 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");
24436 /* 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");
24437 /* 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");
24438 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24439 /**
24440 * @typedef {import('micromark-util-types').Code} Code
24441 * @typedef {import('micromark-util-types').Construct} Construct
24442 * @typedef {import('micromark-util-types').State} State
24443 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24444 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24445 */
24446
24447
24448
24449
24450
24451
24452
24453
24454 /** @type {Construct} */
24455 const nonLazyContinuation = {
24456 tokenize: tokenizeNonLazyContinuation,
24457 partial: true
24458 }
24459
24460 /** @type {Construct} */
24461 const codeFenced = {
24462 name: 'codeFenced',
24463 tokenize: tokenizeCodeFenced,
24464 concrete: true
24465 }
24466
24467 /**
24468 * @this {TokenizeContext}
24469 * @type {Tokenizer}
24470 */
24471 function tokenizeCodeFenced(effects, ok, nok) {
24472 const self = this
24473 /** @type {Construct} */
24474 const closeStart = {tokenize: tokenizeCloseStart, partial: true}
24475 let initialPrefix = 0
24476 let sizeOpen = 0
24477 /** @type {NonNullable<Code>} */
24478 let marker
24479
24480 return start
24481
24482 /**
24483 * Start of code.
24484 *
24485 * ```markdown
24486 * > | ~~~js
24487 * ^
24488 * | alert(1)
24489 * | ~~~
24490 * ```
24491 *
24492 * @type {State}
24493 */
24494 function start(code) {
24495 // To do: parse whitespace like `markdown-rs`.
24496 return beforeSequenceOpen(code)
24497 }
24498
24499 /**
24500 * In opening fence, after prefix, at sequence.
24501 *
24502 * ```markdown
24503 * > | ~~~js
24504 * ^
24505 * | alert(1)
24506 * | ~~~
24507 * ```
24508 *
24509 * @type {State}
24510 */
24511 function beforeSequenceOpen(code) {
24512 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24513 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.tilde,
24514 'expected `` ` `` or `~`'
24515 )
24516
24517 const tail = self.events[self.events.length - 1]
24518 initialPrefix =
24519 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix
24520 ? tail[2].sliceSerialize(tail[1], true).length
24521 : 0
24522
24523 marker = code
24524 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24525 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24526 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24527 return sequenceOpen(code)
24528 }
24529
24530 /**
24531 * In opening fence sequence.
24532 *
24533 * ```markdown
24534 * > | ~~~js
24535 * ^
24536 * | alert(1)
24537 * | ~~~
24538 * ```
24539 *
24540 * @type {State}
24541 */
24542 function sequenceOpen(code) {
24543 if (code === marker) {
24544 sizeOpen++
24545 effects.consume(code)
24546 return sequenceOpen
24547 }
24548
24549 if (sizeOpen < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.codeFencedSequenceSizeMin) {
24550 return nok(code)
24551 }
24552
24553 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24554 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24555 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, infoBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24556 : infoBefore(code)
24557 }
24558
24559 /**
24560 * In opening fence, after the sequence (and optional whitespace), before info.
24561 *
24562 * ```markdown
24563 * > | ~~~js
24564 * ^
24565 * | alert(1)
24566 * | ~~~
24567 * ```
24568 *
24569 * @type {State}
24570 */
24571 function infoBefore(code) {
24572 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24573 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24574 return self.interrupt
24575 ? ok(code)
24576 : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24577 }
24578
24579 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24580 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})
24581 return info(code)
24582 }
24583
24584 /**
24585 * In info.
24586 *
24587 * ```markdown
24588 * > | ~~~js
24589 * ^
24590 * | alert(1)
24591 * | ~~~
24592 * ```
24593 *
24594 * @type {State}
24595 */
24596 function info(code) {
24597 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24598 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24599 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24600 return infoBefore(code)
24601 }
24602
24603 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
24604 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24605 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24606 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, metaBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24607 }
24608
24609 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24610 return nok(code)
24611 }
24612
24613 effects.consume(code)
24614 return info
24615 }
24616
24617 /**
24618 * In opening fence, after info and whitespace, before meta.
24619 *
24620 * ```markdown
24621 * > | ~~~js eval
24622 * ^
24623 * | alert(1)
24624 * | ~~~
24625 * ```
24626 *
24627 * @type {State}
24628 */
24629 function metaBefore(code) {
24630 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24631 return infoBefore(code)
24632 }
24633
24634 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24635 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})
24636 return meta(code)
24637 }
24638
24639 /**
24640 * In meta.
24641 *
24642 * ```markdown
24643 * > | ~~~js eval
24644 * ^
24645 * | alert(1)
24646 * | ~~~
24647 * ```
24648 *
24649 * @type {State}
24650 */
24651 function meta(code) {
24652 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24653 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24654 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24655 return infoBefore(code)
24656 }
24657
24658 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24659 return nok(code)
24660 }
24661
24662 effects.consume(code)
24663 return meta
24664 }
24665
24666 /**
24667 * At eol/eof in code, before a non-lazy closing fence or content.
24668 *
24669 * ```markdown
24670 * > | ~~~js
24671 * ^
24672 * > | alert(1)
24673 * ^
24674 * | ~~~
24675 * ```
24676 *
24677 * @type {State}
24678 */
24679 function atNonLazyBreak(code) {
24680 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24681 return effects.attempt(closeStart, after, contentBefore)(code)
24682 }
24683
24684 /**
24685 * Before code content, not a closing fence, at eol.
24686 *
24687 * ```markdown
24688 * | ~~~js
24689 * > | alert(1)
24690 * ^
24691 * | ~~~
24692 * ```
24693 *
24694 * @type {State}
24695 */
24696 function contentBefore(code) {
24697 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24698 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24699 effects.consume(code)
24700 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24701 return contentStart
24702 }
24703
24704 /**
24705 * Before code content, not a closing fence.
24706 *
24707 * ```markdown
24708 * | ~~~js
24709 * > | alert(1)
24710 * ^
24711 * | ~~~
24712 * ```
24713 *
24714 * @type {State}
24715 */
24716 function contentStart(code) {
24717 return initialPrefix > 0 && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24718 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24719 effects,
24720 beforeContentChunk,
24721 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24722 initialPrefix + 1
24723 )(code)
24724 : beforeContentChunk(code)
24725 }
24726
24727 /**
24728 * Before code content, after optional prefix.
24729 *
24730 * ```markdown
24731 * | ~~~js
24732 * > | alert(1)
24733 * ^
24734 * | ~~~
24735 * ```
24736 *
24737 * @type {State}
24738 */
24739 function beforeContentChunk(code) {
24740 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24741 return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24742 }
24743
24744 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24745 return contentChunk(code)
24746 }
24747
24748 /**
24749 * In code content.
24750 *
24751 * ```markdown
24752 * | ~~~js
24753 * > | alert(1)
24754 * ^^^^^^^^
24755 * | ~~~
24756 * ```
24757 *
24758 * @type {State}
24759 */
24760 function contentChunk(code) {
24761 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24762 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
24763 return beforeContentChunk(code)
24764 }
24765
24766 effects.consume(code)
24767 return contentChunk
24768 }
24769
24770 /**
24771 * After code.
24772 *
24773 * ```markdown
24774 * | ~~~js
24775 * | alert(1)
24776 * > | ~~~
24777 * ^
24778 * ```
24779 *
24780 * @type {State}
24781 */
24782 function after(code) {
24783 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24784 return ok(code)
24785 }
24786
24787 /**
24788 * @this {TokenizeContext}
24789 * @type {Tokenizer}
24790 */
24791 function tokenizeCloseStart(effects, ok, nok) {
24792 let size = 0
24793
24794 return startBefore
24795
24796 /**
24797 *
24798 *
24799 * @type {State}
24800 */
24801 function startBefore(code) {
24802 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24803 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24804 effects.consume(code)
24805 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24806 return start
24807 }
24808
24809 /**
24810 * Before closing fence, at optional whitespace.
24811 *
24812 * ```markdown
24813 * | ~~~js
24814 * | alert(1)
24815 * > | ~~~
24816 * ^
24817 * ```
24818 *
24819 * @type {State}
24820 */
24821 function start(code) {
24822 // Always populated by defaults.
24823 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24824 self.parser.constructs.disable.null,
24825 'expected `disable.null` to be populated'
24826 )
24827
24828 // To do: `enter` here or in next state?
24829 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24830 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24831 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
24832 effects,
24833 beforeSequenceClose,
24834 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24835 self.parser.constructs.disable.null.includes('codeIndented')
24836 ? undefined
24837 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.tabSize
24838 )(code)
24839 : beforeSequenceClose(code)
24840 }
24841
24842 /**
24843 * In closing fence, after optional whitespace, at sequence.
24844 *
24845 * ```markdown
24846 * | ~~~js
24847 * | alert(1)
24848 * > | ~~~
24849 * ^
24850 * ```
24851 *
24852 * @type {State}
24853 */
24854 function beforeSequenceClose(code) {
24855 if (code === marker) {
24856 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24857 return sequenceClose(code)
24858 }
24859
24860 return nok(code)
24861 }
24862
24863 /**
24864 * In closing fence sequence.
24865 *
24866 * ```markdown
24867 * | ~~~js
24868 * | alert(1)
24869 * > | ~~~
24870 * ^
24871 * ```
24872 *
24873 * @type {State}
24874 */
24875 function sequenceClose(code) {
24876 if (code === marker) {
24877 size++
24878 effects.consume(code)
24879 return sequenceClose
24880 }
24881
24882 if (size >= sizeOpen) {
24883 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24884 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24885 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, sequenceCloseAfter, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24886 : sequenceCloseAfter(code)
24887 }
24888
24889 return nok(code)
24890 }
24891
24892 /**
24893 * After closing fence sequence, after optional whitespace.
24894 *
24895 * ```markdown
24896 * | ~~~js
24897 * | alert(1)
24898 * > | ~~~
24899 * ^
24900 * ```
24901 *
24902 * @type {State}
24903 */
24904 function sequenceCloseAfter(code) {
24905 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24906 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24907 return ok(code)
24908 }
24909
24910 return nok(code)
24911 }
24912 }
24913 }
24914
24915 /**
24916 * @this {TokenizeContext}
24917 * @type {Tokenizer}
24918 */
24919 function tokenizeNonLazyContinuation(effects, ok, nok) {
24920 const self = this
24921
24922 return start
24923
24924 /**
24925 *
24926 *
24927 * @type {State}
24928 */
24929 function start(code) {
24930 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
24931 return nok(code)
24932 }
24933
24934 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
24935 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24936 effects.consume(code)
24937 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
24938 return lineStart
24939 }
24940
24941 /**
24942 *
24943 *
24944 * @type {State}
24945 */
24946 function lineStart(code) {
24947 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
24948 }
24949 }
24950
24951
24952 /***/ }),
24953
24954 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-indented.js":
24955 /*!**************************************************************************!*\
24956 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-indented.js ***!
24957 \**************************************************************************/
24958 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24959
24960 "use strict";
24961 __webpack_require__.r(__webpack_exports__);
24962 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24963 /* harmony export */ codeIndented: () => (/* binding */ codeIndented)
24964 /* harmony export */ });
24965 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24966 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24967 /* 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");
24968 /* 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");
24969 /* 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");
24970 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24971 /**
24972 * @typedef {import('micromark-util-types').Construct} Construct
24973 * @typedef {import('micromark-util-types').State} State
24974 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24975 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24976 */
24977
24978
24979
24980
24981
24982
24983
24984
24985 /** @type {Construct} */
24986 const codeIndented = {
24987 name: 'codeIndented',
24988 tokenize: tokenizeCodeIndented
24989 }
24990
24991 /** @type {Construct} */
24992 const furtherStart = {tokenize: tokenizeFurtherStart, partial: true}
24993
24994 /**
24995 * @this {TokenizeContext}
24996 * @type {Tokenizer}
24997 */
24998 function tokenizeCodeIndented(effects, ok, nok) {
24999 const self = this
25000 return start
25001
25002 /**
25003 * Start of code (indented).
25004 *
25005 * > **Parsing note**: it is not needed to check if this first line is a
25006 * > filled line (that it has a non-whitespace character), because blank lines
25007 * > are parsed already, so we never run into that.
25008 *
25009 * ```markdown
25010 * > | aaa
25011 * ^
25012 * ```
25013 *
25014 * @type {State}
25015 */
25016 function start(code) {
25017 // To do: manually check if interrupting like `markdown-rs`.
25018 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownSpace)(code))
25019 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25020 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25021 // so that we can drop the next state.
25022 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25023 effects,
25024 afterPrefix,
25025 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25026 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25027 )(code)
25028 }
25029
25030 /**
25031 * At start, after 1 or 4 spaces.
25032 *
25033 * ```markdown
25034 * > | aaa
25035 * ^
25036 * ```
25037 *
25038 * @type {State}
25039 */
25040 function afterPrefix(code) {
25041 const tail = self.events[self.events.length - 1]
25042 return tail &&
25043 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25044 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25045 ? atBreak(code)
25046 : nok(code)
25047 }
25048
25049 /**
25050 * At a break.
25051 *
25052 * ```markdown
25053 * > | aaa
25054 * ^ ^
25055 * ```
25056 *
25057 * @type {State}
25058 */
25059 function atBreak(code) {
25060 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
25061 return after(code)
25062 }
25063
25064 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25065 return effects.attempt(furtherStart, atBreak, after)(code)
25066 }
25067
25068 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25069 return inside(code)
25070 }
25071
25072 /**
25073 * In code content.
25074 *
25075 * ```markdown
25076 * > | aaa
25077 * ^^^^
25078 * ```
25079 *
25080 * @type {State}
25081 */
25082 function inside(code) {
25083 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25084 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25085 return atBreak(code)
25086 }
25087
25088 effects.consume(code)
25089 return inside
25090 }
25091
25092 /** @type {State} */
25093 function after(code) {
25094 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25095 // To do: allow interrupting like `markdown-rs`.
25096 // Feel free to interrupt.
25097 // tokenizer.interrupt = false
25098 return ok(code)
25099 }
25100 }
25101
25102 /**
25103 * @this {TokenizeContext}
25104 * @type {Tokenizer}
25105 */
25106 function tokenizeFurtherStart(effects, ok, nok) {
25107 const self = this
25108
25109 return furtherStart
25110
25111 /**
25112 * At eol, trying to parse another indent.
25113 *
25114 * ```markdown
25115 * > | aaa
25116 * ^
25117 * | bbb
25118 * ```
25119 *
25120 * @type {State}
25121 */
25122 function furtherStart(code) {
25123 // To do: improve `lazy` / `pierce` handling.
25124 // If this is a lazy line, it can’t be code.
25125 if (self.parser.lazy[self.now().line]) {
25126 return nok(code)
25127 }
25128
25129 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25130 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25131 effects.consume(code)
25132 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25133 return furtherStart
25134 }
25135
25136 // To do: the code here in `micromark-js` is a bit different from
25137 // `markdown-rs` because there it can attempt spaces.
25138 // We can’t yet.
25139 //
25140 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25141 // so that we can drop the next state.
25142 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25143 effects,
25144 afterPrefix,
25145 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25146 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25147 )(code)
25148 }
25149
25150 /**
25151 * At start, after 1 or 4 spaces.
25152 *
25153 * ```markdown
25154 * > | aaa
25155 * ^
25156 * ```
25157 *
25158 * @type {State}
25159 */
25160 function afterPrefix(code) {
25161 const tail = self.events[self.events.length - 1]
25162 return tail &&
25163 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25164 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25165 ? ok(code)
25166 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
25167 ? furtherStart(code)
25168 : nok(code)
25169 }
25170 }
25171
25172
25173 /***/ }),
25174
25175 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-text.js":
25176 /*!**********************************************************************!*\
25177 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-text.js ***!
25178 \**********************************************************************/
25179 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25180
25181 "use strict";
25182 __webpack_require__.r(__webpack_exports__);
25183 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25184 /* harmony export */ codeText: () => (/* binding */ codeText)
25185 /* harmony export */ });
25186 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25187 /* 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");
25188 /* 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");
25189 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25190 /**
25191 * @typedef {import('micromark-util-types').Construct} Construct
25192 * @typedef {import('micromark-util-types').Previous} Previous
25193 * @typedef {import('micromark-util-types').Resolver} Resolver
25194 * @typedef {import('micromark-util-types').State} State
25195 * @typedef {import('micromark-util-types').Token} Token
25196 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25197 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25198 */
25199
25200
25201
25202
25203
25204
25205 /** @type {Construct} */
25206 const codeText = {
25207 name: 'codeText',
25208 tokenize: tokenizeCodeText,
25209 resolve: resolveCodeText,
25210 previous
25211 }
25212
25213 // To do: next major: don’t resolve, like `markdown-rs`.
25214 /** @type {Resolver} */
25215 function resolveCodeText(events) {
25216 let tailExitIndex = events.length - 4
25217 let headEnterIndex = 3
25218 /** @type {number} */
25219 let index
25220 /** @type {number | undefined} */
25221 let enter
25222
25223 // If we start and end with an EOL or a space.
25224 if (
25225 (events[headEnterIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25226 events[headEnterIndex][1].type === 'space') &&
25227 (events[tailExitIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25228 events[tailExitIndex][1].type === 'space')
25229 ) {
25230 index = headEnterIndex
25231
25232 // And we have data.
25233 while (++index < tailExitIndex) {
25234 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData) {
25235 // Then we have padding.
25236 events[headEnterIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25237 events[tailExitIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25238 headEnterIndex += 2
25239 tailExitIndex -= 2
25240 break
25241 }
25242 }
25243 }
25244
25245 // Merge adjacent spaces and data.
25246 index = headEnterIndex - 1
25247 tailExitIndex++
25248
25249 while (++index <= tailExitIndex) {
25250 if (enter === undefined) {
25251 if (
25252 index !== tailExitIndex &&
25253 events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25254 ) {
25255 enter = index
25256 }
25257 } else if (
25258 index === tailExitIndex ||
25259 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25260 ) {
25261 events[enter][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25262
25263 if (index !== enter + 2) {
25264 events[enter][1].end = events[index - 1][1].end
25265 events.splice(enter + 2, index - enter - 2)
25266 tailExitIndex -= index - enter - 2
25267 index = enter + 2
25268 }
25269
25270 enter = undefined
25271 }
25272 }
25273
25274 return events
25275 }
25276
25277 /**
25278 * @this {TokenizeContext}
25279 * @type {Previous}
25280 */
25281 function previous(code) {
25282 // If there is a previous code, there will always be a tail.
25283 return (
25284 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25285 this.events[this.events.length - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.characterEscape
25286 )
25287 }
25288
25289 /**
25290 * @this {TokenizeContext}
25291 * @type {Tokenizer}
25292 */
25293 function tokenizeCodeText(effects, ok, nok) {
25294 const self = this
25295 let sizeOpen = 0
25296 /** @type {number} */
25297 let size
25298 /** @type {Token} */
25299 let token
25300
25301 return start
25302
25303 /**
25304 * Start of code (text).
25305 *
25306 * ```markdown
25307 * > | `a`
25308 * ^
25309 * > | \`a`
25310 * ^
25311 * ```
25312 *
25313 * @type {State}
25314 */
25315 function start(code) {
25316 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent, 'expected `` ` ``')
25317 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous.call(self, self.previous), 'expected correct previous')
25318 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25319 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25320 return sequenceOpen(code)
25321 }
25322
25323 /**
25324 * In opening sequence.
25325 *
25326 * ```markdown
25327 * > | `a`
25328 * ^
25329 * ```
25330 *
25331 * @type {State}
25332 */
25333 function sequenceOpen(code) {
25334 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25335 effects.consume(code)
25336 sizeOpen++
25337 return sequenceOpen
25338 }
25339
25340 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25341 return between(code)
25342 }
25343
25344 /**
25345 * Between something and something else.
25346 *
25347 * ```markdown
25348 * > | `a`
25349 * ^^
25350 * ```
25351 *
25352 * @type {State}
25353 */
25354 function between(code) {
25355 // EOF.
25356 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25357 return nok(code)
25358 }
25359
25360 // To do: next major: don’t do spaces in resolve, but when compiling,
25361 // like `markdown-rs`.
25362 // Tabs don’t work, and virtual spaces don’t make sense.
25363 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space) {
25364 effects.enter('space')
25365 effects.consume(code)
25366 effects.exit('space')
25367 return between
25368 }
25369
25370 // Closing fence? Could also be data.
25371 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25372 token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25373 size = 0
25374 return sequenceClose(code)
25375 }
25376
25377 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25378 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25379 effects.consume(code)
25380 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25381 return between
25382 }
25383
25384 // Data.
25385 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25386 return data(code)
25387 }
25388
25389 /**
25390 * In data.
25391 *
25392 * ```markdown
25393 * > | `a`
25394 * ^
25395 * ```
25396 *
25397 * @type {State}
25398 */
25399 function data(code) {
25400 if (
25401 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
25402 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space ||
25403 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25404 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)
25405 ) {
25406 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25407 return between(code)
25408 }
25409
25410 effects.consume(code)
25411 return data
25412 }
25413
25414 /**
25415 * In closing sequence.
25416 *
25417 * ```markdown
25418 * > | `a`
25419 * ^
25420 * ```
25421 *
25422 * @type {State}
25423 */
25424 function sequenceClose(code) {
25425 // More.
25426 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25427 effects.consume(code)
25428 size++
25429 return sequenceClose
25430 }
25431
25432 // Done!
25433 if (size === sizeOpen) {
25434 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25435 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25436 return ok(code)
25437 }
25438
25439 // More or less accents: mark as data.
25440 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25441 return data(code)
25442 }
25443 }
25444
25445
25446 /***/ }),
25447
25448 /***/ "../node_modules/micromark-core-commonmark/dev/lib/content.js":
25449 /*!********************************************************************!*\
25450 !*** ../node_modules/micromark-core-commonmark/dev/lib/content.js ***!
25451 \********************************************************************/
25452 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25453
25454 "use strict";
25455 __webpack_require__.r(__webpack_exports__);
25456 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25457 /* harmony export */ content: () => (/* binding */ content)
25458 /* harmony export */ });
25459 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25460 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25461 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
25462 /* 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");
25463 /* 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");
25464 /* 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");
25465 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25466 /**
25467 * @typedef {import('micromark-util-types').Construct} Construct
25468 * @typedef {import('micromark-util-types').Resolver} Resolver
25469 * @typedef {import('micromark-util-types').State} State
25470 * @typedef {import('micromark-util-types').Token} Token
25471 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25472 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25473 */
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483 /**
25484 * No name because it must not be turned off.
25485 * @type {Construct}
25486 */
25487 const content = {tokenize: tokenizeContent, resolve: resolveContent}
25488
25489 /** @type {Construct} */
25490 const continuationConstruct = {tokenize: tokenizeContinuation, partial: true}
25491
25492 /**
25493 * Content is transparent: it’s parsed right now. That way, definitions are also
25494 * parsed right now: before text in paragraphs (specifically, media) are parsed.
25495 *
25496 * @type {Resolver}
25497 */
25498 function resolveContent(events) {
25499 ;(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__.subtokenize)(events)
25500 return events
25501 }
25502
25503 /**
25504 * @this {TokenizeContext}
25505 * @type {Tokenizer}
25506 */
25507 function tokenizeContent(effects, ok) {
25508 /** @type {Token | undefined} */
25509 let previous
25510
25511 return chunkStart
25512
25513 /**
25514 * Before a content chunk.
25515 *
25516 * ```markdown
25517 * > | abc
25518 * ^
25519 * ```
25520 *
25521 * @type {State}
25522 */
25523 function chunkStart(code) {
25524 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25525 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code),
25526 'expected no eof or eol'
25527 )
25528
25529 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25530 previous = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25531 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent
25532 })
25533 return chunkInside(code)
25534 }
25535
25536 /**
25537 * In a content chunk.
25538 *
25539 * ```markdown
25540 * > | abc
25541 * ^^^
25542 * ```
25543 *
25544 * @type {State}
25545 */
25546 function chunkInside(code) {
25547 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25548 return contentEnd(code)
25549 }
25550
25551 // To do: in `markdown-rs`, each line is parsed on its own, and everything
25552 // is stitched together resolving.
25553 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25554 return effects.check(
25555 continuationConstruct,
25556 contentContinue,
25557 contentEnd
25558 )(code)
25559 }
25560
25561 // Data.
25562 effects.consume(code)
25563 return chunkInside
25564 }
25565
25566 /**
25567 *
25568 *
25569 * @type {State}
25570 */
25571 function contentEnd(code) {
25572 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25573 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25574 return ok(code)
25575 }
25576
25577 /**
25578 *
25579 *
25580 * @type {State}
25581 */
25582 function contentContinue(code) {
25583 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
25584 effects.consume(code)
25585 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25586 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous, 'expected previous token')
25587 previous.next = 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 previous
25590 })
25591 previous = previous.next
25592 return chunkInside
25593 }
25594 }
25595
25596 /**
25597 * @this {TokenizeContext}
25598 * @type {Tokenizer}
25599 */
25600 function tokenizeContinuation(effects, ok, nok) {
25601 const self = this
25602
25603 return startLookahead
25604
25605 /**
25606 *
25607 *
25608 * @type {State}
25609 */
25610 function startLookahead(code) {
25611 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected a line ending')
25612 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25613 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25614 effects.consume(code)
25615 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25616 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, prefixed, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix)
25617 }
25618
25619 /**
25620 *
25621 *
25622 * @type {State}
25623 */
25624 function prefixed(code) {
25625 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25626 return nok(code)
25627 }
25628
25629 // Always populated by defaults.
25630 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25631 self.parser.constructs.disable.null,
25632 'expected `disable.null` to be populated'
25633 )
25634
25635 const tail = self.events[self.events.length - 1]
25636
25637 if (
25638 !self.parser.constructs.disable.null.includes('codeIndented') &&
25639 tail &&
25640 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix &&
25641 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
25642 ) {
25643 return ok(code)
25644 }
25645
25646 return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)
25647 }
25648 }
25649
25650
25651 /***/ }),
25652
25653 /***/ "../node_modules/micromark-core-commonmark/dev/lib/definition.js":
25654 /*!***********************************************************************!*\
25655 !*** ../node_modules/micromark-core-commonmark/dev/lib/definition.js ***!
25656 \***********************************************************************/
25657 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25658
25659 "use strict";
25660 __webpack_require__.r(__webpack_exports__);
25661 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25662 /* harmony export */ definition: () => (/* binding */ definition)
25663 /* harmony export */ });
25664 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
25665 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
25666 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25667 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
25668 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
25669 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25670 /* 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");
25671 /* 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");
25672 /* 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");
25673 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25674 /**
25675 * @typedef {import('micromark-util-types').Construct} Construct
25676 * @typedef {import('micromark-util-types').State} State
25677 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25678 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25679 */
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692 /** @type {Construct} */
25693 const definition = {name: 'definition', tokenize: tokenizeDefinition}
25694
25695 /** @type {Construct} */
25696 const titleBefore = {tokenize: tokenizeTitleBefore, partial: true}
25697
25698 /**
25699 * @this {TokenizeContext}
25700 * @type {Tokenizer}
25701 */
25702 function tokenizeDefinition(effects, ok, nok) {
25703 const self = this
25704 /** @type {string} */
25705 let identifier
25706
25707 return start
25708
25709 /**
25710 * At start of a definition.
25711 *
25712 * ```markdown
25713 * > | [a]: b "c"
25714 * ^
25715 * ```
25716 *
25717 * @type {State}
25718 */
25719 function start(code) {
25720 // Do not interrupt paragraphs (but do follow definitions).
25721 // To do: do `interrupt` the way `markdown-rs` does.
25722 // To do: parse whitespace the way `markdown-rs` does.
25723 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25724 return before(code)
25725 }
25726
25727 /**
25728 * After optional whitespace, at `[`.
25729 *
25730 * ```markdown
25731 * > | [a]: b "c"
25732 * ^
25733 * ```
25734 *
25735 * @type {State}
25736 */
25737 function before(code) {
25738 // To do: parse whitespace the way `markdown-rs` does.
25739 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
25740 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__.factoryLabel.call(
25741 self,
25742 effects,
25743 labelAfter,
25744 // Note: we don’t need to reset the way `markdown-rs` does.
25745 nok,
25746 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabel,
25747 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelMarker,
25748 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelString
25749 )(code)
25750 }
25751
25752 /**
25753 * After label.
25754 *
25755 * ```markdown
25756 * > | [a]: b "c"
25757 * ^
25758 * ```
25759 *
25760 * @type {State}
25761 */
25762 function labelAfter(code) {
25763 identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__.normalizeIdentifier)(
25764 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
25765 )
25766
25767 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon) {
25768 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25769 effects.consume(code)
25770 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
25771 return markerAfter
25772 }
25773
25774 return nok(code)
25775 }
25776
25777 /**
25778 * After marker.
25779 *
25780 * ```markdown
25781 * > | [a]: b "c"
25782 * ^
25783 * ```
25784 *
25785 * @type {State}
25786 */
25787 function markerAfter(code) {
25788 // Note: whitespace is optional.
25789 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25790 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, destinationBefore)(code)
25791 : destinationBefore(code)
25792 }
25793
25794 /**
25795 * Before destination.
25796 *
25797 * ```markdown
25798 * > | [a]: b "c"
25799 * ^
25800 * ```
25801 *
25802 * @type {State}
25803 */
25804 function destinationBefore(code) {
25805 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__.factoryDestination)(
25806 effects,
25807 destinationAfter,
25808 // Note: we don’t need to reset the way `markdown-rs` does.
25809 nok,
25810 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestination,
25811 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteral,
25812 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteralMarker,
25813 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationRaw,
25814 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationString
25815 )(code)
25816 }
25817
25818 /**
25819 * After destination.
25820 *
25821 * ```markdown
25822 * > | [a]: b "c"
25823 * ^
25824 * ```
25825 *
25826 * @type {State}
25827 */
25828 function destinationAfter(code) {
25829 return effects.attempt(titleBefore, after, after)(code)
25830 }
25831
25832 /**
25833 * After definition.
25834 *
25835 * ```markdown
25836 * > | [a]: b
25837 * ^
25838 * > | [a]: b "c"
25839 * ^
25840 * ```
25841 *
25842 * @type {State}
25843 */
25844 function after(code) {
25845 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25846 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, afterWhitespace, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
25847 : afterWhitespace(code)
25848 }
25849
25850 /**
25851 * After definition, after optional whitespace.
25852 *
25853 * ```markdown
25854 * > | [a]: b
25855 * ^
25856 * > | [a]: b "c"
25857 * ^
25858 * ```
25859 *
25860 * @type {State}
25861 */
25862 function afterWhitespace(code) {
25863 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
25864 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
25865
25866 // Note: we don’t care about uniqueness.
25867 // It’s likely that that doesn’t happen very frequently.
25868 // It is more likely that it wastes precious time.
25869 self.parser.defined.push(identifier)
25870
25871 // To do: `markdown-rs` interrupt.
25872 // // You’d be interrupting.
25873 // tokenizer.interrupt = true
25874 return ok(code)
25875 }
25876
25877 return nok(code)
25878 }
25879 }
25880
25881 /**
25882 * @this {TokenizeContext}
25883 * @type {Tokenizer}
25884 */
25885 function tokenizeTitleBefore(effects, ok, nok) {
25886 return titleBefore
25887
25888 /**
25889 * After destination, at whitespace.
25890 *
25891 * ```markdown
25892 * > | [a]: b
25893 * ^
25894 * > | [a]: b "c"
25895 * ^
25896 * ```
25897 *
25898 * @type {State}
25899 */
25900 function titleBefore(code) {
25901 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
25902 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, beforeMarker)(code)
25903 : nok(code)
25904 }
25905
25906 /**
25907 * At title.
25908 *
25909 * ```markdown
25910 * | [a]: b
25911 * > | "c"
25912 * ^
25913 * ```
25914 *
25915 * @type {State}
25916 */
25917 function beforeMarker(code) {
25918 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__.factoryTitle)(
25919 effects,
25920 titleAfter,
25921 nok,
25922 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitle,
25923 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleMarker,
25924 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleString
25925 )(code)
25926 }
25927
25928 /**
25929 * After title.
25930 *
25931 * ```markdown
25932 * > | [a]: b "c"
25933 * ^
25934 * ```
25935 *
25936 * @type {State}
25937 */
25938 function titleAfter(code) {
25939 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
25940 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(
25941 effects,
25942 titleAfterOptionalWhitespace,
25943 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
25944 )(code)
25945 : titleAfterOptionalWhitespace(code)
25946 }
25947
25948 /**
25949 * After title, after optional whitespace.
25950 *
25951 * ```markdown
25952 * > | [a]: b "c"
25953 * ^
25954 * ```
25955 *
25956 * @type {State}
25957 */
25958 function titleAfterOptionalWhitespace(code) {
25959 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)
25960 }
25961 }
25962
25963
25964 /***/ }),
25965
25966 /***/ "../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js":
25967 /*!******************************************************************************!*\
25968 !*** ../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js ***!
25969 \******************************************************************************/
25970 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25971
25972 "use strict";
25973 __webpack_require__.r(__webpack_exports__);
25974 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25975 /* harmony export */ hardBreakEscape: () => (/* binding */ hardBreakEscape)
25976 /* harmony export */ });
25977 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25978 /* 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");
25979 /* 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");
25980 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25981 /**
25982 * @typedef {import('micromark-util-types').Construct} Construct
25983 * @typedef {import('micromark-util-types').State} State
25984 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25985 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25986 */
25987
25988
25989
25990
25991
25992
25993 /** @type {Construct} */
25994 const hardBreakEscape = {
25995 name: 'hardBreakEscape',
25996 tokenize: tokenizeHardBreakEscape
25997 }
25998
25999 /**
26000 * @this {TokenizeContext}
26001 * @type {Tokenizer}
26002 */
26003 function tokenizeHardBreakEscape(effects, ok, nok) {
26004 return start
26005
26006 /**
26007 * Start of a hard break (escape).
26008 *
26009 * ```markdown
26010 * > | a\
26011 * ^
26012 * | b
26013 * ```
26014 *
26015 * @type {State}
26016 */
26017 function start(code) {
26018 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
26019 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26020 effects.consume(code)
26021 return after
26022 }
26023
26024 /**
26025 * After `\`, at eol.
26026 *
26027 * ```markdown
26028 * > | a\
26029 * ^
26030 * | b
26031 * ```
26032 *
26033 * @type {State}
26034 */
26035 function after(code) {
26036 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
26037 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26038 return ok(code)
26039 }
26040
26041 return nok(code)
26042 }
26043 }
26044
26045
26046 /***/ }),
26047
26048 /***/ "../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js":
26049 /*!************************************************************************!*\
26050 !*** ../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js ***!
26051 \************************************************************************/
26052 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26053
26054 "use strict";
26055 __webpack_require__.r(__webpack_exports__);
26056 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26057 /* harmony export */ headingAtx: () => (/* binding */ headingAtx)
26058 /* harmony export */ });
26059 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
26060 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26061 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
26062 /* 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");
26063 /* 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");
26064 /* 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");
26065 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26066 /**
26067 * @typedef {import('micromark-util-types').Construct} Construct
26068 * @typedef {import('micromark-util-types').Resolver} Resolver
26069 * @typedef {import('micromark-util-types').State} State
26070 * @typedef {import('micromark-util-types').Token} Token
26071 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26072 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26073 */
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083 /** @type {Construct} */
26084 const headingAtx = {
26085 name: 'headingAtx',
26086 tokenize: tokenizeHeadingAtx,
26087 resolve: resolveHeadingAtx
26088 }
26089
26090 /** @type {Resolver} */
26091 function resolveHeadingAtx(events, context) {
26092 let contentEnd = events.length - 2
26093 let contentStart = 3
26094 /** @type {Token} */
26095 let content
26096 /** @type {Token} */
26097 let text
26098
26099 // Prefix whitespace, part of the opening.
26100 if (events[contentStart][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace) {
26101 contentStart += 2
26102 }
26103
26104 // Suffix whitespace, part of the closing.
26105 if (
26106 contentEnd - 2 > contentStart &&
26107 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26108 ) {
26109 contentEnd -= 2
26110 }
26111
26112 if (
26113 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence &&
26114 (contentStart === contentEnd - 1 ||
26115 (contentEnd - 4 > contentStart &&
26116 events[contentEnd - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace))
26117 ) {
26118 contentEnd -= contentStart + 1 === contentEnd ? 2 : 4
26119 }
26120
26121 if (contentEnd > contentStart) {
26122 content = {
26123 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText,
26124 start: events[contentStart][1].start,
26125 end: events[contentEnd][1].end
26126 }
26127 text = {
26128 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText,
26129 start: events[contentStart][1].start,
26130 end: events[contentEnd][1].end,
26131 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeText
26132 }
26133
26134 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(events, contentStart, contentEnd - contentStart + 1, [
26135 ['enter', content, context],
26136 ['enter', text, context],
26137 ['exit', text, context],
26138 ['exit', content, context]
26139 ])
26140 }
26141
26142 return events
26143 }
26144
26145 /**
26146 * @this {TokenizeContext}
26147 * @type {Tokenizer}
26148 */
26149 function tokenizeHeadingAtx(effects, ok, nok) {
26150 let size = 0
26151
26152 return start
26153
26154 /**
26155 * Start of a heading (atx).
26156 *
26157 * ```markdown
26158 * > | ## aa
26159 * ^
26160 * ```
26161 *
26162 * @type {State}
26163 */
26164 function start(code) {
26165 // To do: parse indent like `markdown-rs`.
26166 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26167 return before(code)
26168 }
26169
26170 /**
26171 * After optional whitespace, at `#`.
26172 *
26173 * ```markdown
26174 * > | ## aa
26175 * ^
26176 * ```
26177 *
26178 * @type {State}
26179 */
26180 function before(code) {
26181 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, 'expected `#`')
26182 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26183 return sequenceOpen(code)
26184 }
26185
26186 /**
26187 * In opening sequence.
26188 *
26189 * ```markdown
26190 * > | ## aa
26191 * ^
26192 * ```
26193 *
26194 * @type {State}
26195 */
26196 function sequenceOpen(code) {
26197 if (
26198 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign &&
26199 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.atxHeadingOpeningFenceSizeMax
26200 ) {
26201 effects.consume(code)
26202 return sequenceOpen
26203 }
26204
26205 // Always at least one `#`.
26206 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {
26207 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26208 return atBreak(code)
26209 }
26210
26211 return nok(code)
26212 }
26213
26214 /**
26215 * After something, before something else.
26216 *
26217 * ```markdown
26218 * > | ## aa
26219 * ^
26220 * ```
26221 *
26222 * @type {State}
26223 */
26224 function atBreak(code) {
26225 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26226 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26227 return sequenceFurther(code)
26228 }
26229
26230 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
26231 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26232 // To do: interrupt like `markdown-rs`.
26233 // // Feel free to interrupt.
26234 // tokenizer.interrupt = false
26235 return ok(code)
26236 }
26237
26238 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {
26239 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
26240 }
26241
26242 // To do: generate `data` tokens, add the `text` token later.
26243 // Needs edit map, see: `markdown.rs`.
26244 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26245 return data(code)
26246 }
26247
26248 /**
26249 * In further sequence (after whitespace).
26250 *
26251 * Could be normal “visible” hashes in the heading or a final sequence.
26252 *
26253 * ```markdown
26254 * > | ## aa ##
26255 * ^
26256 * ```
26257 *
26258 * @type {State}
26259 */
26260 function sequenceFurther(code) {
26261 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26262 effects.consume(code)
26263 return sequenceFurther
26264 }
26265
26266 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26267 return atBreak(code)
26268 }
26269
26270 /**
26271 * In text.
26272 *
26273 * ```markdown
26274 * > | ## aa
26275 * ^
26276 * ```
26277 *
26278 * @type {State}
26279 */
26280 function data(code) {
26281 if (
26282 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof ||
26283 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign ||
26284 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26285 ) {
26286 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26287 return atBreak(code)
26288 }
26289
26290 effects.consume(code)
26291 return data
26292 }
26293 }
26294
26295
26296 /***/ }),
26297
26298 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-flow.js":
26299 /*!**********************************************************************!*\
26300 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-flow.js ***!
26301 \**********************************************************************/
26302 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26303
26304 "use strict";
26305 __webpack_require__.r(__webpack_exports__);
26306 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26307 /* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)
26308 /* harmony export */ });
26309 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26310 /* 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");
26311 /* 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");
26312 /* 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");
26313 /* 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");
26314 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26315 /* 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");
26316 /**
26317 * @typedef {import('micromark-util-types').Code} Code
26318 * @typedef {import('micromark-util-types').Construct} Construct
26319 * @typedef {import('micromark-util-types').Resolver} Resolver
26320 * @typedef {import('micromark-util-types').State} State
26321 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26322 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26323 */
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333 /** @type {Construct} */
26334 const htmlFlow = {
26335 name: 'htmlFlow',
26336 tokenize: tokenizeHtmlFlow,
26337 resolveTo: resolveToHtmlFlow,
26338 concrete: true
26339 }
26340
26341 /** @type {Construct} */
26342 const blankLineBefore = {tokenize: tokenizeBlankLineBefore, partial: true}
26343 const nonLazyContinuationStart = {
26344 tokenize: tokenizeNonLazyContinuationStart,
26345 partial: true
26346 }
26347
26348 /** @type {Resolver} */
26349 function resolveToHtmlFlow(events) {
26350 let index = events.length
26351
26352 while (index--) {
26353 if (
26354 events[index][0] === 'enter' &&
26355 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow
26356 ) {
26357 break
26358 }
26359 }
26360
26361 if (index > 1 && events[index - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix) {
26362 // Add the prefix start to the HTML token.
26363 events[index][1].start = events[index - 2][1].start
26364 // Add the prefix start to the HTML line token.
26365 events[index + 1][1].start = events[index - 2][1].start
26366 // Remove the line prefix.
26367 events.splice(index - 2, 2)
26368 }
26369
26370 return events
26371 }
26372
26373 /**
26374 * @this {TokenizeContext}
26375 * @type {Tokenizer}
26376 */
26377 function tokenizeHtmlFlow(effects, ok, nok) {
26378 const self = this
26379 /** @type {number} */
26380 let marker
26381 /** @type {boolean} */
26382 let closingTag
26383 /** @type {string} */
26384 let buffer
26385 /** @type {number} */
26386 let index
26387 /** @type {Code} */
26388 let markerB
26389
26390 return start
26391
26392 /**
26393 * Start of HTML (flow).
26394 *
26395 * ```markdown
26396 * > | <x />
26397 * ^
26398 * ```
26399 *
26400 * @type {State}
26401 */
26402 function start(code) {
26403 // To do: parse indent like `markdown-rs`.
26404 return before(code)
26405 }
26406
26407 /**
26408 * At `<`, after optional whitespace.
26409 *
26410 * ```markdown
26411 * > | <x />
26412 * ^
26413 * ```
26414 *
26415 * @type {State}
26416 */
26417 function before(code) {
26418 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, 'expected `<`')
26419 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
26420 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26421 effects.consume(code)
26422 return open
26423 }
26424
26425 /**
26426 * After `<`, at tag name or other stuff.
26427 *
26428 * ```markdown
26429 * > | <x />
26430 * ^
26431 * > | <!doctype>
26432 * ^
26433 * > | <!--xxx-->
26434 * ^
26435 * ```
26436 *
26437 * @type {State}
26438 */
26439 function open(code) {
26440 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {
26441 effects.consume(code)
26442 return declarationOpen
26443 }
26444
26445 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26446 effects.consume(code)
26447 closingTag = true
26448 return tagCloseStart
26449 }
26450
26451 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {
26452 effects.consume(code)
26453 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction
26454 // To do:
26455 // tokenizer.concrete = true
26456 // To do: use `markdown-rs` style interrupt.
26457 // While we’re in an instruction instead of a declaration, we’re on a `?`
26458 // right now, so we do need to search for `>`, similar to declarations.
26459 return self.interrupt ? ok : continuationDeclarationInside
26460 }
26461
26462 // ASCII alphabetical.
26463 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26464 effects.consume(code)
26465 // @ts-expect-error: not null.
26466 buffer = String.fromCharCode(code)
26467 return tagName
26468 }
26469
26470 return nok(code)
26471 }
26472
26473 /**
26474 * After `<!`, at declaration, comment, or CDATA.
26475 *
26476 * ```markdown
26477 * > | <!doctype>
26478 * ^
26479 * > | <!--xxx-->
26480 * ^
26481 * > | <![CDATA[>&<]]>
26482 * ^
26483 * ```
26484 *
26485 * @type {State}
26486 */
26487 function declarationOpen(code) {
26488 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26489 effects.consume(code)
26490 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment
26491 return commentOpenInside
26492 }
26493
26494 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
26495 effects.consume(code)
26496 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata
26497 index = 0
26498 return cdataOpenInside
26499 }
26500
26501 // ASCII alphabetical.
26502 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26503 effects.consume(code)
26504 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration
26505 // // Do not form containers.
26506 // tokenizer.concrete = true
26507 return self.interrupt ? ok : continuationDeclarationInside
26508 }
26509
26510 return nok(code)
26511 }
26512
26513 /**
26514 * After `<!-`, inside a comment, at another `-`.
26515 *
26516 * ```markdown
26517 * > | <!--xxx-->
26518 * ^
26519 * ```
26520 *
26521 * @type {State}
26522 */
26523 function commentOpenInside(code) {
26524 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26525 effects.consume(code)
26526 // // Do not form containers.
26527 // tokenizer.concrete = true
26528 return self.interrupt ? ok : continuationDeclarationInside
26529 }
26530
26531 return nok(code)
26532 }
26533
26534 /**
26535 * After `<![`, inside CDATA, expecting `CDATA[`.
26536 *
26537 * ```markdown
26538 * > | <![CDATA[>&<]]>
26539 * ^^^^^^
26540 * ```
26541 *
26542 * @type {State}
26543 */
26544 function cdataOpenInside(code) {
26545 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString
26546
26547 if (code === value.charCodeAt(index++)) {
26548 effects.consume(code)
26549
26550 if (index === value.length) {
26551 // // Do not form containers.
26552 // tokenizer.concrete = true
26553 return self.interrupt ? ok : continuation
26554 }
26555
26556 return cdataOpenInside
26557 }
26558
26559 return nok(code)
26560 }
26561
26562 /**
26563 * After `</`, in closing tag, at tag name.
26564 *
26565 * ```markdown
26566 * > | </x>
26567 * ^
26568 * ```
26569 *
26570 * @type {State}
26571 */
26572 function tagCloseStart(code) {
26573 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26574 effects.consume(code)
26575 // @ts-expect-error: not null.
26576 buffer = String.fromCharCode(code)
26577 return tagName
26578 }
26579
26580 return nok(code)
26581 }
26582
26583 /**
26584 * In tag name.
26585 *
26586 * ```markdown
26587 * > | <ab>
26588 * ^^
26589 * > | </ab>
26590 * ^^
26591 * ```
26592 *
26593 * @type {State}
26594 */
26595 function tagName(code) {
26596 if (
26597 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26598 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26599 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26600 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26601 ) {
26602 const slash = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash
26603 const name = buffer.toLowerCase()
26604
26605 if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
26606 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw
26607 // // Do not form containers.
26608 // tokenizer.concrete = true
26609 return self.interrupt ? ok(code) : continuation(code)
26610 }
26611
26612 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {
26613 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic
26614
26615 if (slash) {
26616 effects.consume(code)
26617 return basicSelfClosing
26618 }
26619
26620 // // Do not form containers.
26621 // tokenizer.concrete = true
26622 return self.interrupt ? ok(code) : continuation(code)
26623 }
26624
26625 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete
26626 // Do not support complete HTML when interrupting.
26627 return self.interrupt && !self.parser.lazy[self.now().line]
26628 ? nok(code)
26629 : closingTag
26630 ? completeClosingTagAfter(code)
26631 : completeAttributeNameBefore(code)
26632 }
26633
26634 // ASCII alphanumerical and `-`.
26635 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {
26636 effects.consume(code)
26637 buffer += String.fromCharCode(code)
26638 return tagName
26639 }
26640
26641 return nok(code)
26642 }
26643
26644 /**
26645 * After closing slash of a basic tag name.
26646 *
26647 * ```markdown
26648 * > | <div/>
26649 * ^
26650 * ```
26651 *
26652 * @type {State}
26653 */
26654 function basicSelfClosing(code) {
26655 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26656 effects.consume(code)
26657 // // Do not form containers.
26658 // tokenizer.concrete = true
26659 return self.interrupt ? ok : continuation
26660 }
26661
26662 return nok(code)
26663 }
26664
26665 /**
26666 * After closing slash of a complete tag name.
26667 *
26668 * ```markdown
26669 * > | <x/>
26670 * ^
26671 * ```
26672 *
26673 * @type {State}
26674 */
26675 function completeClosingTagAfter(code) {
26676 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26677 effects.consume(code)
26678 return completeClosingTagAfter
26679 }
26680
26681 return completeEnd(code)
26682 }
26683
26684 /**
26685 * At an attribute name.
26686 *
26687 * At first, this state is used after a complete tag name, after whitespace,
26688 * where it expects optional attributes or the end of the tag.
26689 * It is also reused after attributes, when expecting more optional
26690 * attributes.
26691 *
26692 * ```markdown
26693 * > | <a />
26694 * ^
26695 * > | <a :b>
26696 * ^
26697 * > | <a _b>
26698 * ^
26699 * > | <a b>
26700 * ^
26701 * > | <a >
26702 * ^
26703 * ```
26704 *
26705 * @type {State}
26706 */
26707 function completeAttributeNameBefore(code) {
26708 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26709 effects.consume(code)
26710 return completeEnd
26711 }
26712
26713 // ASCII alphanumerical and `:` and `_`.
26714 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)) {
26715 effects.consume(code)
26716 return completeAttributeName
26717 }
26718
26719 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26720 effects.consume(code)
26721 return completeAttributeNameBefore
26722 }
26723
26724 return completeEnd(code)
26725 }
26726
26727 /**
26728 * In attribute name.
26729 *
26730 * ```markdown
26731 * > | <a :b>
26732 * ^
26733 * > | <a _b>
26734 * ^
26735 * > | <a b>
26736 * ^
26737 * ```
26738 *
26739 * @type {State}
26740 */
26741 function completeAttributeName(code) {
26742 // ASCII alphanumerical and `-`, `.`, `:`, and `_`.
26743 if (
26744 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
26745 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot ||
26746 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon ||
26747 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore ||
26748 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)
26749 ) {
26750 effects.consume(code)
26751 return completeAttributeName
26752 }
26753
26754 return completeAttributeNameAfter(code)
26755 }
26756
26757 /**
26758 * After attribute name, at an optional initializer, the end of the tag, or
26759 * whitespace.
26760 *
26761 * ```markdown
26762 * > | <a b>
26763 * ^
26764 * > | <a b=c>
26765 * ^
26766 * ```
26767 *
26768 * @type {State}
26769 */
26770 function completeAttributeNameAfter(code) {
26771 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {
26772 effects.consume(code)
26773 return completeAttributeValueBefore
26774 }
26775
26776 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26777 effects.consume(code)
26778 return completeAttributeNameAfter
26779 }
26780
26781 return completeAttributeNameBefore(code)
26782 }
26783
26784 /**
26785 * Before unquoted, double quoted, or single quoted attribute value, allowing
26786 * whitespace.
26787 *
26788 * ```markdown
26789 * > | <a b=c>
26790 * ^
26791 * > | <a b="c">
26792 * ^
26793 * ```
26794 *
26795 * @type {State}
26796 */
26797 function completeAttributeValueBefore(code) {
26798 if (
26799 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26800 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26801 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26802 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26803 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent
26804 ) {
26805 return nok(code)
26806 }
26807
26808 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) {
26809 effects.consume(code)
26810 markerB = code
26811 return completeAttributeValueQuoted
26812 }
26813
26814 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26815 effects.consume(code)
26816 return completeAttributeValueBefore
26817 }
26818
26819 return completeAttributeValueUnquoted(code)
26820 }
26821
26822 /**
26823 * In double or single quoted attribute value.
26824 *
26825 * ```markdown
26826 * > | <a b="c">
26827 * ^
26828 * > | <a b='c'>
26829 * ^
26830 * ```
26831 *
26832 * @type {State}
26833 */
26834 function completeAttributeValueQuoted(code) {
26835 if (code === markerB) {
26836 effects.consume(code)
26837 markerB = null
26838 return completeAttributeValueQuotedAfter
26839 }
26840
26841 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26842 return nok(code)
26843 }
26844
26845 effects.consume(code)
26846 return completeAttributeValueQuoted
26847 }
26848
26849 /**
26850 * In unquoted attribute value.
26851 *
26852 * ```markdown
26853 * > | <a b=c>
26854 * ^
26855 * ```
26856 *
26857 * @type {State}
26858 */
26859 function completeAttributeValueUnquoted(code) {
26860 if (
26861 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26862 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark ||
26863 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe ||
26864 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26865 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
26866 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
26867 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26868 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
26869 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26870 ) {
26871 return completeAttributeNameAfter(code)
26872 }
26873
26874 effects.consume(code)
26875 return completeAttributeValueUnquoted
26876 }
26877
26878 /**
26879 * After double or single quoted attribute value, before whitespace or the
26880 * end of the tag.
26881 *
26882 * ```markdown
26883 * > | <a b="c">
26884 * ^
26885 * ```
26886 *
26887 * @type {State}
26888 */
26889 function completeAttributeValueQuotedAfter(code) {
26890 if (
26891 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26892 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26893 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
26894 ) {
26895 return completeAttributeNameBefore(code)
26896 }
26897
26898 return nok(code)
26899 }
26900
26901 /**
26902 * In certain circumstances of a complete tag where only an `>` is allowed.
26903 *
26904 * ```markdown
26905 * > | <a b="c">
26906 * ^
26907 * ```
26908 *
26909 * @type {State}
26910 */
26911 function completeEnd(code) {
26912 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
26913 effects.consume(code)
26914 return completeAfter
26915 }
26916
26917 return nok(code)
26918 }
26919
26920 /**
26921 * After `>` in a complete tag.
26922 *
26923 * ```markdown
26924 * > | <x>
26925 * ^
26926 * ```
26927 *
26928 * @type {State}
26929 */
26930 function completeAfter(code) {
26931 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26932 // // Do not form containers.
26933 // tokenizer.concrete = true
26934 return continuation(code)
26935 }
26936
26937 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
26938 effects.consume(code)
26939 return completeAfter
26940 }
26941
26942 return nok(code)
26943 }
26944
26945 /**
26946 * In continuation of any HTML kind.
26947 *
26948 * ```markdown
26949 * > | <!--xxx-->
26950 * ^
26951 * ```
26952 *
26953 * @type {State}
26954 */
26955 function continuation(code) {
26956 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) {
26957 effects.consume(code)
26958 return continuationCommentInside
26959 }
26960
26961 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) {
26962 effects.consume(code)
26963 return continuationRawTagOpen
26964 }
26965
26966 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) {
26967 effects.consume(code)
26968 return continuationClose
26969 }
26970
26971 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) {
26972 effects.consume(code)
26973 return continuationDeclarationInside
26974 }
26975
26976 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) {
26977 effects.consume(code)
26978 return continuationCdataInside
26979 }
26980
26981 if (
26982 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) &&
26983 (marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)
26984 ) {
26985 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26986 return effects.check(
26987 blankLineBefore,
26988 continuationAfter,
26989 continuationStart
26990 )(code)
26991 }
26992
26993 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
26994 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26995 return continuationStart(code)
26996 }
26997
26998 effects.consume(code)
26999 return continuation
27000 }
27001
27002 /**
27003 * In continuation, at eol.
27004 *
27005 * ```markdown
27006 * > | <x>
27007 * ^
27008 * | asd
27009 * ```
27010 *
27011 * @type {State}
27012 */
27013 function continuationStart(code) {
27014 return effects.check(
27015 nonLazyContinuationStart,
27016 continuationStartNonLazy,
27017 continuationAfter
27018 )(code)
27019 }
27020
27021 /**
27022 * In continuation, at eol, before non-lazy content.
27023 *
27024 * ```markdown
27025 * > | <x>
27026 * ^
27027 * | asd
27028 * ```
27029 *
27030 * @type {State}
27031 */
27032 function continuationStartNonLazy(code) {
27033 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
27034 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27035 effects.consume(code)
27036 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27037 return continuationBefore
27038 }
27039
27040 /**
27041 * In continuation, before non-lazy content.
27042 *
27043 * ```markdown
27044 * | <x>
27045 * > | asd
27046 * ^
27047 * ```
27048 *
27049 * @type {State}
27050 */
27051 function continuationBefore(code) {
27052 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27053 return continuationStart(code)
27054 }
27055
27056 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27057 return continuation(code)
27058 }
27059
27060 /**
27061 * In comment continuation, after one `-`, expecting another.
27062 *
27063 * ```markdown
27064 * > | <!--xxx-->
27065 * ^
27066 * ```
27067 *
27068 * @type {State}
27069 */
27070 function continuationCommentInside(code) {
27071 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
27072 effects.consume(code)
27073 return continuationDeclarationInside
27074 }
27075
27076 return continuation(code)
27077 }
27078
27079 /**
27080 * In raw continuation, after `<`, at `/`.
27081 *
27082 * ```markdown
27083 * > | <script>console.log(1)</script>
27084 * ^
27085 * ```
27086 *
27087 * @type {State}
27088 */
27089 function continuationRawTagOpen(code) {
27090 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
27091 effects.consume(code)
27092 buffer = ''
27093 return continuationRawEndTag
27094 }
27095
27096 return continuation(code)
27097 }
27098
27099 /**
27100 * In raw continuation, after `</`, in a raw tag name.
27101 *
27102 * ```markdown
27103 * > | <script>console.log(1)</script>
27104 * ^^^^^^
27105 * ```
27106 *
27107 * @type {State}
27108 */
27109 function continuationRawEndTag(code) {
27110 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27111 const name = buffer.toLowerCase()
27112
27113 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
27114 effects.consume(code)
27115 return continuationClose
27116 }
27117
27118 return continuation(code)
27119 }
27120
27121 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code) && buffer.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRawSizeMax) {
27122 effects.consume(code)
27123 // @ts-expect-error: not null.
27124 buffer += String.fromCharCode(code)
27125 return continuationRawEndTag
27126 }
27127
27128 return continuation(code)
27129 }
27130
27131 /**
27132 * In cdata continuation, after `]`, expecting `]>`.
27133 *
27134 * ```markdown
27135 * > | <![CDATA[>&<]]>
27136 * ^
27137 * ```
27138 *
27139 * @type {State}
27140 */
27141 function continuationCdataInside(code) {
27142 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket) {
27143 effects.consume(code)
27144 return continuationDeclarationInside
27145 }
27146
27147 return continuation(code)
27148 }
27149
27150 /**
27151 * In declaration or instruction continuation, at `>`.
27152 *
27153 * ```markdown
27154 * > | <!-->
27155 * ^
27156 * > | <?>
27157 * ^
27158 * > | <!q>
27159 * ^
27160 * > | <!--ab-->
27161 * ^
27162 * > | <![CDATA[>&<]]>
27163 * ^
27164 * ```
27165 *
27166 * @type {State}
27167 */
27168 function continuationDeclarationInside(code) {
27169 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27170 effects.consume(code)
27171 return continuationClose
27172 }
27173
27174 // More dashes.
27175 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) {
27176 effects.consume(code)
27177 return continuationDeclarationInside
27178 }
27179
27180 return continuation(code)
27181 }
27182
27183 /**
27184 * In closed continuation: everything we get until the eol/eof is part of it.
27185 *
27186 * ```markdown
27187 * > | <!doctype>
27188 * ^
27189 * ```
27190 *
27191 * @type {State}
27192 */
27193 function continuationClose(code) {
27194 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27195 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27196 return continuationAfter(code)
27197 }
27198
27199 effects.consume(code)
27200 return continuationClose
27201 }
27202
27203 /**
27204 * Done.
27205 *
27206 * ```markdown
27207 * > | <!doctype>
27208 * ^
27209 * ```
27210 *
27211 * @type {State}
27212 */
27213 function continuationAfter(code) {
27214 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
27215 // // Feel free to interrupt.
27216 // tokenizer.interrupt = false
27217 // // No longer concrete.
27218 // tokenizer.concrete = false
27219 return ok(code)
27220 }
27221 }
27222
27223 /**
27224 * @this {TokenizeContext}
27225 * @type {Tokenizer}
27226 */
27227 function tokenizeNonLazyContinuationStart(effects, ok, nok) {
27228 const self = this
27229
27230 return start
27231
27232 /**
27233 * At eol, before continuation.
27234 *
27235 * ```markdown
27236 * > | * ```js
27237 * ^
27238 * | b
27239 * ```
27240 *
27241 * @type {State}
27242 */
27243 function start(code) {
27244 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27245 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27246 effects.consume(code)
27247 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27248 return after
27249 }
27250
27251 return nok(code)
27252 }
27253
27254 /**
27255 * A continuation.
27256 *
27257 * ```markdown
27258 * | * ```js
27259 * > | b
27260 * ^
27261 * ```
27262 *
27263 * @type {State}
27264 */
27265 function after(code) {
27266 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
27267 }
27268 }
27269
27270 /**
27271 * @this {TokenizeContext}
27272 * @type {Tokenizer}
27273 */
27274 function tokenizeBlankLineBefore(effects, ok, nok) {
27275 return start
27276
27277 /**
27278 * Before eol, expecting blank line.
27279 *
27280 * ```markdown
27281 * > | <div>
27282 * ^
27283 * |
27284 * ```
27285 *
27286 * @type {State}
27287 */
27288 function start(code) {
27289 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected a line ending')
27290 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27291 effects.consume(code)
27292 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27293 return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, ok, nok)
27294 }
27295 }
27296
27297
27298 /***/ }),
27299
27300 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-text.js":
27301 /*!**********************************************************************!*\
27302 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-text.js ***!
27303 \**********************************************************************/
27304 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
27305
27306 "use strict";
27307 __webpack_require__.r(__webpack_exports__);
27308 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27309 /* harmony export */ htmlText: () => (/* binding */ htmlText)
27310 /* harmony export */ });
27311 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
27312 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
27313 /* 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");
27314 /* 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");
27315 /* 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");
27316 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
27317 /**
27318 * @typedef {import('micromark-util-types').Code} Code
27319 * @typedef {import('micromark-util-types').Construct} Construct
27320 * @typedef {import('micromark-util-types').State} State
27321 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
27322 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
27323 */
27324
27325
27326
27327
27328
27329
27330
27331
27332 /** @type {Construct} */
27333 const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}
27334
27335 /**
27336 * @this {TokenizeContext}
27337 * @type {Tokenizer}
27338 */
27339 function tokenizeHtmlText(effects, ok, nok) {
27340 const self = this
27341 /** @type {NonNullable<Code> | undefined} */
27342 let marker
27343 /** @type {number} */
27344 let index
27345 /** @type {State} */
27346 let returnState
27347
27348 return start
27349
27350 /**
27351 * Start of HTML (text).
27352 *
27353 * ```markdown
27354 * > | a <b> c
27355 * ^
27356 * ```
27357 *
27358 * @type {State}
27359 */
27360 function start(code) {
27361 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
27362 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
27363 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
27364 effects.consume(code)
27365 return open
27366 }
27367
27368 /**
27369 * After `<`, at tag name or other stuff.
27370 *
27371 * ```markdown
27372 * > | a <b> c
27373 * ^
27374 * > | a <!doctype> c
27375 * ^
27376 * > | a <!--b--> c
27377 * ^
27378 * ```
27379 *
27380 * @type {State}
27381 */
27382 function open(code) {
27383 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.exclamationMark) {
27384 effects.consume(code)
27385 return declarationOpen
27386 }
27387
27388 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27389 effects.consume(code)
27390 return tagCloseStart
27391 }
27392
27393 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27394 effects.consume(code)
27395 return instruction
27396 }
27397
27398 // ASCII alphabetical.
27399 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27400 effects.consume(code)
27401 return tagOpen
27402 }
27403
27404 return nok(code)
27405 }
27406
27407 /**
27408 * After `<!`, at declaration, comment, or CDATA.
27409 *
27410 * ```markdown
27411 * > | a <!doctype> c
27412 * ^
27413 * > | a <!--b--> c
27414 * ^
27415 * > | a <![CDATA[>&<]]> c
27416 * ^
27417 * ```
27418 *
27419 * @type {State}
27420 */
27421 function declarationOpen(code) {
27422 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27423 effects.consume(code)
27424 return commentOpenInside
27425 }
27426
27427 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket) {
27428 effects.consume(code)
27429 index = 0
27430 return cdataOpenInside
27431 }
27432
27433 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27434 effects.consume(code)
27435 return declaration
27436 }
27437
27438 return nok(code)
27439 }
27440
27441 /**
27442 * In a comment, after `<!-`, at another `-`.
27443 *
27444 * ```markdown
27445 * > | a <!--b--> c
27446 * ^
27447 * ```
27448 *
27449 * @type {State}
27450 */
27451 function commentOpenInside(code) {
27452 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27453 effects.consume(code)
27454 return commentEnd
27455 }
27456
27457 return nok(code)
27458 }
27459
27460 /**
27461 * In comment.
27462 *
27463 * ```markdown
27464 * > | a <!--b--> c
27465 * ^
27466 * ```
27467 *
27468 * @type {State}
27469 */
27470 function comment(code) {
27471 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27472 return nok(code)
27473 }
27474
27475 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27476 effects.consume(code)
27477 return commentClose
27478 }
27479
27480 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27481 returnState = comment
27482 return lineEndingBefore(code)
27483 }
27484
27485 effects.consume(code)
27486 return comment
27487 }
27488
27489 /**
27490 * In comment, after `-`.
27491 *
27492 * ```markdown
27493 * > | a <!--b--> c
27494 * ^
27495 * ```
27496 *
27497 * @type {State}
27498 */
27499 function commentClose(code) {
27500 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27501 effects.consume(code)
27502 return commentEnd
27503 }
27504
27505 return comment(code)
27506 }
27507
27508 /**
27509 * In comment, after `--`.
27510 *
27511 * ```markdown
27512 * > | a <!--b--> c
27513 * ^
27514 * ```
27515 *
27516 * @type {State}
27517 */
27518 function commentEnd(code) {
27519 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan
27520 ? end(code)
27521 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash
27522 ? commentClose(code)
27523 : comment(code)
27524 }
27525
27526 /**
27527 * After `<![`, in CDATA, expecting `CDATA[`.
27528 *
27529 * ```markdown
27530 * > | a <![CDATA[>&<]]> b
27531 * ^^^^^^
27532 * ```
27533 *
27534 * @type {State}
27535 */
27536 function cdataOpenInside(code) {
27537 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.cdataOpeningString
27538
27539 if (code === value.charCodeAt(index++)) {
27540 effects.consume(code)
27541 return index === value.length ? cdata : cdataOpenInside
27542 }
27543
27544 return nok(code)
27545 }
27546
27547 /**
27548 * In CDATA.
27549 *
27550 * ```markdown
27551 * > | a <![CDATA[>&<]]> b
27552 * ^^^
27553 * ```
27554 *
27555 * @type {State}
27556 */
27557 function cdata(code) {
27558 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27559 return nok(code)
27560 }
27561
27562 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27563 effects.consume(code)
27564 return cdataClose
27565 }
27566
27567 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27568 returnState = cdata
27569 return lineEndingBefore(code)
27570 }
27571
27572 effects.consume(code)
27573 return cdata
27574 }
27575
27576 /**
27577 * In CDATA, after `]`, at another `]`.
27578 *
27579 * ```markdown
27580 * > | a <![CDATA[>&<]]> b
27581 * ^
27582 * ```
27583 *
27584 * @type {State}
27585 */
27586 function cdataClose(code) {
27587 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27588 effects.consume(code)
27589 return cdataEnd
27590 }
27591
27592 return cdata(code)
27593 }
27594
27595 /**
27596 * In CDATA, after `]]`, at `>`.
27597 *
27598 * ```markdown
27599 * > | a <![CDATA[>&<]]> b
27600 * ^
27601 * ```
27602 *
27603 * @type {State}
27604 */
27605 function cdataEnd(code) {
27606 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
27607 return end(code)
27608 }
27609
27610 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27611 effects.consume(code)
27612 return cdataEnd
27613 }
27614
27615 return cdata(code)
27616 }
27617
27618 /**
27619 * In declaration.
27620 *
27621 * ```markdown
27622 * > | a <!b> c
27623 * ^
27624 * ```
27625 *
27626 * @type {State}
27627 */
27628 function declaration(code) {
27629 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) {
27630 return end(code)
27631 }
27632
27633 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27634 returnState = declaration
27635 return lineEndingBefore(code)
27636 }
27637
27638 effects.consume(code)
27639 return declaration
27640 }
27641
27642 /**
27643 * In instruction.
27644 *
27645 * ```markdown
27646 * > | a <?b?> c
27647 * ^
27648 * ```
27649 *
27650 * @type {State}
27651 */
27652 function instruction(code) {
27653 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27654 return nok(code)
27655 }
27656
27657 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27658 effects.consume(code)
27659 return instructionClose
27660 }
27661
27662 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27663 returnState = instruction
27664 return lineEndingBefore(code)
27665 }
27666
27667 effects.consume(code)
27668 return instruction
27669 }
27670
27671 /**
27672 * In instruction, after `?`, at `>`.
27673 *
27674 * ```markdown
27675 * > | a <?b?> c
27676 * ^
27677 * ```
27678 *
27679 * @type {State}
27680 */
27681 function instructionClose(code) {
27682 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : instruction(code)
27683 }
27684
27685 /**
27686 * After `</`, in closing tag, at tag name.
27687 *
27688 * ```markdown
27689 * > | a </b> c
27690 * ^
27691 * ```
27692 *
27693 * @type {State}
27694 */
27695 function tagCloseStart(code) {
27696 // ASCII alphabetical.
27697 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27698 effects.consume(code)
27699 return tagClose
27700 }
27701
27702 return nok(code)
27703 }
27704
27705 /**
27706 * After `</x`, in a tag name.
27707 *
27708 * ```markdown
27709 * > | a </b> c
27710 * ^
27711 * ```
27712 *
27713 * @type {State}
27714 */
27715 function tagClose(code) {
27716 // ASCII alphanumerical and `-`.
27717 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27718 effects.consume(code)
27719 return tagClose
27720 }
27721
27722 return tagCloseBetween(code)
27723 }
27724
27725 /**
27726 * In closing tag, after tag name.
27727 *
27728 * ```markdown
27729 * > | a </b> c
27730 * ^
27731 * ```
27732 *
27733 * @type {State}
27734 */
27735 function tagCloseBetween(code) {
27736 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27737 returnState = tagCloseBetween
27738 return lineEndingBefore(code)
27739 }
27740
27741 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27742 effects.consume(code)
27743 return tagCloseBetween
27744 }
27745
27746 return end(code)
27747 }
27748
27749 /**
27750 * After `<x`, in opening tag name.
27751 *
27752 * ```markdown
27753 * > | a <b> c
27754 * ^
27755 * ```
27756 *
27757 * @type {State}
27758 */
27759 function tagOpen(code) {
27760 // ASCII alphanumerical and `-`.
27761 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
27762 effects.consume(code)
27763 return tagOpen
27764 }
27765
27766 if (
27767 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
27768 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27769 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
27770 ) {
27771 return tagOpenBetween(code)
27772 }
27773
27774 return nok(code)
27775 }
27776
27777 /**
27778 * In opening tag, after tag name.
27779 *
27780 * ```markdown
27781 * > | a <b> c
27782 * ^
27783 * ```
27784 *
27785 * @type {State}
27786 */
27787 function tagOpenBetween(code) {
27788 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27789 effects.consume(code)
27790 return end
27791 }
27792
27793 // ASCII alphabetical and `:` and `_`.
27794 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)) {
27795 effects.consume(code)
27796 return tagOpenAttributeName
27797 }
27798
27799 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27800 returnState = tagOpenBetween
27801 return lineEndingBefore(code)
27802 }
27803
27804 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27805 effects.consume(code)
27806 return tagOpenBetween
27807 }
27808
27809 return end(code)
27810 }
27811
27812 /**
27813 * In attribute name.
27814 *
27815 * ```markdown
27816 * > | a <b c> d
27817 * ^
27818 * ```
27819 *
27820 * @type {State}
27821 */
27822 function tagOpenAttributeName(code) {
27823 // ASCII alphabetical and `-`, `.`, `:`, and `_`.
27824 if (
27825 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
27826 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
27827 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon ||
27828 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.underscore ||
27829 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
27830 ) {
27831 effects.consume(code)
27832 return tagOpenAttributeName
27833 }
27834
27835 return tagOpenAttributeNameAfter(code)
27836 }
27837
27838 /**
27839 * After attribute name, before initializer, the end of the tag, or
27840 * whitespace.
27841 *
27842 * ```markdown
27843 * > | a <b c> d
27844 * ^
27845 * ```
27846 *
27847 * @type {State}
27848 */
27849 function tagOpenAttributeNameAfter(code) {
27850 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo) {
27851 effects.consume(code)
27852 return tagOpenAttributeValueBefore
27853 }
27854
27855 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27856 returnState = tagOpenAttributeNameAfter
27857 return lineEndingBefore(code)
27858 }
27859
27860 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27861 effects.consume(code)
27862 return tagOpenAttributeNameAfter
27863 }
27864
27865 return tagOpenBetween(code)
27866 }
27867
27868 /**
27869 * Before unquoted, double quoted, or single quoted attribute value, allowing
27870 * whitespace.
27871 *
27872 * ```markdown
27873 * > | a <b c=d> e
27874 * ^
27875 * ```
27876 *
27877 * @type {State}
27878 */
27879 function tagOpenAttributeValueBefore(code) {
27880 if (
27881 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
27882 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
27883 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
27884 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27885 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
27886 ) {
27887 return nok(code)
27888 }
27889
27890 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) {
27891 effects.consume(code)
27892 marker = code
27893 return tagOpenAttributeValueQuoted
27894 }
27895
27896 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27897 returnState = tagOpenAttributeValueBefore
27898 return lineEndingBefore(code)
27899 }
27900
27901 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
27902 effects.consume(code)
27903 return tagOpenAttributeValueBefore
27904 }
27905
27906 effects.consume(code)
27907 return tagOpenAttributeValueUnquoted
27908 }
27909
27910 /**
27911 * In double or single quoted attribute value.
27912 *
27913 * ```markdown
27914 * > | a <b c="d"> e
27915 * ^
27916 * ```
27917 *
27918 * @type {State}
27919 */
27920 function tagOpenAttributeValueQuoted(code) {
27921 if (code === marker) {
27922 effects.consume(code)
27923 marker = undefined
27924 return tagOpenAttributeValueQuotedAfter
27925 }
27926
27927 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27928 return nok(code)
27929 }
27930
27931 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27932 returnState = tagOpenAttributeValueQuoted
27933 return lineEndingBefore(code)
27934 }
27935
27936 effects.consume(code)
27937 return tagOpenAttributeValueQuoted
27938 }
27939
27940 /**
27941 * In unquoted attribute value.
27942 *
27943 * ```markdown
27944 * > | a <b c=d> e
27945 * ^
27946 * ```
27947 *
27948 * @type {State}
27949 */
27950 function tagOpenAttributeValueUnquoted(code) {
27951 if (
27952 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
27953 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark ||
27954 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe ||
27955 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
27956 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
27957 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
27958 ) {
27959 return nok(code)
27960 }
27961
27962 if (
27963 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
27964 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27965 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
27966 ) {
27967 return tagOpenBetween(code)
27968 }
27969
27970 effects.consume(code)
27971 return tagOpenAttributeValueUnquoted
27972 }
27973
27974 /**
27975 * After double or single quoted attribute value, before whitespace or the end
27976 * of the tag.
27977 *
27978 * ```markdown
27979 * > | a <b c="d"> e
27980 * ^
27981 * ```
27982 *
27983 * @type {State}
27984 */
27985 function tagOpenAttributeValueQuotedAfter(code) {
27986 if (
27987 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
27988 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
27989 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
27990 ) {
27991 return tagOpenBetween(code)
27992 }
27993
27994 return nok(code)
27995 }
27996
27997 /**
27998 * In certain circumstances of a tag where only an `>` is allowed.
27999 *
28000 * ```markdown
28001 * > | a <b c="d"> e
28002 * ^
28003 * ```
28004 *
28005 * @type {State}
28006 */
28007 function end(code) {
28008 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
28009 effects.consume(code)
28010 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28011 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
28012 return ok
28013 }
28014
28015 return nok(code)
28016 }
28017
28018 /**
28019 * At eol.
28020 *
28021 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28022 * > empty tokens.
28023 *
28024 * ```markdown
28025 * > | a <!--a
28026 * ^
28027 * | b-->
28028 * ```
28029 *
28030 * @type {State}
28031 */
28032 function lineEndingBefore(code) {
28033 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(returnState, 'expected return state')
28034 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
28035 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28036 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28037 effects.consume(code)
28038 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28039 return lineEndingAfter
28040 }
28041
28042 /**
28043 * After eol, at optional whitespace.
28044 *
28045 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28046 * > empty tokens.
28047 *
28048 * ```markdown
28049 * | a <!--a
28050 * > | b-->
28051 * ^
28052 * ```
28053 *
28054 * @type {State}
28055 */
28056 function lineEndingAfter(code) {
28057 // Always populated by defaults.
28058 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28059 self.parser.constructs.disable.null,
28060 'expected `disable.null` to be populated'
28061 )
28062 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
28063 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
28064 effects,
28065 lineEndingAfterPrefix,
28066 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
28067 self.parser.constructs.disable.null.includes('codeIndented')
28068 ? undefined
28069 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
28070 )(code)
28071 : lineEndingAfterPrefix(code)
28072 }
28073
28074 /**
28075 * After eol, after optional whitespace.
28076 *
28077 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28078 * > empty tokens.
28079 *
28080 * ```markdown
28081 * | a <!--a
28082 * > | b-->
28083 * ^
28084 * ```
28085 *
28086 * @type {State}
28087 */
28088 function lineEndingAfterPrefix(code) {
28089 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28090 return returnState(code)
28091 }
28092 }
28093
28094
28095 /***/ }),
28096
28097 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js":
28098 /*!**********************************************************************!*\
28099 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-end.js ***!
28100 \**********************************************************************/
28101 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28102
28103 "use strict";
28104 __webpack_require__.r(__webpack_exports__);
28105 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28106 /* harmony export */ labelEnd: () => (/* binding */ labelEnd)
28107 /* harmony export */ });
28108 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
28109 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
28110 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
28111 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
28112 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
28113 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
28114 /* 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");
28115 /* 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");
28116 /* 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");
28117 /* 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");
28118 /* 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");
28119 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28120 /**
28121 * @typedef {import('micromark-util-types').Construct} Construct
28122 * @typedef {import('micromark-util-types').Event} Event
28123 * @typedef {import('micromark-util-types').Resolver} Resolver
28124 * @typedef {import('micromark-util-types').State} State
28125 * @typedef {import('micromark-util-types').Token} Token
28126 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28127 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28128 */
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143 /** @type {Construct} */
28144 const labelEnd = {
28145 name: 'labelEnd',
28146 tokenize: tokenizeLabelEnd,
28147 resolveTo: resolveToLabelEnd,
28148 resolveAll: resolveAllLabelEnd
28149 }
28150
28151 /** @type {Construct} */
28152 const resourceConstruct = {tokenize: tokenizeResource}
28153 /** @type {Construct} */
28154 const referenceFullConstruct = {tokenize: tokenizeReferenceFull}
28155 /** @type {Construct} */
28156 const referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}
28157
28158 /** @type {Resolver} */
28159 function resolveAllLabelEnd(events) {
28160 let index = -1
28161
28162 while (++index < events.length) {
28163 const token = events[index][1]
28164
28165 if (
28166 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28167 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink ||
28168 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd
28169 ) {
28170 // Remove the marker.
28171 events.splice(index + 1, token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ? 4 : 2)
28172 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.data
28173 index++
28174 }
28175 }
28176
28177 return events
28178 }
28179
28180 /** @type {Resolver} */
28181 function resolveToLabelEnd(events, context) {
28182 let index = events.length
28183 let offset = 0
28184 /** @type {Token} */
28185 let token
28186 /** @type {number | undefined} */
28187 let open
28188 /** @type {number | undefined} */
28189 let close
28190 /** @type {Array<Event>} */
28191 let media
28192
28193 // Find an opening.
28194 while (index--) {
28195 token = events[index][1]
28196
28197 if (open) {
28198 // If we see another link, or inactive link label, we’ve been here before.
28199 if (
28200 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.link ||
28201 (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink && token._inactive)
28202 ) {
28203 break
28204 }
28205
28206 // Mark other link openings as inactive, as we can’t have links in
28207 // links.
28208 if (events[index][0] === 'enter' && token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28209 token._inactive = true
28210 }
28211 } else if (close) {
28212 if (
28213 events[index][0] === 'enter' &&
28214 (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) &&
28215 !token._balanced
28216 ) {
28217 open = index
28218
28219 if (token.type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28220 offset = 2
28221 break
28222 }
28223 }
28224 } else if (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd) {
28225 close = index
28226 }
28227 }
28228
28229 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(open !== undefined, '`open` is supposed to be found')
28230 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(close !== undefined, '`close` is supposed to be found')
28231
28232 const group = {
28233 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,
28234 start: Object.assign({}, events[open][1].start),
28235 end: Object.assign({}, events[events.length - 1][1].end)
28236 }
28237
28238 const label = {
28239 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.label,
28240 start: Object.assign({}, events[open][1].start),
28241 end: Object.assign({}, events[close][1].end)
28242 }
28243
28244 const text = {
28245 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelText,
28246 start: Object.assign({}, events[open + offset + 2][1].end),
28247 end: Object.assign({}, events[close - 2][1].start)
28248 }
28249
28250 media = [
28251 ['enter', group, context],
28252 ['enter', label, context]
28253 ]
28254
28255 // Opening marker.
28256 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(open + 1, open + offset + 3))
28257
28258 // Text open.
28259 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['enter', text, context]])
28260
28261 // Always populated by defaults.
28262 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28263 context.parser.constructs.insideSpan.null,
28264 'expected `insideSpan.null` to be populated'
28265 )
28266 // Between.
28267 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
28268 media,
28269 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
28270 context.parser.constructs.insideSpan.null,
28271 events.slice(open + offset + 4, close - 3),
28272 context
28273 )
28274 )
28275
28276 // Text close, marker close, label close.
28277 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [
28278 ['exit', text, context],
28279 events[close - 2],
28280 events[close - 1],
28281 ['exit', label, context]
28282 ])
28283
28284 // Reference, resource, or so.
28285 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(close + 1))
28286
28287 // Media close.
28288 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['exit', group, context]])
28289
28290 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open, events.length, media)
28291
28292 return events
28293 }
28294
28295 /**
28296 * @this {TokenizeContext}
28297 * @type {Tokenizer}
28298 */
28299 function tokenizeLabelEnd(effects, ok, nok) {
28300 const self = this
28301 let index = self.events.length
28302 /** @type {Token} */
28303 let labelStart
28304 /** @type {boolean} */
28305 let defined
28306
28307 // Find an opening.
28308 while (index--) {
28309 if (
28310 (self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28311 self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) &&
28312 !self.events[index][1]._balanced
28313 ) {
28314 labelStart = self.events[index][1]
28315 break
28316 }
28317 }
28318
28319 return start
28320
28321 /**
28322 * Start of label end.
28323 *
28324 * ```markdown
28325 * > | [a](b) c
28326 * ^
28327 * > | [a][b] c
28328 * ^
28329 * > | [a][] b
28330 * ^
28331 * > | [a] b
28332 * ```
28333 *
28334 * @type {State}
28335 */
28336 function start(code) {
28337 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket, 'expected `]`')
28338
28339 // If there is not an okay opening.
28340 if (!labelStart) {
28341 return nok(code)
28342 }
28343
28344 // If the corresponding label (link) start is marked as inactive,
28345 // it means we’d be wrapping a link, like this:
28346 //
28347 // ```markdown
28348 // > | a [b [c](d) e](f) g.
28349 // ^
28350 // ```
28351 //
28352 // We can’t have that, so it’s just balanced brackets.
28353 if (labelStart._inactive) {
28354 return labelEndNok(code)
28355 }
28356
28357 defined = self.parser.defined.includes(
28358 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28359 self.sliceSerialize({start: labelStart.end, end: self.now()})
28360 )
28361 )
28362 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28363 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28364 effects.consume(code)
28365 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28366 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28367 return after
28368 }
28369
28370 /**
28371 * After `]`.
28372 *
28373 * ```markdown
28374 * > | [a](b) c
28375 * ^
28376 * > | [a][b] c
28377 * ^
28378 * > | [a][] b
28379 * ^
28380 * > | [a] b
28381 * ^
28382 * ```
28383 *
28384 * @type {State}
28385 */
28386 function after(code) {
28387 // Note: `markdown-rs` also parses GFM footnotes here, which for us is in
28388 // an extension.
28389
28390 // Resource (`[asd](fgh)`)?
28391 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {
28392 return effects.attempt(
28393 resourceConstruct,
28394 labelEndOk,
28395 defined ? labelEndOk : labelEndNok
28396 )(code)
28397 }
28398
28399 // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
28400 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket) {
28401 return effects.attempt(
28402 referenceFullConstruct,
28403 labelEndOk,
28404 defined ? referenceNotFull : labelEndNok
28405 )(code)
28406 }
28407
28408 // Shortcut (`[asd]`) reference?
28409 return defined ? labelEndOk(code) : labelEndNok(code)
28410 }
28411
28412 /**
28413 * After `]`, at `[`, but not at a full reference.
28414 *
28415 * > 👉 **Note**: we only get here if the label is defined.
28416 *
28417 * ```markdown
28418 * > | [a][] b
28419 * ^
28420 * > | [a] b
28421 * ^
28422 * ```
28423 *
28424 * @type {State}
28425 */
28426 function referenceNotFull(code) {
28427 return effects.attempt(
28428 referenceCollapsedConstruct,
28429 labelEndOk,
28430 labelEndNok
28431 )(code)
28432 }
28433
28434 /**
28435 * Done, we found something.
28436 *
28437 * ```markdown
28438 * > | [a](b) c
28439 * ^
28440 * > | [a][b] c
28441 * ^
28442 * > | [a][] b
28443 * ^
28444 * > | [a] b
28445 * ^
28446 * ```
28447 *
28448 * @type {State}
28449 */
28450 function labelEndOk(code) {
28451 // Note: `markdown-rs` does a bunch of stuff here.
28452 return ok(code)
28453 }
28454
28455 /**
28456 * Done, it’s nothing.
28457 *
28458 * There was an okay opening, but we didn’t match anything.
28459 *
28460 * ```markdown
28461 * > | [a](b c
28462 * ^
28463 * > | [a][b c
28464 * ^
28465 * > | [a] b
28466 * ^
28467 * ```
28468 *
28469 * @type {State}
28470 */
28471 function labelEndNok(code) {
28472 labelStart._balanced = true
28473 return nok(code)
28474 }
28475 }
28476
28477 /**
28478 * @this {TokenizeContext}
28479 * @type {Tokenizer}
28480 */
28481 function tokenizeResource(effects, ok, nok) {
28482 return resourceStart
28483
28484 /**
28485 * At a resource.
28486 *
28487 * ```markdown
28488 * > | [a](b) c
28489 * ^
28490 * ```
28491 *
28492 * @type {State}
28493 */
28494 function resourceStart(code) {
28495 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis, 'expected left paren')
28496 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28497 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28498 effects.consume(code)
28499 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28500 return resourceBefore
28501 }
28502
28503 /**
28504 * In resource, after `(`, at optional whitespace.
28505 *
28506 * ```markdown
28507 * > | [a](b) c
28508 * ^
28509 * ```
28510 *
28511 * @type {State}
28512 */
28513 function resourceBefore(code) {
28514 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28515 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceOpen)(code)
28516 : resourceOpen(code)
28517 }
28518
28519 /**
28520 * In resource, after optional whitespace, at `)` or a destination.
28521 *
28522 * ```markdown
28523 * > | [a](b) c
28524 * ^
28525 * ```
28526 *
28527 * @type {State}
28528 */
28529 function resourceOpen(code) {
28530 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28531 return resourceEnd(code)
28532 }
28533
28534 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__.factoryDestination)(
28535 effects,
28536 resourceDestinationAfter,
28537 resourceDestinationMissing,
28538 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestination,
28539 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteral,
28540 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteralMarker,
28541 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationRaw,
28542 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationString,
28543 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_9__.constants.linkResourceDestinationBalanceMax
28544 )(code)
28545 }
28546
28547 /**
28548 * In resource, after destination, at optional whitespace.
28549 *
28550 * ```markdown
28551 * > | [a](b) c
28552 * ^
28553 * ```
28554 *
28555 * @type {State}
28556 */
28557 function resourceDestinationAfter(code) {
28558 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28559 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceBetween)(code)
28560 : resourceEnd(code)
28561 }
28562
28563 /**
28564 * At invalid destination.
28565 *
28566 * ```markdown
28567 * > | [a](<<) b
28568 * ^
28569 * ```
28570 *
28571 * @type {State}
28572 */
28573 function resourceDestinationMissing(code) {
28574 return nok(code)
28575 }
28576
28577 /**
28578 * In resource, after destination and whitespace, at `(` or title.
28579 *
28580 * ```markdown
28581 * > | [a](b ) c
28582 * ^
28583 * ```
28584 *
28585 * @type {State}
28586 */
28587 function resourceBetween(code) {
28588 if (
28589 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.quotationMark ||
28590 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.apostrophe ||
28591 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis
28592 ) {
28593 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__.factoryTitle)(
28594 effects,
28595 resourceTitleAfter,
28596 nok,
28597 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitle,
28598 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleMarker,
28599 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleString
28600 )(code)
28601 }
28602
28603 return resourceEnd(code)
28604 }
28605
28606 /**
28607 * In resource, after title, at optional whitespace.
28608 *
28609 * ```markdown
28610 * > | [a](b "c") d
28611 * ^
28612 * ```
28613 *
28614 * @type {State}
28615 */
28616 function resourceTitleAfter(code) {
28617 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28618 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceEnd)(code)
28619 : resourceEnd(code)
28620 }
28621
28622 /**
28623 * In resource, at `)`.
28624 *
28625 * ```markdown
28626 * > | [a](b) d
28627 * ^
28628 * ```
28629 *
28630 * @type {State}
28631 */
28632 function resourceEnd(code) {
28633 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28634 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28635 effects.consume(code)
28636 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28637 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28638 return ok
28639 }
28640
28641 return nok(code)
28642 }
28643 }
28644
28645 /**
28646 * @this {TokenizeContext}
28647 * @type {Tokenizer}
28648 */
28649 function tokenizeReferenceFull(effects, ok, nok) {
28650 const self = this
28651
28652 return referenceFull
28653
28654 /**
28655 * In a reference (full), at the `[`.
28656 *
28657 * ```markdown
28658 * > | [a][b] d
28659 * ^
28660 * ```
28661 *
28662 * @type {State}
28663 */
28664 function referenceFull(code) {
28665 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28666 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__.factoryLabel.call(
28667 self,
28668 effects,
28669 referenceFullAfter,
28670 referenceFullMissing,
28671 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference,
28672 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker,
28673 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceString
28674 )(code)
28675 }
28676
28677 /**
28678 * In a reference (full), after `]`.
28679 *
28680 * ```markdown
28681 * > | [a][b] d
28682 * ^
28683 * ```
28684 *
28685 * @type {State}
28686 */
28687 function referenceFullAfter(code) {
28688 return self.parser.defined.includes(
28689 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28690 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
28691 )
28692 )
28693 ? ok(code)
28694 : nok(code)
28695 }
28696
28697 /**
28698 * In reference (full) that was missing.
28699 *
28700 * ```markdown
28701 * > | [a][b d
28702 * ^
28703 * ```
28704 *
28705 * @type {State}
28706 */
28707 function referenceFullMissing(code) {
28708 return nok(code)
28709 }
28710 }
28711
28712 /**
28713 * @this {TokenizeContext}
28714 * @type {Tokenizer}
28715 */
28716 function tokenizeReferenceCollapsed(effects, ok, nok) {
28717 return referenceCollapsedStart
28718
28719 /**
28720 * In reference (collapsed), at `[`.
28721 *
28722 * > 👉 **Note**: we only get here if the label is defined.
28723 *
28724 * ```markdown
28725 * > | [a][] d
28726 * ^
28727 * ```
28728 *
28729 * @type {State}
28730 */
28731 function referenceCollapsedStart(code) {
28732 // We only attempt a collapsed label if there’s a `[`.
28733 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
28734 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28735 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28736 effects.consume(code)
28737 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28738 return referenceCollapsedOpen
28739 }
28740
28741 /**
28742 * In reference (collapsed), at `]`.
28743 *
28744 * > 👉 **Note**: we only get here if the label is defined.
28745 *
28746 * ```markdown
28747 * > | [a][] d
28748 * ^
28749 * ```
28750 *
28751 * @type {State}
28752 */
28753 function referenceCollapsedOpen(code) {
28754 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket) {
28755 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28756 effects.consume(code)
28757 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
28758 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
28759 return ok
28760 }
28761
28762 return nok(code)
28763 }
28764 }
28765
28766
28767 /***/ }),
28768
28769 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js":
28770 /*!******************************************************************************!*\
28771 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js ***!
28772 \******************************************************************************/
28773 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28774
28775 "use strict";
28776 __webpack_require__.r(__webpack_exports__);
28777 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28778 /* harmony export */ labelStartImage: () => (/* binding */ labelStartImage)
28779 /* harmony export */ });
28780 /* 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");
28781 /* 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");
28782 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28783 /* 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");
28784 /**
28785 * @typedef {import('micromark-util-types').Construct} Construct
28786 * @typedef {import('micromark-util-types').State} State
28787 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28788 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28789 */
28790
28791
28792
28793
28794
28795
28796 /** @type {Construct} */
28797 const labelStartImage = {
28798 name: 'labelStartImage',
28799 tokenize: tokenizeLabelStartImage,
28800 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28801 }
28802
28803 /**
28804 * @this {TokenizeContext}
28805 * @type {Tokenizer}
28806 */
28807 function tokenizeLabelStartImage(effects, ok, nok) {
28808 const self = this
28809
28810 return start
28811
28812 /**
28813 * Start of label (image) start.
28814 *
28815 * ```markdown
28816 * > | a ![b] c
28817 * ^
28818 * ```
28819 *
28820 * @type {State}
28821 */
28822 function start(code) {
28823 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark, 'expected `!`')
28824 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28825 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28826 effects.consume(code)
28827 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
28828 return open
28829 }
28830
28831 /**
28832 * After `!`, at `[`.
28833 *
28834 * ```markdown
28835 * > | a ![b] c
28836 * ^
28837 * ```
28838 *
28839 * @type {State}
28840 */
28841 function open(code) {
28842 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
28843 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28844 effects.consume(code)
28845 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28846 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
28847 return after
28848 }
28849
28850 return nok(code)
28851 }
28852
28853 /**
28854 * After `![`.
28855 *
28856 * ```markdown
28857 * > | a ![b] c
28858 * ^
28859 * ```
28860 *
28861 * This is needed in because, when GFM footnotes are enabled, images never
28862 * form when started with a `^`.
28863 * Instead, links form:
28864 *
28865 * ```markdown
28866 * ![^a](b)
28867 *
28868 * ![^a][b]
28869 *
28870 * [b]: c
28871 * ```
28872 *
28873 * ```html
28874 * <p>!<a href=\"b\">^a</a></p>
28875 * <p>!<a href=\"c\">^a</a></p>
28876 * ```
28877 *
28878 * @type {State}
28879 */
28880 function after(code) {
28881 // To do: use a new field to do this, this is still needed for
28882 // `micromark-extension-gfm-footnote`, but the `label-start-link`
28883 // behavior isn’t.
28884 // Hidden footnotes hook.
28885 /* c8 ignore next 3 */
28886 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
28887 '_hiddenFootnoteSupport' in self.parser.constructs
28888 ? nok(code)
28889 : ok(code)
28890 }
28891 }
28892
28893
28894 /***/ }),
28895
28896 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js":
28897 /*!*****************************************************************************!*\
28898 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js ***!
28899 \*****************************************************************************/
28900 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28901
28902 "use strict";
28903 __webpack_require__.r(__webpack_exports__);
28904 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28905 /* harmony export */ labelStartLink: () => (/* binding */ labelStartLink)
28906 /* harmony export */ });
28907 /* 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");
28908 /* 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");
28909 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28910 /* 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");
28911 /**
28912 * @typedef {import('micromark-util-types').Construct} Construct
28913 * @typedef {import('micromark-util-types').State} State
28914 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28915 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28916 */
28917
28918
28919
28920
28921
28922
28923 /** @type {Construct} */
28924 const labelStartLink = {
28925 name: 'labelStartLink',
28926 tokenize: tokenizeLabelStartLink,
28927 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
28928 }
28929
28930 /**
28931 * @this {TokenizeContext}
28932 * @type {Tokenizer}
28933 */
28934 function tokenizeLabelStartLink(effects, ok, nok) {
28935 const self = this
28936
28937 return start
28938
28939 /**
28940 * Start of label (link) start.
28941 *
28942 * ```markdown
28943 * > | a [b] c
28944 * ^
28945 * ```
28946 *
28947 * @type {State}
28948 */
28949 function start(code) {
28950 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
28951 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
28952 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28953 effects.consume(code)
28954 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
28955 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
28956 return after
28957 }
28958
28959 /** @type {State} */
28960 function after(code) {
28961 // To do: this isn’t needed in `micromark-extension-gfm-footnote`,
28962 // remove.
28963 // Hidden footnotes hook.
28964 /* c8 ignore next 3 */
28965 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
28966 '_hiddenFootnoteSupport' in self.parser.constructs
28967 ? nok(code)
28968 : ok(code)
28969 }
28970 }
28971
28972
28973 /***/ }),
28974
28975 /***/ "../node_modules/micromark-core-commonmark/dev/lib/line-ending.js":
28976 /*!************************************************************************!*\
28977 !*** ../node_modules/micromark-core-commonmark/dev/lib/line-ending.js ***!
28978 \************************************************************************/
28979 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28980
28981 "use strict";
28982 __webpack_require__.r(__webpack_exports__);
28983 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28984 /* harmony export */ lineEnding: () => (/* binding */ lineEnding)
28985 /* harmony export */ });
28986 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
28987 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
28988 /* 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");
28989 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28990 /**
28991 * @typedef {import('micromark-util-types').Construct} Construct
28992 * @typedef {import('micromark-util-types').State} State
28993 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28994 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28995 */
28996
28997
28998
28999
29000
29001
29002 /** @type {Construct} */
29003 const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}
29004
29005 /**
29006 * @this {TokenizeContext}
29007 * @type {Tokenizer}
29008 */
29009 function tokenizeLineEnding(effects, ok) {
29010 return start
29011
29012 /** @type {State} */
29013 function start(code) {
29014 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code), 'expected eol')
29015 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29016 effects.consume(code)
29017 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29018 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, ok, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
29019 }
29020 }
29021
29022
29023 /***/ }),
29024
29025 /***/ "../node_modules/micromark-core-commonmark/dev/lib/list.js":
29026 /*!*****************************************************************!*\
29027 !*** ../node_modules/micromark-core-commonmark/dev/lib/list.js ***!
29028 \*****************************************************************/
29029 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29030
29031 "use strict";
29032 __webpack_require__.r(__webpack_exports__);
29033 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29034 /* harmony export */ list: () => (/* binding */ list)
29035 /* harmony export */ });
29036 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29037 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29038 /* 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");
29039 /* 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");
29040 /* 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");
29041 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29042 /* 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");
29043 /* 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");
29044 /**
29045 * @typedef {import('micromark-util-types').Code} Code
29046 * @typedef {import('micromark-util-types').Construct} Construct
29047 * @typedef {import('micromark-util-types').ContainerState} ContainerState
29048 * @typedef {import('micromark-util-types').Exiter} Exiter
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
29060
29061
29062
29063 /** @type {Construct} */
29064 const list = {
29065 name: 'list',
29066 tokenize: tokenizeListStart,
29067 continuation: {tokenize: tokenizeListContinuation},
29068 exit: tokenizeListEnd
29069 }
29070
29071 /** @type {Construct} */
29072 const listItemPrefixWhitespaceConstruct = {
29073 tokenize: tokenizeListItemPrefixWhitespace,
29074 partial: true
29075 }
29076
29077 /** @type {Construct} */
29078 const indentConstruct = {tokenize: tokenizeIndent, partial: true}
29079
29080 // To do: `markdown-rs` parses list items on their own and later stitches them
29081 // together.
29082
29083 /**
29084 * @type {Tokenizer}
29085 * @this {TokenizeContext}
29086 */
29087 function tokenizeListStart(effects, ok, nok) {
29088 const self = this
29089 const tail = self.events[self.events.length - 1]
29090 let initialSize =
29091 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix
29092 ? tail[2].sliceSerialize(tail[1], true).length
29093 : 0
29094 let size = 0
29095
29096 return start
29097
29098 /** @type {State} */
29099 function start(code) {
29100 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29101 const kind =
29102 self.containerState.type ||
29103 (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
29104 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29105 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listOrdered)
29106
29107 if (
29108 kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29109 ? !self.containerState.marker || code === self.containerState.marker
29110 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code)
29111 ) {
29112 if (!self.containerState.type) {
29113 self.containerState.type = kind
29114 effects.enter(kind, {_container: true})
29115 }
29116
29117 if (kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered) {
29118 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29119 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
29120 ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_4__.thematicBreak, nok, atMarker)(code)
29121 : atMarker(code)
29122 }
29123
29124 if (!self.interrupt || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.digit1) {
29125 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29126 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29127 return inside(code)
29128 }
29129 }
29130
29131 return nok(code)
29132 }
29133
29134 /** @type {State} */
29135 function inside(code) {
29136 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29137 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code) && ++size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.listItemValueSizeMax) {
29138 effects.consume(code)
29139 return inside
29140 }
29141
29142 if (
29143 (!self.interrupt || size < 2) &&
29144 (self.containerState.marker
29145 ? code === self.containerState.marker
29146 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightParenthesis || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot)
29147 ) {
29148 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29149 return atMarker(code)
29150 }
29151
29152 return nok(code)
29153 }
29154
29155 /**
29156 * @type {State}
29157 **/
29158 function atMarker(code) {
29159 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29160 ;(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')
29161 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29162 effects.consume(code)
29163 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29164 self.containerState.marker = self.containerState.marker || code
29165 return effects.check(
29166 _blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine,
29167 // Can’t be empty when interrupting.
29168 self.interrupt ? nok : onBlank,
29169 effects.attempt(
29170 listItemPrefixWhitespaceConstruct,
29171 endOfPrefix,
29172 otherPrefix
29173 )
29174 )
29175 }
29176
29177 /** @type {State} */
29178 function onBlank(code) {
29179 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29180 self.containerState.initialBlankLine = true
29181 initialSize++
29182 return endOfPrefix(code)
29183 }
29184
29185 /** @type {State} */
29186 function otherPrefix(code) {
29187 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29188 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29189 effects.consume(code)
29190 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29191 return endOfPrefix
29192 }
29193
29194 return nok(code)
29195 }
29196
29197 /** @type {State} */
29198 function endOfPrefix(code) {
29199 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29200 self.containerState.size =
29201 initialSize +
29202 self.sliceSerialize(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix), true).length
29203 return ok(code)
29204 }
29205 }
29206
29207 /**
29208 * @type {Tokenizer}
29209 * @this {TokenizeContext}
29210 */
29211 function tokenizeListContinuation(effects, ok, nok) {
29212 const self = this
29213
29214 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29215 self.containerState._closeFlow = undefined
29216
29217 return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, onBlank, notBlank)
29218
29219 /** @type {State} */
29220 function onBlank(code) {
29221 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29222 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29223 self.containerState.furtherBlankLines =
29224 self.containerState.furtherBlankLines ||
29225 self.containerState.initialBlankLine
29226
29227 // We have a blank line.
29228 // Still, try to consume at most the items size.
29229 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29230 effects,
29231 ok,
29232 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29233 self.containerState.size + 1
29234 )(code)
29235 }
29236
29237 /** @type {State} */
29238 function notBlank(code) {
29239 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29240 if (self.containerState.furtherBlankLines || !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29241 self.containerState.furtherBlankLines = undefined
29242 self.containerState.initialBlankLine = undefined
29243 return notInCurrentItem(code)
29244 }
29245
29246 self.containerState.furtherBlankLines = undefined
29247 self.containerState.initialBlankLine = undefined
29248 return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)
29249 }
29250
29251 /** @type {State} */
29252 function notInCurrentItem(code) {
29253 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29254 // While we do continue, we signal that the flow should be closed.
29255 self.containerState._closeFlow = true
29256 // As we’re closing flow, we’re no longer interrupting.
29257 self.interrupt = undefined
29258 // Always populated by defaults.
29259 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29260 self.parser.constructs.disable.null,
29261 'expected `disable.null` to be populated'
29262 )
29263 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29264 effects,
29265 effects.attempt(list, ok, nok),
29266 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
29267 self.parser.constructs.disable.null.includes('codeIndented')
29268 ? undefined
29269 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
29270 )(code)
29271 }
29272 }
29273
29274 /**
29275 * @type {Tokenizer}
29276 * @this {TokenizeContext}
29277 */
29278 function tokenizeIndent(effects, ok, nok) {
29279 const self = this
29280
29281 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29282 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29283
29284 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29285 effects,
29286 afterPrefix,
29287 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29288 self.containerState.size + 1
29289 )
29290
29291 /** @type {State} */
29292 function afterPrefix(code) {
29293 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29294 const tail = self.events[self.events.length - 1]
29295 return tail &&
29296 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent &&
29297 tail[2].sliceSerialize(tail[1], true).length === self.containerState.size
29298 ? ok(code)
29299 : nok(code)
29300 }
29301 }
29302
29303 /**
29304 * @type {Exiter}
29305 * @this {TokenizeContext}
29306 */
29307 function tokenizeListEnd(effects) {
29308 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(this.containerState, 'expected state')
29309 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof this.containerState.type === 'string', 'expected type')
29310 effects.exit(this.containerState.type)
29311 }
29312
29313 /**
29314 * @type {Tokenizer}
29315 * @this {TokenizeContext}
29316 */
29317 function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
29318 const self = this
29319
29320 // Always populated by defaults.
29321 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29322 self.parser.constructs.disable.null,
29323 'expected `disable.null` to be populated'
29324 )
29325
29326 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29327 effects,
29328 afterPrefix,
29329 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace,
29330 self.parser.constructs.disable.null.includes('codeIndented')
29331 ? undefined
29332 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize + 1
29333 )
29334
29335 /** @type {State} */
29336 function afterPrefix(code) {
29337 const tail = self.events[self.events.length - 1]
29338
29339 return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) &&
29340 tail &&
29341 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace
29342 ? ok(code)
29343 : nok(code)
29344 }
29345 }
29346
29347
29348 /***/ }),
29349
29350 /***/ "../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js":
29351 /*!*****************************************************************************!*\
29352 !*** ../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js ***!
29353 \*****************************************************************************/
29354 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29355
29356 "use strict";
29357 __webpack_require__.r(__webpack_exports__);
29358 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29359 /* harmony export */ setextUnderline: () => (/* binding */ setextUnderline)
29360 /* harmony export */ });
29361 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29362 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29363 /* 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");
29364 /* 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");
29365 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29366 /**
29367 * @typedef {import('micromark-util-types').Code} Code
29368 * @typedef {import('micromark-util-types').Construct} Construct
29369 * @typedef {import('micromark-util-types').Resolver} Resolver
29370 * @typedef {import('micromark-util-types').State} State
29371 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29372 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29373 */
29374
29375
29376
29377
29378
29379
29380
29381 /** @type {Construct} */
29382 const setextUnderline = {
29383 name: 'setextUnderline',
29384 tokenize: tokenizeSetextUnderline,
29385 resolveTo: resolveToSetextUnderline
29386 }
29387
29388 /** @type {Resolver} */
29389 function resolveToSetextUnderline(events, context) {
29390 // To do: resolve like `markdown-rs`.
29391 let index = events.length
29392 /** @type {number | undefined} */
29393 let content
29394 /** @type {number | undefined} */
29395 let text
29396 /** @type {number | undefined} */
29397 let definition
29398
29399 // Find the opening of the content.
29400 // It’ll always exist: we don’t tokenize if it isn’t there.
29401 while (index--) {
29402 if (events[index][0] === 'enter') {
29403 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29404 content = index
29405 break
29406 }
29407
29408 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph) {
29409 text = index
29410 }
29411 }
29412 // Exit
29413 else {
29414 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29415 // Remove the content end (if needed we’ll add it later)
29416 events.splice(index, 1)
29417 }
29418
29419 if (!definition && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition) {
29420 definition = index
29421 }
29422 }
29423 }
29424
29425 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(text !== undefined, 'expected a `text` index to be found')
29426 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(content !== undefined, 'expected a `text` index to be found')
29427
29428 const heading = {
29429 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeading,
29430 start: Object.assign({}, events[text][1].start),
29431 end: Object.assign({}, events[events.length - 1][1].end)
29432 }
29433
29434 // Change the paragraph to setext heading text.
29435 events[text][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingText
29436
29437 // If we have definitions in the content, we’ll keep on having content,
29438 // but we need move it.
29439 if (definition) {
29440 events.splice(text, 0, ['enter', heading, context])
29441 events.splice(definition + 1, 0, ['exit', events[content][1], context])
29442 events[content][1].end = Object.assign({}, events[definition][1].end)
29443 } else {
29444 events[content][1] = heading
29445 }
29446
29447 // Add the heading exit at the end.
29448 events.push(['exit', heading, context])
29449
29450 return events
29451 }
29452
29453 /**
29454 * @this {TokenizeContext}
29455 * @type {Tokenizer}
29456 */
29457 function tokenizeSetextUnderline(effects, ok, nok) {
29458 const self = this
29459 /** @type {NonNullable<Code>} */
29460 let marker
29461
29462 return start
29463
29464 /**
29465 * At start of heading (setext) underline.
29466 *
29467 * ```markdown
29468 * | aa
29469 * > | ==
29470 * ^
29471 * ```
29472 *
29473 * @type {State}
29474 */
29475 function start(code) {
29476 let index = self.events.length
29477 /** @type {boolean | undefined} */
29478 let paragraph
29479
29480 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29481 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo,
29482 'expected `=` or `-`'
29483 )
29484
29485 // Find an opening.
29486 while (index--) {
29487 // Skip enter/exit of line ending, line prefix, and content.
29488 // We can now either have a definition or a paragraph.
29489 if (
29490 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding &&
29491 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix &&
29492 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
29493 ) {
29494 paragraph = self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph
29495 break
29496 }
29497 }
29498
29499 // To do: handle lazy/pierce like `markdown-rs`.
29500 // To do: parse indent like `markdown-rs`.
29501 if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
29502 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29503 marker = code
29504 return before(code)
29505 }
29506
29507 return nok(code)
29508 }
29509
29510 /**
29511 * After optional whitespace, at `-` or `=`.
29512 *
29513 * ```markdown
29514 * | aa
29515 * > | ==
29516 * ^
29517 * ```
29518 *
29519 * @type {State}
29520 */
29521 function before(code) {
29522 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29523 return inside(code)
29524 }
29525
29526 /**
29527 * In sequence.
29528 *
29529 * ```markdown
29530 * | aa
29531 * > | ==
29532 * ^
29533 * ```
29534 *
29535 * @type {State}
29536 */
29537 function inside(code) {
29538 if (code === marker) {
29539 effects.consume(code)
29540 return inside
29541 }
29542
29543 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29544
29545 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
29546 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix)(code)
29547 : after(code)
29548 }
29549
29550 /**
29551 * After sequence, after optional whitespace.
29552 *
29553 * ```markdown
29554 * | aa
29555 * > | ==
29556 * ^
29557 * ```
29558 *
29559 * @type {State}
29560 */
29561 function after(code) {
29562 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
29563 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29564 return ok(code)
29565 }
29566
29567 return nok(code)
29568 }
29569 }
29570
29571
29572 /***/ }),
29573
29574 /***/ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js":
29575 /*!***************************************************************************!*\
29576 !*** ../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js ***!
29577 \***************************************************************************/
29578 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29579
29580 "use strict";
29581 __webpack_require__.r(__webpack_exports__);
29582 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29583 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
29584 /* harmony export */ });
29585 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29586 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29587 /* 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");
29588 /* 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");
29589 /* 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");
29590 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29591 /**
29592 * @typedef {import('micromark-util-types').Code} Code
29593 * @typedef {import('micromark-util-types').Construct} Construct
29594 * @typedef {import('micromark-util-types').State} State
29595 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29596 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29597 */
29598
29599
29600
29601
29602
29603
29604
29605
29606 /** @type {Construct} */
29607 const thematicBreak = {
29608 name: 'thematicBreak',
29609 tokenize: tokenizeThematicBreak
29610 }
29611
29612 /**
29613 * @this {TokenizeContext}
29614 * @type {Tokenizer}
29615 */
29616 function tokenizeThematicBreak(effects, ok, nok) {
29617 let size = 0
29618 /** @type {NonNullable<Code>} */
29619 let marker
29620
29621 return start
29622
29623 /**
29624 * Start of thematic break.
29625 *
29626 * ```markdown
29627 * > | ***
29628 * ^
29629 * ```
29630 *
29631 * @type {State}
29632 */
29633 function start(code) {
29634 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29635 // To do: parse indent like `markdown-rs`.
29636 return before(code)
29637 }
29638
29639 /**
29640 * After optional whitespace, at marker.
29641 *
29642 * ```markdown
29643 * > | ***
29644 * ^
29645 * ```
29646 *
29647 * @type {State}
29648 */
29649 function before(code) {
29650 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29651 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk ||
29652 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
29653 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore,
29654 'expected `*`, `-`, or `_`'
29655 )
29656 marker = code
29657 return atBreak(code)
29658 }
29659
29660 /**
29661 * After something, before something else.
29662 *
29663 * ```markdown
29664 * > | ***
29665 * ^
29666 * ```
29667 *
29668 * @type {State}
29669 */
29670 function atBreak(code) {
29671 if (code === marker) {
29672 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29673 return sequence(code)
29674 }
29675
29676 if (
29677 size >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.thematicBreakMarkerCountMin &&
29678 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
29679 ) {
29680 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29681 return ok(code)
29682 }
29683
29684 return nok(code)
29685 }
29686
29687 /**
29688 * In sequence.
29689 *
29690 * ```markdown
29691 * > | ***
29692 * ^
29693 * ```
29694 *
29695 * @type {State}
29696 */
29697 function sequence(code) {
29698 if (code === marker) {
29699 effects.consume(code)
29700 size++
29701 return sequence
29702 }
29703
29704 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
29705 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
29706 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
29707 : atBreak(code)
29708 }
29709 }
29710
29711
29712 /***/ }),
29713
29714 /***/ "../node_modules/micromark-factory-destination/dev/index.js":
29715 /*!******************************************************************!*\
29716 !*** ../node_modules/micromark-factory-destination/dev/index.js ***!
29717 \******************************************************************/
29718 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29719
29720 "use strict";
29721 __webpack_require__.r(__webpack_exports__);
29722 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29723 /* harmony export */ factoryDestination: () => (/* binding */ factoryDestination)
29724 /* harmony export */ });
29725 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29726 /* 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");
29727 /* 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");
29728 /* 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");
29729 /**
29730 * @typedef {import('micromark-util-types').Effects} Effects
29731 * @typedef {import('micromark-util-types').State} State
29732 * @typedef {import('micromark-util-types').TokenType} TokenType
29733 */
29734
29735
29736
29737
29738
29739
29740 /**
29741 * Parse destinations.
29742 *
29743 * ###### Examples
29744 *
29745 * ```markdown
29746 * <a>
29747 * <a\>b>
29748 * <a b>
29749 * <a)>
29750 * a
29751 * a\)b
29752 * a(b)c
29753 * a(b)
29754 * ```
29755 *
29756 * @param {Effects} effects
29757 * Context.
29758 * @param {State} ok
29759 * State switched to when successful.
29760 * @param {State} nok
29761 * State switched to when unsuccessful.
29762 * @param {TokenType} type
29763 * Type for whole (`<a>` or `b`).
29764 * @param {TokenType} literalType
29765 * Type when enclosed (`<a>`).
29766 * @param {TokenType} literalMarkerType
29767 * Type for enclosing (`<` and `>`).
29768 * @param {TokenType} rawType
29769 * Type when not enclosed (`b`).
29770 * @param {TokenType} stringType
29771 * Type for the value (`a` or `b`).
29772 * @param {number | undefined} [max=Infinity]
29773 * Depth of nested parens (inclusive).
29774 * @returns {State}
29775 * Start state.
29776 */
29777 // eslint-disable-next-line max-params
29778 function factoryDestination(
29779 effects,
29780 ok,
29781 nok,
29782 type,
29783 literalType,
29784 literalMarkerType,
29785 rawType,
29786 stringType,
29787 max
29788 ) {
29789 const limit = max || Number.POSITIVE_INFINITY
29790 let balance = 0
29791
29792 return start
29793
29794 /**
29795 * Start of destination.
29796 *
29797 * ```markdown
29798 * > | <aa>
29799 * ^
29800 * > | aa
29801 * ^
29802 * ```
29803 *
29804 * @type {State}
29805 */
29806 function start(code) {
29807 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan) {
29808 effects.enter(type)
29809 effects.enter(literalType)
29810 effects.enter(literalMarkerType)
29811 effects.consume(code)
29812 effects.exit(literalMarkerType)
29813 return enclosedBefore
29814 }
29815
29816 // ASCII control, space, closing paren.
29817 if (
29818 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29819 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
29820 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29821 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
29822 ) {
29823 return nok(code)
29824 }
29825
29826 effects.enter(type)
29827 effects.enter(rawType)
29828 effects.enter(stringType)
29829 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})
29830 return raw(code)
29831 }
29832
29833 /**
29834 * After `<`, at an enclosed destination.
29835 *
29836 * ```markdown
29837 * > | <aa>
29838 * ^
29839 * ```
29840 *
29841 * @type {State}
29842 */
29843 function enclosedBefore(code) {
29844 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29845 effects.enter(literalMarkerType)
29846 effects.consume(code)
29847 effects.exit(literalMarkerType)
29848 effects.exit(literalType)
29849 effects.exit(type)
29850 return ok
29851 }
29852
29853 effects.enter(stringType)
29854 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})
29855 return enclosed(code)
29856 }
29857
29858 /**
29859 * In enclosed destination.
29860 *
29861 * ```markdown
29862 * > | <aa>
29863 * ^
29864 * ```
29865 *
29866 * @type {State}
29867 */
29868 function enclosed(code) {
29869 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
29870 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29871 effects.exit(stringType)
29872 return enclosedBefore(code)
29873 }
29874
29875 if (
29876 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29877 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29878 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
29879 ) {
29880 return nok(code)
29881 }
29882
29883 effects.consume(code)
29884 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? enclosedEscape : enclosed
29885 }
29886
29887 /**
29888 * After `\`, at a special character.
29889 *
29890 * ```markdown
29891 * > | <a\*a>
29892 * ^
29893 * ```
29894 *
29895 * @type {State}
29896 */
29897 function enclosedEscape(code) {
29898 if (
29899 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
29900 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan ||
29901 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
29902 ) {
29903 effects.consume(code)
29904 return enclosed
29905 }
29906
29907 return enclosed(code)
29908 }
29909
29910 /**
29911 * In raw destination.
29912 *
29913 * ```markdown
29914 * > | aa
29915 * ^
29916 * ```
29917 *
29918 * @type {State}
29919 */
29920 function raw(code) {
29921 if (
29922 !balance &&
29923 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29924 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29925 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code))
29926 ) {
29927 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
29928 effects.exit(stringType)
29929 effects.exit(rawType)
29930 effects.exit(type)
29931 return ok(code)
29932 }
29933
29934 if (balance < limit && code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {
29935 effects.consume(code)
29936 balance++
29937 return raw
29938 }
29939
29940 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {
29941 effects.consume(code)
29942 balance--
29943 return raw
29944 }
29945
29946 // ASCII control (but *not* `\0`) and space and `(`.
29947 // Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
29948 // doesn’t.
29949 if (
29950 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
29951 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
29952 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
29953 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
29954 ) {
29955 return nok(code)
29956 }
29957
29958 effects.consume(code)
29959 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? rawEscape : raw
29960 }
29961
29962 /**
29963 * After `\`, at special character.
29964 *
29965 * ```markdown
29966 * > | a\*a
29967 * ^
29968 * ```
29969 *
29970 * @type {State}
29971 */
29972 function rawEscape(code) {
29973 if (
29974 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
29975 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
29976 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
29977 ) {
29978 effects.consume(code)
29979 return raw
29980 }
29981
29982 return raw(code)
29983 }
29984 }
29985
29986
29987 /***/ }),
29988
29989 /***/ "../node_modules/micromark-factory-label/dev/index.js":
29990 /*!************************************************************!*\
29991 !*** ../node_modules/micromark-factory-label/dev/index.js ***!
29992 \************************************************************/
29993 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29994
29995 "use strict";
29996 __webpack_require__.r(__webpack_exports__);
29997 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29998 /* harmony export */ factoryLabel: () => (/* binding */ factoryLabel)
29999 /* harmony export */ });
30000 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30001 /* 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");
30002 /* 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");
30003 /* 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");
30004 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
30005 /**
30006 * @typedef {import('micromark-util-types').Effects} Effects
30007 * @typedef {import('micromark-util-types').State} State
30008 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
30009 * @typedef {import('micromark-util-types').TokenType} TokenType
30010 */
30011
30012
30013
30014
30015
30016
30017
30018 /**
30019 * Parse labels.
30020 *
30021 * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
30022 *
30023 * ###### Examples
30024 *
30025 * ```markdown
30026 * [a]
30027 * [a
30028 * b]
30029 * [a\]b]
30030 * ```
30031 *
30032 * @this {TokenizeContext}
30033 * Tokenize context.
30034 * @param {Effects} effects
30035 * Context.
30036 * @param {State} ok
30037 * State switched to when successful.
30038 * @param {State} nok
30039 * State switched to when unsuccessful.
30040 * @param {TokenType} type
30041 * Type of the whole label (`[a]`).
30042 * @param {TokenType} markerType
30043 * Type for the markers (`[` and `]`).
30044 * @param {TokenType} stringType
30045 * Type for the identifier (`a`).
30046 * @returns {State}
30047 * Start state.
30048 */
30049 // eslint-disable-next-line max-params
30050 function factoryLabel(effects, ok, nok, type, markerType, stringType) {
30051 const self = this
30052 let size = 0
30053 /** @type {boolean} */
30054 let seen
30055
30056 return start
30057
30058 /**
30059 * Start of label.
30060 *
30061 * ```markdown
30062 * > | [a]
30063 * ^
30064 * ```
30065 *
30066 * @type {State}
30067 */
30068 function start(code) {
30069 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, 'expected `[`')
30070 effects.enter(type)
30071 effects.enter(markerType)
30072 effects.consume(code)
30073 effects.exit(markerType)
30074 effects.enter(stringType)
30075 return atBreak
30076 }
30077
30078 /**
30079 * In label, at something, before something else.
30080 *
30081 * ```markdown
30082 * > | [a]
30083 * ^
30084 * ```
30085 *
30086 * @type {State}
30087 */
30088 function atBreak(code) {
30089 if (
30090 size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax ||
30091 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30092 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30093 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket && !seen) ||
30094 // To do: remove in the future once we’ve switched from
30095 // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
30096 // which doesn’t need this.
30097 // Hidden footnotes hook.
30098 /* c8 ignore next 3 */
30099 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret &&
30100 !size &&
30101 '_hiddenFootnoteSupport' in self.parser.constructs)
30102 ) {
30103 return nok(code)
30104 }
30105
30106 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
30107 effects.exit(stringType)
30108 effects.enter(markerType)
30109 effects.consume(code)
30110 effects.exit(markerType)
30111 effects.exit(type)
30112 return ok
30113 }
30114
30115 // To do: indent? Link chunks and EOLs together?
30116 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
30117 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30118 effects.consume(code)
30119 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30120 return atBreak
30121 }
30122
30123 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})
30124 return labelInside(code)
30125 }
30126
30127 /**
30128 * In label, in text.
30129 *
30130 * ```markdown
30131 * > | [a]
30132 * ^
30133 * ```
30134 *
30135 * @type {State}
30136 */
30137 function labelInside(code) {
30138 if (
30139 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30140 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30141 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket ||
30142 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code) ||
30143 size++ > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax
30144 ) {
30145 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkString)
30146 return atBreak(code)
30147 }
30148
30149 effects.consume(code)
30150 if (!seen) seen = !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
30151 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : labelInside
30152 }
30153
30154 /**
30155 * After `\`, at a special character.
30156 *
30157 * ```markdown
30158 * > | [a\*a]
30159 * ^
30160 * ```
30161 *
30162 * @type {State}
30163 */
30164 function labelEscape(code) {
30165 if (
30166 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30167 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ||
30168 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket
30169 ) {
30170 effects.consume(code)
30171 size++
30172 return labelInside
30173 }
30174
30175 return labelInside(code)
30176 }
30177 }
30178
30179
30180 /***/ }),
30181
30182 /***/ "../node_modules/micromark-factory-space/dev/index.js":
30183 /*!************************************************************!*\
30184 !*** ../node_modules/micromark-factory-space/dev/index.js ***!
30185 \************************************************************/
30186 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30187
30188 "use strict";
30189 __webpack_require__.r(__webpack_exports__);
30190 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30191 /* harmony export */ factorySpace: () => (/* binding */ factorySpace)
30192 /* harmony export */ });
30193 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30194 /**
30195 * @typedef {import('micromark-util-types').Effects} Effects
30196 * @typedef {import('micromark-util-types').State} State
30197 * @typedef {import('micromark-util-types').TokenType} TokenType
30198 */
30199
30200
30201
30202 // To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.
30203
30204 /**
30205 * Parse spaces and tabs.
30206 *
30207 * There is no `nok` parameter:
30208 *
30209 * * spaces in markdown are often optional, in which case this factory can be
30210 * used and `ok` will be switched to whether spaces were found or not
30211 * * one line ending or space can be detected with `markdownSpace(code)` right
30212 * before using `factorySpace`
30213 *
30214 * ###### Examples
30215 *
30216 * Where `␉` represents a tab (plus how much it expands) and `␠` represents a
30217 * single space.
30218 *
30219 * ```markdown
30220 * ␉
30221 * ␠␠␠␠
30222 * ␉␠
30223 * ```
30224 *
30225 * @param {Effects} effects
30226 * Context.
30227 * @param {State} ok
30228 * State switched to when successful.
30229 * @param {TokenType} type
30230 * Type (`' \t'`).
30231 * @param {number | undefined} [max=Infinity]
30232 * Max (exclusive).
30233 * @returns
30234 * Start state.
30235 */
30236 function factorySpace(effects, ok, type, max) {
30237 const limit = max ? max - 1 : Number.POSITIVE_INFINITY
30238 let size = 0
30239
30240 return start
30241
30242 /** @type {State} */
30243 function start(code) {
30244 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30245 effects.enter(type)
30246 return prefix(code)
30247 }
30248
30249 return ok(code)
30250 }
30251
30252 /** @type {State} */
30253 function prefix(code) {
30254 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) && size++ < limit) {
30255 effects.consume(code)
30256 return prefix
30257 }
30258
30259 effects.exit(type)
30260 return ok(code)
30261 }
30262 }
30263
30264
30265 /***/ }),
30266
30267 /***/ "../node_modules/micromark-factory-title/dev/index.js":
30268 /*!************************************************************!*\
30269 !*** ../node_modules/micromark-factory-title/dev/index.js ***!
30270 \************************************************************/
30271 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30272
30273 "use strict";
30274 __webpack_require__.r(__webpack_exports__);
30275 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30276 /* harmony export */ factoryTitle: () => (/* binding */ factoryTitle)
30277 /* harmony export */ });
30278 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30279 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30280 /* 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");
30281 /* 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");
30282 /* 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");
30283 /**
30284 * @typedef {import('micromark-util-types').Code} Code
30285 * @typedef {import('micromark-util-types').Effects} Effects
30286 * @typedef {import('micromark-util-types').State} State
30287 * @typedef {import('micromark-util-types').TokenType} TokenType
30288 */
30289
30290
30291
30292
30293
30294
30295
30296 /**
30297 * Parse titles.
30298 *
30299 * ###### Examples
30300 *
30301 * ```markdown
30302 * "a"
30303 * 'b'
30304 * (c)
30305 * "a
30306 * b"
30307 * 'a
30308 * b'
30309 * (a\)b)
30310 * ```
30311 *
30312 * @param {Effects} effects
30313 * Context.
30314 * @param {State} ok
30315 * State switched to when successful.
30316 * @param {State} nok
30317 * State switched to when unsuccessful.
30318 * @param {TokenType} type
30319 * Type of the whole title (`"a"`, `'b'`, `(c)`).
30320 * @param {TokenType} markerType
30321 * Type for the markers (`"`, `'`, `(`, and `)`).
30322 * @param {TokenType} stringType
30323 * Type for the value (`a`).
30324 * @returns {State}
30325 * Start state.
30326 */
30327 // eslint-disable-next-line max-params
30328 function factoryTitle(effects, ok, nok, type, markerType, stringType) {
30329 /** @type {NonNullable<Code>} */
30330 let marker
30331
30332 return start
30333
30334 /**
30335 * Start of title.
30336 *
30337 * ```markdown
30338 * > | "a"
30339 * ^
30340 * ```
30341 *
30342 * @type {State}
30343 */
30344 function start(code) {
30345 if (
30346 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark ||
30347 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe ||
30348 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis
30349 ) {
30350 effects.enter(type)
30351 effects.enter(markerType)
30352 effects.consume(code)
30353 effects.exit(markerType)
30354 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
30355 return begin
30356 }
30357
30358 return nok(code)
30359 }
30360
30361 /**
30362 * After opening marker.
30363 *
30364 * This is also used at the closing marker.
30365 *
30366 * ```markdown
30367 * > | "a"
30368 * ^
30369 * ```
30370 *
30371 * @type {State}
30372 */
30373 function begin(code) {
30374 if (code === marker) {
30375 effects.enter(markerType)
30376 effects.consume(code)
30377 effects.exit(markerType)
30378 effects.exit(type)
30379 return ok
30380 }
30381
30382 effects.enter(stringType)
30383 return atBreak(code)
30384 }
30385
30386 /**
30387 * At something, before something else.
30388 *
30389 * ```markdown
30390 * > | "a"
30391 * ^
30392 * ```
30393 *
30394 * @type {State}
30395 */
30396 function atBreak(code) {
30397 if (code === marker) {
30398 effects.exit(stringType)
30399 return begin(marker)
30400 }
30401
30402 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {
30403 return nok(code)
30404 }
30405
30406 // Note: blank lines can’t exist in content.
30407 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
30408 // To do: use `space_or_tab_eol_with_options`, connect.
30409 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30410 effects.consume(code)
30411 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30412 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
30413 }
30414
30415 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})
30416 return inside(code)
30417 }
30418
30419 /**
30420 *
30421 *
30422 * @type {State}
30423 */
30424 function inside(code) {
30425 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)) {
30426 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30427 return atBreak(code)
30428 }
30429
30430 effects.consume(code)
30431 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? escape : inside
30432 }
30433
30434 /**
30435 * After `\`, at a special character.
30436 *
30437 * ```markdown
30438 * > | "a\*b"
30439 * ^
30440 * ```
30441 *
30442 * @type {State}
30443 */
30444 function escape(code) {
30445 if (code === marker || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {
30446 effects.consume(code)
30447 return inside
30448 }
30449
30450 return inside(code)
30451 }
30452 }
30453
30454
30455 /***/ }),
30456
30457 /***/ "../node_modules/micromark-factory-whitespace/dev/index.js":
30458 /*!*****************************************************************!*\
30459 !*** ../node_modules/micromark-factory-whitespace/dev/index.js ***!
30460 \*****************************************************************/
30461 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30462
30463 "use strict";
30464 __webpack_require__.r(__webpack_exports__);
30465 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30466 /* harmony export */ factoryWhitespace: () => (/* binding */ factoryWhitespace)
30467 /* harmony export */ });
30468 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30469 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30470 /* 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");
30471 /**
30472 * @typedef {import('micromark-util-types').Effects} Effects
30473 * @typedef {import('micromark-util-types').State} State
30474 */
30475
30476
30477
30478
30479
30480 /**
30481 * Parse spaces and tabs.
30482 *
30483 * There is no `nok` parameter:
30484 *
30485 * * line endings or spaces in markdown are often optional, in which case this
30486 * factory can be used and `ok` will be switched to whether spaces were found
30487 * or not
30488 * * one line ending or space can be detected with
30489 * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
30490 *
30491 * @param {Effects} effects
30492 * Context.
30493 * @param {State} ok
30494 * State switched to when successful.
30495 * @returns
30496 * Start state.
30497 */
30498 function factoryWhitespace(effects, ok) {
30499 /** @type {boolean} */
30500 let seen
30501
30502 return start
30503
30504 /** @type {State} */
30505 function start(code) {
30506 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code)) {
30507 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30508 effects.consume(code)
30509 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30510 seen = true
30511 return start
30512 }
30513
30514 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30515 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
30516 effects,
30517 start,
30518 seen ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix
30519 )(code)
30520 }
30521
30522 return ok(code)
30523 }
30524 }
30525
30526
30527 /***/ }),
30528
30529 /***/ "../node_modules/micromark-util-character/dev/index.js":
30530 /*!*************************************************************!*\
30531 !*** ../node_modules/micromark-util-character/dev/index.js ***!
30532 \*************************************************************/
30533 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30534
30535 "use strict";
30536 __webpack_require__.r(__webpack_exports__);
30537 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30538 /* harmony export */ asciiAlpha: () => (/* binding */ asciiAlpha),
30539 /* harmony export */ asciiAlphanumeric: () => (/* binding */ asciiAlphanumeric),
30540 /* harmony export */ asciiAtext: () => (/* binding */ asciiAtext),
30541 /* harmony export */ asciiControl: () => (/* binding */ asciiControl),
30542 /* harmony export */ asciiDigit: () => (/* binding */ asciiDigit),
30543 /* harmony export */ asciiHexDigit: () => (/* binding */ asciiHexDigit),
30544 /* harmony export */ asciiPunctuation: () => (/* binding */ asciiPunctuation),
30545 /* harmony export */ markdownLineEnding: () => (/* binding */ markdownLineEnding),
30546 /* harmony export */ markdownLineEndingOrSpace: () => (/* binding */ markdownLineEndingOrSpace),
30547 /* harmony export */ markdownSpace: () => (/* binding */ markdownSpace),
30548 /* harmony export */ unicodePunctuation: () => (/* binding */ unicodePunctuation),
30549 /* harmony export */ unicodeWhitespace: () => (/* binding */ unicodeWhitespace)
30550 /* harmony export */ });
30551 /* 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");
30552 /* 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");
30553 /**
30554 * @typedef {import('micromark-util-types').Code} Code
30555 */
30556
30557
30558
30559
30560 /**
30561 * Check whether the character code represents an ASCII alpha (`a` through `z`,
30562 * case insensitive).
30563 *
30564 * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.
30565 *
30566 * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)
30567 * to U+005A (`Z`).
30568 *
30569 * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)
30570 * to U+007A (`z`).
30571 *
30572 * @param code
30573 * Code.
30574 * @returns
30575 * Whether it matches.
30576 */
30577 const asciiAlpha = regexCheck(/[A-Za-z]/)
30578
30579 /**
30580 * Check whether the character code represents an ASCII alphanumeric (`a`
30581 * through `z`, case insensitive, or `0` through `9`).
30582 *
30583 * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha
30584 * (see `asciiAlpha`).
30585 *
30586 * @param code
30587 * Code.
30588 * @returns
30589 * Whether it matches.
30590 */
30591 const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/)
30592
30593 /**
30594 * Check whether the character code represents an ASCII atext.
30595 *
30596 * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in
30597 * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),
30598 * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F
30599 * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E
30600 * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE
30601 * (`{`) to U+007E TILDE (`~`).
30602 *
30603 * See:
30604 * **\[RFC5322]**:
30605 * [Internet Message Format](https://tools.ietf.org/html/rfc5322).
30606 * P. Resnick.
30607 * IETF.
30608 *
30609 * @param code
30610 * Code.
30611 * @returns
30612 * Whether it matches.
30613 */
30614 const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/)
30615
30616 /**
30617 * Check whether a character code is an ASCII control character.
30618 *
30619 * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)
30620 * to U+001F (US), or U+007F (DEL).
30621 *
30622 * @param {Code} code
30623 * Code.
30624 * @returns {boolean}
30625 * Whether it matches.
30626 */
30627 function asciiControl(code) {
30628 return (
30629 // Special whitespace codes (which have negative values), C0 and Control
30630 // character DEL
30631 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)
30632 )
30633 }
30634
30635 /**
30636 * Check whether the character code represents an ASCII digit (`0` through `9`).
30637 *
30638 * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to
30639 * U+0039 (`9`).
30640 *
30641 * @param code
30642 * Code.
30643 * @returns
30644 * Whether it matches.
30645 */
30646 const asciiDigit = regexCheck(/\d/)
30647
30648 /**
30649 * Check whether the character code represents an ASCII hex digit (`a` through
30650 * `f`, case insensitive, or `0` through `9`).
30651 *
30652 * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex
30653 * digit, or an ASCII lower hex digit.
30654 *
30655 * An **ASCII upper hex digit** is a character in the inclusive range U+0041
30656 * (`A`) to U+0046 (`F`).
30657 *
30658 * An **ASCII lower hex digit** is a character in the inclusive range U+0061
30659 * (`a`) to U+0066 (`f`).
30660 *
30661 * @param code
30662 * Code.
30663 * @returns
30664 * Whether it matches.
30665 */
30666 const asciiHexDigit = regexCheck(/[\dA-Fa-f]/)
30667
30668 /**
30669 * Check whether the character code represents ASCII punctuation.
30670 *
30671 * An **ASCII punctuation** is a character in the inclusive ranges U+0021
30672 * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT
30673 * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT
30674 * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).
30675 *
30676 * @param code
30677 * Code.
30678 * @returns
30679 * Whether it matches.
30680 */
30681 const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)
30682
30683 /**
30684 * Check whether a character code is a markdown line ending.
30685 *
30686 * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN
30687 * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).
30688 *
30689 * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE
30690 * RETURN (CR) are replaced by these virtual characters depending on whether
30691 * they occurred together.
30692 *
30693 * @param {Code} code
30694 * Code.
30695 * @returns {boolean}
30696 * Whether it matches.
30697 */
30698 function markdownLineEnding(code) {
30699 return code !== null && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab
30700 }
30701
30702 /**
30703 * Check whether a character code is a markdown line ending (see
30704 * `markdownLineEnding`) or markdown space (see `markdownSpace`).
30705 *
30706 * @param {Code} code
30707 * Code.
30708 * @returns {boolean}
30709 * Whether it matches.
30710 */
30711 function markdownLineEndingOrSpace(code) {
30712 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)
30713 }
30714
30715 /**
30716 * Check whether a character code is a markdown space.
30717 *
30718 * A **markdown space** is the concrete character U+0020 SPACE (SP) and the
30719 * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).
30720 *
30721 * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is
30722 * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL
30723 * SPACE (VS) characters, depending on the column at which the tab occurred.
30724 *
30725 * @param {Code} code
30726 * Code.
30727 * @returns {boolean}
30728 * Whether it matches.
30729 */
30730 function markdownSpace(code) {
30731 return (
30732 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab ||
30733 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace ||
30734 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space
30735 )
30736 }
30737
30738 // Size note: removing ASCII from the regex and using `asciiPunctuation` here
30739 // In fact adds to the bundle size.
30740 /**
30741 * Check whether the character code represents Unicode punctuation.
30742 *
30743 * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,
30744 * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`
30745 * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`
30746 * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII
30747 * punctuation (see `asciiPunctuation`).
30748 *
30749 * See:
30750 * **\[UNICODE]**:
30751 * [The Unicode Standard](https://www.unicode.org/versions/).
30752 * Unicode Consortium.
30753 *
30754 * @param code
30755 * Code.
30756 * @returns
30757 * Whether it matches.
30758 */
30759 const unicodePunctuation = regexCheck(_lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuationRegex)
30760
30761 /**
30762 * Check whether the character code represents Unicode whitespace.
30763 *
30764 * Note that this does handle micromark specific markdown whitespace characters.
30765 * See `markdownLineEndingOrSpace` to check that.
30766 *
30767 * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,
30768 * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),
30769 * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**).
30770 *
30771 * See:
30772 * **\[UNICODE]**:
30773 * [The Unicode Standard](https://www.unicode.org/versions/).
30774 * Unicode Consortium.
30775 *
30776 * @param code
30777 * Code.
30778 * @returns
30779 * Whether it matches.
30780 */
30781 const unicodeWhitespace = regexCheck(/\s/)
30782
30783 /**
30784 * Create a code check from a regex.
30785 *
30786 * @param {RegExp} regex
30787 * @returns {(code: Code) => boolean}
30788 */
30789 function regexCheck(regex) {
30790 return check
30791
30792 /**
30793 * Check whether a code matches the bound regex.
30794 *
30795 * @param {Code} code
30796 * Character code.
30797 * @returns {boolean}
30798 * Whether the character code matches the bound regex.
30799 */
30800 function check(code) {
30801 return code !== null && regex.test(String.fromCharCode(code))
30802 }
30803 }
30804
30805
30806 /***/ }),
30807
30808 /***/ "../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js":
30809 /*!*************************************************************************************!*\
30810 !*** ../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js ***!
30811 \*************************************************************************************/
30812 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30813
30814 "use strict";
30815 __webpack_require__.r(__webpack_exports__);
30816 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30817 /* harmony export */ unicodePunctuationRegex: () => (/* binding */ unicodePunctuationRegex)
30818 /* harmony export */ });
30819 // This module is generated by `script/`.
30820 //
30821 // CommonMark handles attention (emphasis, strong) markers based on what comes
30822 // before or after them.
30823 // One such difference is if those characters are Unicode punctuation.
30824 // This script is generated from the Unicode data.
30825
30826 /**
30827 * Regular expression that matches a unicode punctuation character.
30828 */
30829 const unicodePunctuationRegex =
30830 /[!-/:-@[-`{-~\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]/
30831
30832
30833 /***/ }),
30834
30835 /***/ "../node_modules/micromark-util-chunked/dev/index.js":
30836 /*!***********************************************************!*\
30837 !*** ../node_modules/micromark-util-chunked/dev/index.js ***!
30838 \***********************************************************/
30839 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30840
30841 "use strict";
30842 __webpack_require__.r(__webpack_exports__);
30843 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30844 /* harmony export */ push: () => (/* binding */ push),
30845 /* harmony export */ splice: () => (/* binding */ splice)
30846 /* harmony export */ });
30847 /* 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");
30848
30849
30850 /**
30851 * Like `Array#splice`, but smarter for giant arrays.
30852 *
30853 * `Array#splice` takes all items to be inserted as individual argument which
30854 * causes a stack overflow in V8 when trying to insert 100k items for instance.
30855 *
30856 * Otherwise, this does not return the removed items, and takes `items` as an
30857 * array instead of rest parameters.
30858 *
30859 * @template {unknown} T
30860 * Item type.
30861 * @param {Array<T>} list
30862 * List to operate on.
30863 * @param {number} start
30864 * Index to remove/insert at (can be negative).
30865 * @param {number} remove
30866 * Number of items to remove.
30867 * @param {Array<T>} items
30868 * Items to inject into `list`.
30869 * @returns {void}
30870 * Nothing.
30871 */
30872 function splice(list, start, remove, items) {
30873 const end = list.length
30874 let chunkStart = 0
30875 /** @type {Array<unknown>} */
30876 let parameters
30877
30878 // Make start between zero and `end` (included).
30879 if (start < 0) {
30880 start = -start > end ? 0 : end + start
30881 } else {
30882 start = start > end ? end : start
30883 }
30884
30885 remove = remove > 0 ? remove : 0
30886
30887 // No need to chunk the items if there’s only a couple (10k) items.
30888 if (items.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize) {
30889 parameters = Array.from(items)
30890 parameters.unshift(start, remove)
30891 // @ts-expect-error Hush, it’s fine.
30892 list.splice(...parameters)
30893 } else {
30894 // Delete `remove` items starting from `start`
30895 if (remove) list.splice(start, remove)
30896
30897 // Insert the items in chunks to not cause stack overflows.
30898 while (chunkStart < items.length) {
30899 parameters = items.slice(
30900 chunkStart,
30901 chunkStart + micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30902 )
30903 parameters.unshift(start, 0)
30904 // @ts-expect-error Hush, it’s fine.
30905 list.splice(...parameters)
30906
30907 chunkStart += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30908 start += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
30909 }
30910 }
30911 }
30912
30913 /**
30914 * Append `items` (an array) at the end of `list` (another array).
30915 * When `list` was empty, returns `items` instead.
30916 *
30917 * This prevents a potentially expensive operation when `list` is empty,
30918 * and adds items in batches to prevent V8 from hanging.
30919 *
30920 * @template {unknown} T
30921 * Item type.
30922 * @param {Array<T>} list
30923 * List to operate on.
30924 * @param {Array<T>} items
30925 * Items to add to `list`.
30926 * @returns {Array<T>}
30927 * Either `list` or `items`.
30928 */
30929 function push(list, items) {
30930 if (list.length > 0) {
30931 splice(list, list.length, 0, items)
30932 return list
30933 }
30934
30935 return items
30936 }
30937
30938
30939 /***/ }),
30940
30941 /***/ "../node_modules/micromark-util-classify-character/dev/index.js":
30942 /*!**********************************************************************!*\
30943 !*** ../node_modules/micromark-util-classify-character/dev/index.js ***!
30944 \**********************************************************************/
30945 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30946
30947 "use strict";
30948 __webpack_require__.r(__webpack_exports__);
30949 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30950 /* harmony export */ classifyCharacter: () => (/* binding */ classifyCharacter)
30951 /* harmony export */ });
30952 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30953 /* 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");
30954 /* 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");
30955 /**
30956 * @typedef {import('micromark-util-types').Code} Code
30957 */
30958
30959
30960
30961
30962
30963 /**
30964 * Classify whether a code represents whitespace, punctuation, or something
30965 * else.
30966 *
30967 * Used for attention (emphasis, strong), whose sequences can open or close
30968 * based on the class of surrounding characters.
30969 *
30970 * > 👉 **Note**: eof (`null`) is seen as whitespace.
30971 *
30972 * @param {Code} code
30973 * Code.
30974 * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
30975 * Group.
30976 */
30977 function classifyCharacter(code) {
30978 if (
30979 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30980 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) ||
30981 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)
30982 ) {
30983 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupWhitespace
30984 }
30985
30986 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {
30987 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupPunctuation
30988 }
30989 }
30990
30991
30992 /***/ }),
30993
30994 /***/ "../node_modules/micromark-util-combine-extensions/index.js":
30995 /*!******************************************************************!*\
30996 !*** ../node_modules/micromark-util-combine-extensions/index.js ***!
30997 \******************************************************************/
30998 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30999
31000 "use strict";
31001 __webpack_require__.r(__webpack_exports__);
31002 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31003 /* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),
31004 /* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)
31005 /* harmony export */ });
31006 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31007 /**
31008 * @typedef {import('micromark-util-types').Extension} Extension
31009 * @typedef {import('micromark-util-types').Handles} Handles
31010 * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension
31011 * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension
31012 */
31013
31014
31015
31016 const hasOwnProperty = {}.hasOwnProperty
31017
31018 /**
31019 * Combine multiple syntax extensions into one.
31020 *
31021 * @param {Array<Extension>} extensions
31022 * List of syntax extensions.
31023 * @returns {NormalizedExtension}
31024 * A single combined extension.
31025 */
31026 function combineExtensions(extensions) {
31027 /** @type {NormalizedExtension} */
31028 const all = {}
31029 let index = -1
31030
31031 while (++index < extensions.length) {
31032 syntaxExtension(all, extensions[index])
31033 }
31034
31035 return all
31036 }
31037
31038 /**
31039 * Merge `extension` into `all`.
31040 *
31041 * @param {NormalizedExtension} all
31042 * Extension to merge into.
31043 * @param {Extension} extension
31044 * Extension to merge.
31045 * @returns {void}
31046 */
31047 function syntaxExtension(all, extension) {
31048 /** @type {keyof Extension} */
31049 let hook
31050
31051 for (hook in extension) {
31052 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31053 /** @type {Record<string, unknown>} */
31054 const left = maybe || (all[hook] = {})
31055 /** @type {Record<string, unknown> | undefined} */
31056 const right = extension[hook]
31057 /** @type {string} */
31058 let code
31059
31060 if (right) {
31061 for (code in right) {
31062 if (!hasOwnProperty.call(left, code)) left[code] = []
31063 const value = right[code]
31064 constructs(
31065 // @ts-expect-error Looks like a list.
31066 left[code],
31067 Array.isArray(value) ? value : value ? [value] : []
31068 )
31069 }
31070 }
31071 }
31072 }
31073
31074 /**
31075 * Merge `list` into `existing` (both lists of constructs).
31076 * Mutates `existing`.
31077 *
31078 * @param {Array<unknown>} existing
31079 * @param {Array<unknown>} list
31080 * @returns {void}
31081 */
31082 function constructs(existing, list) {
31083 let index = -1
31084 /** @type {Array<unknown>} */
31085 const before = []
31086
31087 while (++index < list.length) {
31088 // @ts-expect-error Looks like an object.
31089 ;(list[index].add === 'after' ? existing : before).push(list[index])
31090 }
31091
31092 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before)
31093 }
31094
31095 /**
31096 * Combine multiple HTML extensions into one.
31097 *
31098 * @param {Array<HtmlExtension>} htmlExtensions
31099 * List of HTML extensions.
31100 * @returns {HtmlExtension}
31101 * A single combined HTML extension.
31102 */
31103 function combineHtmlExtensions(htmlExtensions) {
31104 /** @type {HtmlExtension} */
31105 const handlers = {}
31106 let index = -1
31107
31108 while (++index < htmlExtensions.length) {
31109 htmlExtension(handlers, htmlExtensions[index])
31110 }
31111
31112 return handlers
31113 }
31114
31115 /**
31116 * Merge `extension` into `all`.
31117 *
31118 * @param {HtmlExtension} all
31119 * Extension to merge into.
31120 * @param {HtmlExtension} extension
31121 * Extension to merge.
31122 * @returns {void}
31123 */
31124 function htmlExtension(all, extension) {
31125 /** @type {keyof HtmlExtension} */
31126 let hook
31127
31128 for (hook in extension) {
31129 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31130 const left = maybe || (all[hook] = {})
31131 const right = extension[hook]
31132 /** @type {keyof Handles} */
31133 let type
31134
31135 if (right) {
31136 for (type in right) {
31137 // @ts-expect-error assume document vs regular handler are managed correctly.
31138 left[type] = right[type]
31139 }
31140 }
31141 }
31142 }
31143
31144
31145 /***/ }),
31146
31147 /***/ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js":
31148 /*!**************************************************************************************!*\
31149 !*** ../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js ***!
31150 \**************************************************************************************/
31151 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31152
31153 "use strict";
31154 __webpack_require__.r(__webpack_exports__);
31155 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31156 /* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)
31157 /* harmony export */ });
31158 /* 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");
31159 /* 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");
31160
31161
31162
31163 /**
31164 * Turn the number (in string form as either hexa- or plain decimal) coming from
31165 * a numeric character reference into a character.
31166 *
31167 * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
31168 * non-characters and control characters safe.
31169 *
31170 * @param {string} value
31171 * Value to decode.
31172 * @param {number} base
31173 * Numeric base.
31174 * @returns {string}
31175 * Character.
31176 */
31177 function decodeNumericCharacterReference(value, base) {
31178 const code = Number.parseInt(value, base)
31179
31180 if (
31181 // C0 except for HT, LF, FF, CR, space.
31182 code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht ||
31183 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.vt ||
31184 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space) ||
31185 // Control character (DEL) of C0, and C1 controls.
31186 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160) ||
31187 // Lone high surrogates and low surrogates.
31188 (code > 55295 && code < 57344) ||
31189 // Noncharacters.
31190 (code > 64975 && code < 65008) ||
31191 /* eslint-disable no-bitwise */
31192 (code & 65535) === 65535 ||
31193 (code & 65535) === 65534 ||
31194 /* eslint-enable no-bitwise */
31195 // Out of range
31196 code > 1114111
31197 ) {
31198 return micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter
31199 }
31200
31201 return String.fromCharCode(code)
31202 }
31203
31204
31205 /***/ }),
31206
31207 /***/ "../node_modules/micromark-util-decode-string/dev/index.js":
31208 /*!*****************************************************************!*\
31209 !*** ../node_modules/micromark-util-decode-string/dev/index.js ***!
31210 \*****************************************************************/
31211 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31212
31213 "use strict";
31214 __webpack_require__.r(__webpack_exports__);
31215 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31216 /* harmony export */ decodeString: () => (/* binding */ decodeString)
31217 /* harmony export */ });
31218 /* 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");
31219 /* 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");
31220 /* 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");
31221 /* 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");
31222
31223
31224
31225
31226
31227 const characterEscapeOrReference =
31228 /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi
31229
31230 /**
31231 * Decode markdown strings (which occur in places such as fenced code info
31232 * strings, destinations, labels, and titles).
31233 *
31234 * The “string” content type allows character escapes and -references.
31235 * This decodes those.
31236 *
31237 * @param {string} value
31238 * Value to decode.
31239 * @returns {string}
31240 * Decoded value.
31241 */
31242 function decodeString(value) {
31243 return value.replace(characterEscapeOrReference, decode)
31244 }
31245
31246 /**
31247 * @param {string} $0
31248 * @param {string} $1
31249 * @param {string} $2
31250 * @returns {string}
31251 */
31252 function decode($0, $1, $2) {
31253 if ($1) {
31254 // Escape.
31255 return $1
31256 }
31257
31258 // Reference.
31259 const head = $2.charCodeAt(0)
31260
31261 if (head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign) {
31262 const head = $2.charCodeAt(1)
31263 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
31264 return (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__.decodeNumericCharacterReference)(
31265 $2.slice(hex ? 2 : 1),
31266 hex ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseHexadecimal : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseDecimal
31267 )
31268 }
31269
31270 return (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__.decodeNamedCharacterReference)($2) || $0
31271 }
31272
31273
31274 /***/ }),
31275
31276 /***/ "../node_modules/micromark-util-encode/index.js":
31277 /*!******************************************************!*\
31278 !*** ../node_modules/micromark-util-encode/index.js ***!
31279 \******************************************************/
31280 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31281
31282 "use strict";
31283 __webpack_require__.r(__webpack_exports__);
31284 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31285 /* harmony export */ encode: () => (/* binding */ encode)
31286 /* harmony export */ });
31287 const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}
31288
31289 /**
31290 * Encode only the dangerous HTML characters.
31291 *
31292 * This ensures that certain characters which have special meaning in HTML are
31293 * dealt with.
31294 * Technically, we can skip `>` and `"` in many cases, but CM includes them.
31295 *
31296 * @param {string} value
31297 * Value to encode.
31298 * @returns {string}
31299 * Encoded value.
31300 */
31301 function encode(value) {
31302 return value.replace(/["&<>]/g, replace)
31303
31304 /**
31305 * @param {string} value
31306 * @returns {string}
31307 */
31308 function replace(value) {
31309 // @ts-expect-error Hush, it’s fine.
31310 return '&' + characterReferences[value] + ';'
31311 }
31312 }
31313
31314
31315 /***/ }),
31316
31317 /***/ "../node_modules/micromark-util-html-tag-name/index.js":
31318 /*!*************************************************************!*\
31319 !*** ../node_modules/micromark-util-html-tag-name/index.js ***!
31320 \*************************************************************/
31321 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31322
31323 "use strict";
31324 __webpack_require__.r(__webpack_exports__);
31325 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31326 /* harmony export */ htmlBlockNames: () => (/* binding */ htmlBlockNames),
31327 /* harmony export */ htmlRawNames: () => (/* binding */ htmlRawNames)
31328 /* harmony export */ });
31329 /**
31330 * List of lowercase HTML “block” tag names.
31331 *
31332 * The list, when parsing HTML (flow), results in more relaxed rules (condition
31333 * 6).
31334 * Because they are known blocks, the HTML-like syntax doesn’t have to be
31335 * strictly parsed.
31336 * For tag names not in this list, a more strict algorithm (condition 7) is used
31337 * to detect whether the HTML-like syntax is seen as HTML (flow) or not.
31338 *
31339 * This is copied from:
31340 * <https://spec.commonmark.org/0.30/#html-blocks>.
31341 *
31342 * > 👉 **Note**: `search` was added in `CommonMark@0.31`.
31343 */
31344 const htmlBlockNames = [
31345 'address',
31346 'article',
31347 'aside',
31348 'base',
31349 'basefont',
31350 'blockquote',
31351 'body',
31352 'caption',
31353 'center',
31354 'col',
31355 'colgroup',
31356 'dd',
31357 'details',
31358 'dialog',
31359 'dir',
31360 'div',
31361 'dl',
31362 'dt',
31363 'fieldset',
31364 'figcaption',
31365 'figure',
31366 'footer',
31367 'form',
31368 'frame',
31369 'frameset',
31370 'h1',
31371 'h2',
31372 'h3',
31373 'h4',
31374 'h5',
31375 'h6',
31376 'head',
31377 'header',
31378 'hr',
31379 'html',
31380 'iframe',
31381 'legend',
31382 'li',
31383 'link',
31384 'main',
31385 'menu',
31386 'menuitem',
31387 'nav',
31388 'noframes',
31389 'ol',
31390 'optgroup',
31391 'option',
31392 'p',
31393 'param',
31394 'search',
31395 'section',
31396 'summary',
31397 'table',
31398 'tbody',
31399 'td',
31400 'tfoot',
31401 'th',
31402 'thead',
31403 'title',
31404 'tr',
31405 'track',
31406 'ul'
31407 ]
31408
31409 /**
31410 * List of lowercase HTML “raw” tag names.
31411 *
31412 * The list, when parsing HTML (flow), results in HTML that can include lines
31413 * without exiting, until a closing tag also in this list is found (condition
31414 * 1).
31415 *
31416 * This module is copied from:
31417 * <https://spec.commonmark.org/0.30/#html-blocks>.
31418 *
31419 * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.
31420 */
31421 const htmlRawNames = ['pre', 'script', 'style', 'textarea']
31422
31423
31424 /***/ }),
31425
31426 /***/ "../node_modules/micromark-util-normalize-identifier/dev/index.js":
31427 /*!************************************************************************!*\
31428 !*** ../node_modules/micromark-util-normalize-identifier/dev/index.js ***!
31429 \************************************************************************/
31430 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31431
31432 "use strict";
31433 __webpack_require__.r(__webpack_exports__);
31434 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31435 /* harmony export */ normalizeIdentifier: () => (/* binding */ normalizeIdentifier)
31436 /* harmony export */ });
31437 /* 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");
31438
31439
31440 /**
31441 * Normalize an identifier (as found in references, definitions).
31442 *
31443 * Collapses markdown whitespace, trim, and then lower- and uppercase.
31444 *
31445 * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
31446 * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
31447 * uppercase character (U+0398 (`Θ`)).
31448 * So, to get a canonical form, we perform both lower- and uppercase.
31449 *
31450 * Using uppercase last makes sure keys will never interact with default
31451 * prototypal values (such as `constructor`): nothing in the prototype of
31452 * `Object` is uppercase.
31453 *
31454 * @param {string} value
31455 * Identifier to normalize.
31456 * @returns {string}
31457 * Normalized identifier.
31458 */
31459 function normalizeIdentifier(value) {
31460 return (
31461 value
31462 // Collapse markdown whitespace.
31463 .replace(/[\t\n\r ]+/g, micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_0__.values.space)
31464 // Trim.
31465 .replace(/^ | $/g, '')
31466 // Some characters are considered “uppercase”, but if their lowercase
31467 // counterpart is uppercased will result in a different uppercase
31468 // character.
31469 // Hence, to get that form, we perform both lower- and uppercase.
31470 // Upper case makes sure keys will not interact with default prototypal
31471 // methods: no method is uppercase.
31472 .toLowerCase()
31473 .toUpperCase()
31474 )
31475 }
31476
31477
31478 /***/ }),
31479
31480 /***/ "../node_modules/micromark-util-resolve-all/index.js":
31481 /*!***********************************************************!*\
31482 !*** ../node_modules/micromark-util-resolve-all/index.js ***!
31483 \***********************************************************/
31484 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31485
31486 "use strict";
31487 __webpack_require__.r(__webpack_exports__);
31488 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31489 /* harmony export */ resolveAll: () => (/* binding */ resolveAll)
31490 /* harmony export */ });
31491 /**
31492 * @typedef {import('micromark-util-types').Event} Event
31493 * @typedef {import('micromark-util-types').Resolver} Resolver
31494 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
31495 */
31496
31497 /**
31498 * Call all `resolveAll`s.
31499 *
31500 * @param {Array<{resolveAll?: Resolver | undefined}>} constructs
31501 * List of constructs, optionally with `resolveAll`s.
31502 * @param {Array<Event>} events
31503 * List of events.
31504 * @param {TokenizeContext} context
31505 * Context used by `tokenize`.
31506 * @returns {Array<Event>}
31507 * Changed events.
31508 */
31509 function resolveAll(constructs, events, context) {
31510 /** @type {Array<Resolver>} */
31511 const called = []
31512 let index = -1
31513
31514 while (++index < constructs.length) {
31515 const resolve = constructs[index].resolveAll
31516
31517 if (resolve && !called.includes(resolve)) {
31518 events = resolve(events, context)
31519 called.push(resolve)
31520 }
31521 }
31522
31523 return events
31524 }
31525
31526
31527 /***/ }),
31528
31529 /***/ "../node_modules/micromark-util-sanitize-uri/dev/index.js":
31530 /*!****************************************************************!*\
31531 !*** ../node_modules/micromark-util-sanitize-uri/dev/index.js ***!
31532 \****************************************************************/
31533 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31534
31535 "use strict";
31536 __webpack_require__.r(__webpack_exports__);
31537 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31538 /* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),
31539 /* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)
31540 /* harmony export */ });
31541 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31542 /* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ "../node_modules/micromark-util-encode/index.js");
31543 /* 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");
31544 /* 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");
31545
31546
31547
31548
31549
31550 /**
31551 * Make a value safe for injection as a URL.
31552 *
31553 * This encodes unsafe characters with percent-encoding and skips already
31554 * encoded sequences (see `normalizeUri`).
31555 * Further unsafe characters are encoded as character references (see
31556 * `micromark-util-encode`).
31557 *
31558 * A regex of allowed protocols can be given, in which case the URL is
31559 * sanitized.
31560 * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or
31561 * `/^https?$/i` for `img[src]` (this is what `github.com` allows).
31562 * If the URL includes an unknown protocol (one not matched by `protocol`, such
31563 * as a dangerous example, `javascript:`), the value is ignored.
31564 *
31565 * @param {string | undefined} url
31566 * URI to sanitize.
31567 * @param {RegExp | null | undefined} [protocol]
31568 * Allowed protocols.
31569 * @returns {string}
31570 * Sanitized URI.
31571 */
31572 function sanitizeUri(url, protocol) {
31573 const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || ''))
31574
31575 if (!protocol) {
31576 return value
31577 }
31578
31579 const colon = value.indexOf(':')
31580 const questionMark = value.indexOf('?')
31581 const numberSign = value.indexOf('#')
31582 const slash = value.indexOf('/')
31583
31584 if (
31585 // If there is no protocol, it’s relative.
31586 colon < 0 ||
31587 // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.
31588 (slash > -1 && colon > slash) ||
31589 (questionMark > -1 && colon > questionMark) ||
31590 (numberSign > -1 && colon > numberSign) ||
31591 // It is a protocol, it should be allowed.
31592 protocol.test(value.slice(0, colon))
31593 ) {
31594 return value
31595 }
31596
31597 return ''
31598 }
31599
31600 /**
31601 * Normalize a URL.
31602 *
31603 * Encode unsafe characters with percent-encoding, skipping already encoded
31604 * sequences.
31605 *
31606 * @param {string} value
31607 * URI to normalize.
31608 * @returns {string}
31609 * Normalized URI.
31610 */
31611 function normalizeUri(value) {
31612 /** @type {Array<string>} */
31613 const result = []
31614 let index = -1
31615 let start = 0
31616 let skip = 0
31617
31618 while (++index < value.length) {
31619 const code = value.charCodeAt(index)
31620 /** @type {string} */
31621 let replace = ''
31622
31623 // A correct percent encoded value.
31624 if (
31625 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign &&
31626 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) &&
31627 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))
31628 ) {
31629 skip = 2
31630 }
31631 // ASCII.
31632 else if (code < 128) {
31633 if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
31634 replace = String.fromCharCode(code)
31635 }
31636 }
31637 // Astral.
31638 else if (code > 55295 && code < 57344) {
31639 const next = value.charCodeAt(index + 1)
31640
31641 // A correct surrogate pair.
31642 if (code < 56320 && next > 56319 && next < 57344) {
31643 replace = String.fromCharCode(code, next)
31644 skip = 1
31645 }
31646 // Lone surrogate.
31647 else {
31648 replace = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter
31649 }
31650 }
31651 // Unicode.
31652 else {
31653 replace = String.fromCharCode(code)
31654 }
31655
31656 if (replace) {
31657 result.push(value.slice(start, index), encodeURIComponent(replace))
31658 start = index + skip + 1
31659 replace = ''
31660 }
31661
31662 if (skip) {
31663 index += skip
31664 skip = 0
31665 }
31666 }
31667
31668 return result.join('') + value.slice(start)
31669 }
31670
31671
31672 /***/ }),
31673
31674 /***/ "../node_modules/micromark-util-subtokenize/dev/index.js":
31675 /*!***************************************************************!*\
31676 !*** ../node_modules/micromark-util-subtokenize/dev/index.js ***!
31677 \***************************************************************/
31678 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31679
31680 "use strict";
31681 __webpack_require__.r(__webpack_exports__);
31682 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31683 /* harmony export */ subtokenize: () => (/* binding */ subtokenize)
31684 /* harmony export */ });
31685 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31686 /* 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");
31687 /* 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");
31688 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
31689 /**
31690 * @typedef {import('micromark-util-types').Chunk} Chunk
31691 * @typedef {import('micromark-util-types').Event} Event
31692 * @typedef {import('micromark-util-types').Token} Token
31693 */
31694
31695
31696
31697
31698
31699
31700 /**
31701 * Tokenize subcontent.
31702 *
31703 * @param {Array<Event>} events
31704 * List of events.
31705 * @returns {boolean}
31706 * Whether subtokens were found.
31707 */
31708 function subtokenize(events) {
31709 /** @type {Record<string, number>} */
31710 const jumps = {}
31711 let index = -1
31712 /** @type {Event} */
31713 let event
31714 /** @type {number | undefined} */
31715 let lineIndex
31716 /** @type {number} */
31717 let otherIndex
31718 /** @type {Event} */
31719 let otherEvent
31720 /** @type {Array<Event>} */
31721 let parameters
31722 /** @type {Array<Event>} */
31723 let subevents
31724 /** @type {boolean | undefined} */
31725 let more
31726
31727 while (++index < events.length) {
31728 while (index in jumps) {
31729 index = jumps[index]
31730 }
31731
31732 event = events[index]
31733
31734 // Add a hook for the GFM tasklist extension, which needs to know if text
31735 // is in the first content of a list item.
31736 if (
31737 index &&
31738 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow &&
31739 events[index - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix
31740 ) {
31741 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(event[1]._tokenizer, 'expected `_tokenizer` on subtokens')
31742 subevents = event[1]._tokenizer.events
31743 otherIndex = 0
31744
31745 if (
31746 otherIndex < subevents.length &&
31747 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31748 ) {
31749 otherIndex += 2
31750 }
31751
31752 if (
31753 otherIndex < subevents.length &&
31754 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
31755 ) {
31756 while (++otherIndex < subevents.length) {
31757 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
31758 break
31759 }
31760
31761 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText) {
31762 subevents[otherIndex][1]._isInFirstContentOfListItem = true
31763 otherIndex++
31764 }
31765 }
31766 }
31767 }
31768
31769 // Enter.
31770 if (event[0] === 'enter') {
31771 if (event[1].contentType) {
31772 Object.assign(jumps, subcontent(events, index))
31773 index = jumps[index]
31774 more = true
31775 }
31776 }
31777 // Exit.
31778 else if (event[1]._container) {
31779 otherIndex = index
31780 lineIndex = undefined
31781
31782 while (otherIndex--) {
31783 otherEvent = events[otherIndex]
31784
31785 if (
31786 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
31787 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31788 ) {
31789 if (otherEvent[0] === 'enter') {
31790 if (lineIndex) {
31791 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
31792 }
31793
31794 otherEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
31795 lineIndex = otherIndex
31796 }
31797 } else {
31798 break
31799 }
31800 }
31801
31802 if (lineIndex) {
31803 // Fix position.
31804 event[1].end = Object.assign({}, events[lineIndex][1].start)
31805
31806 // Switch container exit w/ line endings.
31807 parameters = events.slice(lineIndex, index)
31808 parameters.unshift(event)
31809 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, lineIndex, index - lineIndex + 1, parameters)
31810 }
31811 }
31812 }
31813
31814 return !more
31815 }
31816
31817 /**
31818 * Tokenize embedded tokens.
31819 *
31820 * @param {Array<Event>} events
31821 * @param {number} eventIndex
31822 * @returns {Record<string, number>}
31823 */
31824 function subcontent(events, eventIndex) {
31825 const token = events[eventIndex][1]
31826 const context = events[eventIndex][2]
31827 let startPosition = eventIndex - 1
31828 /** @type {Array<number>} */
31829 const startPositions = []
31830 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(token.contentType, 'expected `contentType` on subtokens')
31831 const tokenizer =
31832 token._tokenizer || context.parser[token.contentType](token.start)
31833 const childEvents = tokenizer.events
31834 /** @type {Array<[number, number]>} */
31835 const jumps = []
31836 /** @type {Record<string, number>} */
31837 const gaps = {}
31838 /** @type {Array<Chunk>} */
31839 let stream
31840 /** @type {Token | undefined} */
31841 let previous
31842 let index = -1
31843 /** @type {Token | undefined} */
31844 let current = token
31845 let adjust = 0
31846 let start = 0
31847 const breaks = [start]
31848
31849 // Loop forward through the linked tokens to pass them in order to the
31850 // subtokenizer.
31851 while (current) {
31852 // Find the position of the event for this token.
31853 while (events[++startPosition][1] !== current) {
31854 // Empty.
31855 }
31856
31857 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
31858 !previous || current.previous === previous,
31859 'expected previous to match'
31860 )
31861 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!previous || previous.next === current, 'expected next to match')
31862
31863 startPositions.push(startPosition)
31864
31865 if (!current._tokenizer) {
31866 stream = context.sliceStream(current)
31867
31868 if (!current.next) {
31869 stream.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof)
31870 }
31871
31872 if (previous) {
31873 tokenizer.defineSkip(current.start)
31874 }
31875
31876 if (current._isInFirstContentOfListItem) {
31877 tokenizer._gfmTasklistFirstContentOfListItem = true
31878 }
31879
31880 tokenizer.write(stream)
31881
31882 if (current._isInFirstContentOfListItem) {
31883 tokenizer._gfmTasklistFirstContentOfListItem = undefined
31884 }
31885 }
31886
31887 // Unravel the next token.
31888 previous = current
31889 current = current.next
31890 }
31891
31892 // Now, loop back through all events (and linked tokens), to figure out which
31893 // parts belong where.
31894 current = token
31895
31896 while (++index < childEvents.length) {
31897 if (
31898 // Find a void token that includes a break.
31899 childEvents[index][0] === 'exit' &&
31900 childEvents[index - 1][0] === 'enter' &&
31901 childEvents[index][1].type === childEvents[index - 1][1].type &&
31902 childEvents[index][1].start.line !== childEvents[index][1].end.line
31903 ) {
31904 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(current, 'expected a current token')
31905 start = index + 1
31906 breaks.push(start)
31907 // Help GC.
31908 current._tokenizer = undefined
31909 current.previous = undefined
31910 current = current.next
31911 }
31912 }
31913
31914 // Help GC.
31915 tokenizer.events = []
31916
31917 // If there’s one more token (which is the cases for lines that end in an
31918 // EOF), that’s perfect: the last point we found starts it.
31919 // If there isn’t then make sure any remaining content is added to it.
31920 if (current) {
31921 // Help GC.
31922 current._tokenizer = undefined
31923 current.previous = undefined
31924 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!current.next, 'expected no next token')
31925 } else {
31926 breaks.pop()
31927 }
31928
31929 // Now splice the events from the subtokenizer into the current events,
31930 // moving back to front so that splice indices aren’t affected.
31931 index = breaks.length
31932
31933 while (index--) {
31934 const slice = childEvents.slice(breaks[index], breaks[index + 1])
31935 const start = startPositions.pop()
31936 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(start !== undefined, 'expected a start position when splicing')
31937 jumps.unshift([start, start + slice.length - 1])
31938 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, start, 2, slice)
31939 }
31940
31941 index = -1
31942
31943 while (++index < jumps.length) {
31944 gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]
31945 adjust += jumps[index][1] - jumps[index][0] - 1
31946 }
31947
31948 return gaps
31949 }
31950
31951
31952 /***/ }),
31953
31954 /***/ "../node_modules/micromark-util-symbol/codes.js":
31955 /*!******************************************************!*\
31956 !*** ../node_modules/micromark-util-symbol/codes.js ***!
31957 \******************************************************/
31958 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31959
31960 "use strict";
31961 __webpack_require__.r(__webpack_exports__);
31962 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31963 /* harmony export */ codes: () => (/* binding */ codes)
31964 /* harmony export */ });
31965 /**
31966 * Character codes.
31967 *
31968 * This module is compiled away!
31969 *
31970 * micromark works based on character codes.
31971 * This module contains constants for the ASCII block and the replacement
31972 * character.
31973 * A couple of them are handled in a special way, such as the line endings
31974 * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal
31975 * tab) and its expansion based on what column it’s at (virtual space),
31976 * and the end-of-file (eof) character.
31977 * As values are preprocessed before handling them, the actual characters LF,
31978 * CR, HT, and NUL (which is present as the replacement character), are
31979 * guaranteed to not exist.
31980 *
31981 * Unicode basic latin block.
31982 */
31983 const codes = /** @type {const} */ ({
31984 carriageReturn: -5,
31985 lineFeed: -4,
31986 carriageReturnLineFeed: -3,
31987 horizontalTab: -2,
31988 virtualSpace: -1,
31989 eof: null,
31990 nul: 0,
31991 soh: 1,
31992 stx: 2,
31993 etx: 3,
31994 eot: 4,
31995 enq: 5,
31996 ack: 6,
31997 bel: 7,
31998 bs: 8,
31999 ht: 9, // `\t`
32000 lf: 10, // `\n`
32001 vt: 11, // `\v`
32002 ff: 12, // `\f`
32003 cr: 13, // `\r`
32004 so: 14,
32005 si: 15,
32006 dle: 16,
32007 dc1: 17,
32008 dc2: 18,
32009 dc3: 19,
32010 dc4: 20,
32011 nak: 21,
32012 syn: 22,
32013 etb: 23,
32014 can: 24,
32015 em: 25,
32016 sub: 26,
32017 esc: 27,
32018 fs: 28,
32019 gs: 29,
32020 rs: 30,
32021 us: 31,
32022 space: 32,
32023 exclamationMark: 33, // `!`
32024 quotationMark: 34, // `"`
32025 numberSign: 35, // `#`
32026 dollarSign: 36, // `$`
32027 percentSign: 37, // `%`
32028 ampersand: 38, // `&`
32029 apostrophe: 39, // `'`
32030 leftParenthesis: 40, // `(`
32031 rightParenthesis: 41, // `)`
32032 asterisk: 42, // `*`
32033 plusSign: 43, // `+`
32034 comma: 44, // `,`
32035 dash: 45, // `-`
32036 dot: 46, // `.`
32037 slash: 47, // `/`
32038 digit0: 48, // `0`
32039 digit1: 49, // `1`
32040 digit2: 50, // `2`
32041 digit3: 51, // `3`
32042 digit4: 52, // `4`
32043 digit5: 53, // `5`
32044 digit6: 54, // `6`
32045 digit7: 55, // `7`
32046 digit8: 56, // `8`
32047 digit9: 57, // `9`
32048 colon: 58, // `:`
32049 semicolon: 59, // `;`
32050 lessThan: 60, // `<`
32051 equalsTo: 61, // `=`
32052 greaterThan: 62, // `>`
32053 questionMark: 63, // `?`
32054 atSign: 64, // `@`
32055 uppercaseA: 65, // `A`
32056 uppercaseB: 66, // `B`
32057 uppercaseC: 67, // `C`
32058 uppercaseD: 68, // `D`
32059 uppercaseE: 69, // `E`
32060 uppercaseF: 70, // `F`
32061 uppercaseG: 71, // `G`
32062 uppercaseH: 72, // `H`
32063 uppercaseI: 73, // `I`
32064 uppercaseJ: 74, // `J`
32065 uppercaseK: 75, // `K`
32066 uppercaseL: 76, // `L`
32067 uppercaseM: 77, // `M`
32068 uppercaseN: 78, // `N`
32069 uppercaseO: 79, // `O`
32070 uppercaseP: 80, // `P`
32071 uppercaseQ: 81, // `Q`
32072 uppercaseR: 82, // `R`
32073 uppercaseS: 83, // `S`
32074 uppercaseT: 84, // `T`
32075 uppercaseU: 85, // `U`
32076 uppercaseV: 86, // `V`
32077 uppercaseW: 87, // `W`
32078 uppercaseX: 88, // `X`
32079 uppercaseY: 89, // `Y`
32080 uppercaseZ: 90, // `Z`
32081 leftSquareBracket: 91, // `[`
32082 backslash: 92, // `\`
32083 rightSquareBracket: 93, // `]`
32084 caret: 94, // `^`
32085 underscore: 95, // `_`
32086 graveAccent: 96, // `` ` ``
32087 lowercaseA: 97, // `a`
32088 lowercaseB: 98, // `b`
32089 lowercaseC: 99, // `c`
32090 lowercaseD: 100, // `d`
32091 lowercaseE: 101, // `e`
32092 lowercaseF: 102, // `f`
32093 lowercaseG: 103, // `g`
32094 lowercaseH: 104, // `h`
32095 lowercaseI: 105, // `i`
32096 lowercaseJ: 106, // `j`
32097 lowercaseK: 107, // `k`
32098 lowercaseL: 108, // `l`
32099 lowercaseM: 109, // `m`
32100 lowercaseN: 110, // `n`
32101 lowercaseO: 111, // `o`
32102 lowercaseP: 112, // `p`
32103 lowercaseQ: 113, // `q`
32104 lowercaseR: 114, // `r`
32105 lowercaseS: 115, // `s`
32106 lowercaseT: 116, // `t`
32107 lowercaseU: 117, // `u`
32108 lowercaseV: 118, // `v`
32109 lowercaseW: 119, // `w`
32110 lowercaseX: 120, // `x`
32111 lowercaseY: 121, // `y`
32112 lowercaseZ: 122, // `z`
32113 leftCurlyBrace: 123, // `{`
32114 verticalBar: 124, // `|`
32115 rightCurlyBrace: 125, // `}`
32116 tilde: 126, // `~`
32117 del: 127,
32118 // Unicode Specials block.
32119 byteOrderMarker: 65279,
32120 // Unicode Specials block.
32121 replacementCharacter: 65533 // ``
32122 })
32123
32124
32125 /***/ }),
32126
32127 /***/ "../node_modules/micromark-util-symbol/constants.js":
32128 /*!**********************************************************!*\
32129 !*** ../node_modules/micromark-util-symbol/constants.js ***!
32130 \**********************************************************/
32131 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32132
32133 "use strict";
32134 __webpack_require__.r(__webpack_exports__);
32135 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32136 /* harmony export */ constants: () => (/* binding */ constants)
32137 /* harmony export */ });
32138 /**
32139 * This module is compiled away!
32140 *
32141 * Parsing markdown comes with a couple of constants, such as minimum or maximum
32142 * sizes of certain sequences.
32143 * Additionally, there are a couple symbols used inside micromark.
32144 * These are all defined here, but compiled away by scripts.
32145 */
32146 const constants = /** @type {const} */ ({
32147 attentionSideBefore: 1, // Symbol to mark an attention sequence as before content: `*a`
32148 attentionSideAfter: 2, // Symbol to mark an attention sequence as after content: `a*`
32149 atxHeadingOpeningFenceSizeMax: 6, // 6 number signs is fine, 7 isn’t.
32150 autolinkDomainSizeMax: 63, // 63 characters is fine, 64 is too many.
32151 autolinkSchemeSizeMax: 32, // 32 characters is fine, 33 is too many.
32152 cdataOpeningString: 'CDATA[', // And preceded by `<![`.
32153 characterGroupWhitespace: 1, // Symbol used to indicate a character is whitespace
32154 characterGroupPunctuation: 2, // Symbol used to indicate a character is punctuation
32155 characterReferenceDecimalSizeMax: 7, // `&#9999999;`.
32156 characterReferenceHexadecimalSizeMax: 6, // `&#xff9999;`.
32157 characterReferenceNamedSizeMax: 31, // `&CounterClockwiseContourIntegral;`.
32158 codeFencedSequenceSizeMin: 3, // At least 3 ticks or tildes are needed.
32159 contentTypeDocument: 'document',
32160 contentTypeFlow: 'flow',
32161 contentTypeContent: 'content',
32162 contentTypeString: 'string',
32163 contentTypeText: 'text',
32164 hardBreakPrefixSizeMin: 2, // At least 2 trailing spaces are needed.
32165 htmlRaw: 1, // Symbol for `<script>`
32166 htmlComment: 2, // Symbol for `<!---->`
32167 htmlInstruction: 3, // Symbol for `<?php?>`
32168 htmlDeclaration: 4, // Symbol for `<!doctype>`
32169 htmlCdata: 5, // Symbol for `<![CDATA[]]>`
32170 htmlBasic: 6, // Symbol for `<div`
32171 htmlComplete: 7, // Symbol for `<x>`
32172 htmlRawSizeMax: 8, // Length of `textarea`.
32173 linkResourceDestinationBalanceMax: 32, // See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>
32174 linkReferenceSizeMax: 999, // See: <https://spec.commonmark.org/0.30/#link-label>
32175 listItemValueSizeMax: 10, // See: <https://spec.commonmark.org/0.30/#ordered-list-marker>
32176 numericBaseDecimal: 10,
32177 numericBaseHexadecimal: 0x10,
32178 tabSize: 4, // Tabs have a hard-coded size of 4, per CommonMark.
32179 thematicBreakMarkerCountMin: 3, // At least 3 asterisks, dashes, or underscores are needed.
32180 v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.
32181 })
32182
32183
32184 /***/ }),
32185
32186 /***/ "../node_modules/micromark-util-symbol/types.js":
32187 /*!******************************************************!*\
32188 !*** ../node_modules/micromark-util-symbol/types.js ***!
32189 \******************************************************/
32190 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32191
32192 "use strict";
32193 __webpack_require__.r(__webpack_exports__);
32194 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32195 /* harmony export */ types: () => (/* binding */ types)
32196 /* harmony export */ });
32197 /**
32198 * This module is compiled away!
32199 *
32200 * Here is the list of all types of tokens exposed by micromark, with a short
32201 * explanation of what they include and where they are found.
32202 * In picking names, generally, the rule is to be as explicit as possible
32203 * instead of reusing names.
32204 * For example, there is a `definitionDestination` and a `resourceDestination`,
32205 * instead of one shared name.
32206 */
32207
32208 // Note: when changing the next record, you must also change `TokenTypeMap`
32209 // in `micromark-util-types/index.d.ts`.
32210 const types = /** @type {const} */ ({
32211 // Generic type for data, such as in a title, a destination, etc.
32212 data: 'data',
32213
32214 // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).
32215 // Such as, between a fenced code fence and an info string.
32216 whitespace: 'whitespace',
32217
32218 // Generic type for line endings (line feed, carriage return, carriage return +
32219 // line feed).
32220 lineEnding: 'lineEnding',
32221
32222 // A line ending, but ending a blank line.
32223 lineEndingBlank: 'lineEndingBlank',
32224
32225 // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a
32226 // line.
32227 linePrefix: 'linePrefix',
32228
32229 // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a
32230 // line.
32231 lineSuffix: 'lineSuffix',
32232
32233 // Whole ATX heading:
32234 //
32235 // ```markdown
32236 // #
32237 // ## Alpha
32238 // ### Bravo ###
32239 // ```
32240 //
32241 // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.
32242 atxHeading: 'atxHeading',
32243
32244 // Sequence of number signs in an ATX heading (`###`).
32245 atxHeadingSequence: 'atxHeadingSequence',
32246
32247 // Content in an ATX heading (`alpha`).
32248 // Includes text.
32249 atxHeadingText: 'atxHeadingText',
32250
32251 // Whole autolink (`<https://example.com>` or `<admin@example.com>`)
32252 // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.
32253 autolink: 'autolink',
32254
32255 // Email autolink w/o markers (`admin@example.com`)
32256 autolinkEmail: 'autolinkEmail',
32257
32258 // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).
32259 autolinkMarker: 'autolinkMarker',
32260
32261 // Protocol autolink w/o markers (`https://example.com`)
32262 autolinkProtocol: 'autolinkProtocol',
32263
32264 // A whole character escape (`\-`).
32265 // Includes `escapeMarker` and `characterEscapeValue`.
32266 characterEscape: 'characterEscape',
32267
32268 // The escaped character (`-`).
32269 characterEscapeValue: 'characterEscapeValue',
32270
32271 // A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).
32272 // Includes `characterReferenceMarker`, an optional
32273 // `characterReferenceMarkerNumeric`, in which case an optional
32274 // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.
32275 characterReference: 'characterReference',
32276
32277 // The start or end marker (`&` or `;`).
32278 characterReferenceMarker: 'characterReferenceMarker',
32279
32280 // Mark reference as numeric (`#`).
32281 characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',
32282
32283 // Mark reference as numeric (`x` or `X`).
32284 characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',
32285
32286 // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).
32287 characterReferenceValue: 'characterReferenceValue',
32288
32289 // Whole fenced code:
32290 //
32291 // ````markdown
32292 // ```js
32293 // alert(1)
32294 // ```
32295 // ````
32296 codeFenced: 'codeFenced',
32297
32298 // A fenced code fence, including whitespace, sequence, info, and meta
32299 // (` ```js `).
32300 codeFencedFence: 'codeFencedFence',
32301
32302 // Sequence of grave accent or tilde characters (` ``` `) in a fence.
32303 codeFencedFenceSequence: 'codeFencedFenceSequence',
32304
32305 // Info word (`js`) in a fence.
32306 // Includes string.
32307 codeFencedFenceInfo: 'codeFencedFenceInfo',
32308
32309 // Meta words (`highlight="1"`) in a fence.
32310 // Includes string.
32311 codeFencedFenceMeta: 'codeFencedFenceMeta',
32312
32313 // A line of code.
32314 codeFlowValue: 'codeFlowValue',
32315
32316 // Whole indented code:
32317 //
32318 // ```markdown
32319 // alert(1)
32320 // ```
32321 //
32322 // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.
32323 codeIndented: 'codeIndented',
32324
32325 // A text code (``` `alpha` ```).
32326 // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include
32327 // `codeTextPadding`.
32328 codeText: 'codeText',
32329
32330 codeTextData: 'codeTextData',
32331
32332 // A space or line ending right after or before a tick.
32333 codeTextPadding: 'codeTextPadding',
32334
32335 // A text code fence (` `` `).
32336 codeTextSequence: 'codeTextSequence',
32337
32338 // Whole content:
32339 //
32340 // ```markdown
32341 // [a]: b
32342 // c
32343 // =
32344 // d
32345 // ```
32346 //
32347 // Includes `paragraph` and `definition`.
32348 content: 'content',
32349 // Whole definition:
32350 //
32351 // ```markdown
32352 // [micromark]: https://github.com/micromark/micromark
32353 // ```
32354 //
32355 // Includes `definitionLabel`, `definitionMarker`, `whitespace`,
32356 // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.
32357 definition: 'definition',
32358
32359 // Destination of a definition (`https://github.com/micromark/micromark` or
32360 // `<https://github.com/micromark/micromark>`).
32361 // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.
32362 definitionDestination: 'definitionDestination',
32363
32364 // Enclosed destination of a definition
32365 // (`<https://github.com/micromark/micromark>`).
32366 // Includes `definitionDestinationLiteralMarker` and optionally
32367 // `definitionDestinationString`.
32368 definitionDestinationLiteral: 'definitionDestinationLiteral',
32369
32370 // Markers of an enclosed definition destination (`<` or `>`).
32371 definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',
32372
32373 // Unenclosed destination of a definition
32374 // (`https://github.com/micromark/micromark`).
32375 // Includes `definitionDestinationString`.
32376 definitionDestinationRaw: 'definitionDestinationRaw',
32377
32378 // Text in an destination (`https://github.com/micromark/micromark`).
32379 // Includes string.
32380 definitionDestinationString: 'definitionDestinationString',
32381
32382 // Label of a definition (`[micromark]`).
32383 // Includes `definitionLabelMarker` and `definitionLabelString`.
32384 definitionLabel: 'definitionLabel',
32385
32386 // Markers of a definition label (`[` or `]`).
32387 definitionLabelMarker: 'definitionLabelMarker',
32388
32389 // Value of a definition label (`micromark`).
32390 // Includes string.
32391 definitionLabelString: 'definitionLabelString',
32392
32393 // Marker between a label and a destination (`:`).
32394 definitionMarker: 'definitionMarker',
32395
32396 // Title of a definition (`"x"`, `'y'`, or `(z)`).
32397 // Includes `definitionTitleMarker` and optionally `definitionTitleString`.
32398 definitionTitle: 'definitionTitle',
32399
32400 // Marker around a title of a definition (`"`, `'`, `(`, or `)`).
32401 definitionTitleMarker: 'definitionTitleMarker',
32402
32403 // Data without markers in a title (`z`).
32404 // Includes string.
32405 definitionTitleString: 'definitionTitleString',
32406
32407 // Emphasis (`*alpha*`).
32408 // Includes `emphasisSequence` and `emphasisText`.
32409 emphasis: 'emphasis',
32410
32411 // Sequence of emphasis markers (`*` or `_`).
32412 emphasisSequence: 'emphasisSequence',
32413
32414 // Emphasis text (`alpha`).
32415 // Includes text.
32416 emphasisText: 'emphasisText',
32417
32418 // The character escape marker (`\`).
32419 escapeMarker: 'escapeMarker',
32420
32421 // A hard break created with a backslash (`\\n`).
32422 // Note: does not include the line ending.
32423 hardBreakEscape: 'hardBreakEscape',
32424
32425 // A hard break created with trailing spaces (` \n`).
32426 // Does not include the line ending.
32427 hardBreakTrailing: 'hardBreakTrailing',
32428
32429 // Flow HTML:
32430 //
32431 // ```markdown
32432 // <div
32433 // ```
32434 //
32435 // Inlcudes `lineEnding`, `htmlFlowData`.
32436 htmlFlow: 'htmlFlow',
32437
32438 htmlFlowData: 'htmlFlowData',
32439
32440 // HTML in text (the tag in `a <i> b`).
32441 // Includes `lineEnding`, `htmlTextData`.
32442 htmlText: 'htmlText',
32443
32444 htmlTextData: 'htmlTextData',
32445
32446 // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or
32447 // `![alpha]`).
32448 // Includes `label` and an optional `resource` or `reference`.
32449 image: 'image',
32450
32451 // Whole link label (`[*alpha*]`).
32452 // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.
32453 label: 'label',
32454
32455 // Text in an label (`*alpha*`).
32456 // Includes text.
32457 labelText: 'labelText',
32458
32459 // Start a link label (`[`).
32460 // Includes a `labelMarker`.
32461 labelLink: 'labelLink',
32462
32463 // Start an image label (`![`).
32464 // Includes `labelImageMarker` and `labelMarker`.
32465 labelImage: 'labelImage',
32466
32467 // Marker of a label (`[` or `]`).
32468 labelMarker: 'labelMarker',
32469
32470 // Marker to start an image (`!`).
32471 labelImageMarker: 'labelImageMarker',
32472
32473 // End a label (`]`).
32474 // Includes `labelMarker`.
32475 labelEnd: 'labelEnd',
32476
32477 // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).
32478 // Includes `label` and an optional `resource` or `reference`.
32479 link: 'link',
32480
32481 // Whole paragraph:
32482 //
32483 // ```markdown
32484 // alpha
32485 // bravo.
32486 // ```
32487 //
32488 // Includes text.
32489 paragraph: 'paragraph',
32490
32491 // A reference (`[alpha]` or `[]`).
32492 // Includes `referenceMarker` and an optional `referenceString`.
32493 reference: 'reference',
32494
32495 // A reference marker (`[` or `]`).
32496 referenceMarker: 'referenceMarker',
32497
32498 // Reference text (`alpha`).
32499 // Includes string.
32500 referenceString: 'referenceString',
32501
32502 // A resource (`(https://example.com "alpha")`).
32503 // Includes `resourceMarker`, an optional `resourceDestination` with an optional
32504 // `whitespace` and `resourceTitle`.
32505 resource: 'resource',
32506
32507 // A resource destination (`https://example.com`).
32508 // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.
32509 resourceDestination: 'resourceDestination',
32510
32511 // A literal resource destination (`<https://example.com>`).
32512 // Includes `resourceDestinationLiteralMarker` and optionally
32513 // `resourceDestinationString`.
32514 resourceDestinationLiteral: 'resourceDestinationLiteral',
32515
32516 // A resource destination marker (`<` or `>`).
32517 resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',
32518
32519 // A raw resource destination (`https://example.com`).
32520 // Includes `resourceDestinationString`.
32521 resourceDestinationRaw: 'resourceDestinationRaw',
32522
32523 // Resource destination text (`https://example.com`).
32524 // Includes string.
32525 resourceDestinationString: 'resourceDestinationString',
32526
32527 // A resource marker (`(` or `)`).
32528 resourceMarker: 'resourceMarker',
32529
32530 // A resource title (`"alpha"`, `'alpha'`, or `(alpha)`).
32531 // Includes `resourceTitleMarker` and optionally `resourceTitleString`.
32532 resourceTitle: 'resourceTitle',
32533
32534 // A resource title marker (`"`, `'`, `(`, or `)`).
32535 resourceTitleMarker: 'resourceTitleMarker',
32536
32537 // Resource destination title (`alpha`).
32538 // Includes string.
32539 resourceTitleString: 'resourceTitleString',
32540
32541 // Whole setext heading:
32542 //
32543 // ```markdown
32544 // alpha
32545 // bravo
32546 // =====
32547 // ```
32548 //
32549 // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and
32550 // `setextHeadingLine`.
32551 setextHeading: 'setextHeading',
32552
32553 // Content in a setext heading (`alpha\nbravo`).
32554 // Includes text.
32555 setextHeadingText: 'setextHeadingText',
32556
32557 // Underline in a setext heading, including whitespace suffix (`==`).
32558 // Includes `setextHeadingLineSequence`.
32559 setextHeadingLine: 'setextHeadingLine',
32560
32561 // Sequence of equals or dash characters in underline in a setext heading (`-`).
32562 setextHeadingLineSequence: 'setextHeadingLineSequence',
32563
32564 // Strong (`**alpha**`).
32565 // Includes `strongSequence` and `strongText`.
32566 strong: 'strong',
32567
32568 // Sequence of strong markers (`**` or `__`).
32569 strongSequence: 'strongSequence',
32570
32571 // Strong text (`alpha`).
32572 // Includes text.
32573 strongText: 'strongText',
32574
32575 // Whole thematic break:
32576 //
32577 // ```markdown
32578 // * * *
32579 // ```
32580 //
32581 // Includes `thematicBreakSequence` and `whitespace`.
32582 thematicBreak: 'thematicBreak',
32583
32584 // A sequence of one or more thematic break markers (`***`).
32585 thematicBreakSequence: 'thematicBreakSequence',
32586
32587 // Whole block quote:
32588 //
32589 // ```markdown
32590 // > a
32591 // >
32592 // > b
32593 // ```
32594 //
32595 // Includes `blockQuotePrefix` and flow.
32596 blockQuote: 'blockQuote',
32597 // The `>` or `> ` of a block quote.
32598 blockQuotePrefix: 'blockQuotePrefix',
32599 // The `>` of a block quote prefix.
32600 blockQuoteMarker: 'blockQuoteMarker',
32601 // The optional ` ` of a block quote prefix.
32602 blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',
32603
32604 // Whole unordered list:
32605 //
32606 // ```markdown
32607 // - a
32608 // b
32609 // ```
32610 //
32611 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32612 // lines.
32613 listOrdered: 'listOrdered',
32614
32615 // Whole ordered list:
32616 //
32617 // ```markdown
32618 // 1. a
32619 // b
32620 // ```
32621 //
32622 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32623 // lines.
32624 listUnordered: 'listUnordered',
32625
32626 // The indent of further list item lines.
32627 listItemIndent: 'listItemIndent',
32628
32629 // A marker, as in, `*`, `+`, `-`, `.`, or `)`.
32630 listItemMarker: 'listItemMarker',
32631
32632 // The thing that starts a list item, such as `1. `.
32633 // Includes `listItemValue` if ordered, `listItemMarker`, and
32634 // `listItemPrefixWhitespace` (unless followed by a line ending).
32635 listItemPrefix: 'listItemPrefix',
32636
32637 // The whitespace after a marker.
32638 listItemPrefixWhitespace: 'listItemPrefixWhitespace',
32639
32640 // The numerical value of an ordered item.
32641 listItemValue: 'listItemValue',
32642
32643 // Internal types used for subtokenizers, compiled away
32644 chunkDocument: 'chunkDocument',
32645 chunkContent: 'chunkContent',
32646 chunkFlow: 'chunkFlow',
32647 chunkText: 'chunkText',
32648 chunkString: 'chunkString'
32649 })
32650
32651
32652 /***/ }),
32653
32654 /***/ "../node_modules/micromark-util-symbol/values.js":
32655 /*!*******************************************************!*\
32656 !*** ../node_modules/micromark-util-symbol/values.js ***!
32657 \*******************************************************/
32658 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32659
32660 "use strict";
32661 __webpack_require__.r(__webpack_exports__);
32662 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32663 /* harmony export */ values: () => (/* binding */ values)
32664 /* harmony export */ });
32665 /**
32666 * This module is compiled away!
32667 *
32668 * While micromark works based on character codes, this module includes the
32669 * string versions of ’em.
32670 * The C0 block, except for LF, CR, HT, and w/ the replacement character added,
32671 * are available here.
32672 */
32673 const values = /** @type {const} */ ({
32674 ht: '\t',
32675 lf: '\n',
32676 cr: '\r',
32677 space: ' ',
32678 exclamationMark: '!',
32679 quotationMark: '"',
32680 numberSign: '#',
32681 dollarSign: '$',
32682 percentSign: '%',
32683 ampersand: '&',
32684 apostrophe: "'",
32685 leftParenthesis: '(',
32686 rightParenthesis: ')',
32687 asterisk: '*',
32688 plusSign: '+',
32689 comma: ',',
32690 dash: '-',
32691 dot: '.',
32692 slash: '/',
32693 digit0: '0',
32694 digit1: '1',
32695 digit2: '2',
32696 digit3: '3',
32697 digit4: '4',
32698 digit5: '5',
32699 digit6: '6',
32700 digit7: '7',
32701 digit8: '8',
32702 digit9: '9',
32703 colon: ':',
32704 semicolon: ';',
32705 lessThan: '<',
32706 equalsTo: '=',
32707 greaterThan: '>',
32708 questionMark: '?',
32709 atSign: '@',
32710 uppercaseA: 'A',
32711 uppercaseB: 'B',
32712 uppercaseC: 'C',
32713 uppercaseD: 'D',
32714 uppercaseE: 'E',
32715 uppercaseF: 'F',
32716 uppercaseG: 'G',
32717 uppercaseH: 'H',
32718 uppercaseI: 'I',
32719 uppercaseJ: 'J',
32720 uppercaseK: 'K',
32721 uppercaseL: 'L',
32722 uppercaseM: 'M',
32723 uppercaseN: 'N',
32724 uppercaseO: 'O',
32725 uppercaseP: 'P',
32726 uppercaseQ: 'Q',
32727 uppercaseR: 'R',
32728 uppercaseS: 'S',
32729 uppercaseT: 'T',
32730 uppercaseU: 'U',
32731 uppercaseV: 'V',
32732 uppercaseW: 'W',
32733 uppercaseX: 'X',
32734 uppercaseY: 'Y',
32735 uppercaseZ: 'Z',
32736 leftSquareBracket: '[',
32737 backslash: '\\',
32738 rightSquareBracket: ']',
32739 caret: '^',
32740 underscore: '_',
32741 graveAccent: '`',
32742 lowercaseA: 'a',
32743 lowercaseB: 'b',
32744 lowercaseC: 'c',
32745 lowercaseD: 'd',
32746 lowercaseE: 'e',
32747 lowercaseF: 'f',
32748 lowercaseG: 'g',
32749 lowercaseH: 'h',
32750 lowercaseI: 'i',
32751 lowercaseJ: 'j',
32752 lowercaseK: 'k',
32753 lowercaseL: 'l',
32754 lowercaseM: 'm',
32755 lowercaseN: 'n',
32756 lowercaseO: 'o',
32757 lowercaseP: 'p',
32758 lowercaseQ: 'q',
32759 lowercaseR: 'r',
32760 lowercaseS: 's',
32761 lowercaseT: 't',
32762 lowercaseU: 'u',
32763 lowercaseV: 'v',
32764 lowercaseW: 'w',
32765 lowercaseX: 'x',
32766 lowercaseY: 'y',
32767 lowercaseZ: 'z',
32768 leftCurlyBrace: '{',
32769 verticalBar: '|',
32770 rightCurlyBrace: '}',
32771 tilde: '~',
32772 replacementCharacter: ''
32773 })
32774
32775
32776 /***/ }),
32777
32778 /***/ "../node_modules/micromark/dev/lib/constructs.js":
32779 /*!*******************************************************!*\
32780 !*** ../node_modules/micromark/dev/lib/constructs.js ***!
32781 \*******************************************************/
32782 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32783
32784 "use strict";
32785 __webpack_require__.r(__webpack_exports__);
32786 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32787 /* harmony export */ attentionMarkers: () => (/* binding */ attentionMarkers),
32788 /* harmony export */ contentInitial: () => (/* binding */ contentInitial),
32789 /* harmony export */ disable: () => (/* binding */ disable),
32790 /* harmony export */ document: () => (/* binding */ document),
32791 /* harmony export */ flow: () => (/* binding */ flow),
32792 /* harmony export */ flowInitial: () => (/* binding */ flowInitial),
32793 /* harmony export */ insideSpan: () => (/* binding */ insideSpan),
32794 /* harmony export */ string: () => (/* binding */ string),
32795 /* harmony export */ text: () => (/* binding */ text)
32796 /* harmony export */ });
32797 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/list.js");
32798 /* 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");
32799 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/definition.js");
32800 /* 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");
32801 /* 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");
32802 /* 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");
32803 /* 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");
32804 /* 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");
32805 /* 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");
32806 /* 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");
32807 /* 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");
32808 /* 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");
32809 /* 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");
32810 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/attention.js");
32811 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js");
32812 /* 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");
32813 /* 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");
32814 /* 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");
32815 /* 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");
32816 /* 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");
32817 /* 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");
32818 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
32819 /**
32820 * @typedef {import('micromark-util-types').Extension} Extension
32821 */
32822
32823
32824
32825
32826
32827 /** @satisfies {Extension['document']} */
32828 const document = {
32829 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32830 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32831 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32832 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit0]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32833 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32834 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32835 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32836 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32837 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32838 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit6]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32839 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit7]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32840 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit8]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32841 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit9]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
32842 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.blockQuote
32843 }
32844
32845 /** @satisfies {Extension['contentInitial']} */
32846 const contentInitial = {
32847 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.definition
32848 }
32849
32850 /** @satisfies {Extension['flowInitial']} */
32851 const flowInitial = {
32852 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32853 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
32854 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented
32855 }
32856
32857 /** @satisfies {Extension['flow']} */
32858 const flow = {
32859 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__.headingAtx,
32860 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32861 [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],
32862 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__.htmlFlow,
32863 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.equalsTo]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,
32864 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
32865 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced,
32866 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced
32867 }
32868
32869 /** @satisfies {Extension['string']} */
32870 const string = {
32871 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32872 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape
32873 }
32874
32875 /** @satisfies {Extension['text']} */
32876 const text = {
32877 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32878 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32879 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
32880 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__.labelStartImage,
32881 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
32882 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32883 [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],
32884 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__.labelStartLink,
32885 [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],
32886 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__.labelEnd,
32887 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
32888 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__.codeText
32889 }
32890
32891 /** @satisfies {Extension['insideSpan']} */
32892 const insideSpan = {null: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention, _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__.resolver]}
32893
32894 /** @satisfies {Extension['attentionMarkers']} */
32895 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]}
32896
32897 /** @satisfies {Extension['disable']} */
32898 const disable = {null: []}
32899
32900
32901 /***/ }),
32902
32903 /***/ "../node_modules/micromark/dev/lib/create-tokenizer.js":
32904 /*!*************************************************************!*\
32905 !*** ../node_modules/micromark/dev/lib/create-tokenizer.js ***!
32906 \*************************************************************/
32907 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32908
32909 "use strict";
32910 __webpack_require__.r(__webpack_exports__);
32911 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32912 /* harmony export */ createTokenizer: () => (/* binding */ createTokenizer)
32913 /* harmony export */ });
32914 /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "../node_modules/debug/src/browser.js");
32915 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
32916 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
32917 /* 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");
32918 /* 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");
32919 /* 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");
32920 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
32921 /**
32922 * @typedef {import('micromark-util-types').Chunk} Chunk
32923 * @typedef {import('micromark-util-types').Code} Code
32924 * @typedef {import('micromark-util-types').Construct} Construct
32925 * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord
32926 * @typedef {import('micromark-util-types').Effects} Effects
32927 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
32928 * @typedef {import('micromark-util-types').ParseContext} ParseContext
32929 * @typedef {import('micromark-util-types').Point} Point
32930 * @typedef {import('micromark-util-types').State} State
32931 * @typedef {import('micromark-util-types').Token} Token
32932 * @typedef {import('micromark-util-types').TokenType} TokenType
32933 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
32934 */
32935
32936 /**
32937 * @callback Restore
32938 * @returns {void}
32939 *
32940 * @typedef Info
32941 * @property {Restore} restore
32942 * @property {number} from
32943 *
32944 * @callback ReturnHandle
32945 * Handle a successful run.
32946 * @param {Construct} construct
32947 * @param {Info} info
32948 * @returns {void}
32949 */
32950
32951
32952
32953
32954
32955
32956
32957
32958
32959 const debug = debug__WEBPACK_IMPORTED_MODULE_0__('micromark')
32960
32961 /**
32962 * Create a tokenizer.
32963 * Tokenizers deal with one type of data (e.g., containers, flow, text).
32964 * The parser is the object dealing with it all.
32965 * `initialize` works like other constructs, except that only its `tokenize`
32966 * function is used, in which case it doesn’t receive an `ok` or `nok`.
32967 * `from` can be given to set the point before the first character, although
32968 * when further lines are indented, they must be set with `defineSkip`.
32969 *
32970 * @param {ParseContext} parser
32971 * @param {InitialConstruct} initialize
32972 * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]
32973 * @returns {TokenizeContext}
32974 */
32975 function createTokenizer(parser, initialize, from) {
32976 /** @type {Point} */
32977 let point = Object.assign(
32978 from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},
32979 {_index: 0, _bufferIndex: -1}
32980 )
32981 /** @type {Record<string, number>} */
32982 const columnStart = {}
32983 /** @type {Array<Construct>} */
32984 const resolveAllConstructs = []
32985 /** @type {Array<Chunk>} */
32986 let chunks = []
32987 /** @type {Array<Token>} */
32988 let stack = []
32989 /** @type {boolean | undefined} */
32990 let consumed = true
32991
32992 /**
32993 * Tools used for tokenizing.
32994 *
32995 * @type {Effects}
32996 */
32997 const effects = {
32998 consume,
32999 enter,
33000 exit,
33001 attempt: constructFactory(onsuccessfulconstruct),
33002 check: constructFactory(onsuccessfulcheck),
33003 interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})
33004 }
33005
33006 /**
33007 * State and tools for resolving and serializing.
33008 *
33009 * @type {TokenizeContext}
33010 */
33011 const context = {
33012 previous: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33013 code: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33014 containerState: {},
33015 events: [],
33016 parser,
33017 sliceStream,
33018 sliceSerialize,
33019 now,
33020 defineSkip,
33021 write
33022 }
33023
33024 /**
33025 * The state function.
33026 *
33027 * @type {State | void}
33028 */
33029 let state = initialize.tokenize.call(context, effects)
33030
33031 /**
33032 * Track which character we expect to be consumed, to catch bugs.
33033 *
33034 * @type {Code}
33035 */
33036 let expectedCode
33037
33038 if (initialize.resolveAll) {
33039 resolveAllConstructs.push(initialize)
33040 }
33041
33042 return context
33043
33044 /** @type {TokenizeContext['write']} */
33045 function write(slice) {
33046 chunks = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.push)(chunks, slice)
33047
33048 main()
33049
33050 // Exit if we’re not done, resolve might change stuff.
33051 if (chunks[chunks.length - 1] !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
33052 return []
33053 }
33054
33055 addResult(initialize, 0)
33056
33057 // Otherwise, resolve, and exit.
33058 context.events = (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_4__.resolveAll)(resolveAllConstructs, context.events, context)
33059
33060 return context.events
33061 }
33062
33063 //
33064 // Tools.
33065 //
33066
33067 /** @type {TokenizeContext['sliceSerialize']} */
33068 function sliceSerialize(token, expandTabs) {
33069 return serializeChunks(sliceStream(token), expandTabs)
33070 }
33071
33072 /** @type {TokenizeContext['sliceStream']} */
33073 function sliceStream(token) {
33074 return sliceChunks(chunks, token)
33075 }
33076
33077 /** @type {TokenizeContext['now']} */
33078 function now() {
33079 // This is a hot path, so we clone manually instead of `Object.assign({}, point)`
33080 const {line, column, offset, _index, _bufferIndex} = point
33081 return {line, column, offset, _index, _bufferIndex}
33082 }
33083
33084 /** @type {TokenizeContext['defineSkip']} */
33085 function defineSkip(value) {
33086 columnStart[value.line] = value.column
33087 accountForPotentialSkip()
33088 debug('position: define skip: `%j`', point)
33089 }
33090
33091 //
33092 // State management.
33093 //
33094
33095 /**
33096 * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by
33097 * `consume`).
33098 * Here is where we walk through the chunks, which either include strings of
33099 * several characters, or numerical character codes.
33100 * The reason to do this in a loop instead of a call is so the stack can
33101 * drain.
33102 *
33103 * @returns {void}
33104 */
33105 function main() {
33106 /** @type {number} */
33107 let chunkIndex
33108
33109 while (point._index < chunks.length) {
33110 const chunk = chunks[point._index]
33111
33112 // If we’re in a buffer chunk, loop through it.
33113 if (typeof chunk === 'string') {
33114 chunkIndex = point._index
33115
33116 if (point._bufferIndex < 0) {
33117 point._bufferIndex = 0
33118 }
33119
33120 while (
33121 point._index === chunkIndex &&
33122 point._bufferIndex < chunk.length
33123 ) {
33124 go(chunk.charCodeAt(point._bufferIndex))
33125 }
33126 } else {
33127 go(chunk)
33128 }
33129 }
33130 }
33131
33132 /**
33133 * Deal with one code.
33134 *
33135 * @param {Code} code
33136 * @returns {void}
33137 */
33138 function go(code) {
33139 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(consumed === true, 'expected character to be consumed')
33140 consumed = undefined
33141 debug('main: passing `%s` to %s', code, state && state.name)
33142 expectedCode = code
33143 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof state === 'function', 'expected state')
33144 state = state(code)
33145 }
33146
33147 /** @type {Effects['consume']} */
33148 function consume(code) {
33149 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected given code to equal expected code')
33150
33151 debug('consume: `%s`', code)
33152
33153 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33154 consumed === undefined,
33155 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'
33156 )
33157 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33158 code === null
33159 ? context.events.length === 0 ||
33160 context.events[context.events.length - 1][0] === 'exit'
33161 : context.events[context.events.length - 1][0] === 'enter',
33162 'expected last token to be open'
33163 )
33164
33165 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
33166 point.line++
33167 point.column = 1
33168 point.offset += code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed ? 2 : 1
33169 accountForPotentialSkip()
33170 debug('position: after eol: `%j`', point)
33171 } else if (code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace) {
33172 point.column++
33173 point.offset++
33174 }
33175
33176 // Not in a string chunk.
33177 if (point._bufferIndex < 0) {
33178 point._index++
33179 } else {
33180 point._bufferIndex++
33181
33182 // At end of string chunk.
33183 // @ts-expect-error Points w/ non-negative `_bufferIndex` reference
33184 // strings.
33185 if (point._bufferIndex === chunks[point._index].length) {
33186 point._bufferIndex = -1
33187 point._index++
33188 }
33189 }
33190
33191 // Expose the previous character.
33192 context.previous = code
33193
33194 // Mark as consumed.
33195 consumed = true
33196 }
33197
33198 /** @type {Effects['enter']} */
33199 function enter(type, fields) {
33200 /** @type {Token} */
33201 // @ts-expect-error Patch instead of assign required fields to help GC.
33202 const token = fields || {}
33203 token.type = type
33204 token.start = now()
33205
33206 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33207 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33208 debug('enter: `%s`', type)
33209
33210 context.events.push(['enter', token, context])
33211
33212 stack.push(token)
33213
33214 return token
33215 }
33216
33217 /** @type {Effects['exit']} */
33218 function exit(type) {
33219 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33220 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33221
33222 const token = stack.pop()
33223 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(token, 'cannot close w/o open tokens')
33224 token.end = now()
33225
33226 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type === token.type, 'expected exit token to match current token')
33227
33228 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33229 !(
33230 token.start._index === token.end._index &&
33231 token.start._bufferIndex === token.end._bufferIndex
33232 ),
33233 'expected non-empty token (`' + type + '`)'
33234 )
33235
33236 debug('exit: `%s`', token.type)
33237 context.events.push(['exit', token, context])
33238
33239 return token
33240 }
33241
33242 /**
33243 * Use results.
33244 *
33245 * @type {ReturnHandle}
33246 */
33247 function onsuccessfulconstruct(construct, info) {
33248 addResult(construct, info.from)
33249 }
33250
33251 /**
33252 * Discard results.
33253 *
33254 * @type {ReturnHandle}
33255 */
33256 function onsuccessfulcheck(_, info) {
33257 info.restore()
33258 }
33259
33260 /**
33261 * Factory to attempt/check/interrupt.
33262 *
33263 * @param {ReturnHandle} onreturn
33264 * @param {{interrupt?: boolean | undefined} | undefined} [fields]
33265 */
33266 function constructFactory(onreturn, fields) {
33267 return hook
33268
33269 /**
33270 * Handle either an object mapping codes to constructs, a list of
33271 * constructs, or a single construct.
33272 *
33273 * @param {Array<Construct> | Construct | ConstructRecord} constructs
33274 * @param {State} returnState
33275 * @param {State | undefined} [bogusState]
33276 * @returns {State}
33277 */
33278 function hook(constructs, returnState, bogusState) {
33279 /** @type {Array<Construct>} */
33280 let listOfConstructs
33281 /** @type {number} */
33282 let constructIndex
33283 /** @type {Construct} */
33284 let currentConstruct
33285 /** @type {Info} */
33286 let info
33287
33288 return Array.isArray(constructs)
33289 ? /* c8 ignore next 1 */
33290 handleListOfConstructs(constructs)
33291 : 'tokenize' in constructs
33292 ? // @ts-expect-error Looks like a construct.
33293 handleListOfConstructs([constructs])
33294 : handleMapOfConstructs(constructs)
33295
33296 /**
33297 * Handle a list of construct.
33298 *
33299 * @param {ConstructRecord} map
33300 * @returns {State}
33301 */
33302 function handleMapOfConstructs(map) {
33303 return start
33304
33305 /** @type {State} */
33306 function start(code) {
33307 const def = code !== null && map[code]
33308 const all = code !== null && map.null
33309 const list = [
33310 // To do: add more extension tests.
33311 /* c8 ignore next 2 */
33312 ...(Array.isArray(def) ? def : def ? [def] : []),
33313 ...(Array.isArray(all) ? all : all ? [all] : [])
33314 ]
33315
33316 return handleListOfConstructs(list)(code)
33317 }
33318 }
33319
33320 /**
33321 * Handle a list of construct.
33322 *
33323 * @param {Array<Construct>} list
33324 * @returns {State}
33325 */
33326 function handleListOfConstructs(list) {
33327 listOfConstructs = list
33328 constructIndex = 0
33329
33330 if (list.length === 0) {
33331 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(bogusState, 'expected `bogusState` to be given')
33332 return bogusState
33333 }
33334
33335 return handleConstruct(list[constructIndex])
33336 }
33337
33338 /**
33339 * Handle a single construct.
33340 *
33341 * @param {Construct} construct
33342 * @returns {State}
33343 */
33344 function handleConstruct(construct) {
33345 return start
33346
33347 /** @type {State} */
33348 function start(code) {
33349 // To do: not needed to store if there is no bogus state, probably?
33350 // Currently doesn’t work because `inspect` in document does a check
33351 // w/o a bogus, which doesn’t make sense. But it does seem to help perf
33352 // by not storing.
33353 info = store()
33354 currentConstruct = construct
33355
33356 if (!construct.partial) {
33357 context.currentConstruct = construct
33358 }
33359
33360 // Always populated by defaults.
33361 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33362 context.parser.constructs.disable.null,
33363 'expected `disable.null` to be populated'
33364 )
33365
33366 if (
33367 construct.name &&
33368 context.parser.constructs.disable.null.includes(construct.name)
33369 ) {
33370 return nok(code)
33371 }
33372
33373 return construct.tokenize.call(
33374 // If we do have fields, create an object w/ `context` as its
33375 // prototype.
33376 // This allows a “live binding”, which is needed for `interrupt`.
33377 fields ? Object.assign(Object.create(context), fields) : context,
33378 effects,
33379 ok,
33380 nok
33381 )(code)
33382 }
33383 }
33384
33385 /** @type {State} */
33386 function ok(code) {
33387 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33388 consumed = true
33389 onreturn(currentConstruct, info)
33390 return returnState
33391 }
33392
33393 /** @type {State} */
33394 function nok(code) {
33395 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33396 consumed = true
33397 info.restore()
33398
33399 if (++constructIndex < listOfConstructs.length) {
33400 return handleConstruct(listOfConstructs[constructIndex])
33401 }
33402
33403 return bogusState
33404 }
33405 }
33406 }
33407
33408 /**
33409 * @param {Construct} construct
33410 * @param {number} from
33411 * @returns {void}
33412 */
33413 function addResult(construct, from) {
33414 if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {
33415 resolveAllConstructs.push(construct)
33416 }
33417
33418 if (construct.resolve) {
33419 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(
33420 context.events,
33421 from,
33422 context.events.length - from,
33423 construct.resolve(context.events.slice(from), context)
33424 )
33425 }
33426
33427 if (construct.resolveTo) {
33428 context.events = construct.resolveTo(context.events, context)
33429 }
33430
33431 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33432 construct.partial ||
33433 context.events.length === 0 ||
33434 context.events[context.events.length - 1][0] === 'exit',
33435 'expected last token to end'
33436 )
33437 }
33438
33439 /**
33440 * Store state.
33441 *
33442 * @returns {Info}
33443 */
33444 function store() {
33445 const startPoint = now()
33446 const startPrevious = context.previous
33447 const startCurrentConstruct = context.currentConstruct
33448 const startEventsIndex = context.events.length
33449 const startStack = Array.from(stack)
33450
33451 return {restore, from: startEventsIndex}
33452
33453 /**
33454 * Restore state.
33455 *
33456 * @returns {void}
33457 */
33458 function restore() {
33459 point = startPoint
33460 context.previous = startPrevious
33461 context.currentConstruct = startCurrentConstruct
33462 context.events.length = startEventsIndex
33463 stack = startStack
33464 accountForPotentialSkip()
33465 debug('position: restore: `%j`', point)
33466 }
33467 }
33468
33469 /**
33470 * Move the current point a bit forward in the line when it’s on a column
33471 * skip.
33472 *
33473 * @returns {void}
33474 */
33475 function accountForPotentialSkip() {
33476 if (point.line in columnStart && point.column < 2) {
33477 point.column = columnStart[point.line]
33478 point.offset += columnStart[point.line] - 1
33479 }
33480 }
33481 }
33482
33483 /**
33484 * Get the chunks from a slice of chunks in the range of a token.
33485 *
33486 * @param {Array<Chunk>} chunks
33487 * @param {Pick<Token, 'end' | 'start'>} token
33488 * @returns {Array<Chunk>}
33489 */
33490 function sliceChunks(chunks, token) {
33491 const startIndex = token.start._index
33492 const startBufferIndex = token.start._bufferIndex
33493 const endIndex = token.end._index
33494 const endBufferIndex = token.end._bufferIndex
33495 /** @type {Array<Chunk>} */
33496 let view
33497
33498 if (startIndex === endIndex) {
33499 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(endBufferIndex > -1, 'expected non-negative end buffer index')
33500 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex > -1, 'expected non-negative start buffer index')
33501 // @ts-expect-error `_bufferIndex` is used on string chunks.
33502 view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]
33503 } else {
33504 view = chunks.slice(startIndex, endIndex)
33505
33506 if (startBufferIndex > -1) {
33507 const head = view[0]
33508 if (typeof head === 'string') {
33509 view[0] = head.slice(startBufferIndex)
33510 } else {
33511 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')
33512 view.shift()
33513 }
33514 }
33515
33516 if (endBufferIndex > 0) {
33517 // @ts-expect-error `_bufferIndex` is used on string chunks.
33518 view.push(chunks[endIndex].slice(0, endBufferIndex))
33519 }
33520 }
33521
33522 return view
33523 }
33524
33525 /**
33526 * Get the string value of a slice of chunks.
33527 *
33528 * @param {Array<Chunk>} chunks
33529 * @param {boolean | undefined} [expandTabs=false]
33530 * @returns {string}
33531 */
33532 function serializeChunks(chunks, expandTabs) {
33533 let index = -1
33534 /** @type {Array<string>} */
33535 const result = []
33536 /** @type {boolean | undefined} */
33537 let atTab
33538
33539 while (++index < chunks.length) {
33540 const chunk = chunks[index]
33541 /** @type {string} */
33542 let value
33543
33544 if (typeof chunk === 'string') {
33545 value = chunk
33546 } else
33547 switch (chunk) {
33548 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturn: {
33549 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr
33550
33551 break
33552 }
33553
33554 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lineFeed: {
33555 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33556
33557 break
33558 }
33559
33560 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed: {
33561 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr + micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33562
33563 break
33564 }
33565
33566 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab: {
33567 value = expandTabs ? micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space : micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.ht
33568
33569 break
33570 }
33571
33572 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace: {
33573 if (!expandTabs && atTab) continue
33574 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space
33575
33576 break
33577 }
33578
33579 default: {
33580 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof chunk === 'number', 'expected number')
33581 // Currently only replacement character.
33582 value = String.fromCharCode(chunk)
33583 }
33584 }
33585
33586 atTab = chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab
33587 result.push(value)
33588 }
33589
33590 return result.join('')
33591 }
33592
33593
33594 /***/ }),
33595
33596 /***/ "../node_modules/micromark/dev/lib/initialize/content.js":
33597 /*!***************************************************************!*\
33598 !*** ../node_modules/micromark/dev/lib/initialize/content.js ***!
33599 \***************************************************************/
33600 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33601
33602 "use strict";
33603 __webpack_require__.r(__webpack_exports__);
33604 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33605 /* harmony export */ content: () => (/* binding */ content)
33606 /* harmony export */ });
33607 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33608 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33609 /* 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");
33610 /* 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");
33611 /* 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");
33612 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33613 /**
33614 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33615 * @typedef {import('micromark-util-types').Initializer} Initializer
33616 * @typedef {import('micromark-util-types').State} State
33617 * @typedef {import('micromark-util-types').Token} Token
33618 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33619 */
33620
33621
33622
33623
33624
33625
33626
33627
33628 /** @type {InitialConstruct} */
33629 const content = {tokenize: initializeContent}
33630
33631 /**
33632 * @this {TokenizeContext}
33633 * @type {Initializer}
33634 */
33635 function initializeContent(effects) {
33636 const contentStart = effects.attempt(
33637 this.parser.constructs.contentInitial,
33638 afterContentStartConstruct,
33639 paragraphInitial
33640 )
33641 /** @type {Token} */
33642 let previous
33643
33644 return contentStart
33645
33646 /** @type {State} */
33647 function afterContentStartConstruct(code) {
33648 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33649 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33650 'expected eol or eof'
33651 )
33652
33653 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33654 effects.consume(code)
33655 return
33656 }
33657
33658 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33659 effects.consume(code)
33660 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
33661 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contentStart, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix)
33662 }
33663
33664 /** @type {State} */
33665 function paragraphInitial(code) {
33666 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33667 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
33668 'expected anything other than a line ending or EOF'
33669 )
33670 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33671 return lineStart(code)
33672 }
33673
33674 /** @type {State} */
33675 function lineStart(code) {
33676 const token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText, {
33677 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText,
33678 previous
33679 })
33680
33681 if (previous) {
33682 previous.next = token
33683 }
33684
33685 previous = token
33686
33687 return data(code)
33688 }
33689
33690 /** @type {State} */
33691 function data(code) {
33692 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
33693 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33694 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
33695 effects.consume(code)
33696 return
33697 }
33698
33699 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {
33700 effects.consume(code)
33701 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
33702 return lineStart
33703 }
33704
33705 // Data.
33706 effects.consume(code)
33707 return data
33708 }
33709 }
33710
33711
33712 /***/ }),
33713
33714 /***/ "../node_modules/micromark/dev/lib/initialize/document.js":
33715 /*!****************************************************************!*\
33716 !*** ../node_modules/micromark/dev/lib/initialize/document.js ***!
33717 \****************************************************************/
33718 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33719
33720 "use strict";
33721 __webpack_require__.r(__webpack_exports__);
33722 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33723 /* harmony export */ document: () => (/* binding */ document)
33724 /* harmony export */ });
33725 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33726 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33727 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
33728 /* 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");
33729 /* 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");
33730 /* 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");
33731 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33732 /**
33733 * @typedef {import('micromark-util-types').Construct} Construct
33734 * @typedef {import('micromark-util-types').ContainerState} ContainerState
33735 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33736 * @typedef {import('micromark-util-types').Initializer} Initializer
33737 * @typedef {import('micromark-util-types').Point} Point
33738 * @typedef {import('micromark-util-types').State} State
33739 * @typedef {import('micromark-util-types').Token} Token
33740 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33741 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
33742 */
33743
33744 /**
33745 * @typedef {[Construct, ContainerState]} StackItem
33746 */
33747
33748
33749
33750
33751
33752
33753
33754
33755
33756 /** @type {InitialConstruct} */
33757 const document = {tokenize: initializeDocument}
33758
33759 /** @type {Construct} */
33760 const containerConstruct = {tokenize: tokenizeContainer}
33761
33762 /**
33763 * @this {TokenizeContext}
33764 * @type {Initializer}
33765 */
33766 function initializeDocument(effects) {
33767 const self = this
33768 /** @type {Array<StackItem>} */
33769 const stack = []
33770 let continued = 0
33771 /** @type {TokenizeContext | undefined} */
33772 let childFlow
33773 /** @type {Token | undefined} */
33774 let childToken
33775 /** @type {number} */
33776 let lineStartOffset
33777
33778 return start
33779
33780 /** @type {State} */
33781 function start(code) {
33782 // First we iterate through the open blocks, starting with the root
33783 // document, and descending through last children down to the last open
33784 // block.
33785 // Each block imposes a condition that the line must satisfy if the block is
33786 // to remain open.
33787 // For example, a block quote requires a `>` character.
33788 // A paragraph requires a non-blank line.
33789 // In this phase we may match all or just some of the open blocks.
33790 // But we cannot close unmatched blocks yet, because we may have a lazy
33791 // continuation line.
33792 if (continued < stack.length) {
33793 const item = stack[continued]
33794 self.containerState = item[1]
33795 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33796 item[0].continuation,
33797 'expected `continuation` to be defined on container construct'
33798 )
33799 return effects.attempt(
33800 item[0].continuation,
33801 documentContinue,
33802 checkNewContainers
33803 )(code)
33804 }
33805
33806 // Done.
33807 return checkNewContainers(code)
33808 }
33809
33810 /** @type {State} */
33811 function documentContinue(code) {
33812 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33813 self.containerState,
33814 'expected `containerState` to be defined after continuation'
33815 )
33816
33817 continued++
33818
33819 // Note: this field is called `_closeFlow` but it also closes containers.
33820 // Perhaps a good idea to rename it but it’s already used in the wild by
33821 // extensions.
33822 if (self.containerState._closeFlow) {
33823 self.containerState._closeFlow = undefined
33824
33825 if (childFlow) {
33826 closeFlow()
33827 }
33828
33829 // Note: this algorithm for moving events around is similar to the
33830 // algorithm when dealing with lazy lines in `writeToChild`.
33831 const indexBeforeExits = self.events.length
33832 let indexBeforeFlow = indexBeforeExits
33833 /** @type {Point | undefined} */
33834 let point
33835
33836 // Find the flow chunk.
33837 while (indexBeforeFlow--) {
33838 if (
33839 self.events[indexBeforeFlow][0] === 'exit' &&
33840 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
33841 ) {
33842 point = self.events[indexBeforeFlow][1].end
33843 break
33844 }
33845 }
33846
33847 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
33848
33849 exitContainers(continued)
33850
33851 // Fix positions.
33852 let index = indexBeforeExits
33853
33854 while (index < self.events.length) {
33855 self.events[index][1].end = Object.assign({}, point)
33856 index++
33857 }
33858
33859 // Inject the exits earlier (they’re still also at the end).
33860 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
33861 self.events,
33862 indexBeforeFlow + 1,
33863 0,
33864 self.events.slice(indexBeforeExits)
33865 )
33866
33867 // Discard the duplicate exits.
33868 self.events.length = index
33869
33870 return checkNewContainers(code)
33871 }
33872
33873 return start(code)
33874 }
33875
33876 /** @type {State} */
33877 function checkNewContainers(code) {
33878 // Next, after consuming the continuation markers for existing blocks, we
33879 // look for new block starts (e.g. `>` for a block quote).
33880 // If we encounter a new block start, we close any blocks unmatched in
33881 // step 1 before creating the new block as a child of the last matched
33882 // block.
33883 if (continued === stack.length) {
33884 // No need to `check` whether there’s a container, of `exitContainers`
33885 // would be moot.
33886 // We can instead immediately `attempt` to parse one.
33887 if (!childFlow) {
33888 return documentContinued(code)
33889 }
33890
33891 // If we have concrete content, such as block HTML or fenced code,
33892 // we can’t have containers “pierce” into them, so we can immediately
33893 // start.
33894 if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
33895 return flowStart(code)
33896 }
33897
33898 // If we do have flow, it could still be a blank line,
33899 // but we’d be interrupting it w/ a new container if there’s a current
33900 // construct.
33901 // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer
33902 // needed in micromark-extension-gfm-table@1.0.6).
33903 self.interrupt = Boolean(
33904 childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack
33905 )
33906 }
33907
33908 // Check if there is a new container.
33909 self.containerState = {}
33910 return effects.check(
33911 containerConstruct,
33912 thereIsANewContainer,
33913 thereIsNoNewContainer
33914 )(code)
33915 }
33916
33917 /** @type {State} */
33918 function thereIsANewContainer(code) {
33919 if (childFlow) closeFlow()
33920 exitContainers(continued)
33921 return documentContinued(code)
33922 }
33923
33924 /** @type {State} */
33925 function thereIsNoNewContainer(code) {
33926 self.parser.lazy[self.now().line] = continued !== stack.length
33927 lineStartOffset = self.now().offset
33928 return flowStart(code)
33929 }
33930
33931 /** @type {State} */
33932 function documentContinued(code) {
33933 // Try new containers.
33934 self.containerState = {}
33935 return effects.attempt(
33936 containerConstruct,
33937 containerContinue,
33938 flowStart
33939 )(code)
33940 }
33941
33942 /** @type {State} */
33943 function containerContinue(code) {
33944 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33945 self.currentConstruct,
33946 'expected `currentConstruct` to be defined on tokenizer'
33947 )
33948 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33949 self.containerState,
33950 'expected `containerState` to be defined on tokenizer'
33951 )
33952 continued++
33953 stack.push([self.currentConstruct, self.containerState])
33954 // Try another.
33955 return documentContinued(code)
33956 }
33957
33958 /** @type {State} */
33959 function flowStart(code) {
33960 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
33961 if (childFlow) closeFlow()
33962 exitContainers(0)
33963 effects.consume(code)
33964 return
33965 }
33966
33967 childFlow = childFlow || self.parser.flow(self.now())
33968 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow, {
33969 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeFlow,
33970 previous: childToken,
33971 _tokenizer: childFlow
33972 })
33973
33974 return flowContinue(code)
33975 }
33976
33977 /** @type {State} */
33978 function flowContinue(code) {
33979 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
33980 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow), true)
33981 exitContainers(0)
33982 effects.consume(code)
33983 return
33984 }
33985
33986 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
33987 effects.consume(code)
33988 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow))
33989 // Get ready for the next line.
33990 continued = 0
33991 self.interrupt = undefined
33992 return start
33993 }
33994
33995 effects.consume(code)
33996 return flowContinue
33997 }
33998
33999 /**
34000 * @param {Token} token
34001 * @param {boolean | undefined} [eof]
34002 * @returns {void}
34003 */
34004 function writeToChild(token, eof) {
34005 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when continuing')
34006 const stream = self.sliceStream(token)
34007 if (eof) stream.push(null)
34008 token.previous = childToken
34009 if (childToken) childToken.next = token
34010 childToken = token
34011 childFlow.defineSkip(token.start)
34012 childFlow.write(stream)
34013
34014 // Alright, so we just added a lazy line:
34015 //
34016 // ```markdown
34017 // > a
34018 // b.
34019 //
34020 // Or:
34021 //
34022 // > ~~~c
34023 // d
34024 //
34025 // Or:
34026 //
34027 // > | e |
34028 // f
34029 // ```
34030 //
34031 // The construct in the second example (fenced code) does not accept lazy
34032 // lines, so it marked itself as done at the end of its first line, and
34033 // then the content construct parses `d`.
34034 // Most constructs in markdown match on the first line: if the first line
34035 // forms a construct, a non-lazy line can’t “unmake” it.
34036 //
34037 // The construct in the third example is potentially a GFM table, and
34038 // those are *weird*.
34039 // It *could* be a table, from the first line, if the following line
34040 // matches a condition.
34041 // In this case, that second line is lazy, which “unmakes” the first line
34042 // and turns the whole into one content block.
34043 //
34044 // We’ve now parsed the non-lazy and the lazy line, and can figure out
34045 // whether the lazy line started a new flow block.
34046 // If it did, we exit the current containers between the two flow blocks.
34047 if (self.parser.lazy[token.start.line]) {
34048 let index = childFlow.events.length
34049
34050 while (index--) {
34051 if (
34052 // The token starts before the line ending…
34053 childFlow.events[index][1].start.offset < lineStartOffset &&
34054 // …and either is not ended yet…
34055 (!childFlow.events[index][1].end ||
34056 // …or ends after it.
34057 childFlow.events[index][1].end.offset > lineStartOffset)
34058 ) {
34059 // Exit: there’s still something open, which means it’s a lazy line
34060 // part of something.
34061 return
34062 }
34063 }
34064
34065 // Note: this algorithm for moving events around is similar to the
34066 // algorithm when closing flow in `documentContinue`.
34067 const indexBeforeExits = self.events.length
34068 let indexBeforeFlow = indexBeforeExits
34069 /** @type {boolean | undefined} */
34070 let seen
34071 /** @type {Point | undefined} */
34072 let point
34073
34074 // Find the previous chunk (the one before the lazy line).
34075 while (indexBeforeFlow--) {
34076 if (
34077 self.events[indexBeforeFlow][0] === 'exit' &&
34078 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
34079 ) {
34080 if (seen) {
34081 point = self.events[indexBeforeFlow][1].end
34082 break
34083 }
34084
34085 seen = true
34086 }
34087 }
34088
34089 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
34090
34091 exitContainers(continued)
34092
34093 // Fix positions.
34094 index = indexBeforeExits
34095
34096 while (index < self.events.length) {
34097 self.events[index][1].end = Object.assign({}, point)
34098 index++
34099 }
34100
34101 // Inject the exits earlier (they’re still also at the end).
34102 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
34103 self.events,
34104 indexBeforeFlow + 1,
34105 0,
34106 self.events.slice(indexBeforeExits)
34107 )
34108
34109 // Discard the duplicate exits.
34110 self.events.length = index
34111 }
34112 }
34113
34114 /**
34115 * @param {number} size
34116 * @returns {void}
34117 */
34118 function exitContainers(size) {
34119 let index = stack.length
34120
34121 // Exit open containers.
34122 while (index-- > size) {
34123 const entry = stack[index]
34124 self.containerState = entry[1]
34125 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34126 entry[0].exit,
34127 'expected `exit` to be defined on container construct'
34128 )
34129 entry[0].exit.call(self, effects)
34130 }
34131
34132 stack.length = size
34133 }
34134
34135 function closeFlow() {
34136 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34137 self.containerState,
34138 'expected `containerState` to be defined when closing flow'
34139 )
34140 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when closing it')
34141 childFlow.write([micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof])
34142 childToken = undefined
34143 childFlow = undefined
34144 self.containerState._closeFlow = undefined
34145 }
34146 }
34147
34148 /**
34149 * @this {TokenizeContext}
34150 * @type {Tokenizer}
34151 */
34152 function tokenizeContainer(effects, ok, nok) {
34153 // Always populated by defaults.
34154 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34155 this.parser.constructs.disable.null,
34156 'expected `disable.null` to be populated'
34157 )
34158 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(
34159 effects,
34160 effects.attempt(this.parser.constructs.document, ok, nok),
34161 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
34162 this.parser.constructs.disable.null.includes('codeIndented')
34163 ? undefined
34164 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
34165 )
34166 }
34167
34168
34169 /***/ }),
34170
34171 /***/ "../node_modules/micromark/dev/lib/initialize/flow.js":
34172 /*!************************************************************!*\
34173 !*** ../node_modules/micromark/dev/lib/initialize/flow.js ***!
34174 \************************************************************/
34175 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34176
34177 "use strict";
34178 __webpack_require__.r(__webpack_exports__);
34179 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34180 /* harmony export */ flow: () => (/* binding */ flow)
34181 /* harmony export */ });
34182 /* 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");
34183 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/content.js");
34184 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
34185 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
34186 /* 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");
34187 /* 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");
34188 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34189 /**
34190 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34191 * @typedef {import('micromark-util-types').Initializer} Initializer
34192 * @typedef {import('micromark-util-types').State} State
34193 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34194 */
34195
34196
34197
34198
34199
34200
34201
34202
34203 /** @type {InitialConstruct} */
34204 const flow = {tokenize: initializeFlow}
34205
34206 /**
34207 * @this {TokenizeContext}
34208 * @type {Initializer}
34209 */
34210 function initializeFlow(effects) {
34211 const self = this
34212 const initial = effects.attempt(
34213 // Try to parse a blank line.
34214 micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.blankLine,
34215 atBlankEnding,
34216 // Try to parse initial flow (essentially, only code).
34217 effects.attempt(
34218 this.parser.constructs.flowInitial,
34219 afterConstruct,
34220 (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
34221 effects,
34222 effects.attempt(
34223 this.parser.constructs.flow,
34224 afterConstruct,
34225 effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.content, afterConstruct)
34226 ),
34227 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix
34228 )
34229 )
34230 )
34231
34232 return initial
34233
34234 /** @type {State} */
34235 function atBlankEnding(code) {
34236 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34237 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34238 'expected eol or eof'
34239 )
34240
34241 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34242 effects.consume(code)
34243 return
34244 }
34245
34246 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34247 effects.consume(code)
34248 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34249 self.currentConstruct = undefined
34250 return initial
34251 }
34252
34253 /** @type {State} */
34254 function afterConstruct(code) {
34255 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34256 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34257 'expected eol or eof'
34258 )
34259
34260 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34261 effects.consume(code)
34262 return
34263 }
34264
34265 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34266 effects.consume(code)
34267 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34268 self.currentConstruct = undefined
34269 return initial
34270 }
34271 }
34272
34273
34274 /***/ }),
34275
34276 /***/ "../node_modules/micromark/dev/lib/initialize/text.js":
34277 /*!************************************************************!*\
34278 !*** ../node_modules/micromark/dev/lib/initialize/text.js ***!
34279 \************************************************************/
34280 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34281
34282 "use strict";
34283 __webpack_require__.r(__webpack_exports__);
34284 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34285 /* harmony export */ resolver: () => (/* binding */ resolver),
34286 /* harmony export */ string: () => (/* binding */ string),
34287 /* harmony export */ text: () => (/* binding */ text)
34288 /* harmony export */ });
34289 /* 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");
34290 /* 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");
34291 /* 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");
34292 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34293 /**
34294 * @typedef {import('micromark-util-types').Code} Code
34295 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34296 * @typedef {import('micromark-util-types').Initializer} Initializer
34297 * @typedef {import('micromark-util-types').Resolver} Resolver
34298 * @typedef {import('micromark-util-types').State} State
34299 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34300 */
34301
34302
34303
34304
34305
34306
34307 const resolver = {resolveAll: createResolver()}
34308 const string = initializeFactory('string')
34309 const text = initializeFactory('text')
34310
34311 /**
34312 * @param {'string' | 'text'} field
34313 * @returns {InitialConstruct}
34314 */
34315 function initializeFactory(field) {
34316 return {
34317 tokenize: initializeText,
34318 resolveAll: createResolver(
34319 field === 'text' ? resolveAllLineSuffixes : undefined
34320 )
34321 }
34322
34323 /**
34324 * @this {TokenizeContext}
34325 * @type {Initializer}
34326 */
34327 function initializeText(effects) {
34328 const self = this
34329 const constructs = this.parser.constructs[field]
34330 const text = effects.attempt(constructs, start, notText)
34331
34332 return start
34333
34334 /** @type {State} */
34335 function start(code) {
34336 return atBreak(code) ? text(code) : notText(code)
34337 }
34338
34339 /** @type {State} */
34340 function notText(code) {
34341 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34342 effects.consume(code)
34343 return
34344 }
34345
34346 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34347 effects.consume(code)
34348 return data
34349 }
34350
34351 /** @type {State} */
34352 function data(code) {
34353 if (atBreak(code)) {
34354 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34355 return text(code)
34356 }
34357
34358 // Data.
34359 effects.consume(code)
34360 return data
34361 }
34362
34363 /**
34364 * @param {Code} code
34365 * @returns {boolean}
34366 */
34367 function atBreak(code) {
34368 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34369 return true
34370 }
34371
34372 const list = constructs[code]
34373 let index = -1
34374
34375 if (list) {
34376 // Always populated by defaults.
34377 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(Array.isArray(list), 'expected `disable.null` to be populated')
34378
34379 while (++index < list.length) {
34380 const item = list[index]
34381 if (!item.previous || item.previous.call(self, self.previous)) {
34382 return true
34383 }
34384 }
34385 }
34386
34387 return false
34388 }
34389 }
34390 }
34391
34392 /**
34393 * @param {Resolver | undefined} [extraResolver]
34394 * @returns {Resolver}
34395 */
34396 function createResolver(extraResolver) {
34397 return resolveAllText
34398
34399 /** @type {Resolver} */
34400 function resolveAllText(events, context) {
34401 let index = -1
34402 /** @type {number | undefined} */
34403 let enter
34404
34405 // A rather boring computation (to merge adjacent `data` events) which
34406 // improves mm performance by 29%.
34407 while (++index <= events.length) {
34408 if (enter === undefined) {
34409 if (events[index] && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34410 enter = index
34411 index++
34412 }
34413 } else if (!events[index] || events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34414 // Don’t do anything if there is one data token.
34415 if (index !== enter + 2) {
34416 events[enter][1].end = events[index - 1][1].end
34417 events.splice(enter + 2, index - enter - 2)
34418 index = enter + 2
34419 }
34420
34421 enter = undefined
34422 }
34423 }
34424
34425 return extraResolver ? extraResolver(events, context) : events
34426 }
34427 }
34428
34429 /**
34430 * A rather ugly set of instructions which again looks at chunks in the input
34431 * stream.
34432 * The reason to do this here is that it is *much* faster to parse in reverse.
34433 * And that we can’t hook into `null` to split the line suffix before an EOF.
34434 * To do: figure out if we can make this into a clean utility, or even in core.
34435 * As it will be useful for GFMs literal autolink extension (and maybe even
34436 * tables?)
34437 *
34438 * @type {Resolver}
34439 */
34440 function resolveAllLineSuffixes(events, context) {
34441 let eventIndex = 0 // Skip first.
34442
34443 while (++eventIndex <= events.length) {
34444 if (
34445 (eventIndex === events.length ||
34446 events[eventIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding) &&
34447 events[eventIndex - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data
34448 ) {
34449 const data = events[eventIndex - 1][1]
34450 const chunks = context.sliceStream(data)
34451 let index = chunks.length
34452 let bufferIndex = -1
34453 let size = 0
34454 /** @type {boolean | undefined} */
34455 let tabs
34456
34457 while (index--) {
34458 const chunk = chunks[index]
34459
34460 if (typeof chunk === 'string') {
34461 bufferIndex = chunk.length
34462
34463 while (chunk.charCodeAt(bufferIndex - 1) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space) {
34464 size++
34465 bufferIndex--
34466 }
34467
34468 if (bufferIndex) break
34469 bufferIndex = -1
34470 }
34471 // Number
34472 else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab) {
34473 tabs = true
34474 size++
34475 } else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace) {
34476 // Empty
34477 } else {
34478 // Replacement character, exit.
34479 index++
34480 break
34481 }
34482 }
34483
34484 if (size) {
34485 const token = {
34486 type:
34487 eventIndex === events.length ||
34488 tabs ||
34489 size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.hardBreakPrefixSizeMin
34490 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineSuffix
34491 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakTrailing,
34492 start: {
34493 line: data.end.line,
34494 column: data.end.column - size,
34495 offset: data.end.offset - size,
34496 _index: data.start._index + index,
34497 _bufferIndex: index
34498 ? bufferIndex
34499 : data.start._bufferIndex + bufferIndex
34500 },
34501 end: Object.assign({}, data.end)
34502 }
34503
34504 data.end = Object.assign({}, token.start)
34505
34506 if (data.start.offset === data.end.offset) {
34507 Object.assign(data, token)
34508 } else {
34509 events.splice(
34510 eventIndex,
34511 0,
34512 ['enter', token, context],
34513 ['exit', token, context]
34514 )
34515 eventIndex += 2
34516 }
34517 }
34518
34519 eventIndex++
34520 }
34521 }
34522
34523 return events
34524 }
34525
34526
34527 /***/ }),
34528
34529 /***/ "../node_modules/micromark/dev/lib/parse.js":
34530 /*!**************************************************!*\
34531 !*** ../node_modules/micromark/dev/lib/parse.js ***!
34532 \**************************************************/
34533 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34534
34535 "use strict";
34536 __webpack_require__.r(__webpack_exports__);
34537 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34538 /* harmony export */ parse: () => (/* binding */ parse)
34539 /* harmony export */ });
34540 /* 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");
34541 /* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/content.js */ "../node_modules/micromark/dev/lib/initialize/content.js");
34542 /* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/document.js */ "../node_modules/micromark/dev/lib/initialize/document.js");
34543 /* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/flow.js */ "../node_modules/micromark/dev/lib/initialize/flow.js");
34544 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
34545 /* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-tokenizer.js */ "../node_modules/micromark/dev/lib/create-tokenizer.js");
34546 /* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructs.js */ "../node_modules/micromark/dev/lib/constructs.js");
34547 /**
34548 * @typedef {import('micromark-util-types').Create} Create
34549 * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
34550 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34551 * @typedef {import('micromark-util-types').ParseContext} ParseContext
34552 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
34553 */
34554
34555
34556
34557
34558
34559
34560
34561
34562
34563 /**
34564 * @param {ParseOptions | null | undefined} [options]
34565 * @returns {ParseContext}
34566 */
34567 function parse(options) {
34568 const settings = options || {}
34569 const constructs = /** @type {FullNormalizedExtension} */ (
34570 (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([_constructs_js__WEBPACK_IMPORTED_MODULE_1__, ...(settings.extensions || [])])
34571 )
34572
34573 /** @type {ParseContext} */
34574 const parser = {
34575 defined: [],
34576 lazy: {},
34577 constructs,
34578 content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_2__.content),
34579 document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_3__.document),
34580 flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__.flow),
34581 string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.string),
34582 text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.text)
34583 }
34584
34585 return parser
34586
34587 /**
34588 * @param {InitialConstruct} initial
34589 */
34590 function create(initial) {
34591 return creator
34592 /** @type {Create} */
34593 function creator(from) {
34594 return (0,_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__.createTokenizer)(parser, initial, from)
34595 }
34596 }
34597 }
34598
34599
34600 /***/ }),
34601
34602 /***/ "../node_modules/micromark/dev/lib/postprocess.js":
34603 /*!********************************************************!*\
34604 !*** ../node_modules/micromark/dev/lib/postprocess.js ***!
34605 \********************************************************/
34606 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34607
34608 "use strict";
34609 __webpack_require__.r(__webpack_exports__);
34610 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34611 /* harmony export */ postprocess: () => (/* binding */ postprocess)
34612 /* harmony export */ });
34613 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
34614 /**
34615 * @typedef {import('micromark-util-types').Event} Event
34616 */
34617
34618
34619
34620 /**
34621 * @param {Array<Event>} events
34622 * @returns {Array<Event>}
34623 */
34624 function postprocess(events) {
34625 while (!(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events)) {
34626 // Empty
34627 }
34628
34629 return events
34630 }
34631
34632
34633 /***/ }),
34634
34635 /***/ "../node_modules/micromark/dev/lib/preprocess.js":
34636 /*!*******************************************************!*\
34637 !*** ../node_modules/micromark/dev/lib/preprocess.js ***!
34638 \*******************************************************/
34639 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34640
34641 "use strict";
34642 __webpack_require__.r(__webpack_exports__);
34643 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34644 /* harmony export */ preprocess: () => (/* binding */ preprocess)
34645 /* harmony export */ });
34646 /* 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");
34647 /* 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");
34648 /**
34649 * @typedef {import('micromark-util-types').Chunk} Chunk
34650 * @typedef {import('micromark-util-types').Code} Code
34651 * @typedef {import('micromark-util-types').Encoding} Encoding
34652 * @typedef {import('micromark-util-types').Value} Value
34653 */
34654
34655 /**
34656 * @callback Preprocessor
34657 * @param {Value} value
34658 * @param {Encoding | null | undefined} [encoding]
34659 * @param {boolean | null | undefined} [end=false]
34660 * @returns {Array<Chunk>}
34661 */
34662
34663
34664
34665
34666 const search = /[\0\t\n\r]/g
34667
34668 /**
34669 * @returns {Preprocessor}
34670 */
34671 function preprocess() {
34672 let column = 1
34673 let buffer = ''
34674 /** @type {boolean | undefined} */
34675 let start = true
34676 /** @type {boolean | undefined} */
34677 let atCarriageReturn
34678
34679 return preprocessor
34680
34681 /** @type {Preprocessor} */
34682 function preprocessor(value, encoding, end) {
34683 /** @type {Array<Chunk>} */
34684 const chunks = []
34685 /** @type {RegExpMatchArray | null} */
34686 let match
34687 /** @type {number} */
34688 let next
34689 /** @type {number} */
34690 let startPosition
34691 /** @type {number} */
34692 let endPosition
34693 /** @type {Code} */
34694 let code
34695
34696 // @ts-expect-error `Buffer` does allow an encoding.
34697 value = buffer + value.toString(encoding)
34698 startPosition = 0
34699 buffer = ''
34700
34701 if (start) {
34702 // To do: `markdown-rs` actually parses BOMs (byte order mark).
34703 if (value.charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.byteOrderMarker) {
34704 startPosition++
34705 }
34706
34707 start = undefined
34708 }
34709
34710 while (startPosition < value.length) {
34711 search.lastIndex = startPosition
34712 match = search.exec(value)
34713 endPosition =
34714 match && match.index !== undefined ? match.index : value.length
34715 code = value.charCodeAt(endPosition)
34716
34717 if (!match) {
34718 buffer = value.slice(startPosition)
34719 break
34720 }
34721
34722 if (
34723 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf &&
34724 startPosition === endPosition &&
34725 atCarriageReturn
34726 ) {
34727 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed)
34728 atCarriageReturn = undefined
34729 } else {
34730 if (atCarriageReturn) {
34731 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34732 atCarriageReturn = undefined
34733 }
34734
34735 if (startPosition < endPosition) {
34736 chunks.push(value.slice(startPosition, endPosition))
34737 column += endPosition - startPosition
34738 }
34739
34740 switch (code) {
34741 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.nul: {
34742 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.replacementCharacter)
34743 column++
34744
34745 break
34746 }
34747
34748 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht: {
34749 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
34750 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab)
34751 while (column++ < next) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace)
34752
34753 break
34754 }
34755
34756 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf: {
34757 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed)
34758 column = 1
34759
34760 break
34761 }
34762
34763 default: {
34764 atCarriageReturn = true
34765 column = 1
34766 }
34767 }
34768 }
34769
34770 startPosition = endPosition + 1
34771 }
34772
34773 if (end) {
34774 if (atCarriageReturn) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
34775 if (buffer) chunks.push(buffer)
34776 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof)
34777 }
34778
34779 return chunks
34780 }
34781 }
34782
34783
34784 /***/ }),
34785
34786 /***/ "../node_modules/property-information/index.js":
34787 /*!*****************************************************!*\
34788 !*** ../node_modules/property-information/index.js ***!
34789 \*****************************************************/
34790 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34791
34792 "use strict";
34793 __webpack_require__.r(__webpack_exports__);
34794 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34795 /* harmony export */ find: () => (/* reexport safe */ _lib_find_js__WEBPACK_IMPORTED_MODULE_0__.find),
34796 /* harmony export */ hastToReact: () => (/* reexport safe */ _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__.hastToReact),
34797 /* harmony export */ html: () => (/* binding */ html),
34798 /* harmony export */ normalize: () => (/* reexport safe */ _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__.normalize),
34799 /* harmony export */ svg: () => (/* binding */ svg)
34800 /* harmony export */ });
34801 /* 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");
34802 /* harmony import */ var _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/xlink.js */ "../node_modules/property-information/lib/xlink.js");
34803 /* harmony import */ var _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/xml.js */ "../node_modules/property-information/lib/xml.js");
34804 /* harmony import */ var _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/xmlns.js */ "../node_modules/property-information/lib/xmlns.js");
34805 /* harmony import */ var _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/aria.js */ "../node_modules/property-information/lib/aria.js");
34806 /* harmony import */ var _lib_html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/html.js */ "../node_modules/property-information/lib/html.js");
34807 /* harmony import */ var _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/svg.js */ "../node_modules/property-information/lib/svg.js");
34808 /* harmony import */ var _lib_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/find.js */ "../node_modules/property-information/lib/find.js");
34809 /* 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");
34810 /* harmony import */ var _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/normalize.js */ "../node_modules/property-information/lib/normalize.js");
34811 /**
34812 * @typedef {import('./lib/util/info.js').Info} Info
34813 * @typedef {import('./lib/util/schema.js').Schema} Schema
34814 */
34815
34816
34817
34818
34819
34820
34821
34822
34823
34824
34825
34826
34827 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')
34828 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')
34829
34830
34831 /***/ }),
34832
34833 /***/ "../node_modules/property-information/lib/aria.js":
34834 /*!********************************************************!*\
34835 !*** ../node_modules/property-information/lib/aria.js ***!
34836 \********************************************************/
34837 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34838
34839 "use strict";
34840 __webpack_require__.r(__webpack_exports__);
34841 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34842 /* harmony export */ aria: () => (/* binding */ aria)
34843 /* harmony export */ });
34844 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
34845 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
34846
34847
34848
34849 const aria = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
34850 transform(_, prop) {
34851 return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()
34852 },
34853 properties: {
34854 ariaActiveDescendant: null,
34855 ariaAtomic: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34856 ariaAutoComplete: null,
34857 ariaBusy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34858 ariaChecked: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34859 ariaColCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34860 ariaColIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34861 ariaColSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34862 ariaControls: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34863 ariaCurrent: null,
34864 ariaDescribedBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34865 ariaDetails: null,
34866 ariaDisabled: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34867 ariaDropEffect: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34868 ariaErrorMessage: null,
34869 ariaExpanded: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34870 ariaFlowTo: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34871 ariaGrabbed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34872 ariaHasPopup: null,
34873 ariaHidden: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34874 ariaInvalid: null,
34875 ariaKeyShortcuts: null,
34876 ariaLabel: null,
34877 ariaLabelledBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34878 ariaLevel: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34879 ariaLive: null,
34880 ariaModal: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34881 ariaMultiLine: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34882 ariaMultiSelectable: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34883 ariaOrientation: null,
34884 ariaOwns: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34885 ariaPlaceholder: null,
34886 ariaPosInSet: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34887 ariaPressed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34888 ariaReadOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34889 ariaRelevant: null,
34890 ariaRequired: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34891 ariaRoleDescription: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
34892 ariaRowCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34893 ariaRowIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34894 ariaRowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34895 ariaSelected: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
34896 ariaSetSize: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34897 ariaSort: null,
34898 ariaValueMax: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34899 ariaValueMin: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34900 ariaValueNow: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
34901 ariaValueText: null,
34902 role: null
34903 }
34904 })
34905
34906
34907 /***/ }),
34908
34909 /***/ "../node_modules/property-information/lib/find.js":
34910 /*!********************************************************!*\
34911 !*** ../node_modules/property-information/lib/find.js ***!
34912 \********************************************************/
34913 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34914
34915 "use strict";
34916 __webpack_require__.r(__webpack_exports__);
34917 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34918 /* harmony export */ find: () => (/* binding */ find)
34919 /* harmony export */ });
34920 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize.js */ "../node_modules/property-information/lib/normalize.js");
34921 /* 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");
34922 /* harmony import */ var _util_info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/info.js */ "../node_modules/property-information/lib/util/info.js");
34923 /**
34924 * @typedef {import('./util/schema.js').Schema} Schema
34925 */
34926
34927
34928
34929
34930
34931 const valid = /^data[-\w.:]+$/i
34932 const dash = /-[a-z]/g
34933 const cap = /[A-Z]/g
34934
34935 /**
34936 * @param {Schema} schema
34937 * @param {string} value
34938 * @returns {Info}
34939 */
34940 function find(schema, value) {
34941 const normal = (0,_normalize_js__WEBPACK_IMPORTED_MODULE_0__.normalize)(value)
34942 let prop = value
34943 let Type = _util_info_js__WEBPACK_IMPORTED_MODULE_1__.Info
34944
34945 if (normal in schema.normal) {
34946 return schema.property[schema.normal[normal]]
34947 }
34948
34949 if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {
34950 // Attribute or property.
34951 if (value.charAt(4) === '-') {
34952 // Turn it into a property.
34953 const rest = value.slice(5).replace(dash, camelcase)
34954 prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)
34955 } else {
34956 // Turn it into an attribute.
34957 const rest = value.slice(4)
34958
34959 if (!dash.test(rest)) {
34960 let dashes = rest.replace(cap, kebab)
34961
34962 if (dashes.charAt(0) !== '-') {
34963 dashes = '-' + dashes
34964 }
34965
34966 value = 'data' + dashes
34967 }
34968 }
34969
34970 Type = _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__.DefinedInfo
34971 }
34972
34973 return new Type(prop, value)
34974 }
34975
34976 /**
34977 * @param {string} $0
34978 * @returns {string}
34979 */
34980 function kebab($0) {
34981 return '-' + $0.toLowerCase()
34982 }
34983
34984 /**
34985 * @param {string} $0
34986 * @returns {string}
34987 */
34988 function camelcase($0) {
34989 return $0.charAt(1).toUpperCase()
34990 }
34991
34992
34993 /***/ }),
34994
34995 /***/ "../node_modules/property-information/lib/hast-to-react.js":
34996 /*!*****************************************************************!*\
34997 !*** ../node_modules/property-information/lib/hast-to-react.js ***!
34998 \*****************************************************************/
34999 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35000
35001 "use strict";
35002 __webpack_require__.r(__webpack_exports__);
35003 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35004 /* harmony export */ hastToReact: () => (/* binding */ hastToReact)
35005 /* harmony export */ });
35006 /**
35007 * `hast` is close to `React`, but differs in a couple of cases.
35008 *
35009 * To get a React property from a hast property, check if it is in
35010 * `hastToReact`, if it is, then use the corresponding value,
35011 * otherwise, use the hast property.
35012 *
35013 * @type {Record<string, string>}
35014 */
35015 const hastToReact = {
35016 classId: 'classID',
35017 dataType: 'datatype',
35018 itemId: 'itemID',
35019 strokeDashArray: 'strokeDasharray',
35020 strokeDashOffset: 'strokeDashoffset',
35021 strokeLineCap: 'strokeLinecap',
35022 strokeLineJoin: 'strokeLinejoin',
35023 strokeMiterLimit: 'strokeMiterlimit',
35024 typeOf: 'typeof',
35025 xLinkActuate: 'xlinkActuate',
35026 xLinkArcRole: 'xlinkArcrole',
35027 xLinkHref: 'xlinkHref',
35028 xLinkRole: 'xlinkRole',
35029 xLinkShow: 'xlinkShow',
35030 xLinkTitle: 'xlinkTitle',
35031 xLinkType: 'xlinkType',
35032 xmlnsXLink: 'xmlnsXlink'
35033 }
35034
35035
35036 /***/ }),
35037
35038 /***/ "../node_modules/property-information/lib/html.js":
35039 /*!********************************************************!*\
35040 !*** ../node_modules/property-information/lib/html.js ***!
35041 \********************************************************/
35042 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35043
35044 "use strict";
35045 __webpack_require__.r(__webpack_exports__);
35046 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35047 /* harmony export */ html: () => (/* binding */ html)
35048 /* harmony export */ });
35049 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35050 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35051 /* 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");
35052
35053
35054
35055
35056 const html = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35057 space: 'html',
35058 attributes: {
35059 acceptcharset: 'accept-charset',
35060 classname: 'class',
35061 htmlfor: 'for',
35062 httpequiv: 'http-equiv'
35063 },
35064 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
35065 mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],
35066 properties: {
35067 // Standard Properties.
35068 abbr: null,
35069 accept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35070 acceptCharset: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35071 accessKey: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35072 action: null,
35073 allow: null,
35074 allowFullScreen: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35075 allowPaymentRequest: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35076 allowUserMedia: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35077 alt: null,
35078 as: null,
35079 async: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35080 autoCapitalize: null,
35081 autoComplete: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35082 autoFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35083 autoPlay: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35084 capture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35085 charSet: null,
35086 checked: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35087 cite: null,
35088 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35089 cols: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35090 colSpan: null,
35091 content: null,
35092 contentEditable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35093 controls: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35094 controlsList: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35095 coords: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number | _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35096 crossOrigin: null,
35097 data: null,
35098 dateTime: null,
35099 decoding: null,
35100 default: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35101 defer: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35102 dir: null,
35103 dirName: null,
35104 disabled: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35105 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.overloadedBoolean,
35106 draggable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35107 encType: null,
35108 enterKeyHint: null,
35109 form: null,
35110 formAction: null,
35111 formEncType: null,
35112 formMethod: null,
35113 formNoValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35114 formTarget: null,
35115 headers: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35116 height: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35117 hidden: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35118 high: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35119 href: null,
35120 hrefLang: null,
35121 htmlFor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35122 httpEquiv: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35123 id: null,
35124 imageSizes: null,
35125 imageSrcSet: null,
35126 inputMode: null,
35127 integrity: null,
35128 is: null,
35129 isMap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35130 itemId: null,
35131 itemProp: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35132 itemRef: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35133 itemScope: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35134 itemType: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35135 kind: null,
35136 label: null,
35137 lang: null,
35138 language: null,
35139 list: null,
35140 loading: null,
35141 loop: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35142 low: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35143 manifest: null,
35144 max: null,
35145 maxLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35146 media: null,
35147 method: null,
35148 min: null,
35149 minLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35150 multiple: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35151 muted: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35152 name: null,
35153 nonce: null,
35154 noModule: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35155 noValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35156 onAbort: null,
35157 onAfterPrint: null,
35158 onAuxClick: null,
35159 onBeforeMatch: null,
35160 onBeforePrint: null,
35161 onBeforeUnload: null,
35162 onBlur: null,
35163 onCancel: null,
35164 onCanPlay: null,
35165 onCanPlayThrough: null,
35166 onChange: null,
35167 onClick: null,
35168 onClose: null,
35169 onContextLost: null,
35170 onContextMenu: null,
35171 onContextRestored: null,
35172 onCopy: null,
35173 onCueChange: null,
35174 onCut: null,
35175 onDblClick: null,
35176 onDrag: null,
35177 onDragEnd: null,
35178 onDragEnter: null,
35179 onDragExit: null,
35180 onDragLeave: null,
35181 onDragOver: null,
35182 onDragStart: null,
35183 onDrop: null,
35184 onDurationChange: null,
35185 onEmptied: null,
35186 onEnded: null,
35187 onError: null,
35188 onFocus: null,
35189 onFormData: null,
35190 onHashChange: null,
35191 onInput: null,
35192 onInvalid: null,
35193 onKeyDown: null,
35194 onKeyPress: null,
35195 onKeyUp: null,
35196 onLanguageChange: null,
35197 onLoad: null,
35198 onLoadedData: null,
35199 onLoadedMetadata: null,
35200 onLoadEnd: null,
35201 onLoadStart: null,
35202 onMessage: null,
35203 onMessageError: null,
35204 onMouseDown: null,
35205 onMouseEnter: null,
35206 onMouseLeave: null,
35207 onMouseMove: null,
35208 onMouseOut: null,
35209 onMouseOver: null,
35210 onMouseUp: null,
35211 onOffline: null,
35212 onOnline: null,
35213 onPageHide: null,
35214 onPageShow: null,
35215 onPaste: null,
35216 onPause: null,
35217 onPlay: null,
35218 onPlaying: null,
35219 onPopState: null,
35220 onProgress: null,
35221 onRateChange: null,
35222 onRejectionHandled: null,
35223 onReset: null,
35224 onResize: null,
35225 onScroll: null,
35226 onScrollEnd: null,
35227 onSecurityPolicyViolation: null,
35228 onSeeked: null,
35229 onSeeking: null,
35230 onSelect: null,
35231 onSlotChange: null,
35232 onStalled: null,
35233 onStorage: null,
35234 onSubmit: null,
35235 onSuspend: null,
35236 onTimeUpdate: null,
35237 onToggle: null,
35238 onUnhandledRejection: null,
35239 onUnload: null,
35240 onVolumeChange: null,
35241 onWaiting: null,
35242 onWheel: null,
35243 open: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35244 optimum: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35245 pattern: null,
35246 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35247 placeholder: null,
35248 playsInline: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35249 poster: null,
35250 preload: null,
35251 readOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35252 referrerPolicy: null,
35253 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35254 required: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35255 reversed: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35256 rows: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35257 rowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35258 sandbox: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35259 scope: null,
35260 scoped: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35261 seamless: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35262 selected: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35263 shape: null,
35264 size: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35265 sizes: null,
35266 slot: null,
35267 span: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35268 spellCheck: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35269 src: null,
35270 srcDoc: null,
35271 srcLang: null,
35272 srcSet: null,
35273 start: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35274 step: null,
35275 style: null,
35276 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35277 target: null,
35278 title: null,
35279 translate: null,
35280 type: null,
35281 typeMustMatch: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35282 useMap: null,
35283 value: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35284 width: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35285 wrap: null,
35286
35287 // Legacy.
35288 // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
35289 align: null, // Several. Use CSS `text-align` instead,
35290 aLink: null, // `<body>`. Use CSS `a:active {color}` instead
35291 archive: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated, // `<object>`. List of URIs to archives
35292 axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`
35293 background: null, // `<body>`. Use CSS `background-image` instead
35294 bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead
35295 border: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<table>`. Use CSS `border-width` instead,
35296 borderColor: null, // `<table>`. Use CSS `border-color` instead,
35297 bottomMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35298 cellPadding: null, // `<table>`
35299 cellSpacing: null, // `<table>`
35300 char: null, // Several table elements. When `align=char`, sets the character to align on
35301 charOff: null, // Several table elements. When `char`, offsets the alignment
35302 classId: null, // `<object>`
35303 clear: null, // `<br>`. Use CSS `clear` instead
35304 code: null, // `<object>`
35305 codeBase: null, // `<object>`
35306 codeType: null, // `<object>`
35307 color: null, // `<font>` and `<hr>`. Use CSS instead
35308 compact: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // Lists. Use CSS to reduce space between items instead
35309 declare: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<object>`
35310 event: null, // `<script>`
35311 face: null, // `<font>`. Use CSS instead
35312 frame: null, // `<table>`
35313 frameBorder: null, // `<iframe>`. Use CSS `border` instead
35314 hSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35315 leftMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35316 link: null, // `<body>`. Use CSS `a:link {color: *}` instead
35317 longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
35318 lowSrc: null, // `<img>`. Use a `<picture>`
35319 marginHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35320 marginWidth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35321 noResize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<frame>`
35322 noHref: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<area>`. Use no href instead of an explicit `nohref`
35323 noShade: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<hr>`. Use background-color and height instead of borders
35324 noWrap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<td>` and `<th>`
35325 object: null, // `<applet>`
35326 profile: null, // `<head>`
35327 prompt: null, // `<isindex>`
35328 rev: null, // `<link>`
35329 rightMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35330 rules: null, // `<table>`
35331 scheme: null, // `<meta>`
35332 scrolling: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish, // `<frame>`. Use overflow in the child context
35333 standby: null, // `<object>`
35334 summary: null, // `<table>`
35335 text: null, // `<body>`. Use CSS `color` instead
35336 topMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35337 valueType: null, // `<param>`
35338 version: null, // `<html>`. Use a doctype.
35339 vAlign: null, // Several. Use CSS `vertical-align` instead
35340 vLink: null, // `<body>`. Use CSS `a:visited {color}` instead
35341 vSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35342
35343 // Non-standard Properties.
35344 allowTransparency: null,
35345 autoCorrect: null,
35346 autoSave: null,
35347 disablePictureInPicture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35348 disableRemotePlayback: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35349 prefix: null,
35350 property: null,
35351 results: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35352 security: null,
35353 unselectable: null
35354 }
35355 })
35356
35357
35358 /***/ }),
35359
35360 /***/ "../node_modules/property-information/lib/normalize.js":
35361 /*!*************************************************************!*\
35362 !*** ../node_modules/property-information/lib/normalize.js ***!
35363 \*************************************************************/
35364 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35365
35366 "use strict";
35367 __webpack_require__.r(__webpack_exports__);
35368 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35369 /* harmony export */ normalize: () => (/* binding */ normalize)
35370 /* harmony export */ });
35371 /**
35372 * @param {string} value
35373 * @returns {string}
35374 */
35375 function normalize(value) {
35376 return value.toLowerCase()
35377 }
35378
35379
35380 /***/ }),
35381
35382 /***/ "../node_modules/property-information/lib/svg.js":
35383 /*!*******************************************************!*\
35384 !*** ../node_modules/property-information/lib/svg.js ***!
35385 \*******************************************************/
35386 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35387
35388 "use strict";
35389 __webpack_require__.r(__webpack_exports__);
35390 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35391 /* harmony export */ svg: () => (/* binding */ svg)
35392 /* harmony export */ });
35393 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35394 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35395 /* 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");
35396
35397
35398
35399
35400 const svg = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35401 space: 'svg',
35402 attributes: {
35403 accentHeight: 'accent-height',
35404 alignmentBaseline: 'alignment-baseline',
35405 arabicForm: 'arabic-form',
35406 baselineShift: 'baseline-shift',
35407 capHeight: 'cap-height',
35408 className: 'class',
35409 clipPath: 'clip-path',
35410 clipRule: 'clip-rule',
35411 colorInterpolation: 'color-interpolation',
35412 colorInterpolationFilters: 'color-interpolation-filters',
35413 colorProfile: 'color-profile',
35414 colorRendering: 'color-rendering',
35415 crossOrigin: 'crossorigin',
35416 dataType: 'datatype',
35417 dominantBaseline: 'dominant-baseline',
35418 enableBackground: 'enable-background',
35419 fillOpacity: 'fill-opacity',
35420 fillRule: 'fill-rule',
35421 floodColor: 'flood-color',
35422 floodOpacity: 'flood-opacity',
35423 fontFamily: 'font-family',
35424 fontSize: 'font-size',
35425 fontSizeAdjust: 'font-size-adjust',
35426 fontStretch: 'font-stretch',
35427 fontStyle: 'font-style',
35428 fontVariant: 'font-variant',
35429 fontWeight: 'font-weight',
35430 glyphName: 'glyph-name',
35431 glyphOrientationHorizontal: 'glyph-orientation-horizontal',
35432 glyphOrientationVertical: 'glyph-orientation-vertical',
35433 hrefLang: 'hreflang',
35434 horizAdvX: 'horiz-adv-x',
35435 horizOriginX: 'horiz-origin-x',
35436 horizOriginY: 'horiz-origin-y',
35437 imageRendering: 'image-rendering',
35438 letterSpacing: 'letter-spacing',
35439 lightingColor: 'lighting-color',
35440 markerEnd: 'marker-end',
35441 markerMid: 'marker-mid',
35442 markerStart: 'marker-start',
35443 navDown: 'nav-down',
35444 navDownLeft: 'nav-down-left',
35445 navDownRight: 'nav-down-right',
35446 navLeft: 'nav-left',
35447 navNext: 'nav-next',
35448 navPrev: 'nav-prev',
35449 navRight: 'nav-right',
35450 navUp: 'nav-up',
35451 navUpLeft: 'nav-up-left',
35452 navUpRight: 'nav-up-right',
35453 onAbort: 'onabort',
35454 onActivate: 'onactivate',
35455 onAfterPrint: 'onafterprint',
35456 onBeforePrint: 'onbeforeprint',
35457 onBegin: 'onbegin',
35458 onCancel: 'oncancel',
35459 onCanPlay: 'oncanplay',
35460 onCanPlayThrough: 'oncanplaythrough',
35461 onChange: 'onchange',
35462 onClick: 'onclick',
35463 onClose: 'onclose',
35464 onCopy: 'oncopy',
35465 onCueChange: 'oncuechange',
35466 onCut: 'oncut',
35467 onDblClick: 'ondblclick',
35468 onDrag: 'ondrag',
35469 onDragEnd: 'ondragend',
35470 onDragEnter: 'ondragenter',
35471 onDragExit: 'ondragexit',
35472 onDragLeave: 'ondragleave',
35473 onDragOver: 'ondragover',
35474 onDragStart: 'ondragstart',
35475 onDrop: 'ondrop',
35476 onDurationChange: 'ondurationchange',
35477 onEmptied: 'onemptied',
35478 onEnd: 'onend',
35479 onEnded: 'onended',
35480 onError: 'onerror',
35481 onFocus: 'onfocus',
35482 onFocusIn: 'onfocusin',
35483 onFocusOut: 'onfocusout',
35484 onHashChange: 'onhashchange',
35485 onInput: 'oninput',
35486 onInvalid: 'oninvalid',
35487 onKeyDown: 'onkeydown',
35488 onKeyPress: 'onkeypress',
35489 onKeyUp: 'onkeyup',
35490 onLoad: 'onload',
35491 onLoadedData: 'onloadeddata',
35492 onLoadedMetadata: 'onloadedmetadata',
35493 onLoadStart: 'onloadstart',
35494 onMessage: 'onmessage',
35495 onMouseDown: 'onmousedown',
35496 onMouseEnter: 'onmouseenter',
35497 onMouseLeave: 'onmouseleave',
35498 onMouseMove: 'onmousemove',
35499 onMouseOut: 'onmouseout',
35500 onMouseOver: 'onmouseover',
35501 onMouseUp: 'onmouseup',
35502 onMouseWheel: 'onmousewheel',
35503 onOffline: 'onoffline',
35504 onOnline: 'ononline',
35505 onPageHide: 'onpagehide',
35506 onPageShow: 'onpageshow',
35507 onPaste: 'onpaste',
35508 onPause: 'onpause',
35509 onPlay: 'onplay',
35510 onPlaying: 'onplaying',
35511 onPopState: 'onpopstate',
35512 onProgress: 'onprogress',
35513 onRateChange: 'onratechange',
35514 onRepeat: 'onrepeat',
35515 onReset: 'onreset',
35516 onResize: 'onresize',
35517 onScroll: 'onscroll',
35518 onSeeked: 'onseeked',
35519 onSeeking: 'onseeking',
35520 onSelect: 'onselect',
35521 onShow: 'onshow',
35522 onStalled: 'onstalled',
35523 onStorage: 'onstorage',
35524 onSubmit: 'onsubmit',
35525 onSuspend: 'onsuspend',
35526 onTimeUpdate: 'ontimeupdate',
35527 onToggle: 'ontoggle',
35528 onUnload: 'onunload',
35529 onVolumeChange: 'onvolumechange',
35530 onWaiting: 'onwaiting',
35531 onZoom: 'onzoom',
35532 overlinePosition: 'overline-position',
35533 overlineThickness: 'overline-thickness',
35534 paintOrder: 'paint-order',
35535 panose1: 'panose-1',
35536 pointerEvents: 'pointer-events',
35537 referrerPolicy: 'referrerpolicy',
35538 renderingIntent: 'rendering-intent',
35539 shapeRendering: 'shape-rendering',
35540 stopColor: 'stop-color',
35541 stopOpacity: 'stop-opacity',
35542 strikethroughPosition: 'strikethrough-position',
35543 strikethroughThickness: 'strikethrough-thickness',
35544 strokeDashArray: 'stroke-dasharray',
35545 strokeDashOffset: 'stroke-dashoffset',
35546 strokeLineCap: 'stroke-linecap',
35547 strokeLineJoin: 'stroke-linejoin',
35548 strokeMiterLimit: 'stroke-miterlimit',
35549 strokeOpacity: 'stroke-opacity',
35550 strokeWidth: 'stroke-width',
35551 tabIndex: 'tabindex',
35552 textAnchor: 'text-anchor',
35553 textDecoration: 'text-decoration',
35554 textRendering: 'text-rendering',
35555 typeOf: 'typeof',
35556 underlinePosition: 'underline-position',
35557 underlineThickness: 'underline-thickness',
35558 unicodeBidi: 'unicode-bidi',
35559 unicodeRange: 'unicode-range',
35560 unitsPerEm: 'units-per-em',
35561 vAlphabetic: 'v-alphabetic',
35562 vHanging: 'v-hanging',
35563 vIdeographic: 'v-ideographic',
35564 vMathematical: 'v-mathematical',
35565 vectorEffect: 'vector-effect',
35566 vertAdvY: 'vert-adv-y',
35567 vertOriginX: 'vert-origin-x',
35568 vertOriginY: 'vert-origin-y',
35569 wordSpacing: 'word-spacing',
35570 writingMode: 'writing-mode',
35571 xHeight: 'x-height',
35572 // These were camelcased in Tiny. Now lowercased in SVG 2
35573 playbackOrder: 'playbackorder',
35574 timelineBegin: 'timelinebegin'
35575 },
35576 transform: _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseSensitiveTransform,
35577 properties: {
35578 about: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35579 accentHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35580 accumulate: null,
35581 additive: null,
35582 alignmentBaseline: null,
35583 alphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35584 amplitude: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35585 arabicForm: null,
35586 ascent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35587 attributeName: null,
35588 attributeType: null,
35589 azimuth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35590 bandwidth: null,
35591 baselineShift: null,
35592 baseFrequency: null,
35593 baseProfile: null,
35594 bbox: null,
35595 begin: null,
35596 bias: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35597 by: null,
35598 calcMode: null,
35599 capHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35600 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35601 clip: null,
35602 clipPath: null,
35603 clipPathUnits: null,
35604 clipRule: null,
35605 color: null,
35606 colorInterpolation: null,
35607 colorInterpolationFilters: null,
35608 colorProfile: null,
35609 colorRendering: null,
35610 content: null,
35611 contentScriptType: null,
35612 contentStyleType: null,
35613 crossOrigin: null,
35614 cursor: null,
35615 cx: null,
35616 cy: null,
35617 d: null,
35618 dataType: null,
35619 defaultAction: null,
35620 descent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35621 diffuseConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35622 direction: null,
35623 display: null,
35624 dur: null,
35625 divisor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35626 dominantBaseline: null,
35627 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35628 dx: null,
35629 dy: null,
35630 edgeMode: null,
35631 editable: null,
35632 elevation: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35633 enableBackground: null,
35634 end: null,
35635 event: null,
35636 exponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35637 externalResourcesRequired: null,
35638 fill: null,
35639 fillOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35640 fillRule: null,
35641 filter: null,
35642 filterRes: null,
35643 filterUnits: null,
35644 floodColor: null,
35645 floodOpacity: null,
35646 focusable: null,
35647 focusHighlight: null,
35648 fontFamily: null,
35649 fontSize: null,
35650 fontSizeAdjust: null,
35651 fontStretch: null,
35652 fontStyle: null,
35653 fontVariant: null,
35654 fontWeight: null,
35655 format: null,
35656 fr: null,
35657 from: null,
35658 fx: null,
35659 fy: null,
35660 g1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35661 g2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35662 glyphName: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35663 glyphOrientationHorizontal: null,
35664 glyphOrientationVertical: null,
35665 glyphRef: null,
35666 gradientTransform: null,
35667 gradientUnits: null,
35668 handler: null,
35669 hanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35670 hatchContentUnits: null,
35671 hatchUnits: null,
35672 height: null,
35673 href: null,
35674 hrefLang: null,
35675 horizAdvX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35676 horizOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35677 horizOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35678 id: null,
35679 ideographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35680 imageRendering: null,
35681 initialVisibility: null,
35682 in: null,
35683 in2: null,
35684 intercept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35685 k: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35686 k1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35687 k2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35688 k3: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35689 k4: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35690 kernelMatrix: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35691 kernelUnitLength: null,
35692 keyPoints: null, // SEMI_COLON_SEPARATED
35693 keySplines: null, // SEMI_COLON_SEPARATED
35694 keyTimes: null, // SEMI_COLON_SEPARATED
35695 kerning: null,
35696 lang: null,
35697 lengthAdjust: null,
35698 letterSpacing: null,
35699 lightingColor: null,
35700 limitingConeAngle: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35701 local: null,
35702 markerEnd: null,
35703 markerMid: null,
35704 markerStart: null,
35705 markerHeight: null,
35706 markerUnits: null,
35707 markerWidth: null,
35708 mask: null,
35709 maskContentUnits: null,
35710 maskUnits: null,
35711 mathematical: null,
35712 max: null,
35713 media: null,
35714 mediaCharacterEncoding: null,
35715 mediaContentEncodings: null,
35716 mediaSize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35717 mediaTime: null,
35718 method: null,
35719 min: null,
35720 mode: null,
35721 name: null,
35722 navDown: null,
35723 navDownLeft: null,
35724 navDownRight: null,
35725 navLeft: null,
35726 navNext: null,
35727 navPrev: null,
35728 navRight: null,
35729 navUp: null,
35730 navUpLeft: null,
35731 navUpRight: null,
35732 numOctaves: null,
35733 observer: null,
35734 offset: null,
35735 onAbort: null,
35736 onActivate: null,
35737 onAfterPrint: null,
35738 onBeforePrint: null,
35739 onBegin: null,
35740 onCancel: null,
35741 onCanPlay: null,
35742 onCanPlayThrough: null,
35743 onChange: null,
35744 onClick: null,
35745 onClose: null,
35746 onCopy: null,
35747 onCueChange: null,
35748 onCut: null,
35749 onDblClick: null,
35750 onDrag: null,
35751 onDragEnd: null,
35752 onDragEnter: null,
35753 onDragExit: null,
35754 onDragLeave: null,
35755 onDragOver: null,
35756 onDragStart: null,
35757 onDrop: null,
35758 onDurationChange: null,
35759 onEmptied: null,
35760 onEnd: null,
35761 onEnded: null,
35762 onError: null,
35763 onFocus: null,
35764 onFocusIn: null,
35765 onFocusOut: null,
35766 onHashChange: null,
35767 onInput: null,
35768 onInvalid: null,
35769 onKeyDown: null,
35770 onKeyPress: null,
35771 onKeyUp: null,
35772 onLoad: null,
35773 onLoadedData: null,
35774 onLoadedMetadata: null,
35775 onLoadStart: null,
35776 onMessage: null,
35777 onMouseDown: null,
35778 onMouseEnter: null,
35779 onMouseLeave: null,
35780 onMouseMove: null,
35781 onMouseOut: null,
35782 onMouseOver: null,
35783 onMouseUp: null,
35784 onMouseWheel: null,
35785 onOffline: null,
35786 onOnline: null,
35787 onPageHide: null,
35788 onPageShow: null,
35789 onPaste: null,
35790 onPause: null,
35791 onPlay: null,
35792 onPlaying: null,
35793 onPopState: null,
35794 onProgress: null,
35795 onRateChange: null,
35796 onRepeat: null,
35797 onReset: null,
35798 onResize: null,
35799 onScroll: null,
35800 onSeeked: null,
35801 onSeeking: null,
35802 onSelect: null,
35803 onShow: null,
35804 onStalled: null,
35805 onStorage: null,
35806 onSubmit: null,
35807 onSuspend: null,
35808 onTimeUpdate: null,
35809 onToggle: null,
35810 onUnload: null,
35811 onVolumeChange: null,
35812 onWaiting: null,
35813 onZoom: null,
35814 opacity: null,
35815 operator: null,
35816 order: null,
35817 orient: null,
35818 orientation: null,
35819 origin: null,
35820 overflow: null,
35821 overlay: null,
35822 overlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35823 overlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35824 paintOrder: null,
35825 panose1: null,
35826 path: null,
35827 pathLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35828 patternContentUnits: null,
35829 patternTransform: null,
35830 patternUnits: null,
35831 phase: null,
35832 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35833 pitch: null,
35834 playbackOrder: null,
35835 pointerEvents: null,
35836 points: null,
35837 pointsAtX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35838 pointsAtY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35839 pointsAtZ: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35840 preserveAlpha: null,
35841 preserveAspectRatio: null,
35842 primitiveUnits: null,
35843 propagate: null,
35844 property: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35845 r: null,
35846 radius: null,
35847 referrerPolicy: null,
35848 refX: null,
35849 refY: null,
35850 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35851 rev: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35852 renderingIntent: null,
35853 repeatCount: null,
35854 repeatDur: null,
35855 requiredExtensions: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35856 requiredFeatures: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35857 requiredFonts: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35858 requiredFormats: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35859 resource: null,
35860 restart: null,
35861 result: null,
35862 rotate: null,
35863 rx: null,
35864 ry: null,
35865 scale: null,
35866 seed: null,
35867 shapeRendering: null,
35868 side: null,
35869 slope: null,
35870 snapshotTime: null,
35871 specularConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35872 specularExponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35873 spreadMethod: null,
35874 spacing: null,
35875 startOffset: null,
35876 stdDeviation: null,
35877 stemh: null,
35878 stemv: null,
35879 stitchTiles: null,
35880 stopColor: null,
35881 stopOpacity: null,
35882 strikethroughPosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35883 strikethroughThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35884 string: null,
35885 stroke: null,
35886 strokeDashArray: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35887 strokeDashOffset: null,
35888 strokeLineCap: null,
35889 strokeLineJoin: null,
35890 strokeMiterLimit: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35891 strokeOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35892 strokeWidth: null,
35893 style: null,
35894 surfaceScale: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35895 syncBehavior: null,
35896 syncBehaviorDefault: null,
35897 syncMaster: null,
35898 syncTolerance: null,
35899 syncToleranceDefault: null,
35900 systemLanguage: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35901 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35902 tableValues: null,
35903 target: null,
35904 targetX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35905 targetY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35906 textAnchor: null,
35907 textDecoration: null,
35908 textRendering: null,
35909 textLength: null,
35910 timelineBegin: null,
35911 title: null,
35912 transformBehavior: null,
35913 type: null,
35914 typeOf: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35915 to: null,
35916 transform: null,
35917 u1: null,
35918 u2: null,
35919 underlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35920 underlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35921 unicode: null,
35922 unicodeBidi: null,
35923 unicodeRange: null,
35924 unitsPerEm: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35925 values: null,
35926 vAlphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35927 vMathematical: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35928 vectorEffect: null,
35929 vHanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35930 vIdeographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35931 version: null,
35932 vertAdvY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35933 vertOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35934 vertOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35935 viewBox: null,
35936 viewTarget: null,
35937 visibility: null,
35938 width: null,
35939 widths: null,
35940 wordSpacing: null,
35941 writingMode: null,
35942 x: null,
35943 x1: null,
35944 x2: null,
35945 xChannelSelector: null,
35946 xHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35947 y: null,
35948 y1: null,
35949 y2: null,
35950 yChannelSelector: null,
35951 z: null,
35952 zoomAndPan: null
35953 }
35954 })
35955
35956
35957 /***/ }),
35958
35959 /***/ "../node_modules/property-information/lib/util/case-insensitive-transform.js":
35960 /*!***********************************************************************************!*\
35961 !*** ../node_modules/property-information/lib/util/case-insensitive-transform.js ***!
35962 \***********************************************************************************/
35963 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35964
35965 "use strict";
35966 __webpack_require__.r(__webpack_exports__);
35967 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35968 /* harmony export */ caseInsensitiveTransform: () => (/* binding */ caseInsensitiveTransform)
35969 /* harmony export */ });
35970 /* 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");
35971
35972
35973 /**
35974 * @param {Record<string, string>} attributes
35975 * @param {string} property
35976 * @returns {string}
35977 */
35978 function caseInsensitiveTransform(attributes, property) {
35979 return (0,_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__.caseSensitiveTransform)(attributes, property.toLowerCase())
35980 }
35981
35982
35983 /***/ }),
35984
35985 /***/ "../node_modules/property-information/lib/util/case-sensitive-transform.js":
35986 /*!*********************************************************************************!*\
35987 !*** ../node_modules/property-information/lib/util/case-sensitive-transform.js ***!
35988 \*********************************************************************************/
35989 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35990
35991 "use strict";
35992 __webpack_require__.r(__webpack_exports__);
35993 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35994 /* harmony export */ caseSensitiveTransform: () => (/* binding */ caseSensitiveTransform)
35995 /* harmony export */ });
35996 /**
35997 * @param {Record<string, string>} attributes
35998 * @param {string} attribute
35999 * @returns {string}
36000 */
36001 function caseSensitiveTransform(attributes, attribute) {
36002 return attribute in attributes ? attributes[attribute] : attribute
36003 }
36004
36005
36006 /***/ }),
36007
36008 /***/ "../node_modules/property-information/lib/util/create.js":
36009 /*!***************************************************************!*\
36010 !*** ../node_modules/property-information/lib/util/create.js ***!
36011 \***************************************************************/
36012 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36013
36014 "use strict";
36015 __webpack_require__.r(__webpack_exports__);
36016 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36017 /* harmony export */ create: () => (/* binding */ create)
36018 /* harmony export */ });
36019 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ "../node_modules/property-information/lib/normalize.js");
36020 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36021 /* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ "../node_modules/property-information/lib/util/defined-info.js");
36022 /**
36023 * @typedef {import('./schema.js').Properties} Properties
36024 * @typedef {import('./schema.js').Normal} Normal
36025 *
36026 * @typedef {Record<string, string>} Attributes
36027 *
36028 * @typedef {Object} Definition
36029 * @property {Record<string, number|null>} properties
36030 * @property {(attributes: Attributes, property: string) => string} transform
36031 * @property {string} [space]
36032 * @property {Attributes} [attributes]
36033 * @property {Array<string>} [mustUseProperty]
36034 */
36035
36036
36037
36038
36039
36040 const own = {}.hasOwnProperty
36041
36042 /**
36043 * @param {Definition} definition
36044 * @returns {Schema}
36045 */
36046 function create(definition) {
36047 /** @type {Properties} */
36048 const property = {}
36049 /** @type {Normal} */
36050 const normal = {}
36051 /** @type {string} */
36052 let prop
36053
36054 for (prop in definition.properties) {
36055 if (own.call(definition.properties, prop)) {
36056 const value = definition.properties[prop]
36057 const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(
36058 prop,
36059 definition.transform(definition.attributes || {}, prop),
36060 value,
36061 definition.space
36062 )
36063
36064 if (
36065 definition.mustUseProperty &&
36066 definition.mustUseProperty.includes(prop)
36067 ) {
36068 info.mustUseProperty = true
36069 }
36070
36071 property[prop] = info
36072
36073 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(prop)] = prop
36074 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = prop
36075 }
36076 }
36077
36078 return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(property, normal, definition.space)
36079 }
36080
36081
36082 /***/ }),
36083
36084 /***/ "../node_modules/property-information/lib/util/defined-info.js":
36085 /*!*********************************************************************!*\
36086 !*** ../node_modules/property-information/lib/util/defined-info.js ***!
36087 \*********************************************************************/
36088 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36089
36090 "use strict";
36091 __webpack_require__.r(__webpack_exports__);
36092 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36093 /* harmony export */ DefinedInfo: () => (/* binding */ DefinedInfo)
36094 /* harmony export */ });
36095 /* harmony import */ var _info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.js */ "../node_modules/property-information/lib/util/info.js");
36096 /* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ "../node_modules/property-information/lib/util/types.js");
36097
36098
36099
36100 /** @type {Array<keyof types>} */
36101 // @ts-expect-error: hush.
36102 const checks = Object.keys(_types_js__WEBPACK_IMPORTED_MODULE_0__)
36103
36104 class DefinedInfo extends _info_js__WEBPACK_IMPORTED_MODULE_1__.Info {
36105 /**
36106 * @constructor
36107 * @param {string} property
36108 * @param {string} attribute
36109 * @param {number|null} [mask]
36110 * @param {string} [space]
36111 */
36112 constructor(property, attribute, mask, space) {
36113 let index = -1
36114
36115 super(property, attribute)
36116
36117 mark(this, 'space', space)
36118
36119 if (typeof mask === 'number') {
36120 while (++index < checks.length) {
36121 const check = checks[index]
36122 mark(this, checks[index], (mask & _types_js__WEBPACK_IMPORTED_MODULE_0__[check]) === _types_js__WEBPACK_IMPORTED_MODULE_0__[check])
36123 }
36124 }
36125 }
36126 }
36127
36128 DefinedInfo.prototype.defined = true
36129
36130 /**
36131 * @param {DefinedInfo} values
36132 * @param {string} key
36133 * @param {unknown} value
36134 */
36135 function mark(values, key, value) {
36136 if (value) {
36137 // @ts-expect-error: assume `value` matches the expected value of `key`.
36138 values[key] = value
36139 }
36140 }
36141
36142
36143 /***/ }),
36144
36145 /***/ "../node_modules/property-information/lib/util/info.js":
36146 /*!*************************************************************!*\
36147 !*** ../node_modules/property-information/lib/util/info.js ***!
36148 \*************************************************************/
36149 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36150
36151 "use strict";
36152 __webpack_require__.r(__webpack_exports__);
36153 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36154 /* harmony export */ Info: () => (/* binding */ Info)
36155 /* harmony export */ });
36156 class Info {
36157 /**
36158 * @constructor
36159 * @param {string} property
36160 * @param {string} attribute
36161 */
36162 constructor(property, attribute) {
36163 /** @type {string} */
36164 this.property = property
36165 /** @type {string} */
36166 this.attribute = attribute
36167 }
36168 }
36169
36170 /** @type {string|null} */
36171 Info.prototype.space = null
36172 Info.prototype.boolean = false
36173 Info.prototype.booleanish = false
36174 Info.prototype.overloadedBoolean = false
36175 Info.prototype.number = false
36176 Info.prototype.commaSeparated = false
36177 Info.prototype.spaceSeparated = false
36178 Info.prototype.commaOrSpaceSeparated = false
36179 Info.prototype.mustUseProperty = false
36180 Info.prototype.defined = false
36181
36182
36183 /***/ }),
36184
36185 /***/ "../node_modules/property-information/lib/util/merge.js":
36186 /*!**************************************************************!*\
36187 !*** ../node_modules/property-information/lib/util/merge.js ***!
36188 \**************************************************************/
36189 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36190
36191 "use strict";
36192 __webpack_require__.r(__webpack_exports__);
36193 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36194 /* harmony export */ merge: () => (/* binding */ merge)
36195 /* harmony export */ });
36196 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36197 /**
36198 * @typedef {import('./schema.js').Properties} Properties
36199 * @typedef {import('./schema.js').Normal} Normal
36200 */
36201
36202
36203
36204 /**
36205 * @param {Schema[]} definitions
36206 * @param {string} [space]
36207 * @returns {Schema}
36208 */
36209 function merge(definitions, space) {
36210 /** @type {Properties} */
36211 const property = {}
36212 /** @type {Normal} */
36213 const normal = {}
36214 let index = -1
36215
36216 while (++index < definitions.length) {
36217 Object.assign(property, definitions[index].property)
36218 Object.assign(normal, definitions[index].normal)
36219 }
36220
36221 return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space)
36222 }
36223
36224
36225 /***/ }),
36226
36227 /***/ "../node_modules/property-information/lib/util/schema.js":
36228 /*!***************************************************************!*\
36229 !*** ../node_modules/property-information/lib/util/schema.js ***!
36230 \***************************************************************/
36231 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36232
36233 "use strict";
36234 __webpack_require__.r(__webpack_exports__);
36235 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36236 /* harmony export */ Schema: () => (/* binding */ Schema)
36237 /* harmony export */ });
36238 /**
36239 * @typedef {import('./info.js').Info} Info
36240 * @typedef {Record<string, Info>} Properties
36241 * @typedef {Record<string, string>} Normal
36242 */
36243
36244 class Schema {
36245 /**
36246 * @constructor
36247 * @param {Properties} property
36248 * @param {Normal} normal
36249 * @param {string} [space]
36250 */
36251 constructor(property, normal, space) {
36252 this.property = property
36253 this.normal = normal
36254 if (space) {
36255 this.space = space
36256 }
36257 }
36258 }
36259
36260 /** @type {Properties} */
36261 Schema.prototype.property = {}
36262 /** @type {Normal} */
36263 Schema.prototype.normal = {}
36264 /** @type {string|null} */
36265 Schema.prototype.space = null
36266
36267
36268 /***/ }),
36269
36270 /***/ "../node_modules/property-information/lib/util/types.js":
36271 /*!**************************************************************!*\
36272 !*** ../node_modules/property-information/lib/util/types.js ***!
36273 \**************************************************************/
36274 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36275
36276 "use strict";
36277 __webpack_require__.r(__webpack_exports__);
36278 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36279 /* harmony export */ boolean: () => (/* binding */ boolean),
36280 /* harmony export */ booleanish: () => (/* binding */ booleanish),
36281 /* harmony export */ commaOrSpaceSeparated: () => (/* binding */ commaOrSpaceSeparated),
36282 /* harmony export */ commaSeparated: () => (/* binding */ commaSeparated),
36283 /* harmony export */ number: () => (/* binding */ number),
36284 /* harmony export */ overloadedBoolean: () => (/* binding */ overloadedBoolean),
36285 /* harmony export */ spaceSeparated: () => (/* binding */ spaceSeparated)
36286 /* harmony export */ });
36287 let powers = 0
36288
36289 const boolean = increment()
36290 const booleanish = increment()
36291 const overloadedBoolean = increment()
36292 const number = increment()
36293 const spaceSeparated = increment()
36294 const commaSeparated = increment()
36295 const commaOrSpaceSeparated = increment()
36296
36297 function increment() {
36298 return 2 ** ++powers
36299 }
36300
36301
36302 /***/ }),
36303
36304 /***/ "../node_modules/property-information/lib/xlink.js":
36305 /*!*********************************************************!*\
36306 !*** ../node_modules/property-information/lib/xlink.js ***!
36307 \*********************************************************/
36308 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36309
36310 "use strict";
36311 __webpack_require__.r(__webpack_exports__);
36312 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36313 /* harmony export */ xlink: () => (/* binding */ xlink)
36314 /* harmony export */ });
36315 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36316
36317
36318 const xlink = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36319 space: 'xlink',
36320 transform(_, prop) {
36321 return 'xlink:' + prop.slice(5).toLowerCase()
36322 },
36323 properties: {
36324 xLinkActuate: null,
36325 xLinkArcRole: null,
36326 xLinkHref: null,
36327 xLinkRole: null,
36328 xLinkShow: null,
36329 xLinkTitle: null,
36330 xLinkType: null
36331 }
36332 })
36333
36334
36335 /***/ }),
36336
36337 /***/ "../node_modules/property-information/lib/xml.js":
36338 /*!*******************************************************!*\
36339 !*** ../node_modules/property-information/lib/xml.js ***!
36340 \*******************************************************/
36341 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36342
36343 "use strict";
36344 __webpack_require__.r(__webpack_exports__);
36345 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36346 /* harmony export */ xml: () => (/* binding */ xml)
36347 /* harmony export */ });
36348 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36349
36350
36351 const xml = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36352 space: 'xml',
36353 transform(_, prop) {
36354 return 'xml:' + prop.slice(3).toLowerCase()
36355 },
36356 properties: {xmlLang: null, xmlBase: null, xmlSpace: null}
36357 })
36358
36359
36360 /***/ }),
36361
36362 /***/ "../node_modules/property-information/lib/xmlns.js":
36363 /*!*********************************************************!*\
36364 !*** ../node_modules/property-information/lib/xmlns.js ***!
36365 \*********************************************************/
36366 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36367
36368 "use strict";
36369 __webpack_require__.r(__webpack_exports__);
36370 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36371 /* harmony export */ xmlns: () => (/* binding */ xmlns)
36372 /* harmony export */ });
36373 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36374 /* 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");
36375
36376
36377
36378 const xmlns = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36379 space: 'xmlns',
36380 attributes: {xmlnsxlink: 'xmlns:xlink'},
36381 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
36382 properties: {xmlns: null, xmlnsXLink: null}
36383 })
36384
36385
36386 /***/ }),
36387
36388 /***/ "../node_modules/react-markdown/index.js":
36389 /*!***********************************************!*\
36390 !*** ../node_modules/react-markdown/index.js ***!
36391 \***********************************************/
36392 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36393
36394 "use strict";
36395 __webpack_require__.r(__webpack_exports__);
36396 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36397 /* harmony export */ "default": () => (/* reexport safe */ _lib_react_markdown_js__WEBPACK_IMPORTED_MODULE_1__.ReactMarkdown),
36398 /* harmony export */ uriTransformer: () => (/* reexport safe */ _lib_uri_transformer_js__WEBPACK_IMPORTED_MODULE_0__.uriTransformer)
36399 /* harmony export */ });
36400 /* 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");
36401 /* 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");
36402 /**
36403 * @typedef {import('./lib/react-markdown.js').ReactMarkdownOptions} Options
36404 * @typedef {import('./lib/ast-to-react.js').Components} Components
36405 */
36406
36407
36408
36409
36410
36411
36412 /***/ }),
36413
36414 /***/ "../node_modules/react-markdown/lib/ast-to-react.js":
36415 /*!**********************************************************!*\
36416 !*** ../node_modules/react-markdown/lib/ast-to-react.js ***!
36417 \**********************************************************/
36418 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36419
36420 "use strict";
36421 __webpack_require__.r(__webpack_exports__);
36422 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36423 /* harmony export */ childrenToReact: () => (/* binding */ childrenToReact)
36424 /* harmony export */ });
36425 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36426 /* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
36427 /* harmony import */ var hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hast-util-whitespace */ "../node_modules/hast-util-whitespace/index.js");
36428 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36429 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/find.js");
36430 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/hast-to-react.js");
36431 /* harmony import */ var space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! space-separated-tokens */ "../node_modules/space-separated-tokens/index.js");
36432 /* harmony import */ var comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! comma-separated-tokens */ "../node_modules/comma-separated-tokens/index.js");
36433 /* harmony import */ var style_to_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! style-to-object */ "../node_modules/style-to-object/index.mjs");
36434 /* harmony import */ var _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uri-transformer.js */ "../node_modules/react-markdown/lib/uri-transformer.js");
36435 /**
36436 * @template T
36437 * @typedef {import('react').ComponentType<T>} ComponentType<T>
36438 */
36439
36440 /**
36441 * @template {import('react').ElementType} T
36442 * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>
36443 */
36444
36445 /**
36446 * @typedef {import('react').ReactNode} ReactNode
36447 * @typedef {import('unist').Position} Position
36448 * @typedef {import('hast').Element} Element
36449 * @typedef {import('hast').ElementContent} ElementContent
36450 * @typedef {import('hast').Root} Root
36451 * @typedef {import('hast').Text} Text
36452 * @typedef {import('hast').Comment} Comment
36453 * @typedef {import('hast').DocType} Doctype
36454 * @typedef {import('property-information').Info} Info
36455 * @typedef {import('property-information').Schema} Schema
36456 * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps
36457 *
36458 * @typedef Raw
36459 * @property {'raw'} type
36460 * @property {string} value
36461 *
36462 * @typedef Context
36463 * @property {Options} options
36464 * @property {Schema} schema
36465 * @property {number} listDepth
36466 *
36467 * @callback TransformLink
36468 * @param {string} href
36469 * @param {Array<ElementContent>} children
36470 * @param {string?} title
36471 * @returns {string}
36472 *
36473 * @callback TransformImage
36474 * @param {string} src
36475 * @param {string} alt
36476 * @param {string?} title
36477 * @returns {string}
36478 *
36479 * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType
36480 *
36481 * @callback TransformLinkTarget
36482 * @param {string} href
36483 * @param {Array<ElementContent>} children
36484 * @param {string?} title
36485 * @returns {TransformLinkTargetType|undefined}
36486 *
36487 * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames
36488 *
36489 * To do: is `data-sourcepos` typeable?
36490 *
36491 * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps
36492 * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps
36493 * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps
36494 * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps
36495 * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps
36496 * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps
36497 * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps
36498 * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps
36499 *
36500 * @typedef {ComponentType<CodeProps>} CodeComponent
36501 * @typedef {ComponentType<HeadingProps>} HeadingComponent
36502 * @typedef {ComponentType<LiProps>} LiComponent
36503 * @typedef {ComponentType<OrderedListProps>} OrderedListComponent
36504 * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent
36505 * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent
36506 * @typedef {ComponentType<TableRowProps>} TableRowComponent
36507 * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent
36508 *
36509 * @typedef SpecialComponents
36510 * @property {CodeComponent|ReactMarkdownNames} code
36511 * @property {HeadingComponent|ReactMarkdownNames} h1
36512 * @property {HeadingComponent|ReactMarkdownNames} h2
36513 * @property {HeadingComponent|ReactMarkdownNames} h3
36514 * @property {HeadingComponent|ReactMarkdownNames} h4
36515 * @property {HeadingComponent|ReactMarkdownNames} h5
36516 * @property {HeadingComponent|ReactMarkdownNames} h6
36517 * @property {LiComponent|ReactMarkdownNames} li
36518 * @property {OrderedListComponent|ReactMarkdownNames} ol
36519 * @property {TableDataCellComponent|ReactMarkdownNames} td
36520 * @property {TableHeaderCellComponent|ReactMarkdownNames} th
36521 * @property {TableRowComponent|ReactMarkdownNames} tr
36522 * @property {UnorderedListComponent|ReactMarkdownNames} ul
36523 *
36524 * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components
36525 *
36526 * @typedef Options
36527 * @property {boolean} [sourcePos=false]
36528 * @property {boolean} [rawSourcePos=false]
36529 * @property {boolean} [skipHtml=false]
36530 * @property {boolean} [includeElementIndex=false]
36531 * @property {null|false|TransformLink} [transformLinkUri]
36532 * @property {TransformImage} [transformImageUri]
36533 * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]
36534 * @property {Components} [components]
36535 */
36536
36537
36538
36539
36540
36541
36542
36543
36544
36545
36546 const own = {}.hasOwnProperty
36547
36548 // The table-related elements that must not contain whitespace text according
36549 // to React.
36550 const tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])
36551
36552 /**
36553 * @param {Context} context
36554 * @param {Element|Root} node
36555 */
36556 function childrenToReact(context, node) {
36557 /** @type {Array<ReactNode>} */
36558 const children = []
36559 let childIndex = -1
36560 /** @type {Comment|Doctype|Element|Raw|Text} */
36561 let child
36562
36563 while (++childIndex < node.children.length) {
36564 child = node.children[childIndex]
36565
36566 if (child.type === 'element') {
36567 children.push(toReact(context, child, childIndex, node))
36568 } else if (child.type === 'text') {
36569 // Currently, a warning is triggered by react for *any* white space in
36570 // tables.
36571 // So we drop it.
36572 // See: <https://github.com/facebook/react/pull/7081>.
36573 // See: <https://github.com/facebook/react/pull/7515>.
36574 // See: <https://github.com/remarkjs/remark-react/issues/64>.
36575 // See: <https://github.com/remarkjs/react-markdown/issues/576>.
36576 if (
36577 node.type !== 'element' ||
36578 !tableElements.has(node.tagName) ||
36579 !(0,hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__.whitespace)(child)
36580 ) {
36581 children.push(child.value)
36582 }
36583 } else if (child.type === 'raw' && !context.options.skipHtml) {
36584 // Default behavior is to show (encoded) HTML.
36585 children.push(child.value)
36586 }
36587 }
36588
36589 return children
36590 }
36591
36592 /**
36593 * @param {Context} context
36594 * @param {Element} node
36595 * @param {number} index
36596 * @param {Element|Root} parent
36597 */
36598 function toReact(context, node, index, parent) {
36599 const options = context.options
36600 const transform =
36601 options.transformLinkUri === undefined
36602 ? _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__.uriTransformer
36603 : options.transformLinkUri
36604 const parentSchema = context.schema
36605 /** @type {ReactMarkdownNames} */
36606 // @ts-expect-error assume a known HTML/SVG element.
36607 const name = node.tagName
36608 /** @type {Record<string, unknown>} */
36609 const properties = {}
36610 let schema = parentSchema
36611 /** @type {string} */
36612 let property
36613
36614 if (parentSchema.space === 'html' && name === 'svg') {
36615 schema = property_information__WEBPACK_IMPORTED_MODULE_5__.svg
36616 context.schema = schema
36617 }
36618
36619 if (node.properties) {
36620 for (property in node.properties) {
36621 if (own.call(node.properties, property)) {
36622 addProperty(properties, property, node.properties[property], context)
36623 }
36624 }
36625 }
36626
36627 if (name === 'ol' || name === 'ul') {
36628 context.listDepth++
36629 }
36630
36631 const children = childrenToReact(context, node)
36632
36633 if (name === 'ol' || name === 'ul') {
36634 context.listDepth--
36635 }
36636
36637 // Restore parent schema.
36638 context.schema = parentSchema
36639
36640 // Nodes created by plugins do not have positional info, in which case we use
36641 // an object that matches the position interface.
36642 const position = node.position || {
36643 start: {line: null, column: null, offset: null},
36644 end: {line: null, column: null, offset: null}
36645 }
36646 const component =
36647 options.components && own.call(options.components, name)
36648 ? options.components[name]
36649 : name
36650 const basic = typeof component === 'string' || component === react__WEBPACK_IMPORTED_MODULE_0__.Fragment
36651
36652 if (!react_is__WEBPACK_IMPORTED_MODULE_1__.isValidElementType(component)) {
36653 throw new TypeError(
36654 `Component for name \`${name}\` not defined or is not renderable`
36655 )
36656 }
36657
36658 properties.key = index
36659
36660 if (name === 'a' && options.linkTarget) {
36661 properties.target =
36662 typeof options.linkTarget === 'function'
36663 ? options.linkTarget(
36664 String(properties.href || ''),
36665 node.children,
36666 typeof properties.title === 'string' ? properties.title : null
36667 )
36668 : options.linkTarget
36669 }
36670
36671 if (name === 'a' && transform) {
36672 properties.href = transform(
36673 String(properties.href || ''),
36674 node.children,
36675 typeof properties.title === 'string' ? properties.title : null
36676 )
36677 }
36678
36679 if (
36680 !basic &&
36681 name === 'code' &&
36682 parent.type === 'element' &&
36683 parent.tagName !== 'pre'
36684 ) {
36685 properties.inline = true
36686 }
36687
36688 if (
36689 !basic &&
36690 (name === 'h1' ||
36691 name === 'h2' ||
36692 name === 'h3' ||
36693 name === 'h4' ||
36694 name === 'h5' ||
36695 name === 'h6')
36696 ) {
36697 properties.level = Number.parseInt(name.charAt(1), 10)
36698 }
36699
36700 if (name === 'img' && options.transformImageUri) {
36701 properties.src = options.transformImageUri(
36702 String(properties.src || ''),
36703 String(properties.alt || ''),
36704 typeof properties.title === 'string' ? properties.title : null
36705 )
36706 }
36707
36708 if (!basic && name === 'li' && parent.type === 'element') {
36709 const input = getInputElement(node)
36710 properties.checked =
36711 input && input.properties ? Boolean(input.properties.checked) : null
36712 properties.index = getElementsBeforeCount(parent, node)
36713 properties.ordered = parent.tagName === 'ol'
36714 }
36715
36716 if (!basic && (name === 'ol' || name === 'ul')) {
36717 properties.ordered = name === 'ol'
36718 properties.depth = context.listDepth
36719 }
36720
36721 if (name === 'td' || name === 'th') {
36722 if (properties.align) {
36723 if (!properties.style) properties.style = {}
36724 // @ts-expect-error assume `style` is an object
36725 properties.style.textAlign = properties.align
36726 delete properties.align
36727 }
36728
36729 if (!basic) {
36730 properties.isHeader = name === 'th'
36731 }
36732 }
36733
36734 if (!basic && name === 'tr' && parent.type === 'element') {
36735 properties.isHeader = Boolean(parent.tagName === 'thead')
36736 }
36737
36738 // If `sourcePos` is given, pass source information (line/column info from markdown source).
36739 if (options.sourcePos) {
36740 properties['data-sourcepos'] = flattenPosition(position)
36741 }
36742
36743 if (!basic && options.rawSourcePos) {
36744 properties.sourcePosition = node.position
36745 }
36746
36747 // If `includeElementIndex` is given, pass node index info to components.
36748 if (!basic && options.includeElementIndex) {
36749 properties.index = getElementsBeforeCount(parent, node)
36750 properties.siblingCount = getElementsBeforeCount(parent)
36751 }
36752
36753 if (!basic) {
36754 properties.node = node
36755 }
36756
36757 // Ensure no React warnings are emitted for void elements w/ children.
36758 return children.length > 0
36759 ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties, children)
36760 : react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties)
36761 }
36762
36763 /**
36764 * @param {Element|Root} node
36765 * @returns {Element?}
36766 */
36767 function getInputElement(node) {
36768 let index = -1
36769
36770 while (++index < node.children.length) {
36771 const child = node.children[index]
36772
36773 if (child.type === 'element' && child.tagName === 'input') {
36774 return child
36775 }
36776 }
36777
36778 return null
36779 }
36780
36781 /**
36782 * @param {Element|Root} parent
36783 * @param {Element} [node]
36784 * @returns {number}
36785 */
36786 function getElementsBeforeCount(parent, node) {
36787 let index = -1
36788 let count = 0
36789
36790 while (++index < parent.children.length) {
36791 if (parent.children[index] === node) break
36792 if (parent.children[index].type === 'element') count++
36793 }
36794
36795 return count
36796 }
36797
36798 /**
36799 * @param {Record<string, unknown>} props
36800 * @param {string} prop
36801 * @param {unknown} value
36802 * @param {Context} ctx
36803 */
36804 function addProperty(props, prop, value, ctx) {
36805 const info = (0,property_information__WEBPACK_IMPORTED_MODULE_6__.find)(ctx.schema, prop)
36806 let result = value
36807
36808 // Ignore nullish and `NaN` values.
36809 // eslint-disable-next-line no-self-compare
36810 if (result === null || result === undefined || result !== result) {
36811 return
36812 }
36813
36814 // Accept `array`.
36815 // Most props are space-separated.
36816 if (Array.isArray(result)) {
36817 result = info.commaSeparated ? (0,comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__.stringify)(result) : (0,space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__.stringify)(result)
36818 }
36819
36820 if (info.property === 'style' && typeof result === 'string') {
36821 result = parseStyle(result)
36822 }
36823
36824 if (info.space && info.property) {
36825 props[
36826 own.call(property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact, info.property)
36827 ? property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact[info.property]
36828 : info.property
36829 ] = result
36830 } else if (info.attribute) {
36831 props[info.attribute] = result
36832 }
36833 }
36834
36835 /**
36836 * @param {string} value
36837 * @returns {Record<string, string>}
36838 */
36839 function parseStyle(value) {
36840 /** @type {Record<string, string>} */
36841 const result = {}
36842
36843 try {
36844 ;(0,style_to_object__WEBPACK_IMPORTED_MODULE_2__["default"])(value, iterator)
36845 } catch {
36846 // Silent.
36847 }
36848
36849 return result
36850
36851 /**
36852 * @param {string} name
36853 * @param {string} v
36854 */
36855 function iterator(name, v) {
36856 const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name
36857 result[k.replace(/-([a-z])/g, styleReplacer)] = v
36858 }
36859 }
36860
36861 /**
36862 * @param {unknown} _
36863 * @param {string} $1
36864 */
36865 function styleReplacer(_, $1) {
36866 return $1.toUpperCase()
36867 }
36868
36869 /**
36870 * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos
36871 * @returns {string}
36872 */
36873 function flattenPosition(pos) {
36874 return [
36875 pos.start.line,
36876 ':',
36877 pos.start.column,
36878 '-',
36879 pos.end.line,
36880 ':',
36881 pos.end.column
36882 ]
36883 .map(String)
36884 .join('')
36885 }
36886
36887
36888 /***/ }),
36889
36890 /***/ "../node_modules/react-markdown/lib/react-markdown.js":
36891 /*!************************************************************!*\
36892 !*** ../node_modules/react-markdown/lib/react-markdown.js ***!
36893 \************************************************************/
36894 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36895
36896 "use strict";
36897 __webpack_require__.r(__webpack_exports__);
36898 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36899 /* harmony export */ ReactMarkdown: () => (/* binding */ ReactMarkdown)
36900 /* harmony export */ });
36901 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36902 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
36903 /* harmony import */ var unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unified */ "../node_modules/unified/lib/index.js");
36904 /* harmony import */ var remark_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! remark-parse */ "../node_modules/remark-parse/lib/index.js");
36905 /* harmony import */ var remark_rehype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! remark-rehype */ "../node_modules/remark-rehype/lib/index.js");
36906 /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
36907 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36908 /* harmony import */ var _rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rehype-filter.js */ "../node_modules/react-markdown/lib/rehype-filter.js");
36909 /* 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");
36910 /**
36911 * @typedef {import('react').ReactNode} ReactNode
36912 * @typedef {import('react').ReactElement<{}>} ReactElement
36913 * @typedef {import('unified').PluggableList} PluggableList
36914 * @typedef {import('hast').Root} Root
36915 * @typedef {import('./rehype-filter.js').Options} FilterOptions
36916 * @typedef {import('./ast-to-react.js').Options} TransformOptions
36917 *
36918 * @typedef CoreOptions
36919 * @property {string} children
36920 *
36921 * @typedef PluginOptions
36922 * @property {PluggableList} [remarkPlugins=[]]
36923 * @property {PluggableList} [rehypePlugins=[]]
36924 * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]
36925 *
36926 * @typedef LayoutOptions
36927 * @property {string} [className]
36928 *
36929 * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions
36930 *
36931 * @typedef Deprecation
36932 * @property {string} id
36933 * @property {string} [to]
36934 */
36935
36936
36937
36938
36939
36940
36941
36942
36943
36944
36945
36946 const own = {}.hasOwnProperty
36947 const changelog =
36948 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'
36949
36950 /** @type {Record<string, Deprecation>} */
36951 const deprecated = {
36952 plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},
36953 renderers: {to: 'components', id: 'change-renderers-to-components'},
36954 astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},
36955 allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},
36956 escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},
36957 source: {to: 'children', id: 'change-source-to-children'},
36958 allowNode: {
36959 to: 'allowElement',
36960 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
36961 },
36962 allowedTypes: {
36963 to: 'allowedElements',
36964 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
36965 },
36966 disallowedTypes: {
36967 to: 'disallowedElements',
36968 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
36969 },
36970 includeNodeIndex: {
36971 to: 'includeElementIndex',
36972 id: 'change-includenodeindex-to-includeelementindex'
36973 }
36974 }
36975
36976 /**
36977 * React component to render markdown.
36978 *
36979 * @param {ReactMarkdownOptions} options
36980 * @returns {ReactElement}
36981 */
36982 function ReactMarkdown(options) {
36983 for (const key in deprecated) {
36984 if (own.call(deprecated, key) && own.call(options, key)) {
36985 const deprecation = deprecated[key]
36986 console.warn(
36987 `[react-markdown] Warning: please ${
36988 deprecation.to ? `use \`${deprecation.to}\` instead of` : 'remove'
36989 } \`${key}\` (see <${changelog}#${deprecation.id}> for more info)`
36990 )
36991 delete deprecated[key]
36992 }
36993 }
36994
36995 const processor = (0,unified__WEBPACK_IMPORTED_MODULE_1__.unified)()
36996 .use(remark_parse__WEBPACK_IMPORTED_MODULE_2__["default"])
36997 .use(options.remarkPlugins || [])
36998 .use(remark_rehype__WEBPACK_IMPORTED_MODULE_3__["default"], {
36999 ...options.remarkRehypeOptions,
37000 allowDangerousHtml: true
37001 })
37002 .use(options.rehypePlugins || [])
37003 .use(_rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__["default"], options)
37004
37005 const file = new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile()
37006
37007 if (typeof options.children === 'string') {
37008 file.value = options.children
37009 } else if (options.children !== undefined && options.children !== null) {
37010 console.warn(
37011 `[react-markdown] Warning: please pass a string as \`children\` (not: \`${options.children}\`)`
37012 )
37013 }
37014
37015 const hastNode = processor.runSync(processor.parse(file), file)
37016
37017 if (hastNode.type !== 'root') {
37018 throw new TypeError('Expected a `root` node')
37019 }
37020
37021 /** @type {ReactElement} */
37022 let result = react__WEBPACK_IMPORTED_MODULE_0__.createElement(
37023 react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
37024 {},
37025 (0,_ast_to_react_js__WEBPACK_IMPORTED_MODULE_6__.childrenToReact)({options, schema: property_information__WEBPACK_IMPORTED_MODULE_7__.html, listDepth: 0}, hastNode)
37026 )
37027
37028 if (options.className) {
37029 result = react__WEBPACK_IMPORTED_MODULE_0__.createElement('div', {className: options.className}, result)
37030 }
37031
37032 return result
37033 }
37034
37035 ReactMarkdown.propTypes = {
37036 // Core options:
37037 children: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37038 // Layout options:
37039 className: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37040 // Filter options:
37041 allowElement: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37042 allowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37043 disallowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37044 unwrapDisallowed: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37045 // Plugin options:
37046 remarkPlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37047 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37048 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37049 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37050 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37051 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37052 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37053 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37054 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37055 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37056 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37057 // prettier-ignore
37058 // type-coverage:ignore-next-line
37059 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37060 )
37061 ])
37062 )
37063 ])
37064 ),
37065 rehypePlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37066 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37067 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37068 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37069 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37070 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37071 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37072 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37073 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37074 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37075 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37076 // prettier-ignore
37077 // type-coverage:ignore-next-line
37078 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37079 )
37080 ])
37081 )
37082 ])
37083 ),
37084 // Transform options:
37085 sourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37086 rawSourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37087 skipHtml: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37088 includeElementIndex: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37089 transformLinkUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.bool]),
37090 linkTarget: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.string]),
37091 transformImageUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37092 components: prop_types__WEBPACK_IMPORTED_MODULE_8__.object
37093 }
37094
37095
37096 /***/ }),
37097
37098 /***/ "../node_modules/react-markdown/lib/rehype-filter.js":
37099 /*!***********************************************************!*\
37100 !*** ../node_modules/react-markdown/lib/rehype-filter.js ***!
37101 \***********************************************************/
37102 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37103
37104 "use strict";
37105 __webpack_require__.r(__webpack_exports__);
37106 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37107 /* harmony export */ "default": () => (/* binding */ rehypeFilter)
37108 /* harmony export */ });
37109 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
37110
37111
37112 /**
37113 * @typedef {import('unist').Node} Node
37114 * @typedef {import('hast').Root} Root
37115 * @typedef {import('hast').Element} Element
37116 *
37117 * @callback AllowElement
37118 * @param {Element} element
37119 * @param {number} index
37120 * @param {Element|Root} parent
37121 * @returns {boolean|undefined}
37122 *
37123 * @typedef Options
37124 * @property {Array<string>} [allowedElements]
37125 * @property {Array<string>} [disallowedElements=[]]
37126 * @property {AllowElement} [allowElement]
37127 * @property {boolean} [unwrapDisallowed=false]
37128 */
37129
37130 /**
37131 * @type {import('unified').Plugin<[Options], Root>}
37132 */
37133 function rehypeFilter(options) {
37134 if (options.allowedElements && options.disallowedElements) {
37135 throw new TypeError(
37136 'Only one of `allowedElements` and `disallowedElements` should be defined'
37137 )
37138 }
37139
37140 if (
37141 options.allowedElements ||
37142 options.disallowedElements ||
37143 options.allowElement
37144 ) {
37145 return (tree) => {
37146 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'element', (node, index, parent_) => {
37147 const parent = /** @type {Element|Root} */ (parent_)
37148 /** @type {boolean|undefined} */
37149 let remove
37150
37151 if (options.allowedElements) {
37152 remove = !options.allowedElements.includes(node.tagName)
37153 } else if (options.disallowedElements) {
37154 remove = options.disallowedElements.includes(node.tagName)
37155 }
37156
37157 if (!remove && options.allowElement && typeof index === 'number') {
37158 remove = !options.allowElement(node, index, parent)
37159 }
37160
37161 if (remove && typeof index === 'number') {
37162 if (options.unwrapDisallowed && node.children) {
37163 parent.children.splice(index, 1, ...node.children)
37164 } else {
37165 parent.children.splice(index, 1)
37166 }
37167
37168 return index
37169 }
37170
37171 return undefined
37172 })
37173 }
37174 }
37175 }
37176
37177
37178 /***/ }),
37179
37180 /***/ "../node_modules/react-markdown/lib/uri-transformer.js":
37181 /*!*************************************************************!*\
37182 !*** ../node_modules/react-markdown/lib/uri-transformer.js ***!
37183 \*************************************************************/
37184 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37185
37186 "use strict";
37187 __webpack_require__.r(__webpack_exports__);
37188 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37189 /* harmony export */ uriTransformer: () => (/* binding */ uriTransformer)
37190 /* harmony export */ });
37191 const protocols = ['http', 'https', 'mailto', 'tel']
37192
37193 /**
37194 * @param {string} uri
37195 * @returns {string}
37196 */
37197 function uriTransformer(uri) {
37198 const url = (uri || '').trim()
37199 const first = url.charAt(0)
37200
37201 if (first === '#' || first === '/') {
37202 return url
37203 }
37204
37205 const colon = url.indexOf(':')
37206 if (colon === -1) {
37207 return url
37208 }
37209
37210 let index = -1
37211
37212 while (++index < protocols.length) {
37213 const protocol = protocols[index]
37214
37215 if (
37216 colon === protocol.length &&
37217 url.slice(0, protocol.length).toLowerCase() === protocol
37218 ) {
37219 return url
37220 }
37221 }
37222
37223 index = url.indexOf('?')
37224 if (index !== -1 && colon > index) {
37225 return url
37226 }
37227
37228 index = url.indexOf('#')
37229 if (index !== -1 && colon > index) {
37230 return url
37231 }
37232
37233 // eslint-disable-next-line no-script-url
37234 return 'javascript:void(0)'
37235 }
37236
37237
37238 /***/ }),
37239
37240 /***/ "../node_modules/remark-parse/lib/index.js":
37241 /*!*************************************************!*\
37242 !*** ../node_modules/remark-parse/lib/index.js ***!
37243 \*************************************************/
37244 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37245
37246 "use strict";
37247 __webpack_require__.r(__webpack_exports__);
37248 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37249 /* harmony export */ "default": () => (/* binding */ remarkParse)
37250 /* harmony export */ });
37251 /* 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");
37252 /**
37253 * @typedef {import('mdast').Root} Root
37254 * @typedef {import('mdast-util-from-markdown').Options} Options
37255 */
37256
37257
37258
37259 /**
37260 * @this {import('unified').Processor}
37261 * @type {import('unified').Plugin<[Options?] | void[], string, Root>}
37262 */
37263 function remarkParse(options) {
37264 /** @type {import('unified').ParserFunction<Root>} */
37265 const parser = (doc) => {
37266 // Assume options.
37267 const settings = /** @type {Options} */ (this.data('settings'))
37268
37269 return (0,mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__.fromMarkdown)(
37270 doc,
37271 Object.assign({}, settings, options, {
37272 // Note: these options are not in the readme.
37273 // The goal is for them to be set by plugins on `data` instead of being
37274 // passed by users.
37275 extensions: this.data('micromarkExtensions') || [],
37276 mdastExtensions: this.data('fromMarkdownExtensions') || []
37277 })
37278 )
37279 }
37280
37281 Object.assign(this, {Parser: parser})
37282 }
37283
37284
37285 /***/ }),
37286
37287 /***/ "../node_modules/remark-rehype/lib/index.js":
37288 /*!**************************************************!*\
37289 !*** ../node_modules/remark-rehype/lib/index.js ***!
37290 \**************************************************/
37291 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37292
37293 "use strict";
37294 __webpack_require__.r(__webpack_exports__);
37295 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37296 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37297 /* harmony export */ });
37298 /* 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");
37299 /**
37300 * @typedef {import('hast').Root} HastRoot
37301 * @typedef {import('mdast').Root} MdastRoot
37302 * @typedef {import('mdast-util-to-hast').Options} Options
37303 * @typedef {import('unified').Processor<any, any, any, any>} Processor
37304 *
37305 * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree
37306 */
37307
37308
37309
37310 // Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(
37311
37312 /**
37313 * Plugin that turns markdown into HTML to support rehype.
37314 *
37315 * * If a destination processor is given, that processor runs with a new HTML
37316 * (hast) tree (bridge-mode).
37317 * As the given processor runs with a hast tree, and rehype plugins support
37318 * hast, that means rehype plugins can be used with the given processor.
37319 * The hast tree is discarded in the end.
37320 * It’s highly unlikely that you want to do this.
37321 * * The common case is to not pass a destination processor, in which case the
37322 * current processor continues running with a new HTML (hast) tree
37323 * (mutate-mode).
37324 * As the current processor continues with a hast tree, and rehype plugins
37325 * support hast, that means rehype plugins can be used after
37326 * `remark-rehype`.
37327 * It’s likely that this is what you want to do.
37328 *
37329 * @param destination
37330 * Optional unified processor.
37331 * @param options
37332 * Options passed to `mdast-util-to-hast`.
37333 */
37334 const remarkRehype =
37335 /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */
37336 (
37337 function (destination, options) {
37338 return destination && 'run' in destination
37339 ? bridge(destination, options)
37340 : mutate(destination || options)
37341 }
37342 )
37343
37344 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (remarkRehype);
37345
37346 /**
37347 * Bridge-mode.
37348 * Runs the destination with the new hast tree.
37349 *
37350 * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}
37351 */
37352 function bridge(destination, options) {
37353 return (node, file, next) => {
37354 destination.run((0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options), file, (error) => {
37355 next(error)
37356 })
37357 }
37358 }
37359
37360 /**
37361 * Mutate-mode.
37362 * Further plugins run on the hast tree.
37363 *
37364 * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}
37365 */
37366 function mutate(options) {
37367 // @ts-expect-error: assume a corresponding node is returned by `toHast`.
37368 return (node) => (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options)
37369 }
37370
37371
37372 /***/ }),
37373
37374 /***/ "../node_modules/space-separated-tokens/index.js":
37375 /*!*******************************************************!*\
37376 !*** ../node_modules/space-separated-tokens/index.js ***!
37377 \*******************************************************/
37378 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37379
37380 "use strict";
37381 __webpack_require__.r(__webpack_exports__);
37382 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37383 /* harmony export */ parse: () => (/* binding */ parse),
37384 /* harmony export */ stringify: () => (/* binding */ stringify)
37385 /* harmony export */ });
37386 /**
37387 * Parse space-separated tokens to an array of strings.
37388 *
37389 * @param {string} value
37390 * Space-separated tokens.
37391 * @returns {Array<string>}
37392 * List of tokens.
37393 */
37394 function parse(value) {
37395 const input = String(value || '').trim()
37396 return input ? input.split(/[ \t\n\r\f]+/g) : []
37397 }
37398
37399 /**
37400 * Serialize an array of strings as space separated-tokens.
37401 *
37402 * @param {Array<string|number>} values
37403 * List of tokens.
37404 * @returns {string}
37405 * Space-separated tokens.
37406 */
37407 function stringify(values) {
37408 return values.join(' ').trim()
37409 }
37410
37411
37412 /***/ }),
37413
37414 /***/ "../node_modules/style-to-object/index.mjs":
37415 /*!*************************************************!*\
37416 !*** ../node_modules/style-to-object/index.mjs ***!
37417 \*************************************************/
37418 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37419
37420 "use strict";
37421 __webpack_require__.r(__webpack_exports__);
37422 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37423 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37424 /* harmony export */ });
37425 /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../node_modules/style-to-object/index.js");
37426
37427
37428 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_0__);
37429
37430
37431 /***/ }),
37432
37433 /***/ "../node_modules/trim-lines/index.js":
37434 /*!*******************************************!*\
37435 !*** ../node_modules/trim-lines/index.js ***!
37436 \*******************************************/
37437 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37438
37439 "use strict";
37440 __webpack_require__.r(__webpack_exports__);
37441 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37442 /* harmony export */ trimLines: () => (/* binding */ trimLines)
37443 /* harmony export */ });
37444 const tab = 9 /* `\t` */
37445 const space = 32 /* ` ` */
37446
37447 /**
37448 * Remove initial and final spaces and tabs at the line breaks in `value`.
37449 * Does not trim initial and final spaces and tabs of the value itself.
37450 *
37451 * @param {string} value
37452 * Value to trim.
37453 * @returns {string}
37454 * Trimmed value.
37455 */
37456 function trimLines(value) {
37457 const source = String(value)
37458 const search = /\r?\n|\r/g
37459 let match = search.exec(source)
37460 let last = 0
37461 /** @type {Array<string>} */
37462 const lines = []
37463
37464 while (match) {
37465 lines.push(
37466 trimLine(source.slice(last, match.index), last > 0, true),
37467 match[0]
37468 )
37469
37470 last = match.index + match[0].length
37471 match = search.exec(source)
37472 }
37473
37474 lines.push(trimLine(source.slice(last), last > 0, false))
37475
37476 return lines.join('')
37477 }
37478
37479 /**
37480 * @param {string} value
37481 * Line to trim.
37482 * @param {boolean} start
37483 * Whether to trim the start of the line.
37484 * @param {boolean} end
37485 * Whether to trim the end of the line.
37486 * @returns {string}
37487 * Trimmed line.
37488 */
37489 function trimLine(value, start, end) {
37490 let startIndex = 0
37491 let endIndex = value.length
37492
37493 if (start) {
37494 let code = value.codePointAt(startIndex)
37495
37496 while (code === tab || code === space) {
37497 startIndex++
37498 code = value.codePointAt(startIndex)
37499 }
37500 }
37501
37502 if (end) {
37503 let code = value.codePointAt(endIndex - 1)
37504
37505 while (code === tab || code === space) {
37506 endIndex--
37507 code = value.codePointAt(endIndex - 1)
37508 }
37509 }
37510
37511 return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''
37512 }
37513
37514
37515 /***/ }),
37516
37517 /***/ "../node_modules/trough/index.js":
37518 /*!***************************************!*\
37519 !*** ../node_modules/trough/index.js ***!
37520 \***************************************/
37521 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37522
37523 "use strict";
37524 __webpack_require__.r(__webpack_exports__);
37525 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37526 /* harmony export */ trough: () => (/* binding */ trough),
37527 /* harmony export */ wrap: () => (/* binding */ wrap)
37528 /* harmony export */ });
37529 /**
37530 * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback
37531 * @typedef {(...input: Array<any>) => any} Middleware
37532 *
37533 * @typedef {(...input: Array<any>) => void} Run
37534 * Call all middleware.
37535 * @typedef {(fn: Middleware) => Pipeline} Use
37536 * Add `fn` (middleware) to the list.
37537 * @typedef {{run: Run, use: Use}} Pipeline
37538 * Middleware.
37539 */
37540
37541 /**
37542 * Create new middleware.
37543 *
37544 * @returns {Pipeline}
37545 */
37546 function trough() {
37547 /** @type {Array<Middleware>} */
37548 const fns = []
37549 /** @type {Pipeline} */
37550 const pipeline = {run, use}
37551
37552 return pipeline
37553
37554 /** @type {Run} */
37555 function run(...values) {
37556 let middlewareIndex = -1
37557 /** @type {Callback} */
37558 const callback = values.pop()
37559
37560 if (typeof callback !== 'function') {
37561 throw new TypeError('Expected function as last argument, not ' + callback)
37562 }
37563
37564 next(null, ...values)
37565
37566 /**
37567 * Run the next `fn`, or we’re done.
37568 *
37569 * @param {Error|null|undefined} error
37570 * @param {Array<any>} output
37571 */
37572 function next(error, ...output) {
37573 const fn = fns[++middlewareIndex]
37574 let index = -1
37575
37576 if (error) {
37577 callback(error)
37578 return
37579 }
37580
37581 // Copy non-nullish input into values.
37582 while (++index < values.length) {
37583 if (output[index] === null || output[index] === undefined) {
37584 output[index] = values[index]
37585 }
37586 }
37587
37588 // Save the newly created `output` for the next call.
37589 values = output
37590
37591 // Next or done.
37592 if (fn) {
37593 wrap(fn, next)(...output)
37594 } else {
37595 callback(null, ...output)
37596 }
37597 }
37598 }
37599
37600 /** @type {Use} */
37601 function use(middelware) {
37602 if (typeof middelware !== 'function') {
37603 throw new TypeError(
37604 'Expected `middelware` to be a function, not ' + middelware
37605 )
37606 }
37607
37608 fns.push(middelware)
37609 return pipeline
37610 }
37611 }
37612
37613 /**
37614 * Wrap `middleware`.
37615 * Can be sync or async; return a promise, receive a callback, or return new
37616 * values and errors.
37617 *
37618 * @param {Middleware} middleware
37619 * @param {Callback} callback
37620 */
37621 function wrap(middleware, callback) {
37622 /** @type {boolean} */
37623 let called
37624
37625 return wrapped
37626
37627 /**
37628 * Call `middleware`.
37629 * @this {any}
37630 * @param {Array<any>} parameters
37631 * @returns {void}
37632 */
37633 function wrapped(...parameters) {
37634 const fnExpectsCallback = middleware.length > parameters.length
37635 /** @type {any} */
37636 let result
37637
37638 if (fnExpectsCallback) {
37639 parameters.push(done)
37640 }
37641
37642 try {
37643 result = middleware.apply(this, parameters)
37644 } catch (error) {
37645 const exception = /** @type {Error} */ (error)
37646
37647 // Well, this is quite the pickle.
37648 // `middleware` received a callback and called it synchronously, but that
37649 // threw an error.
37650 // The only thing left to do is to throw the thing instead.
37651 if (fnExpectsCallback && called) {
37652 throw exception
37653 }
37654
37655 return done(exception)
37656 }
37657
37658 if (!fnExpectsCallback) {
37659 if (result instanceof Promise) {
37660 result.then(then, done)
37661 } else if (result instanceof Error) {
37662 done(result)
37663 } else {
37664 then(result)
37665 }
37666 }
37667 }
37668
37669 /**
37670 * Call `callback`, only once.
37671 * @type {Callback}
37672 */
37673 function done(error, ...output) {
37674 if (!called) {
37675 called = true
37676 callback(error, ...output)
37677 }
37678 }
37679
37680 /**
37681 * Call `done` with one value.
37682 *
37683 * @param {any} [value]
37684 */
37685 function then(value) {
37686 done(null, value)
37687 }
37688 }
37689
37690
37691 /***/ }),
37692
37693 /***/ "../node_modules/unified/lib/index.js":
37694 /*!********************************************!*\
37695 !*** ../node_modules/unified/lib/index.js ***!
37696 \********************************************/
37697 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37698
37699 "use strict";
37700 __webpack_require__.r(__webpack_exports__);
37701 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37702 /* harmony export */ unified: () => (/* binding */ unified)
37703 /* harmony export */ });
37704 /* harmony import */ var bail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! bail */ "../node_modules/bail/index.js");
37705 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
37706 /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! extend */ "../node_modules/extend/index.js");
37707 /* harmony import */ var is_plain_obj__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! is-plain-obj */ "../node_modules/is-plain-obj/index.js");
37708 /* harmony import */ var trough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! trough */ "../node_modules/trough/index.js");
37709 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
37710 /**
37711 * @typedef {import('unist').Node} Node
37712 * @typedef {import('vfile').VFileCompatible} VFileCompatible
37713 * @typedef {import('vfile').VFileValue} VFileValue
37714 * @typedef {import('..').Processor} Processor
37715 * @typedef {import('..').Plugin} Plugin
37716 * @typedef {import('..').Preset} Preset
37717 * @typedef {import('..').Pluggable} Pluggable
37718 * @typedef {import('..').PluggableList} PluggableList
37719 * @typedef {import('..').Transformer} Transformer
37720 * @typedef {import('..').Parser} Parser
37721 * @typedef {import('..').Compiler} Compiler
37722 * @typedef {import('..').RunCallback} RunCallback
37723 * @typedef {import('..').ProcessCallback} ProcessCallback
37724 *
37725 * @typedef Context
37726 * @property {Node} tree
37727 * @property {VFile} file
37728 */
37729
37730
37731
37732
37733
37734
37735
37736
37737 // Expose a frozen processor.
37738 const unified = base().freeze()
37739
37740 const own = {}.hasOwnProperty
37741
37742 // Function to create the first processor.
37743 /**
37744 * @returns {Processor}
37745 */
37746 function base() {
37747 const transformers = (0,trough__WEBPACK_IMPORTED_MODULE_3__.trough)()
37748 /** @type {Processor['attachers']} */
37749 const attachers = []
37750 /** @type {Record<string, unknown>} */
37751 let namespace = {}
37752 /** @type {boolean|undefined} */
37753 let frozen
37754 let freezeIndex = -1
37755
37756 // Data management.
37757 // @ts-expect-error: overloads are handled.
37758 processor.data = data
37759 processor.Parser = undefined
37760 processor.Compiler = undefined
37761
37762 // Lock.
37763 processor.freeze = freeze
37764
37765 // Plugins.
37766 processor.attachers = attachers
37767 // @ts-expect-error: overloads are handled.
37768 processor.use = use
37769
37770 // API.
37771 processor.parse = parse
37772 processor.stringify = stringify
37773 // @ts-expect-error: overloads are handled.
37774 processor.run = run
37775 processor.runSync = runSync
37776 // @ts-expect-error: overloads are handled.
37777 processor.process = process
37778 processor.processSync = processSync
37779
37780 // Expose.
37781 return processor
37782
37783 // Create a new processor based on the processor in the current scope.
37784 /** @type {Processor} */
37785 function processor() {
37786 const destination = base()
37787 let index = -1
37788
37789 while (++index < attachers.length) {
37790 destination.use(...attachers[index])
37791 }
37792
37793 destination.data(extend__WEBPACK_IMPORTED_MODULE_1__(true, {}, namespace))
37794
37795 return destination
37796 }
37797
37798 /**
37799 * @param {string|Record<string, unknown>} [key]
37800 * @param {unknown} [value]
37801 * @returns {unknown}
37802 */
37803 function data(key, value) {
37804 if (typeof key === 'string') {
37805 // Set `key`.
37806 if (arguments.length === 2) {
37807 assertUnfrozen('data', frozen)
37808 namespace[key] = value
37809 return processor
37810 }
37811
37812 // Get `key`.
37813 return (own.call(namespace, key) && namespace[key]) || null
37814 }
37815
37816 // Set space.
37817 if (key) {
37818 assertUnfrozen('data', frozen)
37819 namespace = key
37820 return processor
37821 }
37822
37823 // Get space.
37824 return namespace
37825 }
37826
37827 /** @type {Processor['freeze']} */
37828 function freeze() {
37829 if (frozen) {
37830 return processor
37831 }
37832
37833 while (++freezeIndex < attachers.length) {
37834 const [attacher, ...options] = attachers[freezeIndex]
37835
37836 if (options[0] === false) {
37837 continue
37838 }
37839
37840 if (options[0] === true) {
37841 options[0] = undefined
37842 }
37843
37844 /** @type {Transformer|void} */
37845 const transformer = attacher.call(processor, ...options)
37846
37847 if (typeof transformer === 'function') {
37848 transformers.use(transformer)
37849 }
37850 }
37851
37852 frozen = true
37853 freezeIndex = Number.POSITIVE_INFINITY
37854
37855 return processor
37856 }
37857
37858 /**
37859 * @param {Pluggable|null|undefined} [value]
37860 * @param {...unknown} options
37861 * @returns {Processor}
37862 */
37863 function use(value, ...options) {
37864 /** @type {Record<string, unknown>|undefined} */
37865 let settings
37866
37867 assertUnfrozen('use', frozen)
37868
37869 if (value === null || value === undefined) {
37870 // Empty.
37871 } else if (typeof value === 'function') {
37872 addPlugin(value, ...options)
37873 } else if (typeof value === 'object') {
37874 if (Array.isArray(value)) {
37875 addList(value)
37876 } else {
37877 addPreset(value)
37878 }
37879 } else {
37880 throw new TypeError('Expected usable value, not `' + value + '`')
37881 }
37882
37883 if (settings) {
37884 namespace.settings = Object.assign(namespace.settings || {}, settings)
37885 }
37886
37887 return processor
37888
37889 /**
37890 * @param {import('..').Pluggable<unknown[]>} value
37891 * @returns {void}
37892 */
37893 function add(value) {
37894 if (typeof value === 'function') {
37895 addPlugin(value)
37896 } else if (typeof value === 'object') {
37897 if (Array.isArray(value)) {
37898 const [plugin, ...options] = value
37899 addPlugin(plugin, ...options)
37900 } else {
37901 addPreset(value)
37902 }
37903 } else {
37904 throw new TypeError('Expected usable value, not `' + value + '`')
37905 }
37906 }
37907
37908 /**
37909 * @param {Preset} result
37910 * @returns {void}
37911 */
37912 function addPreset(result) {
37913 addList(result.plugins)
37914
37915 if (result.settings) {
37916 settings = Object.assign(settings || {}, result.settings)
37917 }
37918 }
37919
37920 /**
37921 * @param {PluggableList|null|undefined} [plugins]
37922 * @returns {void}
37923 */
37924 function addList(plugins) {
37925 let index = -1
37926
37927 if (plugins === null || plugins === undefined) {
37928 // Empty.
37929 } else if (Array.isArray(plugins)) {
37930 while (++index < plugins.length) {
37931 const thing = plugins[index]
37932 add(thing)
37933 }
37934 } else {
37935 throw new TypeError('Expected a list of plugins, not `' + plugins + '`')
37936 }
37937 }
37938
37939 /**
37940 * @param {Plugin} plugin
37941 * @param {...unknown} [value]
37942 * @returns {void}
37943 */
37944 function addPlugin(plugin, value) {
37945 let index = -1
37946 /** @type {Processor['attachers'][number]|undefined} */
37947 let entry
37948
37949 while (++index < attachers.length) {
37950 if (attachers[index][0] === plugin) {
37951 entry = attachers[index]
37952 break
37953 }
37954 }
37955
37956 if (entry) {
37957 if ((0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(entry[1]) && (0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(value)) {
37958 value = extend__WEBPACK_IMPORTED_MODULE_1__(true, entry[1], value)
37959 }
37960
37961 entry[1] = value
37962 } else {
37963 // @ts-expect-error: fine.
37964 attachers.push([...arguments])
37965 }
37966 }
37967 }
37968
37969 /** @type {Processor['parse']} */
37970 function parse(doc) {
37971 processor.freeze()
37972 const file = vfile(doc)
37973 const Parser = processor.Parser
37974 assertParser('parse', Parser)
37975
37976 if (newable(Parser, 'parse')) {
37977 // @ts-expect-error: `newable` checks this.
37978 return new Parser(String(file), file).parse()
37979 }
37980
37981 // @ts-expect-error: `newable` checks this.
37982 return Parser(String(file), file) // eslint-disable-line new-cap
37983 }
37984
37985 /** @type {Processor['stringify']} */
37986 function stringify(node, doc) {
37987 processor.freeze()
37988 const file = vfile(doc)
37989 const Compiler = processor.Compiler
37990 assertCompiler('stringify', Compiler)
37991 assertNode(node)
37992
37993 if (newable(Compiler, 'compile')) {
37994 // @ts-expect-error: `newable` checks this.
37995 return new Compiler(node, file).compile()
37996 }
37997
37998 // @ts-expect-error: `newable` checks this.
37999 return Compiler(node, file) // eslint-disable-line new-cap
38000 }
38001
38002 /**
38003 * @param {Node} node
38004 * @param {VFileCompatible|RunCallback} [doc]
38005 * @param {RunCallback} [callback]
38006 * @returns {Promise<Node>|void}
38007 */
38008 function run(node, doc, callback) {
38009 assertNode(node)
38010 processor.freeze()
38011
38012 if (!callback && typeof doc === 'function') {
38013 callback = doc
38014 doc = undefined
38015 }
38016
38017 if (!callback) {
38018 return new Promise(executor)
38019 }
38020
38021 executor(null, callback)
38022
38023 /**
38024 * @param {null|((node: Node) => void)} resolve
38025 * @param {(error: Error) => void} reject
38026 * @returns {void}
38027 */
38028 function executor(resolve, reject) {
38029 // @ts-expect-error: `doc` can’t be a callback anymore, we checked.
38030 transformers.run(node, vfile(doc), done)
38031
38032 /**
38033 * @param {Error|null} error
38034 * @param {Node} tree
38035 * @param {VFile} file
38036 * @returns {void}
38037 */
38038 function done(error, tree, file) {
38039 tree = tree || node
38040 if (error) {
38041 reject(error)
38042 } else if (resolve) {
38043 resolve(tree)
38044 } else {
38045 // @ts-expect-error: `callback` is defined if `resolve` is not.
38046 callback(null, tree, file)
38047 }
38048 }
38049 }
38050 }
38051
38052 /** @type {Processor['runSync']} */
38053 function runSync(node, file) {
38054 /** @type {Node|undefined} */
38055 let result
38056 /** @type {boolean|undefined} */
38057 let complete
38058
38059 processor.run(node, file, done)
38060
38061 assertDone('runSync', 'run', complete)
38062
38063 // @ts-expect-error: we either bailed on an error or have a tree.
38064 return result
38065
38066 /**
38067 * @param {Error|null} [error]
38068 * @param {Node} [tree]
38069 * @returns {void}
38070 */
38071 function done(error, tree) {
38072 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38073 result = tree
38074 complete = true
38075 }
38076 }
38077
38078 /**
38079 * @param {VFileCompatible} doc
38080 * @param {ProcessCallback} [callback]
38081 * @returns {Promise<VFile>|undefined}
38082 */
38083 function process(doc, callback) {
38084 processor.freeze()
38085 assertParser('process', processor.Parser)
38086 assertCompiler('process', processor.Compiler)
38087
38088 if (!callback) {
38089 return new Promise(executor)
38090 }
38091
38092 executor(null, callback)
38093
38094 /**
38095 * @param {null|((file: VFile) => void)} resolve
38096 * @param {(error?: Error|null|undefined) => void} reject
38097 * @returns {void}
38098 */
38099 function executor(resolve, reject) {
38100 const file = vfile(doc)
38101
38102 processor.run(processor.parse(file), file, (error, tree, file) => {
38103 if (error || !tree || !file) {
38104 done(error)
38105 } else {
38106 /** @type {unknown} */
38107 const result = processor.stringify(tree, file)
38108
38109 if (result === undefined || result === null) {
38110 // Empty.
38111 } else if (looksLikeAVFileValue(result)) {
38112 file.value = result
38113 } else {
38114 file.result = result
38115 }
38116
38117 done(error, file)
38118 }
38119 })
38120
38121 /**
38122 * @param {Error|null|undefined} [error]
38123 * @param {VFile|undefined} [file]
38124 * @returns {void}
38125 */
38126 function done(error, file) {
38127 if (error || !file) {
38128 reject(error)
38129 } else if (resolve) {
38130 resolve(file)
38131 } else {
38132 // @ts-expect-error: `callback` is defined if `resolve` is not.
38133 callback(null, file)
38134 }
38135 }
38136 }
38137 }
38138
38139 /** @type {Processor['processSync']} */
38140 function processSync(doc) {
38141 /** @type {boolean|undefined} */
38142 let complete
38143
38144 processor.freeze()
38145 assertParser('processSync', processor.Parser)
38146 assertCompiler('processSync', processor.Compiler)
38147
38148 const file = vfile(doc)
38149
38150 processor.process(file, done)
38151
38152 assertDone('processSync', 'process', complete)
38153
38154 return file
38155
38156 /**
38157 * @param {Error|null|undefined} [error]
38158 * @returns {void}
38159 */
38160 function done(error) {
38161 complete = true
38162 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38163 }
38164 }
38165 }
38166
38167 /**
38168 * Check if `value` is a constructor.
38169 *
38170 * @param {unknown} value
38171 * @param {string} name
38172 * @returns {boolean}
38173 */
38174 function newable(value, name) {
38175 return (
38176 typeof value === 'function' &&
38177 // Prototypes do exist.
38178 // type-coverage:ignore-next-line
38179 value.prototype &&
38180 // A function with keys in its prototype is probably a constructor.
38181 // Classes’ prototype methods are not enumerable, so we check if some value
38182 // exists in the prototype.
38183 // type-coverage:ignore-next-line
38184 (keys(value.prototype) || name in value.prototype)
38185 )
38186 }
38187
38188 /**
38189 * Check if `value` is an object with keys.
38190 *
38191 * @param {Record<string, unknown>} value
38192 * @returns {boolean}
38193 */
38194 function keys(value) {
38195 /** @type {string} */
38196 let key
38197
38198 for (key in value) {
38199 if (own.call(value, key)) {
38200 return true
38201 }
38202 }
38203
38204 return false
38205 }
38206
38207 /**
38208 * Assert a parser is available.
38209 *
38210 * @param {string} name
38211 * @param {unknown} value
38212 * @returns {asserts value is Parser}
38213 */
38214 function assertParser(name, value) {
38215 if (typeof value !== 'function') {
38216 throw new TypeError('Cannot `' + name + '` without `Parser`')
38217 }
38218 }
38219
38220 /**
38221 * Assert a compiler is available.
38222 *
38223 * @param {string} name
38224 * @param {unknown} value
38225 * @returns {asserts value is Compiler}
38226 */
38227 function assertCompiler(name, value) {
38228 if (typeof value !== 'function') {
38229 throw new TypeError('Cannot `' + name + '` without `Compiler`')
38230 }
38231 }
38232
38233 /**
38234 * Assert the processor is not frozen.
38235 *
38236 * @param {string} name
38237 * @param {unknown} frozen
38238 * @returns {asserts frozen is false}
38239 */
38240 function assertUnfrozen(name, frozen) {
38241 if (frozen) {
38242 throw new Error(
38243 'Cannot call `' +
38244 name +
38245 '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'
38246 )
38247 }
38248 }
38249
38250 /**
38251 * Assert `node` is a unist node.
38252 *
38253 * @param {unknown} node
38254 * @returns {asserts node is Node}
38255 */
38256 function assertNode(node) {
38257 // `isPlainObj` unfortunately uses `any` instead of `unknown`.
38258 // type-coverage:ignore-next-line
38259 if (!(0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(node) || typeof node.type !== 'string') {
38260 throw new TypeError('Expected node, got `' + node + '`')
38261 // Fine.
38262 }
38263 }
38264
38265 /**
38266 * Assert that `complete` is `true`.
38267 *
38268 * @param {string} name
38269 * @param {string} asyncName
38270 * @param {unknown} complete
38271 * @returns {asserts complete is true}
38272 */
38273 function assertDone(name, asyncName, complete) {
38274 if (!complete) {
38275 throw new Error(
38276 '`' + name + '` finished async. Use `' + asyncName + '` instead'
38277 )
38278 }
38279 }
38280
38281 /**
38282 * @param {VFileCompatible} [value]
38283 * @returns {VFile}
38284 */
38285 function vfile(value) {
38286 return looksLikeAVFile(value) ? value : new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile(value)
38287 }
38288
38289 /**
38290 * @param {VFileCompatible} [value]
38291 * @returns {value is VFile}
38292 */
38293 function looksLikeAVFile(value) {
38294 return Boolean(
38295 value &&
38296 typeof value === 'object' &&
38297 'message' in value &&
38298 'messages' in value
38299 )
38300 }
38301
38302 /**
38303 * @param {unknown} [value]
38304 * @returns {value is VFileValue}
38305 */
38306 function looksLikeAVFileValue(value) {
38307 return typeof value === 'string' || is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
38308 }
38309
38310
38311 /***/ }),
38312
38313 /***/ "../node_modules/unist-util-generated/lib/index.js":
38314 /*!*********************************************************!*\
38315 !*** ../node_modules/unist-util-generated/lib/index.js ***!
38316 \*********************************************************/
38317 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38318
38319 "use strict";
38320 __webpack_require__.r(__webpack_exports__);
38321 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38322 /* harmony export */ generated: () => (/* binding */ generated)
38323 /* harmony export */ });
38324 /**
38325 * @typedef PointLike
38326 * @property {number | null | undefined} [line]
38327 * @property {number | null | undefined} [column]
38328 * @property {number | null | undefined} [offset]
38329 *
38330 * @typedef PositionLike
38331 * @property {PointLike | null | undefined} [start]
38332 * @property {PointLike | null | undefined} [end]
38333 *
38334 * @typedef NodeLike
38335 * @property {PositionLike | null | undefined} [position]
38336 */
38337
38338 /**
38339 * Check if `node` is generated.
38340 *
38341 * @param {NodeLike | null | undefined} [node]
38342 * Node to check.
38343 * @returns {boolean}
38344 * Whether `node` is generated (does not have positional info).
38345 */
38346 function generated(node) {
38347 return (
38348 !node ||
38349 !node.position ||
38350 !node.position.start ||
38351 !node.position.start.line ||
38352 !node.position.start.column ||
38353 !node.position.end ||
38354 !node.position.end.line ||
38355 !node.position.end.column
38356 )
38357 }
38358
38359
38360 /***/ }),
38361
38362 /***/ "../node_modules/unist-util-is/lib/index.js":
38363 /*!**************************************************!*\
38364 !*** ../node_modules/unist-util-is/lib/index.js ***!
38365 \**************************************************/
38366 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38367
38368 "use strict";
38369 __webpack_require__.r(__webpack_exports__);
38370 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38371 /* harmony export */ convert: () => (/* binding */ convert),
38372 /* harmony export */ is: () => (/* binding */ is)
38373 /* harmony export */ });
38374 /**
38375 * @typedef {import('unist').Node} Node
38376 * @typedef {import('unist').Parent} Parent
38377 */
38378
38379 /**
38380 * @typedef {Record<string, unknown>} Props
38381 * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test
38382 * Check for an arbitrary node, unaware of TypeScript inferral.
38383 *
38384 * @callback TestFunctionAnything
38385 * Check if a node passes a test, unaware of TypeScript inferral.
38386 * @param {unknown} this
38387 * The given context.
38388 * @param {Node} node
38389 * A node.
38390 * @param {number | null | undefined} [index]
38391 * The node’s position in its parent.
38392 * @param {Parent | null | undefined} [parent]
38393 * The node’s parent.
38394 * @returns {boolean | void}
38395 * Whether this node passes the test.
38396 */
38397
38398 /**
38399 * @template {Node} Kind
38400 * Node type.
38401 * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest
38402 * Check for a node that can be inferred by TypeScript.
38403 */
38404
38405 /**
38406 * Check if a node passes a certain test.
38407 *
38408 * @template {Node} Kind
38409 * Node type.
38410 * @callback TestFunctionPredicate
38411 * Complex test function for a node that can be inferred by TypeScript.
38412 * @param {Node} node
38413 * A node.
38414 * @param {number | null | undefined} [index]
38415 * The node’s position in its parent.
38416 * @param {Parent | null | undefined} [parent]
38417 * The node’s parent.
38418 * @returns {node is Kind}
38419 * Whether this node passes the test.
38420 */
38421
38422 /**
38423 * @callback AssertAnything
38424 * Check that an arbitrary value is a node, unaware of TypeScript inferral.
38425 * @param {unknown} [node]
38426 * Anything (typically a node).
38427 * @param {number | null | undefined} [index]
38428 * The node’s position in its parent.
38429 * @param {Parent | null | undefined} [parent]
38430 * The node’s parent.
38431 * @returns {boolean}
38432 * Whether this is a node and passes a test.
38433 */
38434
38435 /**
38436 * Check if a node is a node and passes a certain node test.
38437 *
38438 * @template {Node} Kind
38439 * Node type.
38440 * @callback AssertPredicate
38441 * Check that an arbitrary value is a specific node, aware of TypeScript.
38442 * @param {unknown} [node]
38443 * Anything (typically a node).
38444 * @param {number | null | undefined} [index]
38445 * The node’s position in its parent.
38446 * @param {Parent | null | undefined} [parent]
38447 * The node’s parent.
38448 * @returns {node is Kind}
38449 * Whether this is a node and passes a test.
38450 */
38451
38452 /**
38453 * Check if `node` is a `Node` and whether it passes the given test.
38454 *
38455 * @param node
38456 * Thing to check, typically `Node`.
38457 * @param test
38458 * A check for a specific node.
38459 * @param index
38460 * The node’s position in its parent.
38461 * @param parent
38462 * The node’s parent.
38463 * @returns
38464 * Whether `node` is a node and passes a test.
38465 */
38466 const is =
38467 /**
38468 * @type {(
38469 * (() => false) &
38470 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &
38471 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &
38472 * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &
38473 * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)
38474 * )}
38475 */
38476 (
38477 /**
38478 * @param {unknown} [node]
38479 * @param {Test} [test]
38480 * @param {number | null | undefined} [index]
38481 * @param {Parent | null | undefined} [parent]
38482 * @param {unknown} [context]
38483 * @returns {boolean}
38484 */
38485 // eslint-disable-next-line max-params
38486 function is(node, test, index, parent, context) {
38487 const check = convert(test)
38488
38489 if (
38490 index !== undefined &&
38491 index !== null &&
38492 (typeof index !== 'number' ||
38493 index < 0 ||
38494 index === Number.POSITIVE_INFINITY)
38495 ) {
38496 throw new Error('Expected positive finite index')
38497 }
38498
38499 if (
38500 parent !== undefined &&
38501 parent !== null &&
38502 (!is(parent) || !parent.children)
38503 ) {
38504 throw new Error('Expected parent node')
38505 }
38506
38507 if (
38508 (parent === undefined || parent === null) !==
38509 (index === undefined || index === null)
38510 ) {
38511 throw new Error('Expected both parent and index')
38512 }
38513
38514 // @ts-expect-error Looks like a node.
38515 return node && node.type && typeof node.type === 'string'
38516 ? Boolean(check.call(context, node, index, parent))
38517 : false
38518 }
38519 )
38520
38521 /**
38522 * Generate an assertion from a test.
38523 *
38524 * Useful if you’re going to test many nodes, for example when creating a
38525 * utility where something else passes a compatible test.
38526 *
38527 * The created function is a bit faster because it expects valid input only:
38528 * a `node`, `index`, and `parent`.
38529 *
38530 * @param test
38531 * * when nullish, checks if `node` is a `Node`.
38532 * * when `string`, works like passing `(node) => node.type === test`.
38533 * * when `function` checks if function passed the node is true.
38534 * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.
38535 * * when `array`, checks if any one of the subtests pass.
38536 * @returns
38537 * An assertion.
38538 */
38539 const convert =
38540 /**
38541 * @type {(
38542 * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &
38543 * ((test?: Test) => AssertAnything)
38544 * )}
38545 */
38546 (
38547 /**
38548 * @param {Test} [test]
38549 * @returns {AssertAnything}
38550 */
38551 function (test) {
38552 if (test === undefined || test === null) {
38553 return ok
38554 }
38555
38556 if (typeof test === 'string') {
38557 return typeFactory(test)
38558 }
38559
38560 if (typeof test === 'object') {
38561 return Array.isArray(test) ? anyFactory(test) : propsFactory(test)
38562 }
38563
38564 if (typeof test === 'function') {
38565 return castFactory(test)
38566 }
38567
38568 throw new Error('Expected function, string, or object as test')
38569 }
38570 )
38571
38572 /**
38573 * @param {Array<string | Props | TestFunctionAnything>} tests
38574 * @returns {AssertAnything}
38575 */
38576 function anyFactory(tests) {
38577 /** @type {Array<AssertAnything>} */
38578 const checks = []
38579 let index = -1
38580
38581 while (++index < tests.length) {
38582 checks[index] = convert(tests[index])
38583 }
38584
38585 return castFactory(any)
38586
38587 /**
38588 * @this {unknown}
38589 * @param {Array<unknown>} parameters
38590 * @returns {boolean}
38591 */
38592 function any(...parameters) {
38593 let index = -1
38594
38595 while (++index < checks.length) {
38596 if (checks[index].call(this, ...parameters)) return true
38597 }
38598
38599 return false
38600 }
38601 }
38602
38603 /**
38604 * Turn an object into a test for a node with a certain fields.
38605 *
38606 * @param {Props} check
38607 * @returns {AssertAnything}
38608 */
38609 function propsFactory(check) {
38610 return castFactory(all)
38611
38612 /**
38613 * @param {Node} node
38614 * @returns {boolean}
38615 */
38616 function all(node) {
38617 /** @type {string} */
38618 let key
38619
38620 for (key in check) {
38621 // @ts-expect-error: hush, it sure works as an index.
38622 if (node[key] !== check[key]) return false
38623 }
38624
38625 return true
38626 }
38627 }
38628
38629 /**
38630 * Turn a string into a test for a node with a certain type.
38631 *
38632 * @param {string} check
38633 * @returns {AssertAnything}
38634 */
38635 function typeFactory(check) {
38636 return castFactory(type)
38637
38638 /**
38639 * @param {Node} node
38640 */
38641 function type(node) {
38642 return node && node.type === check
38643 }
38644 }
38645
38646 /**
38647 * Turn a custom test into a test for a node that passes that test.
38648 *
38649 * @param {TestFunctionAnything} check
38650 * @returns {AssertAnything}
38651 */
38652 function castFactory(check) {
38653 return assertion
38654
38655 /**
38656 * @this {unknown}
38657 * @param {unknown} node
38658 * @param {Array<unknown>} parameters
38659 * @returns {boolean}
38660 */
38661 function assertion(node, ...parameters) {
38662 return Boolean(
38663 node &&
38664 typeof node === 'object' &&
38665 'type' in node &&
38666 // @ts-expect-error: fine.
38667 Boolean(check.call(this, node, ...parameters))
38668 )
38669 }
38670 }
38671
38672 function ok() {
38673 return true
38674 }
38675
38676
38677 /***/ }),
38678
38679 /***/ "../node_modules/unist-util-position/lib/index.js":
38680 /*!********************************************************!*\
38681 !*** ../node_modules/unist-util-position/lib/index.js ***!
38682 \********************************************************/
38683 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38684
38685 "use strict";
38686 __webpack_require__.r(__webpack_exports__);
38687 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38688 /* harmony export */ pointEnd: () => (/* binding */ pointEnd),
38689 /* harmony export */ pointStart: () => (/* binding */ pointStart),
38690 /* harmony export */ position: () => (/* binding */ position)
38691 /* harmony export */ });
38692 /**
38693 * @typedef {import('unist').Position} Position
38694 * @typedef {import('unist').Node} Node
38695 * @typedef {import('unist').Point} Point
38696 */
38697
38698 /**
38699 * @typedef NodeLike
38700 * @property {string} type
38701 * @property {PositionLike | null | undefined} [position]
38702 *
38703 * @typedef PositionLike
38704 * @property {PointLike | null | undefined} [start]
38705 * @property {PointLike | null | undefined} [end]
38706 *
38707 * @typedef PointLike
38708 * @property {number | null | undefined} [line]
38709 * @property {number | null | undefined} [column]
38710 * @property {number | null | undefined} [offset]
38711 */
38712
38713 /**
38714 * Get the starting point of `node`.
38715 *
38716 * @param node
38717 * Node.
38718 * @returns
38719 * Point.
38720 */
38721 const pointStart = point('start')
38722
38723 /**
38724 * Get the ending point of `node`.
38725 *
38726 * @param node
38727 * Node.
38728 * @returns
38729 * Point.
38730 */
38731 const pointEnd = point('end')
38732
38733 /**
38734 * Get the positional info of `node`.
38735 *
38736 * @param {NodeLike | Node | null | undefined} [node]
38737 * Node.
38738 * @returns {Position}
38739 * Position.
38740 */
38741 function position(node) {
38742 return {start: pointStart(node), end: pointEnd(node)}
38743 }
38744
38745 /**
38746 * Get the positional info of `node`.
38747 *
38748 * @param {'start' | 'end'} type
38749 * Side.
38750 * @returns
38751 * Getter.
38752 */
38753 function point(type) {
38754 return point
38755
38756 /**
38757 * Get the point info of `node` at a bound side.
38758 *
38759 * @param {NodeLike | Node | null | undefined} [node]
38760 * @returns {Point}
38761 */
38762 function point(node) {
38763 const point = (node && node.position && node.position[type]) || {}
38764
38765 // To do: next major: don’t return points when invalid.
38766 return {
38767 // @ts-expect-error: in practice, null is allowed.
38768 line: point.line || null,
38769 // @ts-expect-error: in practice, null is allowed.
38770 column: point.column || null,
38771 // @ts-expect-error: in practice, null is allowed.
38772 offset: point.offset > -1 ? point.offset : null
38773 }
38774 }
38775 }
38776
38777
38778 /***/ }),
38779
38780 /***/ "../node_modules/unist-util-stringify-position/lib/index.js":
38781 /*!******************************************************************!*\
38782 !*** ../node_modules/unist-util-stringify-position/lib/index.js ***!
38783 \******************************************************************/
38784 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38785
38786 "use strict";
38787 __webpack_require__.r(__webpack_exports__);
38788 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38789 /* harmony export */ stringifyPosition: () => (/* binding */ stringifyPosition)
38790 /* harmony export */ });
38791 /**
38792 * @typedef {import('unist').Node} Node
38793 * @typedef {import('unist').Point} Point
38794 * @typedef {import('unist').Position} Position
38795 */
38796
38797 /**
38798 * @typedef NodeLike
38799 * @property {string} type
38800 * @property {PositionLike | null | undefined} [position]
38801 *
38802 * @typedef PositionLike
38803 * @property {PointLike | null | undefined} [start]
38804 * @property {PointLike | null | undefined} [end]
38805 *
38806 * @typedef PointLike
38807 * @property {number | null | undefined} [line]
38808 * @property {number | null | undefined} [column]
38809 * @property {number | null | undefined} [offset]
38810 */
38811
38812 /**
38813 * Serialize the positional info of a point, position (start and end points),
38814 * or node.
38815 *
38816 * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
38817 * Node, position, or point.
38818 * @returns {string}
38819 * Pretty printed positional info of a node (`string`).
38820 *
38821 * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
38822 * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
38823 * column, `s` for `start`, and `e` for end.
38824 * An empty string (`''`) is returned if the given value is neither `node`,
38825 * `position`, nor `point`.
38826 */
38827 function stringifyPosition(value) {
38828 // Nothing.
38829 if (!value || typeof value !== 'object') {
38830 return ''
38831 }
38832
38833 // Node.
38834 if ('position' in value || 'type' in value) {
38835 return position(value.position)
38836 }
38837
38838 // Position.
38839 if ('start' in value || 'end' in value) {
38840 return position(value)
38841 }
38842
38843 // Point.
38844 if ('line' in value || 'column' in value) {
38845 return point(value)
38846 }
38847
38848 // ?
38849 return ''
38850 }
38851
38852 /**
38853 * @param {Point | PointLike | null | undefined} point
38854 * @returns {string}
38855 */
38856 function point(point) {
38857 return index(point && point.line) + ':' + index(point && point.column)
38858 }
38859
38860 /**
38861 * @param {Position | PositionLike | null | undefined} pos
38862 * @returns {string}
38863 */
38864 function position(pos) {
38865 return point(pos && pos.start) + '-' + point(pos && pos.end)
38866 }
38867
38868 /**
38869 * @param {number | null | undefined} value
38870 * @returns {number}
38871 */
38872 function index(value) {
38873 return value && typeof value === 'number' ? value : 1
38874 }
38875
38876
38877 /***/ }),
38878
38879 /***/ "../node_modules/unist-util-visit-parents/lib/color.browser.js":
38880 /*!*********************************************************************!*\
38881 !*** ../node_modules/unist-util-visit-parents/lib/color.browser.js ***!
38882 \*********************************************************************/
38883 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38884
38885 "use strict";
38886 __webpack_require__.r(__webpack_exports__);
38887 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38888 /* harmony export */ color: () => (/* binding */ color)
38889 /* harmony export */ });
38890 /**
38891 * @param {string} d
38892 * @returns {string}
38893 */
38894 function color(d) {
38895 return d
38896 }
38897
38898
38899 /***/ }),
38900
38901 /***/ "../node_modules/unist-util-visit-parents/lib/index.js":
38902 /*!*************************************************************!*\
38903 !*** ../node_modules/unist-util-visit-parents/lib/index.js ***!
38904 \*************************************************************/
38905 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38906
38907 "use strict";
38908 __webpack_require__.r(__webpack_exports__);
38909 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38910 /* harmony export */ CONTINUE: () => (/* binding */ CONTINUE),
38911 /* harmony export */ EXIT: () => (/* binding */ EXIT),
38912 /* harmony export */ SKIP: () => (/* binding */ SKIP),
38913 /* harmony export */ visitParents: () => (/* binding */ visitParents)
38914 /* harmony export */ });
38915 /* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ "../node_modules/unist-util-is/lib/index.js");
38916 /* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "../node_modules/unist-util-visit-parents/lib/color.browser.js");
38917 /**
38918 * @typedef {import('unist').Node} Node
38919 * @typedef {import('unist').Parent} Parent
38920 * @typedef {import('unist-util-is').Test} Test
38921 */
38922
38923 /**
38924 * @typedef {boolean | 'skip'} Action
38925 * Union of the action types.
38926 *
38927 * @typedef {number} Index
38928 * Move to the sibling at `index` next (after node itself is completely
38929 * traversed).
38930 *
38931 * Useful if mutating the tree, such as removing the node the visitor is
38932 * currently on, or any of its previous siblings.
38933 * Results less than 0 or greater than or equal to `children.length` stop
38934 * traversing the parent.
38935 *
38936 * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple
38937 * List with one or two values, the first an action, the second an index.
38938 *
38939 * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
38940 * Any value that can be returned from a visitor.
38941 */
38942
38943 /**
38944 * @template {Node} [Visited=Node]
38945 * Visited node type.
38946 * @template {Parent} [Ancestor=Parent]
38947 * Ancestor type.
38948 * @callback Visitor
38949 * Handle a node (matching `test`, if given).
38950 *
38951 * Visitors are free to transform `node`.
38952 * They can also transform the parent of node (the last of `ancestors`).
38953 *
38954 * Replacing `node` itself, if `SKIP` is not returned, still causes its
38955 * descendants to be walked (which is a bug).
38956 *
38957 * When adding or removing previous siblings of `node` (or next siblings, in
38958 * case of reverse), the `Visitor` should return a new `Index` to specify the
38959 * sibling to traverse after `node` is traversed.
38960 * Adding or removing next siblings of `node` (or previous siblings, in case
38961 * of reverse) is handled as expected without needing to return a new `Index`.
38962 *
38963 * Removing the children property of an ancestor still results in them being
38964 * traversed.
38965 * @param {Visited} node
38966 * Found node.
38967 * @param {Array<Ancestor>} ancestors
38968 * Ancestors of `node`.
38969 * @returns {VisitorResult}
38970 * What to do next.
38971 *
38972 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
38973 * An `Action` is treated as a tuple of `[Action]`.
38974 *
38975 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
38976 * When the `Action` is `EXIT`, that action can be returned.
38977 * When the `Action` is `CONTINUE`, `Index` can be returned.
38978 */
38979
38980 /**
38981 * @template {Node} [Tree=Node]
38982 * Tree type.
38983 * @template {Test} [Check=string]
38984 * Test type.
38985 * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor
38986 * Build a typed `Visitor` function from a tree and a test.
38987 *
38988 * It will infer which values are passed as `node` and which as `parents`.
38989 */
38990
38991
38992
38993
38994 /**
38995 * Continue traversing as normal.
38996 */
38997 const CONTINUE = true
38998
38999 /**
39000 * Stop traversing immediately.
39001 */
39002 const EXIT = false
39003
39004 /**
39005 * Do not traverse this node’s children.
39006 */
39007 const SKIP = 'skip'
39008
39009 /**
39010 * Visit nodes, with ancestral information.
39011 *
39012 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39013 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39014 *
39015 * You can choose for which nodes `visitor` is called by passing a `test`.
39016 * For complex tests, you should test yourself in `visitor`, as it will be
39017 * faster and will have improved type information.
39018 *
39019 * Walking the tree is an intensive task.
39020 * Make use of the return values of the visitor when possible.
39021 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39022 * to check if a node matches, and then perform different operations.
39023 *
39024 * You can change the tree.
39025 * See `Visitor` for more info.
39026 *
39027 * @param tree
39028 * Tree to traverse.
39029 * @param test
39030 * `unist-util-is`-compatible test
39031 * @param visitor
39032 * Handle each node.
39033 * @param reverse
39034 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39035 * @returns
39036 * Nothing.
39037 */
39038 const visitParents =
39039 /**
39040 * @type {(
39041 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39042 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39043 * )}
39044 */
39045 (
39046 /**
39047 * @param {Node} tree
39048 * @param {Test} test
39049 * @param {Visitor<Node>} visitor
39050 * @param {boolean | null | undefined} [reverse]
39051 * @returns {void}
39052 */
39053 function (tree, test, visitor, reverse) {
39054 if (typeof test === 'function' && typeof visitor !== 'function') {
39055 reverse = visitor
39056 // @ts-expect-error no visitor given, so `visitor` is test.
39057 visitor = test
39058 test = null
39059 }
39060
39061 const is = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)(test)
39062 const step = reverse ? -1 : 1
39063
39064 factory(tree, undefined, [])()
39065
39066 /**
39067 * @param {Node} node
39068 * @param {number | undefined} index
39069 * @param {Array<Parent>} parents
39070 */
39071 function factory(node, index, parents) {
39072 /** @type {Record<string, unknown>} */
39073 // @ts-expect-error: hush
39074 const value = node && typeof node === 'object' ? node : {}
39075
39076 if (typeof value.type === 'string') {
39077 const name =
39078 // `hast`
39079 typeof value.tagName === 'string'
39080 ? value.tagName
39081 : // `xast`
39082 typeof value.name === 'string'
39083 ? value.name
39084 : undefined
39085
39086 Object.defineProperty(visit, 'name', {
39087 value:
39088 'node (' + (0,_color_js__WEBPACK_IMPORTED_MODULE_1__.color)(node.type + (name ? '<' + name + '>' : '')) + ')'
39089 })
39090 }
39091
39092 return visit
39093
39094 function visit() {
39095 /** @type {ActionTuple} */
39096 let result = []
39097 /** @type {ActionTuple} */
39098 let subresult
39099 /** @type {number} */
39100 let offset
39101 /** @type {Array<Parent>} */
39102 let grandparents
39103
39104 if (!test || is(node, index, parents[parents.length - 1] || null)) {
39105 result = toResult(visitor(node, parents))
39106
39107 if (result[0] === EXIT) {
39108 return result
39109 }
39110 }
39111
39112 // @ts-expect-error looks like a parent.
39113 if (node.children && result[0] !== SKIP) {
39114 // @ts-expect-error looks like a parent.
39115 offset = (reverse ? node.children.length : -1) + step
39116 // @ts-expect-error looks like a parent.
39117 grandparents = parents.concat(node)
39118
39119 // @ts-expect-error looks like a parent.
39120 while (offset > -1 && offset < node.children.length) {
39121 // @ts-expect-error looks like a parent.
39122 subresult = factory(node.children[offset], offset, grandparents)()
39123
39124 if (subresult[0] === EXIT) {
39125 return subresult
39126 }
39127
39128 offset =
39129 typeof subresult[1] === 'number' ? subresult[1] : offset + step
39130 }
39131 }
39132
39133 return result
39134 }
39135 }
39136 }
39137 )
39138
39139 /**
39140 * Turn a return value into a clean result.
39141 *
39142 * @param {VisitorResult} value
39143 * Valid return values from visitors.
39144 * @returns {ActionTuple}
39145 * Clean result.
39146 */
39147 function toResult(value) {
39148 if (Array.isArray(value)) {
39149 return value
39150 }
39151
39152 if (typeof value === 'number') {
39153 return [CONTINUE, value]
39154 }
39155
39156 return [value]
39157 }
39158
39159
39160 /***/ }),
39161
39162 /***/ "../node_modules/unist-util-visit/lib/index.js":
39163 /*!*****************************************************!*\
39164 !*** ../node_modules/unist-util-visit/lib/index.js ***!
39165 \*****************************************************/
39166 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39167
39168 "use strict";
39169 __webpack_require__.r(__webpack_exports__);
39170 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39171 /* harmony export */ CONTINUE: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.CONTINUE),
39172 /* harmony export */ EXIT: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.EXIT),
39173 /* harmony export */ SKIP: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.SKIP),
39174 /* harmony export */ visit: () => (/* binding */ visit)
39175 /* harmony export */ });
39176 /* 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");
39177 /**
39178 * @typedef {import('unist').Node} Node
39179 * @typedef {import('unist').Parent} Parent
39180 * @typedef {import('unist-util-is').Test} Test
39181 * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult
39182 */
39183
39184 /**
39185 * Check if `Child` can be a child of `Ancestor`.
39186 *
39187 * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns
39188 * `never`.
39189 *
39190 * @template {Node} Ancestor
39191 * Node type.
39192 * @template {Node} Child
39193 * Node type.
39194 * @typedef {(
39195 * Ancestor extends Parent
39196 * ? Child extends Ancestor['children'][number]
39197 * ? Ancestor
39198 * : never
39199 * : never
39200 * )} ParentsOf
39201 */
39202
39203 /**
39204 * @template {Node} [Visited=Node]
39205 * Visited node type.
39206 * @template {Parent} [Ancestor=Parent]
39207 * Ancestor type.
39208 * @callback Visitor
39209 * Handle a node (matching `test`, if given).
39210 *
39211 * Visitors are free to transform `node`.
39212 * They can also transform `parent`.
39213 *
39214 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39215 * descendants to be walked (which is a bug).
39216 *
39217 * When adding or removing previous siblings of `node` (or next siblings, in
39218 * case of reverse), the `Visitor` should return a new `Index` to specify the
39219 * sibling to traverse after `node` is traversed.
39220 * Adding or removing next siblings of `node` (or previous siblings, in case
39221 * of reverse) is handled as expected without needing to return a new `Index`.
39222 *
39223 * Removing the children property of `parent` still results in them being
39224 * traversed.
39225 * @param {Visited} node
39226 * Found node.
39227 * @param {Visited extends Node ? number | null : never} index
39228 * Index of `node` in `parent`.
39229 * @param {Ancestor extends Node ? Ancestor | null : never} parent
39230 * Parent of `node`.
39231 * @returns {VisitorResult}
39232 * What to do next.
39233 *
39234 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39235 * An `Action` is treated as a tuple of `[Action]`.
39236 *
39237 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39238 * When the `Action` is `EXIT`, that action can be returned.
39239 * When the `Action` is `CONTINUE`, `Index` can be returned.
39240 */
39241
39242 /**
39243 * Build a typed `Visitor` function from a node and all possible parents.
39244 *
39245 * It will infer which values are passed as `node` and which as `parent`.
39246 *
39247 * @template {Node} Visited
39248 * Node type.
39249 * @template {Parent} Ancestor
39250 * Parent type.
39251 * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch
39252 */
39253
39254 /**
39255 * Build a typed `Visitor` function from a list of descendants and a test.
39256 *
39257 * It will infer which values are passed as `node` and which as `parent`.
39258 *
39259 * @template {Node} Descendant
39260 * Node type.
39261 * @template {Test} Check
39262 * Test type.
39263 * @typedef {(
39264 * BuildVisitorFromMatch<
39265 * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,
39266 * Extract<Descendant, Parent>
39267 * >
39268 * )} BuildVisitorFromDescendants
39269 */
39270
39271 /**
39272 * Build a typed `Visitor` function from a tree and a test.
39273 *
39274 * It will infer which values are passed as `node` and which as `parent`.
39275 *
39276 * @template {Node} [Tree=Node]
39277 * Node type.
39278 * @template {Test} [Check=string]
39279 * Test type.
39280 * @typedef {(
39281 * BuildVisitorFromDescendants<
39282 * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,
39283 * Check
39284 * >
39285 * )} BuildVisitor
39286 */
39287
39288
39289
39290 /**
39291 * Visit nodes.
39292 *
39293 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39294 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39295 *
39296 * You can choose for which nodes `visitor` is called by passing a `test`.
39297 * For complex tests, you should test yourself in `visitor`, as it will be
39298 * faster and will have improved type information.
39299 *
39300 * Walking the tree is an intensive task.
39301 * Make use of the return values of the visitor when possible.
39302 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39303 * to check if a node matches, and then perform different operations.
39304 *
39305 * You can change the tree.
39306 * See `Visitor` for more info.
39307 *
39308 * @param tree
39309 * Tree to traverse.
39310 * @param test
39311 * `unist-util-is`-compatible test
39312 * @param visitor
39313 * Handle each node.
39314 * @param reverse
39315 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39316 * @returns
39317 * Nothing.
39318 */
39319 const visit =
39320 /**
39321 * @type {(
39322 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39323 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39324 * )}
39325 */
39326 (
39327 /**
39328 * @param {Node} tree
39329 * @param {Test} test
39330 * @param {Visitor} visitor
39331 * @param {boolean | null | undefined} [reverse]
39332 * @returns {void}
39333 */
39334 function (tree, test, visitor, reverse) {
39335 if (typeof test === 'function' && typeof visitor !== 'function') {
39336 reverse = visitor
39337 visitor = test
39338 test = null
39339 }
39340
39341 (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.visitParents)(tree, test, overload, reverse)
39342
39343 /**
39344 * @param {Node} node
39345 * @param {Array<Parent>} parents
39346 */
39347 function overload(node, parents) {
39348 const parent = parents[parents.length - 1]
39349 return visitor(
39350 node,
39351 parent ? parent.children.indexOf(node) : null,
39352 parent
39353 )
39354 }
39355 }
39356 )
39357
39358
39359
39360
39361 /***/ }),
39362
39363 /***/ "../node_modules/uvu/assert/index.mjs":
39364 /*!********************************************!*\
39365 !*** ../node_modules/uvu/assert/index.mjs ***!
39366 \********************************************/
39367 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39368
39369 "use strict";
39370 __webpack_require__.r(__webpack_exports__);
39371 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39372 /* harmony export */ Assertion: () => (/* binding */ Assertion),
39373 /* harmony export */ equal: () => (/* binding */ equal),
39374 /* harmony export */ fixture: () => (/* binding */ fixture),
39375 /* harmony export */ instance: () => (/* binding */ instance),
39376 /* harmony export */ is: () => (/* binding */ is),
39377 /* harmony export */ match: () => (/* binding */ match),
39378 /* harmony export */ not: () => (/* binding */ not),
39379 /* harmony export */ ok: () => (/* binding */ ok),
39380 /* harmony export */ snapshot: () => (/* binding */ snapshot),
39381 /* harmony export */ throws: () => (/* binding */ throws),
39382 /* harmony export */ type: () => (/* binding */ type),
39383 /* harmony export */ unreachable: () => (/* binding */ unreachable)
39384 /* harmony export */ });
39385 /* harmony import */ var dequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dequal */ "../node_modules/dequal/dist/index.mjs");
39386 /* harmony import */ var uvu_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/diff */ "../node_modules/uvu/diff/index.mjs");
39387
39388
39389
39390 function dedent(str) {
39391 str = str.replace(/\r?\n/g, '\n');
39392 let arr = str.match(/^[ \t]*(?=\S)/gm);
39393 let i = 0, min = 1/0, len = (arr||[]).length;
39394 for (; i < len; i++) min = Math.min(min, arr[i].length);
39395 return len && min ? str.replace(new RegExp(`^[ \\t]{${min}}`, 'gm'), '') : str;
39396 }
39397
39398 class Assertion extends Error {
39399 constructor(opts={}) {
39400 super(opts.message);
39401 this.name = 'Assertion';
39402 this.code = 'ERR_ASSERTION';
39403 if (Error.captureStackTrace) {
39404 Error.captureStackTrace(this, this.constructor);
39405 }
39406 this.details = opts.details || false;
39407 this.generated = !!opts.generated;
39408 this.operator = opts.operator;
39409 this.expects = opts.expects;
39410 this.actual = opts.actual;
39411 }
39412 }
39413
39414 function assert(bool, actual, expects, operator, detailer, backup, msg) {
39415 if (bool) return;
39416 let message = msg || backup;
39417 if (msg instanceof Error) throw msg;
39418 let details = detailer && detailer(actual, expects);
39419 throw new Assertion({ actual, expects, operator, message, details, generated: !msg });
39420 }
39421
39422 function ok(val, msg) {
39423 assert(!!val, false, true, 'ok', false, 'Expected value to be truthy', msg);
39424 }
39425
39426 function is(val, exp, msg) {
39427 assert(val === exp, val, exp, 'is', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.compare, 'Expected values to be strictly equal:', msg);
39428 }
39429
39430 function equal(val, exp, msg) {
39431 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);
39432 }
39433
39434 function unreachable(msg) {
39435 assert(false, true, false, 'unreachable', false, 'Expected not to be reached!', msg);
39436 }
39437
39438 function type(val, exp, msg) {
39439 let tmp = typeof val;
39440 assert(tmp === exp, tmp, exp, 'type', false, `Expected "${tmp}" to be "${exp}"`, msg);
39441 }
39442
39443 function instance(val, exp, msg) {
39444 let name = '`' + (exp.name || exp.constructor.name) + '`';
39445 assert(val instanceof exp, val, exp, 'instance', false, `Expected value to be an instance of ${name}`, msg);
39446 }
39447
39448 function match(val, exp, msg) {
39449 if (typeof exp === 'string') {
39450 assert(val.includes(exp), val, exp, 'match', false, `Expected value to include "${exp}" substring`, msg);
39451 } else {
39452 assert(exp.test(val), val, exp, 'match', false, `Expected value to match \`${String(exp)}\` pattern`, msg);
39453 }
39454 }
39455
39456 function snapshot(val, exp, msg) {
39457 val=dedent(val); exp=dedent(exp);
39458 assert(val === exp, val, exp, 'snapshot', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines, 'Expected value to match snapshot:', msg);
39459 }
39460
39461 const lineNums = (x, y) => (0,uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines)(x, y, 1);
39462 function fixture(val, exp, msg) {
39463 val=dedent(val); exp=dedent(exp);
39464 assert(val === exp, val, exp, 'fixture', lineNums, 'Expected value to match fixture:', msg);
39465 }
39466
39467 function throws(blk, exp, msg) {
39468 if (!msg && typeof exp === 'string') {
39469 msg = exp; exp = null;
39470 }
39471
39472 try {
39473 blk();
39474 assert(false, false, true, 'throws', false, 'Expected function to throw', msg);
39475 } catch (err) {
39476 if (err instanceof Assertion) throw err;
39477
39478 if (typeof exp === 'function') {
39479 assert(exp(err), false, true, 'throws', false, 'Expected function to throw matching exception', msg);
39480 } else if (exp instanceof RegExp) {
39481 assert(exp.test(err.message), false, true, 'throws', false, `Expected function to throw exception matching \`${String(exp)}\` pattern`, msg);
39482 }
39483 }
39484 }
39485
39486 // ---
39487
39488 function not(val, msg) {
39489 assert(!val, true, false, 'not', false, 'Expected value to be falsey', msg);
39490 }
39491
39492 not.ok = not;
39493
39494 is.not = function (val, exp, msg) {
39495 assert(val !== exp, val, exp, 'is.not', false, 'Expected values not to be strictly equal', msg);
39496 }
39497
39498 not.equal = function (val, exp, msg) {
39499 assert(!(0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(val, exp), val, exp, 'not.equal', false, 'Expected values not to be deeply equal', msg);
39500 }
39501
39502 not.type = function (val, exp, msg) {
39503 let tmp = typeof val;
39504 assert(tmp !== exp, tmp, exp, 'not.type', false, `Expected "${tmp}" not to be "${exp}"`, msg);
39505 }
39506
39507 not.instance = function (val, exp, msg) {
39508 let name = '`' + (exp.name || exp.constructor.name) + '`';
39509 assert(!(val instanceof exp), val, exp, 'not.instance', false, `Expected value not to be an instance of ${name}`, msg);
39510 }
39511
39512 not.snapshot = function (val, exp, msg) {
39513 val=dedent(val); exp=dedent(exp);
39514 assert(val !== exp, val, exp, 'not.snapshot', false, 'Expected value not to match snapshot', msg);
39515 }
39516
39517 not.fixture = function (val, exp, msg) {
39518 val=dedent(val); exp=dedent(exp);
39519 assert(val !== exp, val, exp, 'not.fixture', false, 'Expected value not to match fixture', msg);
39520 }
39521
39522 not.match = function (val, exp, msg) {
39523 if (typeof exp === 'string') {
39524 assert(!val.includes(exp), val, exp, 'not.match', false, `Expected value not to include "${exp}" substring`, msg);
39525 } else {
39526 assert(!exp.test(val), val, exp, 'not.match', false, `Expected value not to match \`${String(exp)}\` pattern`, msg);
39527 }
39528 }
39529
39530 not.throws = function (blk, exp, msg) {
39531 if (!msg && typeof exp === 'string') {
39532 msg = exp; exp = null;
39533 }
39534
39535 try {
39536 blk();
39537 } catch (err) {
39538 if (typeof exp === 'function') {
39539 assert(!exp(err), true, false, 'not.throws', false, 'Expected function not to throw matching exception', msg);
39540 } else if (exp instanceof RegExp) {
39541 assert(!exp.test(err.message), true, false, 'not.throws', false, `Expected function not to throw exception matching \`${String(exp)}\` pattern`, msg);
39542 } else if (!exp) {
39543 assert(false, true, false, 'not.throws', false, 'Expected function not to throw', msg);
39544 }
39545 }
39546 }
39547
39548
39549 /***/ }),
39550
39551 /***/ "../node_modules/uvu/diff/index.mjs":
39552 /*!******************************************!*\
39553 !*** ../node_modules/uvu/diff/index.mjs ***!
39554 \******************************************/
39555 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39556
39557 "use strict";
39558 __webpack_require__.r(__webpack_exports__);
39559 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39560 /* harmony export */ arrays: () => (/* binding */ arrays),
39561 /* harmony export */ chars: () => (/* binding */ chars),
39562 /* harmony export */ circular: () => (/* binding */ circular),
39563 /* harmony export */ compare: () => (/* binding */ compare),
39564 /* harmony export */ direct: () => (/* binding */ direct),
39565 /* harmony export */ lines: () => (/* binding */ lines),
39566 /* harmony export */ sort: () => (/* binding */ sort),
39567 /* harmony export */ stringify: () => (/* binding */ stringify)
39568 /* harmony export */ });
39569 /* harmony import */ var kleur__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kleur */ "../node_modules/uvu/node_modules/kleur/index.mjs");
39570 /* harmony import */ var diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diff */ "../node_modules/diff/lib/index.mjs");
39571
39572
39573
39574 const colors = {
39575 '--': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red,
39576 '··': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].grey,
39577 '++': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].green,
39578 };
39579
39580 const TITLE = kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim().italic;
39581 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('↵');
39582 const LOG = (sym, str) => colors[sym](sym + PRETTY(str)) + '\n';
39583 const LINE = (num, x) => kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('L' + String(num).padStart(x, '0') + ' ');
39584 const PRETTY = str => str.replace(/[ ]/g, SPACE).replace(/\t/g, TAB).replace(/(\r?\n)/g, NL);
39585
39586 function line(obj, prev, pad) {
39587 let char = obj.removed ? '--' : obj.added ? '++' : '··';
39588 let arr = obj.value.replace(/\r?\n$/, '').split('\n');
39589 let i=0, tmp, out='';
39590
39591 if (obj.added) out += colors[char]().underline(TITLE('Expected:')) + '\n';
39592 else if (obj.removed) out += colors[char]().underline(TITLE('Actual:')) + '\n';
39593
39594 for (; i < arr.length; i++) {
39595 tmp = arr[i];
39596 if (tmp != null) {
39597 if (prev) out += LINE(prev + i, pad);
39598 out += LOG(char, tmp || '\n');
39599 }
39600 }
39601
39602 return out;
39603 }
39604
39605 // TODO: want better diffing
39606 //~> complex items bail outright
39607 function arrays(input, expect) {
39608 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffArrays(input, expect);
39609 let i=0, j=0, k=0, tmp, val, char, isObj, str;
39610 let out = LOG('··', '[');
39611
39612 for (; i < arr.length; i++) {
39613 char = (tmp = arr[i]).removed ? '--' : tmp.added ? '++' : '··';
39614
39615 if (tmp.added) {
39616 out += colors[char]().underline(TITLE('Expected:')) + '\n';
39617 } else if (tmp.removed) {
39618 out += colors[char]().underline(TITLE('Actual:')) + '\n';
39619 }
39620
39621 for (j=0; j < tmp.value.length; j++) {
39622 isObj = (tmp.value[j] && typeof tmp.value[j] === 'object');
39623 val = stringify(tmp.value[j]).split(/\r?\n/g);
39624 for (k=0; k < val.length;) {
39625 str = ' ' + val[k++] + (isObj ? '' : ',');
39626 if (isObj && k === val.length && (j + 1) < tmp.value.length) str += ',';
39627 out += LOG(char, str);
39628 }
39629 }
39630 }
39631
39632 return out + LOG('··', ']');
39633 }
39634
39635 function lines(input, expect, linenum = 0) {
39636 let i=0, tmp, output='';
39637 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffLines(input, expect);
39638 let pad = String(expect.split(/\r?\n/g).length - linenum).length;
39639
39640 for (; i < arr.length; i++) {
39641 output += line(tmp = arr[i], linenum, pad);
39642 if (linenum && !tmp.removed) linenum += tmp.count;
39643 }
39644
39645 return output;
39646 }
39647
39648 function chars(input, expect) {
39649 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffChars(input, expect);
39650 let i=0, output='', tmp;
39651
39652 let l1 = input.length;
39653 let l2 = expect.length;
39654
39655 let p1 = PRETTY(input);
39656 let p2 = PRETTY(expect);
39657
39658 tmp = arr[i];
39659
39660 if (l1 === l2) {
39661 // no length offsets
39662 } else if (tmp.removed && arr[i + 1]) {
39663 let del = tmp.count - arr[i + 1].count;
39664 if (del == 0) {
39665 // wash~
39666 } else if (del > 0) {
39667 expect = ' '.repeat(del) + expect;
39668 p2 = ' '.repeat(del) + p2;
39669 l2 += del;
39670 } else if (del < 0) {
39671 input = ' '.repeat(-del) + input;
39672 p1 = ' '.repeat(-del) + p1;
39673 l1 += -del;
39674 }
39675 }
39676
39677 output += direct(p1, p2, l1, l2);
39678
39679 if (l1 === l2) {
39680 for (tmp=' '; i < l1; i++) {
39681 tmp += input[i] === expect[i] ? ' ' : '^';
39682 }
39683 } else {
39684 for (tmp=' '; i < arr.length; i++) {
39685 tmp += ((arr[i].added || arr[i].removed) ? '^' : ' ').repeat(Math.max(arr[i].count, 0));
39686 if (i + 1 < arr.length && ((arr[i].added && arr[i+1].removed) || (arr[i].removed && arr[i+1].added))) {
39687 arr[i + 1].count -= arr[i].count;
39688 }
39689 }
39690 }
39691
39692 return output + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red(tmp);
39693 }
39694
39695 function direct(input, expect, lenA = String(input).length, lenB = String(expect).length) {
39696 let gutter = 4;
39697 let lenC = Math.max(lenA, lenB);
39698 let typeA=typeof input, typeB=typeof expect;
39699
39700 if (typeA !== typeB) {
39701 gutter = 2;
39702
39703 let delA = gutter + lenC - lenA;
39704 let delB = gutter + lenC - lenB;
39705
39706 input += ' '.repeat(delA) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeA}]`);
39707 expect += ' '.repeat(delB) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeB}]`);
39708
39709 lenA += delA + typeA.length + 2;
39710 lenB += delB + typeB.length + 2;
39711 lenC = Math.max(lenA, lenB);
39712 }
39713
39714 let output = colors['++']('++' + expect + ' '.repeat(gutter + lenC - lenB) + TITLE('(Expected)')) + '\n';
39715 return output + colors['--']('--' + input + ' '.repeat(gutter + lenC - lenA) + TITLE('(Actual)')) + '\n';
39716 }
39717
39718 function sort(input, expect) {
39719 var k, i=0, tmp, isArr = Array.isArray(input);
39720 var keys=[], out=isArr ? Array(input.length) : {};
39721
39722 if (isArr) {
39723 for (i=0; i < out.length; i++) {
39724 tmp = input[i];
39725 if (!tmp || typeof tmp !== 'object') out[i] = tmp;
39726 else out[i] = sort(tmp, expect[i]); // might not be right
39727 }
39728 } else {
39729 for (k in expect)
39730 keys.push(k);
39731
39732 for (; i < keys.length; i++) {
39733 if (Object.prototype.hasOwnProperty.call(input, k = keys[i])) {
39734 if (!(tmp = input[k]) || typeof tmp !== 'object') out[k] = tmp;
39735 else out[k] = sort(tmp, expect[k]);
39736 }
39737 }
39738
39739 for (k in input) {
39740 if (!out.hasOwnProperty(k)) {
39741 out[k] = input[k]; // expect didnt have
39742 }
39743 }
39744 }
39745
39746 return out;
39747 }
39748
39749 function circular() {
39750 var cache = new Set;
39751 return function print(key, val) {
39752 if (val === void 0) return '[__VOID__]';
39753 if (typeof val === 'number' && val !== val) return '[__NAN__]';
39754 if (typeof val === 'bigint') return val.toString();
39755 if (!val || typeof val !== 'object') return val;
39756 if (cache.has(val)) return '[Circular]';
39757 cache.add(val); return val;
39758 }
39759 }
39760
39761 function stringify(input) {
39762 return JSON.stringify(input, circular(), 2).replace(/"\[__NAN__\]"/g, 'NaN').replace(/"\[__VOID__\]"/g, 'undefined');
39763 }
39764
39765 function compare(input, expect) {
39766 if (Array.isArray(expect) && Array.isArray(input)) return arrays(input, expect);
39767 if (expect instanceof RegExp) return chars(''+input, ''+expect);
39768
39769 let isA = input && typeof input == 'object';
39770 let isB = expect && typeof expect == 'object';
39771
39772 if (isA && isB) input = sort(input, expect);
39773 if (isB) expect = stringify(expect);
39774 if (isA) input = stringify(input);
39775
39776 if (expect && typeof expect == 'object') {
39777 input = stringify(sort(input, expect));
39778 expect = stringify(expect);
39779 }
39780
39781 isA = typeof input == 'string';
39782 isB = typeof expect == 'string';
39783
39784 if (isA && /\r?\n/.test(input)) return lines(input, ''+expect);
39785 if (isB && /\r?\n/.test(expect)) return lines(''+input, expect);
39786 if (isA && isB) return chars(input, expect);
39787
39788 return direct(input, expect);
39789 }
39790
39791
39792 /***/ }),
39793
39794 /***/ "../node_modules/uvu/node_modules/kleur/index.mjs":
39795 /*!********************************************************!*\
39796 !*** ../node_modules/uvu/node_modules/kleur/index.mjs ***!
39797 \********************************************************/
39798 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39799
39800 "use strict";
39801 __webpack_require__.r(__webpack_exports__);
39802 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39803 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
39804 /* harmony export */ });
39805
39806
39807 let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;
39808 if (typeof process !== 'undefined') {
39809 ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});
39810 isTTY = process.stdout && process.stdout.isTTY;
39811 }
39812
39813 const $ = {
39814 enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (
39815 FORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY
39816 ),
39817
39818 // modifiers
39819 reset: init(0, 0),
39820 bold: init(1, 22),
39821 dim: init(2, 22),
39822 italic: init(3, 23),
39823 underline: init(4, 24),
39824 inverse: init(7, 27),
39825 hidden: init(8, 28),
39826 strikethrough: init(9, 29),
39827
39828 // colors
39829 black: init(30, 39),
39830 red: init(31, 39),
39831 green: init(32, 39),
39832 yellow: init(33, 39),
39833 blue: init(34, 39),
39834 magenta: init(35, 39),
39835 cyan: init(36, 39),
39836 white: init(37, 39),
39837 gray: init(90, 39),
39838 grey: init(90, 39),
39839
39840 // background colors
39841 bgBlack: init(40, 49),
39842 bgRed: init(41, 49),
39843 bgGreen: init(42, 49),
39844 bgYellow: init(43, 49),
39845 bgBlue: init(44, 49),
39846 bgMagenta: init(45, 49),
39847 bgCyan: init(46, 49),
39848 bgWhite: init(47, 49)
39849 };
39850
39851 function run(arr, str) {
39852 let i=0, tmp, beg='', end='';
39853 for (; i < arr.length; i++) {
39854 tmp = arr[i];
39855 beg += tmp.open;
39856 end += tmp.close;
39857 if (!!~str.indexOf(tmp.close)) {
39858 str = str.replace(tmp.rgx, tmp.close + tmp.open);
39859 }
39860 }
39861 return beg + str + end;
39862 }
39863
39864 function chain(has, keys) {
39865 let ctx = { has, keys };
39866
39867 ctx.reset = $.reset.bind(ctx);
39868 ctx.bold = $.bold.bind(ctx);
39869 ctx.dim = $.dim.bind(ctx);
39870 ctx.italic = $.italic.bind(ctx);
39871 ctx.underline = $.underline.bind(ctx);
39872 ctx.inverse = $.inverse.bind(ctx);
39873 ctx.hidden = $.hidden.bind(ctx);
39874 ctx.strikethrough = $.strikethrough.bind(ctx);
39875
39876 ctx.black = $.black.bind(ctx);
39877 ctx.red = $.red.bind(ctx);
39878 ctx.green = $.green.bind(ctx);
39879 ctx.yellow = $.yellow.bind(ctx);
39880 ctx.blue = $.blue.bind(ctx);
39881 ctx.magenta = $.magenta.bind(ctx);
39882 ctx.cyan = $.cyan.bind(ctx);
39883 ctx.white = $.white.bind(ctx);
39884 ctx.gray = $.gray.bind(ctx);
39885 ctx.grey = $.grey.bind(ctx);
39886
39887 ctx.bgBlack = $.bgBlack.bind(ctx);
39888 ctx.bgRed = $.bgRed.bind(ctx);
39889 ctx.bgGreen = $.bgGreen.bind(ctx);
39890 ctx.bgYellow = $.bgYellow.bind(ctx);
39891 ctx.bgBlue = $.bgBlue.bind(ctx);
39892 ctx.bgMagenta = $.bgMagenta.bind(ctx);
39893 ctx.bgCyan = $.bgCyan.bind(ctx);
39894 ctx.bgWhite = $.bgWhite.bind(ctx);
39895
39896 return ctx;
39897 }
39898
39899 function init(open, close) {
39900 let blk = {
39901 open: `\x1b[${open}m`,
39902 close: `\x1b[${close}m`,
39903 rgx: new RegExp(`\\x1b\\[${close}m`, 'g')
39904 };
39905 return function (txt) {
39906 if (this !== void 0 && this.has !== void 0) {
39907 !!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));
39908 return txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';
39909 }
39910 return txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';
39911 };
39912 }
39913
39914 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($);
39915
39916
39917 /***/ }),
39918
39919 /***/ "../node_modules/vfile-message/lib/index.js":
39920 /*!**************************************************!*\
39921 !*** ../node_modules/vfile-message/lib/index.js ***!
39922 \**************************************************/
39923 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39924
39925 "use strict";
39926 __webpack_require__.r(__webpack_exports__);
39927 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39928 /* harmony export */ VFileMessage: () => (/* binding */ VFileMessage)
39929 /* harmony export */ });
39930 /* 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");
39931 /**
39932 * @typedef {import('unist').Node} Node
39933 * @typedef {import('unist').Position} Position
39934 * @typedef {import('unist').Point} Point
39935 * @typedef {object & {type: string, position?: Position | undefined}} NodeLike
39936 */
39937
39938
39939
39940 /**
39941 * Message.
39942 */
39943 class VFileMessage extends Error {
39944 /**
39945 * Create a message for `reason` at `place` from `origin`.
39946 *
39947 * When an error is passed in as `reason`, the `stack` is copied.
39948 *
39949 * @param {string | Error | VFileMessage} reason
39950 * Reason for message, uses the stack and message of the error if given.
39951 *
39952 * > 👉 **Note**: you should use markdown.
39953 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
39954 * Place in file where the message occurred.
39955 * @param {string | null | undefined} [origin]
39956 * Place in code where the message originates (example:
39957 * `'my-package:my-rule'` or `'my-rule'`).
39958 * @returns
39959 * Instance of `VFileMessage`.
39960 */
39961 // To do: next major: expose `undefined` everywhere instead of `null`.
39962 constructor(reason, place, origin) {
39963 /** @type {[string | null, string | null]} */
39964 const parts = [null, null]
39965 /** @type {Position} */
39966 let position = {
39967 // @ts-expect-error: we always follows the structure of `position`.
39968 start: {line: null, column: null},
39969 // @ts-expect-error: "
39970 end: {line: null, column: null}
39971 }
39972
39973 super()
39974
39975 if (typeof place === 'string') {
39976 origin = place
39977 place = undefined
39978 }
39979
39980 if (typeof origin === 'string') {
39981 const index = origin.indexOf(':')
39982
39983 if (index === -1) {
39984 parts[1] = origin
39985 } else {
39986 parts[0] = origin.slice(0, index)
39987 parts[1] = origin.slice(index + 1)
39988 }
39989 }
39990
39991 if (place) {
39992 // Node.
39993 if ('type' in place || 'position' in place) {
39994 if (place.position) {
39995 // To do: next major: deep clone.
39996 // @ts-expect-error: looks like a position.
39997 position = place.position
39998 }
39999 }
40000 // Position.
40001 else if ('start' in place || 'end' in place) {
40002 // @ts-expect-error: looks like a position.
40003 // To do: next major: deep clone.
40004 position = place
40005 }
40006 // Point.
40007 else if ('line' in place || 'column' in place) {
40008 // To do: next major: deep clone.
40009 position.start = place
40010 }
40011 }
40012
40013 // Fields from `Error`.
40014 /**
40015 * Serialized positional info of error.
40016 *
40017 * On normal errors, this would be something like `ParseError`, buit in
40018 * `VFile` messages we use this space to show where an error happened.
40019 */
40020 this.name = (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__.stringifyPosition)(place) || '1:1'
40021
40022 /**
40023 * Reason for message.
40024 *
40025 * @type {string}
40026 */
40027 this.message = typeof reason === 'object' ? reason.message : reason
40028
40029 /**
40030 * Stack of message.
40031 *
40032 * This is used by normal errors to show where something happened in
40033 * programming code, irrelevant for `VFile` messages,
40034 *
40035 * @type {string}
40036 */
40037 this.stack = ''
40038
40039 if (typeof reason === 'object' && reason.stack) {
40040 this.stack = reason.stack
40041 }
40042
40043 /**
40044 * Reason for message.
40045 *
40046 * > 👉 **Note**: you should use markdown.
40047 *
40048 * @type {string}
40049 */
40050 this.reason = this.message
40051
40052 /* eslint-disable no-unused-expressions */
40053 /**
40054 * State of problem.
40055 *
40056 * * `true` — marks associated file as no longer processable (error)
40057 * * `false` — necessitates a (potential) change (warning)
40058 * * `null | undefined` — for things that might not need changing (info)
40059 *
40060 * @type {boolean | null | undefined}
40061 */
40062 this.fatal
40063
40064 /**
40065 * Starting line of error.
40066 *
40067 * @type {number | null}
40068 */
40069 this.line = position.start.line
40070
40071 /**
40072 * Starting column of error.
40073 *
40074 * @type {number | null}
40075 */
40076 this.column = position.start.column
40077
40078 /**
40079 * Full unist position.
40080 *
40081 * @type {Position | null}
40082 */
40083 this.position = position
40084
40085 /**
40086 * Namespace of message (example: `'my-package'`).
40087 *
40088 * @type {string | null}
40089 */
40090 this.source = parts[0]
40091
40092 /**
40093 * Category of message (example: `'my-rule'`).
40094 *
40095 * @type {string | null}
40096 */
40097 this.ruleId = parts[1]
40098
40099 /**
40100 * Path of a file (used throughout the `VFile` ecosystem).
40101 *
40102 * @type {string | null}
40103 */
40104 this.file
40105
40106 // The following fields are “well known”.
40107 // Not standard.
40108 // Feel free to add other non-standard fields to your messages.
40109
40110 /**
40111 * Specify the source value that’s being reported, which is deemed
40112 * incorrect.
40113 *
40114 * @type {string | null}
40115 */
40116 this.actual
40117
40118 /**
40119 * Suggest acceptable values that can be used instead of `actual`.
40120 *
40121 * @type {Array<string> | null}
40122 */
40123 this.expected
40124
40125 /**
40126 * Link to docs for the message.
40127 *
40128 * > 👉 **Note**: this must be an absolute URL that can be passed as `x`
40129 * > to `new URL(x)`.
40130 *
40131 * @type {string | null}
40132 */
40133 this.url
40134
40135 /**
40136 * Long form description of the message (you should use markdown).
40137 *
40138 * @type {string | null}
40139 */
40140 this.note
40141 /* eslint-enable no-unused-expressions */
40142 }
40143 }
40144
40145 VFileMessage.prototype.file = ''
40146 VFileMessage.prototype.name = ''
40147 VFileMessage.prototype.reason = ''
40148 VFileMessage.prototype.message = ''
40149 VFileMessage.prototype.stack = ''
40150 VFileMessage.prototype.fatal = null
40151 VFileMessage.prototype.column = null
40152 VFileMessage.prototype.line = null
40153 VFileMessage.prototype.source = null
40154 VFileMessage.prototype.ruleId = null
40155 VFileMessage.prototype.position = null
40156
40157
40158 /***/ }),
40159
40160 /***/ "../node_modules/vfile/lib/index.js":
40161 /*!******************************************!*\
40162 !*** ../node_modules/vfile/lib/index.js ***!
40163 \******************************************/
40164 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40165
40166 "use strict";
40167 __webpack_require__.r(__webpack_exports__);
40168 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40169 /* harmony export */ VFile: () => (/* binding */ VFile)
40170 /* harmony export */ });
40171 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
40172 /* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile-message */ "../node_modules/vfile-message/lib/index.js");
40173 /* harmony import */ var _minpath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./minpath.js */ "../node_modules/vfile/lib/minpath.browser.js");
40174 /* harmony import */ var _minproc_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minproc.js */ "../node_modules/vfile/lib/minproc.browser.js");
40175 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.shared.js");
40176 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.browser.js");
40177 /**
40178 * @typedef {import('unist').Node} Node
40179 * @typedef {import('unist').Position} Position
40180 * @typedef {import('unist').Point} Point
40181 * @typedef {import('./minurl.shared.js').URL} URL
40182 * @typedef {import('../index.js').Data} Data
40183 * @typedef {import('../index.js').Value} Value
40184 */
40185
40186 /**
40187 * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike
40188 *
40189 * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding
40190 * Encodings supported by the buffer class.
40191 *
40192 * This is a copy of the types from Node, copied to prevent Node globals from
40193 * being needed.
40194 * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>
40195 *
40196 * @typedef {Options | URL | Value | VFile} Compatible
40197 * Things that can be passed to the constructor.
40198 *
40199 * @typedef VFileCoreOptions
40200 * Set multiple values.
40201 * @property {Value | null | undefined} [value]
40202 * Set `value`.
40203 * @property {string | null | undefined} [cwd]
40204 * Set `cwd`.
40205 * @property {Array<string> | null | undefined} [history]
40206 * Set `history`.
40207 * @property {URL | string | null | undefined} [path]
40208 * Set `path`.
40209 * @property {string | null | undefined} [basename]
40210 * Set `basename`.
40211 * @property {string | null | undefined} [stem]
40212 * Set `stem`.
40213 * @property {string | null | undefined} [extname]
40214 * Set `extname`.
40215 * @property {string | null | undefined} [dirname]
40216 * Set `dirname`.
40217 * @property {Data | null | undefined} [data]
40218 * Set `data`.
40219 *
40220 * @typedef Map
40221 * Raw source map.
40222 *
40223 * See:
40224 * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.
40225 * @property {number} version
40226 * Which version of the source map spec this map is following.
40227 * @property {Array<string>} sources
40228 * An array of URLs to the original source files.
40229 * @property {Array<string>} names
40230 * An array of identifiers which can be referenced by individual mappings.
40231 * @property {string | undefined} [sourceRoot]
40232 * The URL root from which all sources are relative.
40233 * @property {Array<string> | undefined} [sourcesContent]
40234 * An array of contents of the original source files.
40235 * @property {string} mappings
40236 * A string of base64 VLQs which contain the actual mappings.
40237 * @property {string} file
40238 * The generated file this source map is associated with.
40239 *
40240 * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options
40241 * Configuration.
40242 *
40243 * A bunch of keys that will be shallow copied over to the new file.
40244 *
40245 * @typedef {Record<string, unknown>} ReporterSettings
40246 * Configuration for reporters.
40247 */
40248
40249 /**
40250 * @template {ReporterSettings} Settings
40251 * Options type.
40252 * @callback Reporter
40253 * Type for a reporter.
40254 * @param {Array<VFile>} files
40255 * Files to report.
40256 * @param {Settings} options
40257 * Configuration.
40258 * @returns {string}
40259 * Report.
40260 */
40261
40262
40263
40264
40265
40266
40267
40268 /**
40269 * Order of setting (least specific to most), we need this because otherwise
40270 * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a
40271 * stem can be set.
40272 *
40273 * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}
40274 */
40275 const order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']
40276
40277 class VFile {
40278 /**
40279 * Create a new virtual file.
40280 *
40281 * `options` is treated as:
40282 *
40283 * * `string` or `Buffer` — `{value: options}`
40284 * * `URL` — `{path: options}`
40285 * * `VFile` — shallow copies its data over to the new file
40286 * * `object` — all fields are shallow copied over to the new file
40287 *
40288 * Path related fields are set in the following order (least specific to
40289 * most specific): `history`, `path`, `basename`, `stem`, `extname`,
40290 * `dirname`.
40291 *
40292 * You cannot set `dirname` or `extname` without setting either `history`,
40293 * `path`, `basename`, or `stem` too.
40294 *
40295 * @param {Compatible | null | undefined} [value]
40296 * File value.
40297 * @returns
40298 * New instance.
40299 */
40300 constructor(value) {
40301 /** @type {Options | VFile} */
40302 let options
40303
40304 if (!value) {
40305 options = {}
40306 } else if (typeof value === 'string' || buffer(value)) {
40307 options = {value}
40308 } else if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(value)) {
40309 options = {path: value}
40310 } else {
40311 options = value
40312 }
40313
40314 /**
40315 * Place to store custom information (default: `{}`).
40316 *
40317 * It’s OK to store custom data directly on the file but moving it to
40318 * `data` is recommended.
40319 *
40320 * @type {Data}
40321 */
40322 this.data = {}
40323
40324 /**
40325 * List of messages associated with the file.
40326 *
40327 * @type {Array<VFileMessage>}
40328 */
40329 this.messages = []
40330
40331 /**
40332 * List of filepaths the file moved between.
40333 *
40334 * The first is the original path and the last is the current path.
40335 *
40336 * @type {Array<string>}
40337 */
40338 this.history = []
40339
40340 /**
40341 * Base of `path` (default: `process.cwd()` or `'/'` in browsers).
40342 *
40343 * @type {string}
40344 */
40345 this.cwd = _minproc_js__WEBPACK_IMPORTED_MODULE_2__.proc.cwd()
40346
40347 /* eslint-disable no-unused-expressions */
40348 /**
40349 * Raw value.
40350 *
40351 * @type {Value}
40352 */
40353 this.value
40354
40355 // The below are non-standard, they are “well-known”.
40356 // As in, used in several tools.
40357
40358 /**
40359 * Whether a file was saved to disk.
40360 *
40361 * This is used by vfile reporters.
40362 *
40363 * @type {boolean}
40364 */
40365 this.stored
40366
40367 /**
40368 * Custom, non-string, compiled, representation.
40369 *
40370 * This is used by unified to store non-string results.
40371 * One example is when turning markdown into React nodes.
40372 *
40373 * @type {unknown}
40374 */
40375 this.result
40376
40377 /**
40378 * Source map.
40379 *
40380 * This type is equivalent to the `RawSourceMap` type from the `source-map`
40381 * module.
40382 *
40383 * @type {Map | null | undefined}
40384 */
40385 this.map
40386 /* eslint-enable no-unused-expressions */
40387
40388 // Set path related properties in the correct order.
40389 let index = -1
40390
40391 while (++index < order.length) {
40392 const prop = order[index]
40393
40394 // Note: we specifically use `in` instead of `hasOwnProperty` to accept
40395 // `vfile`s too.
40396 if (
40397 prop in options &&
40398 options[prop] !== undefined &&
40399 options[prop] !== null
40400 ) {
40401 // @ts-expect-error: TS doesn’t understand basic reality.
40402 this[prop] = prop === 'history' ? [...options[prop]] : options[prop]
40403 }
40404 }
40405
40406 /** @type {string} */
40407 let prop
40408
40409 // Set non-path related properties.
40410 for (prop in options) {
40411 // @ts-expect-error: fine to set other things.
40412 if (!order.includes(prop)) {
40413 // @ts-expect-error: fine to set other things.
40414 this[prop] = options[prop]
40415 }
40416 }
40417 }
40418
40419 /**
40420 * Get the full path (example: `'~/index.min.js'`).
40421 *
40422 * @returns {string}
40423 */
40424 get path() {
40425 return this.history[this.history.length - 1]
40426 }
40427
40428 /**
40429 * Set the full path (example: `'~/index.min.js'`).
40430 *
40431 * Cannot be nullified.
40432 * You can set a file URL (a `URL` object with a `file:` protocol) which will
40433 * be turned into a path with `url.fileURLToPath`.
40434 *
40435 * @param {string | URL} path
40436 */
40437 set path(path) {
40438 if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(path)) {
40439 path = (0,_minurl_js__WEBPACK_IMPORTED_MODULE_3__.urlToPath)(path)
40440 }
40441
40442 assertNonEmpty(path, 'path')
40443
40444 if (this.path !== path) {
40445 this.history.push(path)
40446 }
40447 }
40448
40449 /**
40450 * Get the parent path (example: `'~'`).
40451 */
40452 get dirname() {
40453 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.dirname(this.path) : undefined
40454 }
40455
40456 /**
40457 * Set the parent path (example: `'~'`).
40458 *
40459 * Cannot be set if there’s no `path` yet.
40460 */
40461 set dirname(dirname) {
40462 assertPath(this.basename, 'dirname')
40463 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(dirname || '', this.basename)
40464 }
40465
40466 /**
40467 * Get the basename (including extname) (example: `'index.min.js'`).
40468 */
40469 get basename() {
40470 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path) : undefined
40471 }
40472
40473 /**
40474 * Set basename (including extname) (`'index.min.js'`).
40475 *
40476 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40477 * on windows).
40478 * Cannot be nullified (use `file.path = file.dirname` instead).
40479 */
40480 set basename(basename) {
40481 assertNonEmpty(basename, 'basename')
40482 assertPart(basename, 'basename')
40483 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', basename)
40484 }
40485
40486 /**
40487 * Get the extname (including dot) (example: `'.js'`).
40488 */
40489 get extname() {
40490 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.extname(this.path) : undefined
40491 }
40492
40493 /**
40494 * Set the extname (including dot) (example: `'.js'`).
40495 *
40496 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40497 * on windows).
40498 * Cannot be set if there’s no `path` yet.
40499 */
40500 set extname(extname) {
40501 assertPart(extname, 'extname')
40502 assertPath(this.dirname, 'extname')
40503
40504 if (extname) {
40505 if (extname.charCodeAt(0) !== 46 /* `.` */) {
40506 throw new Error('`extname` must start with `.`')
40507 }
40508
40509 if (extname.includes('.', 1)) {
40510 throw new Error('`extname` cannot contain multiple dots')
40511 }
40512 }
40513
40514 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname, this.stem + (extname || ''))
40515 }
40516
40517 /**
40518 * Get the stem (basename w/o extname) (example: `'index.min'`).
40519 */
40520 get stem() {
40521 return typeof this.path === 'string'
40522 ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path, this.extname)
40523 : undefined
40524 }
40525
40526 /**
40527 * Set the stem (basename w/o extname) (example: `'index.min'`).
40528 *
40529 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40530 * on windows).
40531 * Cannot be nullified (use `file.path = file.dirname` instead).
40532 */
40533 set stem(stem) {
40534 assertNonEmpty(stem, 'stem')
40535 assertPart(stem, 'stem')
40536 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', stem + (this.extname || ''))
40537 }
40538
40539 /**
40540 * Serialize the file.
40541 *
40542 * @param {BufferEncoding | null | undefined} [encoding='utf8']
40543 * Character encoding to understand `value` as when it’s a `Buffer`
40544 * (default: `'utf8'`).
40545 * @returns {string}
40546 * Serialized file.
40547 */
40548 toString(encoding) {
40549 return (this.value || '').toString(encoding || undefined)
40550 }
40551
40552 /**
40553 * Create a warning message associated with the file.
40554 *
40555 * Its `fatal` is set to `false` and `file` is set to the current file path.
40556 * Its added to `file.messages`.
40557 *
40558 * @param {string | Error | VFileMessage} reason
40559 * Reason for message, uses the stack and message of the error if given.
40560 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40561 * Place in file where the message occurred.
40562 * @param {string | null | undefined} [origin]
40563 * Place in code where the message originates (example:
40564 * `'my-package:my-rule'` or `'my-rule'`).
40565 * @returns {VFileMessage}
40566 * Message.
40567 */
40568 message(reason, place, origin) {
40569 const message = new vfile_message__WEBPACK_IMPORTED_MODULE_5__.VFileMessage(reason, place, origin)
40570
40571 if (this.path) {
40572 message.name = this.path + ':' + message.name
40573 message.file = this.path
40574 }
40575
40576 message.fatal = false
40577
40578 this.messages.push(message)
40579
40580 return message
40581 }
40582
40583 /**
40584 * Create an info message associated with the file.
40585 *
40586 * Its `fatal` is set to `null` and `file` is set to the current file path.
40587 * Its added to `file.messages`.
40588 *
40589 * @param {string | Error | VFileMessage} reason
40590 * Reason for message, uses the stack and message of the error if given.
40591 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40592 * Place in file where the message occurred.
40593 * @param {string | null | undefined} [origin]
40594 * Place in code where the message originates (example:
40595 * `'my-package:my-rule'` or `'my-rule'`).
40596 * @returns {VFileMessage}
40597 * Message.
40598 */
40599 info(reason, place, origin) {
40600 const message = this.message(reason, place, origin)
40601
40602 message.fatal = null
40603
40604 return message
40605 }
40606
40607 /**
40608 * Create a fatal error associated with the file.
40609 *
40610 * Its `fatal` is set to `true` and `file` is set to the current file path.
40611 * Its added to `file.messages`.
40612 *
40613 * > 👉 **Note**: a fatal error means that a file is no longer processable.
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 {never}
40623 * Message.
40624 * @throws {VFileMessage}
40625 * Message.
40626 */
40627 fail(reason, place, origin) {
40628 const message = this.message(reason, place, origin)
40629
40630 message.fatal = true
40631
40632 throw message
40633 }
40634 }
40635
40636 /**
40637 * Assert that `part` is not a path (as in, does not contain `path.sep`).
40638 *
40639 * @param {string | null | undefined} part
40640 * File path part.
40641 * @param {string} name
40642 * Part name.
40643 * @returns {void}
40644 * Nothing.
40645 */
40646 function assertPart(part, name) {
40647 if (part && part.includes(_minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep)) {
40648 throw new Error(
40649 '`' + name + '` cannot be a path: did not expect `' + _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep + '`'
40650 )
40651 }
40652 }
40653
40654 /**
40655 * Assert that `part` is not empty.
40656 *
40657 * @param {string | undefined} part
40658 * Thing.
40659 * @param {string} name
40660 * Part name.
40661 * @returns {asserts part is string}
40662 * Nothing.
40663 */
40664 function assertNonEmpty(part, name) {
40665 if (!part) {
40666 throw new Error('`' + name + '` cannot be empty')
40667 }
40668 }
40669
40670 /**
40671 * Assert `path` exists.
40672 *
40673 * @param {string | undefined} path
40674 * Path.
40675 * @param {string} name
40676 * Dependency name.
40677 * @returns {asserts path is string}
40678 * Nothing.
40679 */
40680 function assertPath(path, name) {
40681 if (!path) {
40682 throw new Error('Setting `' + name + '` requires `path` to be set too')
40683 }
40684 }
40685
40686 /**
40687 * Assert `value` is a buffer.
40688 *
40689 * @param {unknown} value
40690 * thing.
40691 * @returns {value is Buffer}
40692 * Whether `value` is a Node.js buffer.
40693 */
40694 function buffer(value) {
40695 return is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
40696 }
40697
40698
40699 /***/ }),
40700
40701 /***/ "../node_modules/vfile/lib/minpath.browser.js":
40702 /*!****************************************************!*\
40703 !*** ../node_modules/vfile/lib/minpath.browser.js ***!
40704 \****************************************************/
40705 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40706
40707 "use strict";
40708 __webpack_require__.r(__webpack_exports__);
40709 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40710 /* harmony export */ path: () => (/* binding */ path)
40711 /* harmony export */ });
40712 // A derivative work based on:
40713 // <https://github.com/browserify/path-browserify>.
40714 // Which is licensed:
40715 //
40716 // MIT License
40717 //
40718 // Copyright (c) 2013 James Halliday
40719 //
40720 // Permission is hereby granted, free of charge, to any person obtaining a copy of
40721 // this software and associated documentation files (the "Software"), to deal in
40722 // the Software without restriction, including without limitation the rights to
40723 // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
40724 // the Software, and to permit persons to whom the Software is furnished to do so,
40725 // subject to the following conditions:
40726 //
40727 // The above copyright notice and this permission notice shall be included in all
40728 // copies or substantial portions of the Software.
40729 //
40730 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40731 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
40732 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
40733 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
40734 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
40735 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
40736 // A derivative work based on:
40737 //
40738 // Parts of that are extracted from Node’s internal `path` module:
40739 // <https://github.com/nodejs/node/blob/master/lib/path.js>.
40740 // Which is licensed:
40741 //
40742 // Copyright Joyent, Inc. and other Node contributors.
40743 //
40744 // Permission is hereby granted, free of charge, to any person obtaining a
40745 // copy of this software and associated documentation files (the
40746 // "Software"), to deal in the Software without restriction, including
40747 // without limitation the rights to use, copy, modify, merge, publish,
40748 // distribute, sublicense, and/or sell copies of the Software, and to permit
40749 // persons to whom the Software is furnished to do so, subject to the
40750 // following conditions:
40751 //
40752 // The above copyright notice and this permission notice shall be included
40753 // in all copies or substantial portions of the Software.
40754 //
40755 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
40756 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
40757 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
40758 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
40759 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
40760 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
40761 // USE OR OTHER DEALINGS IN THE SOFTWARE.
40762
40763 const path = {basename, dirname, extname, join, sep: '/'}
40764
40765 /* eslint-disable max-depth, complexity */
40766
40767 /**
40768 * Get the basename from a path.
40769 *
40770 * @param {string} path
40771 * File path.
40772 * @param {string | undefined} [ext]
40773 * Extension to strip.
40774 * @returns {string}
40775 * Stem or basename.
40776 */
40777 function basename(path, ext) {
40778 if (ext !== undefined && typeof ext !== 'string') {
40779 throw new TypeError('"ext" argument must be a string')
40780 }
40781
40782 assertPath(path)
40783 let start = 0
40784 let end = -1
40785 let index = path.length
40786 /** @type {boolean | undefined} */
40787 let seenNonSlash
40788
40789 if (ext === undefined || ext.length === 0 || ext.length > path.length) {
40790 while (index--) {
40791 if (path.charCodeAt(index) === 47 /* `/` */) {
40792 // If we reached a path separator that was not part of a set of path
40793 // separators at the end of the string, stop now.
40794 if (seenNonSlash) {
40795 start = index + 1
40796 break
40797 }
40798 } else if (end < 0) {
40799 // We saw the first non-path separator, mark this as the end of our
40800 // path component.
40801 seenNonSlash = true
40802 end = index + 1
40803 }
40804 }
40805
40806 return end < 0 ? '' : path.slice(start, end)
40807 }
40808
40809 if (ext === path) {
40810 return ''
40811 }
40812
40813 let firstNonSlashEnd = -1
40814 let extIndex = ext.length - 1
40815
40816 while (index--) {
40817 if (path.charCodeAt(index) === 47 /* `/` */) {
40818 // If we reached a path separator that was not part of a set of path
40819 // separators at the end of the string, stop now.
40820 if (seenNonSlash) {
40821 start = index + 1
40822 break
40823 }
40824 } else {
40825 if (firstNonSlashEnd < 0) {
40826 // We saw the first non-path separator, remember this index in case
40827 // we need it if the extension ends up not matching.
40828 seenNonSlash = true
40829 firstNonSlashEnd = index + 1
40830 }
40831
40832 if (extIndex > -1) {
40833 // Try to match the explicit extension.
40834 if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {
40835 if (extIndex < 0) {
40836 // We matched the extension, so mark this as the end of our path
40837 // component
40838 end = index
40839 }
40840 } else {
40841 // Extension does not match, so our result is the entire path
40842 // component
40843 extIndex = -1
40844 end = firstNonSlashEnd
40845 }
40846 }
40847 }
40848 }
40849
40850 if (start === end) {
40851 end = firstNonSlashEnd
40852 } else if (end < 0) {
40853 end = path.length
40854 }
40855
40856 return path.slice(start, end)
40857 }
40858
40859 /**
40860 * Get the dirname from a path.
40861 *
40862 * @param {string} path
40863 * File path.
40864 * @returns {string}
40865 * File path.
40866 */
40867 function dirname(path) {
40868 assertPath(path)
40869
40870 if (path.length === 0) {
40871 return '.'
40872 }
40873
40874 let end = -1
40875 let index = path.length
40876 /** @type {boolean | undefined} */
40877 let unmatchedSlash
40878
40879 // Prefix `--` is important to not run on `0`.
40880 while (--index) {
40881 if (path.charCodeAt(index) === 47 /* `/` */) {
40882 if (unmatchedSlash) {
40883 end = index
40884 break
40885 }
40886 } else if (!unmatchedSlash) {
40887 // We saw the first non-path separator
40888 unmatchedSlash = true
40889 }
40890 }
40891
40892 return end < 0
40893 ? path.charCodeAt(0) === 47 /* `/` */
40894 ? '/'
40895 : '.'
40896 : end === 1 && path.charCodeAt(0) === 47 /* `/` */
40897 ? '//'
40898 : path.slice(0, end)
40899 }
40900
40901 /**
40902 * Get an extname from a path.
40903 *
40904 * @param {string} path
40905 * File path.
40906 * @returns {string}
40907 * Extname.
40908 */
40909 function extname(path) {
40910 assertPath(path)
40911
40912 let index = path.length
40913
40914 let end = -1
40915 let startPart = 0
40916 let startDot = -1
40917 // Track the state of characters (if any) we see before our first dot and
40918 // after any path separator we find.
40919 let preDotState = 0
40920 /** @type {boolean | undefined} */
40921 let unmatchedSlash
40922
40923 while (index--) {
40924 const code = path.charCodeAt(index)
40925
40926 if (code === 47 /* `/` */) {
40927 // If we reached a path separator that was not part of a set of path
40928 // separators at the end of the string, stop now.
40929 if (unmatchedSlash) {
40930 startPart = index + 1
40931 break
40932 }
40933
40934 continue
40935 }
40936
40937 if (end < 0) {
40938 // We saw the first non-path separator, mark this as the end of our
40939 // extension.
40940 unmatchedSlash = true
40941 end = index + 1
40942 }
40943
40944 if (code === 46 /* `.` */) {
40945 // If this is our first dot, mark it as the start of our extension.
40946 if (startDot < 0) {
40947 startDot = index
40948 } else if (preDotState !== 1) {
40949 preDotState = 1
40950 }
40951 } else if (startDot > -1) {
40952 // We saw a non-dot and non-path separator before our dot, so we should
40953 // have a good chance at having a non-empty extension.
40954 preDotState = -1
40955 }
40956 }
40957
40958 if (
40959 startDot < 0 ||
40960 end < 0 ||
40961 // We saw a non-dot character immediately before the dot.
40962 preDotState === 0 ||
40963 // The (right-most) trimmed path component is exactly `..`.
40964 (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)
40965 ) {
40966 return ''
40967 }
40968
40969 return path.slice(startDot, end)
40970 }
40971
40972 /**
40973 * Join segments from a path.
40974 *
40975 * @param {Array<string>} segments
40976 * Path segments.
40977 * @returns {string}
40978 * File path.
40979 */
40980 function join(...segments) {
40981 let index = -1
40982 /** @type {string | undefined} */
40983 let joined
40984
40985 while (++index < segments.length) {
40986 assertPath(segments[index])
40987
40988 if (segments[index]) {
40989 joined =
40990 joined === undefined ? segments[index] : joined + '/' + segments[index]
40991 }
40992 }
40993
40994 return joined === undefined ? '.' : normalize(joined)
40995 }
40996
40997 /**
40998 * Normalize a basic file path.
40999 *
41000 * @param {string} path
41001 * File path.
41002 * @returns {string}
41003 * File path.
41004 */
41005 // Note: `normalize` is not exposed as `path.normalize`, so some code is
41006 // manually removed from it.
41007 function normalize(path) {
41008 assertPath(path)
41009
41010 const absolute = path.charCodeAt(0) === 47 /* `/` */
41011
41012 // Normalize the path according to POSIX rules.
41013 let value = normalizeString(path, !absolute)
41014
41015 if (value.length === 0 && !absolute) {
41016 value = '.'
41017 }
41018
41019 if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {
41020 value += '/'
41021 }
41022
41023 return absolute ? '/' + value : value
41024 }
41025
41026 /**
41027 * Resolve `.` and `..` elements in a path with directory names.
41028 *
41029 * @param {string} path
41030 * File path.
41031 * @param {boolean} allowAboveRoot
41032 * Whether `..` can move above root.
41033 * @returns {string}
41034 * File path.
41035 */
41036 function normalizeString(path, allowAboveRoot) {
41037 let result = ''
41038 let lastSegmentLength = 0
41039 let lastSlash = -1
41040 let dots = 0
41041 let index = -1
41042 /** @type {number | undefined} */
41043 let code
41044 /** @type {number} */
41045 let lastSlashIndex
41046
41047 while (++index <= path.length) {
41048 if (index < path.length) {
41049 code = path.charCodeAt(index)
41050 } else if (code === 47 /* `/` */) {
41051 break
41052 } else {
41053 code = 47 /* `/` */
41054 }
41055
41056 if (code === 47 /* `/` */) {
41057 if (lastSlash === index - 1 || dots === 1) {
41058 // Empty.
41059 } else if (lastSlash !== index - 1 && dots === 2) {
41060 if (
41061 result.length < 2 ||
41062 lastSegmentLength !== 2 ||
41063 result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||
41064 result.charCodeAt(result.length - 2) !== 46 /* `.` */
41065 ) {
41066 if (result.length > 2) {
41067 lastSlashIndex = result.lastIndexOf('/')
41068
41069 if (lastSlashIndex !== result.length - 1) {
41070 if (lastSlashIndex < 0) {
41071 result = ''
41072 lastSegmentLength = 0
41073 } else {
41074 result = result.slice(0, lastSlashIndex)
41075 lastSegmentLength = result.length - 1 - result.lastIndexOf('/')
41076 }
41077
41078 lastSlash = index
41079 dots = 0
41080 continue
41081 }
41082 } else if (result.length > 0) {
41083 result = ''
41084 lastSegmentLength = 0
41085 lastSlash = index
41086 dots = 0
41087 continue
41088 }
41089 }
41090
41091 if (allowAboveRoot) {
41092 result = result.length > 0 ? result + '/..' : '..'
41093 lastSegmentLength = 2
41094 }
41095 } else {
41096 if (result.length > 0) {
41097 result += '/' + path.slice(lastSlash + 1, index)
41098 } else {
41099 result = path.slice(lastSlash + 1, index)
41100 }
41101
41102 lastSegmentLength = index - lastSlash - 1
41103 }
41104
41105 lastSlash = index
41106 dots = 0
41107 } else if (code === 46 /* `.` */ && dots > -1) {
41108 dots++
41109 } else {
41110 dots = -1
41111 }
41112 }
41113
41114 return result
41115 }
41116
41117 /**
41118 * Make sure `path` is a string.
41119 *
41120 * @param {string} path
41121 * File path.
41122 * @returns {asserts path is string}
41123 * Nothing.
41124 */
41125 function assertPath(path) {
41126 if (typeof path !== 'string') {
41127 throw new TypeError(
41128 'Path must be a string. Received ' + JSON.stringify(path)
41129 )
41130 }
41131 }
41132
41133 /* eslint-enable max-depth, complexity */
41134
41135
41136 /***/ }),
41137
41138 /***/ "../node_modules/vfile/lib/minproc.browser.js":
41139 /*!****************************************************!*\
41140 !*** ../node_modules/vfile/lib/minproc.browser.js ***!
41141 \****************************************************/
41142 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41143
41144 "use strict";
41145 __webpack_require__.r(__webpack_exports__);
41146 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41147 /* harmony export */ proc: () => (/* binding */ proc)
41148 /* harmony export */ });
41149 // Somewhat based on:
41150 // <https://github.com/defunctzombie/node-process/blob/master/browser.js>.
41151 // But I don’t think one tiny line of code can be copyrighted. 😅
41152 const proc = {cwd}
41153
41154 function cwd() {
41155 return '/'
41156 }
41157
41158
41159 /***/ }),
41160
41161 /***/ "../node_modules/vfile/lib/minurl.browser.js":
41162 /*!***************************************************!*\
41163 !*** ../node_modules/vfile/lib/minurl.browser.js ***!
41164 \***************************************************/
41165 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41166
41167 "use strict";
41168 __webpack_require__.r(__webpack_exports__);
41169 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41170 /* harmony export */ isUrl: () => (/* reexport safe */ _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl),
41171 /* harmony export */ urlToPath: () => (/* binding */ urlToPath)
41172 /* harmony export */ });
41173 /* harmony import */ var _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./minurl.shared.js */ "../node_modules/vfile/lib/minurl.shared.js");
41174 /// <reference lib="dom" />
41175
41176
41177
41178 // See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>
41179
41180 /**
41181 * @param {string | URL} path
41182 * File URL.
41183 * @returns {string}
41184 * File URL.
41185 */
41186 function urlToPath(path) {
41187 if (typeof path === 'string') {
41188 path = new URL(path)
41189 } else if (!(0,_minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {
41190 /** @type {NodeJS.ErrnoException} */
41191 const error = new TypeError(
41192 'The "path" argument must be of type string or an instance of URL. Received `' +
41193 path +
41194 '`'
41195 )
41196 error.code = 'ERR_INVALID_ARG_TYPE'
41197 throw error
41198 }
41199
41200 if (path.protocol !== 'file:') {
41201 /** @type {NodeJS.ErrnoException} */
41202 const error = new TypeError('The URL must be of scheme file')
41203 error.code = 'ERR_INVALID_URL_SCHEME'
41204 throw error
41205 }
41206
41207 return getPathFromURLPosix(path)
41208 }
41209
41210 /**
41211 * Get a path from a POSIX URL.
41212 *
41213 * @param {URL} url
41214 * URL.
41215 * @returns {string}
41216 * File path.
41217 */
41218 function getPathFromURLPosix(url) {
41219 if (url.hostname !== '') {
41220 /** @type {NodeJS.ErrnoException} */
41221 const error = new TypeError(
41222 'File URL host must be "localhost" or empty on darwin'
41223 )
41224 error.code = 'ERR_INVALID_FILE_URL_HOST'
41225 throw error
41226 }
41227
41228 const pathname = url.pathname
41229 let index = -1
41230
41231 while (++index < pathname.length) {
41232 if (
41233 pathname.charCodeAt(index) === 37 /* `%` */ &&
41234 pathname.charCodeAt(index + 1) === 50 /* `2` */
41235 ) {
41236 const third = pathname.charCodeAt(index + 2)
41237 if (third === 70 /* `F` */ || third === 102 /* `f` */) {
41238 /** @type {NodeJS.ErrnoException} */
41239 const error = new TypeError(
41240 'File URL path must not include encoded / characters'
41241 )
41242 error.code = 'ERR_INVALID_FILE_URL_PATH'
41243 throw error
41244 }
41245 }
41246 }
41247
41248 return decodeURIComponent(pathname)
41249 }
41250
41251
41252
41253
41254 /***/ }),
41255
41256 /***/ "../node_modules/vfile/lib/minurl.shared.js":
41257 /*!**************************************************!*\
41258 !*** ../node_modules/vfile/lib/minurl.shared.js ***!
41259 \**************************************************/
41260 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41261
41262 "use strict";
41263 __webpack_require__.r(__webpack_exports__);
41264 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41265 /* harmony export */ isUrl: () => (/* binding */ isUrl)
41266 /* harmony export */ });
41267 /**
41268 * @typedef URL
41269 * @property {string} hash
41270 * @property {string} host
41271 * @property {string} hostname
41272 * @property {string} href
41273 * @property {string} origin
41274 * @property {string} password
41275 * @property {string} pathname
41276 * @property {string} port
41277 * @property {string} protocol
41278 * @property {string} search
41279 * @property {any} searchParams
41280 * @property {string} username
41281 * @property {() => string} toString
41282 * @property {() => string} toJSON
41283 */
41284
41285 /**
41286 * Check if `fileUrlOrPath` looks like a URL.
41287 *
41288 * @param {unknown} fileUrlOrPath
41289 * File path or URL.
41290 * @returns {fileUrlOrPath is URL}
41291 * Whether it’s a URL.
41292 */
41293 // From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
41294 function isUrl(fileUrlOrPath) {
41295 return (
41296 fileUrlOrPath !== null &&
41297 typeof fileUrlOrPath === 'object' &&
41298 // @ts-expect-error: indexable.
41299 fileUrlOrPath.href &&
41300 // @ts-expect-error: indexable.
41301 fileUrlOrPath.origin
41302 )
41303 }
41304
41305
41306 /***/ })
41307
41308 /******/ });
41309 /************************************************************************/
41310 /******/ // The module cache
41311 /******/ var __webpack_module_cache__ = {};
41312 /******/
41313 /******/ // The require function
41314 /******/ function __webpack_require__(moduleId) {
41315 /******/ // Check if module is in cache
41316 /******/ var cachedModule = __webpack_module_cache__[moduleId];
41317 /******/ if (cachedModule !== undefined) {
41318 /******/ return cachedModule.exports;
41319 /******/ }
41320 /******/ // Create a new module (and put it into the cache)
41321 /******/ var module = __webpack_module_cache__[moduleId] = {
41322 /******/ // no module.id needed
41323 /******/ // no module.loaded needed
41324 /******/ exports: {}
41325 /******/ };
41326 /******/
41327 /******/ // Execute the module function
41328 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
41329 /******/
41330 /******/ // Return the exports of the module
41331 /******/ return module.exports;
41332 /******/ }
41333 /******/
41334 /************************************************************************/
41335 /******/ /* webpack/runtime/compat get default export */
41336 /******/ (() => {
41337 /******/ // getDefaultExport function for compatibility with non-harmony modules
41338 /******/ __webpack_require__.n = (module) => {
41339 /******/ var getter = module && module.__esModule ?
41340 /******/ () => (module['default']) :
41341 /******/ () => (module);
41342 /******/ __webpack_require__.d(getter, { a: getter });
41343 /******/ return getter;
41344 /******/ };
41345 /******/ })();
41346 /******/
41347 /******/ /* webpack/runtime/define property getters */
41348 /******/ (() => {
41349 /******/ // define getter functions for harmony exports
41350 /******/ __webpack_require__.d = (exports, definition) => {
41351 /******/ for(var key in definition) {
41352 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
41353 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
41354 /******/ }
41355 /******/ }
41356 /******/ };
41357 /******/ })();
41358 /******/
41359 /******/ /* webpack/runtime/hasOwnProperty shorthand */
41360 /******/ (() => {
41361 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
41362 /******/ })();
41363 /******/
41364 /******/ /* webpack/runtime/make namespace object */
41365 /******/ (() => {
41366 /******/ // define __esModule on exports
41367 /******/ __webpack_require__.r = (exports) => {
41368 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
41369 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
41370 /******/ }
41371 /******/ Object.defineProperty(exports, '__esModule', { value: true });
41372 /******/ };
41373 /******/ })();
41374 /******/
41375 /************************************************************************/
41376 var __webpack_exports__ = {};
41377 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
41378 (() => {
41379 "use strict";
41380 /*!**********************************************!*\
41381 !*** ../modules/ai/assets/js/admin/index.js ***!
41382 \**********************************************/
41383
41384
41385 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
41386 var _app = _interopRequireDefault(__webpack_require__(/*! elementor/modules/ai/assets/js/editor/app */ "../modules/ai/assets/js/editor/app.js"));
41387 // Temporary solution for exposing the AI App.
41388 window.__UNSTABLE__elementorAI = {
41389 App: _app.default
41390 };
41391 })();
41392
41393 /******/ })()
41394 ;
41395 //# sourceMappingURL=ai-admin.js.map