PluginProbe
Elementor Website Builder – more than just a page builder / 3.21.4
Elementor Website Builder – more than just a page builder v3.21.4
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / assets / js / ai-admin.js

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

41,745 lines 1.5 MB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.21.0 - 30-04-2024 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../modules/ai/assets/js/editor/actions-data.js":
6 /*!******************************************************!*\
7 !*** ../modules/ai/assets/js/editor/actions-data.js ***!
8 \******************************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 "use strict";
12
13
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports.vocalTones = exports.translateLanguages = exports.textareaAutocomplete = exports.textAutocomplete = exports.codeHtmlAutocomplete = exports.codeCssAutocomplete = void 0;
18 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
19 var textAutocomplete = [(0, _i18n.__)('Craft a catchy slogan for', 'elementor'), (0, _i18n.__)('Write a strong section header for', 'elementor'), (0, _i18n.__)('Create a blog title for', 'elementor'), (0, _i18n.__)('Suggest a 4 word headline for', 'elementor'), (0, _i18n.__)('Write an attention grabbing title for', 'elementor')];
20 exports.textAutocomplete = textAutocomplete;
21 var textareaAutocomplete = [(0, _i18n.__)('Write a product description for', 'elementor'), (0, _i18n.__)('Create a blog post for', 'elementor'), (0, _i18n.__)('Craft an about us section for', 'elementor'), (0, _i18n.__)('Offer a few sentences to invite visitors to', 'elementor'), (0, _i18n.__)('Write microcopy for a submission form that includes', 'elementor')];
22 exports.textareaAutocomplete = textareaAutocomplete;
23 var codeHtmlAutocomplete = [(0, _i18n.__)('GA event fired on every button element click (assume GA was loaded)', 'elementor'), (0, _i18n.__)('Iframe code to embed a Spotify widget on my web page. My ID is 1234567890', 'elementor'), (0, _i18n.__)('Write an embed code of Google Analytics', 'elementor'), (0, _i18n.__)('Write an embed code of Facebook Pixel', 'elementor'), (0, _i18n.__)('HTML code that embeds the following PDF into a webpage: link to PDF', 'elementor')];
24 exports.codeHtmlAutocomplete = codeHtmlAutocomplete;
25 var codeCssAutocomplete = [(0, _i18n.__)('On hover, animate 20% bigger, rotate 10 deg CCW', 'elementor'), (0, _i18n.__)('Add a circle-shaped clip mask, semi transparent on hover', 'elementor'), (0, _i18n.__)('Rainbow colored animated text gradient', 'elementor'), (0, _i18n.__)('Add a 3D shadow to the text', 'elementor')];
26 exports.codeCssAutocomplete = codeCssAutocomplete;
27 var vocalTones = [{
28 label: (0, _i18n.__)('Casual', 'elementor')
29 }, {
30 label: (0, _i18n.__)('Confidence', 'elementor')
31 }, {
32 label: (0, _i18n.__)('Formal', 'elementor')
33 }, {
34 label: (0, _i18n.__)('Friendly', 'elementor')
35 }, {
36 label: (0, _i18n.__)('Inspirational', 'elementor')
37 }, {
38 label: (0, _i18n.__)('Motivational', 'elementor')
39 }, {
40 label: (0, _i18n.__)('Nostalgic', 'elementor')
41 }, {
42 label: (0, _i18n.__)('Playful', 'elementor')
43 }, {
44 label: (0, _i18n.__)('Professional', 'elementor')
45 }, {
46 label: (0, _i18n.__)('Scientific', 'elementor')
47 }, {
48 label: (0, _i18n.__)('Straightforward', 'elementor')
49 }, {
50 label: (0, _i18n.__)('Witty', 'elementor')
51 }];
52 exports.vocalTones = vocalTones;
53 var translateLanguages = [{
54 label: (0, _i18n.__)('Arabic', 'elementor'),
55 value: 'ar-SA'
56 }, {
57 label: (0, _i18n.__)('Chinese', 'elementor'),
58 value: 'zh-CN'
59 }, {
60 label: (0, _i18n.__)('Czech', 'elementor'),
61 value: 'cs-CZ'
62 }, {
63 label: (0, _i18n.__)('Danish', 'elementor'),
64 value: 'da-DK'
65 }, {
66 label: (0, _i18n.__)('Dutch', 'elementor'),
67 value: 'nl-NL'
68 }, {
69 label: (0, _i18n.__)('English', 'elementor'),
70 value: 'en-US'
71 }, {
72 label: (0, _i18n.__)('Finnish', 'elementor'),
73 value: 'fi-FI'
74 }, {
75 label: (0, _i18n.__)('French', 'elementor'),
76 value: 'fr-FR'
77 }, {
78 label: (0, _i18n.__)('German', 'elementor'),
79 value: 'de-DE'
80 }, {
81 label: (0, _i18n.__)('Greek', 'elementor'),
82 value: 'el-GR'
83 }, {
84 label: (0, _i18n.__)('Hebrew', 'elementor'),
85 value: 'he-IL'
86 }, {
87 label: (0, _i18n.__)('Hungarian', 'elementor'),
88 value: 'hu-HU'
89 }, {
90 label: (0, _i18n.__)('Indonesian', 'elementor'),
91 value: 'id-ID'
92 }, {
93 label: (0, _i18n.__)('Italian', 'elementor'),
94 value: 'it-IT'
95 }, {
96 label: (0, _i18n.__)('Japanese', 'elementor'),
97 value: 'ja-JP'
98 }, {
99 label: (0, _i18n.__)('Korean', 'elementor'),
100 value: 'ko-KR'
101 }, {
102 label: (0, _i18n.__)('Persian', 'elementor'),
103 value: 'fa-IR'
104 }, {
105 label: (0, _i18n.__)('Polish', 'elementor'),
106 value: 'pl-PL'
107 }, {
108 label: (0, _i18n.__)('Portuguese', 'elementor'),
109 value: 'pt-PT'
110 }, {
111 label: (0, _i18n.__)('Russian', 'elementor'),
112 value: 'ru-RU'
113 }, {
114 label: (0, _i18n.__)('Spanish', 'elementor'),
115 value: 'es-ES'
116 }, {
117 label: (0, _i18n.__)('Swedish', 'elementor'),
118 value: 'sv-SE'
119 }, {
120 label: (0, _i18n.__)('Thai', 'elementor'),
121 value: 'th-TH'
122 }, {
123 label: (0, _i18n.__)('Turkish', 'elementor'),
124 value: 'tr-TR'
125 }, {
126 label: (0, _i18n.__)('Vietnamese', 'elementor'),
127 value: 'vi-VN'
128 }];
129 exports.translateLanguages = translateLanguages;
130
131 /***/ }),
132
133 /***/ "../modules/ai/assets/js/editor/api/index.js":
134 /*!***************************************************!*\
135 !*** ../modules/ai/assets/js/editor/api/index.js ***!
136 \***************************************************/
137 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
138
139 "use strict";
140
141
142 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
143 Object.defineProperty(exports, "__esModule", ({
144 value: true
145 }));
146 exports.uploadImage = exports.toggleFavoriteHistoryItem = exports.setStatusFeedback = exports.setGetStarted = exports.getUserInformation = exports.getTextToImageGeneration = exports.getRemoteConfig = exports.getLayoutPromptEnhanced = exports.getImageToImageUpscale = exports.getImageToImageReplaceBackground = exports.getImageToImageRemoveText = exports.getImageToImageRemoveBackground = exports.getImageToImageOutPainting = exports.getImageToImageMaskGeneration = exports.getImageToImageGeneration = exports.getImagePromptEnhanced = exports.getHistory = exports.getEditText = exports.getCustomCode = exports.getCustomCSS = exports.getCompletionText = exports.generateLayout = exports.deleteHistoryItem = void 0;
147 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
148 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
149 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
150 var request = function request(endpoint) {
151 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
152 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
153 var signal = arguments.length > 3 ? arguments[3] : undefined;
154 if (Object.keys(data).length) {
155 data.context = window.elementorAiCurrentContext;
156 }
157 return new Promise(function (resolve, reject) {
158 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
159 success: resolve,
160 error: reject,
161 data: data
162 }, immediately);
163 if (signal && ajaxData.jqXhr) {
164 signal.addEventListener('abort', ajaxData.jqXhr.abort);
165 }
166 });
167 };
168 var getUserInformation = function getUserInformation() {
169 return request('ai_get_user_information');
170 };
171 exports.getUserInformation = getUserInformation;
172 var getRemoteConfig = function getRemoteConfig() {
173 return request('ai_get_remote_config');
174 };
175 exports.getRemoteConfig = getRemoteConfig;
176 var getCompletionText = function getCompletionText(payload) {
177 return request('ai_get_completion_text', {
178 payload: payload
179 });
180 };
181 exports.getCompletionText = getCompletionText;
182 var getEditText = function getEditText(payload) {
183 return request('ai_get_edit_text', {
184 payload: payload
185 });
186 };
187 exports.getEditText = getEditText;
188 var getCustomCode = function getCustomCode(payload) {
189 return request('ai_get_custom_code', {
190 payload: payload
191 });
192 };
193 exports.getCustomCode = getCustomCode;
194 var getCustomCSS = function getCustomCSS(payload) {
195 return request('ai_get_custom_css', {
196 payload: payload
197 });
198 };
199 exports.getCustomCSS = getCustomCSS;
200 var setGetStarted = function setGetStarted() {
201 return request('ai_set_get_started');
202 };
203 exports.setGetStarted = setGetStarted;
204 var setStatusFeedback = function setStatusFeedback(responseId) {
205 return request('ai_set_status_feedback', {
206 response_id: responseId
207 });
208 };
209 exports.setStatusFeedback = setStatusFeedback;
210 var getTextToImageGeneration = function getTextToImageGeneration(payload) {
211 return request('ai_get_text_to_image', {
212 payload: payload
213 });
214 };
215 exports.getTextToImageGeneration = getTextToImageGeneration;
216 var getImageToImageGeneration = function getImageToImageGeneration(payload) {
217 return request('ai_get_image_to_image', {
218 payload: payload
219 });
220 };
221 exports.getImageToImageGeneration = getImageToImageGeneration;
222 var getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
223 return request('ai_get_image_to_image_mask', {
224 payload: payload
225 });
226 };
227 exports.getImageToImageMaskGeneration = getImageToImageMaskGeneration;
228 var getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
229 return request('ai_get_image_to_image_outpainting', {
230 payload: payload
231 });
232 };
233 exports.getImageToImageOutPainting = getImageToImageOutPainting;
234 var getImageToImageUpscale = function getImageToImageUpscale(payload) {
235 return request('ai_get_image_to_image_upscale', {
236 payload: payload
237 });
238 };
239 exports.getImageToImageUpscale = getImageToImageUpscale;
240 var getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
241 return request('ai_get_image_to_image_remove_background', {
242 payload: payload
243 });
244 };
245 exports.getImageToImageRemoveBackground = getImageToImageRemoveBackground;
246 var getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
247 return request('ai_get_image_to_image_replace_background', {
248 payload: payload
249 });
250 };
251 exports.getImageToImageReplaceBackground = getImageToImageReplaceBackground;
252 var getImageToImageRemoveText = function getImageToImageRemoveText(image) {
253 return request('ai_get_image_to_image_remove_text', {
254 image: image
255 });
256 };
257 exports.getImageToImageRemoveText = getImageToImageRemoveText;
258 var getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
259 return request('ai_get_image_prompt_enhancer', {
260 prompt: prompt
261 });
262 };
263 exports.getImagePromptEnhanced = getImagePromptEnhanced;
264 var uploadImage = function uploadImage(image) {
265 return request('ai_upload_image', _objectSpread({}, image));
266 };
267
268 /**
269 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
270 * @typedef {Object} requestBody
271 * @property {string} prompt - Prompt to generate the layout from.
272 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
273 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
274 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
275 */
276
277 /**
278 * @param {requestBody} requestBody
279 * @param {AbortSignal} [signal]
280 */
281 exports.uploadImage = uploadImage;
282 var generateLayout = function generateLayout(requestBody, signal) {
283 return request('ai_generate_layout', requestBody, true, signal);
284 };
285 exports.generateLayout = generateLayout;
286 var getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
287 return request('ai_get_layout_prompt_enhancer', {
288 prompt: prompt,
289 enhance_type: enhanceType
290 });
291 };
292 exports.getLayoutPromptEnhanced = getLayoutPromptEnhanced;
293 var getHistory = function getHistory(type, page, limit) {
294 return request('ai_get_history', {
295 type: type,
296 page: page,
297 limit: limit
298 });
299 };
300 exports.getHistory = getHistory;
301 var deleteHistoryItem = function deleteHistoryItem(id) {
302 return request('ai_delete_history_item', {
303 id: id
304 });
305 };
306 exports.deleteHistoryItem = deleteHistoryItem;
307 var toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
308 return request('ai_toggle_favorite_history_item', {
309 id: id
310 });
311 };
312 exports.toggleFavoriteHistoryItem = toggleFavoriteHistoryItem;
313
314 /***/ }),
315
316 /***/ "../modules/ai/assets/js/editor/app.js":
317 /*!*********************************************!*\
318 !*** ../modules/ai/assets/js/editor/app.js ***!
319 \*********************************************/
320 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
321
322 "use strict";
323
324
325 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
326 Object.defineProperty(exports, "__esModule", ({
327 value: true
328 }));
329 exports["default"] = void 0;
330 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
331 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
332 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
333 var _pageContent = _interopRequireDefault(__webpack_require__(/*! ./page-content */ "../modules/ai/assets/js/editor/page-content.js"));
334 var _helpers = __webpack_require__(/*! ./helpers */ "../modules/ai/assets/js/editor/helpers/index.js");
335 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
336 var App = function App(props) {
337 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
338 rtl: props.isRTL
339 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
340 colorScheme: props.colorScheme
341 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_pageContent.default, {
342 type: props.type,
343 controlType: props.controlType,
344 onClose: props.onClose,
345 onConnect: _helpers.onConnect,
346 getControlValue: props.getControlValue,
347 setControlValue: props.setControlValue,
348 controlView: props.controlView,
349 additionalOptions: props.additionalOptions
350 }))));
351 };
352 App.propTypes = {
353 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark']),
354 type: _propTypes.default.string,
355 controlType: _propTypes.default.string,
356 onClose: _propTypes.default.func,
357 getControlValue: _propTypes.default.func,
358 setControlValue: _propTypes.default.func,
359 additionalOptions: _propTypes.default.object,
360 controlView: _propTypes.default.object,
361 isRTL: _propTypes.default.bool
362 };
363 var _default = App;
364 exports["default"] = _default;
365
366 /***/ }),
367
368 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
369 /*!******************************************************************!*\
370 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
371 \******************************************************************/
372 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
373
374 "use strict";
375
376
377 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
378 Object.defineProperty(exports, "__esModule", ({
379 value: true
380 }));
381 exports["default"] = void 0;
382 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
383 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
384 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
385 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
386 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
387 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
388 var ElementorLogo = function ElementorLogo(props) {
389 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
390 viewBox: "0 0 32 32"
391 }, props), /*#__PURE__*/_react.default.createElement("path", {
392 fillRule: "evenodd",
393 clipRule: "evenodd",
394 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"
395 }));
396 };
397 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
398 var theme = _ref.theme;
399 return {
400 width: theme.spacing(3),
401 height: theme.spacing(3),
402 '& path': {
403 fill: theme.palette.text.primary
404 }
405 };
406 });
407 var DialogHeader = function DialogHeader(props) {
408 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
409 sx: {
410 fontWeight: 'normal'
411 },
412 color: "transparent",
413 position: "relative"
414 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
415 variant: "dense"
416 }, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
417 sx: {
418 mr: 1
419 }
420 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
421 component: "span",
422 variant: "subtitle2",
423 sx: {
424 fontWeight: 'bold',
425 textTransform: 'uppercase'
426 }
427 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
428 label: (0, _i18n.__)('Beta', 'elementor'),
429 color: "default",
430 size: "small",
431 sx: {
432 ml: 1
433 }
434 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
435 direction: "row",
436 spacing: 1,
437 alignItems: "center",
438 sx: {
439 ml: 'auto'
440 }
441 }, props.children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
442 size: "small",
443 "aria-label": "close",
444 onClick: props.onClose,
445 sx: {
446 '&.MuiButtonBase-root': {
447 mr: -1
448 }
449 }
450 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
451 };
452 DialogHeader.propTypes = {
453 onClose: _propTypes.default.func.isRequired,
454 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
455 };
456 var _default = DialogHeader;
457 exports["default"] = _default;
458
459 /***/ }),
460
461 /***/ "../modules/ai/assets/js/editor/components/generate-button.js":
462 /*!********************************************************************!*\
463 !*** ../modules/ai/assets/js/editor/components/generate-button.js ***!
464 \********************************************************************/
465 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
466
467 "use strict";
468
469
470 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
471 Object.defineProperty(exports, "__esModule", ({
472 value: true
473 }));
474 exports["default"] = void 0;
475 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
476 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
477 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
478 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
479 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
480 var GenerateButton = function GenerateButton(props) {
481 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
482 variant: "contained",
483 endIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
484 fontSize: "small"
485 }),
486 disabled: !prompt,
487 "aria-label": (0, _i18n.__)('search', 'elementor'),
488 type: "submit",
489 size: "small"
490 }, props));
491 };
492 var _default = GenerateButton;
493 exports["default"] = _default;
494
495 /***/ }),
496
497 /***/ "../modules/ai/assets/js/editor/components/loader.js":
498 /*!***********************************************************!*\
499 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
500 \***********************************************************/
501 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
502
503 "use strict";
504
505
506 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
507 Object.defineProperty(exports, "__esModule", ({
508 value: true
509 }));
510 exports["default"] = void 0;
511 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
512 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
513 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
514 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
515 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
516 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
517 var _excluded = ["sx", "BoxProps"];
518 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; }
519 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; }
520 var Loader = function Loader(_ref) {
521 var _ref$sx = _ref.sx,
522 sx = _ref$sx === void 0 ? {} : _ref$sx,
523 _ref$BoxProps = _ref.BoxProps,
524 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
525 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
526 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
527 width: "100%",
528 display: "flex",
529 alignItems: "center"
530 }, BoxProps, {
531 sx: _objectSpread({
532 px: 1.5,
533 minHeight: function minHeight(theme) {
534 return theme.spacing(5);
535 }
536 }, BoxProps.sx || {})
537 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
538 color: "secondary"
539 }, props, {
540 sx: _objectSpread({
541 width: '100%'
542 }, sx)
543 })));
544 };
545 Loader.propTypes = {
546 sx: _propTypes.default.object,
547 BoxProps: _propTypes.default.object
548 };
549 var _default = Loader;
550 exports["default"] = _default;
551
552 /***/ }),
553
554 /***/ "../modules/ai/assets/js/editor/components/prompt-action-selection.js":
555 /*!****************************************************************************!*\
556 !*** ../modules/ai/assets/js/editor/components/prompt-action-selection.js ***!
557 \****************************************************************************/
558 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
559
560 "use strict";
561
562
563 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
564 Object.defineProperty(exports, "__esModule", ({
565 value: true
566 }));
567 exports["default"] = void 0;
568 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
569 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
570 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
571 var labelToDashCash = function labelToDashCash(str) {
572 return str.toLowerCase().replace(/ /g, '-');
573 };
574 var PromptActionSelection = function PromptActionSelection(props) {
575 var actionId = labelToDashCash(props.label);
576 var _props$wrapperStyle = props.wrapperStyle,
577 wrapperStyle = _props$wrapperStyle === void 0 ? {
578 maxWidth: 138
579 } : _props$wrapperStyle;
580 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
581 size: "small",
582 color: "secondary",
583 fullWidth: true,
584 sx: wrapperStyle
585 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
586 id: actionId
587 }, props.label), /*#__PURE__*/_react.default.createElement(_ui.Select, {
588 id: actionId,
589 labelId: actionId,
590 label: props.label,
591 value: props.value || '',
592 onChange: props.onChange,
593 disabled: props.disabled,
594 sx: {
595 // Fixing global CSS of the editor that targets input[disabled] globally.
596 '&.Mui-disabled .MuiSelect-nativeInput': {
597 backgroundColor: 'initial',
598 opacity: 0
599 }
600 }
601 }, props.options.map(function (option) {
602 var _option$value;
603 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
604 dense: true,
605 key: option.label,
606 value: (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : option.label
607 }, option.label);
608 })));
609 };
610 PromptActionSelection.propTypes = {
611 label: _propTypes.default.string.isRequired,
612 options: _propTypes.default.arrayOf(_propTypes.default.shape({
613 label: _propTypes.default.string.isRequired,
614 value: _propTypes.default.string
615 })).isRequired,
616 onChange: _propTypes.default.func.isRequired,
617 value: _propTypes.default.string,
618 wrapperStyle: _propTypes.default.object,
619 disabled: _propTypes.default.bool
620 };
621 var _default = PromptActionSelection;
622 exports["default"] = _default;
623
624 /***/ }),
625
626 /***/ "../modules/ai/assets/js/editor/components/prompt-action.js":
627 /*!******************************************************************!*\
628 !*** ../modules/ai/assets/js/editor/components/prompt-action.js ***!
629 \******************************************************************/
630 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
631
632 "use strict";
633
634
635 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
636 Object.defineProperty(exports, "__esModule", ({
637 value: true
638 }));
639 exports["default"] = void 0;
640 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
641 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
642 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
643 var PromptAction = function PromptAction(props) {
644 return /*#__PURE__*/_react.default.createElement(_ui.Chip, (0, _extends2.default)({
645 size: "large",
646 color: "secondary",
647 variant: "outlined"
648 }, props));
649 };
650 var _default = PromptAction;
651 exports["default"] = _default;
652
653 /***/ }),
654
655 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
656 /*!******************************************************************!*\
657 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
658 \******************************************************************/
659 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
660
661 "use strict";
662
663
664 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
665 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
666 Object.defineProperty(exports, "__esModule", ({
667 value: true
668 }));
669 exports["default"] = void 0;
670 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
671 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
672 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
673 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
674 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
675 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
676 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
677 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
678 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); }
679 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; }
680 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; }
681 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; }
682 var DraggablePaper = function DraggablePaper(props) {
683 var _useState = (0, _react.useState)({
684 x: 0,
685 y: 0
686 }),
687 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
688 position = _useState2[0],
689 setPosition = _useState2[1];
690 var paperRef = (0, _react.useRef)(null);
691 var timeout = (0, _react.useRef)(null);
692 var onDrag = function onDrag(_e, _ref) {
693 var x = _ref.x,
694 y = _ref.y;
695 return setPosition({
696 x: x,
697 y: y
698 });
699 };
700 var handlePositionBoundaries = function handlePositionBoundaries() {
701 clearTimeout(timeout.current);
702
703 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
704 timeout.current = setTimeout(function () {
705 var _paperRef$current;
706 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
707 if (dialogTop < 0) {
708 setPosition(function (prev) {
709 return _objectSpread(_objectSpread({}, prev), {}, {
710 y: prev.y - dialogTop
711 });
712 });
713 }
714 }, 50);
715 };
716 (0, _react.useEffect)(function () {
717 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
718 resizeObserver.observe(paperRef.current);
719 return function () {
720 resizeObserver.disconnect();
721 };
722 }, []);
723 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
724 position: position,
725 onDrag: onDrag,
726 handle: ".MuiAppBar-root",
727 cancel: '[class*="MuiDialogContent-root"]',
728 bounds: "parent"
729 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
730 ref: paperRef
731 })));
732 };
733 var PromptDialog = function PromptDialog(props) {
734 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
735 scroll: "paper",
736 open: true,
737 fullWidth: true,
738 hideBackdrop: true,
739 PaperComponent: DraggablePaper,
740 disableScrollLock: true,
741 sx: {
742 '& .MuiDialog-container': {
743 alignItems: 'flex-start',
744 mt: '18vh'
745 }
746 },
747 PaperProps: {
748 sx: {
749 m: 0,
750 maxHeight: '76vh'
751 }
752 }
753 }, props), props.children);
754 };
755 PromptDialog.propTypes = {
756 onClose: _propTypes.default.func.isRequired,
757 children: _propTypes.default.node,
758 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
759 };
760 PromptDialog.Header = _dialogHeader.default;
761 PromptDialog.Content = _ui.DialogContent;
762 var _default = PromptDialog;
763 exports["default"] = _default;
764
765 /***/ }),
766
767 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
768 /*!*************************************************************************!*\
769 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
770 \*************************************************************************/
771 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
772
773 "use strict";
774 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
775
776
777 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
778 Object.defineProperty(exports, "__esModule", ({
779 value: true
780 }));
781 exports["default"] = void 0;
782 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
783 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
784 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
785 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
786 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
787 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
788 var _excluded = ["error", "onRetry", "actionPosition"];
789 var PromptErrorMessage = function PromptErrorMessage(_ref) {
790 var error = _ref.error,
791 _ref$onRetry = _ref.onRetry,
792 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
793 _ref$actionPosition = _ref.actionPosition,
794 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
795 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
796 function getQuotaReachedTrailMessage(featureName) {
797 if (!featureName) {
798 return {
799 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
800 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
801 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
802 buttonAction: function buttonAction() {
803 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
804 }
805 };
806 }
807 return {
808 // Translators: %s is the feature name.
809 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
810 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
811 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
812 buttonAction: function buttonAction() {
813 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
814 }
815 };
816 }
817 function getErrorMessage() {
818 var _error$extra_data;
819 var errMsg = error.message || error;
820 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
821 var messages = {
822 default: {
823 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
824 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
825 buttonText: (0, _i18n.__)('Try again', 'elementor'),
826 buttonAction: onRetry
827 },
828 service_outage_internal: {
829 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
830 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
831 buttonText: (0, _i18n.__)('Try again', 'elementor'),
832 buttonAction: onRetry
833 },
834 invalid_connect_data: {
835 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
836 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
837 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
838 target: "_blank",
839 rel: "noreferrer"
840 }, (0, _i18n.__)('Show me how', 'elementor'))),
841 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
842 buttonAction: function buttonAction() {
843 return window.open(window.ElementorAiConfig.connect_url);
844 }
845 },
846 not_connected: {
847 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
848 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
849 buttonText: (0, _i18n.__)('Connect', 'elementor'),
850 buttonAction: function buttonAction() {
851 return window.open(window.ElementorAiConfig.connect_url);
852 }
853 },
854 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
855 quota_reached_subscription: {
856 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
857 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
858 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
859 buttonAction: function buttonAction() {
860 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
861 }
862 },
863 rate_limit_network: {
864 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
865 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
866 },
867 invalid_prompts: {
868 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
869 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
870 },
871 service_unavailable: {
872 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
873 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
874 buttonText: (0, _i18n.__)('Try again', 'elementor'),
875 buttonAction: onRetry
876 },
877 request_timeout_error: {
878 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
879 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
880 buttonText: (0, _i18n.__)('Try again', 'elementor'),
881 buttonAction: onRetry
882 },
883 invalid_token: {
884 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
885 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
886 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
887 buttonAction: onRetry
888 },
889 file_too_large: {
890 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
891 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
892 }
893 };
894 return messages[errMsg] || messages.default;
895 }
896 var message = getErrorMessage();
897 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
898 color: "inherit",
899 size: "small",
900 variant: "outlined",
901 onClick: message.buttonAction
902 }, message.buttonText);
903 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
904 severity: message.severity || 'error',
905 action: 'default' === actionPosition && action
906 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
907 sx: {
908 mt: 1
909 }
910 }, action));
911 };
912 PromptErrorMessage.propTypes = {
913 error: _propTypes.default.string,
914 onRetry: _propTypes.default.func,
915 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
916 };
917 var _default = PromptErrorMessage;
918 exports["default"] = _default;
919
920 /***/ }),
921
922 /***/ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js":
923 /*!*********************************************************************************************************!*\
924 !*** ../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js ***!
925 \*********************************************************************************************************/
926 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
927
928 "use strict";
929
930
931 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
932 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
933 Object.defineProperty(exports, "__esModule", ({
934 value: true
935 }));
936 exports.useSubscribeOnPromptHistoryAction = exports.usePromptHistoryAction = exports.PromptHistoryActionProvider = exports.PromptHistoryActionContext = exports.ACTION_TYPES = void 0;
937 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
938 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
939 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
940 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
941 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
942 var _promptHistoryContext = __webpack_require__(/*! ./prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
943 var _HISTORY_TYPES$TEXT, _HISTORY_TYPES$CODE, _HISTORY_TYPES$IMAGE, _ENABLED_ACTIONS_BY_T;
944 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); }
945 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; }
946 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; } } }; }
947 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); }
948 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; }
949 var PromptHistoryActionContext = (0, _react.createContext)({});
950 exports.PromptHistoryActionContext = PromptHistoryActionContext;
951 var initialActionValue = {
952 type: '',
953 id: '',
954 data: null
955 };
956 var ACTION_TYPES = Object.freeze({
957 REUSE: 'reuse',
958 EDIT: 'edit',
959 RESTORE: 'restore',
960 REMOVE: 'remove'
961 });
962 exports.ACTION_TYPES = ACTION_TYPES;
963 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);
964 var PromptHistoryActionProvider = function PromptHistoryActionProvider(_ref) {
965 var children = _ref.children;
966 var _useState = (0, _react.useState)(initialActionValue),
967 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
968 state = _useState2[0],
969 dispatch = _useState2[1];
970 return /*#__PURE__*/_react.default.createElement(PromptHistoryActionContext.Provider, {
971 value: {
972 state: state,
973 dispatch: dispatch
974 }
975 }, children);
976 };
977 exports.PromptHistoryActionProvider = PromptHistoryActionProvider;
978 PromptHistoryActionProvider.propTypes = {
979 children: _propTypes.default.node
980 };
981 var usePromptHistoryAction = function usePromptHistoryAction() {
982 var _useContext = (0, _react.useContext)(PromptHistoryActionContext),
983 state = _useContext.state,
984 dispatch = _useContext.dispatch;
985 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
986 historyType = _usePromptHistoryCont.historyType,
987 onClose = _usePromptHistoryCont.onClose;
988 var closeModalAfterAction = function closeModalAfterAction(action) {
989 return function () {
990 action.apply(void 0, arguments);
991 onClose();
992 };
993 };
994 var getAllowedActions = function getAllowedActions() {
995 return ENABLED_ACTIONS_BY_TYPE[historyType] || {};
996 };
997 var onPromptReuse = function onPromptReuse(id, data) {
998 return dispatch({
999 type: ACTION_TYPES.REUSE,
1000 id: id,
1001 data: data
1002 });
1003 };
1004 var onResultEdit = function onResultEdit(id, data) {
1005 return dispatch({
1006 type: ACTION_TYPES.EDIT,
1007 id: id,
1008 data: data
1009 });
1010 };
1011 var onImagesRestore = function onImagesRestore(id, data) {
1012 return dispatch({
1013 type: ACTION_TYPES.RESTORE,
1014 id: id,
1015 data: data
1016 });
1017 };
1018 return {
1019 promptHistoryAction: state,
1020 onPromptReuse: closeModalAfterAction(onPromptReuse),
1021 onResultEdit: closeModalAfterAction(onResultEdit),
1022 onImagesRestore: closeModalAfterAction(onImagesRestore),
1023 getAllowedActions: getAllowedActions
1024 };
1025 };
1026
1027 /**
1028 *
1029 * @param {{type: string, handler: Function}[]} actions
1030 */
1031 exports.usePromptHistoryAction = usePromptHistoryAction;
1032 var useSubscribeOnPromptHistoryAction = function useSubscribeOnPromptHistoryAction(actions) {
1033 var _useContext2 = (0, _react.useContext)(PromptHistoryActionContext),
1034 state = _useContext2.state;
1035 (0, _react.useEffect)(function () {
1036 if (!state.type) {
1037 return;
1038 }
1039 var _iterator = _createForOfIteratorHelper(actions),
1040 _step;
1041 try {
1042 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1043 var action = _step.value;
1044 if (state.type === (action === null || action === void 0 ? void 0 : action.type)) {
1045 action === null || action === void 0 ? void 0 : action.handler(state);
1046 }
1047 }
1048 } catch (err) {
1049 _iterator.e(err);
1050 } finally {
1051 _iterator.f();
1052 }
1053 }, [state]);
1054 };
1055 exports.useSubscribeOnPromptHistoryAction = useSubscribeOnPromptHistoryAction;
1056
1057 /***/ }),
1058
1059 /***/ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js":
1060 /*!**************************************************************************************************!*\
1061 !*** ../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js ***!
1062 \**************************************************************************************************/
1063 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1064
1065 "use strict";
1066
1067
1068 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1069 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1070 Object.defineProperty(exports, "__esModule", ({
1071 value: true
1072 }));
1073 exports.usePromptHistoryContext = exports.PromptHistoryProvider = exports.PromptHistoryContext = void 0;
1074 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1075 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1076 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1077 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
1078 var _helpers = __webpack_require__(/*! ../../../helpers */ "../modules/ai/assets/js/editor/helpers/index.js");
1079 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); }
1080 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; }
1081 var PromptHistoryContext = (0, _react.createContext)({});
1082 exports.PromptHistoryContext = PromptHistoryContext;
1083 var DIALOG_CONTAINER_SELECTOR = '.e-ai-dialog-content';
1084 var getContainer = function getContainer() {
1085 return document.querySelector(DIALOG_CONTAINER_SELECTOR);
1086 };
1087 var getContainerHeight = function getContainerHeight() {
1088 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1089 return contentContainer === null || contentContainer === void 0 ? void 0 : contentContainer.clientHeight;
1090 };
1091 var getContentHeight = function getContentHeight() {
1092 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1093 return contentContainer.children[0].clientHeight + 50;
1094 };
1095 var setContentHeight = function setContentHeight(height) {
1096 var contentContainer = document.querySelector(DIALOG_CONTAINER_SELECTOR);
1097 if ('auto' === height) {
1098 contentContainer.style.height = 'auto';
1099 return;
1100 }
1101 contentContainer.style.height = "".concat(height, "px");
1102 };
1103 var PromptHistoryProvider = function PromptHistoryProvider(_ref) {
1104 var historyType = _ref.historyType,
1105 children = _ref.children;
1106 var showHistoryState = (0, _react.useState)(false);
1107 return /*#__PURE__*/_react.default.createElement(PromptHistoryContext.Provider, {
1108 value: {
1109 historyType: historyType,
1110 showHistoryState: showHistoryState
1111 }
1112 }, children);
1113 };
1114 exports.PromptHistoryProvider = PromptHistoryProvider;
1115 PromptHistoryProvider.propTypes = {
1116 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired,
1117 children: _propTypes.default.node
1118 };
1119 var usePromptHistoryContext = function usePromptHistoryContext() {
1120 var _useContext = (0, _react.useContext)(PromptHistoryContext),
1121 historyType = _useContext.historyType,
1122 showHistoryState = _useContext.showHistoryState;
1123 var _showHistoryState = (0, _slicedToArray2.default)(showHistoryState, 2),
1124 showHistory = _showHistoryState[0],
1125 setShowHistory = _showHistoryState[1];
1126 var _useState = (0, _react.useState)(false),
1127 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1128 showModalWrapper = _useState2[0],
1129 setShowModalWrapper = _useState2[1];
1130 var _useState3 = (0, _react.useState)(false),
1131 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1132 showPromptHistory = _useState4[0],
1133 setShowPromptHistory = _useState4[1];
1134 var handleFullScreenHistoryState = function handleFullScreenHistoryState() {
1135 if (showHistory) {
1136 setShowModalWrapper(true);
1137 setTimeout(function () {
1138 return setShowPromptHistory(true);
1139 }, 200);
1140 return;
1141 }
1142 setShowPromptHistory(false);
1143 setTimeout(function () {
1144 return setShowModalWrapper(false);
1145 }, 500);
1146 };
1147 var handleDefaultHistoryState = function handleDefaultHistoryState() {
1148 if (showHistory) {
1149 var currentHeight = getContentHeight();
1150
1151 // Set initial state
1152 setContentHeight(currentHeight);
1153 setTimeout(function () {
1154 if (currentHeight < (0, _helpers.vh)(61)) {
1155 setContentHeight((0, _helpers.vh)(61));
1156 setTimeout(function () {
1157 return setShowModalWrapper(true);
1158 }, 200);
1159 setTimeout(function () {
1160 return setShowPromptHistory(true);
1161 }, 300);
1162 return;
1163 }
1164 setShowModalWrapper(true);
1165 setShowPromptHistory(true);
1166 }, 20);
1167 return;
1168 }
1169 setShowPromptHistory(false);
1170 setTimeout(function () {
1171 setShowModalWrapper(false);
1172 setContentHeight(getContentHeight());
1173 setTimeout(function () {
1174 return setContentHeight('auto');
1175 }, 300);
1176 }, 500);
1177 };
1178 (0, _react.useEffect)(function () {
1179 if (showHistory === showModalWrapper && showHistory === showPromptHistory) {
1180 return;
1181 }
1182 if (historyType === _historyTypes.HISTORY_TYPES.IMAGE) {
1183 return handleFullScreenHistoryState();
1184 }
1185 handleDefaultHistoryState();
1186 }, [showHistory]);
1187 var onOpen = function onOpen() {
1188 setShowHistory(true);
1189 };
1190 var onClose = function onClose() {
1191 setShowHistory(false);
1192 };
1193 return {
1194 historyType: historyType,
1195 isOpen: showPromptHistory,
1196 isModalOpen: showModalWrapper,
1197 showHistory: showHistory,
1198 onOpen: onOpen,
1199 onClose: onClose,
1200 getContainer: getContainer,
1201 getContainerHeight: getContainerHeight
1202 };
1203 };
1204 exports.usePromptHistoryContext = usePromptHistoryContext;
1205
1206 /***/ }),
1207
1208 /***/ "../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js":
1209 /*!**************************************************************************************************!*\
1210 !*** ../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js ***!
1211 \**************************************************************************************************/
1212 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1213
1214 "use strict";
1215
1216
1217 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1218 Object.defineProperty(exports, "__esModule", ({
1219 value: true
1220 }));
1221 exports.renderPeriods = exports.groupPromptHistoryData = exports.LAST_7_DAYS_KEY = exports.LAST_30_DAYS_KEY = void 0;
1222 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1223 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1224 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
1225 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1226 var _dateHelpers = __webpack_require__(/*! ../../../helpers/date-helpers */ "../modules/ai/assets/js/editor/helpers/date-helpers.js");
1227 var _modalPeriod = _interopRequireDefault(__webpack_require__(/*! ../parts/modal-period */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js"));
1228 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; } } }; }
1229 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); }
1230 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; }
1231 var DATE_KEY = 'date';
1232 var LAST_7_DAYS_KEY = '7-days';
1233 exports.LAST_7_DAYS_KEY = LAST_7_DAYS_KEY;
1234 var LAST_30_DAYS_KEY = '30-days';
1235 exports.LAST_30_DAYS_KEY = LAST_30_DAYS_KEY;
1236 var MONTH_FORMAT = (0, _i18n.__)('F', 'elementor');
1237
1238 /**
1239 * Sorts items in ascending order by date.
1240 *
1241 * @param {Array} historyData
1242 * @return {Array}
1243 */
1244 var sortPromptHistoryData = function sortPromptHistoryData(historyData) {
1245 var clone = (0, _toConsumableArray2.default)(historyData);
1246 return clone.sort(function (a, b) {
1247 return new Date(b[DATE_KEY]) - new Date(a[DATE_KEY]);
1248 });
1249 };
1250
1251 /**
1252 * Groups prompt history data by time periods.
1253 *
1254 * @param {Array} historyData
1255 * @return {Object.<string, {label: string, items: any[]}>}
1256 */
1257 var groupPromptHistoryData = function groupPromptHistoryData(historyData) {
1258 var _result;
1259 var data = sortPromptHistoryData(historyData);
1260 var currentDate = new Date();
1261 var result = (_result = {}, (0, _defineProperty2.default)(_result, LAST_7_DAYS_KEY, {
1262 label: (0, _i18n.__)('Last 7 days', 'elementor'),
1263 items: []
1264 }), (0, _defineProperty2.default)(_result, LAST_30_DAYS_KEY, {
1265 label: (0, _i18n.__)('Last 30 days', 'elementor'),
1266 items: []
1267 }), _result);
1268 var _iterator = _createForOfIteratorHelper(data),
1269 _step;
1270 try {
1271 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1272 var item = _step.value;
1273 var date = new Date(item[DATE_KEY]);
1274 var diff = (0, _dateHelpers.daysDiff)(date, currentDate);
1275 if (diff <= 7) {
1276 result[LAST_7_DAYS_KEY].items.push(item);
1277 continue;
1278 }
1279 if (diff <= 30) {
1280 result[LAST_30_DAYS_KEY].items.push(item);
1281 continue;
1282 }
1283 var month = date.getMonth();
1284 if (!result[month]) {
1285 result[month] = {
1286 label: (0, _dateHelpers.translateDate)(MONTH_FORMAT, date),
1287 items: []
1288 };
1289 }
1290 result[month].items.push(item);
1291 }
1292 } catch (err) {
1293 _iterator.e(err);
1294 } finally {
1295 _iterator.f();
1296 }
1297 return result;
1298 };
1299 exports.groupPromptHistoryData = groupPromptHistoryData;
1300 var renderPeriods = function renderPeriods(_ref) {
1301 var _groupData$LAST_7_DAY, _groupData$LAST_7_DAY2, _groupData$LAST_30_DA, _groupData$LAST_30_DA2;
1302 var items = _ref.items,
1303 onDelete = _ref.onDelete;
1304 var groupData = groupPromptHistoryData(items);
1305 var periods = [];
1306 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) {
1307 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1308 periodTitle: groupData[LAST_7_DAYS_KEY].label,
1309 onHistoryItemDelete: onDelete,
1310 historyItems: groupData[LAST_7_DAYS_KEY].items
1311 }));
1312 }
1313 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) {
1314 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1315 periodTitle: groupData[LAST_30_DAYS_KEY].label,
1316 onHistoryItemDelete: onDelete,
1317 historyItems: groupData[LAST_30_DAYS_KEY].items
1318 }));
1319 }
1320 for (var i = _dateHelpers.MONTH_DECEMBER_INDEX; i >= _dateHelpers.MONTH_JANUARY_INDEX; i--) {
1321 if (groupData[i]) {
1322 periods.push( /*#__PURE__*/_react.default.createElement(_modalPeriod.default, {
1323 periodTitle: groupData[i].label,
1324 onHistoryItemDelete: onDelete,
1325 historyItems: groupData[i].items
1326 }));
1327 }
1328 }
1329 return periods;
1330 };
1331 exports.renderPeriods = renderPeriods;
1332
1333 /***/ }),
1334
1335 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-button.js":
1336 /*!**********************************************************************************!*\
1337 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-button.js ***!
1338 \**********************************************************************************/
1339 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1340
1341 "use strict";
1342
1343
1344 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1345 Object.defineProperty(exports, "__esModule", ({
1346 value: true
1347 }));
1348 exports["default"] = void 0;
1349 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1350 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1351 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1352 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1353 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1354 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1355 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1356 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1357 var _excluded = ["isActive"];
1358 var _templateObject;
1359 var StyledHistoryButton = (0, _ui.styled)(_ui.IconButton)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n\n ", "\n"])), function (_ref) {
1360 var theme = _ref.theme;
1361 return theme.spacing(2);
1362 }, function (_ref2) {
1363 var isActive = _ref2.isActive,
1364 theme = _ref2.theme;
1365 return isActive && "\n background-color: ".concat(theme.palette.action.hover, ";\n color: ").concat(theme.palette.text.tertiary, ";\n ");
1366 });
1367 var PromptHistoryButton = function PromptHistoryButton(_ref3) {
1368 var isActive = _ref3.isActive,
1369 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
1370 return /*#__PURE__*/_react.default.createElement(StyledHistoryButton, (0, _extends2.default)({
1371 "aria-label": (0, _i18n.__)('Show prompt history', 'elementor'),
1372 type: "button",
1373 size: "small",
1374 isActive: isActive
1375 }, props), /*#__PURE__*/_react.default.createElement(_icons.HistoryIcon, null));
1376 };
1377 PromptHistoryButton.propTypes = {
1378 isActive: _propTypes.default.bool.isRequired
1379 };
1380 var _default = PromptHistoryButton;
1381 exports["default"] = _default;
1382
1383 /***/ }),
1384
1385 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-modal.js":
1386 /*!*********************************************************************************!*\
1387 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-modal.js ***!
1388 \*********************************************************************************/
1389 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1390
1391 "use strict";
1392
1393
1394 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1395 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1396 Object.defineProperty(exports, "__esModule", ({
1397 value: true
1398 }));
1399 exports["default"] = void 0;
1400 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1401 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1402 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1403 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1404 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1405 var _usePromptHistory2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-history */ "../modules/ai/assets/js/editor/hooks/use-prompt-history.js"));
1406 var _modalHeader = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-header */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js"));
1407 var _useDeletePromptHistoryItem = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-delete-prompt-history-item */ "../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js"));
1408 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
1409 var _historyPeriodHelpers = __webpack_require__(/*! ./helpers/history-period-helpers */ "../modules/ai/assets/js/editor/components/prompt-history/helpers/history-period-helpers.js");
1410 var _modalEmpty = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-empty */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js"));
1411 var _reactInfiniteScroller = _interopRequireDefault(__webpack_require__(/*! react-infinite-scroller */ "../node_modules/react-infinite-scroller/index.js"));
1412 var _modalUpgrade = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-upgrade */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js"));
1413 var _promptHistoryContext = __webpack_require__(/*! ./context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1414 var _modalContainer = _interopRequireDefault(__webpack_require__(/*! ./parts/modal-container */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js"));
1415 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); }
1416 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; }
1417 var ITEMS_LIMIT = 10;
1418 var FREE_PLAN_ERRORS = ['invalid_connect_data', 'no_subscription'];
1419 var PromptHistoryModal = function PromptHistoryModal(props) {
1420 var lastRun = (0, _react.useRef)(function () {});
1421 var scrollContainer = (0, _react.useRef)(null);
1422 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1423 historyType = _usePromptHistoryCont.historyType,
1424 onClose = _usePromptHistoryCont.onClose;
1425 var _usePromptHistory = (0, _usePromptHistory2.default)(historyType),
1426 items = _usePromptHistory.items,
1427 meta = _usePromptHistory.meta,
1428 isHistoryFetchingInProgress = _usePromptHistory.isLoading,
1429 historyFetchingError = _usePromptHistory.error,
1430 fetchData = _usePromptHistory.fetchData,
1431 deleteItemFromState = _usePromptHistory.deleteItemById;
1432 var _useDeletePromptHisto = (0, _useDeletePromptHistoryItem.default)(),
1433 isDeletingInProgress = _useDeletePromptHisto.isLoading,
1434 historyDeletingError = _useDeletePromptHisto.error,
1435 deleteItem = _useDeletePromptHisto.deleteItem;
1436 var error = historyFetchingError || historyDeletingError;
1437 var isLoading = isHistoryFetchingInProgress || isDeletingInProgress;
1438 var isLastPage = meta && (meta === null || meta === void 0 ? void 0 : meta.currentPage) === (meta === null || meta === void 0 ? void 0 : meta.totalPages);
1439 var showUpgrade = (items === null || items === void 0 ? void 0 : items.length) > 0 && (meta === null || meta === void 0 ? void 0 : meta.allowedDays) < 90 && isLastPage;
1440 (0, _react.useEffect)(function () {
1441 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
1442 return _regenerator.default.wrap(function _callee$(_context) {
1443 while (1) switch (_context.prev = _context.next) {
1444 case 0:
1445 return _context.abrupt("return", fetchData({
1446 page: 1,
1447 limit: ITEMS_LIMIT
1448 }));
1449 case 1:
1450 case "end":
1451 return _context.stop();
1452 }
1453 }, _callee);
1454 }));
1455 lastRun.current();
1456 }, []);
1457 var loadNext = function loadNext() {
1458 if (isLoading || isLastPage) {
1459 return;
1460 }
1461 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
1462 return _regenerator.default.wrap(function _callee2$(_context2) {
1463 while (1) switch (_context2.prev = _context2.next) {
1464 case 0:
1465 return _context2.abrupt("return", fetchData({
1466 page: meta.currentPage + 1,
1467 limit: ITEMS_LIMIT
1468 }));
1469 case 1:
1470 case "end":
1471 return _context2.stop();
1472 }
1473 }, _callee2);
1474 }));
1475 lastRun.current();
1476 };
1477 var onHistoryItemDelete = /*#__PURE__*/function () {
1478 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(id) {
1479 return _regenerator.default.wrap(function _callee4$(_context4) {
1480 while (1) switch (_context4.prev = _context4.next) {
1481 case 0:
1482 lastRun.current = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
1483 return _regenerator.default.wrap(function _callee3$(_context3) {
1484 while (1) switch (_context3.prev = _context3.next) {
1485 case 0:
1486 _context3.next = 2;
1487 return deleteItem(id);
1488 case 2:
1489 return _context3.abrupt("return", _context3.sent);
1490 case 3:
1491 case "end":
1492 return _context3.stop();
1493 }
1494 }, _callee3);
1495 }));
1496 _context4.next = 3;
1497 return lastRun.current();
1498 case 3:
1499 if (!historyDeletingError) {
1500 deleteItemFromState(id);
1501 }
1502 case 4:
1503 case "end":
1504 return _context4.stop();
1505 }
1506 }, _callee4);
1507 }));
1508 return function onHistoryItemDelete(_x) {
1509 return _ref3.apply(this, arguments);
1510 };
1511 }();
1512 return /*#__PURE__*/_react.default.createElement(_modalContainer.default, props, /*#__PURE__*/_react.default.createElement(_modalHeader.default, {
1513 onClose: onClose
1514 }), error && !FREE_PLAN_ERRORS.includes(error) && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
1515 error: error,
1516 onRetry: lastRun.current,
1517 sx: {
1518 position: 'absolute',
1519 zIndex: 1,
1520 marginTop: isLoading ? 0.5 : 'revert'
1521 }
1522 }), isLoading && /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
1523 role: "progressbar",
1524 "aria-label": (0, _i18n.__)('Loading', 'elementor'),
1525 color: "secondary"
1526 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
1527 sx: {
1528 overflowY: 'scroll',
1529 height: '85%'
1530 },
1531 ref: scrollContainer
1532 }, error && FREE_PLAN_ERRORS.includes(error) && /*#__PURE__*/_react.default.createElement(_modalUpgrade.default, {
1533 variant: "full",
1534 historyType: historyType
1535 }), !error && 0 === (items === null || items === void 0 ? void 0 : items.length) && /*#__PURE__*/_react.default.createElement(_modalEmpty.default, {
1536 historyType: historyType
1537 }), (items === null || items === void 0 ? void 0 : items.length) > 0 && /*#__PURE__*/_react.default.createElement(_reactInfiniteScroller.default, {
1538 loadMore: loadNext,
1539 getScrollParent: function getScrollParent() {
1540 return scrollContainer.current;
1541 },
1542 useWindow: false,
1543 isReverse: false,
1544 threshold: 30,
1545 initialLoad: false,
1546 hasMore: !isLastPage
1547 }, (0, _historyPeriodHelpers.renderPeriods)({
1548 items: items,
1549 onDelete: onHistoryItemDelete
1550 })), showUpgrade && /*#__PURE__*/_react.default.createElement(_modalUpgrade.default, {
1551 variant: "small",
1552 historyType: historyType
1553 })));
1554 };
1555 var _default = PromptHistoryModal;
1556 exports["default"] = _default;
1557
1558 /***/ }),
1559
1560 /***/ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js":
1561 /*!*********************************************************************************!*\
1562 !*** ../modules/ai/assets/js/editor/components/prompt-history/history-types.js ***!
1563 \*********************************************************************************/
1564 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1565
1566 "use strict";
1567
1568
1569 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1570 Object.defineProperty(exports, "__esModule", ({
1571 value: true
1572 }));
1573 exports.getTranslatedPromptHistoryType = exports.TRANSLATED_HISTORY_TYPES_FALLBACK = exports.TRANSLATED_HISTORY_TYPES = exports.HISTORY_TYPES = void 0;
1574 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1575 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1576 var _Object$freeze;
1577 var HISTORY_TYPES = Object.freeze({
1578 ALL: 'all',
1579 TEXT: 'text',
1580 CODE: 'code',
1581 IMAGE: 'images',
1582 BLOCK: 'blocks'
1583 });
1584 exports.HISTORY_TYPES = HISTORY_TYPES;
1585 var TRANSLATED_HISTORY_TYPES_FALLBACK = (0, _i18n.__)('things', 'elementor');
1586 exports.TRANSLATED_HISTORY_TYPES_FALLBACK = TRANSLATED_HISTORY_TYPES_FALLBACK;
1587 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));
1588 exports.TRANSLATED_HISTORY_TYPES = TRANSLATED_HISTORY_TYPES;
1589 var getTranslatedPromptHistoryType = function getTranslatedPromptHistoryType(historyType) {
1590 if (TRANSLATED_HISTORY_TYPES[historyType]) {
1591 return TRANSLATED_HISTORY_TYPES[historyType];
1592 }
1593 return TRANSLATED_HISTORY_TYPES_FALLBACK;
1594 };
1595 exports.getTranslatedPromptHistoryType = getTranslatedPromptHistoryType;
1596
1597 /***/ }),
1598
1599 /***/ "../modules/ai/assets/js/editor/components/prompt-history/index.js":
1600 /*!*************************************************************************!*\
1601 !*** ../modules/ai/assets/js/editor/components/prompt-history/index.js ***!
1602 \*************************************************************************/
1603 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1604
1605 "use strict";
1606
1607
1608 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1609 Object.defineProperty(exports, "__esModule", ({
1610 value: true
1611 }));
1612 exports["default"] = void 0;
1613 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1614 var _historyButton = _interopRequireDefault(__webpack_require__(/*! ./history-button */ "../modules/ai/assets/js/editor/components/prompt-history/history-button.js"));
1615 var _historyModal = _interopRequireDefault(__webpack_require__(/*! ./history-modal */ "../modules/ai/assets/js/editor/components/prompt-history/history-modal.js"));
1616 var _promptHistoryContext = __webpack_require__(/*! ./context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1617 var PROMPT_HISTORY_MODAL_ID = 'prompt-history-modal';
1618 var PromptHistory = function PromptHistory() {
1619 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1620 isOpen = _usePromptHistoryCont.isOpen,
1621 isModalOpen = _usePromptHistoryCont.isModalOpen,
1622 onOpen = _usePromptHistoryCont.onOpen,
1623 onClose = _usePromptHistoryCont.onClose;
1624 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_historyButton.default, {
1625 isActive: isOpen,
1626 onClick: function onClick() {
1627 return isOpen ? onClose() : onOpen();
1628 },
1629 "aria-haspopup": "dialog",
1630 "aria-controls": PROMPT_HISTORY_MODAL_ID
1631 }), isModalOpen && /*#__PURE__*/_react.default.createElement(_historyModal.default, {
1632 id: PROMPT_HISTORY_MODAL_ID
1633 }));
1634 };
1635 var _default = PromptHistory;
1636 exports["default"] = _default;
1637
1638 /***/ }),
1639
1640 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js":
1641 /*!*************************************************************************************!*\
1642 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js ***!
1643 \*************************************************************************************/
1644 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1645
1646 "use strict";
1647
1648
1649 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1650 Object.defineProperty(exports, "__esModule", ({
1651 value: true
1652 }));
1653 exports["default"] = void 0;
1654 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1655 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1656 var _textIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/text-icon */ "../modules/ai/assets/js/editor/icons/text-icon.js"));
1657 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1658 var _codeIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/code-icon */ "../modules/ai/assets/js/editor/icons/code-icon.js"));
1659 var FALLBACK_ICON = /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
1660 "data-testid": "e-ph-fi"
1661 });
1662 var ICONS_BY_ACTIONS = Object.freeze({
1663 'enhance-image-prompt': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1664 'get-text': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1665 'edit-text': /*#__PURE__*/_react.default.createElement(_textIcon.default, null),
1666 'custom-css': /*#__PURE__*/_react.default.createElement(_codeIcon.default, null),
1667 'custom-code': /*#__PURE__*/_react.default.createElement(_codeIcon.default, null)
1668 });
1669 var PromptHistoryActionIcon = function PromptHistoryActionIcon(_ref) {
1670 var action = _ref.action;
1671 if (ICONS_BY_ACTIONS[action]) {
1672 return ICONS_BY_ACTIONS[action];
1673 }
1674 return FALLBACK_ICON;
1675 };
1676 PromptHistoryActionIcon.propTypes = {
1677 action: _propTypes.default.string.isRequired
1678 };
1679 var _default = PromptHistoryActionIcon;
1680 exports["default"] = _default;
1681
1682 /***/ }),
1683
1684 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js":
1685 /*!*****************************************************************************************!*\
1686 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-container.js ***!
1687 \*****************************************************************************************/
1688 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1689
1690 "use strict";
1691
1692
1693 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1694 Object.defineProperty(exports, "__esModule", ({
1695 value: true
1696 }));
1697 exports["default"] = void 0;
1698 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1699 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1700 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1701 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1702 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1703 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1704 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1705 var _promptHistoryContext = __webpack_require__(/*! ../context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
1706 var _excluded = ["children"];
1707 var _templateObject;
1708 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) {
1709 var theme = _ref.theme;
1710 return theme.spacing(2);
1711 }, function (_ref2) {
1712 var theme = _ref2.theme;
1713 return theme.spacing(2);
1714 }, function (_ref3) {
1715 var theme = _ref3.theme;
1716 return theme.palette.background.paper;
1717 }, function (_ref4) {
1718 var theme = _ref4.theme;
1719 return "".concat(theme.shape.borderRadius, "px");
1720 }, function (_ref5) {
1721 var height = _ref5.height;
1722 return "calc( ".concat(height, "px - 32px )");
1723 });
1724 var ModalContainer = function ModalContainer(_ref6) {
1725 var children = _ref6.children,
1726 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
1727 var _usePromptHistoryCont = (0, _promptHistoryContext.usePromptHistoryContext)(),
1728 isOpen = _usePromptHistoryCont.isOpen,
1729 isModalOpen = _usePromptHistoryCont.isModalOpen,
1730 onClose = _usePromptHistoryCont.onClose,
1731 getContainerHeight = _usePromptHistoryCont.getContainerHeight,
1732 getContainer = _usePromptHistoryCont.getContainer;
1733 return /*#__PURE__*/_react.default.createElement(_ui.Modal, (0, _extends2.default)({
1734 container: getContainer(),
1735 open: isModalOpen,
1736 hideBackdrop: true,
1737 onClose: onClose,
1738 sx: {
1739 position: 'absolute'
1740 }
1741 }, props), /*#__PURE__*/_react.default.createElement(_ui.Backdrop, {
1742 open: true,
1743 sx: {
1744 position: 'absolute',
1745 justifyContent: 'flex-end',
1746 alignItems: 'flex-start'
1747 },
1748 "aria-hidden": false
1749 }, /*#__PURE__*/_react.default.createElement(_ui.Slide, {
1750 direction: "left",
1751 in: isOpen,
1752 timeout: 500,
1753 easing: "ease-in-out"
1754 }, /*#__PURE__*/_react.default.createElement(StyledContent, {
1755 "aria-label": (0, _i18n.__)('Prompt history modal', 'elementor'),
1756 height: getContainerHeight()
1757 }, children))));
1758 };
1759 ModalContainer.propTypes = {
1760 isOpen: _propTypes.default.bool.isRequired,
1761 isModalOpen: _propTypes.default.bool.isRequired,
1762 onClose: _propTypes.default.func.isRequired,
1763 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
1764 };
1765 var _default = ModalContainer;
1766 exports["default"] = _default;
1767
1768 /***/ }),
1769
1770 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js":
1771 /*!*************************************************************************************!*\
1772 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-empty.js ***!
1773 \*************************************************************************************/
1774 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1775
1776 "use strict";
1777 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
1778
1779
1780 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1781 Object.defineProperty(exports, "__esModule", ({
1782 value: true
1783 }));
1784 exports["default"] = void 0;
1785 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1786 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1787 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1788 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1789 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
1790 var PromptHistoryEmpty = function PromptHistoryEmpty(_ref) {
1791 var historyType = _ref.historyType;
1792 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1793 justifyContent: "center",
1794 sx: {
1795 height: '100%',
1796 textAlign: 'center'
1797 },
1798 "data-testid": "e-ph-empty"
1799 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1800 variant: "h6"
1801 }, (0, _i18n.__)('Prepare to be amazed', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1802 variant: "body1"
1803 }, sprintf(
1804 // Translators: %s: History type.
1805 (0, _i18n.__)('This is where you\'ll find all the %s you\'ve generated using Elementor AI.', 'elementor'), (0, _historyTypes.getTranslatedPromptHistoryType)(historyType))));
1806 };
1807 PromptHistoryEmpty.propTypes = {
1808 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired
1809 };
1810 var _default = PromptHistoryEmpty;
1811 exports["default"] = _default;
1812
1813 /***/ }),
1814
1815 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js":
1816 /*!**************************************************************************************!*\
1817 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-header.js ***!
1818 \**************************************************************************************/
1819 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1820
1821 "use strict";
1822
1823
1824 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1825 Object.defineProperty(exports, "__esModule", ({
1826 value: true
1827 }));
1828 exports["default"] = void 0;
1829 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1830 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1831 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1832 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1833 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
1834 var StyledContent = (0, _ui.styled)(_ui.Box)(function (_ref) {
1835 var theme = _ref.theme;
1836 return {
1837 marginTop: 0,
1838 padding: theme.spacing(1.5),
1839 borderBottom: "1px solid ".concat(theme.palette.action.focus),
1840 display: 'flex',
1841 alignItems: 'center',
1842 justifyContent: 'space-between'
1843 };
1844 });
1845 var PromptHistoryModalHeader = function PromptHistoryModalHeader(_ref2) {
1846 var onClose = _ref2.onClose;
1847 return /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1848 fontWeight: "bolder",
1849 variant: "h6",
1850 sx: {
1851 userSelect: 'none'
1852 }
1853 }, (0, _i18n.__)('History', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
1854 size: "small",
1855 "aria-label": (0, _i18n.__)('Hide prompt history', 'elementor'),
1856 onClick: onClose
1857 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, {
1858 fontSize: "small"
1859 })));
1860 };
1861 PromptHistoryModalHeader.propTypes = {
1862 onClose: _propTypes.default.func.isRequired
1863 };
1864 var _default = PromptHistoryModalHeader;
1865 exports["default"] = _default;
1866
1867 /***/ }),
1868
1869 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js":
1870 /*!**************************************************************************************************!*\
1871 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js ***!
1872 \**************************************************************************************************/
1873 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1874
1875 "use strict";
1876
1877
1878 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1879 Object.defineProperty(exports, "__esModule", ({
1880 value: true
1881 }));
1882 exports["default"] = void 0;
1883 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1884 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1885 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1886 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1887 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1888 var _tooltip = _interopRequireDefault(__webpack_require__(/*! ../../tooltip */ "../modules/ai/assets/js/editor/components/tooltip.js"));
1889 var _excluded = ["tooltipTitle"];
1890 var ActionButton = function ActionButton(_ref) {
1891 var tooltipTitle = _ref.tooltipTitle,
1892 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1893 return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
1894 title: tooltipTitle,
1895 placement: "top"
1896 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
1897 type: "button",
1898 size: "small",
1899 disableRipple: true,
1900 disableFocusRipple: true,
1901 disableTouchRipple: true
1902 }, props)));
1903 };
1904 ActionButton.propTypes = {
1905 tooltipTitle: _propTypes.default.string.isRequired
1906 };
1907 var _default = ActionButton;
1908 exports["default"] = _default;
1909
1910 /***/ }),
1911
1912 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js":
1913 /*!******************************************************************************************************!*\
1914 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js ***!
1915 \******************************************************************************************************/
1916 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1917
1918 "use strict";
1919
1920
1921 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1922 Object.defineProperty(exports, "__esModule", ({
1923 value: true
1924 }));
1925 exports["default"] = void 0;
1926 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1927 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1928 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1929 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1930 var _templateObject, _templateObject2;
1931 var StyledDateSubtitle = (0, _ui.styled)(_ui.Typography)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n"])), function (_ref) {
1932 var theme = _ref.theme;
1933 return theme.palette.secondary.light;
1934 });
1935 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) {
1936 var theme = _ref2.theme;
1937 return theme.spacing(0.5);
1938 });
1939 var PromptHistoryItemSecondaryContent = function PromptHistoryItemSecondaryContent(_ref3) {
1940 var date = _ref3.date,
1941 thumbnails = _ref3.thumbnails;
1942 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1943 direction: "column",
1944 width: "90%"
1945 }, /*#__PURE__*/_react.default.createElement(StyledDateSubtitle, {
1946 variant: "caption"
1947 }, date), (thumbnails === null || thumbnails === void 0 ? void 0 : thumbnails.length) > 0 && /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1948 flexDirection: "row",
1949 mt: 1
1950 }, thumbnails.map(
1951 /**
1952 * @param {Object} thumb
1953 * @return {React.ReactNode}
1954 */
1955 function (thumb) {
1956 return /*#__PURE__*/_react.default.createElement(StyledImage, {
1957 key: "thumbnail-".concat(thumb.seed),
1958 alt: "",
1959 src: thumb.image_url
1960 });
1961 })));
1962 };
1963 PromptHistoryItemSecondaryContent.propTypes = {
1964 date: _propTypes.default.string.isRequired,
1965 thumbnails: _propTypes.default.array
1966 };
1967 var _default = PromptHistoryItemSecondaryContent;
1968 exports["default"] = _default;
1969
1970 /***/ }),
1971
1972 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js":
1973 /*!******************************************************************************************!*\
1974 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js ***!
1975 \******************************************************************************************/
1976 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1977
1978 "use strict";
1979
1980
1981 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1982 Object.defineProperty(exports, "__esModule", ({
1983 value: true
1984 }));
1985 exports["default"] = void 0;
1986 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1987 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
1988 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1989 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1990 var _tooltip = _interopRequireDefault(__webpack_require__(/*! ../../tooltip */ "../modules/ai/assets/js/editor/components/tooltip.js"));
1991 var _templateObject;
1992 var StyledTitle = (0, _ui.styled)(_ui.Typography)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", ";\n"])), function (_ref) {
1993 var theme = _ref.theme;
1994 return theme.spacing(0.5);
1995 });
1996 var PromptHistoryItemTitle = function PromptHistoryItemTitle(_ref2) {
1997 var prompt = _ref2.prompt;
1998 return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
1999 title: prompt,
2000 arrow: false,
2001 placement: "bottom-start"
2002 }, /*#__PURE__*/_react.default.createElement(StyledTitle, {
2003 variant: "body2",
2004 noWrap: true,
2005 paragraph: true
2006 }, prompt));
2007 };
2008 PromptHistoryItemTitle.propTypes = {
2009 prompt: _propTypes.default.string.isRequired
2010 };
2011 var _default = PromptHistoryItemTitle;
2012 exports["default"] = _default;
2013
2014 /***/ }),
2015
2016 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js":
2017 /*!************************************************************************************!*\
2018 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js ***!
2019 \************************************************************************************/
2020 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2021
2022 "use strict";
2023
2024
2025 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2026 Object.defineProperty(exports, "__esModule", ({
2027 value: true
2028 }));
2029 exports["default"] = void 0;
2030 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2031 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2032 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
2033 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2034 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2035 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2036 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
2037 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2038 var _restoreIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/restore-icon */ "../modules/ai/assets/js/editor/icons/restore-icon.js"));
2039 var _modalItemActionButton = _interopRequireDefault(__webpack_require__(/*! ./modal-item-action-button */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-action-button.js"));
2040 var _promptHistoryActionContext = __webpack_require__(/*! ../context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js");
2041 var _actionIcon = _interopRequireDefault(__webpack_require__(/*! ./action-icon */ "../modules/ai/assets/js/editor/components/prompt-history/parts/action-icon.js"));
2042 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
2043 var _modalItemTitle = _interopRequireDefault(__webpack_require__(/*! ./modal-item-title */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-title.js"));
2044 var _modalItemSecondaryContent = _interopRequireDefault(__webpack_require__(/*! ./modal-item-secondary-content */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item-secondary-content.js"));
2045 var _excluded = ["id", "date", "onHistoryItemDelete"];
2046 var _templateObject, _templateObject2, _templateObject3, _templateObject4;
2047 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) {
2048 var actionsCount = _ref.actionsCount;
2049 return "calc(100% - ".concat(actionsCount, " * 26px)");
2050 });
2051 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) {
2052 var theme = _ref2.theme;
2053 return theme.spacing(0.5, 2);
2054 });
2055 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) {
2056 var theme = _ref3.theme;
2057 return theme.spacing(1.5);
2058 }, function (_ref4) {
2059 var theme = _ref4.theme;
2060 return theme.spacing(0.5);
2061 });
2062 var StyledButtonsWrapper = (0, _ui.styled)(_ui.Box)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n & .MuiSvgIcon-root {\n font-size: 1rem;\n }\n"])));
2063 var PromptHistoryItem = function PromptHistoryItem(_ref5) {
2064 var id = _ref5.id,
2065 date = _ref5.date,
2066 onHistoryItemDelete = _ref5.onHistoryItemDelete,
2067 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded);
2068 var _usePromptHistoryActi = (0, _promptHistoryActionContext.usePromptHistoryAction)(),
2069 getAllowedActions = _usePromptHistoryActi.getAllowedActions,
2070 onPromptReuse = _usePromptHistoryActi.onPromptReuse,
2071 onResultEdit = _usePromptHistoryActi.onResultEdit,
2072 onImagesRestore = _usePromptHistoryActi.onImagesRestore;
2073 var action = props.action,
2074 prompt = props.prompt,
2075 text = props.text,
2076 images = props.images,
2077 thumbnails = props.thumbnails,
2078 imageType = props.imageType,
2079 ratio = props.ratio;
2080 var allowedActions = getAllowedActions();
2081 return /*#__PURE__*/_react.default.createElement(StyledListItem, {
2082 tabIndex: "0",
2083 "data-testid": "e-ph-i",
2084 disableGutters: true,
2085 disablePadding: true,
2086 actionsCount: Object.keys(allowedActions).length
2087 }, /*#__PURE__*/_react.default.createElement(StyledListItemButton, {
2088 component: "div",
2089 role: undefined
2090 }, /*#__PURE__*/_react.default.createElement(StyledListItemIcon, null, /*#__PURE__*/_react.default.createElement(_actionIcon.default, {
2091 action: action
2092 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
2093 disableTypography: true,
2094 primary: /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2095 direction: "row",
2096 justifyContent: "space-between",
2097 alignItems: "center",
2098 height: "16px"
2099 }, /*#__PURE__*/_react.default.createElement(_modalItemTitle.default, {
2100 prompt: prompt
2101 }), /*#__PURE__*/_react.default.createElement(StyledButtonsWrapper, {
2102 className: "e-prompt-history-item-actions"
2103 }, allowedActions[_promptHistoryActionContext.ACTION_TYPES.REMOVE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2104 onClick: function onClick() {
2105 return onHistoryItemDelete(id);
2106 },
2107 "aria-label": (0, _i18n.__)('Remove item', 'elementor'),
2108 tooltipTitle: (0, _i18n.__)('Remove', 'elementor')
2109 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.REUSE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2110 onClick: function onClick() {
2111 return onPromptReuse(id, prompt);
2112 },
2113 "aria-label": (0, _i18n.__)('Reuse prompt', 'elementor'),
2114 tooltipTitle: (0, _i18n.__)('Reuse prompt', 'elementor')
2115 }, /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.RESTORE] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2116 onClick: function onClick() {
2117 return onImagesRestore(id, {
2118 prompt: prompt,
2119 images: images,
2120 imageType: imageType,
2121 ratio: ratio
2122 });
2123 },
2124 "aria-label": (0, _i18n.__)('Restore', 'elementor'),
2125 tooltipTitle: (0, _i18n.__)('Restore', 'elementor')
2126 }, /*#__PURE__*/_react.default.createElement(_restoreIcon.default, null)), allowedActions[_promptHistoryActionContext.ACTION_TYPES.EDIT] && /*#__PURE__*/_react.default.createElement(_modalItemActionButton.default, {
2127 onClick: function onClick() {
2128 return onResultEdit(id, text);
2129 },
2130 "aria-label": (0, _i18n.__)('Edit result', 'elementor'),
2131 tooltipTitle: (0, _i18n.__)('Edit', 'elementor')
2132 }, /*#__PURE__*/_react.default.createElement(_editIcon.default, null)))),
2133 secondary: /*#__PURE__*/_react.default.createElement(_modalItemSecondaryContent.default, {
2134 date: date,
2135 thumbnails: thumbnails
2136 })
2137 })));
2138 };
2139 PromptHistoryItem.propTypes = {
2140 id: _propTypes.default.string.isRequired,
2141 action: _propTypes.default.string.isRequired,
2142 prompt: _propTypes.default.string.isRequired,
2143 date: _propTypes.default.string.isRequired,
2144 onHistoryItemDelete: _propTypes.default.func.isRequired,
2145 text: _propTypes.default.string,
2146 images: _propTypes.default.array,
2147 thumbnails: _propTypes.default.array,
2148 imageType: _propTypes.default.string,
2149 ratio: _propTypes.default.string
2150 };
2151 var _default = PromptHistoryItem;
2152 exports["default"] = _default;
2153
2154 /***/ }),
2155
2156 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js":
2157 /*!**************************************************************************************!*\
2158 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-period.js ***!
2159 \**************************************************************************************/
2160 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2161
2162 "use strict";
2163
2164
2165 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2166 Object.defineProperty(exports, "__esModule", ({
2167 value: true
2168 }));
2169 exports["default"] = void 0;
2170 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2171 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2172 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2173 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2174 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2175 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2176 var _modalItem = _interopRequireDefault(__webpack_require__(/*! ./modal-item */ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-item.js"));
2177 var _dateHelpers = __webpack_require__(/*! ../../../helpers/date-helpers */ "../modules/ai/assets/js/editor/helpers/date-helpers.js");
2178 var _excluded = ["id", "date"];
2179 var StyledPeriodList = (0, _ui.styled)(_ui.List)(function (_ref) {
2180 var theme = _ref.theme;
2181 return {
2182 borderBottom: "1px solid ".concat(theme.palette.action.focus)
2183 };
2184 });
2185 var StyledPeriodTitle = (0, _ui.styled)(_ui.Typography)(function (_ref2) {
2186 var theme = _ref2.theme;
2187 return {
2188 padding: theme.spacing(1.5, 2),
2189 color: theme.palette.secondary.light
2190 };
2191 });
2192 var DATE_FORMAT = (0, _i18n.__)('F j, g:i A', 'elementor');
2193 var PromptHistoryPeriod = function PromptHistoryPeriod(_ref3) {
2194 var periodTitle = _ref3.periodTitle,
2195 historyItems = _ref3.historyItems,
2196 _onHistoryItemDelete = _ref3.onHistoryItemDelete;
2197 return /*#__PURE__*/_react.default.createElement(StyledPeriodList, {
2198 "data-testid": "e-ph-p",
2199 subheader: /*#__PURE__*/_react.default.createElement(_ui.ListSubheader, {
2200 disableSticky: true,
2201 disableGutters: true
2202 }, /*#__PURE__*/_react.default.createElement(StyledPeriodTitle, {
2203 variant: "body2",
2204 role: "heading",
2205 "aria-level": "6"
2206 }, periodTitle))
2207 }, historyItems.map(function (_ref4) {
2208 var id = _ref4.id,
2209 date = _ref4.date,
2210 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
2211 return /*#__PURE__*/_react.default.createElement(_modalItem.default, (0, _extends2.default)({
2212 key: id,
2213 date: (0, _dateHelpers.translateDate)(DATE_FORMAT, date),
2214 onHistoryItemDelete: function onHistoryItemDelete() {
2215 return _onHistoryItemDelete(id);
2216 },
2217 id: id
2218 }, props));
2219 }));
2220 };
2221 PromptHistoryPeriod.propTypes = {
2222 periodTitle: _propTypes.default.string.isRequired,
2223 historyItems: _propTypes.default.array.isRequired,
2224 onHistoryItemDelete: _propTypes.default.func.isRequired
2225 };
2226 var _default = PromptHistoryPeriod;
2227 exports["default"] = _default;
2228
2229 /***/ }),
2230
2231 /***/ "../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js":
2232 /*!***************************************************************************************!*\
2233 !*** ../modules/ai/assets/js/editor/components/prompt-history/parts/modal-upgrade.js ***!
2234 \***************************************************************************************/
2235 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2236
2237 "use strict";
2238 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
2239
2240
2241 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2242 Object.defineProperty(exports, "__esModule", ({
2243 value: true
2244 }));
2245 exports["default"] = void 0;
2246 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2247 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2248 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2249 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2250 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2251 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2252 var _historyTypes = __webpack_require__(/*! ../history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
2253 var _messages;
2254 var VARIANT_FULL = 'full';
2255 var VARIANT_SMALL = 'small';
2256 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);
2257 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
2258 var getMessage = function getMessage(variant, historyType) {
2259 var placeholder = messages[variant] || messages[VARIANT_FULL];
2260 var translatedHistoryType = (0, _historyTypes.getTranslatedPromptHistoryType)(historyType);
2261 return sprintf(placeholder, translatedHistoryType);
2262 };
2263 var PromptHistoryUpgrade = function PromptHistoryUpgrade(_ref) {
2264 var variant = _ref.variant,
2265 historyType = _ref.historyType;
2266 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2267 justifyContent: "center",
2268 sx: {
2269 height: VARIANT_SMALL === variant ? 'auto' : '100%',
2270 textAlign: 'center',
2271 p: 2
2272 },
2273 "data-testid": "e-ph-upgrade-".concat(variant)
2274 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2275 variant: "body1",
2276 sx: {
2277 marginBottom: 2
2278 }
2279 }, getMessage(variant, historyType)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2280 variant: "contained",
2281 color: "promotion",
2282 size: "small",
2283 href: actionUrl,
2284 target: "_blank",
2285 rel: "noopener noreferrer",
2286 startIcon: /*#__PURE__*/_react.default.createElement(_icons.UpgradeIcon, null),
2287 sx: {
2288 width: '50%',
2289 alignSelf: 'center',
2290 '&:hover': {
2291 color: 'promotion.contrastText'
2292 }
2293 }
2294 }, (0, _i18n.__)('Upgrade now', 'elementor')));
2295 };
2296 PromptHistoryUpgrade.propTypes = {
2297 variant: _propTypes.default.oneOf([VARIANT_FULL, VARIANT_SMALL]).isRequired,
2298 historyType: _propTypes.default.oneOf(Object.values(_historyTypes.HISTORY_TYPES)).isRequired
2299 };
2300 var _default = PromptHistoryUpgrade;
2301 exports["default"] = _default;
2302
2303 /***/ }),
2304
2305 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
2306 /*!************************************************************************!*\
2307 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
2308 \************************************************************************/
2309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2310
2311 "use strict";
2312
2313
2314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2315 Object.defineProperty(exports, "__esModule", ({
2316 value: true
2317 }));
2318 exports["default"] = void 0;
2319 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2320 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2321 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2322 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2323 var PromptLibraryLink = function PromptLibraryLink(props) {
2324 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2325 variant: "body2",
2326 color: "text.secondary"
2327 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2328 href: props.libraryLink,
2329 className: "elementor-clickable",
2330 target: "_blank"
2331 }, (0, _i18n.__)('prompt library')));
2332 };
2333 PromptLibraryLink.propTypes = {
2334 libraryLink: _propTypes.default.string
2335 };
2336 var _default = PromptLibraryLink;
2337 exports["default"] = _default;
2338
2339 /***/ }),
2340
2341 /***/ "../modules/ai/assets/js/editor/components/prompt-search.js":
2342 /*!******************************************************************!*\
2343 !*** ../modules/ai/assets/js/editor/components/prompt-search.js ***!
2344 \******************************************************************/
2345 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2346
2347 "use strict";
2348
2349
2350 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2351 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2352 Object.defineProperty(exports, "__esModule", ({
2353 value: true
2354 }));
2355 exports["default"] = void 0;
2356 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2357 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2358 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2359 var _searchField = _interopRequireDefault(__webpack_require__(/*! ./ui/search-field */ "../modules/ai/assets/js/editor/components/ui/search-field.js"));
2360 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); }
2361 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; }
2362 var PromptSearch = (0, _react.forwardRef)(function (props, ref) {
2363 return /*#__PURE__*/_react.default.createElement(_searchField.default, (0, _extends2.default)({
2364 name: "prompt",
2365 placeholder: (0, _i18n.__)('Describe the text and tone you want to use', 'elementor') + '...'
2366 }, props, {
2367 ref: ref
2368 }));
2369 });
2370 var _default = PromptSearch;
2371 exports["default"] = _default;
2372
2373 /***/ }),
2374
2375 /***/ "../modules/ai/assets/js/editor/components/prompt-suggestions.js":
2376 /*!***********************************************************************!*\
2377 !*** ../modules/ai/assets/js/editor/components/prompt-suggestions.js ***!
2378 \***********************************************************************/
2379 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2380
2381 "use strict";
2382
2383
2384 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2385 Object.defineProperty(exports, "__esModule", ({
2386 value: true
2387 }));
2388 exports["default"] = void 0;
2389 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2390 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2391 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2392 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2393 var PromptSuggestions = function PromptSuggestions(props) {
2394 var _props$suggestions;
2395 return /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2396 variant: "subtitle1",
2397 color: "text.secondary"
2398 }, (0, _i18n.__)('Suggested prompts', 'elementor') + ':'), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2399 direction: "column",
2400 alignItems: "flex-start",
2401 gap: 1,
2402 sx: {
2403 my: 1
2404 }
2405 }, (_props$suggestions = props.suggestions) === null || _props$suggestions === void 0 ? void 0 : _props$suggestions.map(function (option, index) {
2406 var _props$suggestionFilt;
2407 return /*#__PURE__*/_react.default.createElement(_ui.Chip, {
2408 key: index,
2409 variant: "outlined",
2410 size: "large",
2411 color: "secondary",
2412 label: ((_props$suggestionFilt = props.suggestionFilter) === null || _props$suggestionFilt === void 0 ? void 0 : _props$suggestionFilt.call(props, option)) || option,
2413 onClick: function onClick() {
2414 return props.onSelect(option);
2415 }
2416 });
2417 })), props.children);
2418 };
2419 PromptSuggestions.propTypes = {
2420 suggestions: _propTypes.default.arrayOf(_propTypes.default.string),
2421 onSelect: _propTypes.default.func.isRequired,
2422 suggestionFilter: _propTypes.default.func,
2423 children: _propTypes.default.node
2424 };
2425 var _default = PromptSuggestions;
2426 exports["default"] = _default;
2427
2428 /***/ }),
2429
2430 /***/ "../modules/ai/assets/js/editor/components/textarea.js":
2431 /*!*************************************************************!*\
2432 !*** ../modules/ai/assets/js/editor/components/textarea.js ***!
2433 \*************************************************************/
2434 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2435
2436 "use strict";
2437
2438
2439 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2440 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2441 Object.defineProperty(exports, "__esModule", ({
2442 value: true
2443 }));
2444 exports["default"] = void 0;
2445 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2446 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2447 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2448 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2449 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); }
2450 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; }
2451 var Textarea = (0, _react.forwardRef)(function (props, ref) {
2452 return /*#__PURE__*/_react.default.createElement(_ui.TextField, (0, _extends2.default)({
2453 inputRef: ref,
2454 multiline: true,
2455 minRows: 4,
2456 maxRows: 20,
2457 color: "secondary"
2458 }, props));
2459 });
2460 Textarea.propTypes = {
2461 value: _propTypes.default.string,
2462 onChange: _propTypes.default.func,
2463 helperText: _propTypes.default.string
2464 };
2465 var _default = Textarea;
2466 exports["default"] = _default;
2467
2468 /***/ }),
2469
2470 /***/ "../modules/ai/assets/js/editor/components/tooltip.js":
2471 /*!************************************************************!*\
2472 !*** ../modules/ai/assets/js/editor/components/tooltip.js ***!
2473 \************************************************************/
2474 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2475
2476 "use strict";
2477
2478
2479 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2480 Object.defineProperty(exports, "__esModule", ({
2481 value: true
2482 }));
2483 exports["default"] = void 0;
2484 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2485 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2486 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2487 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2488 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2489 var _excluded = ["children"];
2490 var Tooltip = function Tooltip(_ref) {
2491 var children = _ref.children,
2492 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2493 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
2494 componentsProps: {
2495 tooltip: {
2496 sx: {
2497 '&.MuiTooltip-tooltip[class*="MuiTooltip-tooltipPlacement"]': {
2498 m: 0,
2499 fontSize: '10px',
2500 fontWeight: 500,
2501 lineHeight: '1.4em'
2502 },
2503 py: 0.5,
2504 px: 1
2505 }
2506 }
2507 }
2508 }, props), children);
2509 };
2510 Tooltip.propTypes = {
2511 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
2512 };
2513 var _default = Tooltip;
2514 exports["default"] = _default;
2515
2516 /***/ }),
2517
2518 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js":
2519 /*!************************************************************************!*\
2520 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js ***!
2521 \************************************************************************/
2522 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2523
2524 "use strict";
2525
2526
2527 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2528 Object.defineProperty(exports, "__esModule", ({
2529 value: true
2530 }));
2531 exports["default"] = void 0;
2532 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2533 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2534 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2535 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2536 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2537 var _excluded = ["children"];
2538 var OverlayBarText = function OverlayBarText(_ref) {
2539 var children = _ref.children,
2540 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2541 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({
2542 variant: "caption",
2543 color: "common.white"
2544 }, props), children);
2545 };
2546 OverlayBarText.propTypes = {
2547 children: _propTypes.default.node
2548 };
2549 var _default = OverlayBarText;
2550 exports["default"] = _default;
2551
2552 /***/ }),
2553
2554 /***/ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js":
2555 /*!*******************************************************************!*\
2556 !*** ../modules/ai/assets/js/editor/components/ui/overlay-bar.js ***!
2557 \*******************************************************************/
2558 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2559
2560 "use strict";
2561
2562
2563 Object.defineProperty(exports, "__esModule", ({
2564 value: true
2565 }));
2566 exports["default"] = void 0;
2567 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2568 var OverlayBar = (0, _ui.styled)(_ui.Stack)(function (_ref) {
2569 var theme = _ref.theme,
2570 position = _ref.position;
2571 var style = {
2572 width: '100%',
2573 position: 'absolute',
2574 left: 0,
2575 padding: theme.spacing(2.5)
2576 };
2577 if ('top' === position) {
2578 style.top = 0;
2579 } else if ('bottom' === position) {
2580 style.bottom = 0;
2581 }
2582 return style;
2583 });
2584 var _default = OverlayBar;
2585 exports["default"] = _default;
2586
2587 /***/ }),
2588
2589 /***/ "../modules/ai/assets/js/editor/components/ui/overlay.js":
2590 /*!***************************************************************!*\
2591 !*** ../modules/ai/assets/js/editor/components/ui/overlay.js ***!
2592 \***************************************************************/
2593 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2594
2595 "use strict";
2596
2597
2598 Object.defineProperty(exports, "__esModule", ({
2599 value: true
2600 }));
2601 exports["default"] = void 0;
2602 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2603 var Overlay = (0, _ui.styled)(_ui.Box)(function (_ref) {
2604 var theme = _ref.theme;
2605 return {
2606 width: '100%',
2607 height: '100%',
2608 position: 'absolute',
2609 backgroundColor: 'rgba(0,0,0,0.5)',
2610 transition: "opacity ".concat(theme.transitions.duration.short, "ms ").concat(theme.transitions.easing.easeInOut),
2611 opacity: 0,
2612 '&:hover': {
2613 opacity: 1
2614 }
2615 };
2616 });
2617 var _default = Overlay;
2618 exports["default"] = _default;
2619
2620 /***/ }),
2621
2622 /***/ "../modules/ai/assets/js/editor/components/ui/panel.js":
2623 /*!*************************************************************!*\
2624 !*** ../modules/ai/assets/js/editor/components/ui/panel.js ***!
2625 \*************************************************************/
2626 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2627
2628 "use strict";
2629
2630
2631 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2632 Object.defineProperty(exports, "__esModule", ({
2633 value: true
2634 }));
2635 exports["default"] = void 0;
2636 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2637 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2638 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2639 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2640 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2641 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2642 var _excluded = ["sx"];
2643 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; }
2644 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; }
2645 var Panel = function Panel(_ref) {
2646 var _ref$sx = _ref.sx,
2647 sx = _ref$sx === void 0 ? {} : _ref$sx,
2648 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2649 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
2650 sx: _objectSpread({
2651 p: 4,
2652 width: 360,
2653 flexShrink: 0,
2654 height: '100%',
2655 overflowY: 'auto'
2656 }, sx)
2657 }, props), props.children), /*#__PURE__*/_react.default.createElement(_ui.Divider, {
2658 orientation: "vertical"
2659 }));
2660 };
2661 Panel.propTypes = {
2662 children: _propTypes.default.node,
2663 sx: _propTypes.default.object
2664 };
2665 var _default = Panel;
2666 exports["default"] = _default;
2667
2668 /***/ }),
2669
2670 /***/ "../modules/ai/assets/js/editor/components/ui/search-field.js":
2671 /*!********************************************************************!*\
2672 !*** ../modules/ai/assets/js/editor/components/ui/search-field.js ***!
2673 \********************************************************************/
2674 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2675
2676 "use strict";
2677
2678
2679 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2680 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2681 Object.defineProperty(exports, "__esModule", ({
2682 value: true
2683 }));
2684 exports["default"] = void 0;
2685 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2686 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2687 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2688 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2689 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2690 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); }
2691 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; }
2692 // Customization for the WP admin global CSS.
2693 var StyledTextField = (0, _ui.styled)(_ui.TextField)(function () {
2694 return {
2695 '.wp-admin & .MuiInputBase-input, & .MuiInputBase-input:focus': {
2696 backgroundColor: 'initial',
2697 boxShadow: 'none',
2698 border: 0,
2699 color: 'inherit',
2700 outline: 0,
2701 /**
2702 * TODO:
2703 * Find a better solution to get the component padding value dynamically or fix the global CSS override.
2704 * These values are taken from Material UI's source code (the left padding reset was added to match the component style).
2705 */
2706 padding: '16.5px 14px 16.5px 0',
2707 '&.MuiInputBase-inputSizeSmall': {
2708 padding: '8.5px 14px 8.5px 0'
2709 }
2710 }
2711 };
2712 });
2713 var SearchField = (0, _react.forwardRef)(function (props, ref) {
2714 return /*#__PURE__*/_react.default.createElement(StyledTextField
2715 // eslint-disable-next-line jsx-a11y/no-autofocus
2716 , (0, _extends2.default)({
2717 autoFocus: true,
2718 fullWidth: true,
2719 required: true,
2720 size: "small",
2721 color: "secondary",
2722 InputProps: {
2723 autoComplete: 'off',
2724 startAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
2725 position: "start"
2726 }, /*#__PURE__*/_react.default.createElement(_icons.SearchIcon, null))
2727 },
2728 placeholder: props.placeholder,
2729 name: props.name,
2730 value: props.value,
2731 onChange: props.onChange
2732 }, props, {
2733 inputRef: ref
2734 }));
2735 });
2736 SearchField.propTypes = {
2737 placeholder: _propTypes.default.string,
2738 name: _propTypes.default.string,
2739 value: _propTypes.default.string,
2740 onChange: _propTypes.default.func
2741 };
2742 var _default = SearchField;
2743 exports["default"] = _default;
2744
2745 /***/ }),
2746
2747 /***/ "../modules/ai/assets/js/editor/components/upgrade-banner.js":
2748 /*!*******************************************************************!*\
2749 !*** ../modules/ai/assets/js/editor/components/upgrade-banner.js ***!
2750 \*******************************************************************/
2751 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2752
2753 "use strict";
2754 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2755 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2756
2757
2758 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2759 Object.defineProperty(exports, "__esModule", ({
2760 value: true
2761 }));
2762 exports["default"] = void 0;
2763 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2764 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2765 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2766 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2767 var _excluded = ["onClose"];
2768 var UpgradeBanner = function UpgradeBanner(_ref) {
2769 var onClose = _ref.onClose,
2770 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
2771 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
2772 icon: false,
2773 action: /*#__PURE__*/_react.default.createElement(_ui.AlertAction, {
2774 onClick: function onClick() {
2775 return window.open('https://go.elementor.com/ai-banner-free-upgrade/', '_blank');
2776 }
2777 }, __('Upgrade', 'elementor')),
2778 variant: "filled",
2779 color: "promotion",
2780 onClose: onClose
2781 }, props), __('You’re using a limited license. Get maximum access to Elementor AI.', 'elementor'));
2782 };
2783 UpgradeBanner.propTypes = {
2784 onClose: PropTypes.func,
2785 sx: PropTypes.object
2786 };
2787 var _default = UpgradeBanner;
2788 exports["default"] = _default;
2789
2790 /***/ }),
2791
2792 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
2793 /*!*****************************************************************!*\
2794 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
2795 \*****************************************************************/
2796 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2797
2798 "use strict";
2799
2800
2801 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2802 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2803 Object.defineProperty(exports, "__esModule", ({
2804 value: true
2805 }));
2806 exports["default"] = void 0;
2807 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2808 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2809 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2810 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2811 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2812 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2813 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); }
2814 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; }
2815 var popoverId = 'e-ai-upgrade-popover';
2816 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
2817 var theme = _ref.theme;
2818 return {
2819 position: 'relative',
2820 '[data-popper-placement="top"] &': {
2821 marginBottom: theme.spacing(2.5)
2822 },
2823 '[data-popper-placement="bottom"] &': {
2824 marginTop: theme.spacing(2.5)
2825 },
2826 padding: theme.spacing(3),
2827 boxShadow: theme.shadows[4],
2828 zIndex: '9999'
2829 };
2830 });
2831 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
2832 var theme = _ref2.theme;
2833 return {
2834 width: theme.spacing(5),
2835 height: theme.spacing(2.5),
2836 position: 'absolute',
2837 overflow: 'hidden',
2838 // Override Popper inline styles.
2839 left: '50% !important',
2840 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
2841 '[data-popper-placement="top"] &': {
2842 top: '100%'
2843 },
2844 '[data-popper-placement="bottom"] &': {
2845 '--rotate': '180deg',
2846 top: "calc(".concat(theme.spacing(2.5), " * -1)")
2847 },
2848 '&::after': {
2849 backgroundColor: theme.palette.background.paper,
2850 content: '""',
2851 display: 'block',
2852 position: 'absolute',
2853 width: theme.spacing(2.5),
2854 height: theme.spacing(2.5),
2855 top: 0,
2856 left: '50%',
2857 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
2858 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
2859 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
2860 }
2861 };
2862 });
2863 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')];
2864 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
2865 return {
2866 '& .MuiChip-label': {
2867 lineHeight: 1.5
2868 },
2869 '& .MuiSvgIcon-root.MuiChip-icon': {
2870 fontSize: '1.25rem'
2871 }
2872 };
2873 });
2874 var UpgradeChip = function UpgradeChip(_ref3) {
2875 var _ref3$hasSubscription = _ref3.hasSubscription,
2876 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
2877 _ref3$usagePercentage = _ref3.usagePercentage,
2878 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
2879 var _useState = (0, _react.useState)(false),
2880 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2881 isPopoverOpen = _useState2[0],
2882 setIsPopoverOpen = _useState2[1];
2883 var anchorEl = (0, _react.useRef)(null);
2884 var arrowEl = (0, _react.useRef)(null);
2885 var showPopover = function showPopover() {
2886 return setIsPopoverOpen(true);
2887 };
2888 var hidePopover = function hidePopover() {
2889 return setIsPopoverOpen(false);
2890 };
2891 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
2892 if (hasSubscription) {
2893 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
2894 }
2895 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
2896 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2897 component: "span",
2898 "aria-owns": isPopoverOpen ? popoverId : undefined,
2899 "aria-haspopup": "true",
2900 onMouseEnter: showPopover,
2901 onMouseLeave: hidePopover,
2902 ref: anchorEl,
2903 display: "flex",
2904 alignItems: "center"
2905 }, /*#__PURE__*/_react.default.createElement(Chip, {
2906 color: "promotion",
2907 label: (0, _i18n.__)('Upgrade', 'elementor'),
2908 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2909 size: "small"
2910 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
2911 open: isPopoverOpen,
2912 anchorEl: anchorEl.current,
2913 sx: {
2914 zIndex: '9999',
2915 maxWidth: 300
2916 },
2917 modifiers: [{
2918 name: 'arrow',
2919 enabled: true,
2920 options: {
2921 element: arrowEl.current
2922 }
2923 }]
2924 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
2925 ref: arrowEl
2926 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2927 variant: "h5",
2928 color: "text.primary"
2929 }, (0, _i18n.__)('Maximize Your Access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
2930 sx: {
2931 mb: 1
2932 }
2933 }, upgradeBullets.map(function (bullet, index) {
2934 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
2935 key: index,
2936 disableGutters: true,
2937 sx: {
2938 alignItems: 'flex-start'
2939 }
2940 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
2941 sx: {
2942 m: 0
2943 }
2944 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2945 variant: "body2"
2946 }, bullet)));
2947 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2948 variant: "contained",
2949 color: "promotion",
2950 size: "small",
2951 href: actionUrl,
2952 target: "_blank",
2953 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
2954 sx: {
2955 '&:hover': {
2956 color: 'promotion.contrastText'
2957 }
2958 }
2959 }, actionLabel))));
2960 };
2961 var _default = UpgradeChip;
2962 exports["default"] = _default;
2963 UpgradeChip.propTypes = {
2964 hasSubscription: _propTypes.default.bool,
2965 usagePercentage: _propTypes.default.number
2966 };
2967
2968 /***/ }),
2969
2970 /***/ "../modules/ai/assets/js/editor/components/usage-limit-alert.js":
2971 /*!**********************************************************************!*\
2972 !*** ../modules/ai/assets/js/editor/components/usage-limit-alert.js ***!
2973 \**********************************************************************/
2974 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2975
2976 "use strict";
2977 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
2978 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2979 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2980
2981
2982 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2983 Object.defineProperty(exports, "__esModule", ({
2984 value: true
2985 }));
2986 exports["default"] = void 0;
2987 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2988 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
2989 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2990 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2991 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2992 var _excluded = ["onClose", "usagePercentage", "hasSubscription"];
2993 var _title, _description, _url, _title2, _description2, _url2, _title3, _description3, _url3;
2994 var KEY_SUBSCRIPTION = 'subscription';
2995 var KEY_NO_SUBSCRIPTION = 'noSubscription';
2996 var getUsageTitle = function getUsageTitle(percentage) {
2997 // Translators: %s refers to the credits percentage usage
2998 return sprintf(__('You’ve used %s of credits for this AI feature.', 'elementor'), percentage);
2999 };
3000 var CREDITS_95_USAGE_TITLE = getUsageTitle('95%');
3001 var CREDITS_80_USAGE_TITLE = getUsageTitle('80%');
3002 var CREDITS_75_USAGE_TITLE = getUsageTitle('75%');
3003 var DESCRIPTION_SUBSCRIPTION = __('Get maximum access.', 'elementor');
3004 var DESCRIPTION_NO_SUBSCRIPTION = __('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor');
3005 var alertConfigs = [{
3006 threshold: 95,
3007 title: (_title = {}, (0, _defineProperty2.default)(_title, KEY_SUBSCRIPTION, CREDITS_95_USAGE_TITLE), (0, _defineProperty2.default)(_title, KEY_NO_SUBSCRIPTION, CREDITS_95_USAGE_TITLE), _title),
3008 description: (_description = {}, (0, _defineProperty2.default)(_description, KEY_SUBSCRIPTION, DESCRIPTION_SUBSCRIPTION), (0, _defineProperty2.default)(_description, KEY_NO_SUBSCRIPTION, DESCRIPTION_NO_SUBSCRIPTION), _description),
3009 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),
3010 color: 'error'
3011 }, {
3012 threshold: 80,
3013 title: (_title2 = {}, (0, _defineProperty2.default)(_title2, KEY_SUBSCRIPTION, CREDITS_80_USAGE_TITLE), (0, _defineProperty2.default)(_title2, KEY_NO_SUBSCRIPTION, CREDITS_80_USAGE_TITLE), _title2),
3014 description: (_description2 = {}, (0, _defineProperty2.default)(_description2, KEY_SUBSCRIPTION, DESCRIPTION_SUBSCRIPTION), (0, _defineProperty2.default)(_description2, KEY_NO_SUBSCRIPTION, DESCRIPTION_NO_SUBSCRIPTION), _description2),
3015 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),
3016 color: 'warning'
3017 }, {
3018 threshold: 75,
3019 title: (_title3 = {}, (0, _defineProperty2.default)(_title3, KEY_SUBSCRIPTION, CREDITS_75_USAGE_TITLE), (0, _defineProperty2.default)(_title3, KEY_NO_SUBSCRIPTION, CREDITS_75_USAGE_TITLE), _title3),
3020 description: (_description3 = {}, (0, _defineProperty2.default)(_description3, KEY_SUBSCRIPTION, DESCRIPTION_SUBSCRIPTION), (0, _defineProperty2.default)(_description3, KEY_NO_SUBSCRIPTION, DESCRIPTION_NO_SUBSCRIPTION), _description3),
3021 url: (_url3 = {}, (0, _defineProperty2.default)(_url3, KEY_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-paid-80-limit-reach/'), (0, _defineProperty2.default)(_url3, KEY_NO_SUBSCRIPTION, 'https://go.elementor.com/ai-banner-free-80-limit-reach/'), _url3),
3022 color: 'warning'
3023 }];
3024 var UpgradeButton = function UpgradeButton(props) {
3025 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
3026 color: "inherit",
3027 variant: "outlined",
3028 sx: {
3029 border: '2px solid'
3030 }
3031 }, props), __('Upgrade now', 'elementor'));
3032 };
3033 var UsageLimitAlert = function UsageLimitAlert(_ref) {
3034 var onClose = _ref.onClose,
3035 usagePercentage = _ref.usagePercentage,
3036 hasSubscription = _ref.hasSubscription,
3037 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3038 var config = alertConfigs.find(function (_ref2) {
3039 var threshold = _ref2.threshold;
3040 return usagePercentage >= threshold;
3041 });
3042 if (!config) {
3043 return null;
3044 }
3045 var subscriptionType = hasSubscription ? KEY_SUBSCRIPTION : KEY_NO_SUBSCRIPTION;
3046 var title = config.title,
3047 description = config.description,
3048 url = config.url,
3049 color = config.color;
3050 var handleUpgradeClick = function handleUpgradeClick() {
3051 return window.open(url[subscriptionType], '_blank');
3052 };
3053 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
3054 severity: "warning",
3055 action: /*#__PURE__*/_react.default.createElement(UpgradeButton, {
3056 onClick: handleUpgradeClick
3057 }),
3058 color: color
3059 }, props), /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, title[subscriptionType]), description[subscriptionType]);
3060 };
3061 UsageLimitAlert.propTypes = {
3062 onClose: PropTypes.func,
3063 usagePercentage: PropTypes.number,
3064 hasSubscription: PropTypes.bool
3065 };
3066 var _default = UsageLimitAlert;
3067 exports["default"] = _default;
3068
3069 /***/ }),
3070
3071 /***/ "../modules/ai/assets/js/editor/components/usage-messages.js":
3072 /*!*******************************************************************!*\
3073 !*** ../modules/ai/assets/js/editor/components/usage-messages.js ***!
3074 \*******************************************************************/
3075 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3076
3077 "use strict";
3078 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
3079
3080
3081 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3082 Object.defineProperty(exports, "__esModule", ({
3083 value: true
3084 }));
3085 exports["default"] = void 0;
3086 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3087 var _upgradeBanner = _interopRequireDefault(__webpack_require__(/*! ./upgrade-banner */ "../modules/ai/assets/js/editor/components/upgrade-banner.js"));
3088 var _usageLimitAlert = _interopRequireDefault(__webpack_require__(/*! ./usage-limit-alert */ "../modules/ai/assets/js/editor/components/usage-limit-alert.js"));
3089 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
3090 var UsageMessages = function UsageMessages(_ref) {
3091 var hasSubscription = _ref.hasSubscription,
3092 usagePercentage = _ref.usagePercentage,
3093 sx = _ref.sx;
3094 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
3095 usagePercentage: usagePercentage,
3096 hasSubscription: hasSubscription
3097 }),
3098 showBanner = _useUpgradeMessage.showBanner,
3099 markBannerAsViewed = _useUpgradeMessage.markBannerAsViewed;
3100 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showBanner && /*#__PURE__*/_react.default.createElement(_upgradeBanner.default, {
3101 onClose: markBannerAsViewed,
3102 sx: sx
3103 }), /*#__PURE__*/_react.default.createElement(_usageLimitAlert.default, {
3104 hasSubscription: hasSubscription,
3105 usagePercentage: usagePercentage,
3106 sx: sx
3107 }));
3108 };
3109 UsageMessages.propTypes = {
3110 hasSubscription: PropTypes.bool,
3111 usagePercentage: PropTypes.number,
3112 sx: PropTypes.object
3113 };
3114 var _default = UsageMessages;
3115 exports["default"] = _default;
3116
3117 /***/ }),
3118
3119 /***/ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js":
3120 /*!**************************************************************************!*\
3121 !*** ../modules/ai/assets/js/editor/components/voice-promotion-alert.js ***!
3122 \**************************************************************************/
3123 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3124
3125 "use strict";
3126 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3127 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
3128
3129
3130 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3131 Object.defineProperty(exports, "__esModule", ({
3132 value: true
3133 }));
3134 exports["default"] = exports.VoicePromotionAlert = void 0;
3135 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3136 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3137 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3138 var _bulbIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/bulb-icon */ "../modules/ai/assets/js/editor/icons/bulb-icon.js"));
3139 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
3140 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; }
3141 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; }
3142 var VoicePromotionAlert = function VoicePromotionAlert(props) {
3143 var _useIntroduction = (0, _useIntroduction2.default)(props.introductionKey),
3144 isViewed = _useIntroduction.isViewed,
3145 markAsViewed = _useIntroduction.markAsViewed;
3146 if (isViewed) {
3147 return null;
3148 }
3149 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3150 sx: _objectSpread({
3151 mt: 2
3152 }, props.sx),
3153 alignItems: "top"
3154 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
3155 severity: "info",
3156 variant: "standard",
3157 icon: /*#__PURE__*/_react.default.createElement(_bulbIcon.default, {
3158 sx: {
3159 alignSelf: 'flex-start'
3160 }
3161 }),
3162 onClose: markAsViewed
3163 }, __('Get improved results from AI by adding personal context.', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
3164 onClick: function onClick() {
3165 return $e.route('panel/global/menu');
3166 },
3167 className: "elementor-clickable",
3168 style: {
3169 textDecoration: 'none'
3170 },
3171 color: "info.main",
3172 href: "#"
3173 }, __('Let’s do it', 'elementor'))));
3174 };
3175 exports.VoicePromotionAlert = VoicePromotionAlert;
3176 VoicePromotionAlert.propTypes = {
3177 sx: PropTypes.object,
3178 introductionKey: PropTypes.string
3179 };
3180 var _default = VoicePromotionAlert;
3181 exports["default"] = _default;
3182
3183 /***/ }),
3184
3185 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
3186 /*!******************************************************************!*\
3187 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
3188 \******************************************************************/
3189 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3190
3191 "use strict";
3192
3193
3194 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3195 Object.defineProperty(exports, "__esModule", ({
3196 value: true
3197 }));
3198 exports["default"] = void 0;
3199 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3200 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3201 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3202 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3203 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3204 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3205 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
3206 var _excluded = ["sx"];
3207 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; }
3208 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; }
3209 var WizardDialog = function WizardDialog(props) {
3210 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3211 open: true,
3212 onClose: props.onClose,
3213 fullWidth: true,
3214 hideBackdrop: true,
3215 maxWidth: "lg",
3216 PaperProps: {
3217 sx: {
3218 height: '88vh'
3219 }
3220 },
3221 sx: {
3222 zIndex: 9999
3223 }
3224 }, props.children);
3225 };
3226 WizardDialog.propTypes = {
3227 onClose: _propTypes.default.func.isRequired,
3228 children: _propTypes.default.node.isRequired
3229 };
3230 var WizardDialogContent = function WizardDialogContent(_ref) {
3231 var _ref$sx = _ref.sx,
3232 sx = _ref$sx === void 0 ? {} : _ref$sx,
3233 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3234 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
3235 sx: _objectSpread({
3236 display: 'flex',
3237 flexDirection: 'column',
3238 justifyContent: 'center'
3239 }, sx)
3240 }));
3241 };
3242 WizardDialogContent.propTypes = {
3243 sx: _propTypes.default.object
3244 };
3245 WizardDialog.Header = _dialogHeader.default;
3246 WizardDialog.Content = WizardDialogContent;
3247 var _default = WizardDialog;
3248 exports["default"] = _default;
3249
3250 /***/ }),
3251
3252 /***/ "../modules/ai/assets/js/editor/context/requests-ids.js":
3253 /*!**************************************************************!*\
3254 !*** ../modules/ai/assets/js/editor/context/requests-ids.js ***!
3255 \**************************************************************/
3256 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3257
3258 "use strict";
3259
3260
3261 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3262 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3263 Object.defineProperty(exports, "__esModule", ({
3264 value: true
3265 }));
3266 exports["default"] = exports.RequestIdsProvider = void 0;
3267 exports.generateIds = generateIds;
3268 exports.useRequestIds = exports.getUniqueId = void 0;
3269 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3270 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3271 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); }
3272 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; }
3273 var Context = (0, _react.createContext)({});
3274 var useRequestIds = function useRequestIds() {
3275 var context = (0, _react.useContext)(Context);
3276 if (!context) {
3277 throw new Error('useRequestIds must be used within a RequestIdsProvider');
3278 }
3279 return context;
3280 };
3281 exports.useRequestIds = useRequestIds;
3282 var getUniqueId = function getUniqueId(prefix) {
3283 return prefix + '-' + Math.random().toString(16).substr(2, 7);
3284 };
3285 exports.getUniqueId = getUniqueId;
3286 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
3287 function generateIds(template) {
3288 var _template$elements;
3289 template.id = getUniqueId().toString();
3290 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
3291 template.elements.map(function (child) {
3292 return generateIds(child);
3293 });
3294 }
3295 return template;
3296 }
3297 var RequestIdsProvider = function RequestIdsProvider(props) {
3298 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
3299 var sessionId = (0, _react.useRef)('');
3300 var generateId = (0, _react.useRef)('');
3301 var batchId = (0, _react.useRef)('');
3302 var requestId = (0, _react.useRef)('');
3303 sessionId.current = getUniqueId('session');
3304 var setGenerate = function setGenerate() {
3305 generateId.current = getUniqueId('generate');
3306 return generateId;
3307 };
3308 var setBatch = function setBatch() {
3309 batchId.current = getUniqueId('batch');
3310 return batchId;
3311 };
3312 var setRequest = function setRequest() {
3313 requestId.current = getUniqueId('request');
3314 return requestId;
3315 };
3316 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
3317 value: {
3318 editorSessionId: editorSessionId,
3319 sessionId: sessionId,
3320 generateId: generateId,
3321 batchId: batchId,
3322 requestId: requestId,
3323 setGenerate: setGenerate,
3324 setBatch: setBatch,
3325 setRequest: setRequest
3326 }
3327 }, props.children);
3328 };
3329 exports.RequestIdsProvider = RequestIdsProvider;
3330 RequestIdsProvider.propTypes = {
3331 children: _propTypes.default.node.isRequired
3332 };
3333 var _default = Context;
3334 exports["default"] = _default;
3335
3336 /***/ }),
3337
3338 /***/ "../modules/ai/assets/js/editor/helpers/date-helpers.js":
3339 /*!**************************************************************!*\
3340 !*** ../modules/ai/assets/js/editor/helpers/date-helpers.js ***!
3341 \**************************************************************/
3342 /***/ ((__unused_webpack_module, exports) => {
3343
3344 "use strict";
3345
3346
3347 Object.defineProperty(exports, "__esModule", ({
3348 value: true
3349 }));
3350 exports.translateDate = exports.daysDiff = exports.MONTH_JANUARY_INDEX = exports.MONTH_DECEMBER_INDEX = void 0;
3351 var MONTH_DECEMBER_INDEX = 12;
3352 exports.MONTH_DECEMBER_INDEX = MONTH_DECEMBER_INDEX;
3353 var MONTH_JANUARY_INDEX = 0;
3354 /**
3355 * Formats a date (like wp_date() in PHP), translating it into site's locale.
3356 *
3357 * @param {string} format PHP-style formatting string.
3358 * @param {Date | string | undefined} date Date object
3359 * @param {string | number | undefined=} timezone Timezone to output result in or a UTC offset. Defaults to timezone from site.
3360 * @return {string}
3361 */
3362 exports.MONTH_JANUARY_INDEX = MONTH_JANUARY_INDEX;
3363 var translateDate = function translateDate(format, date, timezone) {
3364 var _window$wp;
3365 if ((_window$wp = window.wp) !== null && _window$wp !== void 0 && _window$wp.date) {
3366 var _window$wp2;
3367 var _window$wp$date = (_window$wp2 = window.wp) === null || _window$wp2 === void 0 ? void 0 : _window$wp2.date,
3368 dateI18n = _window$wp$date.dateI18n;
3369 return dateI18n(format, date, timezone);
3370 }
3371 return date;
3372 };
3373
3374 /**
3375 * Returns difference in days between two dates
3376 *
3377 * @param {Date} firstDate
3378 * @param {Date} secondDate
3379 * @return {number} Positive or negative number in days
3380 */
3381 exports.translateDate = translateDate;
3382 var daysDiff = function daysDiff(firstDate, secondDate) {
3383 var MS_PER_DAY = 1000 * 60 * 60 * 24;
3384 var firstUTC = Date.UTC(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate());
3385 var secondUTC = Date.UTC(secondDate.getFullYear(), secondDate.getMonth(), secondDate.getDate());
3386 return Math.floor((secondUTC - firstUTC) / MS_PER_DAY);
3387 };
3388 exports.daysDiff = daysDiff;
3389
3390 /***/ }),
3391
3392 /***/ "../modules/ai/assets/js/editor/helpers/index.js":
3393 /*!*******************************************************!*\
3394 !*** ../modules/ai/assets/js/editor/helpers/index.js ***!
3395 \*******************************************************/
3396 /***/ ((__unused_webpack_module, exports) => {
3397
3398 "use strict";
3399
3400
3401 Object.defineProperty(exports, "__esModule", ({
3402 value: true
3403 }));
3404 exports.vh = void 0;
3405 var vh = function vh(value) {
3406 var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
3407 return value * h / 100;
3408 };
3409 exports.vh = vh;
3410
3411 /***/ }),
3412
3413 /***/ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js":
3414 /*!***************************************************************!*\
3415 !*** ../modules/ai/assets/js/editor/hooks/use-code-prompt.js ***!
3416 \***************************************************************/
3417 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3418
3419 "use strict";
3420
3421
3422 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3423 Object.defineProperty(exports, "__esModule", ({
3424 value: true
3425 }));
3426 exports["default"] = void 0;
3427 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3428 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3429 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3430 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3431 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3432 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; }
3433 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; }
3434 var getCodeResult = /*#__PURE__*/function () {
3435 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(payload, _ref) {
3436 var codeLanguage, htmlMarkup, elementId;
3437 return _regenerator.default.wrap(function _callee$(_context) {
3438 while (1) switch (_context.prev = _context.next) {
3439 case 0:
3440 codeLanguage = _ref.codeLanguage, htmlMarkup = _ref.htmlMarkup, elementId = _ref.elementId;
3441 if (!('css' === codeLanguage)) {
3442 _context.next = 3;
3443 break;
3444 }
3445 return _context.abrupt("return", (0, _api.getCustomCSS)(_objectSpread(_objectSpread({}, payload), {}, {
3446 html_markup: htmlMarkup,
3447 element_id: elementId
3448 })));
3449 case 3:
3450 return _context.abrupt("return", (0, _api.getCustomCode)(_objectSpread(_objectSpread({}, payload), {}, {
3451 language: codeLanguage
3452 })));
3453 case 4:
3454 case "end":
3455 return _context.stop();
3456 }
3457 }, _callee);
3458 }));
3459 return function getCodeResult(_x, _x2) {
3460 return _ref2.apply(this, arguments);
3461 };
3462 }();
3463 var useCodePrompt = function useCodePrompt(_ref3) {
3464 var codeLanguage = _ref3.codeLanguage,
3465 htmlMarkup = _ref3.htmlMarkup,
3466 elementId = _ref3.elementId,
3467 credits = _ref3.initialCredits;
3468 var promptData = (0, _usePrompt.default)(function (payload) {
3469 return getCodeResult(payload, {
3470 codeLanguage: codeLanguage,
3471 htmlMarkup: htmlMarkup,
3472 elementId: elementId
3473 });
3474 }, {
3475 credits: credits
3476 });
3477 return promptData;
3478 };
3479 var _default = useCodePrompt;
3480 exports["default"] = _default;
3481
3482 /***/ }),
3483
3484 /***/ "../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js":
3485 /*!******************************************************************************!*\
3486 !*** ../modules/ai/assets/js/editor/hooks/use-delete-prompt-history-item.js ***!
3487 \******************************************************************************/
3488 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3489
3490 "use strict";
3491
3492
3493 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3494 Object.defineProperty(exports, "__esModule", ({
3495 value: true
3496 }));
3497 exports["default"] = void 0;
3498 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3499 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3500 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3501 var _react = __webpack_require__(/*! react */ "react");
3502 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3503 var useDeletePromptHistoryItem = function useDeletePromptHistoryItem() {
3504 var _useState = (0, _react.useState)(false),
3505 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3506 isLoading = _useState2[0],
3507 setIsLoading = _useState2[1];
3508 var _useState3 = (0, _react.useState)(''),
3509 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3510 error = _useState4[0],
3511 setError = _useState4[1];
3512 var deleteItem = /*#__PURE__*/function () {
3513 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(id) {
3514 return _regenerator.default.wrap(function _callee$(_context) {
3515 while (1) switch (_context.prev = _context.next) {
3516 case 0:
3517 return _context.abrupt("return", new Promise(function (resolve, reject) {
3518 setError('');
3519 setIsLoading(true);
3520 (0, _api.deleteHistoryItem)(id).then(function () {
3521 resolve(true);
3522 }).catch(function (err) {
3523 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3524 setError(finalError);
3525 reject(finalError);
3526 }).finally(function () {
3527 return setIsLoading(false);
3528 });
3529 }));
3530 case 1:
3531 case "end":
3532 return _context.stop();
3533 }
3534 }, _callee);
3535 }));
3536 return function deleteItem(_x) {
3537 return _ref.apply(this, arguments);
3538 };
3539 }();
3540 return {
3541 isLoading: isLoading,
3542 error: error,
3543 deleteItem: deleteItem
3544 };
3545 };
3546 var _default = useDeletePromptHistoryItem;
3547 exports["default"] = _default;
3548
3549 /***/ }),
3550
3551 /***/ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js":
3552 /*!********************************************************************!*\
3553 !*** ../modules/ai/assets/js/editor/hooks/use-image-navigation.js ***!
3554 \********************************************************************/
3555 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3556
3557 "use strict";
3558
3559
3560 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3561 Object.defineProperty(exports, "__esModule", ({
3562 value: true
3563 }));
3564 exports["default"] = void 0;
3565 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3566 var _react = __webpack_require__(/*! react */ "react");
3567 var initialIndex = -1;
3568 var useImageNavigation = function useImageNavigation(images) {
3569 var _useState = (0, _react.useState)(initialIndex),
3570 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3571 zoomIndex = _useState2[0],
3572 setZoomIndex = _useState2[1];
3573 var actions = {
3574 reset: function reset() {
3575 return setZoomIndex(initialIndex);
3576 },
3577 prev: function prev() {
3578 var prevImage = zoomIndex + 1;
3579 if (prevImage >= images.length) {
3580 prevImage = 0;
3581 }
3582 setZoomIndex(prevImage);
3583 },
3584 next: function next() {
3585 var nextImage = zoomIndex - 1;
3586 if (nextImage < 0) {
3587 nextImage = images.length - 1;
3588 }
3589 setZoomIndex(nextImage);
3590 }
3591 };
3592 return {
3593 zoomIndex: zoomIndex,
3594 setZoomIndex: setZoomIndex,
3595 actions: actions
3596 };
3597 };
3598 var _default = useImageNavigation;
3599 exports["default"] = _default;
3600
3601 /***/ }),
3602
3603 /***/ "../modules/ai/assets/js/editor/hooks/use-images-preload.js":
3604 /*!******************************************************************!*\
3605 !*** ../modules/ai/assets/js/editor/hooks/use-images-preload.js ***!
3606 \******************************************************************/
3607 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3608
3609 "use strict";
3610
3611
3612 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3613 Object.defineProperty(exports, "__esModule", ({
3614 value: true
3615 }));
3616 exports["default"] = void 0;
3617 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3618 var _react = __webpack_require__(/*! react */ "react");
3619 var loadImage = function loadImage(url) {
3620 return new Promise(function (resolve, reject) {
3621 var loadImg = new Image();
3622 loadImg.src = url;
3623 loadImg.onload = function () {
3624 return resolve(url);
3625 };
3626 loadImg.onerror = function (err) {
3627 return reject(err);
3628 };
3629 });
3630 };
3631 var useImagesPreload = function useImagesPreload() {
3632 var _useState = (0, _react.useState)(false),
3633 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3634 ready = _useState2[0],
3635 setReady = _useState2[1];
3636 var preloadImages = function preloadImages(images) {
3637 setReady(false);
3638 Promise.all(images.map(function (url) {
3639 return loadImage(url);
3640 })).then(function () {
3641 return setReady(true);
3642 })
3643 // eslint-disable-next-line no-console
3644 .catch(function (err) {
3645 return console.log('Failed to load images', err);
3646 }); // Todo error better handling
3647 };
3648
3649 return {
3650 ready: ready,
3651 preloadImages: preloadImages
3652 };
3653 };
3654 var _default = useImagesPreload;
3655 exports["default"] = _default;
3656
3657 /***/ }),
3658
3659 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
3660 /*!****************************************************************!*\
3661 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
3662 \****************************************************************/
3663 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3664
3665 "use strict";
3666
3667
3668 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3669 Object.defineProperty(exports, "__esModule", ({
3670 value: true
3671 }));
3672 exports["default"] = useIntroduction;
3673 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3674 var _react = __webpack_require__(/*! react */ "react");
3675 function useIntroduction(key) {
3676 var _window$elementor$con, _window$elementorAdmi, _window$elementorAdmi2, _globalConfig$introdu;
3677 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;
3678 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
3679 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3680 isViewed = _useState2[0],
3681 setIsViewed = _useState2[1];
3682 function markAsViewed() {
3683 if (!key) {
3684 return Promise.reject();
3685 }
3686 return new Promise(function (resolve, reject) {
3687 if (isViewed) {
3688 reject();
3689 }
3690 setIsViewed(true);
3691 elementorCommon.ajax.addRequest('introduction_viewed', {
3692 data: {
3693 introductionKey: key
3694 },
3695 error: function error() {
3696 setIsViewed(false);
3697 reject();
3698 },
3699 success: function success() {
3700 setIsViewed(true);
3701 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
3702 globalConfig.introduction[key] = true;
3703 }
3704 resolve();
3705 }
3706 });
3707 });
3708 }
3709 return {
3710 isViewed: isViewed,
3711 markAsViewed: markAsViewed
3712 };
3713 }
3714
3715 /***/ }),
3716
3717 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
3718 /*!*******************************************************************!*\
3719 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
3720 \*******************************************************************/
3721 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3722
3723 "use strict";
3724
3725
3726 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3727 Object.defineProperty(exports, "__esModule", ({
3728 value: true
3729 }));
3730 exports["default"] = void 0;
3731 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3732 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
3733 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3734 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
3735 var getResult = function getResult(prompt, type, enhanceType) {
3736 if (!enhancePromptMap.has(type)) {
3737 throw new Error("Invalid prompt type: ".concat(type));
3738 }
3739 return enhancePromptMap.get(type)(prompt, enhanceType);
3740 };
3741
3742 /**
3743 * Hook to enhance a prompt.
3744 *
3745 * @param {string} prompt
3746 * @param {'media' | 'layout'} type
3747 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
3748 */
3749 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
3750 var _useConfig = (0, _config.useConfig)(),
3751 mode = _useConfig.mode;
3752 var _usePrompt = (0, _usePrompt2.default)(function () {
3753 return getResult(prompt, type, mode);
3754 }, prompt),
3755 enhancedData = _usePrompt.data,
3756 isEnhancing = _usePrompt.isLoading,
3757 enhance = _usePrompt.send;
3758 return {
3759 enhance: enhance,
3760 isEnhancing: isEnhancing,
3761 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
3762 };
3763 };
3764 var _default = usePromptEnhancer;
3765 exports["default"] = _default;
3766
3767 /***/ }),
3768
3769 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-history.js":
3770 /*!******************************************************************!*\
3771 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-history.js ***!
3772 \******************************************************************/
3773 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3774
3775 "use strict";
3776
3777
3778 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3779 Object.defineProperty(exports, "__esModule", ({
3780 value: true
3781 }));
3782 exports["default"] = void 0;
3783 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3784 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3785 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3786 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3787 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3788 var _react = __webpack_require__(/*! react */ "react");
3789 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3790 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; }
3791 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; }
3792 var getImageThumbnailURL = function getImageThumbnailURL(base, imageURL) {
3793 if (!base) {
3794 return imageURL;
3795 }
3796 return "".concat(base, "/?o=").concat(btoa(imageURL, false));
3797 };
3798 var normalizeItems = function normalizeItems(response) {
3799 var meta = response.meta,
3800 items = response.items;
3801 return items === null || items === void 0 ? void 0 : items.map(function (item) {
3802 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;
3803 return {
3804 id: item === null || item === void 0 ? void 0 : item.elementorApiId,
3805 date: item === null || item === void 0 ? void 0 : item.createdAt,
3806 action: item === null || item === void 0 ? void 0 : item.action,
3807 prompt: item === null || item === void 0 ? void 0 : (_item$request = item.request) === null || _item$request === void 0 ? void 0 : _item$request.prompt,
3808 imageType: item === null || item === void 0 ? void 0 : (_item$request2 = item.request) === null || _item$request2 === void 0 ? void 0 : _item$request2.image_type,
3809 ratio: item === null || item === void 0 ? void 0 : (_item$request3 = item.request) === null || _item$request3 === void 0 ? void 0 : _item$request3.ratio,
3810 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,
3811 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,
3812 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) {
3813 return _objectSpread(_objectSpread({}, image), {}, {
3814 image_url: getImageThumbnailURL(meta.thumbnailUrl, image.image_url)
3815 });
3816 })
3817 };
3818 });
3819 };
3820 var usePromptHistory = function usePromptHistory(historyType) {
3821 var _useState = (0, _react.useState)(false),
3822 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3823 isLoading = _useState2[0],
3824 setIsLoading = _useState2[1];
3825 var _useState3 = (0, _react.useState)({}),
3826 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3827 data = _useState4[0],
3828 setData = _useState4[1];
3829 var _useState5 = (0, _react.useState)(''),
3830 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3831 error = _useState6[0],
3832 setError = _useState6[1];
3833 var fetchData = /*#__PURE__*/function () {
3834 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
3835 var page, limit;
3836 return _regenerator.default.wrap(function _callee$(_context) {
3837 while (1) switch (_context.prev = _context.next) {
3838 case 0:
3839 page = _ref.page, limit = _ref.limit;
3840 return _context.abrupt("return", new Promise(function (resolve, reject) {
3841 setIsLoading(true);
3842 (0, _api.getHistory)(historyType, page, limit).then(function (response) {
3843 var clone = JSON.parse(JSON.stringify(data));
3844 clone.meta = response.meta;
3845 clone.items = [].concat((0, _toConsumableArray2.default)((clone === null || clone === void 0 ? void 0 : clone.items) || []), (0, _toConsumableArray2.default)(normalizeItems(response)));
3846 setData(clone);
3847 resolve(true);
3848 }).catch(function (err) {
3849 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3850 setError(finalError);
3851 reject(finalError);
3852 }).finally(function () {
3853 return setIsLoading(false);
3854 });
3855 }));
3856 case 2:
3857 case "end":
3858 return _context.stop();
3859 }
3860 }, _callee);
3861 }));
3862 return function fetchData(_x) {
3863 return _ref2.apply(this, arguments);
3864 };
3865 }();
3866 var deleteItemById = function deleteItemById(id) {
3867 var itemIndex = data.items.findIndex(function (item) {
3868 return item.id === id;
3869 });
3870 if (-1 === itemIndex) {
3871 return false;
3872 }
3873 var clone = JSON.parse(JSON.stringify(data));
3874 clone.items.splice(itemIndex, 1);
3875 setData(clone);
3876 return true;
3877 };
3878 return {
3879 isLoading: isLoading,
3880 error: error,
3881 items: data.items,
3882 meta: data.meta,
3883 fetchData: fetchData,
3884 deleteItemById: deleteItemById
3885 };
3886 };
3887 var _default = usePromptHistory;
3888 exports["default"] = _default;
3889
3890 /***/ }),
3891
3892 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
3893 /*!**********************************************************!*\
3894 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.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"] = void 0;
3906 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3907 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3908 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3909 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3910 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3911 var _react = __webpack_require__(/*! react */ "react");
3912 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
3913 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3914 var _excluded = ["text", "response_id", "usage", "images"];
3915 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; }
3916 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; }
3917 var normalizeResponse = function normalizeResponse(_ref) {
3918 var text = _ref.text,
3919 responseId = _ref.response_id,
3920 usage = _ref.usage,
3921 images = _ref.images,
3922 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3923 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
3924 var credits = Math.max(creditsData, 0);
3925 var result = text || images;
3926 var normalized = {
3927 result: result,
3928 responseId: responseId,
3929 credits: credits
3930 };
3931 if (optional.base_template_id) {
3932 normalized.baseTemplateId = optional.base_template_id;
3933 }
3934 normalized.type = optional.template_type;
3935 return normalized;
3936 };
3937 var usePrompt = function usePrompt(fetchData, initialState) {
3938 var _useState = (0, _react.useState)(false),
3939 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3940 isLoading = _useState2[0],
3941 setIsLoading = _useState2[1];
3942 var _useState3 = (0, _react.useState)(''),
3943 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3944 error = _useState4[0],
3945 setError = _useState4[1];
3946 var _useState5 = (0, _react.useState)(initialState),
3947 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3948 data = _useState6[0],
3949 setData = _useState6[1];
3950 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3951 setRequest = _useRequestIds.setRequest,
3952 editorSessionId = _useRequestIds.editorSessionId,
3953 sessionId = _useRequestIds.sessionId,
3954 generateId = _useRequestIds.generateId,
3955 batchId = _useRequestIds.batchId;
3956 var send = /*#__PURE__*/function () {
3957 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
3958 return _regenerator.default.wrap(function _callee$(_context) {
3959 while (1) switch (_context.prev = _context.next) {
3960 case 0:
3961 return _context.abrupt("return", new Promise(function (resolve, reject) {
3962 setError('');
3963 setIsLoading(true);
3964 var requestId = setRequest();
3965 var requestIds = {
3966 editorSessionId: editorSessionId.current,
3967 sessionId: sessionId.current,
3968 generateId: generateId.current,
3969 batchId: batchId.current,
3970 requestId: requestId.current
3971 };
3972 payload = _objectSpread(_objectSpread({}, payload), {}, {
3973 requestIds: requestIds
3974 });
3975 fetchData(payload).then(function (result) {
3976 var normalizedData = normalizeResponse(result);
3977 setData(normalizedData);
3978 resolve(normalizedData);
3979 }).catch(function (err) {
3980 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
3981 setError(finalError);
3982 reject(finalError);
3983 }).finally(function () {
3984 return setIsLoading(false);
3985 });
3986 }));
3987 case 1:
3988 case "end":
3989 return _context.stop();
3990 }
3991 }, _callee);
3992 }));
3993 return function send(_x) {
3994 return _ref2.apply(this, arguments);
3995 };
3996 }();
3997 var sendUsageData = function sendUsageData() {
3998 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
3999 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
4000 };
4001 var reset = function reset() {
4002 setData(function (_ref3) {
4003 var credits = _ref3.credits;
4004 return {
4005 credits: credits,
4006 result: '',
4007 responseId: ''
4008 };
4009 });
4010 setError('');
4011 setIsLoading(false);
4012 };
4013 var setResult = function setResult(result) {
4014 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4015 var updatedResult = _objectSpread({}, data);
4016 updatedResult.result = result;
4017 if (responseId) {
4018 updatedResult.responseId = responseId;
4019 }
4020 setData(updatedResult);
4021 };
4022 return {
4023 isLoading: isLoading,
4024 error: error,
4025 data: data,
4026 setResult: setResult,
4027 reset: reset,
4028 send: send,
4029 sendUsageData: sendUsageData
4030 };
4031 };
4032 var _default = usePrompt;
4033 exports["default"] = _default;
4034
4035 /***/ }),
4036
4037 /***/ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js":
4038 /*!***************************************************************!*\
4039 !*** ../modules/ai/assets/js/editor/hooks/use-text-prompt.js ***!
4040 \***************************************************************/
4041 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4042
4043 "use strict";
4044
4045
4046 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4047 Object.defineProperty(exports, "__esModule", ({
4048 value: true
4049 }));
4050 exports["default"] = void 0;
4051 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4052 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4053 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
4054 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4055 var getTextResult = /*#__PURE__*/function () {
4056 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
4057 return _regenerator.default.wrap(function _callee$(_context) {
4058 while (1) switch (_context.prev = _context.next) {
4059 case 0:
4060 if (!(payload !== null && payload !== void 0 && payload.instruction)) {
4061 _context.next = 2;
4062 break;
4063 }
4064 return _context.abrupt("return", (0, _api.getEditText)(payload));
4065 case 2:
4066 return _context.abrupt("return", (0, _api.getCompletionText)(payload));
4067 case 3:
4068 case "end":
4069 return _context.stop();
4070 }
4071 }, _callee);
4072 }));
4073 return function getTextResult(_x) {
4074 return _ref.apply(this, arguments);
4075 };
4076 }();
4077 var useTextPrompt = function useTextPrompt(initialValue) {
4078 var promptData = (0, _usePrompt.default)(getTextResult, initialValue);
4079 return promptData;
4080 };
4081 var _default = useTextPrompt;
4082 exports["default"] = _default;
4083
4084 /***/ }),
4085
4086 /***/ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js":
4087 /*!*******************************************************************!*\
4088 !*** ../modules/ai/assets/js/editor/hooks/use-upgrade-message.js ***!
4089 \*******************************************************************/
4090 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4091
4092 "use strict";
4093
4094
4095 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4096 Object.defineProperty(exports, "__esModule", ({
4097 value: true
4098 }));
4099 exports["default"] = exports.USAGE_PERCENTAGE_THRESHOLD = void 0;
4100 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ./use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
4101 var USAGE_PERCENTAGE_THRESHOLD = 80;
4102 exports.USAGE_PERCENTAGE_THRESHOLD = USAGE_PERCENTAGE_THRESHOLD;
4103 var useUpgradeMessage = function useUpgradeMessage(_ref) {
4104 var usagePercentage = _ref.usagePercentage,
4105 hasSubscription = _ref.hasSubscription;
4106 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-upgrade-message'),
4107 isBannerViewed = _useIntroduction.isViewed,
4108 markBannerAsViewed = _useIntroduction.markAsViewed;
4109 var isFreeUser = !hasSubscription;
4110 var isBelowThreshold = usagePercentage < USAGE_PERCENTAGE_THRESHOLD;
4111 var isAboveThreshold = usagePercentage >= USAGE_PERCENTAGE_THRESHOLD;
4112 var showBadge = isAboveThreshold || isFreeUser && isBannerViewed;
4113 var showBanner = !isBannerViewed && isFreeUser && isBelowThreshold;
4114 return {
4115 showBadge: showBadge,
4116 showBanner: showBanner,
4117 markBannerAsViewed: markBannerAsViewed
4118 };
4119 };
4120 var _default = useUpgradeMessage;
4121 exports["default"] = _default;
4122
4123 /***/ }),
4124
4125 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
4126 /*!*************************************************************!*\
4127 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
4128 \*************************************************************/
4129 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4130
4131 "use strict";
4132
4133
4134 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4135 Object.defineProperty(exports, "__esModule", ({
4136 value: true
4137 }));
4138 exports["default"] = void 0;
4139 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4140 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
4141 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4142 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4143 var _react = __webpack_require__(/*! react */ "react");
4144 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
4145 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; }
4146 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; }
4147 var useUserInfo = function useUserInfo() {
4148 var _useState = (0, _react.useState)(false),
4149 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4150 isLoaded = _useState2[0],
4151 setIsLoaded = _useState2[1];
4152 var _useState3 = (0, _react.useState)(false),
4153 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4154 isLoading = _useState4[0],
4155 setIsLoading = _useState4[1];
4156 var _useState5 = (0, _react.useState)({
4157 is_connected: false,
4158 is_get_started: false,
4159 connect_url: '',
4160 usage: {
4161 hasAiSubscription: false,
4162 quota: 0,
4163 usedQuota: 0
4164 }
4165 }),
4166 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4167 userInfo = _useState6[0],
4168 setUserInfo = _useState6[1];
4169 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
4170 var usagePercentage = userInfo.usage.usedQuota / userInfo.usage.quota * 100;
4171 var fetchData = /*#__PURE__*/function () {
4172 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
4173 var userInfoResult;
4174 return _regenerator.default.wrap(function _callee$(_context) {
4175 while (1) switch (_context.prev = _context.next) {
4176 case 0:
4177 setIsLoading(true);
4178 _context.next = 3;
4179 return (0, _api.getUserInformation)();
4180 case 3:
4181 userInfoResult = _context.sent;
4182 setUserInfo(function (prevState) {
4183 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
4184 });
4185 setIsLoaded(true);
4186 setIsLoading(false);
4187 case 7:
4188 case "end":
4189 return _context.stop();
4190 }
4191 }, _callee);
4192 }));
4193 return function fetchData() {
4194 return _ref.apply(this, arguments);
4195 };
4196 }();
4197 if (!isLoaded && !isLoading) {
4198 fetchData();
4199 }
4200 return {
4201 isLoading: isLoading,
4202 isLoaded: isLoaded,
4203 isConnected: userInfo.is_connected,
4204 isGetStarted: userInfo.is_get_started,
4205 connectUrl: userInfo.connect_url,
4206 builderUrl: userInfo.usage.builderUrl,
4207 hasSubscription: userInfo.usage.hasAiSubscription,
4208 credits: credits < 0 ? 0 : credits,
4209 usagePercentage: Math.round(usagePercentage),
4210 fetchData: fetchData
4211 };
4212 };
4213 var _default = useUserInfo;
4214 exports["default"] = _default;
4215
4216 /***/ }),
4217
4218 /***/ "../modules/ai/assets/js/editor/icons/brush-icon.js":
4219 /*!**********************************************************!*\
4220 !*** ../modules/ai/assets/js/editor/icons/brush-icon.js ***!
4221 \**********************************************************/
4222 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4223
4224 "use strict";
4225
4226
4227 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4228 Object.defineProperty(exports, "__esModule", ({
4229 value: true
4230 }));
4231 exports["default"] = void 0;
4232 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4233 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4234 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4235 var BrushIcon = _react.default.forwardRef(function (props, ref) {
4236 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4237 viewBox: "0 0 24 24"
4238 }, props, {
4239 ref: ref
4240 }), /*#__PURE__*/_react.default.createElement("path", {
4241 fillRule: "evenodd",
4242 clipRule: "evenodd",
4243 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"
4244 }));
4245 });
4246 var _default = BrushIcon;
4247 exports["default"] = _default;
4248
4249 /***/ }),
4250
4251 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
4252 /*!*********************************************************!*\
4253 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
4254 \*********************************************************/
4255 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4256
4257 "use strict";
4258
4259
4260 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4261 Object.defineProperty(exports, "__esModule", ({
4262 value: true
4263 }));
4264 exports["default"] = void 0;
4265 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4266 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4267 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4268 var BulbIcon = _react.default.forwardRef(function (props, ref) {
4269 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
4270 ref: ref
4271 }), /*#__PURE__*/_react.default.createElement("svg", {
4272 width: "22",
4273 height: "22",
4274 viewBox: "0 0 22 22",
4275 fill: "none",
4276 xmlns: "http://www.w3.org/2000/svg"
4277 }, /*#__PURE__*/_react.default.createElement("g", {
4278 clipPath: "url(#clip0_10743_8902)"
4279 }, /*#__PURE__*/_react.default.createElement("path", {
4280 d: "M2.75 10.0833H3.66667M11 2.75V3.66667M18.3333 10.0833H19.25M5.13333 5.13333L5.775 5.775M16.8667 5.13333L16.225 5.775",
4281 stroke: "#2563EB",
4282 strokeWidth: "1.5",
4283 strokeLinecap: "round",
4284 strokeLinejoin: "round"
4285 }), /*#__PURE__*/_react.default.createElement("path", {
4286 d: "M9.16675 16.041C8.70841 15.1243 6.91205 13.2842 6.62523 12.366C6.3384 11.4477 6.34775 10.4626 6.65195 9.54997C6.95615 8.63738 7.53978 7.84362 8.32016 7.28116C9.10054 6.71869 10.0381 6.41602 11.0001 6.41602C11.962 6.41602 12.8996 6.71869 13.68 7.28116C14.4604 7.84362 15.044 8.63738 15.3482 9.54997C15.6524 10.4626 15.6618 11.4477 15.3749 12.366C15.0881 13.2842 13.2917 15.1243 12.8334 16.041C12.8334 16.041 12.7597 17.3762 12.8334 17.8743C12.8334 18.3606 12.6403 18.8269 12.2964 19.1707C11.9526 19.5145 11.4863 19.7077 11.0001 19.7077C10.5139 19.7077 10.0475 19.5145 9.70372 19.1707C9.3599 18.8269 9.16675 18.3606 9.16675 17.8743C9.2405 17.3762 9.16675 16.041 9.16675 16.041Z",
4287 stroke: "#2563EB",
4288 strokeWidth: "1.5",
4289 strokeLinecap: "round",
4290 strokeLinejoin: "round"
4291 }), /*#__PURE__*/_react.default.createElement("path", {
4292 d: "M10.0833 16.5H11.9166",
4293 stroke: "#2563EB",
4294 strokeWidth: "1.5",
4295 strokeLinecap: "round",
4296 strokeLinejoin: "round"
4297 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
4298 id: "clip0_10743_8902"
4299 }, /*#__PURE__*/_react.default.createElement("rect", {
4300 width: "22",
4301 height: "22",
4302 fill: "white"
4303 })))));
4304 });
4305 var _default = BulbIcon;
4306 exports["default"] = _default;
4307
4308 /***/ }),
4309
4310 /***/ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js":
4311 /*!*****************************************************************!*\
4312 !*** ../modules/ai/assets/js/editor/icons/chevron-left-icon.js ***!
4313 \*****************************************************************/
4314 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4315
4316 "use strict";
4317
4318
4319 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4320 Object.defineProperty(exports, "__esModule", ({
4321 value: true
4322 }));
4323 exports["default"] = void 0;
4324 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4325 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4326 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4327 var ChevronLeftIcon = _react.default.forwardRef(function (props, ref) {
4328 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4329 viewBox: "0 0 24 24"
4330 }, props, {
4331 ref: ref
4332 }), /*#__PURE__*/_react.default.createElement("path", {
4333 fillRule: "evenodd",
4334 clipRule: "evenodd",
4335 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"
4336 }));
4337 });
4338 var _default = ChevronLeftIcon;
4339 exports["default"] = _default;
4340
4341 /***/ }),
4342
4343 /***/ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js":
4344 /*!******************************************************************!*\
4345 !*** ../modules/ai/assets/js/editor/icons/chevron-right-icon.js ***!
4346 \******************************************************************/
4347 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4348
4349 "use strict";
4350
4351
4352 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4353 Object.defineProperty(exports, "__esModule", ({
4354 value: true
4355 }));
4356 exports["default"] = void 0;
4357 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4358 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4359 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4360 var ChevronRightIcon = _react.default.forwardRef(function (props, ref) {
4361 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4362 viewBox: "0 0 24 24"
4363 }, props, {
4364 ref: ref
4365 }), /*#__PURE__*/_react.default.createElement("path", {
4366 fillRule: "evenodd",
4367 clipRule: "evenodd",
4368 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"
4369 }));
4370 });
4371 var _default = ChevronRightIcon;
4372 exports["default"] = _default;
4373
4374 /***/ }),
4375
4376 /***/ "../modules/ai/assets/js/editor/icons/code-icon.js":
4377 /*!*********************************************************!*\
4378 !*** ../modules/ai/assets/js/editor/icons/code-icon.js ***!
4379 \*********************************************************/
4380 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4381
4382 "use strict";
4383
4384
4385 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4386 Object.defineProperty(exports, "__esModule", ({
4387 value: true
4388 }));
4389 exports["default"] = void 0;
4390 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4391 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4392 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4393 var CodeIcon = _react.default.forwardRef(function (props, ref) {
4394 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4395 viewBox: "0 0 24 24"
4396 }, props, {
4397 ref: ref
4398 }), /*#__PURE__*/_react.default.createElement("path", {
4399 fillRule: "evenodd",
4400 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",
4401 clipRule: "evenodd"
4402 }));
4403 });
4404 var _default = CodeIcon;
4405 exports["default"] = _default;
4406
4407 /***/ }),
4408
4409 /***/ "../modules/ai/assets/js/editor/icons/copy-icon.js":
4410 /*!*********************************************************!*\
4411 !*** ../modules/ai/assets/js/editor/icons/copy-icon.js ***!
4412 \*********************************************************/
4413 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4414
4415 "use strict";
4416
4417
4418 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4419 Object.defineProperty(exports, "__esModule", ({
4420 value: true
4421 }));
4422 exports["default"] = void 0;
4423 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4424 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4425 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4426 var CopyIcon = _react.default.forwardRef(function (props, ref) {
4427 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4428 viewBox: "0 0 24 24"
4429 }, props, {
4430 ref: ref
4431 }), /*#__PURE__*/_react.default.createElement("path", {
4432 fillRule: "evenodd",
4433 clipRule: "evenodd",
4434 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"
4435 }), /*#__PURE__*/_react.default.createElement("path", {
4436 fillRule: "evenodd",
4437 clipRule: "evenodd",
4438 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"
4439 }));
4440 });
4441 var _default = CopyIcon;
4442 exports["default"] = _default;
4443
4444 /***/ }),
4445
4446 /***/ "../modules/ai/assets/js/editor/icons/download-icon.js":
4447 /*!*************************************************************!*\
4448 !*** ../modules/ai/assets/js/editor/icons/download-icon.js ***!
4449 \*************************************************************/
4450 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4451
4452 "use strict";
4453
4454
4455 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4456 Object.defineProperty(exports, "__esModule", ({
4457 value: true
4458 }));
4459 exports["default"] = void 0;
4460 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4461 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4462 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4463 var DownloadIcon = _react.default.forwardRef(function (props, ref) {
4464 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4465 viewBox: "0 0 24 24"
4466 }, props, {
4467 ref: ref
4468 }), /*#__PURE__*/_react.default.createElement("path", {
4469 fillRule: "evenodd",
4470 clipRule: "evenodd",
4471 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"
4472 }), /*#__PURE__*/_react.default.createElement("path", {
4473 fillRule: "evenodd",
4474 clipRule: "evenodd",
4475 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"
4476 }), /*#__PURE__*/_react.default.createElement("path", {
4477 fillRule: "evenodd",
4478 clipRule: "evenodd",
4479 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"
4480 }));
4481 });
4482 var _default = DownloadIcon;
4483 exports["default"] = _default;
4484
4485 /***/ }),
4486
4487 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
4488 /*!*********************************************************!*\
4489 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
4490 \*********************************************************/
4491 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4492
4493 "use strict";
4494
4495
4496 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4497 Object.defineProperty(exports, "__esModule", ({
4498 value: true
4499 }));
4500 exports["default"] = void 0;
4501 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4502 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4503 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4504 var EditIcon = _react.default.forwardRef(function (props, ref) {
4505 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4506 viewBox: "0 0 24 24"
4507 }, props, {
4508 ref: ref
4509 }), /*#__PURE__*/_react.default.createElement("path", {
4510 fillRule: "evenodd",
4511 clipRule: "evenodd",
4512 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"
4513 }), /*#__PURE__*/_react.default.createElement("path", {
4514 fillRule: "evenodd",
4515 clipRule: "evenodd",
4516 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"
4517 }));
4518 });
4519 var _default = EditIcon;
4520 exports["default"] = _default;
4521
4522 /***/ }),
4523
4524 /***/ "../modules/ai/assets/js/editor/icons/enlarger-icon.js":
4525 /*!*************************************************************!*\
4526 !*** ../modules/ai/assets/js/editor/icons/enlarger-icon.js ***!
4527 \*************************************************************/
4528 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4529
4530 "use strict";
4531
4532
4533 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4534 Object.defineProperty(exports, "__esModule", ({
4535 value: true
4536 }));
4537 exports["default"] = void 0;
4538 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4539 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4540 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4541 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4542 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4543 viewBox: "0 0 24 24"
4544 }, props, {
4545 ref: ref
4546 }), /*#__PURE__*/_react.default.createElement("path", {
4547 fillRule: "evenodd",
4548 clipRule: "evenodd",
4549 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"
4550 }));
4551 });
4552 var _default = ExpandIcon;
4553 exports["default"] = _default;
4554
4555 /***/ }),
4556
4557 /***/ "../modules/ai/assets/js/editor/icons/evolve-icon.js":
4558 /*!***********************************************************!*\
4559 !*** ../modules/ai/assets/js/editor/icons/evolve-icon.js ***!
4560 \***********************************************************/
4561 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4562
4563 "use strict";
4564
4565
4566 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4567 Object.defineProperty(exports, "__esModule", ({
4568 value: true
4569 }));
4570 exports["default"] = void 0;
4571 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4572 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4573 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4574 var EvolveIcon = _react.default.forwardRef(function (props, ref) {
4575 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4576 viewBox: "0 0 24 24"
4577 }, props, {
4578 ref: ref
4579 }), /*#__PURE__*/_react.default.createElement("path", {
4580 fillRule: "evenodd",
4581 clipRule: "evenodd",
4582 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"
4583 }));
4584 });
4585 var _default = EvolveIcon;
4586 exports["default"] = _default;
4587
4588 /***/ }),
4589
4590 /***/ "../modules/ai/assets/js/editor/icons/expand-icon.js":
4591 /*!***********************************************************!*\
4592 !*** ../modules/ai/assets/js/editor/icons/expand-icon.js ***!
4593 \***********************************************************/
4594 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4595
4596 "use strict";
4597
4598
4599 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4600 Object.defineProperty(exports, "__esModule", ({
4601 value: true
4602 }));
4603 exports["default"] = void 0;
4604 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4605 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4606 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4607 var ExpandIcon = _react.default.forwardRef(function (props, ref) {
4608 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4609 viewBox: "0 0 24 24"
4610 }, props, {
4611 ref: ref
4612 }), /*#__PURE__*/_react.default.createElement("path", {
4613 fillRule: "evenodd",
4614 clipRule: "evenodd",
4615 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"
4616 }));
4617 });
4618 var _default = ExpandIcon;
4619 exports["default"] = _default;
4620
4621 /***/ }),
4622
4623 /***/ "../modules/ai/assets/js/editor/icons/redo-icon.js":
4624 /*!*********************************************************!*\
4625 !*** ../modules/ai/assets/js/editor/icons/redo-icon.js ***!
4626 \*********************************************************/
4627 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4628
4629 "use strict";
4630
4631
4632 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4633 Object.defineProperty(exports, "__esModule", ({
4634 value: true
4635 }));
4636 exports["default"] = void 0;
4637 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4638 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4639 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4640 var RedoIcon = _react.default.forwardRef(function (props, ref) {
4641 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4642 viewBox: "0 0 24 24"
4643 }, props, {
4644 ref: ref
4645 }), /*#__PURE__*/_react.default.createElement("path", {
4646 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"
4647 }));
4648 });
4649 var _default = RedoIcon;
4650 exports["default"] = _default;
4651
4652 /***/ }),
4653
4654 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
4655 /*!************************************************************!*\
4656 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
4657 \************************************************************/
4658 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4659
4660 "use strict";
4661
4662
4663 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4664 Object.defineProperty(exports, "__esModule", ({
4665 value: true
4666 }));
4667 exports["default"] = void 0;
4668 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4669 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4670 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4671 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
4672 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4673 viewBox: "0 0 24 24"
4674 }, props, {
4675 ref: ref
4676 }), /*#__PURE__*/_react.default.createElement("path", {
4677 fillRule: "evenodd",
4678 clipRule: "evenodd",
4679 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"
4680 }), /*#__PURE__*/_react.default.createElement("path", {
4681 fillRule: "evenodd",
4682 clipRule: "evenodd",
4683 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"
4684 }));
4685 });
4686 var _default = RefreshIcon;
4687 exports["default"] = _default;
4688
4689 /***/ }),
4690
4691 /***/ "../modules/ai/assets/js/editor/icons/remove-bg.js":
4692 /*!*********************************************************!*\
4693 !*** ../modules/ai/assets/js/editor/icons/remove-bg.js ***!
4694 \*********************************************************/
4695 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4696
4697 "use strict";
4698
4699
4700 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4701 Object.defineProperty(exports, "__esModule", ({
4702 value: true
4703 }));
4704 exports["default"] = void 0;
4705 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4706 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4707 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4708 var RemoveBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4709 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4710 viewBox: "0 0 16 16"
4711 }, props, {
4712 ref: ref
4713 }), /*#__PURE__*/_react.default.createElement("path", {
4714 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"
4715 }), /*#__PURE__*/_react.default.createElement("path", {
4716 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"
4717 }), /*#__PURE__*/_react.default.createElement("path", {
4718 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"
4719 }), /*#__PURE__*/_react.default.createElement("path", {
4720 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"
4721 }), /*#__PURE__*/_react.default.createElement("path", {
4722 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"
4723 }), /*#__PURE__*/_react.default.createElement("path", {
4724 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"
4725 }), /*#__PURE__*/_react.default.createElement("path", {
4726 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"
4727 }), /*#__PURE__*/_react.default.createElement("path", {
4728 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"
4729 }), /*#__PURE__*/_react.default.createElement("path", {
4730 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"
4731 }), /*#__PURE__*/_react.default.createElement("path", {
4732 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"
4733 }), /*#__PURE__*/_react.default.createElement("path", {
4734 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"
4735 }));
4736 });
4737 var _default = RemoveBackgroundIcon;
4738 exports["default"] = _default;
4739
4740 /***/ }),
4741
4742 /***/ "../modules/ai/assets/js/editor/icons/replace-bg.js":
4743 /*!**********************************************************!*\
4744 !*** ../modules/ai/assets/js/editor/icons/replace-bg.js ***!
4745 \**********************************************************/
4746 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4747
4748 "use strict";
4749
4750
4751 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4752 Object.defineProperty(exports, "__esModule", ({
4753 value: true
4754 }));
4755 exports["default"] = void 0;
4756 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4757 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4758 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4759 var ReplaceBackgroundIcon = _react.default.forwardRef(function (props, ref) {
4760 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4761 viewBox: "0 0 16 16"
4762 }, props, {
4763 ref: ref
4764 }), /*#__PURE__*/_react.default.createElement("path", {
4765 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"
4766 }), /*#__PURE__*/_react.default.createElement("path", {
4767 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"
4768 }), /*#__PURE__*/_react.default.createElement("path", {
4769 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"
4770 }), /*#__PURE__*/_react.default.createElement("path", {
4771 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"
4772 }), /*#__PURE__*/_react.default.createElement("path", {
4773 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"
4774 }), /*#__PURE__*/_react.default.createElement("path", {
4775 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"
4776 }), /*#__PURE__*/_react.default.createElement("path", {
4777 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"
4778 }), /*#__PURE__*/_react.default.createElement("path", {
4779 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"
4780 }), /*#__PURE__*/_react.default.createElement("path", {
4781 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"
4782 }));
4783 });
4784 var _default = ReplaceBackgroundIcon;
4785 exports["default"] = _default;
4786
4787 /***/ }),
4788
4789 /***/ "../modules/ai/assets/js/editor/icons/restore-icon.js":
4790 /*!************************************************************!*\
4791 !*** ../modules/ai/assets/js/editor/icons/restore-icon.js ***!
4792 \************************************************************/
4793 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4794
4795 "use strict";
4796
4797
4798 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4799 Object.defineProperty(exports, "__esModule", ({
4800 value: true
4801 }));
4802 exports["default"] = void 0;
4803 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4804 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4805 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4806 var RestoreIcon = _react.default.forwardRef(function (props, ref) {
4807 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4808 viewBox: "0 0 24 24"
4809 }, props, {
4810 ref: ref
4811 }), /*#__PURE__*/_react.default.createElement("path", {
4812 fillRule: "evenodd",
4813 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",
4814 clipRule: "evenodd"
4815 }));
4816 });
4817 var _default = RestoreIcon;
4818 exports["default"] = _default;
4819
4820 /***/ }),
4821
4822 /***/ "../modules/ai/assets/js/editor/icons/text-icon.js":
4823 /*!*********************************************************!*\
4824 !*** ../modules/ai/assets/js/editor/icons/text-icon.js ***!
4825 \*********************************************************/
4826 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4827
4828 "use strict";
4829
4830
4831 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4832 Object.defineProperty(exports, "__esModule", ({
4833 value: true
4834 }));
4835 exports["default"] = void 0;
4836 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4837 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4838 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4839 var TextIcon = _react.default.forwardRef(function (props, ref) {
4840 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4841 viewBox: "0 0 24 24"
4842 }, props, {
4843 ref: ref
4844 }), /*#__PURE__*/_react.default.createElement("path", {
4845 fillRule: "evenodd",
4846 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",
4847 clipRule: "evenodd"
4848 }), /*#__PURE__*/_react.default.createElement("path", {
4849 fillRule: "evenodd",
4850 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",
4851 clipRule: "evenodd"
4852 }), /*#__PURE__*/_react.default.createElement("path", {
4853 fillRule: "evenodd",
4854 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",
4855 clipRule: "evenodd"
4856 }));
4857 });
4858 var _default = TextIcon;
4859 exports["default"] = _default;
4860
4861 /***/ }),
4862
4863 /***/ "../modules/ai/assets/js/editor/icons/undo-icon.js":
4864 /*!*********************************************************!*\
4865 !*** ../modules/ai/assets/js/editor/icons/undo-icon.js ***!
4866 \*********************************************************/
4867 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4868
4869 "use strict";
4870
4871
4872 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4873 Object.defineProperty(exports, "__esModule", ({
4874 value: true
4875 }));
4876 exports["default"] = void 0;
4877 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4878 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4879 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4880 var UndoIcon = _react.default.forwardRef(function (props, ref) {
4881 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4882 viewBox: "0 0 24 24"
4883 }, props, {
4884 ref: ref
4885 }), /*#__PURE__*/_react.default.createElement("path", {
4886 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"
4887 }));
4888 });
4889 var _default = UndoIcon;
4890 exports["default"] = _default;
4891
4892 /***/ }),
4893
4894 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
4895 /*!*********************************************************!*\
4896 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
4897 \*********************************************************/
4898 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4899
4900 "use strict";
4901
4902
4903 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4904 Object.defineProperty(exports, "__esModule", ({
4905 value: true
4906 }));
4907 exports["default"] = void 0;
4908 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4909 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4910 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4911 var WandIcon = _react.default.forwardRef(function (props, ref) {
4912 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4913 viewBox: "0 0 24 24"
4914 }, props, {
4915 ref: ref
4916 }), /*#__PURE__*/_react.default.createElement("path", {
4917 fillRule: "evenodd",
4918 clipRule: "evenodd",
4919 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"
4920 }), /*#__PURE__*/_react.default.createElement("path", {
4921 fillRule: "evenodd",
4922 clipRule: "evenodd",
4923 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"
4924 }), /*#__PURE__*/_react.default.createElement("path", {
4925 fillRule: "evenodd",
4926 clipRule: "evenodd",
4927 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"
4928 }));
4929 });
4930 var _default = WandIcon;
4931 exports["default"] = _default;
4932
4933 /***/ }),
4934
4935 /***/ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js":
4936 /*!************************************************************!*\
4937 !*** ../modules/ai/assets/js/editor/icons/zoom-in-icon.js ***!
4938 \************************************************************/
4939 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4940
4941 "use strict";
4942
4943
4944 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4945 Object.defineProperty(exports, "__esModule", ({
4946 value: true
4947 }));
4948 exports["default"] = void 0;
4949 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4950 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4951 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4952 var ZoomInIcon = _react.default.forwardRef(function (props, ref) {
4953 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
4954 viewBox: "0 0 24 24"
4955 }, props, {
4956 ref: ref
4957 }), /*#__PURE__*/_react.default.createElement("path", {
4958 fillRule: "evenodd",
4959 clipRule: "evenodd",
4960 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"
4961 }), /*#__PURE__*/_react.default.createElement("path", {
4962 fillRule: "evenodd",
4963 clipRule: "evenodd",
4964 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"
4965 }), /*#__PURE__*/_react.default.createElement("path", {
4966 fillRule: "evenodd",
4967 clipRule: "evenodd",
4968 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"
4969 }), /*#__PURE__*/_react.default.createElement("path", {
4970 fillRule: "evenodd",
4971 clipRule: "evenodd",
4972 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"
4973 }));
4974 });
4975 var _default = ZoomInIcon;
4976 exports["default"] = _default;
4977
4978 /***/ }),
4979
4980 /***/ "../modules/ai/assets/js/editor/page-content.js":
4981 /*!******************************************************!*\
4982 !*** ../modules/ai/assets/js/editor/page-content.js ***!
4983 \******************************************************/
4984 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4985
4986 "use strict";
4987
4988
4989 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4990 Object.defineProperty(exports, "__esModule", ({
4991 value: true
4992 }));
4993 exports["default"] = void 0;
4994 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4995 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4996 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4997 var _formText = _interopRequireDefault(__webpack_require__(/*! ./pages/form-text */ "../modules/ai/assets/js/editor/pages/form-text/index.js"));
4998 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
4999 var _formCode = _interopRequireDefault(__webpack_require__(/*! ./pages/form-code */ "../modules/ai/assets/js/editor/pages/form-code/index.js"));
5000 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
5001 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
5002 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
5003 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
5004 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
5005 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
5006 var _formMedia = _interopRequireDefault(__webpack_require__(/*! ./pages/form-media */ "../modules/ai/assets/js/editor/pages/form-media/index.js"));
5007 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
5008 var _historyTypes = __webpack_require__(/*! ./components/prompt-history/history-types */ "../modules/ai/assets/js/editor/components/prompt-history/history-types.js");
5009 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");
5010 var _promptHistoryContext = __webpack_require__(/*! ./components/prompt-history/context/prompt-history-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-context.js");
5011 var _useUpgradeMessage2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-upgrade-message */ "../modules/ai/assets/js/editor/hooks/use-upgrade-message.js"));
5012 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ./components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
5013 var PageContent = function PageContent(_ref) {
5014 var type = _ref.type,
5015 controlType = _ref.controlType,
5016 onClose = _ref.onClose,
5017 onConnect = _ref.onConnect,
5018 getControlValue = _ref.getControlValue,
5019 setControlValue = _ref.setControlValue,
5020 controlView = _ref.controlView,
5021 additionalOptions = _ref.additionalOptions;
5022 var _useUserInfo = (0, _useUserInfo2.default)(),
5023 isLoading = _useUserInfo.isLoading,
5024 isConnected = _useUserInfo.isConnected,
5025 isGetStarted = _useUserInfo.isGetStarted,
5026 connectUrl = _useUserInfo.connectUrl,
5027 fetchData = _useUserInfo.fetchData,
5028 hasSubscription = _useUserInfo.hasSubscription,
5029 credits = _useUserInfo.credits,
5030 usagePercentage = _useUserInfo.usagePercentage;
5031 var _useUpgradeMessage = (0, _useUpgradeMessage2.default)({
5032 usagePercentage: usagePercentage,
5033 hasSubscription: hasSubscription
5034 }),
5035 showBadge = _useUpgradeMessage.showBadge;
5036 var promptDialogStyleProps = {
5037 sx: {
5038 '& .MuiDialog-container': {
5039 alignItems: 'flex-start',
5040 mt: 'media' === type ? '2.5vh' : '18vh'
5041 },
5042 '& .MuiDialogContent-root': {
5043 willChange: 'height',
5044 transition: 'height 300ms ease-in-out',
5045 position: 'relative'
5046 }
5047 },
5048 PaperProps: {
5049 sx: {
5050 m: 0,
5051 maxHeight: 'media' === type ? '95vh' : '76vh',
5052 height: !isLoading && 'media' === type ? '95vh' : 'auto'
5053 }
5054 }
5055 };
5056 var maybeRenderUpgradeChip = function maybeRenderUpgradeChip() {
5057 if (!showBadge) {
5058 return;
5059 }
5060 return /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
5061 hasSubscription: hasSubscription,
5062 usagePercentage: usagePercentage
5063 });
5064 };
5065 if (isLoading) {
5066 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
5067 onClose: onClose
5068 }, promptDialogStyleProps, {
5069 maxWidth: 'media' === type ? 'lg' : 'sm'
5070 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
5071 onClose: onClose
5072 }), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
5073 dividers: true
5074 }, /*#__PURE__*/_react.default.createElement(_loader.default, null)));
5075 }
5076 if (!isConnected) {
5077 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
5078 onClose: onClose
5079 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
5080 onClose: onClose
5081 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
5082 dividers: true
5083 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
5084 connectUrl: connectUrl,
5085 onSuccess: function onSuccess(data) {
5086 onConnect(data);
5087 fetchData();
5088 }
5089 })));
5090 }
5091 if (!isGetStarted) {
5092 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
5093 onClose: onClose
5094 }, /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Header, {
5095 onClose: onClose
5096 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
5097 dividers: true
5098 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
5099 onSuccess: fetchData
5100 })));
5101 }
5102 if ('media' === type) {
5103 return /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
5104 historyType: _historyTypes.HISTORY_TYPES.IMAGE
5105 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_formMedia.default, {
5106 onClose: onClose,
5107 getControlValue: getControlValue,
5108 controlView: controlView,
5109 additionalOptions: additionalOptions,
5110 credits: credits,
5111 maybeRenderUpgradeChip: maybeRenderUpgradeChip,
5112 DialogProps: promptDialogStyleProps,
5113 hasSubscription: hasSubscription,
5114 usagePercentage: usagePercentage
5115 })));
5116 }
5117 if ('code' === type) {
5118 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
5119 onClose: onClose
5120 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
5121 historyType: _historyTypes.HISTORY_TYPES.CODE
5122 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
5123 onClose: onClose
5124 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
5125 className: "e-ai-dialog-content",
5126 dividers: true
5127 }, /*#__PURE__*/_react.default.createElement(_formCode.default, {
5128 onClose: onClose,
5129 getControlValue: getControlValue,
5130 setControlValue: setControlValue,
5131 additionalOptions: additionalOptions,
5132 credits: credits,
5133 usagePercentage: usagePercentage
5134 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
5135 hasSubscription: hasSubscription,
5136 usagePercentage: usagePercentage,
5137 sx: {
5138 mb: 2
5139 }
5140 }))))));
5141 }
5142 return /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
5143 onClose: onClose
5144 }, promptDialogStyleProps), /*#__PURE__*/_react.default.createElement(_promptHistoryContext.PromptHistoryProvider, {
5145 historyType: _historyTypes.HISTORY_TYPES.TEXT
5146 }, /*#__PURE__*/_react.default.createElement(_promptHistoryActionContext.PromptHistoryActionProvider, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
5147 onClose: onClose
5148 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Content, {
5149 className: "e-ai-dialog-content",
5150 dividers: true
5151 }, /*#__PURE__*/_react.default.createElement(_formText.default, {
5152 type: type,
5153 controlType: controlType,
5154 onClose: onClose,
5155 getControlValue: getControlValue,
5156 setControlValue: setControlValue,
5157 additionalOptions: additionalOptions,
5158 credits: credits,
5159 usagePercentage: usagePercentage
5160 }, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
5161 hasSubscription: hasSubscription,
5162 usagePercentage: usagePercentage,
5163 sx: {
5164 mb: 2
5165 }
5166 }))))));
5167 };
5168 PageContent.propTypes = {
5169 type: _propTypes.default.string,
5170 controlType: _propTypes.default.string,
5171 onClose: _propTypes.default.func.isRequired,
5172 onConnect: _propTypes.default.func.isRequired,
5173 getControlValue: _propTypes.default.func.isRequired,
5174 setControlValue: _propTypes.default.func.isRequired,
5175 additionalOptions: _propTypes.default.object,
5176 controlView: _propTypes.default.object
5177 };
5178 var _default = PageContent;
5179 exports["default"] = _default;
5180
5181 /***/ }),
5182
5183 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
5184 /*!*************************************************************!*\
5185 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
5186 \*************************************************************/
5187 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5188
5189 "use strict";
5190
5191
5192 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5193 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5194 Object.defineProperty(exports, "__esModule", ({
5195 value: true
5196 }));
5197 exports["default"] = void 0;
5198 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5199 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5200 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5201 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5202 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5203 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); }
5204 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; }
5205 var Connect = function Connect(_ref) {
5206 var connectUrl = _ref.connectUrl,
5207 onSuccess = _ref.onSuccess;
5208 var approveButtonRef = (0, _react.useRef)();
5209 (0, _react.useEffect)(function () {
5210 // On local dev (as a standalone app), the connect lib is not loaded.
5211 if (!jQuery.fn.elementorConnect) {
5212 return;
5213 }
5214 jQuery(approveButtonRef.current).elementorConnect({
5215 success: function success(_, data) {
5216 return onSuccess(data);
5217 },
5218 error: function error() {
5219 throw new Error('Elementor AI: Failed to connect.');
5220 }
5221 });
5222 }, []);
5223 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5224 alignItems: "center",
5225 gap: 2
5226 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5227 sx: {
5228 color: 'text.primary',
5229 fontSize: '60px',
5230 mb: 1
5231 }
5232 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5233 variant: "h4",
5234 sx: {
5235 color: 'text.primary'
5236 }
5237 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5238 variant: "body2"
5239 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5240 variant: "caption",
5241 sx: {
5242 maxWidth: 520,
5243 textAlign: 'center'
5244 }
5245 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5246 href: "https://go.elementor.com/ai-terms/",
5247 target: "_blank",
5248 color: "info.main"
5249 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5250 href: "https://go.elementor.com/ai-privacy-policy/",
5251 target: "_blank",
5252 color: "info.main"
5253 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5254 ref: approveButtonRef,
5255 href: connectUrl,
5256 variant: "contained",
5257 sx: {
5258 mt: 1,
5259 '&:hover': {
5260 color: 'primary.contrastText'
5261 }
5262 }
5263 }, (0, _i18n.__)('Connect', 'elementor')));
5264 };
5265 Connect.propTypes = {
5266 connectUrl: _propTypes.default.string.isRequired,
5267 onSuccess: _propTypes.default.func.isRequired
5268 };
5269 var _default = Connect;
5270 exports["default"] = _default;
5271
5272 /***/ }),
5273
5274 /***/ "../modules/ai/assets/js/editor/pages/form-code/code-block.js":
5275 /*!********************************************************************!*\
5276 !*** ../modules/ai/assets/js/editor/pages/form-code/code-block.js ***!
5277 \********************************************************************/
5278 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5279
5280 "use strict";
5281
5282
5283 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5284 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5285 Object.defineProperty(exports, "__esModule", ({
5286 value: true
5287 }));
5288 exports["default"] = void 0;
5289 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5290 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5291 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5292 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5293 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5294 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5295 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
5296 var _excluded = ["node", "inline", "children", "defaultValue", "onInsert"];
5297 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); }
5298 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; }
5299 var CodeBlock = function CodeBlock(_ref) {
5300 var node = _ref.node,
5301 inline = _ref.inline,
5302 children = _ref.children,
5303 defaultValue = _ref.defaultValue,
5304 onInsert = _ref.onInsert,
5305 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5306 var codeBlockInput = (0, _react.useRef)(null);
5307 if (inline) {
5308 return /*#__PURE__*/_react.default.createElement("code", props);
5309 }
5310 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
5311 sx: {
5312 position: 'relative'
5313 },
5314 dir: "ltr"
5315 }, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
5316 fullWidth: true,
5317 ref: codeBlockInput,
5318 defaultValue: children[0],
5319 sx: {
5320 mb: 1
5321 },
5322 helperText: (0, _i18n.__)('Code generated by AI may be inaccurate.', 'elementor')
5323 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5324 size: "small",
5325 variant: "contained",
5326 onClick: function onClick() {
5327 return onInsert(defaultValue + '\n' + codeBlockInput.current.value);
5328 },
5329 sx: {
5330 position: 'absolute',
5331 right: '11px /* @noflip */',
5332 bottom: '44px'
5333 }
5334 }, (0, _i18n.__)('Insert', 'elementor')));
5335 };
5336 CodeBlock.propTypes = {
5337 node: _propTypes.default.object,
5338 inline: _propTypes.default.bool,
5339 children: _propTypes.default.arrayOf(_propTypes.default.node).isRequired,
5340 defaultValue: _propTypes.default.string,
5341 onInsert: _propTypes.default.func.isRequired
5342 };
5343 var _default = CodeBlock;
5344 exports["default"] = _default;
5345
5346 /***/ }),
5347
5348 /***/ "../modules/ai/assets/js/editor/pages/form-code/index.js":
5349 /*!***************************************************************!*\
5350 !*** ../modules/ai/assets/js/editor/pages/form-code/index.js ***!
5351 \***************************************************************/
5352 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5353
5354 "use strict";
5355
5356
5357 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5358 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5359 Object.defineProperty(exports, "__esModule", ({
5360 value: true
5361 }));
5362 exports["default"] = void 0;
5363 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5364 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5365 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5366 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5367 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5368 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5369 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5370 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5371 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5372 var _reactMarkdown = _interopRequireDefault(__webpack_require__(/*! react-markdown */ "../node_modules/react-markdown/index.js"));
5373 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
5374 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
5375 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
5376 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
5377 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5378 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
5379 var _codeBlock = _interopRequireDefault(__webpack_require__(/*! ./code-block */ "../modules/ai/assets/js/editor/pages/form-code/code-block.js"));
5380 var _useCodePrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-code-prompt */ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js"));
5381 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");
5382 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
5383 var _requestsIds = __webpack_require__(/*! ../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5384 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
5385 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); }
5386 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; }
5387 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; }
5388 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; }
5389 var CodeDisplayWrapper = (0, _ui.styled)(_ui.Box)(function () {
5390 return {
5391 '& p': {
5392 mb: '10px',
5393 fontSize: '13px',
5394 lineHeight: '1.5'
5395 },
5396 '& pre': {
5397 position: 'relative'
5398 },
5399 '& textarea': {
5400 fontSize: '13px',
5401 lineHeight: '1.7'
5402 }
5403 };
5404 });
5405 var FormCode = function FormCode(_ref) {
5406 var onClose = _ref.onClose,
5407 getControlValue = _ref.getControlValue,
5408 setControlValue = _ref.setControlValue,
5409 additionalOptions = _ref.additionalOptions,
5410 credits = _ref.credits,
5411 children = _ref.children;
5412 var _useCodePrompt = (0, _useCodePrompt2.default)(_objectSpread(_objectSpread({}, additionalOptions), {}, {
5413 credits: credits
5414 })),
5415 data = _useCodePrompt.data,
5416 isLoading = _useCodePrompt.isLoading,
5417 error = _useCodePrompt.error,
5418 reset = _useCodePrompt.reset,
5419 send = _useCodePrompt.send,
5420 sendUsageData = _useCodePrompt.sendUsageData;
5421 var _useState = (0, _react.useState)(''),
5422 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5423 prompt = _useState2[0],
5424 setPrompt = _useState2[1];
5425 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
5426 setGenerate = _useRequestIds.setGenerate;
5427 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
5428 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
5429 handler: function handler(action) {
5430 reset();
5431 setPrompt(action.data);
5432 }
5433 }]);
5434 var lastRun = (0, _react.useRef)(function () {});
5435 var autocompleteItems = _actionsData.codeHtmlAutocomplete;
5436 var promptLibraryLink = '';
5437 if ('css' === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.codeLanguage)) {
5438 autocompleteItems = _actionsData.codeCssAutocomplete;
5439 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-css/';
5440 } else if (additionalOptions !== null && additionalOptions !== void 0 && additionalOptions.htmlMarkup) {
5441 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-html/';
5442 } else {
5443 promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-custom-code/';
5444 }
5445 var showSuggestions = !prompt;
5446 var handleSubmit = /*#__PURE__*/function () {
5447 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
5448 return _regenerator.default.wrap(function _callee$(_context) {
5449 while (1) switch (_context.prev = _context.next) {
5450 case 0:
5451 event.preventDefault();
5452 setGenerate();
5453 lastRun.current = function () {
5454 return send({
5455 prompt: prompt
5456 });
5457 };
5458 lastRun.current();
5459 case 4:
5460 case "end":
5461 return _context.stop();
5462 }
5463 }, _callee);
5464 }));
5465 return function handleSubmit(_x) {
5466 return _ref2.apply(this, arguments);
5467 };
5468 }();
5469 var applyPrompt = function applyPrompt(inputText) {
5470 sendUsageData();
5471 setControlValue(inputText);
5472 onClose();
5473 };
5474 if (isLoading) {
5475 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
5476 }
5477 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
5478 error: error,
5479 onRetry: lastRun.current,
5480 sx: {
5481 mb: 2.5
5482 }
5483 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
5484 component: "form",
5485 onSubmit: handleSubmit
5486 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5487 sx: {
5488 pb: 1.5
5489 }
5490 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
5491 placeholder: (0, _i18n.__)('Describe the code you want to use...', 'elementor'),
5492 name: "prompt",
5493 value: prompt,
5494 color: "secondary",
5495 onChange: function onChange(event) {
5496 return setPrompt(event.target.value);
5497 }
5498 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
5499 suggestions: autocompleteItems,
5500 onSelect: setPrompt
5501 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
5502 libraryLink: promptLibraryLink
5503 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5504 direction: "row",
5505 alignItems: "center",
5506 sx: {
5507 py: 1.5,
5508 mt: 4
5509 }
5510 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5511 direction: "row",
5512 justifyContent: "flex-end",
5513 flexGrow: 1
5514 }, /*#__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, {
5515 components: {
5516 code: function code(props) {
5517 return /*#__PURE__*/_react.default.createElement(_codeBlock.default, (0, _extends2.default)({}, props, {
5518 defaultValue: getControlValue(),
5519 onInsert: applyPrompt
5520 }));
5521 }
5522 }
5523 }, data.result), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
5524 introductionKey: "ai-context-code-promotion"
5525 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5526 direction: "row",
5527 alignItems: "center",
5528 sx: {
5529 mt: 4
5530 }
5531 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5532 direction: "row",
5533 gap: 1,
5534 justifyContent: "flex-end",
5535 flexGrow: 1
5536 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
5537 size: "small",
5538 color: "secondary",
5539 variant: "text",
5540 onClick: reset
5541 }, (0, _i18n.__)('New prompt', 'elementor'))))));
5542 };
5543 FormCode.propTypes = {
5544 onClose: _propTypes.default.func.isRequired,
5545 getControlValue: _propTypes.default.func.isRequired,
5546 setControlValue: _propTypes.default.func.isRequired,
5547 additionalOptions: _propTypes.default.shape({
5548 codeLanguage: _propTypes.default.string,
5549 htmlMarkup: _propTypes.default.string,
5550 elementId: _propTypes.default.string,
5551 initialCredits: _propTypes.default.number
5552 }),
5553 credits: _propTypes.default.number,
5554 children: _propTypes.default.node
5555 };
5556 var _default = FormCode;
5557 exports["default"] = _default;
5558
5559 /***/ }),
5560
5561 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
5562 /*!**************************************************************************!*\
5563 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
5564 \**************************************************************************/
5565 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5566
5567 "use strict";
5568
5569
5570 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5571 Object.defineProperty(exports, "__esModule", ({
5572 value: true
5573 }));
5574 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
5575 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5576 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5577 var MODE_LAYOUT = 'layout';
5578 exports.MODE_LAYOUT = MODE_LAYOUT;
5579 var MODE_VARIATION = 'variation';
5580 exports.MODE_VARIATION = MODE_VARIATION;
5581 var LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
5582 exports.LAYOUT_APP_MODES = LAYOUT_APP_MODES;
5583 var ConfigContext = _react.default.createContext({});
5584 var useConfig = function useConfig() {
5585 return _react.default.useContext(ConfigContext);
5586 };
5587 exports.useConfig = useConfig;
5588 var ConfigProvider = function ConfigProvider(props) {
5589 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
5590 value: {
5591 mode: props.mode,
5592 attachmentsTypes: props.attachmentsTypes,
5593 onClose: props.onClose,
5594 onConnect: props.onConnect,
5595 onData: props.onData,
5596 onInsert: props.onInsert,
5597 onSelect: props.onSelect,
5598 onGenerate: props.onGenerate,
5599 currentContext: props.currentContext,
5600 hasPro: props.hasPro
5601 }
5602 }, props.children);
5603 };
5604 exports.ConfigProvider = ConfigProvider;
5605 ConfigProvider.propTypes = {
5606 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
5607 children: _propTypes.default.node.isRequired,
5608 attachmentsTypes: _propTypes.default.object.isRequired,
5609 onClose: _propTypes.default.func.isRequired,
5610 onConnect: _propTypes.default.func.isRequired,
5611 onData: _propTypes.default.func.isRequired,
5612 onInsert: _propTypes.default.func.isRequired,
5613 onSelect: _propTypes.default.func.isRequired,
5614 onGenerate: _propTypes.default.func.isRequired,
5615 currentContext: _propTypes.default.object,
5616 hasPro: _propTypes.default.bool
5617 };
5618 var _default = ConfigContext;
5619 exports["default"] = _default;
5620
5621 /***/ }),
5622
5623 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js":
5624 /*!*********************************************************************************!*\
5625 !*** ../modules/ai/assets/js/editor/pages/form-media/components/back-button.js ***!
5626 \*********************************************************************************/
5627 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5628
5629 "use strict";
5630
5631
5632 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5633 Object.defineProperty(exports, "__esModule", ({
5634 value: true
5635 }));
5636 exports["default"] = void 0;
5637 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5638 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5639 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5640 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5641 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5642 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5643 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
5644 var _excluded = ["children"];
5645 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
5646 var BackButton = function BackButton(_ref) {
5647 var children = _ref.children,
5648 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5649 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5650 size: "small",
5651 variant: "text",
5652 color: "secondary",
5653 startIcon: /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)
5654 }, props), children || (0, _i18n.__)('Back', 'elementor'));
5655 };
5656 BackButton.propTypes = {
5657 children: _propTypes.default.node
5658 };
5659 var _default = BackButton;
5660 exports["default"] = _default;
5661
5662 /***/ }),
5663
5664 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5665 /*!************************************************************************************!*\
5666 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.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 _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5681 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5682 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5683 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5684 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5685 var _excluded = ["isLoading"];
5686 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5687 var EnhanceButton = function EnhanceButton(_ref) {
5688 var isLoading = _ref.isLoading,
5689 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5690 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5691 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5692 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5693 component: "span",
5694 sx: {
5695 cursor: props.disabled ? 'default' : 'pointer'
5696 }
5697 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5698 size: "small",
5699 color: "secondary"
5700 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5701 color: "secondary",
5702 size: 20
5703 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5704 fontSize: "small"
5705 }))));
5706 };
5707 EnhanceButton.propTypes = {
5708 disabled: _propTypes.default.bool,
5709 isLoading: _propTypes.default.bool
5710 };
5711 var _default = EnhanceButton;
5712 exports["default"] = _default;
5713
5714 /***/ }),
5715
5716 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js":
5717 /*!*****************************************************************************!*\
5718 !*** ../modules/ai/assets/js/editor/pages/form-media/components/gallery.js ***!
5719 \*****************************************************************************/
5720 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5721
5722 "use strict";
5723
5724
5725 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5726 Object.defineProperty(exports, "__esModule", ({
5727 value: true
5728 }));
5729 exports["default"] = void 0;
5730 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5731 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5732 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5733 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5734 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5735 var _overlay = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay */ "../modules/ai/assets/js/editor/components/ui/overlay.js"));
5736 var _overlayBar = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar */ "../modules/ai/assets/js/editor/components/ui/overlay-bar.js"));
5737 var _overlayBarText = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/overlay-bar-text */ "../modules/ai/assets/js/editor/components/ui/overlay-bar-text.js"));
5738 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
5739 var _excluded = ["children"],
5740 _excluded2 = ["alt", "src", "text", "children", "aspectRatio", "variant", "OverlayBarProps"];
5741 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
5742 var Gallery = function Gallery(_ref) {
5743 var children = _ref.children,
5744 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5745 return /*#__PURE__*/_react.default.createElement(_ui.ImageList, (0, _extends2.default)({
5746 width: "100%",
5747 cols: 2,
5748 gap: 24
5749 }, props), children);
5750 };
5751 Gallery.propTypes = {
5752 children: _propTypes.default.node
5753 };
5754 var GalleryImage = function GalleryImage(_ref2) {
5755 var alt = _ref2.alt,
5756 src = _ref2.src,
5757 text = _ref2.text,
5758 children = _ref2.children,
5759 _ref2$aspectRatio = _ref2.aspectRatio,
5760 aspectRatio = _ref2$aspectRatio === void 0 ? '1:1' : _ref2$aspectRatio,
5761 _ref2$variant = _ref2.variant,
5762 variant = _ref2$variant === void 0 ? 'contained' : _ref2$variant,
5763 _ref2$OverlayBarProps = _ref2.OverlayBarProps,
5764 OverlayBarProps = _ref2$OverlayBarProps === void 0 ? {} : _ref2$OverlayBarProps,
5765 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
5766 var style = {};
5767 if ('thumbnail' === variant) {
5768 style.width = '100%';
5769 style.maxHeight = '238px';
5770 style.minWidth = '230px';
5771 } else {
5772 style.width = 'auto';
5773 style.height = 'auto';
5774 style.maxWidth = '100%';
5775 style.maxHeight = '1:1' === aspectRatio ? 'initial' : '100%';
5776 style.objectFit = 'contain';
5777 style.aspectRatio = aspectRatio.replace(':', ' / ');
5778 }
5779 return /*#__PURE__*/_react.default.createElement(_ui.ImageListItem, props, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5780 display: "flex",
5781 justifyContent: "center",
5782 alignItems: "center",
5783 sx: {
5784 bgcolor: 'action.selected',
5785 height: 'contained' === variant ? 336 : 'auto',
5786 position: 'relative',
5787 overflow: 'hidden'
5788 }
5789 }, /*#__PURE__*/_react.default.createElement("img", {
5790 alt: alt,
5791 src: src,
5792 style: style
5793 })), children && /*#__PURE__*/_react.default.createElement(_overlay.default, null, /*#__PURE__*/_react.default.createElement(_overlayBar.default, (0, _extends2.default)({
5794 gap: 1,
5795 position: "bottom"
5796 }, OverlayBarProps), text && /*#__PURE__*/_react.default.createElement(_overlayBarText.default, null, text), children)));
5797 };
5798 GalleryImage.propTypes = {
5799 alt: _propTypes.default.string,
5800 src: _propTypes.default.string,
5801 text: _propTypes.default.string,
5802 children: _propTypes.default.node,
5803 BoxProps: _propTypes.default.object,
5804 OverlayBarProps: _propTypes.default.object,
5805 aspectRatio: _propTypes.default.oneOf(aspectRatios),
5806 variant: _propTypes.default.oneOf(['contained', 'thumbnail'])
5807 };
5808 Gallery.Image = GalleryImage;
5809 var _default = Gallery;
5810 exports["default"] = _default;
5811
5812 /***/ }),
5813
5814 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js":
5815 /*!*******************************************************************************************!*\
5816 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js ***!
5817 \*******************************************************************************************/
5818 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5819
5820 "use strict";
5821
5822
5823 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5824 Object.defineProperty(exports, "__esModule", ({
5825 value: true
5826 }));
5827 exports["default"] = void 0;
5828 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5829 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5830 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5831 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5832 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
5833 var GenerateAgainSubmit = function GenerateAgainSubmit(props) {
5834 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5835 fullWidth: true,
5836 type: "submit",
5837 variant: "contained",
5838 color: "secondary",
5839 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null),
5840 sx: {
5841 // TODO: Remove on @elementor/ui 1.4.51.
5842 color: 'background.paper'
5843 }
5844 }, props), (0, _i18n.__)('Generate again', 'elementor'));
5845 };
5846 var _default = GenerateAgainSubmit;
5847 exports["default"] = _default;
5848
5849 /***/ }),
5850
5851 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js":
5852 /*!********************************************************************************************!*\
5853 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js ***!
5854 \********************************************************************************************/
5855 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5856
5857 "use strict";
5858
5859
5860 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5861 Object.defineProperty(exports, "__esModule", ({
5862 value: true
5863 }));
5864 exports["default"] = void 0;
5865 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5866 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5867 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
5868 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5869 var _voicePromotionAlert = _interopRequireDefault(__webpack_require__(/*! ../../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js"));
5870 var GenerateImagesSubmit = function GenerateImagesSubmit(props) {
5871 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_generateButton.default, (0, _extends2.default)({
5872 size: "medium",
5873 fullWidth: true
5874 }, props), (0, _i18n.__)('Generate images', 'elementor')), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.default, {
5875 introductionKey: "ai-context-media-promotion"
5876 }));
5877 };
5878 var _default = GenerateImagesSubmit;
5879 exports["default"] = _default;
5880
5881 /***/ }),
5882
5883 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js":
5884 /*!*************************************************************************************!*\
5885 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js ***!
5886 \*************************************************************************************/
5887 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5888
5889 "use strict";
5890
5891
5892 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5893 Object.defineProperty(exports, "__esModule", ({
5894 value: true
5895 }));
5896 exports["default"] = void 0;
5897 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5898 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5899 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5900 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5901 var GenerateLoader = function GenerateLoader() {
5902 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5903 alignItems: "center",
5904 justifyContent: "center",
5905 gap: 2,
5906 width: "100%"
5907 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5908 sx: {
5909 color: 'text.primary',
5910 fontSize: '60px',
5911 mb: 1
5912 }
5913 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5914 variant: "h5",
5915 sx: {
5916 color: 'text.primary'
5917 }
5918 }, (0, _i18n.__)('Bringing your vision to life...', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5919 variant: "body1"
5920 }, (0, _i18n.__)('Hold tight, painting dreams might take a moment.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Box, {
5921 sx: {
5922 px: 1.5,
5923 py: 2.5,
5924 width: '100%',
5925 maxWidth: 600
5926 }
5927 }, /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, {
5928 color: "inherit"
5929 })));
5930 };
5931 var _default = GenerateLoader;
5932 exports["default"] = _default;
5933
5934 /***/ }),
5935
5936 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5937 /*!*************************************************************************************!*\
5938 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5939 \*************************************************************************************/
5940 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5941
5942 "use strict";
5943
5944
5945 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5946 Object.defineProperty(exports, "__esModule", ({
5947 value: true
5948 }));
5949 exports["default"] = void 0;
5950 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5951 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5952 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5953 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5954 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5955 var GenerateSubmit = function GenerateSubmit(props) {
5956 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5957 fullWidth: true,
5958 size: "medium",
5959 type: "submit",
5960 variant: "contained"
5961 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5962 };
5963 GenerateSubmit.propTypes = {
5964 children: _propTypes.default.node
5965 };
5966 var _default = GenerateSubmit;
5967 exports["default"] = _default;
5968
5969 /***/ }),
5970
5971 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js":
5972 /*!***********************************************************************************!*\
5973 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js ***!
5974 \***********************************************************************************/
5975 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5976
5977 "use strict";
5978
5979
5980 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5981 Object.defineProperty(exports, "__esModule", ({
5982 value: true
5983 }));
5984 exports["default"] = void 0;
5985 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5986 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5987 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5988 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5989 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5990 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5991 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5992 var _copyIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-icon */ "../modules/ai/assets/js/editor/icons/copy-icon.js"));
5993 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
5994 var _downloadIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/download-icon */ "../modules/ai/assets/js/editor/icons/download-icon.js"));
5995 var _zoomInIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/zoom-in-icon */ "../modules/ai/assets/js/editor/icons/zoom-in-icon.js"));
5996 var _excluded = ["children"],
5997 _excluded2 = ["sx"],
5998 _excluded3 = ["sx"],
5999 _excluded4 = ["sx"],
6000 _excluded5 = ["sx"];
6001 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6002 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6003 var StyledEditSvgIcon = (0, _ui.withDirection)(_editIcon.default);
6004 var StyledCopySvgIcon = (0, _ui.withDirection)(_copyIcon.default);
6005 var StyledZoomInIcon = (0, _ui.withDirection)(_zoomInIcon.default);
6006 var Tooltip = function Tooltip(props) {
6007 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, (0, _extends2.default)({
6008 PopperProps: {
6009 sx: {
6010 '&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {
6011 mt: 1
6012 }
6013 }
6014 }
6015 }, props));
6016 };
6017 var ImageActions = function ImageActions(_ref) {
6018 var children = _ref.children,
6019 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6020 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6021 display: "flex",
6022 justifyContent: "space-between",
6023 alignItems: "center",
6024 width: "100%",
6025 gap: 1
6026 }, props), children);
6027 };
6028 ImageActions.propTypes = {
6029 children: _propTypes.default.node
6030 };
6031 var UseImage = function UseImage(_ref2) {
6032 var sx = _ref2.sx,
6033 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6034 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6035 size: "small",
6036 variant: "contained",
6037 startIcon: /*#__PURE__*/_react.default.createElement(_downloadIcon.default, null)
6038 }, props), (0, _i18n.__)('Use Image', 'elementor'));
6039 };
6040 UseImage.propTypes = {
6041 sx: _propTypes.default.object
6042 };
6043 var EditImage = function EditImage(props) {
6044 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6045 size: "small",
6046 color: "secondary",
6047 startIcon: /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)
6048 }, props), (0, _i18n.__)('Edit', 'elementor'));
6049 };
6050 var EditIcon = function EditIcon(_ref3) {
6051 var _ref3$sx = _ref3.sx,
6052 sx = _ref3$sx === void 0 ? {} : _ref3$sx,
6053 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6054 return /*#__PURE__*/_react.default.createElement(Tooltip, {
6055 title: (0, _i18n.__)('Edit', 'elementor')
6056 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
6057 sx: _objectSpread({
6058 mr: -1.5,
6059 ml: 0.5,
6060 color: 'common.white',
6061 '&:hover': {
6062 color: 'common.white'
6063 }
6064 }, sx)
6065 }, props), /*#__PURE__*/_react.default.createElement(StyledEditSvgIcon, null)));
6066 };
6067 EditIcon.propTypes = {
6068 sx: _propTypes.default.object
6069 };
6070 var ZoomIcon = function ZoomIcon(_ref4) {
6071 var _ref4$sx = _ref4.sx,
6072 sx = _ref4$sx === void 0 ? {} : _ref4$sx,
6073 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
6074 return /*#__PURE__*/_react.default.createElement(Tooltip, {
6075 title: (0, _i18n.__)('Zoom', 'elementor')
6076 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
6077 color: "secondary",
6078 "aria-label": (0, _i18n.__)('Zoom', 'elementor'),
6079 sx: _objectSpread({
6080 color: 'common.white',
6081 '&:hover': {
6082 color: 'common.white'
6083 }
6084 }, sx)
6085 }, props), /*#__PURE__*/_react.default.createElement(StyledZoomInIcon, null)));
6086 };
6087 ZoomIcon.propTypes = {
6088 sx: _propTypes.default.object
6089 };
6090 var CopyIcon = function CopyIcon(_ref5) {
6091 var _ref5$sx = _ref5.sx,
6092 sx = _ref5$sx === void 0 ? {} : _ref5$sx,
6093 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
6094 return /*#__PURE__*/_react.default.createElement(Tooltip, {
6095 title: (0, _i18n.__)('Copy prompt', 'elementor')
6096 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
6097 sx: _objectSpread({
6098 mr: -1.5,
6099 ml: 0.5,
6100 color: 'common.white',
6101 '&:hover': {
6102 color: 'common.white'
6103 }
6104 }, sx)
6105 }, props), /*#__PURE__*/_react.default.createElement(StyledCopySvgIcon, null)));
6106 };
6107 CopyIcon.propTypes = {
6108 sx: _propTypes.default.object
6109 };
6110 ImageActions.UseImage = UseImage;
6111 ImageActions.EditImage = EditImage;
6112 ImageActions.EditIcon = EditIcon;
6113 ImageActions.ZoomIcon = ZoomIcon;
6114 ImageActions.CopyIcon = CopyIcon;
6115 var _default = ImageActions;
6116 exports["default"] = _default;
6117
6118 /***/ }),
6119
6120 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js":
6121 /*!********************************************************************************!*\
6122 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-form.js ***!
6123 \********************************************************************************/
6124 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6125
6126 "use strict";
6127
6128
6129 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6130 Object.defineProperty(exports, "__esModule", ({
6131 value: true
6132 }));
6133 exports["default"] = void 0;
6134 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6135 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6136 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6137 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6138 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6139 var _excluded = ["children"];
6140 var ImageForm = function ImageForm(_ref) {
6141 var children = _ref.children,
6142 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6143 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6144 component: "form"
6145 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6146 spacing: 2.5
6147 }, children));
6148 };
6149 ImageForm.propTypes = {
6150 children: _propTypes.default.node
6151 };
6152 var _default = ImageForm;
6153 exports["default"] = _default;
6154
6155 /***/ }),
6156
6157 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js":
6158 /*!****************************************************************************************!*\
6159 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js ***!
6160 \****************************************************************************************/
6161 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6162
6163 "use strict";
6164
6165
6166 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6167 Object.defineProperty(exports, "__esModule", ({
6168 value: true
6169 }));
6170 exports["default"] = void 0;
6171 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6172 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6173 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6174 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6175 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6176 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6177 var imageRatios = Object.entries(_constants.IMAGE_ASPECT_RATIO).map(function (_ref) {
6178 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
6179 value = _ref2[0],
6180 label = _ref2[1].label;
6181 return {
6182 label: label,
6183 value: value
6184 };
6185 });
6186 var ImageRatioSelect = function ImageRatioSelect(props) {
6187 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6188 options: imageRatios,
6189 wrapperStyle: {
6190 width: '100%'
6191 },
6192 label: (0, _i18n.__)('Aspect ratio', 'elementor')
6193 }, props));
6194 };
6195 var _default = ImageRatioSelect;
6196 exports["default"] = _default;
6197
6198 /***/ }),
6199
6200 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js":
6201 /*!**********************************************************************************!*\
6202 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js ***!
6203 \**********************************************************************************/
6204 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6205
6206 "use strict";
6207
6208
6209 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6210 Object.defineProperty(exports, "__esModule", ({
6211 value: true
6212 }));
6213 exports["default"] = void 0;
6214 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6215 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6216 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6217 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6218 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6219 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6220 var _chevronLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-left-icon */ "../modules/ai/assets/js/editor/icons/chevron-left-icon.js"));
6221 var _chevronRightIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/chevron-right-icon */ "../modules/ai/assets/js/editor/icons/chevron-right-icon.js"));
6222 var _excluded = ["onPrev", "onNext", "children"],
6223 _excluded2 = ["children", "startAction", "sx"],
6224 _excluded3 = ["src", "alt"];
6225 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; }
6226 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; }
6227 var StyledChevronLeftIcon = (0, _ui.withDirection)(_chevronLeftIcon.default);
6228 var StyledChevronRightIcon = (0, _ui.withDirection)(_chevronRightIcon.default);
6229 var ImageSlider = function ImageSlider(_ref) {
6230 var onPrev = _ref.onPrev,
6231 onNext = _ref.onNext,
6232 children = _ref.children,
6233 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6234 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6235 alignItems: "flex-start",
6236 spacing: 0.5
6237 }, props), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6238 direction: "row",
6239 spacing: 2.5,
6240 alignSelf: "center",
6241 alignItems: "center"
6242 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6243 onClick: onPrev,
6244 size: "large",
6245 color: "secondary"
6246 }, /*#__PURE__*/_react.default.createElement(StyledChevronLeftIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6247 spacing: 0.5,
6248 justifyContent: "space-around",
6249 alignItems: "center"
6250 }, children), /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
6251 onClick: onNext,
6252 size: "large",
6253 color: "secondary"
6254 }, /*#__PURE__*/_react.default.createElement(StyledChevronRightIcon, null))));
6255 };
6256 ImageSlider.propTypes = {
6257 onPrev: _propTypes.default.func.isRequired,
6258 onNext: _propTypes.default.func.isRequired,
6259 children: _propTypes.default.node.isRequired
6260 };
6261 var Actions = function Actions(_ref2) {
6262 var children = _ref2.children,
6263 startAction = _ref2.startAction,
6264 _ref2$sx = _ref2.sx,
6265 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6266 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6267 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6268 display: "flex",
6269 justifyContent: "flex-end",
6270 alignItems: "center",
6271 width: "100%"
6272 }, props, {
6273 sx: _objectSpread({
6274 mb: 1.5
6275 }, sx)
6276 }), startAction, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6277 direction: "row",
6278 spacing: 2,
6279 justifyContent: "flex-end",
6280 flexGrow: 1,
6281 width: "100%"
6282 }, children));
6283 };
6284 Actions.propTypes = {
6285 sx: _propTypes.default.object,
6286 startAction: _propTypes.default.node,
6287 children: _propTypes.default.node.isRequired
6288 };
6289 var Image = function Image(_ref3) {
6290 var src = _ref3.src,
6291 _ref3$alt = _ref3.alt,
6292 alt = _ref3$alt === void 0 ? '' : _ref3$alt,
6293 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6294 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6295 display: "flex",
6296 justifyContent: "center",
6297 alignItems: "center"
6298 }, /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({
6299 src: src,
6300 alt: alt
6301 }, props)));
6302 };
6303 Image.propTypes = {
6304 alt: _propTypes.default.string,
6305 src: _propTypes.default.string.isRequired
6306 };
6307 ImageSlider.Actions = Actions;
6308 ImageSlider.Image = Image;
6309 var _default = ImageSlider;
6310 exports["default"] = _default;
6311
6312 /***/ }),
6313
6314 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js":
6315 /*!*******************************************************************************************!*\
6316 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js ***!
6317 \*******************************************************************************************/
6318 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6319
6320 "use strict";
6321
6322
6323 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6324 Object.defineProperty(exports, "__esModule", ({
6325 value: true
6326 }));
6327 exports["default"] = void 0;
6328 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6329 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6330 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6331 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6332 var ImageStrengthSlider = function ImageStrengthSlider(props) {
6333 return /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
6334 sx: {
6335 width: '100%'
6336 }
6337 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, (0, _extends2.default)({
6338 marks: true,
6339 min: 0,
6340 step: 10,
6341 max: 100,
6342 color: "secondary",
6343 id: "image_strength",
6344 name: "image_strength",
6345 valueLabelDisplay: "auto",
6346 getAriaValueText: function getAriaValueText(value) {
6347 return "".concat(value, "%");
6348 },
6349 "aria-label": (0, _i18n.__)('Reference strength', 'elementor')
6350 }, props)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
6351 display: "flex",
6352 justifyContent: "space-between",
6353 alignItems: "center"
6354 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6355 variant: "caption"
6356 }, (0, _i18n.__)('Prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6357 variant: "caption"
6358 }, (0, _i18n.__)('Reference image', 'elementor'))));
6359 };
6360 var _default = ImageStrengthSlider;
6361 exports["default"] = _default;
6362
6363 /***/ }),
6364
6365 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js":
6366 /*!****************************************************************************************!*\
6367 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js ***!
6368 \****************************************************************************************/
6369 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6370
6371 "use strict";
6372
6373
6374 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6375 Object.defineProperty(exports, "__esModule", ({
6376 value: true
6377 }));
6378 exports["default"] = void 0;
6379 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6380 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6381 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6382 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6383 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6384 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6385 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6386 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6387 var _excluded = ["type"];
6388 var ImageStyleSelect = function ImageStyleSelect(_ref) {
6389 var _IMAGE_PROMPT_CATEGOR;
6390 var _ref$type = _ref.type,
6391 type = _ref$type === void 0 ? '' : _ref$type,
6392 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6393 // The image styles are determined by the selected type.
6394 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) {
6395 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
6396 value = _ref3[0],
6397 label = _ref3[1];
6398 return {
6399 label: label,
6400 value: value
6401 };
6402 });
6403 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6404 options: imageStyles,
6405 wrapperStyle: {
6406 width: '100%'
6407 },
6408 label: (0, _i18n.__)('Style', 'elementor')
6409 }, props));
6410 };
6411 ImageStyleSelect.propTypes = {
6412 type: _propTypes.default.string.isRequired
6413 };
6414 var _default = ImageStyleSelect;
6415 exports["default"] = _default;
6416
6417 /***/ }),
6418
6419 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js":
6420 /*!***************************************************************************************!*\
6421 !*** ../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js ***!
6422 \***************************************************************************************/
6423 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6424
6425 "use strict";
6426
6427
6428 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6429 Object.defineProperty(exports, "__esModule", ({
6430 value: true
6431 }));
6432 exports["default"] = void 0;
6433 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6434 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6435 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
6436 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
6437 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6438 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
6439 var imageTypes = Object.entries(_constants.IMAGE_PROMPT_CATEGORIES).map(function (_ref) {
6440 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
6441 key = _ref2[0],
6442 label = _ref2[1].label;
6443 return {
6444 label: label,
6445 value: key
6446 };
6447 });
6448 var ImageTypeSelect = function ImageTypeSelect(props) {
6449 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, (0, _extends2.default)({
6450 options: imageTypes,
6451 wrapperStyle: {
6452 width: '100%'
6453 },
6454 label: (0, _i18n.__)('Image type', 'elementor')
6455 }, props));
6456 };
6457 var _default = ImageTypeSelect;
6458 exports["default"] = _default;
6459
6460 /***/ }),
6461
6462 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js":
6463 /*!************************************************************************************!*\
6464 !*** ../modules/ai/assets/js/editor/pages/form-media/components/images-display.js ***!
6465 \************************************************************************************/
6466 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6467
6468 "use strict";
6469
6470
6471 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6472 Object.defineProperty(exports, "__esModule", ({
6473 value: true
6474 }));
6475 exports["default"] = void 0;
6476 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6477 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6478 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6479 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6480 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6481 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6482 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
6483 var _useImageNavigation2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-navigation */ "../modules/ai/assets/js/editor/hooks/use-image-navigation.js"));
6484 var _imageSlider = _interopRequireDefault(__webpack_require__(/*! ./image-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-slider.js"));
6485 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ./image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
6486 var _gallery = _interopRequireDefault(__webpack_require__(/*! ./gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
6487 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6488 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ./single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
6489 var _excluded = ["children", "sx"];
6490 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; }
6491 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; }
6492 var Container = function Container(_ref) {
6493 var children = _ref.children,
6494 _ref$sx = _ref.sx,
6495 sx = _ref$sx === void 0 ? {} : _ref$sx,
6496 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6497 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6498 flexGrow: 1
6499 }, props, {
6500 sx: _objectSpread({
6501 overflowY: 'scroll'
6502 }, sx)
6503 }), children);
6504 };
6505 Container.propTypes = {
6506 sx: _propTypes.default.object,
6507 children: _propTypes.default.node
6508 };
6509 var ImagesDisplay = function ImagesDisplay(_ref2) {
6510 var images = _ref2.images,
6511 _ref2$aspectRatio = _ref2.aspectRatio,
6512 aspectRatio = _ref2$aspectRatio === void 0 ? '1:1' : _ref2$aspectRatio,
6513 onUseImage = _ref2.onUseImage,
6514 onEditImage = _ref2.onEditImage,
6515 _ref2$transparentCont = _ref2.transparentContainer,
6516 transparentContainer = _ref2$transparentCont === void 0 ? false : _ref2$transparentCont;
6517 var _useImageNavigation = (0, _useImageNavigation2.default)(images),
6518 zoomIndex = _useImageNavigation.zoomIndex,
6519 setZoomIndex = _useImageNavigation.setZoomIndex,
6520 actions = _useImageNavigation.actions;
6521 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
6522 width = _useImageSize.width,
6523 height = _useImageSize.height;
6524 if (zoomIndex > -1) {
6525 var currentImage = images[zoomIndex];
6526 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_imageSlider.default, {
6527 onPrev: actions.prev,
6528 onNext: actions.next
6529 }, /*#__PURE__*/_react.default.createElement(_imageSlider.default.Actions, {
6530 startAction: /*#__PURE__*/_react.default.createElement(_backButton.default, {
6531 onClick: actions.reset
6532 })
6533 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6534 onClick: function onClick() {
6535 return onEditImage(currentImage);
6536 }
6537 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6538 onClick: function onClick() {
6539 return onUseImage(currentImage);
6540 }
6541 })), /*#__PURE__*/_react.default.createElement(_imageSlider.default.Image, {
6542 src: currentImage.image_url,
6543 style: {
6544 maxWidth: '630px',
6545 width: '100%',
6546 height: 'auto'
6547 }
6548 })));
6549 }
6550 if (1 === images.length) {
6551 var image = images[0];
6552 var singleImageStyle = {
6553 width: width,
6554 height: height
6555 };
6556 if (transparentContainer) {
6557 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%)';
6558 singleImageStyle.backgroundSize = '20px 20px';
6559 singleImageStyle.backgroundPosition = '0 0, 0 10px, 10px -10px, -10px 0px';
6560 }
6561 return /*#__PURE__*/_react.default.createElement(Container, {
6562 flexDirection: "column"
6563 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
6564 src: image.image_url || image.url,
6565 style: singleImageStyle,
6566 alt: "generated-image"
6567 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.EditImage, {
6568 onClick: function onClick() {
6569 return onEditImage(image);
6570 }
6571 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6572 onClick: function onClick() {
6573 return onUseImage(image);
6574 }
6575 })))));
6576 }
6577 return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_gallery.default, null, images.map(function (image, index) {
6578 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
6579 key: "result-".concat(image.seed),
6580 alt: "generated-".concat(index),
6581 src: image.image_url,
6582 aspectRatio: aspectRatio,
6583 "data-testid": "e-gallery-image"
6584 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
6585 onClick: function onClick() {
6586 return onUseImage(image);
6587 },
6588 size: "medium",
6589 fullWidth: true
6590 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6591 direction: "row",
6592 spacing: 0.25,
6593 alignItems: "center"
6594 }, /*#__PURE__*/_react.default.createElement(_imageActions.default.ZoomIcon, {
6595 onClick: function onClick() {
6596 return setZoomIndex(index);
6597 },
6598 size: "medium"
6599 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
6600 onClick: function onClick() {
6601 return onEditImage(image);
6602 },
6603 size: "medium"
6604 }))));
6605 })));
6606 };
6607 ImagesDisplay.propTypes = {
6608 images: _propTypes.default.array,
6609 aspectRatio: _propTypes.default.string,
6610 onUseImage: _propTypes.default.func,
6611 onEditImage: _propTypes.default.func,
6612 transparentContainer: _propTypes.default.bool
6613 };
6614 ImagesDisplay.Container = Container;
6615 var _default = ImagesDisplay;
6616 exports["default"] = _default;
6617
6618 /***/ }),
6619
6620 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js":
6621 /*!***************************************************************************************!*\
6622 !*** ../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js ***!
6623 \***************************************************************************************/
6624 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6625
6626 "use strict";
6627
6628
6629 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6630 Object.defineProperty(exports, "__esModule", ({
6631 value: true
6632 }));
6633 exports["default"] = void 0;
6634 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6635 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6636 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6637 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6638 var NewPromptButton = function NewPromptButton(props) {
6639 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
6640 fullWidth: true,
6641 variant: "text",
6642 color: "secondary"
6643 }, props), (0, _i18n.__)('New prompt', 'elementor'));
6644 };
6645 var _default = NewPromptButton;
6646 exports["default"] = _default;
6647
6648 /***/ }),
6649
6650 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js":
6651 /*!**********************************************************************************!*\
6652 !*** ../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js ***!
6653 \**********************************************************************************/
6654 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6655
6656 "use strict";
6657
6658
6659 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6660 Object.defineProperty(exports, "__esModule", ({
6661 value: true
6662 }));
6663 exports["default"] = void 0;
6664 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6665 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6666 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6667 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6668 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6669 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
6670 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ./enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
6671 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
6672 var _excluded = ["disabled", "onChange"];
6673 var PromptField = function PromptField(_ref) {
6674 var disabled = _ref.disabled,
6675 _onChange = _ref.onChange,
6676 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6677 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(props.value, 'media'),
6678 enhance = _usePromptEnhancer.enhance,
6679 isEnhancing = _usePromptEnhancer.isEnhancing;
6680 return /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({
6681 minRows: 3,
6682 maxRows: 6,
6683 InputProps: {
6684 endAdornment: /*#__PURE__*/_react.default.createElement(_ui.InputAdornment, {
6685 position: "end",
6686 sx: {
6687 position: 'absolute',
6688 bottom: '24px',
6689 right: '8px'
6690 }
6691 }, /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
6692 isLoading: isEnhancing,
6693 disabled: disabled || isEnhancing || !props.value,
6694 onClick: function onClick() {
6695 enhance(prompt).then(function (_ref2) {
6696 var result = _ref2.result;
6697 return _onChange(result);
6698 });
6699 }
6700 }))
6701 },
6702 sx: {
6703 '& .MuiInputBase-input.MuiOutlinedInput-input.MuiInputBase-inputMultiline': {
6704 pb: 5,
6705 width: '89%'
6706 }
6707 },
6708 onKeyDown: function onKeyDown(event) {
6709 if ('Tab' === event.key) {
6710 event.preventDefault();
6711 _onChange(props.placeholder);
6712 }
6713 }
6714 }, props, {
6715 onChange: function onChange(event) {
6716 return _onChange(event.target.value);
6717 },
6718 disabled: disabled || isEnhancing
6719 }));
6720 };
6721 PromptField.propTypes = {
6722 value: _propTypes.default.string,
6723 disabled: _propTypes.default.bool,
6724 placeholder: _propTypes.default.string,
6725 onChange: _propTypes.default.func.isRequired
6726 };
6727 var _default = PromptField;
6728 exports["default"] = _default;
6729
6730 /***/ }),
6731
6732 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js":
6733 /*!******************************************************************************************!*\
6734 !*** ../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js ***!
6735 \******************************************************************************************/
6736 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6737
6738 "use strict";
6739
6740
6741 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6742 Object.defineProperty(exports, "__esModule", ({
6743 value: true
6744 }));
6745 exports["default"] = void 0;
6746 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6747 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6748 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6749 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6750 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6751 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6752 var _excluded = ["children"],
6753 _excluded2 = ["children", "sx"];
6754 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; }
6755 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; }
6756 var SingleImagePreview = function SingleImagePreview(_ref) {
6757 var children = _ref.children,
6758 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6759 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6760 display: "flex"
6761 }, props), children);
6762 };
6763 SingleImagePreview.propTypes = {
6764 children: _propTypes.default.node.isRequired
6765 };
6766 var Actions = function Actions(_ref2) {
6767 var children = _ref2.children,
6768 _ref2$sx = _ref2.sx,
6769 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
6770 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6771 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6772 display: "flex",
6773 width: "100%",
6774 justifyContent: "flex-end",
6775 alignItems: "center"
6776 }, props, {
6777 sx: _objectSpread({
6778 mb: 1.5
6779 }, sx)
6780 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
6781 direction: "row",
6782 spacing: 2,
6783 justifyContent: "flex-end",
6784 width: "100%"
6785 }, children));
6786 };
6787 Actions.propTypes = {
6788 sx: _propTypes.default.object,
6789 children: _propTypes.default.node.isRequired
6790 };
6791 var Image = function Image(_ref3) {
6792 var src = _ref3.src,
6793 alt = _ref3.alt,
6794 _ref3$style = _ref3.style,
6795 style = _ref3$style === void 0 ? {} : _ref3$style,
6796 children = _ref3.children;
6797 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6798 margin: "0 auto"
6799 }, children, /*#__PURE__*/_react.default.createElement("img", {
6800 src: src,
6801 alt: alt,
6802 style: _objectSpread({
6803 maxWidth: '100%',
6804 width: 'auto',
6805 maxHeight: '100%'
6806 }, style)
6807 }));
6808 };
6809 Image.propTypes = {
6810 style: _propTypes.default.object,
6811 children: _propTypes.default.node,
6812 src: _propTypes.default.string.isRequired,
6813 alt: _propTypes.default.string.isRequired
6814 };
6815 SingleImagePreview.Actions = Actions;
6816 SingleImagePreview.Image = Image;
6817 var _default = SingleImagePreview;
6818 exports["default"] = _default;
6819
6820 /***/ }),
6821
6822 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js":
6823 /*!*******************************************************************************************!*\
6824 !*** ../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js ***!
6825 \*******************************************************************************************/
6826 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6827
6828 "use strict";
6829
6830
6831 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6832 Object.defineProperty(exports, "__esModule", ({
6833 value: true
6834 }));
6835 exports["default"] = void 0;
6836 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6837 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6838 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6839 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6840 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
6841 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6842 var _excluded = ["onClose", "onCancel"];
6843 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
6844 var onClose = _ref.onClose,
6845 onCancel = _ref.onCancel,
6846 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6847 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
6848 "aria-labelledby": "unsaved-changes-alert-title",
6849 "aria-describedby": "unsaved-changes-alert-description"
6850 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
6851 id: "unsaved-changes-alert-title"
6852 }, (0, _i18n.__)('Leave Elementor AI?', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
6853 id: "unsaved-changes-alert-description"
6854 }, (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, {
6855 onClick: onCancel,
6856 color: "secondary"
6857 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
6858 onClick: onClose,
6859 color: "error",
6860 variant: "contained"
6861 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
6862 };
6863 UnsavedChangesAlert.propTypes = {
6864 onClose: _propTypes.default.func,
6865 onCancel: _propTypes.default.func
6866 };
6867 var _default = UnsavedChangesAlert;
6868 exports["default"] = _default;
6869
6870 /***/ }),
6871
6872 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/view.js":
6873 /*!**************************************************************************!*\
6874 !*** ../modules/ai/assets/js/editor/pages/form-media/components/view.js ***!
6875 \**************************************************************************/
6876 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6877
6878 "use strict";
6879
6880
6881 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
6882 Object.defineProperty(exports, "__esModule", ({
6883 value: true
6884 }));
6885 exports["default"] = void 0;
6886 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6887 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
6888 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
6889 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
6890 var _panel = _interopRequireDefault(__webpack_require__(/*! ../../../components/ui/panel */ "../modules/ai/assets/js/editor/components/ui/panel.js"));
6891 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
6892 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
6893 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
6894 var _generateLoader = _interopRequireDefault(__webpack_require__(/*! ./generate-loader */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-loader.js"));
6895 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
6896 var _backButton = _interopRequireDefault(__webpack_require__(/*! ./back-button */ "../modules/ai/assets/js/editor/pages/form-media/components/back-button.js"));
6897 var _locationContext = __webpack_require__(/*! ../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
6898 var _globalSettingsContext = __webpack_require__(/*! ../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
6899 var _usageMessages = _interopRequireDefault(__webpack_require__(/*! ../../../components/usage-messages */ "../modules/ai/assets/js/editor/components/usage-messages.js"));
6900 var _excluded = ["sx"],
6901 _excluded2 = ["primary", "secondary"],
6902 _excluded3 = ["primary", "secondary"],
6903 _excluded4 = ["children"],
6904 _excluded5 = ["isLoading", "isGenerating", "children"],
6905 _excluded6 = ["sx"];
6906 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; }
6907 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; }
6908 var ViewBackButton = function ViewBackButton(_ref) {
6909 var _ref$sx = _ref.sx,
6910 sx = _ref$sx === void 0 ? {} : _ref$sx,
6911 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
6912 var _useLocation = (0, _locationContext.useLocation)(),
6913 back = _useLocation.back;
6914 return /*#__PURE__*/_react.default.createElement(_backButton.default, (0, _extends2.default)({
6915 onClick: function onClick(e) {
6916 e.preventDefault();
6917 back();
6918 }
6919 }, props, {
6920 sx: _objectSpread({
6921 mb: 1,
6922 alignSelf: 'flex-start'
6923 }, sx)
6924 }));
6925 };
6926 ViewBackButton.propTypes = {
6927 sx: _propTypes.default.object
6928 };
6929 var PanelHeading = function PanelHeading(_ref2) {
6930 var primary = _ref2.primary,
6931 secondary = _ref2.secondary,
6932 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
6933 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6934 spacing: 1,
6935 sx: {
6936 mb: 3
6937 }
6938 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6939 variant: "h4"
6940 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6941 variant: "body1",
6942 color: "secondary"
6943 }, secondary));
6944 };
6945 PanelHeading.propTypes = {
6946 primary: _propTypes.default.string.isRequired,
6947 secondary: _propTypes.default.string
6948 };
6949 var ContentHeading = function ContentHeading(_ref3) {
6950 var primary = _ref3.primary,
6951 secondary = _ref3.secondary,
6952 props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
6953 return /*#__PURE__*/_react.default.createElement(_ui.Stack, (0, _extends2.default)({
6954 gap: 1.5,
6955 sx: {
6956 mb: 3
6957 }
6958 }, props), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6959 variant: "h6"
6960 }, primary), secondary && /*#__PURE__*/_react.default.createElement(_ui.Typography, {
6961 variant: "subtitle1",
6962 color: "secondary"
6963 }, secondary));
6964 };
6965 ContentHeading.propTypes = {
6966 primary: _propTypes.default.string.isRequired,
6967 secondary: _propTypes.default.string
6968 };
6969 var View = function View(_ref4) {
6970 var children = _ref4.children,
6971 props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
6972 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
6973 className: "e-ai-dialog-content",
6974 display: "flex",
6975 sx: {
6976 overflowY: 'auto',
6977 position: 'relative'
6978 },
6979 height: "100%"
6980 }, props), children);
6981 };
6982 var Content = function Content(_ref5) {
6983 var _ref5$isLoading = _ref5.isLoading,
6984 isLoading = _ref5$isLoading === void 0 ? false : _ref5$isLoading,
6985 _ref5$isGenerating = _ref5.isGenerating,
6986 isGenerating = _ref5$isGenerating === void 0 ? false : _ref5$isGenerating,
6987 children = _ref5.children,
6988 props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
6989 if (isGenerating) {
6990 return /*#__PURE__*/_react.default.createElement(_generateLoader.default, null);
6991 }
6992 if (isLoading) {
6993 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
6994 sx: {
6995 width: '100%',
6996 maxWidth: 600,
6997 margin: '0 auto',
6998 alignSelf: 'center'
6999 }
7000 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
7001 color: "inherit"
7002 }));
7003 }
7004 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
7005 sx: {
7006 overflowY: 'scroll',
7007 p: 4
7008 },
7009 flexGrow: 1
7010 }, props), children);
7011 };
7012 Content.propTypes = {
7013 children: _propTypes.default.node,
7014 isLoading: _propTypes.default.bool,
7015 isGenerating: _propTypes.default.bool
7016 };
7017 var ErrorMessage = function ErrorMessage(_ref6) {
7018 var _ref6$sx = _ref6.sx,
7019 sx = _ref6$sx === void 0 ? {} : _ref6$sx,
7020 props = (0, _objectWithoutProperties2.default)(_ref6, _excluded6);
7021 return /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, (0, _extends2.default)({
7022 actionPosition: "bottom"
7023 }, props, {
7024 sx: _objectSpread({
7025 mb: 2.5
7026 }, sx)
7027 }));
7028 };
7029 ErrorMessage.propTypes = {
7030 sx: _propTypes.default.object
7031 };
7032 var ViewPanel = function ViewPanel(props) {
7033 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
7034 hasSubscription = _useGlobalSettings.hasSubscription,
7035 usagePercentage = _useGlobalSettings.usagePercentage;
7036 return /*#__PURE__*/_react.default.createElement(_panel.default, null, /*#__PURE__*/_react.default.createElement(_usageMessages.default, {
7037 hasSubscription: hasSubscription,
7038 usagePercentage: usagePercentage,
7039 sx: {
7040 mb: 4
7041 }
7042 }), props.children);
7043 };
7044 ViewPanel.propTypes = {
7045 children: _propTypes.default.node
7046 };
7047 View.Panel = ViewPanel;
7048 View.Content = Content;
7049 View.BackButton = ViewBackButton;
7050 View.ErrorMessage = ErrorMessage;
7051 View.PanelHeading = PanelHeading;
7052 View.ContentHeading = ContentHeading;
7053 View.propTypes = {
7054 children: _propTypes.default.node
7055 };
7056 var _default = View;
7057 exports["default"] = _default;
7058
7059 /***/ }),
7060
7061 /***/ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js":
7062 /*!**************************************************************************!*\
7063 !*** ../modules/ai/assets/js/editor/pages/form-media/constants/index.js ***!
7064 \**************************************************************************/
7065 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7066
7067 "use strict";
7068
7069
7070 Object.defineProperty(exports, "__esModule", ({
7071 value: true
7072 }));
7073 exports.LOCATIONS = exports.IMAGE_PROMPT_SETTINGS = exports.IMAGE_PROMPT_CATEGORIES = exports.IMAGE_ASPECT_RATIO = void 0;
7074 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
7075 var LOCATIONS = {
7076 RESIZE: 'resize',
7077 GENERATE: 'generate',
7078 VARIATIONS: 'variations',
7079 IMAGE_TOOLS: 'image-tools',
7080 IN_PAINTING: 'in-painting',
7081 OUT_PAINTING: 'out-painting',
7082 REMOVE_BACKGROUND: 'remove-background',
7083 REPLACE_BACKGROUND: 'replace-background',
7084 REMOVE_TEXT: 'remove-text'
7085 };
7086 exports.LOCATIONS = LOCATIONS;
7087 var IMAGE_PROMPT_SETTINGS = {
7088 IMAGE_TYPE: 'image_type',
7089 IMAGE_STYLE: 'style_preset',
7090 IMAGE_STRENGTH: 'image_strength',
7091 IMAGE_RATIO: 'ratio',
7092 IMAGE_ZOOM: 'zoom',
7093 IMAGE_UPSCALE: 'upscale_to'
7094 };
7095 exports.IMAGE_PROMPT_SETTINGS = IMAGE_PROMPT_SETTINGS;
7096 var IMAGE_PROMPT_CATEGORIES = {
7097 '': {
7098 label: (0, _i18n.__)('None', 'elementor'),
7099 subCategories: {}
7100 },
7101 photographic: {
7102 label: (0, _i18n.__)('Photographic', 'elementor'),
7103 subCategories: {
7104 '': (0, _i18n.__)('None', 'elementor'),
7105 landscape: (0, _i18n.__)('Landscape', 'elementor'),
7106 macro: (0, _i18n.__)('Macro', 'elementor'),
7107 portrait: (0, _i18n.__)('Portrait', 'elementor'),
7108 'long-exposure': (0, _i18n.__)('Long Exposure', 'elementor')
7109 }
7110 },
7111 background: {
7112 label: (0, _i18n.__)('Background', 'elementor'),
7113 subCategories: {
7114 '': (0, _i18n.__)('None', 'elementor'),
7115 floral: (0, _i18n.__)('Floral', 'elementor'),
7116 gradient: (0, _i18n.__)('Gradient', 'elementor'),
7117 mosaic: (0, _i18n.__)('Mosaic', 'elementor'),
7118 neon: (0, _i18n.__)('Neon', 'elementor'),
7119 bokeh: (0, _i18n.__)('Bokeh', 'elementor')
7120 }
7121 },
7122 handmade: {
7123 label: (0, _i18n.__)('Handmade', 'elementor'),
7124 subCategories: {
7125 '': (0, _i18n.__)('None', 'elementor'),
7126 doodle: (0, _i18n.__)('Doodle', 'elementor'),
7127 'line-art': (0, _i18n.__)('Line Art', 'elementor'),
7128 'oil-painting': (0, _i18n.__)('Oil Painting', 'elementor'),
7129 'pencil-drawing': (0, _i18n.__)('Pencil Drawing', 'elementor'),
7130 watercolor: (0, _i18n.__)('Watercolor', 'elementor')
7131 }
7132 },
7133 'digital-art': {
7134 label: (0, _i18n.__)('Digital Art', 'elementor'),
7135 subCategories: {
7136 '': (0, _i18n.__)('None', 'elementor'),
7137 amine: (0, _i18n.__)('Anime', 'elementor'),
7138 cartoon: (0, _i18n.__)('Cartoon', 'elementor'),
7139 cinematic: (0, _i18n.__)('Cinematic', 'elementor'),
7140 'comic-book': (0, _i18n.__)('Comic Book', 'elementor'),
7141 'fantasy-art': (0, _i18n.__)('Fantasy Art', 'elementor'),
7142 isometric: (0, _i18n.__)('Isometric', 'elementor'),
7143 vector: (0, _i18n.__)('Vector', 'elementor'),
7144 'pixel-art': (0, _i18n.__)('Pixel Art', 'elementor'),
7145 'low-poly': (0, _i18n.__)('Low Poly', 'elementor'),
7146 'neon-punk': (0, _i18n.__)('Neon Punk', 'elementor')
7147 }
7148 },
7149 '3d': {
7150 label: (0, _i18n.__)('3D', 'elementor'),
7151 subCategories: {
7152 '': (0, _i18n.__)('None', 'elementor'),
7153 clay: (0, _i18n.__)('Clay', 'elementor'),
7154 digital: (0, _i18n.__)('Digital', 'elementor'),
7155 origami: (0, _i18n.__)('Origami', 'elementor'),
7156 stone: (0, _i18n.__)('Stone', 'elementor'),
7157 wood: (0, _i18n.__)('Wood', 'elementor')
7158 }
7159 }
7160 };
7161 exports.IMAGE_PROMPT_CATEGORIES = IMAGE_PROMPT_CATEGORIES;
7162 var IMAGE_ASPECT_RATIO = {
7163 '1:1': {
7164 width: 512,
7165 height: 512,
7166 label: (0, _i18n.__)('Square', 'elementor') + ' (1:1)'
7167 },
7168 '3:2': {
7169 width: 640,
7170 height: 448,
7171 label: (0, _i18n.__)('Landscape', 'elementor') + ' (3:2)'
7172 },
7173 '4:3': {
7174 width: 640,
7175 height: 448,
7176 label: (0, _i18n.__)('Landscape', 'elementor') + ' (4:3)'
7177 },
7178 '16:9': {
7179 width: 704,
7180 height: 384,
7181 label: (0, _i18n.__)('Landscape', 'elementor') + ' (16:9)'
7182 },
7183 '2:3': {
7184 width: 448,
7185 height: 640,
7186 label: (0, _i18n.__)('Portrait', 'elementor') + ' (2:3)'
7187 },
7188 '3:4': {
7189 width: 448,
7190 height: 640,
7191 label: (0, _i18n.__)('Portrait', 'elementor') + ' (3:4)'
7192 },
7193 '9:16': {
7194 width: 384,
7195 height: 704,
7196 label: (0, _i18n.__)('Portrait', 'elementor') + ' (9:16)'
7197 }
7198 };
7199 exports.IMAGE_ASPECT_RATIO = IMAGE_ASPECT_RATIO;
7200
7201 /***/ }),
7202
7203 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js":
7204 /*!*************************************************************************************!*\
7205 !*** ../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js ***!
7206 \*************************************************************************************/
7207 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7208
7209 "use strict";
7210
7211
7212 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7213 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7214 Object.defineProperty(exports, "__esModule", ({
7215 value: true
7216 }));
7217 exports.useEditImage = exports.SET_LOADING = exports.SET_ASPECT_RATIO = exports.RESET = exports.EditImageProvider = exports.EditImageContext = void 0;
7218 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7219 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7220 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7221 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7222 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
7223 var _utils = __webpack_require__(/*! ../utils */ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js");
7224 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); }
7225 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; }
7226 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; }
7227 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; }
7228 var EditImageContext = (0, _react.createContext)({});
7229 exports.EditImageContext = EditImageContext;
7230 var SET_STATE = 'SET_STATE';
7231 var SET_ASPECT_RATIO = 'SET_ASPECT_RATIO';
7232 exports.SET_ASPECT_RATIO = SET_ASPECT_RATIO;
7233 var SET_LOADING = 'SET_LOADING';
7234 exports.SET_LOADING = SET_LOADING;
7235 var RESET = 'RESET';
7236 exports.RESET = RESET;
7237 var initialValue = {
7238 id: '',
7239 url: '',
7240 isLoading: false,
7241 aspectRatio: '1:1'
7242 };
7243 var reducer = function reducer(state, _ref) {
7244 var type = _ref.type,
7245 payload = _ref.payload;
7246 switch (type) {
7247 case SET_STATE:
7248 return _objectSpread(_objectSpread({}, state), payload);
7249 case SET_ASPECT_RATIO:
7250 return _objectSpread(_objectSpread({}, state), {}, {
7251 aspectRatio: payload
7252 });
7253 case SET_LOADING:
7254 return _objectSpread(_objectSpread({}, state), {}, {
7255 isLoading: payload
7256 });
7257 case RESET:
7258 return initialValue;
7259 default:
7260 throw Error('Unknown action.');
7261 }
7262 };
7263 var EditImageProvider = function EditImageProvider(_ref2) {
7264 var children = _ref2.children,
7265 imageData = _ref2.imageData;
7266 var initialData = _objectSpread(_objectSpread({}, initialValue), imageData);
7267 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7268 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7269 state = _useReducer2[0],
7270 dispatch = _useReducer2[1];
7271 return /*#__PURE__*/_react.default.createElement(EditImageContext.Provider, {
7272 value: {
7273 state: state,
7274 dispatch: dispatch
7275 }
7276 }, children);
7277 };
7278 exports.EditImageProvider = EditImageProvider;
7279 EditImageProvider.propTypes = {
7280 children: _propTypes.default.node,
7281 imageData: _propTypes.default.object
7282 };
7283 var useEditImage = function useEditImage() {
7284 var _useContext = (0, _react.useContext)(EditImageContext),
7285 state = _useContext.state,
7286 dispatch = _useContext.dispatch;
7287 var id = state.id,
7288 url = state.url,
7289 aspectRatio = state.aspectRatio,
7290 isLoading = state.isLoading;
7291 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
7292 width = _useImageSize.width,
7293 height = _useImageSize.height;
7294 var setEditImage = function setEditImage(payload) {
7295 return dispatch({
7296 type: SET_STATE,
7297 payload: payload
7298 });
7299 };
7300 var setAspectRatio = function setAspectRatio(payload) {
7301 return dispatch({
7302 type: SET_ASPECT_RATIO,
7303 payload: payload
7304 });
7305 };
7306 var reset = function reset() {
7307 return dispatch({
7308 type: RESET
7309 });
7310 };
7311
7312 // Getting the aspect ratio of the image.
7313 (0, _react.useEffect)(function () {
7314 if (!id) {
7315 return;
7316 }
7317 dispatch({
7318 type: SET_LOADING,
7319 payload: true
7320 });
7321 var img = new Image();
7322 img.src = url;
7323 img.onload = function () {
7324 var _getAspectRatioSizes = (0, _utils.getAspectRatioSizes)(img.width, img.height),
7325 ratio = _getAspectRatioSizes.ratio;
7326 dispatch({
7327 type: SET_STATE,
7328 payload: {
7329 aspectRatio: ratio,
7330 isLoading: false
7331 }
7332 });
7333 };
7334 }, [id]);
7335 return {
7336 editImage: state,
7337 isLoading: isLoading,
7338 aspectRatio: aspectRatio,
7339 width: width,
7340 height: height,
7341 setEditImage: setEditImage,
7342 setAspectRatio: setAspectRatio,
7343 reset: reset
7344 };
7345 };
7346 exports.useEditImage = useEditImage;
7347
7348 /***/ }),
7349
7350 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js":
7351 /*!*****************************************************************************************!*\
7352 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js ***!
7353 \*****************************************************************************************/
7354 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7355
7356 "use strict";
7357
7358
7359 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7360 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7361 Object.defineProperty(exports, "__esModule", ({
7362 value: true
7363 }));
7364 exports.useGlobalActions = exports.GlobalActionsProvider = exports.GlobalActionsContext = void 0;
7365 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7366 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7367 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); }
7368 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; }
7369 var GlobalActionsContext = (0, _react.createContext)({});
7370 exports.GlobalActionsContext = GlobalActionsContext;
7371 var GlobalActionsProvider = function GlobalActionsProvider(_ref) {
7372 var actions = _ref.actions,
7373 children = _ref.children;
7374 return /*#__PURE__*/_react.default.createElement(GlobalActionsContext.Provider, {
7375 value: actions
7376 }, children);
7377 };
7378 exports.GlobalActionsProvider = GlobalActionsProvider;
7379 GlobalActionsProvider.propTypes = {
7380 actions: _propTypes.default.object,
7381 children: _propTypes.default.node
7382 };
7383 var useGlobalActions = function useGlobalActions() {
7384 return (0, _react.useContext)(GlobalActionsContext);
7385 };
7386 exports.useGlobalActions = useGlobalActions;
7387
7388 /***/ }),
7389
7390 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js":
7391 /*!******************************************************************************************!*\
7392 !*** ../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js ***!
7393 \******************************************************************************************/
7394 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7395
7396 "use strict";
7397
7398
7399 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7400 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7401 Object.defineProperty(exports, "__esModule", ({
7402 value: true
7403 }));
7404 exports.useGlobalSettings = exports.GlobalSettingsProvider = exports.GlobalSettingsContext = void 0;
7405 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7406 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7407 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); }
7408 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; }
7409 var GlobalSettingsContext = (0, _react.createContext)({});
7410 exports.GlobalSettingsContext = GlobalSettingsContext;
7411 var GlobalSettingsProvider = function GlobalSettingsProvider(_ref) {
7412 var settings = _ref.settings,
7413 children = _ref.children;
7414 return /*#__PURE__*/_react.default.createElement(GlobalSettingsContext.Provider, {
7415 value: settings
7416 }, children);
7417 };
7418 exports.GlobalSettingsProvider = GlobalSettingsProvider;
7419 GlobalSettingsProvider.propTypes = {
7420 settings: _propTypes.default.object,
7421 children: _propTypes.default.node
7422 };
7423 var useGlobalSettings = function useGlobalSettings() {
7424 return (0, _react.useContext)(GlobalSettingsContext);
7425 };
7426 exports.useGlobalSettings = useGlobalSettings;
7427
7428 /***/ }),
7429
7430 /***/ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js":
7431 /*!***********************************************************************************!*\
7432 !*** ../modules/ai/assets/js/editor/pages/form-media/context/location-context.js ***!
7433 \***********************************************************************************/
7434 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7435
7436 "use strict";
7437
7438
7439 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7440 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7441 Object.defineProperty(exports, "__esModule", ({
7442 value: true
7443 }));
7444 exports.useLocation = exports.RoutesContext = exports.NAVIGATE = exports.LocationProvider = exports.BACK = void 0;
7445 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7446 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7447 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
7448 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7449 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7450 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); }
7451 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; }
7452 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; }
7453 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; }
7454 var RoutesContext = (0, _react.createContext)(null);
7455 exports.RoutesContext = RoutesContext;
7456 var NAVIGATE = 'NAVIGATE';
7457 exports.NAVIGATE = NAVIGATE;
7458 var BACK = 'BACK';
7459 exports.BACK = BACK;
7460 var initialValue = {
7461 current: '',
7462 history: []
7463 };
7464 var reducer = function reducer(state, _ref) {
7465 var type = _ref.type,
7466 payload = _ref.payload;
7467 switch (type) {
7468 case NAVIGATE:
7469 return _objectSpread(_objectSpread({}, state), {}, {
7470 current: payload,
7471 history: [].concat((0, _toConsumableArray2.default)(state.history), [payload])
7472 });
7473 case BACK:
7474 return _objectSpread(_objectSpread({}, state), {}, {
7475 current: state.history[state.history.length - 2],
7476 history: state.history.slice(0, state.history.length - 1)
7477 });
7478 default:
7479 return state;
7480 }
7481 };
7482 var LocationProvider = function LocationProvider(_ref2) {
7483 var children = _ref2.children;
7484 var _useReducer = (0, _react.useReducer)(reducer, initialValue),
7485 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7486 state = _useReducer2[0],
7487 dispatch = _useReducer2[1];
7488 return /*#__PURE__*/_react.default.createElement(RoutesContext.Provider, {
7489 value: {
7490 state: state,
7491 dispatch: dispatch
7492 }
7493 }, children);
7494 };
7495 exports.LocationProvider = LocationProvider;
7496 LocationProvider.propTypes = {
7497 children: _propTypes.default.node
7498 };
7499 var useLocation = function useLocation() {
7500 var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7501 current = _ref3.current;
7502 var _useContext = (0, _react.useContext)(RoutesContext),
7503 state = _useContext.state,
7504 dispatch = _useContext.dispatch;
7505 var navigate = function navigate(location) {
7506 dispatch({
7507 type: NAVIGATE,
7508 payload: location
7509 });
7510 };
7511 var back = function back() {
7512 dispatch({
7513 type: BACK
7514 });
7515 };
7516 (0, _react.useEffect)(function () {
7517 if (current) {
7518 navigate(current);
7519 }
7520 }, []);
7521 return {
7522 current: state.current,
7523 history: state.history,
7524 navigate: navigate,
7525 back: back
7526 };
7527 };
7528 exports.useLocation = useLocation;
7529
7530 /***/ }),
7531
7532 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js":
7533 /*!**********************************************************************************!*\
7534 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js ***!
7535 \**********************************************************************************/
7536 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7537
7538 "use strict";
7539
7540
7541 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7542 Object.defineProperty(exports, "__esModule", ({
7543 value: true
7544 }));
7545 exports["default"] = void 0;
7546 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
7547 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
7548 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
7549 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7550 var _editImageContext = __webpack_require__(/*! ../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7551 var _useImageUpload2 = _interopRequireDefault(__webpack_require__(/*! ./use-image-upload */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js"));
7552 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7553 var _excluded = ["image"];
7554 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; }
7555 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; }
7556 var normalizeImageData = function normalizeImageData(imageToUpload) {
7557 if (!(imageToUpload !== null && imageToUpload !== void 0 && imageToUpload.imageUrl)) {
7558 return imageToUpload;
7559 }
7560 return _objectSpread(_objectSpread({}, imageToUpload), {}, {
7561 image_url: imageToUpload.imageUrl,
7562 use_gallery_image: true
7563 });
7564 };
7565 var useImageActions = function useImageActions() {
7566 var _useEditImage = (0, _editImageContext.useEditImage)(),
7567 editImage = _useEditImage.editImage,
7568 setEditImage = _useEditImage.setEditImage;
7569 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7570 setControlImage = _useGlobalActions.setControlImage,
7571 saveAndClose = _useGlobalActions.saveAndClose;
7572 var _useImageUpload = (0, _useImageUpload2.default)(),
7573 attachmentData = _useImageUpload.attachmentData,
7574 isUploading = _useImageUpload.isUploading,
7575 uploadError = _useImageUpload.uploadError,
7576 uploadImage = _useImageUpload.upload,
7577 resetUpload = _useImageUpload.resetUpload;
7578 var upload = function upload(imageToUpload, prompt) {
7579 return uploadImage({
7580 image: normalizeImageData(imageToUpload),
7581 prompt: prompt || imageToUpload.prompt
7582 });
7583 };
7584 var getFinalImage = /*#__PURE__*/function () {
7585 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(imageToUpload, prompt) {
7586 var isImageAlreadyUploaded, image, _result, result;
7587 return _regenerator.default.wrap(function _callee$(_context) {
7588 while (1) switch (_context.prev = _context.next) {
7589 case 0:
7590 isImageAlreadyUploaded = editImage.url === imageToUpload.url;
7591 if (!isImageAlreadyUploaded) {
7592 _context.next = 4;
7593 break;
7594 }
7595 // Removing inner image property to avoid duplicated uploads.
7596 image = editImage.image, _result = (0, _objectWithoutProperties2.default)(editImage, _excluded);
7597 return _context.abrupt("return", _result);
7598 case 4:
7599 _context.next = 6;
7600 return upload(imageToUpload, prompt);
7601 case 6:
7602 result = _context.sent;
7603 return _context.abrupt("return", result.image);
7604 case 8:
7605 case "end":
7606 return _context.stop();
7607 }
7608 }, _callee);
7609 }));
7610 return function getFinalImage(_x, _x2) {
7611 return _ref.apply(this, arguments);
7612 };
7613 }();
7614 var edit = /*#__PURE__*/function () {
7615 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageToUpload, prompt) {
7616 var result;
7617 return _regenerator.default.wrap(function _callee2$(_context2) {
7618 while (1) switch (_context2.prev = _context2.next) {
7619 case 0:
7620 _context2.next = 2;
7621 return upload(imageToUpload, prompt);
7622 case 2:
7623 result = _context2.sent;
7624 setEditImage(result.image);
7625 case 4:
7626 case "end":
7627 return _context2.stop();
7628 }
7629 }, _callee2);
7630 }));
7631 return function edit(_x3, _x4) {
7632 return _ref2.apply(this, arguments);
7633 };
7634 }();
7635 var use = /*#__PURE__*/function () {
7636 var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(imageToUpload, prompt) {
7637 var result;
7638 return _regenerator.default.wrap(function _callee3$(_context3) {
7639 while (1) switch (_context3.prev = _context3.next) {
7640 case 0:
7641 _context3.next = 2;
7642 return getFinalImage(imageToUpload, prompt);
7643 case 2:
7644 result = _context3.sent;
7645 setControlImage(result);
7646 saveAndClose();
7647 case 5:
7648 case "end":
7649 return _context3.stop();
7650 }
7651 }, _callee3);
7652 }));
7653 return function use(_x5, _x6) {
7654 return _ref3.apply(this, arguments);
7655 };
7656 }();
7657 return {
7658 use: use,
7659 edit: edit,
7660 reset: resetUpload,
7661 error: uploadError,
7662 data: attachmentData,
7663 isLoading: isUploading
7664 };
7665 };
7666 var _default = useImageActions;
7667 exports["default"] = _default;
7668
7669 /***/ }),
7670
7671 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js":
7672 /*!*********************************************************************************!*\
7673 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js ***!
7674 \*********************************************************************************/
7675 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7676
7677 "use strict";
7678
7679
7680 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7681 Object.defineProperty(exports, "__esModule", ({
7682 value: true
7683 }));
7684 exports["default"] = void 0;
7685 var _react = __webpack_require__(/*! react */ "react");
7686 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
7687 var _globalActionsContext = __webpack_require__(/*! ../context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7688 var useImagePrompt = function useImagePrompt() {
7689 var promptData = _usePrompt.default.apply(void 0, arguments);
7690 var _useGlobalActions = (0, _globalActionsContext.useGlobalActions)(),
7691 setHasUnsavedChanges = _useGlobalActions.setHasUnsavedChanges,
7692 state = _useGlobalActions.state;
7693 (0, _react.useEffect)(function () {
7694 var _promptData$data;
7695 if ((_promptData$data = promptData.data) !== null && _promptData$data !== void 0 && _promptData$data.result) {
7696 // Updating the hasUnsavedChanges global state that will trigger the unsaved changes dialog.
7697 setHasUnsavedChanges(true);
7698 }
7699 }, [promptData.data]);
7700 (0, _react.useEffect)(function () {
7701 if (state.isAllSaved) {
7702 promptData.sendUsageData();
7703 }
7704 }, [state.isAllSaved]);
7705 return promptData;
7706 };
7707 var _default = useImagePrompt;
7708 exports["default"] = _default;
7709
7710 /***/ }),
7711
7712 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js":
7713 /*!*******************************************************************************!*\
7714 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js ***!
7715 \*******************************************************************************/
7716 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7717
7718 "use strict";
7719
7720
7721 Object.defineProperty(exports, "__esModule", ({
7722 value: true
7723 }));
7724 exports["default"] = void 0;
7725 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7726 var useImageSize = function useImageSize(aspectRatio) {
7727 var _IMAGE_ASPECT_RATIO$a = _constants.IMAGE_ASPECT_RATIO[aspectRatio],
7728 width = _IMAGE_ASPECT_RATIO$a.width,
7729 height = _IMAGE_ASPECT_RATIO$a.height;
7730 return {
7731 width: width,
7732 height: height
7733 };
7734 };
7735 var _default = useImageSize;
7736 exports["default"] = _default;
7737
7738 /***/ }),
7739
7740 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js":
7741 /*!*********************************************************************************!*\
7742 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-upload.js ***!
7743 \*********************************************************************************/
7744 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7745
7746 "use strict";
7747
7748
7749 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7750 Object.defineProperty(exports, "__esModule", ({
7751 value: true
7752 }));
7753 exports["default"] = void 0;
7754 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7755 var _react = __webpack_require__(/*! react */ "react");
7756 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
7757 var useImageUpload = function useImageUpload() {
7758 var _useState = (0, _react.useState)(false),
7759 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7760 isUploading = _useState2[0],
7761 setIsUploading = _useState2[1];
7762 var _useState3 = (0, _react.useState)(''),
7763 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
7764 uploadError = _useState4[0],
7765 setUploadError = _useState4[1];
7766 var _useState5 = (0, _react.useState)({}),
7767 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
7768 attachmentData = _useState6[0],
7769 setAttachmentData = _useState6[1];
7770 var upload = function upload(_ref) {
7771 var image = _ref.image,
7772 prompt = _ref.prompt;
7773 return new Promise(function (resolve, reject) {
7774 setUploadError('');
7775 setAttachmentData({});
7776 setIsUploading(true);
7777 (0, _api.uploadImage)({
7778 image: image,
7779 prompt: prompt
7780 }).then(function (result) {
7781 setAttachmentData(result);
7782 resolve(result);
7783 }).catch(function (err) {
7784 var error = (err === null || err === void 0 ? void 0 : err.responseText) || err;
7785 setUploadError(error);
7786 reject(error);
7787 }).finally(function () {
7788 return setIsUploading(false);
7789 });
7790 });
7791 };
7792 var resetUpload = function resetUpload() {
7793 setUploadError('');
7794 setAttachmentData({});
7795 setIsUploading(false);
7796 };
7797 return {
7798 upload: upload,
7799 resetUpload: resetUpload,
7800 isUploading: isUploading,
7801 uploadError: uploadError,
7802 attachmentData: attachmentData
7803 };
7804 };
7805 var _default = useImageUpload;
7806 exports["default"] = _default;
7807
7808 /***/ }),
7809
7810 /***/ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js":
7811 /*!************************************************************************************!*\
7812 !*** ../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js ***!
7813 \************************************************************************************/
7814 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7815
7816 "use strict";
7817
7818
7819 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7820 Object.defineProperty(exports, "__esModule", ({
7821 value: true
7822 }));
7823 exports["default"] = exports.IMAGE_ZOOM = exports.IMAGE_UPSCALE = exports.IMAGE_TYPE = exports.IMAGE_STYLE = exports.IMAGE_STRENGTH = exports.IMAGE_RATIO = void 0;
7824 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7825 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7826 var _react = __webpack_require__(/*! react */ "react");
7827 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
7828 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; }
7829 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; }
7830 var IMAGE_TYPE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_TYPE,
7831 IMAGE_STYLE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STYLE,
7832 IMAGE_STRENGTH = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_STRENGTH,
7833 IMAGE_RATIO = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_RATIO,
7834 IMAGE_ZOOM = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_ZOOM,
7835 IMAGE_UPSCALE = _constants.IMAGE_PROMPT_SETTINGS.IMAGE_UPSCALE;
7836 exports.IMAGE_UPSCALE = IMAGE_UPSCALE;
7837 exports.IMAGE_ZOOM = IMAGE_ZOOM;
7838 exports.IMAGE_RATIO = IMAGE_RATIO;
7839 exports.IMAGE_STRENGTH = IMAGE_STRENGTH;
7840 exports.IMAGE_STYLE = IMAGE_STYLE;
7841 exports.IMAGE_TYPE = IMAGE_TYPE;
7842 var DEFAULT_TYPE = '';
7843 var DEFAULT_STYLE = '';
7844 var DEFAULT_STRENGTH = 0;
7845 var DEFAULT_RATIO = '1:1';
7846 var DEFAULT_ZOOM = '1';
7847 var DEFAULT_UPSCALE = '512';
7848 var usePromptSettings = function usePromptSettings() {
7849 var _useState3;
7850 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7851 _ref$type = _ref.type,
7852 type = _ref$type === void 0 ? DEFAULT_TYPE : _ref$type,
7853 _ref$style = _ref.style,
7854 style = _ref$style === void 0 ? DEFAULT_STYLE : _ref$style,
7855 _ref$imageWeight = _ref.imageWeight,
7856 imageWeight = _ref$imageWeight === void 0 ? DEFAULT_STRENGTH : _ref$imageWeight,
7857 _ref$aspectRatio = _ref.aspectRatio,
7858 aspectRatio = _ref$aspectRatio === void 0 ? DEFAULT_RATIO : _ref$aspectRatio,
7859 _ref$zoom = _ref.zoom,
7860 zoom = _ref$zoom === void 0 ? DEFAULT_ZOOM : _ref$zoom,
7861 _ref$upScaleTo = _ref.upScaleTo,
7862 upScaleTo = _ref$upScaleTo === void 0 ? DEFAULT_UPSCALE : _ref$upScaleTo;
7863 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)),
7864 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7865 settings = _useState2[0],
7866 setSettings = _useState2[1];
7867 var updateSettings = function updateSettings(updated) {
7868 return setSettings(function (prev) {
7869 return _objectSpread(_objectSpread({}, prev), updated);
7870 });
7871 };
7872 var resetSettings = function resetSettings() {
7873 var _setSettings;
7874 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));
7875 };
7876 return {
7877 settings: settings,
7878 updateSettings: updateSettings,
7879 resetSettings: resetSettings
7880 };
7881 };
7882 var _default = usePromptSettings;
7883 exports["default"] = _default;
7884
7885 /***/ }),
7886
7887 /***/ "../modules/ai/assets/js/editor/pages/form-media/index.js":
7888 /*!****************************************************************!*\
7889 !*** ../modules/ai/assets/js/editor/pages/form-media/index.js ***!
7890 \****************************************************************/
7891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7892
7893 "use strict";
7894
7895
7896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
7897 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
7898 Object.defineProperty(exports, "__esModule", ({
7899 value: true
7900 }));
7901 exports["default"] = void 0;
7902 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
7903 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
7904 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
7905 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
7906 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
7907 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
7908 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
7909 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
7910 var _mediaOutlet = _interopRequireDefault(__webpack_require__(/*! ./media-outlet */ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js"));
7911 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-media/components/unsaved-changes-alert.js"));
7912 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
7913 var _globalActionsContext = __webpack_require__(/*! ./context/global-actions-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-actions-context.js");
7914 var _globalSettingsContext = __webpack_require__(/*! ./context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
7915 var _promptHistory = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-history */ "../modules/ai/assets/js/editor/components/prompt-history/index.js"));
7916 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); }
7917 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; }
7918 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; }
7919 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; }
7920 var initialData = {
7921 isAllSaved: false,
7922 hasUnsavedChanges: false
7923 };
7924 var SET_UNSAVED_CHANGES = 'SET_UNSAVED_CHANGES';
7925 var SAVE_AND_CLOSE = 'SAVE_AND_CLOSE';
7926 var reducer = function reducer(state, _ref) {
7927 var type = _ref.type,
7928 payload = _ref.payload;
7929 switch (type) {
7930 case SET_UNSAVED_CHANGES:
7931 return _objectSpread(_objectSpread({}, state), {}, {
7932 hasUnsavedChanges: payload,
7933 isAllSaved: payload ? false : state.isAllSaved
7934 });
7935 case SAVE_AND_CLOSE:
7936 return _objectSpread(_objectSpread({}, state), {}, {
7937 isAllSaved: true,
7938 hasUnsavedChanges: false
7939 });
7940 default:
7941 throw Error('Unknown action.');
7942 }
7943 };
7944 var FormMedia = function FormMedia(_ref2) {
7945 var onClose = _ref2.onClose,
7946 DialogProps = _ref2.DialogProps,
7947 getControlValue = _ref2.getControlValue,
7948 controlView = _ref2.controlView,
7949 additionalOptions = _ref2.additionalOptions,
7950 maybeRenderUpgradeChip = _ref2.maybeRenderUpgradeChip,
7951 hasSubscription = _ref2.hasSubscription,
7952 usagePercentage = _ref2.usagePercentage;
7953 var _useReducer = (0, _react.useReducer)(reducer, initialData),
7954 _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
7955 state = _useReducer2[0],
7956 dispatch = _useReducer2[1];
7957 var _useState = (0, _react.useState)(false),
7958 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
7959 showUnsavedChangeAlert = _useState2[0],
7960 setShowUnsavedChangeAlert = _useState2[1];
7961 var setHasUnsavedChanges = function setHasUnsavedChanges(payload) {
7962 return dispatch({
7963 type: SET_UNSAVED_CHANGES,
7964 payload: payload
7965 });
7966 };
7967 var saveAndClose = function saveAndClose() {
7968 return dispatch({
7969 type: SAVE_AND_CLOSE
7970 });
7971 };
7972 var onCloseIntent = function onCloseIntent() {
7973 if (state.hasUnsavedChanges) {
7974 setShowUnsavedChangeAlert(true);
7975 return;
7976 }
7977 onClose();
7978 };
7979 var editImageInitialData = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? {} : getControlValue();
7980 var globalSettings = {
7981 initialImageType: (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultImageType) || '',
7982 hasSubscription: hasSubscription,
7983 usagePercentage: usagePercentage
7984 };
7985 var globalActions = {
7986 state: state,
7987 getControlValue: getControlValue,
7988 saveAndClose: saveAndClose,
7989 close: onCloseIntent,
7990 setHasUnsavedChanges: setHasUnsavedChanges,
7991 setControlImage: function setControlImage(image) {
7992 controlView.setSettingsModel(image);
7993 controlView.applySavedValue();
7994 }
7995 };
7996 (0, _react.useEffect)(function () {
7997 if (state.isAllSaved) {
7998 // Closing the app only once the state was updated, to allow registered effects to take place before closing.
7999 onClose();
8000 }
8001 }, [state.isAllSaved]);
8002 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_promptDialog.default, (0, _extends2.default)({
8003 id: "e-form-media",
8004 onClose: function onClose() {
8005 return onCloseIntent();
8006 },
8007 maxWidth: "lg"
8008 }, DialogProps), /*#__PURE__*/_react.default.createElement(_promptDialog.default.Header, {
8009 onClose: function onClose() {
8010 return onCloseIntent();
8011 }
8012 }, /*#__PURE__*/_react.default.createElement(_promptHistory.default, null), maybeRenderUpgradeChip()), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_globalSettingsContext.GlobalSettingsProvider, {
8013 settings: globalSettings
8014 }, /*#__PURE__*/_react.default.createElement(_globalActionsContext.GlobalActionsProvider, {
8015 actions: globalActions
8016 }, /*#__PURE__*/_react.default.createElement(_locationContext.LocationProvider, null, /*#__PURE__*/_react.default.createElement(_editImageContext.EditImageProvider, {
8017 imageData: editImageInitialData
8018 }, /*#__PURE__*/_react.default.createElement(_mediaOutlet.default, null)))))), showUnsavedChangeAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
8019 onClose: onClose,
8020 onCancel: function onCancel() {
8021 return setShowUnsavedChangeAlert(false);
8022 },
8023 open: true
8024 }));
8025 };
8026 FormMedia.propTypes = {
8027 onClose: _propTypes.default.func.isRequired,
8028 DialogProps: _propTypes.default.object,
8029 getControlValue: _propTypes.default.func.isRequired,
8030 controlView: _propTypes.default.object,
8031 additionalOptions: _propTypes.default.object,
8032 credits: _propTypes.default.number,
8033 maybeRenderUpgradeChip: _propTypes.default.func,
8034 hasSubscription: _propTypes.default.bool,
8035 usagePercentage: _propTypes.default.number
8036 };
8037 var _default = FormMedia;
8038 exports["default"] = _default;
8039
8040 /***/ }),
8041
8042 /***/ "../modules/ai/assets/js/editor/pages/form-media/media-outlet.js":
8043 /*!***********************************************************************!*\
8044 !*** ../modules/ai/assets/js/editor/pages/form-media/media-outlet.js ***!
8045 \***********************************************************************/
8046 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8047
8048 "use strict";
8049
8050
8051 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8052 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8053 Object.defineProperty(exports, "__esModule", ({
8054 value: true
8055 }));
8056 exports["default"] = void 0;
8057 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8058 var _view = _interopRequireDefault(__webpack_require__(/*! ./components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8059 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
8060 var _constants = __webpack_require__(/*! ./constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8061 var _generate = _interopRequireDefault(__webpack_require__(/*! ./views/generate */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js"));
8062 var _imageTools = _interopRequireDefault(__webpack_require__(/*! ./views/image-tools */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js"));
8063 var _resize = _interopRequireDefault(__webpack_require__(/*! ./views/resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js"));
8064 var _inPainting = _interopRequireDefault(__webpack_require__(/*! ./views/in-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js"));
8065 var _outPainting = _interopRequireDefault(__webpack_require__(/*! ./views/out-painting */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js"));
8066 var _variations = _interopRequireDefault(__webpack_require__(/*! ./views/variations */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js"));
8067 var _replaceBackground = _interopRequireDefault(__webpack_require__(/*! ./views/replace-background */ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js"));
8068 var _removeBackground = _interopRequireDefault(__webpack_require__(/*! ./views/remove-background */ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js"));
8069 var _locationContext = __webpack_require__(/*! ./context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8070 var _editImageContext = __webpack_require__(/*! ./context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8071 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");
8072 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); }
8073 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; }
8074 var MediaOutlet = function MediaOutlet() {
8075 var _useEditImage = (0, _editImageContext.useEditImage)(),
8076 editImage = _useEditImage.editImage;
8077 var _useLocation = (0, _locationContext.useLocation)({
8078 current: _constants.LOCATIONS.GENERATE
8079 }),
8080 current = _useLocation.current,
8081 navigate = _useLocation.navigate;
8082 (0, _react.useEffect)(function () {
8083 var isNotPlaceholderImage = editImage.id;
8084 if (isNotPlaceholderImage) {
8085 navigate(_constants.LOCATIONS.IMAGE_TOOLS);
8086 }
8087 }, [editImage.id]);
8088 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
8089 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
8090 handler: function handler() {
8091 if (current !== _constants.LOCATIONS.GENERATE) {
8092 navigate(_constants.LOCATIONS.GENERATE);
8093 }
8094 }
8095 }]);
8096 if (!current) {
8097 return /*#__PURE__*/_react.default.createElement(_view.default, {
8098 alignItems: "center"
8099 }, /*#__PURE__*/_react.default.createElement(_loader.default, null));
8100 }
8101 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));
8102 };
8103 var _default = MediaOutlet;
8104 exports["default"] = _default;
8105
8106 /***/ }),
8107
8108 /***/ "../modules/ai/assets/js/editor/pages/form-media/utils/index.js":
8109 /*!**********************************************************************!*\
8110 !*** ../modules/ai/assets/js/editor/pages/form-media/utils/index.js ***!
8111 \**********************************************************************/
8112 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8113
8114 "use strict";
8115
8116
8117 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8118 Object.defineProperty(exports, "__esModule", ({
8119 value: true
8120 }));
8121 exports.getAspectRatioSizes = void 0;
8122 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8123 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8124 var _constants = __webpack_require__(/*! ../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8125 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; }
8126 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; }
8127 var getAspectRatioSizes = function getAspectRatioSizes(width, height) {
8128 var aspectRatios = Object.keys(_constants.IMAGE_ASPECT_RATIO);
8129 var targetRatio = width / height;
8130 var closestRatio = aspectRatios[0];
8131 var minDiff = Infinity;
8132 aspectRatios.forEach(function (ratio) {
8133 var _ratio$split$map = ratio.split(':').map(Number),
8134 _ratio$split$map2 = (0, _slicedToArray2.default)(_ratio$split$map, 2),
8135 w = _ratio$split$map2[0],
8136 h = _ratio$split$map2[1];
8137 var diff = Math.abs(targetRatio - w / h);
8138 if (diff < minDiff) {
8139 minDiff = diff;
8140 closestRatio = ratio;
8141 }
8142 });
8143 return _objectSpread({
8144 ratio: closestRatio
8145 }, _constants.IMAGE_ASPECT_RATIO[closestRatio]);
8146 };
8147 exports.getAspectRatioSizes = getAspectRatioSizes;
8148
8149 /***/ }),
8150
8151 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js":
8152 /*!****************************************************************************************************!*\
8153 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js ***!
8154 \****************************************************************************************************/
8155 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8156
8157 "use strict";
8158
8159
8160 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8161 Object.defineProperty(exports, "__esModule", ({
8162 value: true
8163 }));
8164 exports["default"] = void 0;
8165 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8166 var _react = __webpack_require__(/*! react */ "react");
8167 var _useImagesPreload2 = _interopRequireDefault(__webpack_require__(/*! ../../../../../hooks/use-images-preload */ "../modules/ai/assets/js/editor/hooks/use-images-preload.js"));
8168 var shuffleImages = function shuffleImages(images) {
8169 return images.map(function (image) {
8170 return [Math.random(), image];
8171 }).sort(function (_ref, _ref2) {
8172 var _ref3 = (0, _slicedToArray2.default)(_ref, 1),
8173 a = _ref3[0];
8174 var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
8175 b = _ref4[0];
8176 return a - b;
8177 }).map(function (_ref5) {
8178 var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
8179 image = _ref6[1];
8180 return image;
8181 });
8182 };
8183 var useSuggestedImages = function useSuggestedImages(_ref7) {
8184 var selectedType = _ref7.selectedType;
8185 var _useState = (0, _react.useState)(false),
8186 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8187 isLoading = _useState2[0],
8188 setIsLoading = _useState2[1];
8189 var _useState3 = (0, _react.useState)({
8190 images: []
8191 }),
8192 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
8193 data = _useState4[0],
8194 setImagesState = _useState4[1];
8195 var _useImagesPreload = (0, _useImagesPreload2.default)(),
8196 ready = _useImagesPreload.ready,
8197 preloadImages = _useImagesPreload.preloadImages;
8198 var imagesData = (0, _react.useMemo)(function () {
8199 var shuffledImages = shuffleImages(data.images);
8200 if (!selectedType) {
8201 return shuffledImages;
8202 }
8203 var categoryImages = shuffledImages.filter(function (_ref8) {
8204 var imageType = _ref8.imageType;
8205 return imageType.includes(selectedType);
8206 });
8207
8208 // Some categories don't have images, so we TEMPORARLY fallback to the shuffled images.
8209 return categoryImages.length ? categoryImages : shuffledImages;
8210 }, [selectedType, data]);
8211 var fetchImages = function fetchImages() {
8212 setIsLoading(true);
8213 fetch('https://my.elementor.com/ai/images-prompt-gallery/ai-gallery.json').then(function (response) {
8214 return response.json();
8215 }).then(function (json) {
8216 return setImagesState(json);
8217 })
8218 // eslint-disable-next-line no-console
8219 .catch(function (e) {
8220 return console.log(e.message);
8221 }).finally(function () {
8222 return setIsLoading(false);
8223 });
8224 };
8225 (0, _react.useEffect)(function () {
8226 if (0 === (data === null || data === void 0 ? void 0 : data.images.length)) {
8227 fetchImages();
8228 return;
8229 }
8230 preloadImages(data.images.map(function (_ref9) {
8231 var thumbnailUrl = _ref9.thumbnailUrl;
8232 return thumbnailUrl;
8233 }));
8234 }, [data]);
8235 return {
8236 imagesData: imagesData,
8237 isLoading: !ready || isLoading
8238 };
8239 };
8240 var _default = useSuggestedImages;
8241 exports["default"] = _default;
8242
8243 /***/ }),
8244
8245 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js":
8246 /*!*************************************************************************************************!*\
8247 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-text-to-image.js ***!
8248 \*************************************************************************************************/
8249 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8250
8251 "use strict";
8252
8253
8254 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8255 Object.defineProperty(exports, "__esModule", ({
8256 value: true
8257 }));
8258 exports["default"] = void 0;
8259 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8260 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8261 var useTextToImage = function useTextToImage(initialValue) {
8262 return (0, _useImagePrompt.default)(_api.getTextToImageGeneration, initialValue);
8263 };
8264 var _default = useTextToImage;
8265 exports["default"] = _default;
8266
8267 /***/ }),
8268
8269 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js":
8270 /*!*******************************************************************************!*\
8271 !*** ../modules/ai/assets/js/editor/pages/form-media/views/generate/index.js ***!
8272 \*******************************************************************************/
8273 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8274
8275 "use strict";
8276
8277
8278 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8279 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8280 Object.defineProperty(exports, "__esModule", ({
8281 value: true
8282 }));
8283 exports["default"] = void 0;
8284 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8285 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
8286 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8287 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8288 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8289 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8290 var _gallery = _interopRequireDefault(__webpack_require__(/*! ../../components/gallery */ "../modules/ai/assets/js/editor/pages/form-media/components/gallery.js"));
8291 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
8292 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
8293 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
8294 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
8295 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
8296 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
8297 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
8298 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
8299 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
8300 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8301 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
8302 var _useSuggestedImages2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-suggested-images */ "../modules/ai/assets/js/editor/pages/form-media/views/generate/hooks/use-suggested-images.js"));
8303 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"));
8304 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8305 var _globalSettingsContext = __webpack_require__(/*! ../../context/global-settings-context */ "../modules/ai/assets/js/editor/pages/form-media/context/global-settings-context.js");
8306 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");
8307 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
8308 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
8309 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); }
8310 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; }
8311 var getPromptPlaceholder = function getPromptPlaceholder(images) {
8312 if (!(images !== null && images !== void 0 && images.length)) {
8313 return (0, _i18n.__)('describe your image', 'elementor');
8314 }
8315 var randomImage = images[Math.floor(Math.random() * images.length)];
8316 return randomImage.prompt;
8317 };
8318 var Generate = function Generate() {
8319 var _useState = (0, _react.useState)(''),
8320 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8321 prompt = _useState2[0],
8322 setPrompt = _useState2[1];
8323 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
8324 setGenerate = _useRequestIds.setGenerate;
8325 var _useGlobalSettings = (0, _globalSettingsContext.useGlobalSettings)(),
8326 initialImageType = _useGlobalSettings.initialImageType;
8327 var _usePromptSettings = (0, _usePromptSettings2.default)({
8328 type: initialImageType
8329 }),
8330 settings = _usePromptSettings.settings,
8331 updateSettings = _usePromptSettings.updateSettings,
8332 resetSettings = _usePromptSettings.resetSettings;
8333 var _useSuggestedImages = (0, _useSuggestedImages2.default)({
8334 selectedType: settings[_usePromptSettings2.IMAGE_TYPE]
8335 }),
8336 suggestedImages = _useSuggestedImages.imagesData,
8337 isPreloading = _useSuggestedImages.isLoading;
8338 var promptPlaceholder = getPromptPlaceholder(suggestedImages);
8339 var _useTextToImage = (0, _useTextToImage2.default)({}),
8340 generatedImages = _useTextToImage.data,
8341 setResult = _useTextToImage.setResult,
8342 send = _useTextToImage.send,
8343 isGenerating = _useTextToImage.isLoading,
8344 error = _useTextToImage.error,
8345 reset = _useTextToImage.reset;
8346 var _useImageActions = (0, _useImageActions2.default)(),
8347 use = _useImageActions.use,
8348 edit = _useImageActions.edit,
8349 isUploading = _useImageActions.isLoading;
8350 var isLoading = isPreloading || isGenerating || isUploading;
8351
8352 // The aspect ratio in the content view should only be updated when the generated images are updated.
8353 var generateAspectRatio = (0, _react.useMemo)(function () {
8354 return settings[_usePromptSettings2.IMAGE_RATIO];
8355 }, [generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result]);
8356 var handleSubmit = function handleSubmit(event) {
8357 event.preventDefault();
8358 setGenerate();
8359 send({
8360 prompt: prompt,
8361 settings: settings
8362 });
8363 };
8364 var handleCopyPrompt = function handleCopyPrompt(_ref) {
8365 var _updateSettings;
8366 var selectedPrompt = _ref.prompt,
8367 imageType = _ref.imageType;
8368 setPrompt(selectedPrompt);
8369 var _imageType$split = imageType.split('/'),
8370 _imageType$split2 = (0, _slicedToArray2.default)(_imageType$split, 2),
8371 type = _imageType$split2[0],
8372 style = _imageType$split2[1];
8373 updateSettings((_updateSettings = {}, (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_TYPE, type), (0, _defineProperty2.default)(_updateSettings, _usePromptSettings2.IMAGE_STYLE, style), _updateSettings));
8374 };
8375 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
8376 type: _promptHistoryActionContext.ACTION_TYPES.RESTORE,
8377 handler: function handler(action) {
8378 var _action$data, _action$data2, _action$data3, _action$data4;
8379 handleCopyPrompt({
8380 prompt: (_action$data = action.data) === null || _action$data === void 0 ? void 0 : _action$data.prompt,
8381 imageType: ((_action$data2 = action.data) === null || _action$data2 === void 0 ? void 0 : _action$data2.imageType) || ''
8382 });
8383 updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, (_action$data3 = action.data) === null || _action$data3 === void 0 ? void 0 : _action$data3.ratio));
8384 setResult((_action$data4 = action.data) === null || _action$data4 === void 0 ? void 0 : _action$data4.images, action.id);
8385 }
8386 }]);
8387 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8388 primary: (0, _i18n.__)('Imagine anything create everything', 'elementor'),
8389 secondary: (0, _i18n.__)('Generate images by selecting the desired type and style, and entering a prompt.', 'elementor')
8390 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
8391 error: error,
8392 onRetry: handleSubmit
8393 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
8394 onSubmit: handleSubmit
8395 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
8396 "data-testid": "e-image-prompt",
8397 value: prompt,
8398 disabled: isLoading,
8399 placeholder: promptPlaceholder,
8400 onChange: setPrompt
8401 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
8402 disabled: isLoading,
8403 value: settings[_usePromptSettings2.IMAGE_TYPE],
8404 onChange: function onChange(event) {
8405 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
8406 }
8407 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
8408 type: settings[_usePromptSettings2.IMAGE_TYPE],
8409 value: settings[_usePromptSettings2.IMAGE_STYLE],
8410 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
8411 onChange: function onChange(event) {
8412 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
8413 }
8414 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
8415 disabled: isLoading,
8416 value: settings[_usePromptSettings2.IMAGE_RATIO],
8417 onChange: function onChange(event) {
8418 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
8419 }
8420 }), generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8421 gap: 2,
8422 sx: {
8423 my: 2.5
8424 }
8425 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
8426 disabled: isLoading || '' === prompt
8427 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
8428 disabled: isLoading,
8429 onClick: function onClick() {
8430 resetSettings();
8431 setPrompt('');
8432 reset();
8433 }
8434 })) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
8435 disabled: isLoading || '' === prompt
8436 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
8437 isLoading: isPreloading || isUploading,
8438 isGenerating: isGenerating
8439 }, generatedImages !== null && generatedImages !== void 0 && generatedImages.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
8440 images: generatedImages === null || generatedImages === void 0 ? void 0 : generatedImages.result,
8441 aspectRatio: generateAspectRatio,
8442 onUseImage: use,
8443 onEditImage: edit
8444 }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_view.default.ContentHeading, {
8445 primary: (0, _i18n.__)('Spark your imagination with images generated by our community', 'elementor')
8446 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8447 sx: {
8448 mb: 3
8449 }
8450 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
8451 libraryLink: "https://go.elementor.com/ai-prompt-library-image/"
8452 })), /*#__PURE__*/_react.default.createElement(_gallery.default, {
8453 cols: 3
8454 }, suggestedImages === null || suggestedImages === void 0 ? void 0 : suggestedImages.map(function (suggestedPrompt) {
8455 return /*#__PURE__*/_react.default.createElement(_gallery.default.Image, {
8456 variant: "thumbnail",
8457 key: suggestedPrompt.prompt,
8458 alt: suggestedPrompt.prompt,
8459 text: suggestedPrompt.prompt,
8460 src: suggestedPrompt.thumbnailUrl
8461 }, /*#__PURE__*/_react.default.createElement(_imageActions.default, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8462 onClick: function onClick() {
8463 return use(suggestedPrompt);
8464 },
8465 fullWidth: true
8466 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.CopyIcon, {
8467 onClick: function onClick() {
8468 return handleCopyPrompt(suggestedPrompt);
8469 }
8470 }), /*#__PURE__*/_react.default.createElement(_imageActions.default.EditIcon, {
8471 onClick: function onClick() {
8472 return edit(suggestedPrompt);
8473 }
8474 })));
8475 })))));
8476 };
8477 var _default = Generate;
8478 exports["default"] = _default;
8479
8480 /***/ }),
8481
8482 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js":
8483 /*!************************************************************************************************!*\
8484 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js ***!
8485 \************************************************************************************************/
8486 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8487
8488 "use strict";
8489
8490
8491 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8492 Object.defineProperty(exports, "__esModule", ({
8493 value: true
8494 }));
8495 exports["default"] = void 0;
8496 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8497 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
8498 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8499 var _imageActions = _interopRequireDefault(__webpack_require__(/*! ../../components/image-actions */ "../modules/ai/assets/js/editor/pages/form-media/components/image-actions.js"));
8500 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
8501 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
8502 var ImageToolsContent = function ImageToolsContent() {
8503 var _useEditImage = (0, _editImageContext.useEditImage)(),
8504 editImage = _useEditImage.editImage,
8505 width = _useEditImage.width,
8506 height = _useEditImage.height;
8507 var _useImageActions = (0, _useImageActions2.default)(),
8508 use = _useImageActions.use;
8509 return /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
8510 src: editImage.url,
8511 style: {
8512 width: width,
8513 height: height
8514 },
8515 alt: editImage.alt || (0, _i18n.__)('Image preview', 'elementor')
8516 }, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Actions, null, /*#__PURE__*/_react.default.createElement(_imageActions.default.UseImage, {
8517 onClick: function onClick() {
8518 return use(editImage);
8519 }
8520 }))));
8521 };
8522 var _default = ImageToolsContent;
8523 exports["default"] = _default;
8524
8525 /***/ }),
8526
8527 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js":
8528 /*!**********************************************************************************************!*\
8529 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js ***!
8530 \**********************************************************************************************/
8531 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8532
8533 "use strict";
8534
8535
8536 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8537 Object.defineProperty(exports, "__esModule", ({
8538 value: true
8539 }));
8540 exports["default"] = void 0;
8541 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8542 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8543 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8544 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8545 var _expandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/expand-icon */ "../modules/ai/assets/js/editor/icons/expand-icon.js"));
8546 var _brushIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/brush-icon */ "../modules/ai/assets/js/editor/icons/brush-icon.js"));
8547 var _evolveIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/evolve-icon */ "../modules/ai/assets/js/editor/icons/evolve-icon.js"));
8548 var _enlargerIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/enlarger-icon */ "../modules/ai/assets/js/editor/icons/enlarger-icon.js"));
8549 var _removeBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/remove-bg */ "../modules/ai/assets/js/editor/icons/remove-bg.js"));
8550 var _replaceBg = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/replace-bg */ "../modules/ai/assets/js/editor/icons/replace-bg.js"));
8551 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8552 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8553 var TeaserDrawing = function TeaserDrawing() {
8554 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, {
8555 viewBox: "0 0 184 80",
8556 sx: {
8557 width: 184,
8558 height: 80
8559 }
8560 }, /*#__PURE__*/_react.default.createElement("g", {
8561 clipPath: "url(#clip0_3127_96542)"
8562 }, /*#__PURE__*/_react.default.createElement("path", {
8563 fillRule: "evenodd",
8564 clipRule: "evenodd",
8565 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",
8566 fill: "#69727D"
8567 }), /*#__PURE__*/_react.default.createElement("path", {
8568 fillRule: "evenodd",
8569 clipRule: "evenodd",
8570 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",
8571 fill: "#69727D"
8572 }), /*#__PURE__*/_react.default.createElement("path", {
8573 d: "M53.9717 12L57.2198 17.0456L3.24796 51.4731L-0.000164873 46.4275L53.9717 12Z",
8574 fill: "#69727D"
8575 }), /*#__PURE__*/_react.default.createElement("path", {
8576 d: "M64.9761 5L68.2242 10.0456L57.2612 17.0387L54.013 11.9931L64.9761 5Z",
8577 fill: "#E6E8EA"
8578 }), /*#__PURE__*/_react.default.createElement("path", {
8579 fillRule: "evenodd",
8580 clipRule: "evenodd",
8581 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",
8582 fill: "#69727D"
8583 }), /*#__PURE__*/_react.default.createElement("path", {
8584 fillRule: "evenodd",
8585 clipRule: "evenodd",
8586 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",
8587 fill: "#69727D"
8588 }), /*#__PURE__*/_react.default.createElement("path", {
8589 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",
8590 fill: "#E6E8EA"
8591 }), /*#__PURE__*/_react.default.createElement("path", {
8592 fillRule: "evenodd",
8593 clipRule: "evenodd",
8594 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",
8595 fill: "#69727D"
8596 }), /*#__PURE__*/_react.default.createElement("path", {
8597 fillRule: "evenodd",
8598 clipRule: "evenodd",
8599 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",
8600 fill: "#69727D"
8601 }), /*#__PURE__*/_react.default.createElement("path", {
8602 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",
8603 fill: "#E6E8EA"
8604 }), /*#__PURE__*/_react.default.createElement("path", {
8605 fillRule: "evenodd",
8606 clipRule: "evenodd",
8607 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",
8608 fill: "#69727D"
8609 }), /*#__PURE__*/_react.default.createElement("path", {
8610 fillRule: "evenodd",
8611 clipRule: "evenodd",
8612 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",
8613 fill: "#69727D"
8614 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
8615 id: "clip0_3127_96542"
8616 }, /*#__PURE__*/_react.default.createElement("rect", {
8617 width: "184",
8618 height: "80",
8619 fill: "white"
8620 }))));
8621 };
8622 var ImageToolsContainer = (0, _ui.styled)(_ui.Box)(function (_ref) {
8623 var theme = _ref.theme;
8624 return {
8625 height: "calc(100% - ".concat(theme.spacing(13), ")")
8626 };
8627 });
8628 var ToolsTeaserContainer = (0, _ui.styled)(_ui.Box)(function (_ref2) {
8629 var theme = _ref2.theme;
8630 return {
8631 position: 'sticky',
8632 top: '100%',
8633 padding: theme.spacing(4, 0, 1)
8634 };
8635 });
8636 var ImageToolsPanel = function ImageToolsPanel() {
8637 var _useLocation = (0, _locationContext.useLocation)(),
8638 navigate = _useLocation.navigate;
8639 var tools = [{
8640 label: (0, _i18n.__)('Expand Image', 'elementor'),
8641 Icon: _expandIcon.default,
8642 onClick: function onClick() {
8643 return navigate(_constants.LOCATIONS.OUT_PAINTING);
8644 }
8645 }, {
8646 label: (0, _i18n.__)('Generative Fill', 'elementor'),
8647 Icon: _brushIcon.default,
8648 onClick: function onClick() {
8649 return navigate(_constants.LOCATIONS.IN_PAINTING);
8650 }
8651 }, {
8652 label: (0, _i18n.__)('Resize', 'elementor'),
8653 Icon: _enlargerIcon.default,
8654 onClick: function onClick() {
8655 return navigate(_constants.LOCATIONS.RESIZE);
8656 }
8657 }, {
8658 label: (0, _i18n.__)('Variations', 'elementor'),
8659 Icon: _evolveIcon.default,
8660 onClick: function onClick() {
8661 return navigate(_constants.LOCATIONS.VARIATIONS);
8662 }
8663 }, {
8664 label: (0, _i18n.__)('Remove Background', 'elementor'),
8665 Icon: _removeBg.default,
8666 onClick: function onClick() {
8667 return navigate(_constants.LOCATIONS.REMOVE_BACKGROUND);
8668 }
8669 }, {
8670 label: (0, _i18n.__)('Replace Background', 'elementor'),
8671 Icon: _replaceBg.default,
8672 onClick: function onClick() {
8673 return navigate(_constants.LOCATIONS.REPLACE_BACKGROUND);
8674 }
8675 }];
8676 return /*#__PURE__*/_react.default.createElement(ImageToolsContainer, null, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8677 display: "grid",
8678 gridTemplateColumns: "repeat(2, 1fr)",
8679 gap: 1,
8680 justifyContent: "center"
8681 }, tools.map(function (_ref3) {
8682 var label = _ref3.label,
8683 Icon = _ref3.Icon,
8684 onClick = _ref3.onClick;
8685 return /*#__PURE__*/_react.default.createElement(_ui.Button, {
8686 onClick: onClick,
8687 key: label,
8688 variant: "outlined",
8689 color: "secondary",
8690 disabled: false,
8691 sx: {
8692 py: 3,
8693 fontSize: '12px',
8694 height: 'auto',
8695 borderRadius: '4px'
8696 }
8697 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
8698 display: "flex",
8699 justifyContent: "center",
8700 alignItems: "center",
8701 flexDirection: "column"
8702 }, /*#__PURE__*/_react.default.createElement(Icon, {
8703 sx: {
8704 mb: 0.5
8705 }
8706 }), label));
8707 })), /*#__PURE__*/_react.default.createElement(ToolsTeaserContainer, {
8708 display: "flex",
8709 flexDirection: "column",
8710 alignItems: "center"
8711 }, /*#__PURE__*/_react.default.createElement(TeaserDrawing, null), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
8712 variant: "body2",
8713 align: "center",
8714 color: "secondary",
8715 sx: {
8716 mt: 2
8717 }
8718 }, (0, _i18n.__)('Stay tuned! More incredible AI tools are coming your way soon.', 'elementor'))));
8719 };
8720 ImageToolsPanel.propTypes = {
8721 generateNewPrompt: _propTypes.default.func,
8722 panelActive: _propTypes.default.bool
8723 };
8724 var _default = ImageToolsPanel;
8725 exports["default"] = _default;
8726
8727 /***/ }),
8728
8729 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js":
8730 /*!**********************************************************************************!*\
8731 !*** ../modules/ai/assets/js/editor/pages/form-media/views/image-tools/index.js ***!
8732 \**********************************************************************************/
8733 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8734
8735 "use strict";
8736
8737
8738 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8739 Object.defineProperty(exports, "__esModule", ({
8740 value: true
8741 }));
8742 exports["default"] = void 0;
8743 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
8744 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
8745 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8746 var _imageToolsPanel = _interopRequireDefault(__webpack_require__(/*! ./image-tools-panel */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-panel.js"));
8747 var _imageToolsContent = _interopRequireDefault(__webpack_require__(/*! ./image-tools-content */ "../modules/ai/assets/js/editor/pages/form-media/views/image-tools/image-tools-content.js"));
8748 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
8749 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
8750 var ImageTools = function ImageTools() {
8751 var _useLocation = (0, _locationContext.useLocation)(),
8752 navigate = _useLocation.navigate;
8753 return /*#__PURE__*/_react.default.createElement(_view.default, null, /*#__PURE__*/_react.default.createElement(_view.default.Panel, null, /*#__PURE__*/_react.default.createElement(_view.default.BackButton, {
8754 onClick: function onClick() {
8755 return navigate(_constants.LOCATIONS.GENERATE);
8756 }
8757 }, (0, _i18n.__)('Generate with a prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_view.default.PanelHeading, {
8758 primary: (0, _i18n.__)('Edit with AI', 'elementor')
8759 }), /*#__PURE__*/_react.default.createElement(_imageToolsPanel.default, null)), /*#__PURE__*/_react.default.createElement(_view.default.Content, null, /*#__PURE__*/_react.default.createElement(_imageToolsContent.default, null)));
8760 };
8761 var _default = ImageTools;
8762 exports["default"] = _default;
8763
8764 /***/ }),
8765
8766 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js":
8767 /*!**************************************************************************************************!*\
8768 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/hooks/use-in-painting.js ***!
8769 \**************************************************************************************************/
8770 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8771
8772 "use strict";
8773
8774
8775 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8776 Object.defineProperty(exports, "__esModule", ({
8777 value: true
8778 }));
8779 exports["default"] = void 0;
8780 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
8781 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
8782 var useInPainting = function useInPainting(initialValue) {
8783 var fetchAction = function fetchAction(payload) {
8784 return (0, _api.getImageToImageMaskGeneration)(payload);
8785 };
8786 return (0, _useImagePrompt.default)(fetchAction, initialValue);
8787 };
8788 var _default = useInPainting;
8789 exports["default"] = _default;
8790
8791 /***/ }),
8792
8793 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js":
8794 /*!************************************************************************************************!*\
8795 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js ***!
8796 \************************************************************************************************/
8797 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8798
8799 "use strict";
8800
8801
8802 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
8803 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
8804 Object.defineProperty(exports, "__esModule", ({
8805 value: true
8806 }));
8807 exports["default"] = void 0;
8808 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8809 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
8810 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
8811 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
8812 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
8813 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
8814 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8815 var _reactSketchCanvas = __webpack_require__(/*! react-sketch-canvas */ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js");
8816 var _undoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/undo-icon */ "../modules/ai/assets/js/editor/icons/undo-icon.js"));
8817 var _redoIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/redo-icon */ "../modules/ai/assets/js/editor/icons/redo-icon.js"));
8818 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); }
8819 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; }
8820 var STROKE_SELECT_WIDTH = 120;
8821 var BRUSH_COLOR = 'rgba(0, 0, 0, 0.75)';
8822 var StyledUndoIcon = (0, _ui.withDirection)(_undoIcon.default);
8823 var StyledRedoIcon = (0, _ui.withDirection)(_redoIcon.default);
8824 var BrushCursor = (0, _ui.styled)(_ui.Box, {
8825 shouldForwardProp: function shouldForwardProp(prop) {
8826 return 'size' === prop;
8827 }
8828 })(function (_ref) {
8829 var theme = _ref.theme,
8830 size = _ref.size;
8831 return {
8832 position: 'absolute',
8833 width: size,
8834 height: size,
8835 borderRadius: '50%',
8836 backgroundColor: BRUSH_COLOR,
8837 pointerEvents: 'none',
8838 transform: "translate(".concat('rtl' === theme.direction ? '50%' : '-50%', ", -50%)"),
8839 border: "1px solid #fff"
8840 };
8841 });
8842 var BrishSizeIcon = (0, _ui.styled)(_ui.Box, {
8843 shouldForwardProp: function shouldForwardProp(prop) {
8844 return 'size' === prop;
8845 }
8846 })(function (_ref2) {
8847 var theme = _ref2.theme,
8848 size = _ref2.size;
8849 return {
8850 width: size / 2,
8851 height: size / 2,
8852 borderRadius: '50%',
8853 backgroundColor: theme.palette.secondary.main
8854 };
8855 });
8856 var InPaintingContent = function InPaintingContent(_ref3) {
8857 var editImage = _ref3.editImage,
8858 setMask = _ref3.setMask,
8859 canvasWidth = _ref3.width,
8860 canvasHeight = _ref3.height;
8861 var sketchRef = (0, _react.useRef)();
8862 var _useState = (0, _react.useState)(30),
8863 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
8864 stroke = _useState2[0],
8865 setStroke = _useState2[1];
8866 var brushCursorRef = (0, _react.useRef)();
8867 (0, _react.useEffect)(function () {
8868 var canvas = document.querySelector('.eui-in-painting-canvas');
8869
8870 // The BrushCursor should follow the mouse position but should stay only inside the canvas.
8871 var positionElement = function positionElement(e) {
8872 var _canvas$getBoundingCl = canvas.getBoundingClientRect(),
8873 left = _canvas$getBoundingCl.left,
8874 top = _canvas$getBoundingCl.top,
8875 width = _canvas$getBoundingCl.width,
8876 height = _canvas$getBoundingCl.height;
8877 var x = e.clientX - left;
8878 var y = e.clientY - top;
8879 if (x > 0 && x < width && y > 0 && y < height) {
8880 brushCursorRef.current.style.left = "".concat(x, "px");
8881 brushCursorRef.current.style.top = "".concat(y, "px");
8882 }
8883 };
8884 window.addEventListener('mousemove', positionElement);
8885 return function () {
8886 window.removeEventListener('mousemove', positionElement);
8887 };
8888 }, [stroke]);
8889 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8890 alignItems: "flex-start",
8891 spacing: 0.5,
8892 flexGrow: 1
8893 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8894 width: "100%",
8895 direction: "row",
8896 spacing: 3,
8897 alignSelf: "center",
8898 justifyContent: "center",
8899 sx: {
8900 mb: 2.5
8901 }
8902 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8903 direction: "row",
8904 gap: 1
8905 }, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8906 title: (0, _i18n.__)('Undo', 'elementor')
8907 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8908 variant: "outlined",
8909 color: "secondary",
8910 onClick: function onClick() {
8911 return sketchRef.current.undo();
8912 },
8913 sx: {
8914 px: 0
8915 }
8916 }, /*#__PURE__*/_react.default.createElement(StyledUndoIcon, null))), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
8917 title: (0, _i18n.__)('Redo', 'elementor')
8918 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
8919 variant: "outlined",
8920 color: "secondary",
8921 onClick: function onClick() {
8922 return sketchRef.current.redo();
8923 },
8924 sx: {
8925 px: 0
8926 }
8927 }, /*#__PURE__*/_react.default.createElement(StyledRedoIcon, null)))), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
8928 size: "small",
8929 color: "secondary",
8930 sx: {
8931 minWidth: STROKE_SELECT_WIDTH
8932 }
8933 }, /*#__PURE__*/_react.default.createElement(_ui.InputLabel, {
8934 id: "stroke"
8935 }, "Stroke"), /*#__PURE__*/_react.default.createElement(_ui.Select, {
8936 autoWidth: true,
8937 label: "Stroke",
8938 value: stroke,
8939 id: "demo-simple-select",
8940 labelId: "demo-simple-select-label",
8941 onChange: function onChange(e) {
8942 return setStroke(e.target.value);
8943 },
8944 MenuProps: {
8945 PaperProps: {
8946 sx: {
8947 maxWidth: STROKE_SELECT_WIDTH
8948 }
8949 },
8950 MenuListProps: {
8951 sx: {
8952 minWidth: STROKE_SELECT_WIDTH
8953 }
8954 }
8955 },
8956 sx: {
8957 '& .MuiSelect-select .MuiListItemIcon-root': {
8958 mr: 0.25,
8959 width: 'initial',
8960 minWidth: 'initial',
8961 justifyContent: 'flex-start'
8962 }
8963 }
8964 }, [10, 20, 30, 40, 50].map(function (value) {
8965 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
8966 key: 'stroke-width-option-' + value,
8967 value: value
8968 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
8969 direction: "row",
8970 alignItems: "center",
8971 gap: 1
8972 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, {
8973 sx: {
8974 width: 30,
8975 display: 'flex',
8976 justifyContent: 'center'
8977 }
8978 }, /*#__PURE__*/_react.default.createElement(BrishSizeIcon, {
8979 size: value
8980 })), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, null, value)));
8981 })))), /*#__PURE__*/_react.default.createElement("div", {
8982 style: {
8983 margin: '0 auto',
8984 position: 'relative',
8985 cursor: 'none',
8986 overflow: 'hidden'
8987 }
8988 }, /*#__PURE__*/_react.default.createElement(BrushCursor, {
8989 ref: brushCursorRef,
8990 size: stroke
8991 }), /*#__PURE__*/_react.default.createElement(_reactSketchCanvas.ReactSketchCanvas, {
8992 className: "eui-in-painting-canvas",
8993 withViewBox: true,
8994 ref: sketchRef,
8995 height: canvasHeight + 'px',
8996 width: canvasWidth + 'px',
8997 strokeWidth: stroke,
8998 strokeColor: BRUSH_COLOR,
8999 backgroundImage: editImage.url,
9000 onChange: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
9001 var svg;
9002 return _regenerator.default.wrap(function _callee$(_context) {
9003 while (1) switch (_context.prev = _context.next) {
9004 case 0:
9005 _context.next = 2;
9006 return sketchRef.current.exportSvg();
9007 case 2:
9008 svg = _context.sent;
9009 setMask(svg);
9010 case 4:
9011 case "end":
9012 return _context.stop();
9013 }
9014 }, _callee);
9015 }))
9016 })));
9017 };
9018 InPaintingContent.propTypes = {
9019 setMask: _propTypes.default.func.isRequired,
9020 width: _propTypes.default.number.isRequired,
9021 height: _propTypes.default.number.isRequired,
9022 editImage: _propTypes.default.object.isRequired
9023 };
9024 var _default = InPaintingContent;
9025 exports["default"] = _default;
9026
9027 /***/ }),
9028
9029 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js":
9030 /*!**********************************************************************************!*\
9031 !*** ../modules/ai/assets/js/editor/pages/form-media/views/in-painting/index.js ***!
9032 \**********************************************************************************/
9033 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9034
9035 "use strict";
9036
9037
9038 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9039 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9040 Object.defineProperty(exports, "__esModule", ({
9041 value: true
9042 }));
9043 exports["default"] = void 0;
9044 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9045 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9046 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9047 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9048 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9049 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9050 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9051 var _inPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./in-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/in-painting/in-painting-content.js"));
9052 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9053 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9054 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9055 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9056 var _usePromptSettings2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9057 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"));
9058 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9059 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9060 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.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 InPainting = function InPainting() {
9064 var _useState = (0, _react.useState)(''),
9065 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9066 prompt = _useState2[0],
9067 setPrompt = _useState2[1];
9068 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9069 setGenerate = _useRequestIds.setGenerate;
9070 var _useState3 = (0, _react.useState)(''),
9071 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
9072 mask = _useState4[0],
9073 setMask = _useState4[1];
9074 var _usePromptSettings = (0, _usePromptSettings2.default)(),
9075 settings = _usePromptSettings.settings,
9076 resetSettings = _usePromptSettings.resetSettings;
9077 var _useEditImage = (0, _editImageContext.useEditImage)(),
9078 editImage = _useEditImage.editImage,
9079 width = _useEditImage.width,
9080 height = _useEditImage.height;
9081 var _useImageActions = (0, _useImageActions2.default)(),
9082 use = _useImageActions.use,
9083 edit = _useImageActions.edit,
9084 isUploading = _useImageActions.isLoading;
9085 var _useInPainting = (0, _useInPainting2.default)(),
9086 data = _useInPainting.data,
9087 send = _useInPainting.send,
9088 isGenerating = _useInPainting.isLoading,
9089 error = _useInPainting.error,
9090 reset = _useInPainting.reset;
9091 var isLoading = isGenerating || isUploading;
9092 var handleSubmit = function handleSubmit(event) {
9093 event.preventDefault();
9094
9095 // The fallback instruction should be hidden for the user.
9096 var finalPrompt = prompt || 'Remove object and fill based on the surroundings';
9097 setGenerate();
9098 send({
9099 prompt: finalPrompt,
9100 settings: settings,
9101 image: editImage,
9102 mask: mask
9103 });
9104 };
9105 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, {
9106 primary: (0, _i18n.__)('Generative Fill', 'elementor'),
9107 secondary: (0, _i18n.__)('Mark an area and edit it with a prompt.', 'elementor')
9108 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9109 error: error,
9110 onRetry: handleSubmit
9111 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9112 onSubmit: handleSubmit
9113 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
9114 value: prompt,
9115 disabled: isLoading,
9116 onChange: setPrompt,
9117 placeholder: (0, _i18n.__)('Describe what you want to generate in the marked area (English only)', 'elementor')
9118 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9119 gap: 2,
9120 sx: {
9121 my: 2.5
9122 }
9123 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9124 disabled: isLoading
9125 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9126 disabled: isLoading,
9127 onClick: function onClick() {
9128 resetSettings();
9129 setPrompt('');
9130 reset();
9131 }
9132 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9133 disabled: isLoading
9134 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9135 isGenerating: isLoading
9136 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9137 images: data.result,
9138 aspectRatio: editImage.aspectRatio,
9139 onUseImage: use,
9140 onEditImage: edit
9141 }) : /*#__PURE__*/_react.default.createElement(_inPaintingContent.default, {
9142 editImage: editImage,
9143 width: width,
9144 height: height,
9145 setMask: setMask
9146 })));
9147 };
9148 var _default = InPainting;
9149 exports["default"] = _default;
9150
9151 /***/ }),
9152
9153 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js":
9154 /*!****************************************************************************************************!*\
9155 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/hooks/use-out-painting.js ***!
9156 \****************************************************************************************************/
9157 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9158
9159 "use strict";
9160
9161
9162 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9163 Object.defineProperty(exports, "__esModule", ({
9164 value: true
9165 }));
9166 exports["default"] = void 0;
9167 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9168 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9169 var useOutPainting = function useOutPainting(initialValue) {
9170 var fetchAction = function fetchAction(payload) {
9171 return (0, _api.getImageToImageOutPainting)(payload);
9172 };
9173 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9174 };
9175 var _default = useOutPainting;
9176 exports["default"] = _default;
9177
9178 /***/ }),
9179
9180 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js":
9181 /*!***********************************************************************************!*\
9182 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/index.js ***!
9183 \***********************************************************************************/
9184 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9185
9186 "use strict";
9187
9188
9189 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9190 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9191 Object.defineProperty(exports, "__esModule", ({
9192 value: true
9193 }));
9194 exports["default"] = void 0;
9195 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9196 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9197 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9198 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9199 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9200 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9201 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9202 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
9203 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9204 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9205 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9206 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9207 var _outPaintingContent = _interopRequireDefault(__webpack_require__(/*! ./out-painting-content */ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js"));
9208 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9209 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9210 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9211 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9212 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"));
9213 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
9214 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); }
9215 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; }
9216 var OutPainting = function OutPainting() {
9217 var _useState = (0, _react.useState)(''),
9218 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9219 prompt = _useState2[0],
9220 setPrompt = _useState2[1];
9221 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9222 setGenerate = _useRequestIds.setGenerate;
9223 var _useEditImage = (0, _editImageContext.useEditImage)(),
9224 editImage = _useEditImage.editImage,
9225 initialAspectRatio = _useEditImage.aspectRatio;
9226 var _useState3 = (0, _react.useState)(''),
9227 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
9228 mask = _useState4[0],
9229 setMask = _useState4[1];
9230 var _usePromptSettings = (0, _usePromptSettings2.default)({
9231 aspectRatio: initialAspectRatio
9232 }),
9233 settings = _usePromptSettings.settings,
9234 updateSettings = _usePromptSettings.updateSettings,
9235 resetSettings = _usePromptSettings.resetSettings;
9236 var _useImageActions = (0, _useImageActions2.default)(),
9237 use = _useImageActions.use,
9238 edit = _useImageActions.edit,
9239 isUploading = _useImageActions.isLoading;
9240 var _useOutPainting = (0, _useOutPainting2.default)(),
9241 data = _useOutPainting.data,
9242 send = _useOutPainting.send,
9243 isGenerating = _useOutPainting.isLoading,
9244 error = _useOutPainting.error,
9245 reset = _useOutPainting.reset;
9246 var isLoading = isGenerating || isUploading;
9247 var generatedAspectRatio = (0, _react.useMemo)(function () {
9248 return settings[_usePromptSettings2.IMAGE_RATIO];
9249 }, [data === null || data === void 0 ? void 0 : data.result]);
9250 var hasGeneratedResult = !!(data !== null && data !== void 0 && data.result);
9251 var handleSubmit = function handleSubmit(event) {
9252 event.preventDefault();
9253
9254 // The fallback instruction should be hidden for the user.
9255 var finalPrompt = prompt || 'Fill based on the surroundings';
9256 setGenerate();
9257 send({
9258 prompt: finalPrompt,
9259 settings: settings,
9260 image: editImage,
9261 mask: mask
9262 });
9263 };
9264 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, {
9265 primary: (0, _i18n.__)('Expand Image', 'elementor'),
9266 secondary: (0, _i18n.__)('Position image in it’s new size to generate content around the edges.', 'elementor')
9267 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9268 error: error,
9269 onRetry: handleSubmit
9270 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9271 onSubmit: handleSubmit
9272 }, /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
9273 disabled: isLoading || hasGeneratedResult,
9274 value: settings[_usePromptSettings2.IMAGE_RATIO],
9275 onChange: function onChange(event) {
9276 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
9277 }
9278 }), /*#__PURE__*/_react.default.createElement(_ui.FormControl, {
9279 sx: {
9280 width: '100%',
9281 mb: 2.5
9282 }
9283 }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9284 marks: true,
9285 id: "zoom",
9286 name: "zoom",
9287 max: 2,
9288 min: 0.1,
9289 step: 0.1,
9290 color: "secondary",
9291 defaultValue: 1,
9292 disabled: isLoading || hasGeneratedResult,
9293 valueLabelDisplay: "auto",
9294 "aria-labelledby": "image-size-slider",
9295 "aria-label": (0, _i18n.__)('Reference strength', 'elementor'),
9296 onChange: function onChange(_, value) {
9297 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_ZOOM, value));
9298 }
9299 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9300 id: "image-size-slider",
9301 variant: "caption",
9302 gutterBottom: true
9303 }, (0, _i18n.__)('Original image size', 'elementor'))), /*#__PURE__*/_react.default.createElement(_promptField.default, {
9304 value: prompt,
9305 disabled: isLoading,
9306 onChange: setPrompt,
9307 placeholder: (0, _i18n.__)('Describe what you want to generate in the expended area (English only)', 'elementor')
9308 }), data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9309 gap: 2,
9310 sx: {
9311 my: 2.5
9312 }
9313 }, /*#__PURE__*/_react.default.createElement(_generateAgainSubmit.default, {
9314 disabled: isLoading
9315 }), /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9316 disabled: isLoading,
9317 onClick: function onClick() {
9318 resetSettings();
9319 setPrompt('');
9320 reset();
9321 }
9322 })) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9323 disabled: isLoading
9324 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9325 isGenerating: isLoading
9326 }, hasGeneratedResult ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9327 onUseImage: use,
9328 onEditImage: edit,
9329 images: data.result,
9330 aspectRatio: generatedAspectRatio
9331 }) : /*#__PURE__*/_react.default.createElement(_outPaintingContent.default, {
9332 setMask: setMask,
9333 editImage: editImage,
9334 scale: settings[_usePromptSettings2.IMAGE_ZOOM],
9335 aspectRatio: settings[_usePromptSettings2.IMAGE_RATIO]
9336 })));
9337 };
9338 var _default = OutPainting;
9339 exports["default"] = _default;
9340
9341 /***/ }),
9342
9343 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js":
9344 /*!**************************************************************************************************!*\
9345 !*** ../modules/ai/assets/js/editor/pages/form-media/views/out-painting/out-painting-content.js ***!
9346 \**************************************************************************************************/
9347 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9348
9349 "use strict";
9350
9351
9352 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9353 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9354 Object.defineProperty(exports, "__esModule", ({
9355 value: true
9356 }));
9357 exports["default"] = void 0;
9358 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9359 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
9360 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
9361 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9362 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9363 var _reactAvatarEditor = _interopRequireDefault(__webpack_require__(/*! react-avatar-editor */ "../node_modules/react-avatar-editor/dist/index.js"));
9364 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9365 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); }
9366 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; }
9367 var OutPaintingContent = function OutPaintingContent(_ref) {
9368 var scale = _ref.scale,
9369 setMask = _ref.setMask,
9370 editImage = _ref.editImage,
9371 aspectRatio = _ref.aspectRatio;
9372 var cropperRef = (0, _react.useRef)();
9373 var _useImageSize = (0, _useImageSize2.default)(aspectRatio),
9374 width = _useImageSize.width,
9375 height = _useImageSize.height;
9376 var updateMask = /*#__PURE__*/function () {
9377 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
9378 var imageDataURL;
9379 return _regenerator.default.wrap(function _callee$(_context) {
9380 while (1) switch (_context.prev = _context.next) {
9381 case 0:
9382 _context.next = 2;
9383 return cropperRef.current.getImageScaledToCanvas().toDataURL();
9384 case 2:
9385 imageDataURL = _context.sent;
9386 setMask(imageDataURL);
9387 case 4:
9388 case "end":
9389 return _context.stop();
9390 }
9391 }, _callee);
9392 }));
9393 return function updateMask() {
9394 return _ref2.apply(this, arguments);
9395 };
9396 }();
9397 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9398 alignItems: 'center',
9399 spacing: 0.5,
9400 flexGrow: 1
9401 }, /*#__PURE__*/_react.default.createElement(_reactAvatarEditor.default, {
9402 ref: cropperRef,
9403 image: editImage.url,
9404 style: {
9405 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%)',
9406 backgroundSize: '20px 20px',
9407 backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0px',
9408 outline: '2px dashed #000',
9409 marginTop: '12px'
9410 },
9411 color: [0, 0, 0, 0.9],
9412 rotate: 0,
9413 border: 0,
9414 allowZoomOut: true,
9415 backgroundColor: 'transparent',
9416 showGrid: true,
9417 onImageChange: function onImageChange() {
9418 return updateMask();
9419 },
9420 onPositionChange: function onPositionChange() {
9421 return updateMask();
9422 },
9423 width: width,
9424 height: height,
9425 scale: scale
9426 }));
9427 };
9428 OutPaintingContent.propTypes = {
9429 scale: _propTypes.default.number.isRequired,
9430 setMask: _propTypes.default.func.isRequired,
9431 editImage: _propTypes.default.object.isRequired,
9432 aspectRatio: _propTypes.default.string.isRequired
9433 };
9434 var _default = OutPaintingContent;
9435 exports["default"] = _default;
9436
9437 /***/ }),
9438
9439 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js":
9440 /*!**************************************************************************************************************!*\
9441 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/hooks/use-remove-background.js ***!
9442 \**************************************************************************************************************/
9443 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9444
9445 "use strict";
9446
9447
9448 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9449 Object.defineProperty(exports, "__esModule", ({
9450 value: true
9451 }));
9452 exports["default"] = void 0;
9453 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9454 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9455 var useRemoveBackground = function useRemoveBackground(initialValue) {
9456 var fetchAction = function fetchAction(payload) {
9457 return (0, _api.getImageToImageRemoveBackground)(payload);
9458 };
9459 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9460 };
9461 var _default = useRemoveBackground;
9462 exports["default"] = _default;
9463
9464 /***/ }),
9465
9466 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js":
9467 /*!****************************************************************************************!*\
9468 !*** ../modules/ai/assets/js/editor/pages/form-media/views/remove-background/index.js ***!
9469 \****************************************************************************************/
9470 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9471
9472 "use strict";
9473
9474
9475 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9476 Object.defineProperty(exports, "__esModule", ({
9477 value: true
9478 }));
9479 exports["default"] = void 0;
9480 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9481 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9482 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9483 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9484 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9485 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9486 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9487 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9488 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9489 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9490 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"));
9491 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9492 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9493 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9494 var _useImageSize2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-size */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-size.js"));
9495 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
9496 var RemoveBackground = function RemoveBackground() {
9497 var _useEditImage = (0, _editImageContext.useEditImage)(),
9498 editImage = _useEditImage.editImage;
9499 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9500 setGenerate = _useRequestIds.setGenerate;
9501 var _useImageActions = (0, _useImageActions2.default)(),
9502 use = _useImageActions.use,
9503 edit = _useImageActions.edit,
9504 isUploading = _useImageActions.isLoading;
9505 var _useRemoveBackground = (0, _useRemoveBackground2.default)(),
9506 data = _useRemoveBackground.data,
9507 send = _useRemoveBackground.send,
9508 isGenerating = _useRemoveBackground.isLoading,
9509 error = _useRemoveBackground.error;
9510 var _useLocation = (0, _locationContext.useLocation)(),
9511 navigate = _useLocation.navigate;
9512 var isLoading = isGenerating || isUploading;
9513 var _useImageSize = (0, _useImageSize2.default)(editImage.aspectRatio),
9514 width = _useImageSize.width,
9515 height = _useImageSize.height;
9516 var handleSubmit = function handleSubmit(event) {
9517 event.preventDefault();
9518 setGenerate();
9519 send({
9520 image: editImage
9521 });
9522 };
9523 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, {
9524 primary: (0, _i18n.__)('Remove Background', 'elementor'),
9525 secondary: (0, _i18n.__)('Create an image of the subject with a transparent background', 'elementor')
9526 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9527 error: error,
9528 onRetry: handleSubmit
9529 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9530 onSubmit: handleSubmit
9531 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_newPromptButton.default, {
9532 variant: "contained",
9533 disabled: isLoading,
9534 onClick: function onClick() {
9535 return navigate(_constants.LOCATIONS.GENERATE);
9536 }
9537 }) : /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9538 disabled: isLoading
9539 }, (0, _i18n.__)('Remove Background', 'elementor')))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9540 isGenerating: isLoading
9541 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9542 transparentContainer: true,
9543 onUseImage: use,
9544 onEditImage: edit,
9545 images: data.result,
9546 aspectRatio: editImage.aspectRatio
9547 })) : /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9548 src: editImage.url,
9549 alt: editImage.alt,
9550 style: {
9551 width: width,
9552 height: height
9553 }
9554 })))));
9555 };
9556 var _default = RemoveBackground;
9557 exports["default"] = _default;
9558
9559 /***/ }),
9560
9561 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js":
9562 /*!****************************************************************************************************************!*\
9563 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/hooks/use-replace-background.js ***!
9564 \****************************************************************************************************************/
9565 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9566
9567 "use strict";
9568
9569
9570 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9571 Object.defineProperty(exports, "__esModule", ({
9572 value: true
9573 }));
9574 exports["default"] = void 0;
9575 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9576 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9577 var useReplaceBackground = function useReplaceBackground(initialValue) {
9578 var fetchAction = function fetchAction(payload) {
9579 return (0, _api.getImageToImageReplaceBackground)(payload);
9580 };
9581 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9582 };
9583 var _default = useReplaceBackground;
9584 exports["default"] = _default;
9585
9586 /***/ }),
9587
9588 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js":
9589 /*!*****************************************************************************************!*\
9590 !*** ../modules/ai/assets/js/editor/pages/form-media/views/replace-background/index.js ***!
9591 \*****************************************************************************************/
9592 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9593
9594 "use strict";
9595
9596
9597 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9598 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9599 Object.defineProperty(exports, "__esModule", ({
9600 value: true
9601 }));
9602 exports["default"] = void 0;
9603 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9604 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9605 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9606 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9607 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9608 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9609 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9610 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9611 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9612 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9613 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"));
9614 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9615 var _constants = __webpack_require__(/*! ../../constants */ "../modules/ai/assets/js/editor/pages/form-media/constants/index.js");
9616 var _newPromptButton = _interopRequireDefault(__webpack_require__(/*! ../../components/new-prompt-button */ "../modules/ai/assets/js/editor/pages/form-media/components/new-prompt-button.js"));
9617 var _locationContext = __webpack_require__(/*! ../../context/location-context */ "../modules/ai/assets/js/editor/pages/form-media/context/location-context.js");
9618 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
9619 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); }
9620 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; }
9621 var ReplaceBackground = function ReplaceBackground() {
9622 var _useState = (0, _react.useState)(''),
9623 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9624 prompt = _useState2[0],
9625 setPrompt = _useState2[1];
9626 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9627 setGenerate = _useRequestIds.setGenerate;
9628 var _useEditImage = (0, _editImageContext.useEditImage)(),
9629 editImage = _useEditImage.editImage;
9630 var _useImageActions = (0, _useImageActions2.default)(),
9631 use = _useImageActions.use,
9632 edit = _useImageActions.edit,
9633 isUploading = _useImageActions.isLoading;
9634 var _useReplaceBackground = (0, _useReplaceBackground2.default)(),
9635 data = _useReplaceBackground.data,
9636 send = _useReplaceBackground.send,
9637 isGenerating = _useReplaceBackground.isLoading,
9638 error = _useReplaceBackground.error;
9639 var _useLocation = (0, _locationContext.useLocation)(),
9640 navigate = _useLocation.navigate;
9641 var isLoading = isGenerating || isUploading;
9642 var handleSubmit = function handleSubmit(event) {
9643 event.preventDefault();
9644 setGenerate();
9645 send({
9646 prompt: prompt,
9647 image: editImage
9648 });
9649 };
9650 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, {
9651 primary: (0, _i18n.__)('Replace Background', 'elementor'),
9652 secondary: (0, _i18n.__)('Generate a new background with a prompt.', 'elementor')
9653 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9654 error: error,
9655 onRetry: handleSubmit
9656 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9657 onSubmit: handleSubmit
9658 }, /*#__PURE__*/_react.default.createElement(_promptField.default, {
9659 value: prompt,
9660 disabled: isLoading,
9661 onChange: setPrompt,
9662 placeholder: (0, _i18n.__)('Describe what you want to generate in the background (English only)', 'elementor')
9663 }), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9664 disabled: isLoading || '' === prompt,
9665 color: data !== null && data !== void 0 && data.result ? 'secondary' : 'primary'
9666 }, 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, {
9667 disabled: isLoading,
9668 onClick: function onClick() {
9669 return navigate(_constants.LOCATIONS.GENERATE);
9670 }
9671 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9672 isGenerating: isLoading
9673 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9674 onUseImage: use,
9675 onEditImage: edit,
9676 images: data.result,
9677 aspectRatio: editImage.aspectRatio
9678 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9679 src: editImage.url,
9680 alt: editImage.alt,
9681 style: {
9682 width: editImage.width,
9683 height: editImage.height
9684 }
9685 }))));
9686 };
9687 var _default = ReplaceBackground;
9688 exports["default"] = _default;
9689
9690 /***/ }),
9691
9692 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js":
9693 /*!****************************************************************************************!*\
9694 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js ***!
9695 \****************************************************************************************/
9696 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9697
9698 "use strict";
9699
9700
9701 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9702 Object.defineProperty(exports, "__esModule", ({
9703 value: true
9704 }));
9705 exports["default"] = void 0;
9706 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9707 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9708 var useResize = function useResize(initialValue) {
9709 var fetchAction = function fetchAction(payload) {
9710 return (0, _api.getImageToImageUpscale)(payload);
9711 };
9712 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9713 };
9714 var _default = useResize;
9715 exports["default"] = _default;
9716
9717 /***/ }),
9718
9719 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js":
9720 /*!*****************************************************************************!*\
9721 !*** ../modules/ai/assets/js/editor/pages/form-media/views/resize/index.js ***!
9722 \*****************************************************************************/
9723 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9724
9725 "use strict";
9726
9727
9728 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9729 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9730 Object.defineProperty(exports, "__esModule", ({
9731 value: true
9732 }));
9733 exports["default"] = void 0;
9734 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9735 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9736 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9737 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9738 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9739 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
9740 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9741 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9742 var _singleImagePreview = _interopRequireDefault(__webpack_require__(/*! ../../components/single-image-preview */ "../modules/ai/assets/js/editor/pages/form-media/components/single-image-preview.js"));
9743 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9744 var _useResize2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-resize */ "../modules/ai/assets/js/editor/pages/form-media/views/resize/hooks/use-resize.js"));
9745 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9746 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9747 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
9748 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); }
9749 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; }
9750 var Resize = function Resize() {
9751 var _useEditImage = (0, _editImageContext.useEditImage)(),
9752 editImage = _useEditImage.editImage,
9753 initialEditImageWidth = _useEditImage.width;
9754 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9755 setGenerate = _useRequestIds.setGenerate;
9756 var _useImageActions = (0, _useImageActions2.default)(),
9757 use = _useImageActions.use,
9758 edit = _useImageActions.edit,
9759 isUploading = _useImageActions.isLoading;
9760 var _usePromptSettings = (0, _usePromptSettings2.default)(),
9761 settings = _usePromptSettings.settings,
9762 updateSettings = _usePromptSettings.updateSettings;
9763 var _useResize = (0, _useResize2.default)(),
9764 data = _useResize.data,
9765 send = _useResize.send,
9766 isGenerating = _useResize.isLoading,
9767 error = _useResize.error;
9768 var isLoading = isGenerating || isUploading;
9769 var handleSubmit = function handleSubmit(event) {
9770 event.preventDefault();
9771 setGenerate();
9772 send({
9773 promptSettings: settings,
9774 image: editImage
9775 });
9776 };
9777 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, {
9778 primary: (0, _i18n.__)('Resize', 'elementor'),
9779 secondary: (0, _i18n.__)('Make an image larger and improve it’s resolution.', 'elementor')
9780 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
9781 error: error,
9782 onRetry: handleSubmit
9783 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
9784 onSubmit: handleSubmit
9785 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
9786 spacing: 0.2
9787 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9788 display: "flex",
9789 justifyContent: "space-between",
9790 alignItems: "center"
9791 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9792 variant: "caption"
9793 }, "512px"), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9794 variant: "caption"
9795 }, "2048px")), /*#__PURE__*/_react.default.createElement(_ui.Slider, {
9796 marks: true,
9797 step: 64,
9798 min: 512,
9799 max: 2048,
9800 id: "upscale_to",
9801 color: "secondary",
9802 name: "upscale_to",
9803 disabled: isLoading,
9804 defaultValue: initialEditImageWidth,
9805 valueLabelDisplay: "auto",
9806 "aria-label": (0, _i18n.__)('Upscale to', 'elementor'),
9807 onChange: function onChange(_, value) {
9808 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_UPSCALE, value));
9809 }
9810 }), /*#__PURE__*/_react.default.createElement(_ui.Box, {
9811 display: "flex",
9812 justifyContent: "space-between",
9813 alignItems: "center"
9814 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9815 variant: "caption"
9816 }, (0, _i18n.__)('Current', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
9817 variant: "caption"
9818 }, (0, _i18n.__)('Output', 'elementor')))), /*#__PURE__*/_react.default.createElement(_generateSubmit.default, {
9819 disabled: isLoading
9820 }))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
9821 isGenerating: isLoading
9822 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
9823 onUseImage: use,
9824 onEditImage: edit,
9825 images: data.result,
9826 aspectRatio: editImage.aspectRatio
9827 }) : /*#__PURE__*/_react.default.createElement(_singleImagePreview.default, null, /*#__PURE__*/_react.default.createElement(_singleImagePreview.default.Image, {
9828 src: editImage.url,
9829 alt: editImage.alt,
9830 style: {
9831 width: editImage.width,
9832 height: editImage.height
9833 }
9834 }))));
9835 };
9836 var _default = Resize;
9837 exports["default"] = _default;
9838
9839 /***/ }),
9840
9841 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js":
9842 /*!*************************************************************************************************************!*\
9843 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js ***!
9844 \*************************************************************************************************************/
9845 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9846
9847 "use strict";
9848
9849
9850 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9851 Object.defineProperty(exports, "__esModule", ({
9852 value: true
9853 }));
9854 exports["default"] = void 0;
9855 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
9856 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9857 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
9858 var VariationsPlaceholder = function VariationsPlaceholder() {
9859 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9860 sx: {
9861 overflowY: 'scroll'
9862 },
9863 flexGrow: 1
9864 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
9865 display: "grid",
9866 gridTemplateColumns: "repeat(2, 1fr)",
9867 gap: 3
9868 }, Array(4).fill(true).map(function (_, index) {
9869 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
9870 key: "placeholder-".concat(index),
9871 display: "flex",
9872 justifyContent: "center",
9873 alignItems: "center",
9874 sx: {
9875 bgcolor: 'action.selected',
9876 height: 336
9877 }
9878 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
9879 color: "secondary",
9880 sx: {
9881 fontSize: 36
9882 }
9883 }));
9884 })));
9885 };
9886 VariationsPlaceholder.propTypes = {};
9887 var _default = VariationsPlaceholder;
9888 exports["default"] = _default;
9889
9890 /***/ }),
9891
9892 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js":
9893 /*!****************************************************************************************************!*\
9894 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/hooks/use-image-to-image.js ***!
9895 \****************************************************************************************************/
9896 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9897
9898 "use strict";
9899
9900
9901 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9902 Object.defineProperty(exports, "__esModule", ({
9903 value: true
9904 }));
9905 exports["default"] = void 0;
9906 var _api = __webpack_require__(/*! ../../../../../api */ "../modules/ai/assets/js/editor/api/index.js");
9907 var _useImagePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-image-prompt */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-prompt.js"));
9908 var useImageToImage = function useImageToImage(initialValue) {
9909 var fetchAction = function fetchAction(payload) {
9910 return (0, _api.getImageToImageGeneration)(payload);
9911 };
9912 return (0, _useImagePrompt.default)(fetchAction, initialValue);
9913 };
9914 var _default = useImageToImage;
9915 exports["default"] = _default;
9916
9917 /***/ }),
9918
9919 /***/ "../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js":
9920 /*!*********************************************************************************!*\
9921 !*** ../modules/ai/assets/js/editor/pages/form-media/views/variations/index.js ***!
9922 \*********************************************************************************/
9923 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9924
9925 "use strict";
9926
9927
9928 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
9929 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
9930 Object.defineProperty(exports, "__esModule", ({
9931 value: true
9932 }));
9933 exports["default"] = void 0;
9934 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9935 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
9936 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
9937 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
9938 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
9939 var _view = _interopRequireDefault(__webpack_require__(/*! ../../components/view */ "../modules/ai/assets/js/editor/pages/form-media/components/view.js"));
9940 var _imageForm = _interopRequireDefault(__webpack_require__(/*! ../../components/image-form */ "../modules/ai/assets/js/editor/pages/form-media/components/image-form.js"));
9941 var _imageStrengthSlider = _interopRequireDefault(__webpack_require__(/*! ../../components/image-strength-slider */ "../modules/ai/assets/js/editor/pages/form-media/components/image-strength-slider.js"));
9942 var _promptField = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-field */ "../modules/ai/assets/js/editor/pages/form-media/components/prompt-field.js"));
9943 var _imageTypeSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-type-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-type-select.js"));
9944 var _imageStyleSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-style-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-style-select.js"));
9945 var _imageRatioSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/image-ratio-select */ "../modules/ai/assets/js/editor/pages/form-media/components/image-ratio-select.js"));
9946 var _generateAgainSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-again-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-again-submit.js"));
9947 var _generateImagesSubmit = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-images-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-images-submit.js"));
9948 var _imagesDisplay = _interopRequireDefault(__webpack_require__(/*! ../../components/images-display */ "../modules/ai/assets/js/editor/pages/form-media/components/images-display.js"));
9949 var _variationsPlaceholder = _interopRequireDefault(__webpack_require__(/*! ./components/variations-placeholder */ "../modules/ai/assets/js/editor/pages/form-media/views/variations/components/variations-placeholder.js"));
9950 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"));
9951 var _useImageActions2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-image-actions */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-image-actions.js"));
9952 var _editImageContext = __webpack_require__(/*! ../../context/edit-image-context */ "../modules/ai/assets/js/editor/pages/form-media/context/edit-image-context.js");
9953 var _usePromptSettings2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-prompt-settings */ "../modules/ai/assets/js/editor/pages/form-media/hooks/use-prompt-settings.js"));
9954 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
9955 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); }
9956 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; }
9957 var IMAGE_WEIGHT_DEFAULT = 45;
9958 var Variations = function Variations() {
9959 var _data$result;
9960 var _useState = (0, _react.useState)(''),
9961 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
9962 prompt = _useState2[0],
9963 setPrompt = _useState2[1];
9964 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
9965 setGenerate = _useRequestIds.setGenerate;
9966 var _useEditImage = (0, _editImageContext.useEditImage)(),
9967 editImage = _useEditImage.editImage,
9968 initialAspectRatio = _useEditImage.aspectRatio;
9969 var _usePromptSettings = (0, _usePromptSettings2.default)({
9970 aspectRatio: initialAspectRatio,
9971 imageWeight: IMAGE_WEIGHT_DEFAULT
9972 }),
9973 settings = _usePromptSettings.settings,
9974 updateSettings = _usePromptSettings.updateSettings;
9975 var _useImageToImage = (0, _useImageToImage2.default)(),
9976 data = _useImageToImage.data,
9977 send = _useImageToImage.send,
9978 isGenerating = _useImageToImage.isLoading,
9979 error = _useImageToImage.error;
9980 var _useImageActions = (0, _useImageActions2.default)(),
9981 use = _useImageActions.use,
9982 edit = _useImageActions.edit,
9983 isUploading = _useImageActions.isLoading;
9984 var isLoading = isGenerating || isUploading;
9985 var generatedAspectRatio = (0, _react.useMemo)(function () {
9986 return settings[_usePromptSettings2.IMAGE_RATIO];
9987 }, [data === null || data === void 0 ? void 0 : data.result]);
9988 var handleSubmit = function handleSubmit(event) {
9989 event.preventDefault();
9990 setGenerate();
9991 send({
9992 prompt: prompt,
9993 settings: settings,
9994 image: editImage
9995 });
9996 };
9997 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, {
9998 primary: (0, _i18n.__)('Variations', 'elementor'),
9999 secondary: (0, _i18n.__)('Create new versions of the original image.', 'elementor')
10000 }), error && /*#__PURE__*/_react.default.createElement(_view.default.ErrorMessage, {
10001 error: error,
10002 onRetry: handleSubmit
10003 }), /*#__PURE__*/_react.default.createElement(_imageForm.default, {
10004 onSubmit: handleSubmit
10005 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
10006 sx: {
10007 display: 'flex',
10008 alignItems: 'center',
10009 justifyContent: 'center',
10010 bgcolor: 'action.selected'
10011 }
10012 }, /*#__PURE__*/_react.default.createElement("img", {
10013 src: (editImage === null || editImage === void 0 ? void 0 : editImage.image_url) || (editImage === null || editImage === void 0 ? void 0 : editImage.url),
10014 alt: prompt,
10015 style: {
10016 width: 'auto',
10017 height: 'auto',
10018 maxWidth: '100%',
10019 maxHeight: 166,
10020 objectFit: 'contained'
10021 }
10022 })), /*#__PURE__*/_react.default.createElement(_imageStrengthSlider.default, {
10023 disabled: isLoading,
10024 defaultValue: IMAGE_WEIGHT_DEFAULT,
10025 onChange: function onChange(event) {
10026 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STRENGTH, event.target.value));
10027 }
10028 }), /*#__PURE__*/_react.default.createElement(_promptField.default, {
10029 value: prompt,
10030 disabled: isLoading,
10031 placeholder: (0, _i18n.__)('describe your image', 'elementor'),
10032 onChange: setPrompt
10033 }), /*#__PURE__*/_react.default.createElement(_imageTypeSelect.default, {
10034 disabled: isLoading,
10035 value: settings[_usePromptSettings2.IMAGE_TYPE],
10036 onChange: function onChange(event) {
10037 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_TYPE, event.target.value));
10038 }
10039 }), /*#__PURE__*/_react.default.createElement(_imageStyleSelect.default, {
10040 type: settings[_usePromptSettings2.IMAGE_TYPE],
10041 value: settings[_usePromptSettings2.IMAGE_STYLE],
10042 disabled: isLoading || !settings[_usePromptSettings2.IMAGE_TYPE] || false,
10043 onChange: function onChange(event) {
10044 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_STYLE, event.target.value));
10045 }
10046 }), /*#__PURE__*/_react.default.createElement(_imageRatioSelect.default, {
10047 disabled: isLoading,
10048 value: settings[_usePromptSettings2.IMAGE_RATIO],
10049 onChange: function onChange(event) {
10050 return updateSettings((0, _defineProperty2.default)({}, _usePromptSettings2.IMAGE_RATIO, event.target.value));
10051 }
10052 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10053 gap: 2,
10054 sx: {
10055 my: 2.5
10056 }
10057 }, (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, {
10058 disabled: isLoading || '' === prompt
10059 }) : /*#__PURE__*/_react.default.createElement(_generateImagesSubmit.default, {
10060 disabled: isLoading || '' === prompt
10061 })))), /*#__PURE__*/_react.default.createElement(_view.default.Content, {
10062 isGenerating: isLoading
10063 }, data !== null && data !== void 0 && data.result ? /*#__PURE__*/_react.default.createElement(_imagesDisplay.default, {
10064 images: data.result,
10065 aspectRatio: generatedAspectRatio,
10066 onUseImage: use,
10067 onEditImage: edit
10068 }) : /*#__PURE__*/_react.default.createElement(_variationsPlaceholder.default, null)));
10069 };
10070 Variations.propTypes = {};
10071 var _default = Variations;
10072 exports["default"] = _default;
10073
10074 /***/ }),
10075
10076 /***/ "../modules/ai/assets/js/editor/pages/form-text/index.js":
10077 /*!***************************************************************!*\
10078 !*** ../modules/ai/assets/js/editor/pages/form-text/index.js ***!
10079 \***************************************************************/
10080 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10081
10082 "use strict";
10083
10084
10085 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10086 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
10087 Object.defineProperty(exports, "__esModule", ({
10088 value: true
10089 }));
10090 exports["default"] = void 0;
10091 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
10092 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10093 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10094 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
10095 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
10096 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10097 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
10098 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
10099 var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
10100 var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js"));
10101 var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js"));
10102 var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js"));
10103 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
10104 var _promptActionSelection = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action-selection */ "../modules/ai/assets/js/editor/components/prompt-action-selection.js"));
10105 var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js"));
10106 var _promptAction = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-action */ "../modules/ai/assets/js/editor/components/prompt-action.js"));
10107 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
10108 var _useTextPrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-text-prompt */ "../modules/ai/assets/js/editor/hooks/use-text-prompt.js"));
10109 var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js");
10110 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");
10111 var _requestsIds = __webpack_require__(/*! ../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
10112 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
10113 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); }
10114 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; }
10115 var promptActions = [{
10116 label: (0, _i18n.__)('Simplify language', 'elementor'),
10117 icon: /*#__PURE__*/_react.default.createElement(_icons.MessageIcon, {
10118 fontSize: "small"
10119 }),
10120 value: 'Simplify the language of the following message'
10121 }, {
10122 label: (0, _i18n.__)('Make it longer', 'elementor'),
10123 icon: /*#__PURE__*/_react.default.createElement(_icons.ExpandIcon, {
10124 fontSize: "small"
10125 }),
10126 value: 'Make the following message longer'
10127 }, {
10128 label: (0, _i18n.__)('Make it shorter', 'elementor'),
10129 icon: /*#__PURE__*/_react.default.createElement(_icons.ShrinkIcon, {
10130 fontSize: "small"
10131 }),
10132 value: 'Make the following message shorter'
10133 }, {
10134 label: (0, _i18n.__)('Fix spelling & grammar', 'elementor'),
10135 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
10136 fontSize: "small"
10137 }),
10138 value: 'Fix the spelling and grammar of the following message'
10139 }];
10140 var promptInstructions = [{
10141 label: (0, _i18n.__)('Change tone', 'elementor'),
10142 options: _actionsData.vocalTones,
10143 getInstruction: function getInstruction(value) {
10144 return "Change the tone of the following message to ".concat(value);
10145 }
10146 }, {
10147 label: (0, _i18n.__)('Translate to', 'elementor'),
10148 options: _actionsData.translateLanguages,
10149 getInstruction: function getInstruction(value) {
10150 return "Translate the following message to ".concat(value);
10151 }
10152 }];
10153 var FormText = function FormText(_ref) {
10154 var type = _ref.type,
10155 onClose = _ref.onClose,
10156 getControlValue = _ref.getControlValue,
10157 setControlValue = _ref.setControlValue,
10158 additionalOptions = _ref.additionalOptions,
10159 credits = _ref.credits,
10160 children = _ref.children;
10161 var initialValue = getControlValue() === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.defaultValue) ? '' : getControlValue();
10162 var _useTextPrompt = (0, _useTextPrompt2.default)({
10163 result: initialValue,
10164 credits: credits
10165 }),
10166 data = _useTextPrompt.data,
10167 isLoading = _useTextPrompt.isLoading,
10168 error = _useTextPrompt.error,
10169 setResult = _useTextPrompt.setResult,
10170 reset = _useTextPrompt.reset,
10171 send = _useTextPrompt.send,
10172 sendUsageData = _useTextPrompt.sendUsageData;
10173 var _useState = (0, _react.useState)(''),
10174 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
10175 prompt = _useState2[0],
10176 setPrompt = _useState2[1];
10177 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
10178 setGenerate = _useRequestIds.setGenerate;
10179 (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{
10180 type: _promptHistoryActionContext.ACTION_TYPES.REUSE,
10181 handler: function handler(action) {
10182 reset();
10183 setPrompt(action.data);
10184 }
10185 }, {
10186 type: _promptHistoryActionContext.ACTION_TYPES.EDIT,
10187 handler: function handler(action) {
10188 setResult(action.data);
10189 }
10190 }]);
10191 var searchField = (0, _react.useRef)(null);
10192 var resultField = (0, _react.useRef)(null);
10193 var lastRun = (0, _react.useRef)(function () {});
10194 var autocompleteItems = 'textarea' === type ? _actionsData.textareaAutocomplete : _actionsData.textAutocomplete;
10195 var showSuggestions = !prompt;
10196 var handleSubmit = function handleSubmit(event) {
10197 event.preventDefault();
10198 setGenerate();
10199 lastRun.current = function () {
10200 return send({
10201 prompt: prompt
10202 });
10203 };
10204 lastRun.current();
10205 };
10206 var handleCustomInstruction = /*#__PURE__*/function () {
10207 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(instruction) {
10208 return _regenerator.default.wrap(function _callee$(_context) {
10209 while (1) switch (_context.prev = _context.next) {
10210 case 0:
10211 setGenerate();
10212 lastRun.current = function () {
10213 return send({
10214 input: resultField.current.value,
10215 instruction: instruction
10216 });
10217 };
10218 lastRun.current();
10219 case 3:
10220 case "end":
10221 return _context.stop();
10222 }
10223 }, _callee);
10224 }));
10225 return function handleCustomInstruction(_x) {
10226 return _ref2.apply(this, arguments);
10227 };
10228 }();
10229 var handleSuggestion = function handleSuggestion(suggestion) {
10230 setPrompt(suggestion + ' ');
10231 searchField.current.focus();
10232 };
10233 var applyPrompt = function applyPrompt() {
10234 sendUsageData();
10235 setControlValue(resultField.current.value);
10236 onClose();
10237 };
10238 if (isLoading) {
10239 return /*#__PURE__*/_react.default.createElement(_loader.default, null);
10240 }
10241 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
10242 error: error,
10243 onRetry: lastRun.current,
10244 sx: {
10245 mb: 2.5
10246 }
10247 }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
10248 component: "form",
10249 onSubmit: handleSubmit
10250 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
10251 sx: {
10252 mb: 2.5
10253 }
10254 }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, {
10255 ref: searchField,
10256 placeholder: (0, _i18n.__)('Describe the text and tone you want to use...', 'elementor'),
10257 name: "prompt",
10258 value: prompt,
10259 onChange: function onChange(event) {
10260 return setPrompt(event.target.value);
10261 }
10262 })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, {
10263 suggestions: autocompleteItems,
10264 onSelect: handleSuggestion,
10265 suggestionFilter: function suggestionFilter(suggestion) {
10266 return suggestion + '...';
10267 }
10268 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
10269 libraryLink: "https://go.elementor.com/ai-prompt-library-text/"
10270 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10271 direction: "row",
10272 alignItems: "center",
10273 sx: {
10274 py: 1.5,
10275 mt: 4
10276 }
10277 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10278 direction: "row",
10279 justifyContent: "flex-end",
10280 flexGrow: 1
10281 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate text', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, {
10282 sx: {
10283 mt: 1
10284 }
10285 }, /*#__PURE__*/_react.default.createElement(_textarea.default, {
10286 fullWidth: true,
10287 ref: resultField,
10288 value: data.result,
10289 helperText: (0, _i18n.__)('Text generated by AI may be inaccurate or offensive.', 'elementor'),
10290 onChange: function onChange(event) {
10291 return setResult(event.target.value);
10292 }
10293 }), /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10294 container: true,
10295 spacing: 1,
10296 sx: {
10297 mt: 2.5
10298 }
10299 }, promptActions.map(function (_ref3) {
10300 var label = _ref3.label,
10301 icon = _ref3.icon,
10302 value = _ref3.value;
10303 return /*#__PURE__*/_react.default.createElement(_ui.Grid, {
10304 item: true,
10305 key: label
10306 }, /*#__PURE__*/_react.default.createElement(_promptAction.default, {
10307 label: label,
10308 icon: icon,
10309 onClick: function onClick() {
10310 return handleCustomInstruction(value);
10311 }
10312 }));
10313 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10314 direction: "row",
10315 alignItems: "center",
10316 spacing: 1,
10317 sx: {
10318 mt: 2.5
10319 }
10320 }, promptInstructions.map(function (_ref4) {
10321 var label = _ref4.label,
10322 options = _ref4.options,
10323 getInstruction = _ref4.getInstruction;
10324 return /*#__PURE__*/_react.default.createElement(_promptActionSelection.default, {
10325 key: label,
10326 label: label,
10327 options: options,
10328 onChange: function onChange(event) {
10329 return handleCustomInstruction(getInstruction(event.target.value));
10330 }
10331 });
10332 })), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
10333 introductionKey: "ai-context-text-promotion",
10334 sx: {
10335 mb: 2
10336 }
10337 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10338 direction: "row",
10339 alignItems: "center",
10340 sx: {
10341 my: 1
10342 }
10343 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10344 direction: "row",
10345 gap: 1,
10346 justifyContent: "flex-end",
10347 flexGrow: 1
10348 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
10349 size: "small",
10350 color: "secondary",
10351 variant: "text",
10352 onClick: reset
10353 }, (0, _i18n.__)('New prompt', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
10354 size: "small",
10355 variant: "contained",
10356 color: "primary",
10357 onClick: applyPrompt
10358 }, (0, _i18n.__)('Use text', 'elementor'))))));
10359 };
10360 FormText.propTypes = {
10361 type: _propTypes.default.string.isRequired,
10362 controlType: _propTypes.default.string,
10363 onClose: _propTypes.default.func.isRequired,
10364 getControlValue: _propTypes.default.func.isRequired,
10365 setControlValue: _propTypes.default.func.isRequired,
10366 additionalOptions: _propTypes.default.object,
10367 credits: _propTypes.default.number,
10368 usagePercentage: _propTypes.default.number,
10369 children: _propTypes.default.node
10370 };
10371 var _default = FormText;
10372 exports["default"] = _default;
10373
10374 /***/ }),
10375
10376 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
10377 /*!*****************************************************************!*\
10378 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
10379 \*****************************************************************/
10380 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10381
10382 "use strict";
10383
10384
10385 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10386 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
10387 Object.defineProperty(exports, "__esModule", ({
10388 value: true
10389 }));
10390 exports["default"] = void 0;
10391 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
10392 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10393 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10394 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
10395 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
10396 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10397 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
10398 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
10399 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
10400 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); }
10401 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; }
10402 var GetStarted = function GetStarted(_ref) {
10403 var onSuccess = _ref.onSuccess;
10404 var _useState = (0, _react.useState)(false),
10405 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
10406 isTermsChecked = _useState2[0],
10407 setIsTermsChecked = _useState2[1];
10408 var onGetStartedClick = /*#__PURE__*/function () {
10409 var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
10410 return _regenerator.default.wrap(function _callee$(_context) {
10411 while (1) switch (_context.prev = _context.next) {
10412 case 0:
10413 _context.next = 2;
10414 return (0, _api.setGetStarted)();
10415 case 2:
10416 onSuccess();
10417 case 3:
10418 case "end":
10419 return _context.stop();
10420 }
10421 }, _callee);
10422 }));
10423 return function onGetStartedClick() {
10424 return _ref2.apply(this, arguments);
10425 };
10426 }();
10427 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10428 alignItems: "center",
10429 gap: 1.5
10430 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
10431 sx: {
10432 color: 'text.primary',
10433 fontSize: '60px',
10434 mb: 1
10435 }
10436 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10437 variant: "h4",
10438 sx: {
10439 color: 'text.primary'
10440 }
10441 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10442 variant: "body2"
10443 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
10444 direction: "row",
10445 gap: 1.5,
10446 alignItems: "flex-start"
10447 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
10448 id: "e-ai-terms-approval",
10449 color: "secondary",
10450 sx: {
10451 p: 0
10452 },
10453 onChange: function onChange() {
10454 return setIsTermsChecked(function (prevState) {
10455 return !prevState;
10456 });
10457 }
10458 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
10459 variant: "caption",
10460 sx: {
10461 maxWidth: 520
10462 },
10463 component: "label",
10464 htmlFor: "e-ai-terms-approval"
10465 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
10466 href: "https://go.elementor.com/ai-terms/",
10467 target: "_blank",
10468 color: "info.main"
10469 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
10470 href: "https://go.elementor.com/ai-privacy-policy/",
10471 target: "_blank",
10472 color: "info.main"
10473 }, (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, {
10474 disabled: !isTermsChecked,
10475 variant: "contained",
10476 onClick: onGetStartedClick,
10477 sx: {
10478 mt: 1,
10479 '&:hover': {
10480 color: 'primary.contrastText'
10481 }
10482 }
10483 }, (0, _i18n.__)('Get Started', 'elementor')));
10484 };
10485 GetStarted.propTypes = {
10486 onSuccess: _propTypes.default.func.isRequired
10487 };
10488 var _default = GetStarted;
10489 exports["default"] = _default;
10490
10491 /***/ }),
10492
10493 /***/ "../node_modules/clsx/dist/clsx.m.js":
10494 /*!*******************************************!*\
10495 !*** ../node_modules/clsx/dist/clsx.m.js ***!
10496 \*******************************************/
10497 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10498
10499 "use strict";
10500 __webpack_require__.r(__webpack_exports__);
10501 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10502 /* harmony export */ clsx: () => (/* binding */ clsx),
10503 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10504 /* harmony export */ });
10505 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);
10506
10507 /***/ }),
10508
10509 /***/ "../node_modules/debug/src/browser.js":
10510 /*!********************************************!*\
10511 !*** ../node_modules/debug/src/browser.js ***!
10512 \********************************************/
10513 /***/ ((module, exports, __webpack_require__) => {
10514
10515 /* eslint-env browser */
10516
10517 /**
10518 * This is the web browser implementation of `debug()`.
10519 */
10520
10521 exports.formatArgs = formatArgs;
10522 exports.save = save;
10523 exports.load = load;
10524 exports.useColors = useColors;
10525 exports.storage = localstorage();
10526 exports.destroy = (() => {
10527 let warned = false;
10528
10529 return () => {
10530 if (!warned) {
10531 warned = true;
10532 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
10533 }
10534 };
10535 })();
10536
10537 /**
10538 * Colors.
10539 */
10540
10541 exports.colors = [
10542 '#0000CC',
10543 '#0000FF',
10544 '#0033CC',
10545 '#0033FF',
10546 '#0066CC',
10547 '#0066FF',
10548 '#0099CC',
10549 '#0099FF',
10550 '#00CC00',
10551 '#00CC33',
10552 '#00CC66',
10553 '#00CC99',
10554 '#00CCCC',
10555 '#00CCFF',
10556 '#3300CC',
10557 '#3300FF',
10558 '#3333CC',
10559 '#3333FF',
10560 '#3366CC',
10561 '#3366FF',
10562 '#3399CC',
10563 '#3399FF',
10564 '#33CC00',
10565 '#33CC33',
10566 '#33CC66',
10567 '#33CC99',
10568 '#33CCCC',
10569 '#33CCFF',
10570 '#6600CC',
10571 '#6600FF',
10572 '#6633CC',
10573 '#6633FF',
10574 '#66CC00',
10575 '#66CC33',
10576 '#9900CC',
10577 '#9900FF',
10578 '#9933CC',
10579 '#9933FF',
10580 '#99CC00',
10581 '#99CC33',
10582 '#CC0000',
10583 '#CC0033',
10584 '#CC0066',
10585 '#CC0099',
10586 '#CC00CC',
10587 '#CC00FF',
10588 '#CC3300',
10589 '#CC3333',
10590 '#CC3366',
10591 '#CC3399',
10592 '#CC33CC',
10593 '#CC33FF',
10594 '#CC6600',
10595 '#CC6633',
10596 '#CC9900',
10597 '#CC9933',
10598 '#CCCC00',
10599 '#CCCC33',
10600 '#FF0000',
10601 '#FF0033',
10602 '#FF0066',
10603 '#FF0099',
10604 '#FF00CC',
10605 '#FF00FF',
10606 '#FF3300',
10607 '#FF3333',
10608 '#FF3366',
10609 '#FF3399',
10610 '#FF33CC',
10611 '#FF33FF',
10612 '#FF6600',
10613 '#FF6633',
10614 '#FF9900',
10615 '#FF9933',
10616 '#FFCC00',
10617 '#FFCC33'
10618 ];
10619
10620 /**
10621 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
10622 * and the Firebug extension (any Firefox version) are known
10623 * to support "%c" CSS customizations.
10624 *
10625 * TODO: add a `localStorage` variable to explicitly enable/disable colors
10626 */
10627
10628 // eslint-disable-next-line complexity
10629 function useColors() {
10630 // NB: In an Electron preload script, document will be defined but not fully
10631 // initialized. Since we know we're in Chrome, we'll just detect this case
10632 // explicitly
10633 if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
10634 return true;
10635 }
10636
10637 // Internet Explorer and Edge do not support colors.
10638 if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
10639 return false;
10640 }
10641
10642 // Is webkit? http://stackoverflow.com/a/16459606/376773
10643 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
10644 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
10645 // Is firebug? http://stackoverflow.com/a/398120/376773
10646 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
10647 // Is firefox >= v31?
10648 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
10649 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
10650 // Double check webkit in userAgent just in case we are in a worker
10651 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
10652 }
10653
10654 /**
10655 * Colorize log arguments if enabled.
10656 *
10657 * @api public
10658 */
10659
10660 function formatArgs(args) {
10661 args[0] = (this.useColors ? '%c' : '') +
10662 this.namespace +
10663 (this.useColors ? ' %c' : ' ') +
10664 args[0] +
10665 (this.useColors ? '%c ' : ' ') +
10666 '+' + module.exports.humanize(this.diff);
10667
10668 if (!this.useColors) {
10669 return;
10670 }
10671
10672 const c = 'color: ' + this.color;
10673 args.splice(1, 0, c, 'color: inherit');
10674
10675 // The final "%c" is somewhat tricky, because there could be other
10676 // arguments passed either before or after the %c, so we need to
10677 // figure out the correct index to insert the CSS into
10678 let index = 0;
10679 let lastC = 0;
10680 args[0].replace(/%[a-zA-Z%]/g, match => {
10681 if (match === '%%') {
10682 return;
10683 }
10684 index++;
10685 if (match === '%c') {
10686 // We only are interested in the *last* %c
10687 // (the user may have provided their own)
10688 lastC = index;
10689 }
10690 });
10691
10692 args.splice(lastC, 0, c);
10693 }
10694
10695 /**
10696 * Invokes `console.debug()` when available.
10697 * No-op when `console.debug` is not a "function".
10698 * If `console.debug` is not available, falls back
10699 * to `console.log`.
10700 *
10701 * @api public
10702 */
10703 exports.log = console.debug || console.log || (() => {});
10704
10705 /**
10706 * Save `namespaces`.
10707 *
10708 * @param {String} namespaces
10709 * @api private
10710 */
10711 function save(namespaces) {
10712 try {
10713 if (namespaces) {
10714 exports.storage.setItem('debug', namespaces);
10715 } else {
10716 exports.storage.removeItem('debug');
10717 }
10718 } catch (error) {
10719 // Swallow
10720 // XXX (@Qix-) should we be logging these?
10721 }
10722 }
10723
10724 /**
10725 * Load `namespaces`.
10726 *
10727 * @return {String} returns the previously persisted debug modes
10728 * @api private
10729 */
10730 function load() {
10731 let r;
10732 try {
10733 r = exports.storage.getItem('debug');
10734 } catch (error) {
10735 // Swallow
10736 // XXX (@Qix-) should we be logging these?
10737 }
10738
10739 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
10740 if (!r && typeof process !== 'undefined' && 'env' in process) {
10741 r = process.env.DEBUG;
10742 }
10743
10744 return r;
10745 }
10746
10747 /**
10748 * Localstorage attempts to return the localstorage.
10749 *
10750 * This is necessary because safari throws
10751 * when a user disables cookies/localstorage
10752 * and you attempt to access it.
10753 *
10754 * @return {LocalStorage}
10755 * @api private
10756 */
10757
10758 function localstorage() {
10759 try {
10760 // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
10761 // The Browser also has localStorage in the global context.
10762 return localStorage;
10763 } catch (error) {
10764 // Swallow
10765 // XXX (@Qix-) should we be logging these?
10766 }
10767 }
10768
10769 module.exports = __webpack_require__(/*! ./common */ "../node_modules/debug/src/common.js")(exports);
10770
10771 const {formatters} = module.exports;
10772
10773 /**
10774 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
10775 */
10776
10777 formatters.j = function (v) {
10778 try {
10779 return JSON.stringify(v);
10780 } catch (error) {
10781 return '[UnexpectedJSONParseError]: ' + error.message;
10782 }
10783 };
10784
10785
10786 /***/ }),
10787
10788 /***/ "../node_modules/debug/src/common.js":
10789 /*!*******************************************!*\
10790 !*** ../node_modules/debug/src/common.js ***!
10791 \*******************************************/
10792 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10793
10794
10795 /**
10796 * This is the common logic for both the Node.js and web browser
10797 * implementations of `debug()`.
10798 */
10799
10800 function setup(env) {
10801 createDebug.debug = createDebug;
10802 createDebug.default = createDebug;
10803 createDebug.coerce = coerce;
10804 createDebug.disable = disable;
10805 createDebug.enable = enable;
10806 createDebug.enabled = enabled;
10807 createDebug.humanize = __webpack_require__(/*! ms */ "../node_modules/ms/index.js");
10808 createDebug.destroy = destroy;
10809
10810 Object.keys(env).forEach(key => {
10811 createDebug[key] = env[key];
10812 });
10813
10814 /**
10815 * The currently active debug mode names, and names to skip.
10816 */
10817
10818 createDebug.names = [];
10819 createDebug.skips = [];
10820
10821 /**
10822 * Map of special "%n" handling functions, for the debug "format" argument.
10823 *
10824 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
10825 */
10826 createDebug.formatters = {};
10827
10828 /**
10829 * Selects a color for a debug namespace
10830 * @param {String} namespace The namespace string for the debug instance to be colored
10831 * @return {Number|String} An ANSI color code for the given namespace
10832 * @api private
10833 */
10834 function selectColor(namespace) {
10835 let hash = 0;
10836
10837 for (let i = 0; i < namespace.length; i++) {
10838 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
10839 hash |= 0; // Convert to 32bit integer
10840 }
10841
10842 return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
10843 }
10844 createDebug.selectColor = selectColor;
10845
10846 /**
10847 * Create a debugger with the given `namespace`.
10848 *
10849 * @param {String} namespace
10850 * @return {Function}
10851 * @api public
10852 */
10853 function createDebug(namespace) {
10854 let prevTime;
10855 let enableOverride = null;
10856 let namespacesCache;
10857 let enabledCache;
10858
10859 function debug(...args) {
10860 // Disabled?
10861 if (!debug.enabled) {
10862 return;
10863 }
10864
10865 const self = debug;
10866
10867 // Set `diff` timestamp
10868 const curr = Number(new Date());
10869 const ms = curr - (prevTime || curr);
10870 self.diff = ms;
10871 self.prev = prevTime;
10872 self.curr = curr;
10873 prevTime = curr;
10874
10875 args[0] = createDebug.coerce(args[0]);
10876
10877 if (typeof args[0] !== 'string') {
10878 // Anything else let's inspect with %O
10879 args.unshift('%O');
10880 }
10881
10882 // Apply any `formatters` transformations
10883 let index = 0;
10884 args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
10885 // If we encounter an escaped % then don't increase the array index
10886 if (match === '%%') {
10887 return '%';
10888 }
10889 index++;
10890 const formatter = createDebug.formatters[format];
10891 if (typeof formatter === 'function') {
10892 const val = args[index];
10893 match = formatter.call(self, val);
10894
10895 // Now we need to remove `args[index]` since it's inlined in the `format`
10896 args.splice(index, 1);
10897 index--;
10898 }
10899 return match;
10900 });
10901
10902 // Apply env-specific formatting (colors, etc.)
10903 createDebug.formatArgs.call(self, args);
10904
10905 const logFn = self.log || createDebug.log;
10906 logFn.apply(self, args);
10907 }
10908
10909 debug.namespace = namespace;
10910 debug.useColors = createDebug.useColors();
10911 debug.color = createDebug.selectColor(namespace);
10912 debug.extend = extend;
10913 debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
10914
10915 Object.defineProperty(debug, 'enabled', {
10916 enumerable: true,
10917 configurable: false,
10918 get: () => {
10919 if (enableOverride !== null) {
10920 return enableOverride;
10921 }
10922 if (namespacesCache !== createDebug.namespaces) {
10923 namespacesCache = createDebug.namespaces;
10924 enabledCache = createDebug.enabled(namespace);
10925 }
10926
10927 return enabledCache;
10928 },
10929 set: v => {
10930 enableOverride = v;
10931 }
10932 });
10933
10934 // Env-specific initialization logic for debug instances
10935 if (typeof createDebug.init === 'function') {
10936 createDebug.init(debug);
10937 }
10938
10939 return debug;
10940 }
10941
10942 function extend(namespace, delimiter) {
10943 const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
10944 newDebug.log = this.log;
10945 return newDebug;
10946 }
10947
10948 /**
10949 * Enables a debug mode by namespaces. This can include modes
10950 * separated by a colon and wildcards.
10951 *
10952 * @param {String} namespaces
10953 * @api public
10954 */
10955 function enable(namespaces) {
10956 createDebug.save(namespaces);
10957 createDebug.namespaces = namespaces;
10958
10959 createDebug.names = [];
10960 createDebug.skips = [];
10961
10962 let i;
10963 const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
10964 const len = split.length;
10965
10966 for (i = 0; i < len; i++) {
10967 if (!split[i]) {
10968 // ignore empty strings
10969 continue;
10970 }
10971
10972 namespaces = split[i].replace(/\*/g, '.*?');
10973
10974 if (namespaces[0] === '-') {
10975 createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
10976 } else {
10977 createDebug.names.push(new RegExp('^' + namespaces + '$'));
10978 }
10979 }
10980 }
10981
10982 /**
10983 * Disable debug output.
10984 *
10985 * @return {String} namespaces
10986 * @api public
10987 */
10988 function disable() {
10989 const namespaces = [
10990 ...createDebug.names.map(toNamespace),
10991 ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
10992 ].join(',');
10993 createDebug.enable('');
10994 return namespaces;
10995 }
10996
10997 /**
10998 * Returns true if the given mode name is enabled, false otherwise.
10999 *
11000 * @param {String} name
11001 * @return {Boolean}
11002 * @api public
11003 */
11004 function enabled(name) {
11005 if (name[name.length - 1] === '*') {
11006 return true;
11007 }
11008
11009 let i;
11010 let len;
11011
11012 for (i = 0, len = createDebug.skips.length; i < len; i++) {
11013 if (createDebug.skips[i].test(name)) {
11014 return false;
11015 }
11016 }
11017
11018 for (i = 0, len = createDebug.names.length; i < len; i++) {
11019 if (createDebug.names[i].test(name)) {
11020 return true;
11021 }
11022 }
11023
11024 return false;
11025 }
11026
11027 /**
11028 * Convert regexp to namespace
11029 *
11030 * @param {RegExp} regxep
11031 * @return {String} namespace
11032 * @api private
11033 */
11034 function toNamespace(regexp) {
11035 return regexp.toString()
11036 .substring(2, regexp.toString().length - 2)
11037 .replace(/\.\*\?$/, '*');
11038 }
11039
11040 /**
11041 * Coerce `val`.
11042 *
11043 * @param {Mixed} val
11044 * @return {Mixed}
11045 * @api private
11046 */
11047 function coerce(val) {
11048 if (val instanceof Error) {
11049 return val.stack || val.message;
11050 }
11051 return val;
11052 }
11053
11054 /**
11055 * XXX DO NOT USE. This is a temporary stub function.
11056 * XXX It WILL be removed in the next major release.
11057 */
11058 function destroy() {
11059 console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
11060 }
11061
11062 createDebug.enable(createDebug.load());
11063
11064 return createDebug;
11065 }
11066
11067 module.exports = setup;
11068
11069
11070 /***/ }),
11071
11072 /***/ "../node_modules/extend/index.js":
11073 /*!***************************************!*\
11074 !*** ../node_modules/extend/index.js ***!
11075 \***************************************/
11076 /***/ ((module) => {
11077
11078 "use strict";
11079
11080
11081 var hasOwn = Object.prototype.hasOwnProperty;
11082 var toStr = Object.prototype.toString;
11083 var defineProperty = Object.defineProperty;
11084 var gOPD = Object.getOwnPropertyDescriptor;
11085
11086 var isArray = function isArray(arr) {
11087 if (typeof Array.isArray === 'function') {
11088 return Array.isArray(arr);
11089 }
11090
11091 return toStr.call(arr) === '[object Array]';
11092 };
11093
11094 var isPlainObject = function isPlainObject(obj) {
11095 if (!obj || toStr.call(obj) !== '[object Object]') {
11096 return false;
11097 }
11098
11099 var hasOwnConstructor = hasOwn.call(obj, 'constructor');
11100 var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
11101 // Not own constructor property must be Object
11102 if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
11103 return false;
11104 }
11105
11106 // Own properties are enumerated firstly, so to speed up,
11107 // if last one is own, then all properties are own.
11108 var key;
11109 for (key in obj) { /**/ }
11110
11111 return typeof key === 'undefined' || hasOwn.call(obj, key);
11112 };
11113
11114 // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
11115 var setProperty = function setProperty(target, options) {
11116 if (defineProperty && options.name === '__proto__') {
11117 defineProperty(target, options.name, {
11118 enumerable: true,
11119 configurable: true,
11120 value: options.newValue,
11121 writable: true
11122 });
11123 } else {
11124 target[options.name] = options.newValue;
11125 }
11126 };
11127
11128 // Return undefined instead of __proto__ if '__proto__' is not an own property
11129 var getProperty = function getProperty(obj, name) {
11130 if (name === '__proto__') {
11131 if (!hasOwn.call(obj, name)) {
11132 return void 0;
11133 } else if (gOPD) {
11134 // In early versions of node, obj['__proto__'] is buggy when obj has
11135 // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
11136 return gOPD(obj, name).value;
11137 }
11138 }
11139
11140 return obj[name];
11141 };
11142
11143 module.exports = function extend() {
11144 var options, name, src, copy, copyIsArray, clone;
11145 var target = arguments[0];
11146 var i = 1;
11147 var length = arguments.length;
11148 var deep = false;
11149
11150 // Handle a deep copy situation
11151 if (typeof target === 'boolean') {
11152 deep = target;
11153 target = arguments[1] || {};
11154 // skip the boolean and the target
11155 i = 2;
11156 }
11157 if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
11158 target = {};
11159 }
11160
11161 for (; i < length; ++i) {
11162 options = arguments[i];
11163 // Only deal with non-null/undefined values
11164 if (options != null) {
11165 // Extend the base object
11166 for (name in options) {
11167 src = getProperty(target, name);
11168 copy = getProperty(options, name);
11169
11170 // Prevent never-ending loop
11171 if (target !== copy) {
11172 // Recurse if we're merging plain objects or arrays
11173 if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
11174 if (copyIsArray) {
11175 copyIsArray = false;
11176 clone = src && isArray(src) ? src : [];
11177 } else {
11178 clone = src && isPlainObject(src) ? src : {};
11179 }
11180
11181 // Never move original objects, clone them
11182 setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
11183
11184 // Don't bring in undefined values
11185 } else if (typeof copy !== 'undefined') {
11186 setProperty(target, { name: name, newValue: copy });
11187 }
11188 }
11189 }
11190 }
11191 }
11192
11193 // Return the modified object
11194 return target;
11195 };
11196
11197
11198 /***/ }),
11199
11200 /***/ "../node_modules/inline-style-parser/index.js":
11201 /*!****************************************************!*\
11202 !*** ../node_modules/inline-style-parser/index.js ***!
11203 \****************************************************/
11204 /***/ ((module) => {
11205
11206 // http://www.w3.org/TR/CSS21/grammar.html
11207 // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
11208 var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
11209
11210 var NEWLINE_REGEX = /\n/g;
11211 var WHITESPACE_REGEX = /^\s*/;
11212
11213 // declaration
11214 var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
11215 var COLON_REGEX = /^:\s*/;
11216 var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
11217 var SEMICOLON_REGEX = /^[;\s]*/;
11218
11219 // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
11220 var TRIM_REGEX = /^\s+|\s+$/g;
11221
11222 // strings
11223 var NEWLINE = '\n';
11224 var FORWARD_SLASH = '/';
11225 var ASTERISK = '*';
11226 var EMPTY_STRING = '';
11227
11228 // types
11229 var TYPE_COMMENT = 'comment';
11230 var TYPE_DECLARATION = 'declaration';
11231
11232 /**
11233 * @param {String} style
11234 * @param {Object} [options]
11235 * @return {Object[]}
11236 * @throws {TypeError}
11237 * @throws {Error}
11238 */
11239 module.exports = function(style, options) {
11240 if (typeof style !== 'string') {
11241 throw new TypeError('First argument must be a string');
11242 }
11243
11244 if (!style) return [];
11245
11246 options = options || {};
11247
11248 /**
11249 * Positional.
11250 */
11251 var lineno = 1;
11252 var column = 1;
11253
11254 /**
11255 * Update lineno and column based on `str`.
11256 *
11257 * @param {String} str
11258 */
11259 function updatePosition(str) {
11260 var lines = str.match(NEWLINE_REGEX);
11261 if (lines) lineno += lines.length;
11262 var i = str.lastIndexOf(NEWLINE);
11263 column = ~i ? str.length - i : column + str.length;
11264 }
11265
11266 /**
11267 * Mark position and patch `node.position`.
11268 *
11269 * @return {Function}
11270 */
11271 function position() {
11272 var start = { line: lineno, column: column };
11273 return function(node) {
11274 node.position = new Position(start);
11275 whitespace();
11276 return node;
11277 };
11278 }
11279
11280 /**
11281 * Store position information for a node.
11282 *
11283 * @constructor
11284 * @property {Object} start
11285 * @property {Object} end
11286 * @property {undefined|String} source
11287 */
11288 function Position(start) {
11289 this.start = start;
11290 this.end = { line: lineno, column: column };
11291 this.source = options.source;
11292 }
11293
11294 /**
11295 * Non-enumerable source string.
11296 */
11297 Position.prototype.content = style;
11298
11299 var errorsList = [];
11300
11301 /**
11302 * Error `msg`.
11303 *
11304 * @param {String} msg
11305 * @throws {Error}
11306 */
11307 function error(msg) {
11308 var err = new Error(
11309 options.source + ':' + lineno + ':' + column + ': ' + msg
11310 );
11311 err.reason = msg;
11312 err.filename = options.source;
11313 err.line = lineno;
11314 err.column = column;
11315 err.source = style;
11316
11317 if (options.silent) {
11318 errorsList.push(err);
11319 } else {
11320 throw err;
11321 }
11322 }
11323
11324 /**
11325 * Match `re` and return captures.
11326 *
11327 * @param {RegExp} re
11328 * @return {undefined|Array}
11329 */
11330 function match(re) {
11331 var m = re.exec(style);
11332 if (!m) return;
11333 var str = m[0];
11334 updatePosition(str);
11335 style = style.slice(str.length);
11336 return m;
11337 }
11338
11339 /**
11340 * Parse whitespace.
11341 */
11342 function whitespace() {
11343 match(WHITESPACE_REGEX);
11344 }
11345
11346 /**
11347 * Parse comments.
11348 *
11349 * @param {Object[]} [rules]
11350 * @return {Object[]}
11351 */
11352 function comments(rules) {
11353 var c;
11354 rules = rules || [];
11355 while ((c = comment())) {
11356 if (c !== false) {
11357 rules.push(c);
11358 }
11359 }
11360 return rules;
11361 }
11362
11363 /**
11364 * Parse comment.
11365 *
11366 * @return {Object}
11367 * @throws {Error}
11368 */
11369 function comment() {
11370 var pos = position();
11371 if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
11372
11373 var i = 2;
11374 while (
11375 EMPTY_STRING != style.charAt(i) &&
11376 (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))
11377 ) {
11378 ++i;
11379 }
11380 i += 2;
11381
11382 if (EMPTY_STRING === style.charAt(i - 1)) {
11383 return error('End of comment missing');
11384 }
11385
11386 var str = style.slice(2, i - 2);
11387 column += 2;
11388 updatePosition(str);
11389 style = style.slice(i);
11390 column += 2;
11391
11392 return pos({
11393 type: TYPE_COMMENT,
11394 comment: str
11395 });
11396 }
11397
11398 /**
11399 * Parse declaration.
11400 *
11401 * @return {Object}
11402 * @throws {Error}
11403 */
11404 function declaration() {
11405 var pos = position();
11406
11407 // prop
11408 var prop = match(PROPERTY_REGEX);
11409 if (!prop) return;
11410 comment();
11411
11412 // :
11413 if (!match(COLON_REGEX)) return error("property missing ':'");
11414
11415 // val
11416 var val = match(VALUE_REGEX);
11417
11418 var ret = pos({
11419 type: TYPE_DECLARATION,
11420 property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
11421 value: val
11422 ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
11423 : EMPTY_STRING
11424 });
11425
11426 // ;
11427 match(SEMICOLON_REGEX);
11428
11429 return ret;
11430 }
11431
11432 /**
11433 * Parse declarations.
11434 *
11435 * @return {Object[]}
11436 */
11437 function declarations() {
11438 var decls = [];
11439
11440 comments(decls);
11441
11442 // declarations
11443 var decl;
11444 while ((decl = declaration())) {
11445 if (decl !== false) {
11446 decls.push(decl);
11447 comments(decls);
11448 }
11449 }
11450
11451 return decls;
11452 }
11453
11454 whitespace();
11455 return declarations();
11456 };
11457
11458 /**
11459 * Trim `str`.
11460 *
11461 * @param {String} str
11462 * @return {String}
11463 */
11464 function trim(str) {
11465 return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
11466 }
11467
11468
11469 /***/ }),
11470
11471 /***/ "../node_modules/is-buffer/index.js":
11472 /*!******************************************!*\
11473 !*** ../node_modules/is-buffer/index.js ***!
11474 \******************************************/
11475 /***/ ((module) => {
11476
11477 /*!
11478 * Determine if an object is a Buffer
11479 *
11480 * @author Feross Aboukhadijeh <https://feross.org>
11481 * @license MIT
11482 */
11483
11484 module.exports = function isBuffer (obj) {
11485 return obj != null && obj.constructor != null &&
11486 typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
11487 }
11488
11489
11490 /***/ }),
11491
11492 /***/ "../node_modules/ms/index.js":
11493 /*!***********************************!*\
11494 !*** ../node_modules/ms/index.js ***!
11495 \***********************************/
11496 /***/ ((module) => {
11497
11498 /**
11499 * Helpers.
11500 */
11501
11502 var s = 1000;
11503 var m = s * 60;
11504 var h = m * 60;
11505 var d = h * 24;
11506 var w = d * 7;
11507 var y = d * 365.25;
11508
11509 /**
11510 * Parse or format the given `val`.
11511 *
11512 * Options:
11513 *
11514 * - `long` verbose formatting [false]
11515 *
11516 * @param {String|Number} val
11517 * @param {Object} [options]
11518 * @throws {Error} throw an error if val is not a non-empty string or a number
11519 * @return {String|Number}
11520 * @api public
11521 */
11522
11523 module.exports = function(val, options) {
11524 options = options || {};
11525 var type = typeof val;
11526 if (type === 'string' && val.length > 0) {
11527 return parse(val);
11528 } else if (type === 'number' && isFinite(val)) {
11529 return options.long ? fmtLong(val) : fmtShort(val);
11530 }
11531 throw new Error(
11532 'val is not a non-empty string or a valid number. val=' +
11533 JSON.stringify(val)
11534 );
11535 };
11536
11537 /**
11538 * Parse the given `str` and return milliseconds.
11539 *
11540 * @param {String} str
11541 * @return {Number}
11542 * @api private
11543 */
11544
11545 function parse(str) {
11546 str = String(str);
11547 if (str.length > 100) {
11548 return;
11549 }
11550 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(
11551 str
11552 );
11553 if (!match) {
11554 return;
11555 }
11556 var n = parseFloat(match[1]);
11557 var type = (match[2] || 'ms').toLowerCase();
11558 switch (type) {
11559 case 'years':
11560 case 'year':
11561 case 'yrs':
11562 case 'yr':
11563 case 'y':
11564 return n * y;
11565 case 'weeks':
11566 case 'week':
11567 case 'w':
11568 return n * w;
11569 case 'days':
11570 case 'day':
11571 case 'd':
11572 return n * d;
11573 case 'hours':
11574 case 'hour':
11575 case 'hrs':
11576 case 'hr':
11577 case 'h':
11578 return n * h;
11579 case 'minutes':
11580 case 'minute':
11581 case 'mins':
11582 case 'min':
11583 case 'm':
11584 return n * m;
11585 case 'seconds':
11586 case 'second':
11587 case 'secs':
11588 case 'sec':
11589 case 's':
11590 return n * s;
11591 case 'milliseconds':
11592 case 'millisecond':
11593 case 'msecs':
11594 case 'msec':
11595 case 'ms':
11596 return n;
11597 default:
11598 return undefined;
11599 }
11600 }
11601
11602 /**
11603 * Short format for `ms`.
11604 *
11605 * @param {Number} ms
11606 * @return {String}
11607 * @api private
11608 */
11609
11610 function fmtShort(ms) {
11611 var msAbs = Math.abs(ms);
11612 if (msAbs >= d) {
11613 return Math.round(ms / d) + 'd';
11614 }
11615 if (msAbs >= h) {
11616 return Math.round(ms / h) + 'h';
11617 }
11618 if (msAbs >= m) {
11619 return Math.round(ms / m) + 'm';
11620 }
11621 if (msAbs >= s) {
11622 return Math.round(ms / s) + 's';
11623 }
11624 return ms + 'ms';
11625 }
11626
11627 /**
11628 * Long format for `ms`.
11629 *
11630 * @param {Number} ms
11631 * @return {String}
11632 * @api private
11633 */
11634
11635 function fmtLong(ms) {
11636 var msAbs = Math.abs(ms);
11637 if (msAbs >= d) {
11638 return plural(ms, msAbs, d, 'day');
11639 }
11640 if (msAbs >= h) {
11641 return plural(ms, msAbs, h, 'hour');
11642 }
11643 if (msAbs >= m) {
11644 return plural(ms, msAbs, m, 'minute');
11645 }
11646 if (msAbs >= s) {
11647 return plural(ms, msAbs, s, 'second');
11648 }
11649 return ms + ' ms';
11650 }
11651
11652 /**
11653 * Pluralization helper.
11654 */
11655
11656 function plural(ms, msAbs, n, name) {
11657 var isPlural = msAbs >= n * 1.5;
11658 return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
11659 }
11660
11661
11662 /***/ }),
11663
11664 /***/ "../node_modules/object-assign/index.js":
11665 /*!**********************************************!*\
11666 !*** ../node_modules/object-assign/index.js ***!
11667 \**********************************************/
11668 /***/ ((module) => {
11669
11670 "use strict";
11671 /*
11672 object-assign
11673 (c) Sindre Sorhus
11674 @license MIT
11675 */
11676
11677
11678 /* eslint-disable no-unused-vars */
11679 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
11680 var hasOwnProperty = Object.prototype.hasOwnProperty;
11681 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
11682
11683 function toObject(val) {
11684 if (val === null || val === undefined) {
11685 throw new TypeError('Object.assign cannot be called with null or undefined');
11686 }
11687
11688 return Object(val);
11689 }
11690
11691 function shouldUseNative() {
11692 try {
11693 if (!Object.assign) {
11694 return false;
11695 }
11696
11697 // Detect buggy property enumeration order in older V8 versions.
11698
11699 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
11700 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
11701 test1[5] = 'de';
11702 if (Object.getOwnPropertyNames(test1)[0] === '5') {
11703 return false;
11704 }
11705
11706 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11707 var test2 = {};
11708 for (var i = 0; i < 10; i++) {
11709 test2['_' + String.fromCharCode(i)] = i;
11710 }
11711 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
11712 return test2[n];
11713 });
11714 if (order2.join('') !== '0123456789') {
11715 return false;
11716 }
11717
11718 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
11719 var test3 = {};
11720 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
11721 test3[letter] = letter;
11722 });
11723 if (Object.keys(Object.assign({}, test3)).join('') !==
11724 'abcdefghijklmnopqrst') {
11725 return false;
11726 }
11727
11728 return true;
11729 } catch (err) {
11730 // We don't expect any of the above to throw, but better to be safe.
11731 return false;
11732 }
11733 }
11734
11735 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
11736 var from;
11737 var to = toObject(target);
11738 var symbols;
11739
11740 for (var s = 1; s < arguments.length; s++) {
11741 from = Object(arguments[s]);
11742
11743 for (var key in from) {
11744 if (hasOwnProperty.call(from, key)) {
11745 to[key] = from[key];
11746 }
11747 }
11748
11749 if (getOwnPropertySymbols) {
11750 symbols = getOwnPropertySymbols(from);
11751 for (var i = 0; i < symbols.length; i++) {
11752 if (propIsEnumerable.call(from, symbols[i])) {
11753 to[symbols[i]] = from[symbols[i]];
11754 }
11755 }
11756 }
11757 }
11758
11759 return to;
11760 };
11761
11762
11763 /***/ }),
11764
11765 /***/ "../node_modules/prop-types/checkPropTypes.js":
11766 /*!****************************************************!*\
11767 !*** ../node_modules/prop-types/checkPropTypes.js ***!
11768 \****************************************************/
11769 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11770
11771 "use strict";
11772 /**
11773 * Copyright (c) 2013-present, Facebook, Inc.
11774 *
11775 * This source code is licensed under the MIT license found in the
11776 * LICENSE file in the root directory of this source tree.
11777 */
11778
11779
11780
11781 var printWarning = function() {};
11782
11783 if (true) {
11784 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11785 var loggedTypeFailures = {};
11786 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11787
11788 printWarning = function(text) {
11789 var message = 'Warning: ' + text;
11790 if (typeof console !== 'undefined') {
11791 console.error(message);
11792 }
11793 try {
11794 // --- Welcome to debugging React ---
11795 // This error was thrown as a convenience so that you can use this stack
11796 // to find the callsite that caused this warning to fire.
11797 throw new Error(message);
11798 } catch (x) { /**/ }
11799 };
11800 }
11801
11802 /**
11803 * Assert that the values match with the type specs.
11804 * Error messages are memorized and will only be shown once.
11805 *
11806 * @param {object} typeSpecs Map of name to a ReactPropType
11807 * @param {object} values Runtime values that need to be type-checked
11808 * @param {string} location e.g. "prop", "context", "child context"
11809 * @param {string} componentName Name of the component for error messages.
11810 * @param {?Function} getStack Returns the component stack.
11811 * @private
11812 */
11813 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
11814 if (true) {
11815 for (var typeSpecName in typeSpecs) {
11816 if (has(typeSpecs, typeSpecName)) {
11817 var error;
11818 // Prop type validation may throw. In case they do, we don't want to
11819 // fail the render phase where it didn't fail before. So we log it.
11820 // After these have been cleaned up, we'll let them throw.
11821 try {
11822 // This is intentionally an invariant that gets caught. It's the same
11823 // behavior as without this statement except with a better message.
11824 if (typeof typeSpecs[typeSpecName] !== 'function') {
11825 var err = Error(
11826 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
11827 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
11828 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
11829 );
11830 err.name = 'Invariant Violation';
11831 throw err;
11832 }
11833 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
11834 } catch (ex) {
11835 error = ex;
11836 }
11837 if (error && !(error instanceof Error)) {
11838 printWarning(
11839 (componentName || 'React class') + ': type specification of ' +
11840 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
11841 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
11842 'You may have forgotten to pass an argument to the type checker ' +
11843 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
11844 'shape all require an argument).'
11845 );
11846 }
11847 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
11848 // Only monitor this failure once because there tends to be a lot of the
11849 // same error.
11850 loggedTypeFailures[error.message] = true;
11851
11852 var stack = getStack ? getStack() : '';
11853
11854 printWarning(
11855 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
11856 );
11857 }
11858 }
11859 }
11860 }
11861 }
11862
11863 /**
11864 * Resets warning cache when testing.
11865 *
11866 * @private
11867 */
11868 checkPropTypes.resetWarningCache = function() {
11869 if (true) {
11870 loggedTypeFailures = {};
11871 }
11872 }
11873
11874 module.exports = checkPropTypes;
11875
11876
11877 /***/ }),
11878
11879 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
11880 /*!*************************************************************!*\
11881 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
11882 \*************************************************************/
11883 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
11884
11885 "use strict";
11886 /**
11887 * Copyright (c) 2013-present, Facebook, Inc.
11888 *
11889 * This source code is licensed under the MIT license found in the
11890 * LICENSE file in the root directory of this source tree.
11891 */
11892
11893
11894
11895 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
11896 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
11897
11898 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
11899 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
11900 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
11901
11902 var printWarning = function() {};
11903
11904 if (true) {
11905 printWarning = function(text) {
11906 var message = 'Warning: ' + text;
11907 if (typeof console !== 'undefined') {
11908 console.error(message);
11909 }
11910 try {
11911 // --- Welcome to debugging React ---
11912 // This error was thrown as a convenience so that you can use this stack
11913 // to find the callsite that caused this warning to fire.
11914 throw new Error(message);
11915 } catch (x) {}
11916 };
11917 }
11918
11919 function emptyFunctionThatReturnsNull() {
11920 return null;
11921 }
11922
11923 module.exports = function(isValidElement, throwOnDirectAccess) {
11924 /* global Symbol */
11925 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
11926 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
11927
11928 /**
11929 * Returns the iterator method function contained on the iterable object.
11930 *
11931 * Be sure to invoke the function with the iterable as context:
11932 *
11933 * var iteratorFn = getIteratorFn(myIterable);
11934 * if (iteratorFn) {
11935 * var iterator = iteratorFn.call(myIterable);
11936 * ...
11937 * }
11938 *
11939 * @param {?object} maybeIterable
11940 * @return {?function}
11941 */
11942 function getIteratorFn(maybeIterable) {
11943 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
11944 if (typeof iteratorFn === 'function') {
11945 return iteratorFn;
11946 }
11947 }
11948
11949 /**
11950 * Collection of methods that allow declaration and validation of props that are
11951 * supplied to React components. Example usage:
11952 *
11953 * var Props = require('ReactPropTypes');
11954 * var MyArticle = React.createClass({
11955 * propTypes: {
11956 * // An optional string prop named "description".
11957 * description: Props.string,
11958 *
11959 * // A required enum prop named "category".
11960 * category: Props.oneOf(['News','Photos']).isRequired,
11961 *
11962 * // A prop named "dialog" that requires an instance of Dialog.
11963 * dialog: Props.instanceOf(Dialog).isRequired
11964 * },
11965 * render: function() { ... }
11966 * });
11967 *
11968 * A more formal specification of how these methods are used:
11969 *
11970 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
11971 * decl := ReactPropTypes.{type}(.isRequired)?
11972 *
11973 * Each and every declaration produces a function with the same signature. This
11974 * allows the creation of custom validation functions. For example:
11975 *
11976 * var MyLink = React.createClass({
11977 * propTypes: {
11978 * // An optional string or URI prop named "href".
11979 * href: function(props, propName, componentName) {
11980 * var propValue = props[propName];
11981 * if (propValue != null && typeof propValue !== 'string' &&
11982 * !(propValue instanceof URI)) {
11983 * return new Error(
11984 * 'Expected a string or an URI for ' + propName + ' in ' +
11985 * componentName
11986 * );
11987 * }
11988 * }
11989 * },
11990 * render: function() {...}
11991 * });
11992 *
11993 * @internal
11994 */
11995
11996 var ANONYMOUS = '<<anonymous>>';
11997
11998 // Important!
11999 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
12000 var ReactPropTypes = {
12001 array: createPrimitiveTypeChecker('array'),
12002 bigint: createPrimitiveTypeChecker('bigint'),
12003 bool: createPrimitiveTypeChecker('boolean'),
12004 func: createPrimitiveTypeChecker('function'),
12005 number: createPrimitiveTypeChecker('number'),
12006 object: createPrimitiveTypeChecker('object'),
12007 string: createPrimitiveTypeChecker('string'),
12008 symbol: createPrimitiveTypeChecker('symbol'),
12009
12010 any: createAnyTypeChecker(),
12011 arrayOf: createArrayOfTypeChecker,
12012 element: createElementTypeChecker(),
12013 elementType: createElementTypeTypeChecker(),
12014 instanceOf: createInstanceTypeChecker,
12015 node: createNodeChecker(),
12016 objectOf: createObjectOfTypeChecker,
12017 oneOf: createEnumTypeChecker,
12018 oneOfType: createUnionTypeChecker,
12019 shape: createShapeTypeChecker,
12020 exact: createStrictShapeTypeChecker,
12021 };
12022
12023 /**
12024 * inlined Object.is polyfill to avoid requiring consumers ship their own
12025 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
12026 */
12027 /*eslint-disable no-self-compare*/
12028 function is(x, y) {
12029 // SameValue algorithm
12030 if (x === y) {
12031 // Steps 1-5, 7-10
12032 // Steps 6.b-6.e: +0 != -0
12033 return x !== 0 || 1 / x === 1 / y;
12034 } else {
12035 // Step 6.a: NaN == NaN
12036 return x !== x && y !== y;
12037 }
12038 }
12039 /*eslint-enable no-self-compare*/
12040
12041 /**
12042 * We use an Error-like object for backward compatibility as people may call
12043 * PropTypes directly and inspect their output. However, we don't use real
12044 * Errors anymore. We don't inspect their stack anyway, and creating them
12045 * is prohibitively expensive if they are created too often, such as what
12046 * happens in oneOfType() for any type before the one that matched.
12047 */
12048 function PropTypeError(message, data) {
12049 this.message = message;
12050 this.data = data && typeof data === 'object' ? data: {};
12051 this.stack = '';
12052 }
12053 // Make `instanceof Error` still work for returned errors.
12054 PropTypeError.prototype = Error.prototype;
12055
12056 function createChainableTypeChecker(validate) {
12057 if (true) {
12058 var manualPropTypeCallCache = {};
12059 var manualPropTypeWarningCount = 0;
12060 }
12061 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
12062 componentName = componentName || ANONYMOUS;
12063 propFullName = propFullName || propName;
12064
12065 if (secret !== ReactPropTypesSecret) {
12066 if (throwOnDirectAccess) {
12067 // New behavior only for users of `prop-types` package
12068 var err = new Error(
12069 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
12070 'Use `PropTypes.checkPropTypes()` to call them. ' +
12071 'Read more at http://fb.me/use-check-prop-types'
12072 );
12073 err.name = 'Invariant Violation';
12074 throw err;
12075 } else if ( true && typeof console !== 'undefined') {
12076 // Old behavior for people using React.PropTypes
12077 var cacheKey = componentName + ':' + propName;
12078 if (
12079 !manualPropTypeCallCache[cacheKey] &&
12080 // Avoid spamming the console because they are often not actionable except for lib authors
12081 manualPropTypeWarningCount < 3
12082 ) {
12083 printWarning(
12084 'You are manually calling a React.PropTypes validation ' +
12085 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
12086 'and will throw in the standalone `prop-types` package. ' +
12087 'You may be seeing this warning due to a third-party PropTypes ' +
12088 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
12089 );
12090 manualPropTypeCallCache[cacheKey] = true;
12091 manualPropTypeWarningCount++;
12092 }
12093 }
12094 }
12095 if (props[propName] == null) {
12096 if (isRequired) {
12097 if (props[propName] === null) {
12098 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
12099 }
12100 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
12101 }
12102 return null;
12103 } else {
12104 return validate(props, propName, componentName, location, propFullName);
12105 }
12106 }
12107
12108 var chainedCheckType = checkType.bind(null, false);
12109 chainedCheckType.isRequired = checkType.bind(null, true);
12110
12111 return chainedCheckType;
12112 }
12113
12114 function createPrimitiveTypeChecker(expectedType) {
12115 function validate(props, propName, componentName, location, propFullName, secret) {
12116 var propValue = props[propName];
12117 var propType = getPropType(propValue);
12118 if (propType !== expectedType) {
12119 // `propValue` being instance of, say, date/regexp, pass the 'object'
12120 // check, but we can offer a more precise error message here rather than
12121 // 'of type `object`'.
12122 var preciseType = getPreciseType(propValue);
12123
12124 return new PropTypeError(
12125 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
12126 {expectedType: expectedType}
12127 );
12128 }
12129 return null;
12130 }
12131 return createChainableTypeChecker(validate);
12132 }
12133
12134 function createAnyTypeChecker() {
12135 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
12136 }
12137
12138 function createArrayOfTypeChecker(typeChecker) {
12139 function validate(props, propName, componentName, location, propFullName) {
12140 if (typeof typeChecker !== 'function') {
12141 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
12142 }
12143 var propValue = props[propName];
12144 if (!Array.isArray(propValue)) {
12145 var propType = getPropType(propValue);
12146 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
12147 }
12148 for (var i = 0; i < propValue.length; i++) {
12149 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
12150 if (error instanceof Error) {
12151 return error;
12152 }
12153 }
12154 return null;
12155 }
12156 return createChainableTypeChecker(validate);
12157 }
12158
12159 function createElementTypeChecker() {
12160 function validate(props, propName, componentName, location, propFullName) {
12161 var propValue = props[propName];
12162 if (!isValidElement(propValue)) {
12163 var propType = getPropType(propValue);
12164 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
12165 }
12166 return null;
12167 }
12168 return createChainableTypeChecker(validate);
12169 }
12170
12171 function createElementTypeTypeChecker() {
12172 function validate(props, propName, componentName, location, propFullName) {
12173 var propValue = props[propName];
12174 if (!ReactIs.isValidElementType(propValue)) {
12175 var propType = getPropType(propValue);
12176 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
12177 }
12178 return null;
12179 }
12180 return createChainableTypeChecker(validate);
12181 }
12182
12183 function createInstanceTypeChecker(expectedClass) {
12184 function validate(props, propName, componentName, location, propFullName) {
12185 if (!(props[propName] instanceof expectedClass)) {
12186 var expectedClassName = expectedClass.name || ANONYMOUS;
12187 var actualClassName = getClassName(props[propName]);
12188 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
12189 }
12190 return null;
12191 }
12192 return createChainableTypeChecker(validate);
12193 }
12194
12195 function createEnumTypeChecker(expectedValues) {
12196 if (!Array.isArray(expectedValues)) {
12197 if (true) {
12198 if (arguments.length > 1) {
12199 printWarning(
12200 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
12201 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
12202 );
12203 } else {
12204 printWarning('Invalid argument supplied to oneOf, expected an array.');
12205 }
12206 }
12207 return emptyFunctionThatReturnsNull;
12208 }
12209
12210 function validate(props, propName, componentName, location, propFullName) {
12211 var propValue = props[propName];
12212 for (var i = 0; i < expectedValues.length; i++) {
12213 if (is(propValue, expectedValues[i])) {
12214 return null;
12215 }
12216 }
12217
12218 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
12219 var type = getPreciseType(value);
12220 if (type === 'symbol') {
12221 return String(value);
12222 }
12223 return value;
12224 });
12225 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
12226 }
12227 return createChainableTypeChecker(validate);
12228 }
12229
12230 function createObjectOfTypeChecker(typeChecker) {
12231 function validate(props, propName, componentName, location, propFullName) {
12232 if (typeof typeChecker !== 'function') {
12233 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
12234 }
12235 var propValue = props[propName];
12236 var propType = getPropType(propValue);
12237 if (propType !== 'object') {
12238 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
12239 }
12240 for (var key in propValue) {
12241 if (has(propValue, key)) {
12242 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12243 if (error instanceof Error) {
12244 return error;
12245 }
12246 }
12247 }
12248 return null;
12249 }
12250 return createChainableTypeChecker(validate);
12251 }
12252
12253 function createUnionTypeChecker(arrayOfTypeCheckers) {
12254 if (!Array.isArray(arrayOfTypeCheckers)) {
12255 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
12256 return emptyFunctionThatReturnsNull;
12257 }
12258
12259 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
12260 var checker = arrayOfTypeCheckers[i];
12261 if (typeof checker !== 'function') {
12262 printWarning(
12263 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
12264 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
12265 );
12266 return emptyFunctionThatReturnsNull;
12267 }
12268 }
12269
12270 function validate(props, propName, componentName, location, propFullName) {
12271 var expectedTypes = [];
12272 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
12273 var checker = arrayOfTypeCheckers[i];
12274 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
12275 if (checkerResult == null) {
12276 return null;
12277 }
12278 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
12279 expectedTypes.push(checkerResult.data.expectedType);
12280 }
12281 }
12282 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
12283 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
12284 }
12285 return createChainableTypeChecker(validate);
12286 }
12287
12288 function createNodeChecker() {
12289 function validate(props, propName, componentName, location, propFullName) {
12290 if (!isNode(props[propName])) {
12291 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
12292 }
12293 return null;
12294 }
12295 return createChainableTypeChecker(validate);
12296 }
12297
12298 function invalidValidatorError(componentName, location, propFullName, key, type) {
12299 return new PropTypeError(
12300 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
12301 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
12302 );
12303 }
12304
12305 function createShapeTypeChecker(shapeTypes) {
12306 function validate(props, propName, componentName, location, propFullName) {
12307 var propValue = props[propName];
12308 var propType = getPropType(propValue);
12309 if (propType !== 'object') {
12310 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12311 }
12312 for (var key in shapeTypes) {
12313 var checker = shapeTypes[key];
12314 if (typeof checker !== 'function') {
12315 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12316 }
12317 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12318 if (error) {
12319 return error;
12320 }
12321 }
12322 return null;
12323 }
12324 return createChainableTypeChecker(validate);
12325 }
12326
12327 function createStrictShapeTypeChecker(shapeTypes) {
12328 function validate(props, propName, componentName, location, propFullName) {
12329 var propValue = props[propName];
12330 var propType = getPropType(propValue);
12331 if (propType !== 'object') {
12332 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
12333 }
12334 // We need to check all keys in case some are required but missing from props.
12335 var allKeys = assign({}, props[propName], shapeTypes);
12336 for (var key in allKeys) {
12337 var checker = shapeTypes[key];
12338 if (has(shapeTypes, key) && typeof checker !== 'function') {
12339 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
12340 }
12341 if (!checker) {
12342 return new PropTypeError(
12343 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
12344 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
12345 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
12346 );
12347 }
12348 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
12349 if (error) {
12350 return error;
12351 }
12352 }
12353 return null;
12354 }
12355
12356 return createChainableTypeChecker(validate);
12357 }
12358
12359 function isNode(propValue) {
12360 switch (typeof propValue) {
12361 case 'number':
12362 case 'string':
12363 case 'undefined':
12364 return true;
12365 case 'boolean':
12366 return !propValue;
12367 case 'object':
12368 if (Array.isArray(propValue)) {
12369 return propValue.every(isNode);
12370 }
12371 if (propValue === null || isValidElement(propValue)) {
12372 return true;
12373 }
12374
12375 var iteratorFn = getIteratorFn(propValue);
12376 if (iteratorFn) {
12377 var iterator = iteratorFn.call(propValue);
12378 var step;
12379 if (iteratorFn !== propValue.entries) {
12380 while (!(step = iterator.next()).done) {
12381 if (!isNode(step.value)) {
12382 return false;
12383 }
12384 }
12385 } else {
12386 // Iterator will provide entry [k,v] tuples rather than values.
12387 while (!(step = iterator.next()).done) {
12388 var entry = step.value;
12389 if (entry) {
12390 if (!isNode(entry[1])) {
12391 return false;
12392 }
12393 }
12394 }
12395 }
12396 } else {
12397 return false;
12398 }
12399
12400 return true;
12401 default:
12402 return false;
12403 }
12404 }
12405
12406 function isSymbol(propType, propValue) {
12407 // Native Symbol.
12408 if (propType === 'symbol') {
12409 return true;
12410 }
12411
12412 // falsy value can't be a Symbol
12413 if (!propValue) {
12414 return false;
12415 }
12416
12417 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
12418 if (propValue['@@toStringTag'] === 'Symbol') {
12419 return true;
12420 }
12421
12422 // Fallback for non-spec compliant Symbols which are polyfilled.
12423 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
12424 return true;
12425 }
12426
12427 return false;
12428 }
12429
12430 // Equivalent of `typeof` but with special handling for array and regexp.
12431 function getPropType(propValue) {
12432 var propType = typeof propValue;
12433 if (Array.isArray(propValue)) {
12434 return 'array';
12435 }
12436 if (propValue instanceof RegExp) {
12437 // Old webkits (at least until Android 4.0) return 'function' rather than
12438 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
12439 // passes PropTypes.object.
12440 return 'object';
12441 }
12442 if (isSymbol(propType, propValue)) {
12443 return 'symbol';
12444 }
12445 return propType;
12446 }
12447
12448 // This handles more types than `getPropType`. Only used for error messages.
12449 // See `createPrimitiveTypeChecker`.
12450 function getPreciseType(propValue) {
12451 if (typeof propValue === 'undefined' || propValue === null) {
12452 return '' + propValue;
12453 }
12454 var propType = getPropType(propValue);
12455 if (propType === 'object') {
12456 if (propValue instanceof Date) {
12457 return 'date';
12458 } else if (propValue instanceof RegExp) {
12459 return 'regexp';
12460 }
12461 }
12462 return propType;
12463 }
12464
12465 // Returns a string that is postfixed to a warning about an invalid type.
12466 // For example, "undefined" or "of type array"
12467 function getPostfixForTypeWarning(value) {
12468 var type = getPreciseType(value);
12469 switch (type) {
12470 case 'array':
12471 case 'object':
12472 return 'an ' + type;
12473 case 'boolean':
12474 case 'date':
12475 case 'regexp':
12476 return 'a ' + type;
12477 default:
12478 return type;
12479 }
12480 }
12481
12482 // Returns class name of the object, if any.
12483 function getClassName(propValue) {
12484 if (!propValue.constructor || !propValue.constructor.name) {
12485 return ANONYMOUS;
12486 }
12487 return propValue.constructor.name;
12488 }
12489
12490 ReactPropTypes.checkPropTypes = checkPropTypes;
12491 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
12492 ReactPropTypes.PropTypes = ReactPropTypes;
12493
12494 return ReactPropTypes;
12495 };
12496
12497
12498 /***/ }),
12499
12500 /***/ "../node_modules/prop-types/index.js":
12501 /*!*******************************************!*\
12502 !*** ../node_modules/prop-types/index.js ***!
12503 \*******************************************/
12504 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12505
12506 /**
12507 * Copyright (c) 2013-present, Facebook, Inc.
12508 *
12509 * This source code is licensed under the MIT license found in the
12510 * LICENSE file in the root directory of this source tree.
12511 */
12512
12513 if (true) {
12514 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
12515
12516 // By explicitly using `prop-types` you are opting into new development behavior.
12517 // http://fb.me/prop-types-in-prod
12518 var throwOnDirectAccess = true;
12519 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
12520 } else {}
12521
12522
12523 /***/ }),
12524
12525 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
12526 /*!**************************************************************!*\
12527 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
12528 \**************************************************************/
12529 /***/ ((module) => {
12530
12531 "use strict";
12532 /**
12533 * Copyright (c) 2013-present, Facebook, Inc.
12534 *
12535 * This source code is licensed under the MIT license found in the
12536 * LICENSE file in the root directory of this source tree.
12537 */
12538
12539
12540
12541 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
12542
12543 module.exports = ReactPropTypesSecret;
12544
12545
12546 /***/ }),
12547
12548 /***/ "../node_modules/prop-types/lib/has.js":
12549 /*!*********************************************!*\
12550 !*** ../node_modules/prop-types/lib/has.js ***!
12551 \*********************************************/
12552 /***/ ((module) => {
12553
12554 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
12555
12556
12557 /***/ }),
12558
12559 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
12560 /*!************************************************************************************!*\
12561 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
12562 \************************************************************************************/
12563 /***/ ((__unused_webpack_module, exports) => {
12564
12565 "use strict";
12566 /** @license React v16.13.1
12567 * react-is.development.js
12568 *
12569 * Copyright (c) Facebook, Inc. and its affiliates.
12570 *
12571 * This source code is licensed under the MIT license found in the
12572 * LICENSE file in the root directory of this source tree.
12573 */
12574
12575
12576
12577
12578
12579 if (true) {
12580 (function() {
12581 'use strict';
12582
12583 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
12584 // nor polyfill, then a plain number is used for performance.
12585 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
12586 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
12587 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
12588 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
12589 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
12590 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
12591 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
12592 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
12593 // (unstable) APIs that have been removed. Can we remove the symbols?
12594
12595 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
12596 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
12597 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
12598 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
12599 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
12600 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
12601 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
12602 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
12603 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
12604 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
12605 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
12606
12607 function isValidElementType(type) {
12608 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
12609 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);
12610 }
12611
12612 function typeOf(object) {
12613 if (typeof object === 'object' && object !== null) {
12614 var $$typeof = object.$$typeof;
12615
12616 switch ($$typeof) {
12617 case REACT_ELEMENT_TYPE:
12618 var type = object.type;
12619
12620 switch (type) {
12621 case REACT_ASYNC_MODE_TYPE:
12622 case REACT_CONCURRENT_MODE_TYPE:
12623 case REACT_FRAGMENT_TYPE:
12624 case REACT_PROFILER_TYPE:
12625 case REACT_STRICT_MODE_TYPE:
12626 case REACT_SUSPENSE_TYPE:
12627 return type;
12628
12629 default:
12630 var $$typeofType = type && type.$$typeof;
12631
12632 switch ($$typeofType) {
12633 case REACT_CONTEXT_TYPE:
12634 case REACT_FORWARD_REF_TYPE:
12635 case REACT_LAZY_TYPE:
12636 case REACT_MEMO_TYPE:
12637 case REACT_PROVIDER_TYPE:
12638 return $$typeofType;
12639
12640 default:
12641 return $$typeof;
12642 }
12643
12644 }
12645
12646 case REACT_PORTAL_TYPE:
12647 return $$typeof;
12648 }
12649 }
12650
12651 return undefined;
12652 } // AsyncMode is deprecated along with isAsyncMode
12653
12654 var AsyncMode = REACT_ASYNC_MODE_TYPE;
12655 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
12656 var ContextConsumer = REACT_CONTEXT_TYPE;
12657 var ContextProvider = REACT_PROVIDER_TYPE;
12658 var Element = REACT_ELEMENT_TYPE;
12659 var ForwardRef = REACT_FORWARD_REF_TYPE;
12660 var Fragment = REACT_FRAGMENT_TYPE;
12661 var Lazy = REACT_LAZY_TYPE;
12662 var Memo = REACT_MEMO_TYPE;
12663 var Portal = REACT_PORTAL_TYPE;
12664 var Profiler = REACT_PROFILER_TYPE;
12665 var StrictMode = REACT_STRICT_MODE_TYPE;
12666 var Suspense = REACT_SUSPENSE_TYPE;
12667 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
12668
12669 function isAsyncMode(object) {
12670 {
12671 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
12672 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
12673
12674 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.');
12675 }
12676 }
12677
12678 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
12679 }
12680 function isConcurrentMode(object) {
12681 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
12682 }
12683 function isContextConsumer(object) {
12684 return typeOf(object) === REACT_CONTEXT_TYPE;
12685 }
12686 function isContextProvider(object) {
12687 return typeOf(object) === REACT_PROVIDER_TYPE;
12688 }
12689 function isElement(object) {
12690 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
12691 }
12692 function isForwardRef(object) {
12693 return typeOf(object) === REACT_FORWARD_REF_TYPE;
12694 }
12695 function isFragment(object) {
12696 return typeOf(object) === REACT_FRAGMENT_TYPE;
12697 }
12698 function isLazy(object) {
12699 return typeOf(object) === REACT_LAZY_TYPE;
12700 }
12701 function isMemo(object) {
12702 return typeOf(object) === REACT_MEMO_TYPE;
12703 }
12704 function isPortal(object) {
12705 return typeOf(object) === REACT_PORTAL_TYPE;
12706 }
12707 function isProfiler(object) {
12708 return typeOf(object) === REACT_PROFILER_TYPE;
12709 }
12710 function isStrictMode(object) {
12711 return typeOf(object) === REACT_STRICT_MODE_TYPE;
12712 }
12713 function isSuspense(object) {
12714 return typeOf(object) === REACT_SUSPENSE_TYPE;
12715 }
12716
12717 exports.AsyncMode = AsyncMode;
12718 exports.ConcurrentMode = ConcurrentMode;
12719 exports.ContextConsumer = ContextConsumer;
12720 exports.ContextProvider = ContextProvider;
12721 exports.Element = Element;
12722 exports.ForwardRef = ForwardRef;
12723 exports.Fragment = Fragment;
12724 exports.Lazy = Lazy;
12725 exports.Memo = Memo;
12726 exports.Portal = Portal;
12727 exports.Profiler = Profiler;
12728 exports.StrictMode = StrictMode;
12729 exports.Suspense = Suspense;
12730 exports.isAsyncMode = isAsyncMode;
12731 exports.isConcurrentMode = isConcurrentMode;
12732 exports.isContextConsumer = isContextConsumer;
12733 exports.isContextProvider = isContextProvider;
12734 exports.isElement = isElement;
12735 exports.isForwardRef = isForwardRef;
12736 exports.isFragment = isFragment;
12737 exports.isLazy = isLazy;
12738 exports.isMemo = isMemo;
12739 exports.isPortal = isPortal;
12740 exports.isProfiler = isProfiler;
12741 exports.isStrictMode = isStrictMode;
12742 exports.isSuspense = isSuspense;
12743 exports.isValidElementType = isValidElementType;
12744 exports.typeOf = typeOf;
12745 })();
12746 }
12747
12748
12749 /***/ }),
12750
12751 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
12752 /*!*****************************************************************!*\
12753 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
12754 \*****************************************************************/
12755 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
12756
12757 "use strict";
12758
12759
12760 if (false) {} else {
12761 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
12762 }
12763
12764
12765 /***/ }),
12766
12767 /***/ "../node_modules/react-avatar-editor/dist/index.js":
12768 /*!*********************************************************!*\
12769 !*** ../node_modules/react-avatar-editor/dist/index.js ***!
12770 \*********************************************************/
12771 /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
12772
12773 !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});
12774
12775
12776 /***/ }),
12777
12778 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
12779 /*!**************************************************************!*\
12780 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
12781 \**************************************************************/
12782 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12783
12784 "use strict";
12785
12786
12787 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); }
12788
12789 Object.defineProperty(exports, "__esModule", ({
12790 value: true
12791 }));
12792 Object.defineProperty(exports, "DraggableCore", ({
12793 enumerable: true,
12794 get: function get() {
12795 return _DraggableCore.default;
12796 }
12797 }));
12798 exports["default"] = void 0;
12799
12800 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
12801
12802 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
12803
12804 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
12805
12806 var _clsx2 = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/clsx/dist/clsx.m.js"));
12807
12808 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
12809
12810 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
12811
12812 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
12813
12814 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
12815
12816 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
12817
12818 var _excluded = ["axis", "bounds", "children", "defaultPosition", "defaultClassName", "defaultClassNameDragging", "defaultClassNameDragged", "position", "positionOffset", "scale"];
12819
12820 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12821
12822 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); }
12823
12824 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; }
12825
12826 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); }
12827
12828 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; }
12829
12830 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; }
12831
12832 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; }
12833
12834 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; }
12835
12836 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12837
12838 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."); }
12839
12840 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); }
12841
12842 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; }
12843
12844 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; }
12845
12846 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12847
12848 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12849
12850 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); } }
12851
12852 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
12853
12854 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); }
12855
12856 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12857
12858 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); }; }
12859
12860 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); }
12861
12862 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12863
12864 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; } }
12865
12866 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12867
12868 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; }
12869
12870 //
12871 // Define <Draggable>
12872 //
12873 var Draggable = /*#__PURE__*/function (_React$Component) {
12874 _inherits(Draggable, _React$Component);
12875
12876 var _super = _createSuper(Draggable);
12877
12878 function Draggable(props
12879 /*: DraggableProps*/
12880 ) {
12881 var _this;
12882
12883 _classCallCheck(this, Draggable);
12884
12885 _this = _super.call(this, props);
12886
12887 _defineProperty(_assertThisInitialized(_this), "onDragStart", function (e, coreData) {
12888 (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.
12889
12890 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.
12891
12892
12893 if (shouldStart === false) return false;
12894
12895 _this.setState({
12896 dragging: true,
12897 dragged: true
12898 });
12899 });
12900
12901 _defineProperty(_assertThisInitialized(_this), "onDrag", function (e, coreData) {
12902 if (!_this.state.dragging) return false;
12903 (0, _log.default)('Draggable: onDrag: %j', coreData);
12904 var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);
12905 var newState
12906 /*: $Shape<DraggableState>*/
12907 = {
12908 x: uiData.x,
12909 y: uiData.y
12910 }; // Keep within bounds.
12911
12912 if (_this.props.bounds) {
12913 // Save original x and y.
12914 var x = newState.x,
12915 y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if
12916 // we start removing slack, the element won't react to it right away until it's been
12917 // completely removed.
12918
12919 newState.x += _this.state.slackX;
12920 newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.
12921
12922 var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),
12923 _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),
12924 newStateX = _getBoundPosition2[0],
12925 newStateY = _getBoundPosition2[1];
12926
12927 newState.x = newStateX;
12928 newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.
12929
12930 newState.slackX = _this.state.slackX + (x - newState.x);
12931 newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.
12932
12933 uiData.x = newState.x;
12934 uiData.y = newState.y;
12935 uiData.deltaX = newState.x - _this.state.x;
12936 uiData.deltaY = newState.y - _this.state.y;
12937 } // Short-circuit if user's callback killed it.
12938
12939
12940 var shouldUpdate = _this.props.onDrag(e, uiData);
12941
12942 if (shouldUpdate === false) return false;
12943
12944 _this.setState(newState);
12945 });
12946
12947 _defineProperty(_assertThisInitialized(_this), "onDragStop", function (e, coreData) {
12948 if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.
12949
12950 var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));
12951
12952 if (shouldContinue === false) return false;
12953 (0, _log.default)('Draggable: onDragStop: %j', coreData);
12954 var newState
12955 /*: $Shape<DraggableState>*/
12956 = {
12957 dragging: false,
12958 slackX: 0,
12959 slackY: 0
12960 }; // If this is a controlled component, the result of this operation will be to
12961 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
12962
12963 var controlled = Boolean(_this.props.position);
12964
12965 if (controlled) {
12966 var _this$props$position = _this.props.position,
12967 x = _this$props$position.x,
12968 y = _this$props$position.y;
12969 newState.x = x;
12970 newState.y = y;
12971 }
12972
12973 _this.setState(newState);
12974 });
12975
12976 _this.state = {
12977 // Whether or not we are currently dragging.
12978 dragging: false,
12979 // Whether or not we have been dragged before.
12980 dragged: false,
12981 // Current transform x and y.
12982 x: props.position ? props.position.x : props.defaultPosition.x,
12983 y: props.position ? props.position.y : props.defaultPosition.y,
12984 prevPropsPosition: _objectSpread({}, props.position),
12985 // Used for compensating for out-of-bounds drags
12986 slackX: 0,
12987 slackY: 0,
12988 // Can only determine if SVG after mounting
12989 isElementSVG: false
12990 };
12991
12992 if (props.position && !(props.onDrag || props.onStop)) {
12993 // eslint-disable-next-line no-console
12994 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.');
12995 }
12996
12997 return _this;
12998 }
12999
13000 _createClass(Draggable, [{
13001 key: "componentDidMount",
13002 value: function componentDidMount() {
13003 // Check to see if the element passed is an instanceof SVGElement
13004 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
13005 this.setState({
13006 isElementSVG: true
13007 });
13008 }
13009 }
13010 }, {
13011 key: "componentWillUnmount",
13012 value: function componentWillUnmount() {
13013 this.setState({
13014 dragging: false
13015 }); // prevents invariant if unmounted while dragging
13016 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
13017 // the underlying DOM node ourselves. See the README for more information.
13018
13019 }, {
13020 key: "findDOMNode",
13021 value: function findDOMNode()
13022 /*: ?HTMLElement*/
13023 {
13024 var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;
13025
13026 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);
13027 }
13028 }, {
13029 key: "render",
13030 value: function render()
13031 /*: ReactElement<any>*/
13032 {
13033 var _clsx;
13034
13035 var _this$props2 = this.props,
13036 axis = _this$props2.axis,
13037 bounds = _this$props2.bounds,
13038 children = _this$props2.children,
13039 defaultPosition = _this$props2.defaultPosition,
13040 defaultClassName = _this$props2.defaultClassName,
13041 defaultClassNameDragging = _this$props2.defaultClassNameDragging,
13042 defaultClassNameDragged = _this$props2.defaultClassNameDragged,
13043 position = _this$props2.position,
13044 positionOffset = _this$props2.positionOffset,
13045 scale = _this$props2.scale,
13046 draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);
13047
13048 var style = {};
13049 var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.
13050
13051 var controlled = Boolean(position);
13052 var draggable = !controlled || this.state.dragging;
13053 var validPosition = position || defaultPosition;
13054 var transformOpts = {
13055 // Set left if horizontal drag is enabled
13056 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
13057 // Set top if vertical drag is enabled
13058 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
13059 }; // If this element was SVG, we use the `transform` attribute.
13060
13061 if (this.state.isElementSVG) {
13062 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
13063 } else {
13064 // Add a CSS transform to move the element around. This allows us to move the element around
13065 // without worrying about whether or not it is relatively or absolutely positioned.
13066 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
13067 // has a clean slate.
13068 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
13069 } // Mark with class while dragging
13070
13071
13072 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
13073 // This makes it flexible to use whatever element is wanted (div, ul, etc)
13074
13075 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
13076 onStart: this.onDragStart,
13077 onDrag: this.onDrag,
13078 onStop: this.onDragStop
13079 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
13080 className: className,
13081 style: _objectSpread(_objectSpread({}, children.props.style), style),
13082 transform: svgTransform
13083 }));
13084 }
13085 }], [{
13086 key: "getDerivedStateFromProps",
13087 value: // React 16.3+
13088 // Arity (props, state)
13089 function getDerivedStateFromProps(_ref, _ref2)
13090 /*: ?$Shape<DraggableState>*/
13091 {
13092 var position = _ref.position;
13093 var prevPropsPosition = _ref2.prevPropsPosition;
13094
13095 // Set x/y if a new position is provided in props that is different than the previous.
13096 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
13097 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
13098 position: position,
13099 prevPropsPosition: prevPropsPosition
13100 });
13101 return {
13102 x: position.x,
13103 y: position.y,
13104 prevPropsPosition: _objectSpread({}, position)
13105 };
13106 }
13107
13108 return null;
13109 }
13110 }]);
13111
13112 return Draggable;
13113 }(React.Component);
13114
13115 exports["default"] = Draggable;
13116
13117 _defineProperty(Draggable, "displayName", 'Draggable');
13118
13119 _defineProperty(Draggable, "propTypes", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {
13120 /**
13121 * `axis` determines which axis the draggable can move.
13122 *
13123 * Note that all callbacks will still return data as normal. This only
13124 * controls flushing to the DOM.
13125 *
13126 * 'both' allows movement horizontally and vertically.
13127 * 'x' limits movement to horizontal axis.
13128 * 'y' limits movement to vertical axis.
13129 * 'none' limits all movement.
13130 *
13131 * Defaults to 'both'.
13132 */
13133 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
13134
13135 /**
13136 * `bounds` determines the range of movement available to the element.
13137 * Available values are:
13138 *
13139 * 'parent' restricts movement within the Draggable's parent node.
13140 *
13141 * Alternatively, pass an object with the following properties, all of which are optional:
13142 *
13143 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
13144 *
13145 * All values are in px.
13146 *
13147 * Example:
13148 *
13149 * ```jsx
13150 * let App = React.createClass({
13151 * render: function () {
13152 * return (
13153 * <Draggable bounds={{right: 300, bottom: 300}}>
13154 * <div>Content</div>
13155 * </Draggable>
13156 * );
13157 * }
13158 * });
13159 * ```
13160 */
13161 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
13162 left: _propTypes.default.number,
13163 right: _propTypes.default.number,
13164 top: _propTypes.default.number,
13165 bottom: _propTypes.default.number
13166 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
13167 defaultClassName: _propTypes.default.string,
13168 defaultClassNameDragging: _propTypes.default.string,
13169 defaultClassNameDragged: _propTypes.default.string,
13170
13171 /**
13172 * `defaultPosition` specifies the x and y that the dragged item should start at
13173 *
13174 * Example:
13175 *
13176 * ```jsx
13177 * let App = React.createClass({
13178 * render: function () {
13179 * return (
13180 * <Draggable defaultPosition={{x: 25, y: 25}}>
13181 * <div>I start with transformX: 25px and transformY: 25px;</div>
13182 * </Draggable>
13183 * );
13184 * }
13185 * });
13186 * ```
13187 */
13188 defaultPosition: _propTypes.default.shape({
13189 x: _propTypes.default.number,
13190 y: _propTypes.default.number
13191 }),
13192 positionOffset: _propTypes.default.shape({
13193 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
13194 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
13195 }),
13196
13197 /**
13198 * `position`, if present, defines the current position of the element.
13199 *
13200 * This is similar to how form elements in React work - if no `position` is supplied, the component
13201 * is uncontrolled.
13202 *
13203 * Example:
13204 *
13205 * ```jsx
13206 * let App = React.createClass({
13207 * render: function () {
13208 * return (
13209 * <Draggable position={{x: 25, y: 25}}>
13210 * <div>I start with transformX: 25px and transformY: 25px;</div>
13211 * </Draggable>
13212 * );
13213 * }
13214 * });
13215 * ```
13216 */
13217 position: _propTypes.default.shape({
13218 x: _propTypes.default.number,
13219 y: _propTypes.default.number
13220 }),
13221
13222 /**
13223 * These properties should be defined on the child, not here.
13224 */
13225 className: _shims.dontSetMe,
13226 style: _shims.dontSetMe,
13227 transform: _shims.dontSetMe
13228 }));
13229
13230 _defineProperty(Draggable, "defaultProps", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {
13231 axis: 'both',
13232 bounds: false,
13233 defaultClassName: 'react-draggable',
13234 defaultClassNameDragging: 'react-draggable-dragging',
13235 defaultClassNameDragged: 'react-draggable-dragged',
13236 defaultPosition: {
13237 x: 0,
13238 y: 0
13239 },
13240 scale: 1
13241 }));
13242
13243 /***/ }),
13244
13245 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
13246 /*!******************************************************************!*\
13247 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
13248 \******************************************************************/
13249 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13250
13251 "use strict";
13252
13253
13254 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); }
13255
13256 Object.defineProperty(exports, "__esModule", ({
13257 value: true
13258 }));
13259 exports["default"] = void 0;
13260
13261 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
13262
13263 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
13264
13265 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
13266
13267 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
13268
13269 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
13270
13271 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
13272
13273 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
13274
13275 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13276
13277 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); }
13278
13279 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; }
13280
13281 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13282
13283 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."); }
13284
13285 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); }
13286
13287 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; }
13288
13289 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; }
13290
13291 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13292
13293 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13294
13295 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); } }
13296
13297 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13298
13299 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); }
13300
13301 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13302
13303 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); }; }
13304
13305 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); }
13306
13307 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13308
13309 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; } }
13310
13311 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13312
13313 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; }
13314
13315 // Simple abstraction for dragging events names.
13316 var eventsFor = {
13317 touch: {
13318 start: 'touchstart',
13319 move: 'touchmove',
13320 stop: 'touchend'
13321 },
13322 mouse: {
13323 start: 'mousedown',
13324 move: 'mousemove',
13325 stop: 'mouseup'
13326 }
13327 }; // Default to mouse events.
13328
13329 var dragEventFor = eventsFor.mouse;
13330 /*:: type DraggableCoreState = {
13331 dragging: boolean,
13332 lastX: number,
13333 lastY: number,
13334 touchIdentifier: ?number
13335 };*/
13336
13337 /*:: export type DraggableData = {
13338 node: HTMLElement,
13339 x: number, y: number,
13340 deltaX: number, deltaY: number,
13341 lastX: number, lastY: number,
13342 };*/
13343
13344 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
13345
13346 /*:: export type ControlPosition = {x: number, y: number};*/
13347
13348 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
13349
13350 /*:: export type DraggableCoreDefaultProps = {
13351 allowAnyClick: boolean,
13352 disabled: boolean,
13353 enableUserSelectHack: boolean,
13354 onStart: DraggableEventHandler,
13355 onDrag: DraggableEventHandler,
13356 onStop: DraggableEventHandler,
13357 onMouseDown: (e: MouseEvent) => void,
13358 scale: number,
13359 };*/
13360
13361 /*:: export type DraggableCoreProps = {
13362 ...DraggableCoreDefaultProps,
13363 cancel: string,
13364 children: ReactElement<any>,
13365 offsetParent: HTMLElement,
13366 grid: [number, number],
13367 handle: string,
13368 nodeRef?: ?React.ElementRef<any>,
13369 };*/
13370
13371 //
13372 // Define <DraggableCore>.
13373 //
13374 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
13375 // work well with libraries that require more control over the element.
13376 //
13377 var DraggableCore = /*#__PURE__*/function (_React$Component) {
13378 _inherits(DraggableCore, _React$Component);
13379
13380 var _super = _createSuper(DraggableCore);
13381
13382 function DraggableCore() {
13383 var _this;
13384
13385 _classCallCheck(this, DraggableCore);
13386
13387 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13388 args[_key] = arguments[_key];
13389 }
13390
13391 _this = _super.call.apply(_super, [this].concat(args));
13392
13393 _defineProperty(_assertThisInitialized(_this), "state", {
13394 dragging: false,
13395 // Used while dragging to determine deltas.
13396 lastX: NaN,
13397 lastY: NaN,
13398 touchIdentifier: null
13399 });
13400
13401 _defineProperty(_assertThisInitialized(_this), "mounted", false);
13402
13403 _defineProperty(_assertThisInitialized(_this), "handleDragStart", function (e) {
13404 // Make it possible to attach event handlers on top of this one.
13405 _this.props.onMouseDown(e); // Only accept left-clicks.
13406
13407
13408 if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)
13409
13410 var thisNode = _this.findDOMNode();
13411
13412 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
13413 throw new Error('<DraggableCore> not mounted on DragStart!');
13414 }
13415
13416 var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.
13417
13418 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)) {
13419 return;
13420 } // Prevent scrolling on mobile devices, like ipad/iphone.
13421 // Important that this is after handle/cancel.
13422
13423
13424 if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to
13425 // distinguish between individual touches on multitouch screens by identifying which
13426 // touchpoint was set to this element.
13427
13428 var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
13429
13430 _this.setState({
13431 touchIdentifier: touchIdentifier
13432 }); // Get the current drag point from the event. This is used as the offset.
13433
13434
13435 var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));
13436 if (position == null) return; // not possible but satisfies flow
13437
13438 var x = position.x,
13439 y = position.y; // Create an event object with all the data parents need to make a decision here.
13440
13441 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13442 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.
13443
13444 (0, _log.default)('calling', _this.props.onStart);
13445
13446 var shouldUpdate = _this.props.onStart(e, coreEvent);
13447
13448 if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from
13449 // being selected all over the page.
13450
13451 if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets
13452 // so we know how much we've moved during the drag. This allows us
13453 // to drag elements around even if they have been moved, without issue.
13454
13455 _this.setState({
13456 dragging: true,
13457 lastX: x,
13458 lastY: y
13459 }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of
13460 // this element. We use different events depending on whether or not we have detected that this
13461 // is a touch-capable device.
13462
13463
13464 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);
13465 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);
13466 });
13467
13468 _defineProperty(_assertThisInitialized(_this), "handleDrag", function (e) {
13469 // Get the current drag point from the event. This is used as the offset.
13470 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13471 if (position == null) return;
13472 var x = position.x,
13473 y = position.y; // Snap to grid if prop has been provided
13474
13475 if (Array.isArray(_this.props.grid)) {
13476 var deltaX = x - _this.state.lastX,
13477 deltaY = y - _this.state.lastY;
13478
13479 var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13480
13481 var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);
13482
13483 deltaX = _snapToGrid2[0];
13484 deltaY = _snapToGrid2[1];
13485 if (!deltaX && !deltaY) return; // skip useless drag
13486
13487 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13488 }
13489
13490 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);
13491 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.
13492
13493 var shouldUpdate = _this.props.onDrag(e, coreEvent);
13494
13495 if (shouldUpdate === false || _this.mounted === false) {
13496 try {
13497 // $FlowIgnore
13498 _this.handleDragStop(new MouseEvent('mouseup'));
13499 } catch (err) {
13500 // Old browsers
13501 var event = ((document.createEvent('MouseEvents')
13502 /*: any*/
13503 )
13504 /*: MouseTouchEvent*/
13505 ); // I see why this insanity was deprecated
13506 // $FlowIgnore
13507
13508 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
13509
13510 _this.handleDragStop(event);
13511 }
13512
13513 return;
13514 }
13515
13516 _this.setState({
13517 lastX: x,
13518 lastY: y
13519 });
13520 });
13521
13522 _defineProperty(_assertThisInitialized(_this), "handleDragStop", function (e) {
13523 if (!_this.state.dragging) return;
13524 var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));
13525 if (position == null) return;
13526 var x = position.x,
13527 y = position.y; // Snap to grid if prop has been provided
13528
13529 if (Array.isArray(_this.props.grid)) {
13530 var deltaX = x - _this.state.lastX || 0;
13531 var deltaY = y - _this.state.lastY || 0;
13532
13533 var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);
13534
13535 var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);
13536
13537 deltaX = _snapToGrid4[0];
13538 deltaY = _snapToGrid4[1];
13539 x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;
13540 }
13541
13542 var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler
13543
13544 var shouldContinue = _this.props.onStop(e, coreEvent);
13545
13546 if (shouldContinue === false || _this.mounted === false) return false;
13547
13548 var thisNode = _this.findDOMNode();
13549
13550 if (thisNode) {
13551 // Remove user-select hack
13552 if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
13553 }
13554
13555 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.
13556
13557 _this.setState({
13558 dragging: false,
13559 lastX: NaN,
13560 lastY: NaN
13561 });
13562
13563 if (thisNode) {
13564 // Remove event handlers
13565 (0, _log.default)('DraggableCore: Removing handlers');
13566 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);
13567 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);
13568 }
13569 });
13570
13571 _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (e) {
13572 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
13573
13574 return _this.handleDragStart(e);
13575 });
13576
13577 _defineProperty(_assertThisInitialized(_this), "onMouseUp", function (e) {
13578 dragEventFor = eventsFor.mouse;
13579 return _this.handleDragStop(e);
13580 });
13581
13582 _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (e) {
13583 // We're on a touch device now, so change the event handlers
13584 dragEventFor = eventsFor.touch;
13585 return _this.handleDragStart(e);
13586 });
13587
13588 _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (e) {
13589 // We're on a touch device now, so change the event handlers
13590 dragEventFor = eventsFor.touch;
13591 return _this.handleDragStop(e);
13592 });
13593
13594 return _this;
13595 }
13596
13597 _createClass(DraggableCore, [{
13598 key: "componentDidMount",
13599 value: function componentDidMount() {
13600 this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.
13601 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13602
13603 var thisNode = this.findDOMNode();
13604
13605 if (thisNode) {
13606 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13607 passive: false
13608 });
13609 }
13610 }
13611 }, {
13612 key: "componentWillUnmount",
13613 value: function componentWillUnmount() {
13614 this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case
13615 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
13616
13617 var thisNode = this.findDOMNode();
13618
13619 if (thisNode) {
13620 var ownerDocument = thisNode.ownerDocument;
13621 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
13622 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
13623 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
13624 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
13625 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
13626 passive: false
13627 });
13628 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
13629 }
13630 } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
13631 // the underlying DOM node ourselves. See the README for more information.
13632
13633 }, {
13634 key: "findDOMNode",
13635 value: function findDOMNode()
13636 /*: ?HTMLElement*/
13637 {
13638 var _this$props, _this$props2, _this$props2$nodeRef;
13639
13640 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);
13641 }
13642 }, {
13643 key: "render",
13644 value: function render()
13645 /*: React.Element<any>*/
13646 {
13647 // Reuse the child provided
13648 // This makes it flexible to use whatever element is wanted (div, ul, etc)
13649 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
13650 // Note: mouseMove handler is attached to document so it will still function
13651 // when the user drags quickly and leaves the bounds of the element.
13652 onMouseDown: this.onMouseDown,
13653 onMouseUp: this.onMouseUp,
13654 // onTouchStart is added on `componentDidMount` so they can be added with
13655 // {passive: false}, which allows it to cancel. See
13656 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
13657 onTouchEnd: this.onTouchEnd
13658 });
13659 }
13660 }]);
13661
13662 return DraggableCore;
13663 }(React.Component);
13664
13665 exports["default"] = DraggableCore;
13666
13667 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
13668
13669 _defineProperty(DraggableCore, "propTypes", {
13670 /**
13671 * `allowAnyClick` allows dragging using any mouse button.
13672 * By default, we only accept the left button.
13673 *
13674 * Defaults to `false`.
13675 */
13676 allowAnyClick: _propTypes.default.bool,
13677
13678 /**
13679 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
13680 * with the exception of `onMouseDown`, will not fire.
13681 */
13682 disabled: _propTypes.default.bool,
13683
13684 /**
13685 * By default, we add 'user-select:none' attributes to the document body
13686 * to prevent ugly text selection during drag. If this is causing problems
13687 * for your app, set this to `false`.
13688 */
13689 enableUserSelectHack: _propTypes.default.bool,
13690
13691 /**
13692 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
13693 * instead of using the parent node.
13694 */
13695 offsetParent: function offsetParent(props
13696 /*: DraggableCoreProps*/
13697 , propName
13698 /*: $Keys<DraggableCoreProps>*/
13699 ) {
13700 if (props[propName] && props[propName].nodeType !== 1) {
13701 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
13702 }
13703 },
13704
13705 /**
13706 * `grid` specifies the x and y that dragging should snap to.
13707 */
13708 grid: _propTypes.default.arrayOf(_propTypes.default.number),
13709
13710 /**
13711 * `handle` specifies a selector to be used as the handle that initiates drag.
13712 *
13713 * Example:
13714 *
13715 * ```jsx
13716 * let App = React.createClass({
13717 * render: function () {
13718 * return (
13719 * <Draggable handle=".handle">
13720 * <div>
13721 * <div className="handle">Click me to drag</div>
13722 * <div>This is some other content</div>
13723 * </div>
13724 * </Draggable>
13725 * );
13726 * }
13727 * });
13728 * ```
13729 */
13730 handle: _propTypes.default.string,
13731
13732 /**
13733 * `cancel` specifies a selector to be used to prevent drag initialization.
13734 *
13735 * Example:
13736 *
13737 * ```jsx
13738 * let App = React.createClass({
13739 * render: function () {
13740 * return(
13741 * <Draggable cancel=".cancel">
13742 * <div>
13743 * <div className="cancel">You can't drag from here</div>
13744 * <div>Dragging here works fine</div>
13745 * </div>
13746 * </Draggable>
13747 * );
13748 * }
13749 * });
13750 * ```
13751 */
13752 cancel: _propTypes.default.string,
13753
13754 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
13755 * Unfortunately, in order for <Draggable> to work properly, we need raw access
13756 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
13757 * as in this example:
13758 *
13759 * function MyComponent() {
13760 * const nodeRef = React.useRef(null);
13761 * return (
13762 * <Draggable nodeRef={nodeRef}>
13763 * <div ref={nodeRef}>Example Target</div>
13764 * </Draggable>
13765 * );
13766 * }
13767 *
13768 * This can be used for arbitrarily nested components, so long as the ref ends up
13769 * pointing to the actual child DOM node and not a custom component.
13770 */
13771 nodeRef: _propTypes.default.object,
13772
13773 /**
13774 * Called when dragging starts.
13775 * If this function returns the boolean false, dragging will be canceled.
13776 */
13777 onStart: _propTypes.default.func,
13778
13779 /**
13780 * Called while dragging.
13781 * If this function returns the boolean false, dragging will be canceled.
13782 */
13783 onDrag: _propTypes.default.func,
13784
13785 /**
13786 * Called when dragging stops.
13787 * If this function returns the boolean false, the drag will remain active.
13788 */
13789 onStop: _propTypes.default.func,
13790
13791 /**
13792 * A workaround option which can be passed if onMouseDown needs to be accessed,
13793 * since it'll always be blocked (as there is internal use of onMouseDown)
13794 */
13795 onMouseDown: _propTypes.default.func,
13796
13797 /**
13798 * `scale`, if set, applies scaling while dragging an element
13799 */
13800 scale: _propTypes.default.number,
13801
13802 /**
13803 * These properties should be defined on the child, not here.
13804 */
13805 className: _shims.dontSetMe,
13806 style: _shims.dontSetMe,
13807 transform: _shims.dontSetMe
13808 });
13809
13810 _defineProperty(DraggableCore, "defaultProps", {
13811 allowAnyClick: false,
13812 // by default only accept left click
13813 disabled: false,
13814 enableUserSelectHack: true,
13815 onStart: function onStart() {},
13816 onDrag: function onDrag() {},
13817 onStop: function onStop() {},
13818 onMouseDown: function onMouseDown() {},
13819 scale: 1
13820 });
13821
13822 /***/ }),
13823
13824 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
13825 /*!********************************************************!*\
13826 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
13827 \********************************************************/
13828 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13829
13830 "use strict";
13831
13832
13833 var _require = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js"),
13834 Draggable = _require.default,
13835 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'.
13836 // See https://github.com/mzabriskie/react-draggable/pull/254
13837 // and https://github.com/mzabriskie/react-draggable/issues/266
13838
13839
13840 module.exports = Draggable;
13841 module.exports["default"] = Draggable;
13842 module.exports.DraggableCore = DraggableCore;
13843
13844 /***/ }),
13845
13846 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
13847 /*!*****************************************************************!*\
13848 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
13849 \*****************************************************************/
13850 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13851
13852 "use strict";
13853
13854
13855 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); }
13856
13857 Object.defineProperty(exports, "__esModule", ({
13858 value: true
13859 }));
13860 exports.addClassName = addClassName;
13861 exports.addEvent = addEvent;
13862 exports.addUserSelectStyles = addUserSelectStyles;
13863 exports.createCSSTransform = createCSSTransform;
13864 exports.createSVGTransform = createSVGTransform;
13865 exports.getTouch = getTouch;
13866 exports.getTouchIdentifier = getTouchIdentifier;
13867 exports.getTranslation = getTranslation;
13868 exports.innerHeight = innerHeight;
13869 exports.innerWidth = innerWidth;
13870 exports.matchesSelector = matchesSelector;
13871 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
13872 exports.offsetXYFromParent = offsetXYFromParent;
13873 exports.outerHeight = outerHeight;
13874 exports.outerWidth = outerWidth;
13875 exports.removeClassName = removeClassName;
13876 exports.removeEvent = removeEvent;
13877 exports.removeUserSelectStyles = removeUserSelectStyles;
13878
13879 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
13880
13881 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
13882
13883 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); }
13884
13885 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; }
13886
13887 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; }
13888
13889 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; }
13890
13891 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; }
13892
13893 var matchesSelectorFunc = '';
13894
13895 function matchesSelector(el
13896 /*: Node*/
13897 , selector
13898 /*: string*/
13899 )
13900 /*: boolean*/
13901 {
13902 if (!matchesSelectorFunc) {
13903 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
13904 // $FlowIgnore: Doesn't think elements are indexable
13905 return (0, _shims.isFunction)(el[method]);
13906 });
13907 } // Might not be found entirely (not an Element?) - in that case, bail
13908 // $FlowIgnore: Doesn't think elements are indexable
13909
13910
13911 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable
13912
13913 return el[matchesSelectorFunc](selector);
13914 } // Works up the tree to the draggable itself attempting to match selector.
13915
13916
13917 function matchesSelectorAndParentsTo(el
13918 /*: Node*/
13919 , selector
13920 /*: string*/
13921 , baseNode
13922 /*: Node*/
13923 )
13924 /*: boolean*/
13925 {
13926 var node = el;
13927
13928 do {
13929 if (matchesSelector(node, selector)) return true;
13930 if (node === baseNode) return false;
13931 node = node.parentNode;
13932 } while (node);
13933
13934 return false;
13935 }
13936
13937 function addEvent(el
13938 /*: ?Node*/
13939 , event
13940 /*: string*/
13941 , handler
13942 /*: Function*/
13943 , inputOptions
13944 /*: Object*/
13945 )
13946 /*: void*/
13947 {
13948 if (!el) return;
13949
13950 var options = _objectSpread({
13951 capture: true
13952 }, inputOptions); // $FlowIgnore[method-unbinding]
13953
13954
13955 if (el.addEventListener) {
13956 el.addEventListener(event, handler, options);
13957 } else if (el.attachEvent) {
13958 el.attachEvent('on' + event, handler);
13959 } else {
13960 // $FlowIgnore: Doesn't think elements are indexable
13961 el['on' + event] = handler;
13962 }
13963 }
13964
13965 function removeEvent(el
13966 /*: ?Node*/
13967 , event
13968 /*: string*/
13969 , handler
13970 /*: Function*/
13971 , inputOptions
13972 /*: Object*/
13973 )
13974 /*: void*/
13975 {
13976 if (!el) return;
13977
13978 var options = _objectSpread({
13979 capture: true
13980 }, inputOptions); // $FlowIgnore[method-unbinding]
13981
13982
13983 if (el.removeEventListener) {
13984 el.removeEventListener(event, handler, options);
13985 } else if (el.detachEvent) {
13986 el.detachEvent('on' + event, handler);
13987 } else {
13988 // $FlowIgnore: Doesn't think elements are indexable
13989 el['on' + event] = null;
13990 }
13991 }
13992
13993 function outerHeight(node
13994 /*: HTMLElement*/
13995 )
13996 /*: number*/
13997 {
13998 // This is deliberately excluding margin for our calculations, since we are using
13999 // offsetTop which is including margin. See getBoundPosition
14000 var height = node.clientHeight;
14001 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
14002 height += (0, _shims.int)(computedStyle.borderTopWidth);
14003 height += (0, _shims.int)(computedStyle.borderBottomWidth);
14004 return height;
14005 }
14006
14007 function outerWidth(node
14008 /*: HTMLElement*/
14009 )
14010 /*: number*/
14011 {
14012 // This is deliberately excluding margin for our calculations, since we are using
14013 // offsetLeft which is including margin. See getBoundPosition
14014 var width = node.clientWidth;
14015 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
14016 width += (0, _shims.int)(computedStyle.borderLeftWidth);
14017 width += (0, _shims.int)(computedStyle.borderRightWidth);
14018 return width;
14019 }
14020
14021 function innerHeight(node
14022 /*: HTMLElement*/
14023 )
14024 /*: number*/
14025 {
14026 var height = node.clientHeight;
14027 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
14028 height -= (0, _shims.int)(computedStyle.paddingTop);
14029 height -= (0, _shims.int)(computedStyle.paddingBottom);
14030 return height;
14031 }
14032
14033 function innerWidth(node
14034 /*: HTMLElement*/
14035 )
14036 /*: number*/
14037 {
14038 var width = node.clientWidth;
14039 var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
14040 width -= (0, _shims.int)(computedStyle.paddingLeft);
14041 width -= (0, _shims.int)(computedStyle.paddingRight);
14042 return width;
14043 }
14044 /*:: interface EventWithOffset {
14045 clientX: number, clientY: number
14046 }*/
14047
14048
14049 // Get from offsetParent
14050 function offsetXYFromParent(evt
14051 /*: EventWithOffset*/
14052 , offsetParent
14053 /*: HTMLElement*/
14054 , scale
14055 /*: number*/
14056 )
14057 /*: ControlPosition*/
14058 {
14059 var isBody = offsetParent === offsetParent.ownerDocument.body;
14060 var offsetParentRect = isBody ? {
14061 left: 0,
14062 top: 0
14063 } : offsetParent.getBoundingClientRect();
14064 var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
14065 var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
14066 return {
14067 x: x,
14068 y: y
14069 };
14070 }
14071
14072 function createCSSTransform(controlPos
14073 /*: ControlPosition*/
14074 , positionOffset
14075 /*: PositionOffsetControlPosition*/
14076 )
14077 /*: Object*/
14078 {
14079 var translation = getTranslation(controlPos, positionOffset, 'px');
14080 return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);
14081 }
14082
14083 function createSVGTransform(controlPos
14084 /*: ControlPosition*/
14085 , positionOffset
14086 /*: PositionOffsetControlPosition*/
14087 )
14088 /*: string*/
14089 {
14090 var translation = getTranslation(controlPos, positionOffset, '');
14091 return translation;
14092 }
14093
14094 function getTranslation(_ref2, positionOffset
14095 /*: PositionOffsetControlPosition*/
14096 , unitSuffix
14097 /*: string*/
14098 )
14099 /*: string*/
14100 {
14101 var x = _ref2.x,
14102 y = _ref2.y;
14103 var translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
14104
14105 if (positionOffset) {
14106 var defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
14107 var defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
14108 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
14109 }
14110
14111 return translation;
14112 }
14113
14114 function getTouch(e
14115 /*: MouseTouchEvent*/
14116 , identifier
14117 /*: number*/
14118 )
14119 /*: ?{clientX: number, clientY: number}*/
14120 {
14121 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {
14122 return identifier === t.identifier;
14123 }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {
14124 return identifier === t.identifier;
14125 });
14126 }
14127
14128 function getTouchIdentifier(e
14129 /*: MouseTouchEvent*/
14130 )
14131 /*: ?number*/
14132 {
14133 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
14134 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
14135 } // User-select Hacks:
14136 //
14137 // Useful for preventing blue highlights all over everything when dragging.
14138 // Note we're passing `document` b/c we could be iframed
14139
14140
14141 function addUserSelectStyles(doc
14142 /*: ?Document*/
14143 ) {
14144 if (!doc) return;
14145 var styleEl = doc.getElementById('react-draggable-style-el');
14146
14147 if (!styleEl) {
14148 styleEl = doc.createElement('style');
14149 styleEl.type = 'text/css';
14150 styleEl.id = 'react-draggable-style-el';
14151 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
14152 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
14153 doc.getElementsByTagName('head')[0].appendChild(styleEl);
14154 }
14155
14156 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
14157 }
14158
14159 function removeUserSelectStyles(doc
14160 /*: ?Document*/
14161 ) {
14162 if (!doc) return;
14163
14164 try {
14165 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE
14166
14167 if (doc.selection) {
14168 // $FlowIgnore: IE
14169 doc.selection.empty();
14170 } else {
14171 // Remove selection caused by scroll, unless it's a focused input
14172 // (we use doc.defaultView in case we're in an iframe)
14173 var selection = (doc.defaultView || window).getSelection();
14174
14175 if (selection && selection.type !== 'Caret') {
14176 selection.removeAllRanges();
14177 }
14178 }
14179 } catch (e) {// probably IE
14180 }
14181 }
14182
14183 function addClassName(el
14184 /*: HTMLElement*/
14185 , className
14186 /*: string*/
14187 ) {
14188 if (el.classList) {
14189 el.classList.add(className);
14190 } else {
14191 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
14192 el.className += " ".concat(className);
14193 }
14194 }
14195 }
14196
14197 function removeClassName(el
14198 /*: HTMLElement*/
14199 , className
14200 /*: string*/
14201 ) {
14202 if (el.classList) {
14203 el.classList.remove(className);
14204 } else {
14205 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
14206 }
14207 }
14208
14209 /***/ }),
14210
14211 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
14212 /*!********************************************************************!*\
14213 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
14214 \********************************************************************/
14215 /***/ ((__unused_webpack_module, exports) => {
14216
14217 "use strict";
14218
14219
14220 Object.defineProperty(exports, "__esModule", ({
14221 value: true
14222 }));
14223 exports.browserPrefixToKey = browserPrefixToKey;
14224 exports.browserPrefixToStyle = browserPrefixToStyle;
14225 exports["default"] = void 0;
14226 exports.getPrefix = getPrefix;
14227 var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
14228
14229 function getPrefix()
14230 /*: string*/
14231 {
14232 var _window$document, _window$document$docu;
14233
14234 var prop
14235 /*: string*/
14236 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
14237 // Ensure we're running in an environment where there is actually a global
14238 // `window` obj
14239 if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access
14240 // path may not exist, so bail out if it doesn't.
14241
14242 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;
14243 if (!style) return '';
14244 if (prop in style) return '';
14245
14246 for (var i = 0; i < prefixes.length; i++) {
14247 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
14248 }
14249
14250 return '';
14251 }
14252
14253 function browserPrefixToKey(prop
14254 /*: string*/
14255 , prefix
14256 /*: string*/
14257 )
14258 /*: string*/
14259 {
14260 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
14261 }
14262
14263 function browserPrefixToStyle(prop
14264 /*: string*/
14265 , prefix
14266 /*: string*/
14267 )
14268 /*: string*/
14269 {
14270 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
14271 }
14272
14273 function kebabToTitleCase(str
14274 /*: string*/
14275 )
14276 /*: string*/
14277 {
14278 var out = '';
14279 var shouldCapitalize = true;
14280
14281 for (var i = 0; i < str.length; i++) {
14282 if (shouldCapitalize) {
14283 out += str[i].toUpperCase();
14284 shouldCapitalize = false;
14285 } else if (str[i] === '-') {
14286 shouldCapitalize = true;
14287 } else {
14288 out += str[i];
14289 }
14290 }
14291
14292 return out;
14293 } // Default export is the prefix itself, like 'Moz', 'Webkit', etc
14294 // Note that you may have to re-test for certain things; for instance, Chrome 50
14295 // can handle unprefixed `transform`, but not unprefixed `user-select`
14296
14297
14298 var _default = (getPrefix()
14299 /*: string*/
14300 );
14301
14302 exports["default"] = _default;
14303
14304 /***/ }),
14305
14306 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
14307 /*!**************************************************************!*\
14308 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
14309 \**************************************************************/
14310 /***/ ((__unused_webpack_module, exports) => {
14311
14312 "use strict";
14313
14314
14315 Object.defineProperty(exports, "__esModule", ({
14316 value: true
14317 }));
14318 exports["default"] = log;
14319
14320 /*eslint no-console:0*/
14321 function log() {
14322 var _console;
14323
14324 if (false) {}
14325 }
14326
14327 /***/ }),
14328
14329 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
14330 /*!**********************************************************************!*\
14331 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
14332 \**********************************************************************/
14333 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14334
14335 "use strict";
14336
14337
14338 Object.defineProperty(exports, "__esModule", ({
14339 value: true
14340 }));
14341 exports.canDragX = canDragX;
14342 exports.canDragY = canDragY;
14343 exports.createCoreData = createCoreData;
14344 exports.createDraggableData = createDraggableData;
14345 exports.getBoundPosition = getBoundPosition;
14346 exports.getControlPosition = getControlPosition;
14347 exports.snapToGrid = snapToGrid;
14348
14349 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
14350
14351 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
14352
14353 function getBoundPosition(draggable
14354 /*: Draggable*/
14355 , x
14356 /*: number*/
14357 , y
14358 /*: number*/
14359 )
14360 /*: [number, number]*/
14361 {
14362 // If no bounds, short-circuit and move on
14363 if (!draggable.props.bounds) return [x, y]; // Clone new bounds
14364
14365 var bounds = draggable.props.bounds;
14366 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
14367 var node = findDOMNode(draggable);
14368
14369 if (typeof bounds === 'string') {
14370 var ownerDocument = node.ownerDocument;
14371 var ownerWindow = ownerDocument.defaultView;
14372 var boundNode;
14373
14374 if (bounds === 'parent') {
14375 boundNode = node.parentNode;
14376 } else {
14377 boundNode = ownerDocument.querySelector(bounds);
14378 }
14379
14380 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
14381 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
14382 }
14383
14384 var boundNodeEl
14385 /*: HTMLElement*/
14386 = boundNode; // for Flow, can't seem to refine correctly
14387
14388 var nodeStyle = ownerWindow.getComputedStyle(node);
14389 var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
14390
14391 bounds = {
14392 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
14393 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
14394 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
14395 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
14396 };
14397 } // Keep x and y below right and bottom limits...
14398
14399
14400 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
14401 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.
14402
14403 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
14404 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
14405 return [x, y];
14406 }
14407
14408 function snapToGrid(grid
14409 /*: [number, number]*/
14410 , pendingX
14411 /*: number*/
14412 , pendingY
14413 /*: number*/
14414 )
14415 /*: [number, number]*/
14416 {
14417 var x = Math.round(pendingX / grid[0]) * grid[0];
14418 var y = Math.round(pendingY / grid[1]) * grid[1];
14419 return [x, y];
14420 }
14421
14422 function canDragX(draggable
14423 /*: Draggable*/
14424 )
14425 /*: boolean*/
14426 {
14427 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
14428 }
14429
14430 function canDragY(draggable
14431 /*: Draggable*/
14432 )
14433 /*: boolean*/
14434 {
14435 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
14436 } // Get {x, y} positions from event.
14437
14438
14439 function getControlPosition(e
14440 /*: MouseTouchEvent*/
14441 , touchIdentifier
14442 /*: ?number*/
14443 , draggableCore
14444 /*: DraggableCore*/
14445 )
14446 /*: ?ControlPosition*/
14447 {
14448 var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
14449 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
14450
14451 var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.
14452
14453 var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
14454 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
14455 } // Create an data object exposed by <DraggableCore>'s events
14456
14457
14458 function createCoreData(draggable
14459 /*: DraggableCore*/
14460 , x
14461 /*: number*/
14462 , y
14463 /*: number*/
14464 )
14465 /*: DraggableData*/
14466 {
14467 var state = draggable.state;
14468 var isStart = !(0, _shims.isNum)(state.lastX);
14469 var node = findDOMNode(draggable);
14470
14471 if (isStart) {
14472 // If this is our first move, use the x and y as last coords.
14473 return {
14474 node: node,
14475 deltaX: 0,
14476 deltaY: 0,
14477 lastX: x,
14478 lastY: y,
14479 x: x,
14480 y: y
14481 };
14482 } else {
14483 // Otherwise calculate proper values.
14484 return {
14485 node: node,
14486 deltaX: x - state.lastX,
14487 deltaY: y - state.lastY,
14488 lastX: state.lastX,
14489 lastY: state.lastY,
14490 x: x,
14491 y: y
14492 };
14493 }
14494 } // Create an data exposed by <Draggable>'s events
14495
14496
14497 function createDraggableData(draggable
14498 /*: Draggable*/
14499 , coreData
14500 /*: DraggableData*/
14501 )
14502 /*: DraggableData*/
14503 {
14504 var scale = draggable.props.scale;
14505 return {
14506 node: coreData.node,
14507 x: draggable.state.x + coreData.deltaX / scale,
14508 y: draggable.state.y + coreData.deltaY / scale,
14509 deltaX: coreData.deltaX / scale,
14510 deltaY: coreData.deltaY / scale,
14511 lastX: draggable.state.x,
14512 lastY: draggable.state.y
14513 };
14514 } // A lot faster than stringify/parse
14515
14516
14517 function cloneBounds(bounds
14518 /*: Bounds*/
14519 )
14520 /*: Bounds*/
14521 {
14522 return {
14523 left: bounds.left,
14524 top: bounds.top,
14525 right: bounds.right,
14526 bottom: bounds.bottom
14527 };
14528 }
14529
14530 function findDOMNode(draggable
14531 /*: Draggable | DraggableCore*/
14532 )
14533 /*: HTMLElement*/
14534 {
14535 var node = draggable.findDOMNode();
14536
14537 if (!node) {
14538 throw new Error('<DraggableCore>: Unmounted during event!');
14539 } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
14540
14541
14542 return node;
14543 }
14544
14545 /***/ }),
14546
14547 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
14548 /*!****************************************************************!*\
14549 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
14550 \****************************************************************/
14551 /***/ ((__unused_webpack_module, exports) => {
14552
14553 "use strict";
14554
14555
14556 Object.defineProperty(exports, "__esModule", ({
14557 value: true
14558 }));
14559 exports.dontSetMe = dontSetMe;
14560 exports.findInArray = findInArray;
14561 exports.int = int;
14562 exports.isFunction = isFunction;
14563 exports.isNum = isNum;
14564
14565 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
14566 function findInArray(array
14567 /*: Array<any> | TouchList*/
14568 , callback
14569 /*: Function*/
14570 )
14571 /*: any*/
14572 {
14573 for (var i = 0, length = array.length; i < length; i++) {
14574 if (callback.apply(callback, [array[i], i, array])) return array[i];
14575 }
14576 }
14577
14578 function isFunction(func
14579 /*: any*/
14580 )
14581 /*: boolean %checks*/
14582 {
14583 // $FlowIgnore[method-unbinding]
14584 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
14585 }
14586
14587 function isNum(num
14588 /*: any*/
14589 )
14590 /*: boolean %checks*/
14591 {
14592 return typeof num === 'number' && !isNaN(num);
14593 }
14594
14595 function int(a
14596 /*: string*/
14597 )
14598 /*: number*/
14599 {
14600 return parseInt(a, 10);
14601 }
14602
14603 function dontSetMe(props
14604 /*: Object*/
14605 , propName
14606 /*: string*/
14607 , componentName
14608 /*: string*/
14609 )
14610 /*: ?Error*/
14611 {
14612 if (props[propName]) {
14613 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
14614 }
14615 }
14616
14617 /***/ }),
14618
14619 /***/ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js":
14620 /*!**********************************************************************!*\
14621 !*** ../node_modules/react-infinite-scroller/dist/InfiniteScroll.js ***!
14622 \**********************************************************************/
14623 /***/ ((module, exports, __webpack_require__) => {
14624
14625 "use strict";
14626
14627
14628 Object.defineProperty(exports, "__esModule", ({
14629 value: true
14630 }));
14631
14632 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; }; }();
14633
14634 var _react = __webpack_require__(/*! react */ "react");
14635
14636 var _react2 = _interopRequireDefault(_react);
14637
14638 var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
14639
14640 var _propTypes2 = _interopRequireDefault(_propTypes);
14641
14642 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14643
14644 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; }
14645
14646 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14647
14648 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; }
14649
14650 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; }
14651
14652 var InfiniteScroll = function (_Component) {
14653 _inherits(InfiniteScroll, _Component);
14654
14655 function InfiniteScroll(props) {
14656 _classCallCheck(this, InfiniteScroll);
14657
14658 var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
14659
14660 _this.scrollListener = _this.scrollListener.bind(_this);
14661 _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
14662 _this.mousewheelListener = _this.mousewheelListener.bind(_this);
14663 return _this;
14664 }
14665
14666 _createClass(InfiniteScroll, [{
14667 key: 'componentDidMount',
14668 value: function componentDidMount() {
14669 this.pageLoaded = this.props.pageStart;
14670 this.options = this.eventListenerOptions();
14671 this.attachScrollListener();
14672 }
14673 }, {
14674 key: 'componentDidUpdate',
14675 value: function componentDidUpdate() {
14676 if (this.props.isReverse && this.loadMore) {
14677 var parentElement = this.getParentElement(this.scrollComponent);
14678 parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
14679 this.loadMore = false;
14680 }
14681 this.attachScrollListener();
14682 }
14683 }, {
14684 key: 'componentWillUnmount',
14685 value: function componentWillUnmount() {
14686 this.detachScrollListener();
14687 this.detachMousewheelListener();
14688 }
14689 }, {
14690 key: 'isPassiveSupported',
14691 value: function isPassiveSupported() {
14692 var passive = false;
14693
14694 var testOptions = {
14695 get passive() {
14696 passive = true;
14697 }
14698 };
14699
14700 try {
14701 document.addEventListener('test', null, testOptions);
14702 document.removeEventListener('test', null, testOptions);
14703 } catch (e) {
14704 // ignore
14705 }
14706 return passive;
14707 }
14708 }, {
14709 key: 'eventListenerOptions',
14710 value: function eventListenerOptions() {
14711 var options = this.props.useCapture;
14712
14713 if (this.isPassiveSupported()) {
14714 options = {
14715 useCapture: this.props.useCapture,
14716 passive: true
14717 };
14718 } else {
14719 options = {
14720 passive: false
14721 };
14722 }
14723 return options;
14724 }
14725
14726 // Set a defaut loader for all your `InfiniteScroll` components
14727
14728 }, {
14729 key: 'setDefaultLoader',
14730 value: function setDefaultLoader(loader) {
14731 this.defaultLoader = loader;
14732 }
14733 }, {
14734 key: 'detachMousewheelListener',
14735 value: function detachMousewheelListener() {
14736 var scrollEl = window;
14737 if (this.props.useWindow === false) {
14738 scrollEl = this.scrollComponent.parentNode;
14739 }
14740
14741 scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14742 }
14743 }, {
14744 key: 'detachScrollListener',
14745 value: function detachScrollListener() {
14746 var scrollEl = window;
14747 if (this.props.useWindow === false) {
14748 scrollEl = this.getParentElement(this.scrollComponent);
14749 }
14750
14751 scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14752 scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14753 }
14754 }, {
14755 key: 'getParentElement',
14756 value: function getParentElement(el) {
14757 var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
14758 if (scrollParent != null) {
14759 return scrollParent;
14760 }
14761 return el && el.parentNode;
14762 }
14763 }, {
14764 key: 'filterProps',
14765 value: function filterProps(props) {
14766 return props;
14767 }
14768 }, {
14769 key: 'attachScrollListener',
14770 value: function attachScrollListener() {
14771 var parentElement = this.getParentElement(this.scrollComponent);
14772
14773 if (!this.props.hasMore || !parentElement) {
14774 return;
14775 }
14776
14777 var scrollEl = window;
14778 if (this.props.useWindow === false) {
14779 scrollEl = parentElement;
14780 }
14781
14782 scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
14783 scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
14784 scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
14785
14786 if (this.props.initialLoad) {
14787 this.scrollListener();
14788 }
14789 }
14790 }, {
14791 key: 'mousewheelListener',
14792 value: function mousewheelListener(e) {
14793 // Prevents Chrome hangups
14794 // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
14795 if (e.deltaY === 1 && !this.isPassiveSupported()) {
14796 e.preventDefault();
14797 }
14798 }
14799 }, {
14800 key: 'scrollListener',
14801 value: function scrollListener() {
14802 var el = this.scrollComponent;
14803 var scrollEl = window;
14804 var parentNode = this.getParentElement(el);
14805
14806 var offset = void 0;
14807 if (this.props.useWindow) {
14808 var doc = document.documentElement || document.body.parentNode || document.body;
14809 var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
14810 if (this.props.isReverse) {
14811 offset = scrollTop;
14812 } else {
14813 offset = this.calculateOffset(el, scrollTop);
14814 }
14815 } else if (this.props.isReverse) {
14816 offset = parentNode.scrollTop;
14817 } else {
14818 offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
14819 }
14820
14821 // Here we make sure the element is visible as well as checking the offset
14822 if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
14823 this.detachScrollListener();
14824 this.beforeScrollHeight = parentNode.scrollHeight;
14825 this.beforeScrollTop = parentNode.scrollTop;
14826 // Call loadMore after detachScrollListener to allow for non-async loadMore functions
14827 if (typeof this.props.loadMore === 'function') {
14828 this.props.loadMore(this.pageLoaded += 1);
14829 this.loadMore = true;
14830 }
14831 }
14832 }
14833 }, {
14834 key: 'calculateOffset',
14835 value: function calculateOffset(el, scrollTop) {
14836 if (!el) {
14837 return 0;
14838 }
14839
14840 return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
14841 }
14842 }, {
14843 key: 'calculateTopPosition',
14844 value: function calculateTopPosition(el) {
14845 if (!el) {
14846 return 0;
14847 }
14848 return el.offsetTop + this.calculateTopPosition(el.offsetParent);
14849 }
14850 }, {
14851 key: 'render',
14852 value: function render() {
14853 var _this2 = this;
14854
14855 var renderProps = this.filterProps(this.props);
14856
14857 var children = renderProps.children,
14858 element = renderProps.element,
14859 hasMore = renderProps.hasMore,
14860 initialLoad = renderProps.initialLoad,
14861 isReverse = renderProps.isReverse,
14862 loader = renderProps.loader,
14863 loadMore = renderProps.loadMore,
14864 pageStart = renderProps.pageStart,
14865 ref = renderProps.ref,
14866 threshold = renderProps.threshold,
14867 useCapture = renderProps.useCapture,
14868 useWindow = renderProps.useWindow,
14869 getScrollParent = renderProps.getScrollParent,
14870 props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
14871
14872 props.ref = function (node) {
14873 _this2.scrollComponent = node;
14874 if (ref) {
14875 ref(node);
14876 }
14877 };
14878
14879 var childrenArray = [children];
14880 if (hasMore) {
14881 if (loader) {
14882 isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
14883 } else if (this.defaultLoader) {
14884 isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
14885 }
14886 }
14887 return _react2.default.createElement(element, props, childrenArray);
14888 }
14889 }]);
14890
14891 return InfiniteScroll;
14892 }(_react.Component);
14893
14894 InfiniteScroll.propTypes = {
14895 children: _propTypes2.default.node.isRequired,
14896 element: _propTypes2.default.node,
14897 hasMore: _propTypes2.default.bool,
14898 initialLoad: _propTypes2.default.bool,
14899 isReverse: _propTypes2.default.bool,
14900 loader: _propTypes2.default.node,
14901 loadMore: _propTypes2.default.func.isRequired,
14902 pageStart: _propTypes2.default.number,
14903 ref: _propTypes2.default.func,
14904 getScrollParent: _propTypes2.default.func,
14905 threshold: _propTypes2.default.number,
14906 useCapture: _propTypes2.default.bool,
14907 useWindow: _propTypes2.default.bool
14908 };
14909 InfiniteScroll.defaultProps = {
14910 element: 'div',
14911 hasMore: false,
14912 initialLoad: true,
14913 pageStart: 0,
14914 ref: null,
14915 threshold: 250,
14916 useWindow: true,
14917 isReverse: false,
14918 useCapture: false,
14919 loader: null,
14920 getScrollParent: null
14921 };
14922 exports["default"] = InfiniteScroll;
14923 module.exports = exports['default'];
14924
14925
14926 /***/ }),
14927
14928 /***/ "../node_modules/react-infinite-scroller/index.js":
14929 /*!********************************************************!*\
14930 !*** ../node_modules/react-infinite-scroller/index.js ***!
14931 \********************************************************/
14932 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14933
14934 module.exports = __webpack_require__(/*! ./dist/InfiniteScroll */ "../node_modules/react-infinite-scroller/dist/InfiniteScroll.js")
14935
14936
14937 /***/ }),
14938
14939 /***/ "../node_modules/react-is/cjs/react-is.development.js":
14940 /*!************************************************************!*\
14941 !*** ../node_modules/react-is/cjs/react-is.development.js ***!
14942 \************************************************************/
14943 /***/ ((__unused_webpack_module, exports) => {
14944
14945 "use strict";
14946 /**
14947 * @license React
14948 * react-is.development.js
14949 *
14950 * Copyright (c) Facebook, Inc. and its affiliates.
14951 *
14952 * This source code is licensed under the MIT license found in the
14953 * LICENSE file in the root directory of this source tree.
14954 */
14955
14956
14957
14958 if (true) {
14959 (function() {
14960 'use strict';
14961
14962 // ATTENTION
14963 // When adding new symbols to this file,
14964 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
14965 // The Symbol used to tag the ReactElement-like types.
14966 var REACT_ELEMENT_TYPE = Symbol.for('react.element');
14967 var REACT_PORTAL_TYPE = Symbol.for('react.portal');
14968 var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
14969 var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
14970 var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
14971 var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
14972 var REACT_CONTEXT_TYPE = Symbol.for('react.context');
14973 var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
14974 var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
14975 var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
14976 var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
14977 var REACT_MEMO_TYPE = Symbol.for('react.memo');
14978 var REACT_LAZY_TYPE = Symbol.for('react.lazy');
14979 var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
14980
14981 // -----------------------------------------------------------------------------
14982
14983 var enableScopeAPI = false; // Experimental Create Event Handle API.
14984 var enableCacheElement = false;
14985 var enableTransitionTracing = false; // No known bugs, but needs performance testing
14986
14987 var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
14988 // stuff. Intended to enable React core members to more easily debug scheduling
14989 // issues in DEV builds.
14990
14991 var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
14992
14993 var REACT_MODULE_REFERENCE;
14994
14995 {
14996 REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
14997 }
14998
14999 function isValidElementType(type) {
15000 if (typeof type === 'string' || typeof type === 'function') {
15001 return true;
15002 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
15003
15004
15005 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 ) {
15006 return true;
15007 }
15008
15009 if (typeof type === 'object' && type !== null) {
15010 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
15011 // types supported by any Flight configuration anywhere since
15012 // we don't know which Flight build this will end up being used
15013 // with.
15014 type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
15015 return true;
15016 }
15017 }
15018
15019 return false;
15020 }
15021
15022 function typeOf(object) {
15023 if (typeof object === 'object' && object !== null) {
15024 var $$typeof = object.$$typeof;
15025
15026 switch ($$typeof) {
15027 case REACT_ELEMENT_TYPE:
15028 var type = object.type;
15029
15030 switch (type) {
15031 case REACT_FRAGMENT_TYPE:
15032 case REACT_PROFILER_TYPE:
15033 case REACT_STRICT_MODE_TYPE:
15034 case REACT_SUSPENSE_TYPE:
15035 case REACT_SUSPENSE_LIST_TYPE:
15036 return type;
15037
15038 default:
15039 var $$typeofType = type && type.$$typeof;
15040
15041 switch ($$typeofType) {
15042 case REACT_SERVER_CONTEXT_TYPE:
15043 case REACT_CONTEXT_TYPE:
15044 case REACT_FORWARD_REF_TYPE:
15045 case REACT_LAZY_TYPE:
15046 case REACT_MEMO_TYPE:
15047 case REACT_PROVIDER_TYPE:
15048 return $$typeofType;
15049
15050 default:
15051 return $$typeof;
15052 }
15053
15054 }
15055
15056 case REACT_PORTAL_TYPE:
15057 return $$typeof;
15058 }
15059 }
15060
15061 return undefined;
15062 }
15063 var ContextConsumer = REACT_CONTEXT_TYPE;
15064 var ContextProvider = REACT_PROVIDER_TYPE;
15065 var Element = REACT_ELEMENT_TYPE;
15066 var ForwardRef = REACT_FORWARD_REF_TYPE;
15067 var Fragment = REACT_FRAGMENT_TYPE;
15068 var Lazy = REACT_LAZY_TYPE;
15069 var Memo = REACT_MEMO_TYPE;
15070 var Portal = REACT_PORTAL_TYPE;
15071 var Profiler = REACT_PROFILER_TYPE;
15072 var StrictMode = REACT_STRICT_MODE_TYPE;
15073 var Suspense = REACT_SUSPENSE_TYPE;
15074 var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
15075 var hasWarnedAboutDeprecatedIsAsyncMode = false;
15076 var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
15077
15078 function isAsyncMode(object) {
15079 {
15080 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
15081 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
15082
15083 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
15084 }
15085 }
15086
15087 return false;
15088 }
15089 function isConcurrentMode(object) {
15090 {
15091 if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
15092 hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
15093
15094 console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
15095 }
15096 }
15097
15098 return false;
15099 }
15100 function isContextConsumer(object) {
15101 return typeOf(object) === REACT_CONTEXT_TYPE;
15102 }
15103 function isContextProvider(object) {
15104 return typeOf(object) === REACT_PROVIDER_TYPE;
15105 }
15106 function isElement(object) {
15107 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
15108 }
15109 function isForwardRef(object) {
15110 return typeOf(object) === REACT_FORWARD_REF_TYPE;
15111 }
15112 function isFragment(object) {
15113 return typeOf(object) === REACT_FRAGMENT_TYPE;
15114 }
15115 function isLazy(object) {
15116 return typeOf(object) === REACT_LAZY_TYPE;
15117 }
15118 function isMemo(object) {
15119 return typeOf(object) === REACT_MEMO_TYPE;
15120 }
15121 function isPortal(object) {
15122 return typeOf(object) === REACT_PORTAL_TYPE;
15123 }
15124 function isProfiler(object) {
15125 return typeOf(object) === REACT_PROFILER_TYPE;
15126 }
15127 function isStrictMode(object) {
15128 return typeOf(object) === REACT_STRICT_MODE_TYPE;
15129 }
15130 function isSuspense(object) {
15131 return typeOf(object) === REACT_SUSPENSE_TYPE;
15132 }
15133 function isSuspenseList(object) {
15134 return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
15135 }
15136
15137 exports.ContextConsumer = ContextConsumer;
15138 exports.ContextProvider = ContextProvider;
15139 exports.Element = Element;
15140 exports.ForwardRef = ForwardRef;
15141 exports.Fragment = Fragment;
15142 exports.Lazy = Lazy;
15143 exports.Memo = Memo;
15144 exports.Portal = Portal;
15145 exports.Profiler = Profiler;
15146 exports.StrictMode = StrictMode;
15147 exports.Suspense = Suspense;
15148 exports.SuspenseList = SuspenseList;
15149 exports.isAsyncMode = isAsyncMode;
15150 exports.isConcurrentMode = isConcurrentMode;
15151 exports.isContextConsumer = isContextConsumer;
15152 exports.isContextProvider = isContextProvider;
15153 exports.isElement = isElement;
15154 exports.isForwardRef = isForwardRef;
15155 exports.isFragment = isFragment;
15156 exports.isLazy = isLazy;
15157 exports.isMemo = isMemo;
15158 exports.isPortal = isPortal;
15159 exports.isProfiler = isProfiler;
15160 exports.isStrictMode = isStrictMode;
15161 exports.isSuspense = isSuspense;
15162 exports.isSuspenseList = isSuspenseList;
15163 exports.isValidElementType = isValidElementType;
15164 exports.typeOf = typeOf;
15165 })();
15166 }
15167
15168
15169 /***/ }),
15170
15171 /***/ "../node_modules/react-is/index.js":
15172 /*!*****************************************!*\
15173 !*** ../node_modules/react-is/index.js ***!
15174 \*****************************************/
15175 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
15176
15177 "use strict";
15178
15179
15180 if (false) {} else {
15181 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
15182 }
15183
15184
15185 /***/ }),
15186
15187 /***/ "../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js":
15188 /*!***************************************************************************!*\
15189 !*** ../node_modules/react-sketch-canvas/dist/react-sketch-canvas.esm.js ***!
15190 \***************************************************************************/
15191 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15192
15193 "use strict";
15194 __webpack_require__.r(__webpack_exports__);
15195 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
15196 /* harmony export */ Canvas: () => (/* binding */ Canvas),
15197 /* harmony export */ ReactSketchCanvas: () => (/* binding */ ReactSketchCanvas)
15198 /* harmony export */ });
15199 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
15200 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
15201
15202
15203 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
15204 try {
15205 var info = gen[key](arg);
15206 var value = info.value;
15207 } catch (error) {
15208 reject(error);
15209 return;
15210 }
15211
15212 if (info.done) {
15213 resolve(value);
15214 } else {
15215 Promise.resolve(value).then(_next, _throw);
15216 }
15217 }
15218
15219 function _asyncToGenerator(fn) {
15220 return function () {
15221 var self = this,
15222 args = arguments;
15223 return new Promise(function (resolve, reject) {
15224 var gen = fn.apply(self, args);
15225
15226 function _next(value) {
15227 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
15228 }
15229
15230 function _throw(err) {
15231 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
15232 }
15233
15234 _next(undefined);
15235 });
15236 };
15237 }
15238
15239 function _extends() {
15240 _extends = Object.assign || function (target) {
15241 for (var i = 1; i < arguments.length; i++) {
15242 var source = arguments[i];
15243
15244 for (var key in source) {
15245 if (Object.prototype.hasOwnProperty.call(source, key)) {
15246 target[key] = source[key];
15247 }
15248 }
15249 }
15250
15251 return target;
15252 };
15253
15254 return _extends.apply(this, arguments);
15255 }
15256
15257 var runtime = {exports: {}};
15258
15259 /**
15260 * Copyright (c) 2014-present, Facebook, Inc.
15261 *
15262 * This source code is licensed under the MIT license found in the
15263 * LICENSE file in the root directory of this source tree.
15264 */
15265
15266 (function (module) {
15267 var runtime = (function (exports) {
15268
15269 var Op = Object.prototype;
15270 var hasOwn = Op.hasOwnProperty;
15271 var undefined$1; // More compressible than void 0.
15272 var $Symbol = typeof Symbol === "function" ? Symbol : {};
15273 var iteratorSymbol = $Symbol.iterator || "@@iterator";
15274 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
15275 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
15276
15277 function define(obj, key, value) {
15278 Object.defineProperty(obj, key, {
15279 value: value,
15280 enumerable: true,
15281 configurable: true,
15282 writable: true
15283 });
15284 return obj[key];
15285 }
15286 try {
15287 // IE 8 has a broken Object.defineProperty that only works on DOM objects.
15288 define({}, "");
15289 } catch (err) {
15290 define = function(obj, key, value) {
15291 return obj[key] = value;
15292 };
15293 }
15294
15295 function wrap(innerFn, outerFn, self, tryLocsList) {
15296 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
15297 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
15298 var generator = Object.create(protoGenerator.prototype);
15299 var context = new Context(tryLocsList || []);
15300
15301 // The ._invoke method unifies the implementations of the .next,
15302 // .throw, and .return methods.
15303 generator._invoke = makeInvokeMethod(innerFn, self, context);
15304
15305 return generator;
15306 }
15307 exports.wrap = wrap;
15308
15309 // Try/catch helper to minimize deoptimizations. Returns a completion
15310 // record like context.tryEntries[i].completion. This interface could
15311 // have been (and was previously) designed to take a closure to be
15312 // invoked without arguments, but in all the cases we care about we
15313 // already have an existing method we want to call, so there's no need
15314 // to create a new function object. We can even get away with assuming
15315 // the method takes exactly one argument, since that happens to be true
15316 // in every case, so we don't have to touch the arguments object. The
15317 // only additional allocation required is the completion record, which
15318 // has a stable shape and so hopefully should be cheap to allocate.
15319 function tryCatch(fn, obj, arg) {
15320 try {
15321 return { type: "normal", arg: fn.call(obj, arg) };
15322 } catch (err) {
15323 return { type: "throw", arg: err };
15324 }
15325 }
15326
15327 var GenStateSuspendedStart = "suspendedStart";
15328 var GenStateSuspendedYield = "suspendedYield";
15329 var GenStateExecuting = "executing";
15330 var GenStateCompleted = "completed";
15331
15332 // Returning this object from the innerFn has the same effect as
15333 // breaking out of the dispatch switch statement.
15334 var ContinueSentinel = {};
15335
15336 // Dummy constructor functions that we use as the .constructor and
15337 // .constructor.prototype properties for functions that return Generator
15338 // objects. For full spec compliance, you may wish to configure your
15339 // minifier not to mangle the names of these two functions.
15340 function Generator() {}
15341 function GeneratorFunction() {}
15342 function GeneratorFunctionPrototype() {}
15343
15344 // This is a polyfill for %IteratorPrototype% for environments that
15345 // don't natively support it.
15346 var IteratorPrototype = {};
15347 define(IteratorPrototype, iteratorSymbol, function () {
15348 return this;
15349 });
15350
15351 var getProto = Object.getPrototypeOf;
15352 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
15353 if (NativeIteratorPrototype &&
15354 NativeIteratorPrototype !== Op &&
15355 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
15356 // This environment has a native %IteratorPrototype%; use it instead
15357 // of the polyfill.
15358 IteratorPrototype = NativeIteratorPrototype;
15359 }
15360
15361 var Gp = GeneratorFunctionPrototype.prototype =
15362 Generator.prototype = Object.create(IteratorPrototype);
15363 GeneratorFunction.prototype = GeneratorFunctionPrototype;
15364 define(Gp, "constructor", GeneratorFunctionPrototype);
15365 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
15366 GeneratorFunction.displayName = define(
15367 GeneratorFunctionPrototype,
15368 toStringTagSymbol,
15369 "GeneratorFunction"
15370 );
15371
15372 // Helper for defining the .next, .throw, and .return methods of the
15373 // Iterator interface in terms of a single ._invoke method.
15374 function defineIteratorMethods(prototype) {
15375 ["next", "throw", "return"].forEach(function(method) {
15376 define(prototype, method, function(arg) {
15377 return this._invoke(method, arg);
15378 });
15379 });
15380 }
15381
15382 exports.isGeneratorFunction = function(genFun) {
15383 var ctor = typeof genFun === "function" && genFun.constructor;
15384 return ctor
15385 ? ctor === GeneratorFunction ||
15386 // For the native GeneratorFunction constructor, the best we can
15387 // do is to check its .name property.
15388 (ctor.displayName || ctor.name) === "GeneratorFunction"
15389 : false;
15390 };
15391
15392 exports.mark = function(genFun) {
15393 if (Object.setPrototypeOf) {
15394 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
15395 } else {
15396 genFun.__proto__ = GeneratorFunctionPrototype;
15397 define(genFun, toStringTagSymbol, "GeneratorFunction");
15398 }
15399 genFun.prototype = Object.create(Gp);
15400 return genFun;
15401 };
15402
15403 // Within the body of any async function, `await x` is transformed to
15404 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
15405 // `hasOwn.call(value, "__await")` to determine if the yielded value is
15406 // meant to be awaited.
15407 exports.awrap = function(arg) {
15408 return { __await: arg };
15409 };
15410
15411 function AsyncIterator(generator, PromiseImpl) {
15412 function invoke(method, arg, resolve, reject) {
15413 var record = tryCatch(generator[method], generator, arg);
15414 if (record.type === "throw") {
15415 reject(record.arg);
15416 } else {
15417 var result = record.arg;
15418 var value = result.value;
15419 if (value &&
15420 typeof value === "object" &&
15421 hasOwn.call(value, "__await")) {
15422 return PromiseImpl.resolve(value.__await).then(function(value) {
15423 invoke("next", value, resolve, reject);
15424 }, function(err) {
15425 invoke("throw", err, resolve, reject);
15426 });
15427 }
15428
15429 return PromiseImpl.resolve(value).then(function(unwrapped) {
15430 // When a yielded Promise is resolved, its final value becomes
15431 // the .value of the Promise<{value,done}> result for the
15432 // current iteration.
15433 result.value = unwrapped;
15434 resolve(result);
15435 }, function(error) {
15436 // If a rejected Promise was yielded, throw the rejection back
15437 // into the async generator function so it can be handled there.
15438 return invoke("throw", error, resolve, reject);
15439 });
15440 }
15441 }
15442
15443 var previousPromise;
15444
15445 function enqueue(method, arg) {
15446 function callInvokeWithMethodAndArg() {
15447 return new PromiseImpl(function(resolve, reject) {
15448 invoke(method, arg, resolve, reject);
15449 });
15450 }
15451
15452 return previousPromise =
15453 // If enqueue has been called before, then we want to wait until
15454 // all previous Promises have been resolved before calling invoke,
15455 // so that results are always delivered in the correct order. If
15456 // enqueue has not been called before, then it is important to
15457 // call invoke immediately, without waiting on a callback to fire,
15458 // so that the async generator function has the opportunity to do
15459 // any necessary setup in a predictable way. This predictability
15460 // is why the Promise constructor synchronously invokes its
15461 // executor callback, and why async functions synchronously
15462 // execute code before the first await. Since we implement simple
15463 // async functions in terms of async generators, it is especially
15464 // important to get this right, even though it requires care.
15465 previousPromise ? previousPromise.then(
15466 callInvokeWithMethodAndArg,
15467 // Avoid propagating failures to Promises returned by later
15468 // invocations of the iterator.
15469 callInvokeWithMethodAndArg
15470 ) : callInvokeWithMethodAndArg();
15471 }
15472
15473 // Define the unified helper method that is used to implement .next,
15474 // .throw, and .return (see defineIteratorMethods).
15475 this._invoke = enqueue;
15476 }
15477
15478 defineIteratorMethods(AsyncIterator.prototype);
15479 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
15480 return this;
15481 });
15482 exports.AsyncIterator = AsyncIterator;
15483
15484 // Note that simple async functions are implemented on top of
15485 // AsyncIterator objects; they just return a Promise for the value of
15486 // the final result produced by the iterator.
15487 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
15488 if (PromiseImpl === void 0) PromiseImpl = Promise;
15489
15490 var iter = new AsyncIterator(
15491 wrap(innerFn, outerFn, self, tryLocsList),
15492 PromiseImpl
15493 );
15494
15495 return exports.isGeneratorFunction(outerFn)
15496 ? iter // If outerFn is a generator, return the full iterator.
15497 : iter.next().then(function(result) {
15498 return result.done ? result.value : iter.next();
15499 });
15500 };
15501
15502 function makeInvokeMethod(innerFn, self, context) {
15503 var state = GenStateSuspendedStart;
15504
15505 return function invoke(method, arg) {
15506 if (state === GenStateExecuting) {
15507 throw new Error("Generator is already running");
15508 }
15509
15510 if (state === GenStateCompleted) {
15511 if (method === "throw") {
15512 throw arg;
15513 }
15514
15515 // Be forgiving, per 25.3.3.3.3 of the spec:
15516 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
15517 return doneResult();
15518 }
15519
15520 context.method = method;
15521 context.arg = arg;
15522
15523 while (true) {
15524 var delegate = context.delegate;
15525 if (delegate) {
15526 var delegateResult = maybeInvokeDelegate(delegate, context);
15527 if (delegateResult) {
15528 if (delegateResult === ContinueSentinel) continue;
15529 return delegateResult;
15530 }
15531 }
15532
15533 if (context.method === "next") {
15534 // Setting context._sent for legacy support of Babel's
15535 // function.sent implementation.
15536 context.sent = context._sent = context.arg;
15537
15538 } else if (context.method === "throw") {
15539 if (state === GenStateSuspendedStart) {
15540 state = GenStateCompleted;
15541 throw context.arg;
15542 }
15543
15544 context.dispatchException(context.arg);
15545
15546 } else if (context.method === "return") {
15547 context.abrupt("return", context.arg);
15548 }
15549
15550 state = GenStateExecuting;
15551
15552 var record = tryCatch(innerFn, self, context);
15553 if (record.type === "normal") {
15554 // If an exception is thrown from innerFn, we leave state ===
15555 // GenStateExecuting and loop back for another invocation.
15556 state = context.done
15557 ? GenStateCompleted
15558 : GenStateSuspendedYield;
15559
15560 if (record.arg === ContinueSentinel) {
15561 continue;
15562 }
15563
15564 return {
15565 value: record.arg,
15566 done: context.done
15567 };
15568
15569 } else if (record.type === "throw") {
15570 state = GenStateCompleted;
15571 // Dispatch the exception by looping back around to the
15572 // context.dispatchException(context.arg) call above.
15573 context.method = "throw";
15574 context.arg = record.arg;
15575 }
15576 }
15577 };
15578 }
15579
15580 // Call delegate.iterator[context.method](context.arg) and handle the
15581 // result, either by returning a { value, done } result from the
15582 // delegate iterator, or by modifying context.method and context.arg,
15583 // setting context.delegate to null, and returning the ContinueSentinel.
15584 function maybeInvokeDelegate(delegate, context) {
15585 var method = delegate.iterator[context.method];
15586 if (method === undefined$1) {
15587 // A .throw or .return when the delegate iterator has no .throw
15588 // method always terminates the yield* loop.
15589 context.delegate = null;
15590
15591 if (context.method === "throw") {
15592 // Note: ["return"] must be used for ES3 parsing compatibility.
15593 if (delegate.iterator["return"]) {
15594 // If the delegate iterator has a return method, give it a
15595 // chance to clean up.
15596 context.method = "return";
15597 context.arg = undefined$1;
15598 maybeInvokeDelegate(delegate, context);
15599
15600 if (context.method === "throw") {
15601 // If maybeInvokeDelegate(context) changed context.method from
15602 // "return" to "throw", let that override the TypeError below.
15603 return ContinueSentinel;
15604 }
15605 }
15606
15607 context.method = "throw";
15608 context.arg = new TypeError(
15609 "The iterator does not provide a 'throw' method");
15610 }
15611
15612 return ContinueSentinel;
15613 }
15614
15615 var record = tryCatch(method, delegate.iterator, context.arg);
15616
15617 if (record.type === "throw") {
15618 context.method = "throw";
15619 context.arg = record.arg;
15620 context.delegate = null;
15621 return ContinueSentinel;
15622 }
15623
15624 var info = record.arg;
15625
15626 if (! info) {
15627 context.method = "throw";
15628 context.arg = new TypeError("iterator result is not an object");
15629 context.delegate = null;
15630 return ContinueSentinel;
15631 }
15632
15633 if (info.done) {
15634 // Assign the result of the finished delegate to the temporary
15635 // variable specified by delegate.resultName (see delegateYield).
15636 context[delegate.resultName] = info.value;
15637
15638 // Resume execution at the desired location (see delegateYield).
15639 context.next = delegate.nextLoc;
15640
15641 // If context.method was "throw" but the delegate handled the
15642 // exception, let the outer generator proceed normally. If
15643 // context.method was "next", forget context.arg since it has been
15644 // "consumed" by the delegate iterator. If context.method was
15645 // "return", allow the original .return call to continue in the
15646 // outer generator.
15647 if (context.method !== "return") {
15648 context.method = "next";
15649 context.arg = undefined$1;
15650 }
15651
15652 } else {
15653 // Re-yield the result returned by the delegate method.
15654 return info;
15655 }
15656
15657 // The delegate iterator is finished, so forget it and continue with
15658 // the outer generator.
15659 context.delegate = null;
15660 return ContinueSentinel;
15661 }
15662
15663 // Define Generator.prototype.{next,throw,return} in terms of the
15664 // unified ._invoke helper method.
15665 defineIteratorMethods(Gp);
15666
15667 define(Gp, toStringTagSymbol, "Generator");
15668
15669 // A Generator should always return itself as the iterator object when the
15670 // @@iterator function is called on it. Some browsers' implementations of the
15671 // iterator prototype chain incorrectly implement this, causing the Generator
15672 // object to not be returned from this call. This ensures that doesn't happen.
15673 // See https://github.com/facebook/regenerator/issues/274 for more details.
15674 define(Gp, iteratorSymbol, function() {
15675 return this;
15676 });
15677
15678 define(Gp, "toString", function() {
15679 return "[object Generator]";
15680 });
15681
15682 function pushTryEntry(locs) {
15683 var entry = { tryLoc: locs[0] };
15684
15685 if (1 in locs) {
15686 entry.catchLoc = locs[1];
15687 }
15688
15689 if (2 in locs) {
15690 entry.finallyLoc = locs[2];
15691 entry.afterLoc = locs[3];
15692 }
15693
15694 this.tryEntries.push(entry);
15695 }
15696
15697 function resetTryEntry(entry) {
15698 var record = entry.completion || {};
15699 record.type = "normal";
15700 delete record.arg;
15701 entry.completion = record;
15702 }
15703
15704 function Context(tryLocsList) {
15705 // The root entry object (effectively a try statement without a catch
15706 // or a finally block) gives us a place to store values thrown from
15707 // locations where there is no enclosing try statement.
15708 this.tryEntries = [{ tryLoc: "root" }];
15709 tryLocsList.forEach(pushTryEntry, this);
15710 this.reset(true);
15711 }
15712
15713 exports.keys = function(object) {
15714 var keys = [];
15715 for (var key in object) {
15716 keys.push(key);
15717 }
15718 keys.reverse();
15719
15720 // Rather than returning an object with a next method, we keep
15721 // things simple and return the next function itself.
15722 return function next() {
15723 while (keys.length) {
15724 var key = keys.pop();
15725 if (key in object) {
15726 next.value = key;
15727 next.done = false;
15728 return next;
15729 }
15730 }
15731
15732 // To avoid creating an additional object, we just hang the .value
15733 // and .done properties off the next function object itself. This
15734 // also ensures that the minifier will not anonymize the function.
15735 next.done = true;
15736 return next;
15737 };
15738 };
15739
15740 function values(iterable) {
15741 if (iterable) {
15742 var iteratorMethod = iterable[iteratorSymbol];
15743 if (iteratorMethod) {
15744 return iteratorMethod.call(iterable);
15745 }
15746
15747 if (typeof iterable.next === "function") {
15748 return iterable;
15749 }
15750
15751 if (!isNaN(iterable.length)) {
15752 var i = -1, next = function next() {
15753 while (++i < iterable.length) {
15754 if (hasOwn.call(iterable, i)) {
15755 next.value = iterable[i];
15756 next.done = false;
15757 return next;
15758 }
15759 }
15760
15761 next.value = undefined$1;
15762 next.done = true;
15763
15764 return next;
15765 };
15766
15767 return next.next = next;
15768 }
15769 }
15770
15771 // Return an iterator with no values.
15772 return { next: doneResult };
15773 }
15774 exports.values = values;
15775
15776 function doneResult() {
15777 return { value: undefined$1, done: true };
15778 }
15779
15780 Context.prototype = {
15781 constructor: Context,
15782
15783 reset: function(skipTempReset) {
15784 this.prev = 0;
15785 this.next = 0;
15786 // Resetting context._sent for legacy support of Babel's
15787 // function.sent implementation.
15788 this.sent = this._sent = undefined$1;
15789 this.done = false;
15790 this.delegate = null;
15791
15792 this.method = "next";
15793 this.arg = undefined$1;
15794
15795 this.tryEntries.forEach(resetTryEntry);
15796
15797 if (!skipTempReset) {
15798 for (var name in this) {
15799 // Not sure about the optimal order of these conditions:
15800 if (name.charAt(0) === "t" &&
15801 hasOwn.call(this, name) &&
15802 !isNaN(+name.slice(1))) {
15803 this[name] = undefined$1;
15804 }
15805 }
15806 }
15807 },
15808
15809 stop: function() {
15810 this.done = true;
15811
15812 var rootEntry = this.tryEntries[0];
15813 var rootRecord = rootEntry.completion;
15814 if (rootRecord.type === "throw") {
15815 throw rootRecord.arg;
15816 }
15817
15818 return this.rval;
15819 },
15820
15821 dispatchException: function(exception) {
15822 if (this.done) {
15823 throw exception;
15824 }
15825
15826 var context = this;
15827 function handle(loc, caught) {
15828 record.type = "throw";
15829 record.arg = exception;
15830 context.next = loc;
15831
15832 if (caught) {
15833 // If the dispatched exception was caught by a catch block,
15834 // then let that catch block handle the exception normally.
15835 context.method = "next";
15836 context.arg = undefined$1;
15837 }
15838
15839 return !! caught;
15840 }
15841
15842 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15843 var entry = this.tryEntries[i];
15844 var record = entry.completion;
15845
15846 if (entry.tryLoc === "root") {
15847 // Exception thrown outside of any try block that could handle
15848 // it, so set the completion value of the entire function to
15849 // throw the exception.
15850 return handle("end");
15851 }
15852
15853 if (entry.tryLoc <= this.prev) {
15854 var hasCatch = hasOwn.call(entry, "catchLoc");
15855 var hasFinally = hasOwn.call(entry, "finallyLoc");
15856
15857 if (hasCatch && hasFinally) {
15858 if (this.prev < entry.catchLoc) {
15859 return handle(entry.catchLoc, true);
15860 } else if (this.prev < entry.finallyLoc) {
15861 return handle(entry.finallyLoc);
15862 }
15863
15864 } else if (hasCatch) {
15865 if (this.prev < entry.catchLoc) {
15866 return handle(entry.catchLoc, true);
15867 }
15868
15869 } else if (hasFinally) {
15870 if (this.prev < entry.finallyLoc) {
15871 return handle(entry.finallyLoc);
15872 }
15873
15874 } else {
15875 throw new Error("try statement without catch or finally");
15876 }
15877 }
15878 }
15879 },
15880
15881 abrupt: function(type, arg) {
15882 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15883 var entry = this.tryEntries[i];
15884 if (entry.tryLoc <= this.prev &&
15885 hasOwn.call(entry, "finallyLoc") &&
15886 this.prev < entry.finallyLoc) {
15887 var finallyEntry = entry;
15888 break;
15889 }
15890 }
15891
15892 if (finallyEntry &&
15893 (type === "break" ||
15894 type === "continue") &&
15895 finallyEntry.tryLoc <= arg &&
15896 arg <= finallyEntry.finallyLoc) {
15897 // Ignore the finally entry if control is not jumping to a
15898 // location outside the try/catch block.
15899 finallyEntry = null;
15900 }
15901
15902 var record = finallyEntry ? finallyEntry.completion : {};
15903 record.type = type;
15904 record.arg = arg;
15905
15906 if (finallyEntry) {
15907 this.method = "next";
15908 this.next = finallyEntry.finallyLoc;
15909 return ContinueSentinel;
15910 }
15911
15912 return this.complete(record);
15913 },
15914
15915 complete: function(record, afterLoc) {
15916 if (record.type === "throw") {
15917 throw record.arg;
15918 }
15919
15920 if (record.type === "break" ||
15921 record.type === "continue") {
15922 this.next = record.arg;
15923 } else if (record.type === "return") {
15924 this.rval = this.arg = record.arg;
15925 this.method = "return";
15926 this.next = "end";
15927 } else if (record.type === "normal" && afterLoc) {
15928 this.next = afterLoc;
15929 }
15930
15931 return ContinueSentinel;
15932 },
15933
15934 finish: function(finallyLoc) {
15935 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15936 var entry = this.tryEntries[i];
15937 if (entry.finallyLoc === finallyLoc) {
15938 this.complete(entry.completion, entry.afterLoc);
15939 resetTryEntry(entry);
15940 return ContinueSentinel;
15941 }
15942 }
15943 },
15944
15945 "catch": function(tryLoc) {
15946 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
15947 var entry = this.tryEntries[i];
15948 if (entry.tryLoc === tryLoc) {
15949 var record = entry.completion;
15950 if (record.type === "throw") {
15951 var thrown = record.arg;
15952 resetTryEntry(entry);
15953 }
15954 return thrown;
15955 }
15956 }
15957
15958 // The context.catch method must only be called with a location
15959 // argument that corresponds to a known catch block.
15960 throw new Error("illegal catch attempt");
15961 },
15962
15963 delegateYield: function(iterable, resultName, nextLoc) {
15964 this.delegate = {
15965 iterator: values(iterable),
15966 resultName: resultName,
15967 nextLoc: nextLoc
15968 };
15969
15970 if (this.method === "next") {
15971 // Deliberately forget the last sent value so that we don't
15972 // accidentally pass it on to the delegate.
15973 this.arg = undefined$1;
15974 }
15975
15976 return ContinueSentinel;
15977 }
15978 };
15979
15980 // Regardless of whether this script is executing as a CommonJS module
15981 // or not, return the runtime object so that we can declare the variable
15982 // regeneratorRuntime in the outer scope, which allows this module to be
15983 // injected easily by `bin/regenerator --include-runtime script.js`.
15984 return exports;
15985
15986 }(
15987 // If this script is executing as a CommonJS module, use module.exports
15988 // as the regeneratorRuntime namespace. Otherwise create a new empty
15989 // object. Either way, the resulting object will be used to initialize
15990 // the regeneratorRuntime variable at the top of this file.
15991 module.exports
15992 ));
15993
15994 try {
15995 regeneratorRuntime = runtime;
15996 } catch (accidentalStrictMode) {
15997 // This module should not be running in strict mode, so the above
15998 // assignment should always work unless something is misconfigured. Just
15999 // in case runtime.js accidentally runs in strict mode, in modern engines
16000 // we can explicitly access globalThis. In older engines we can escape
16001 // strict mode using a global Function call. This could conceivably fail
16002 // if a Content Security Policy forbids using Function, but in that case
16003 // the proper solution is to fix the accidental strict mode problem. If
16004 // you've misconfigured your bundler to force strict mode and applied a
16005 // CSP to forbid Function, and you're not willing to fix either of those
16006 // problems, please detail your unique predicament in a GitHub issue.
16007 if (typeof globalThis === "object") {
16008 globalThis.regeneratorRuntime = runtime;
16009 } else {
16010 Function("r", "regeneratorRuntime = r")(runtime);
16011 }
16012 }
16013 }(runtime));
16014
16015 var _regeneratorRuntime = runtime.exports;
16016
16017 /**
16018 * Generate SVG Path tag from the given points
16019 */
16020
16021 var SvgPath = function SvgPath(_ref) {
16022 var paths = _ref.paths,
16023 id = _ref.id,
16024 strokeWidth = _ref.strokeWidth,
16025 strokeColor = _ref.strokeColor,
16026 _ref$command = _ref.command,
16027 command = _ref$command === void 0 ? bezierCommand : _ref$command;
16028
16029 if (paths.length === 1) {
16030 var _paths$ = paths[0],
16031 x = _paths$.x,
16032 y = _paths$.y;
16033 var radius = strokeWidth / 2;
16034 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
16035 key: id,
16036 id: id,
16037 cx: x,
16038 cy: y,
16039 r: radius,
16040 stroke: strokeColor,
16041 fill: strokeColor
16042 });
16043 }
16044
16045 var d = paths.reduce(function (acc, point, i, a) {
16046 return i === 0 ? "M " + point.x + "," + point.y : acc + " " + command(point, i, a);
16047 }, '');
16048 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
16049 key: id,
16050 id: id,
16051 d: d,
16052 fill: "none",
16053 strokeLinecap: "round",
16054 stroke: strokeColor,
16055 strokeWidth: strokeWidth
16056 });
16057 };
16058 var line = function line(pointA, pointB) {
16059 var lengthX = pointB.x - pointA.x;
16060 var lengthY = pointB.y - pointA.y;
16061 return {
16062 length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),
16063 angle: Math.atan2(lengthY, lengthX)
16064 };
16065 };
16066
16067 var controlPoint = function controlPoint(controlPoints) {
16068 var current = controlPoints.current,
16069 next = controlPoints.next,
16070 previous = controlPoints.previous,
16071 reverse = controlPoints.reverse;
16072 var p = previous || current;
16073 var n = next || current;
16074 var smoothing = 0.2;
16075 var o = line(p, n);
16076 var angle = o.angle + (reverse ? Math.PI : 0);
16077 var length = o.length * smoothing;
16078 var x = current.x + Math.cos(angle) * length;
16079 var y = current.y + Math.sin(angle) * length;
16080 return [x, y];
16081 };
16082
16083 var bezierCommand = function bezierCommand(point, i, a) {
16084 var cpsX = null;
16085 var cpsY = null;
16086
16087 switch (i) {
16088 case 0:
16089 var _controlPoint = controlPoint({
16090 current: point
16091 });
16092
16093 cpsX = _controlPoint[0];
16094 cpsY = _controlPoint[1];
16095 break;
16096
16097 case 1:
16098 var _controlPoint2 = controlPoint({
16099 current: a[i - 1],
16100 next: point
16101 });
16102
16103 cpsX = _controlPoint2[0];
16104 cpsY = _controlPoint2[1];
16105 break;
16106
16107 default:
16108 var _controlPoint3 = controlPoint({
16109 current: a[i - 1],
16110 previous: a[i - 2],
16111 next: point
16112 });
16113
16114 cpsX = _controlPoint3[0];
16115 cpsY = _controlPoint3[1];
16116 break;
16117 }
16118
16119 var _controlPoint4 = controlPoint({
16120 current: point,
16121 previous: a[i - 1],
16122 next: a[i + 1],
16123 reverse: true
16124 }),
16125 cpeX = _controlPoint4[0],
16126 cpeY = _controlPoint4[1];
16127
16128 return "C " + cpsX + "," + cpsY + " " + cpeX + "," + cpeY + " " + point.x + ", " + point.y;
16129 };
16130
16131 var Paths = function Paths(_ref2) {
16132 var id = _ref2.id,
16133 paths = _ref2.paths;
16134 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, paths.map(function (path, index) {
16135 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
16136 key: id + "__" + index,
16137 paths: path.paths,
16138 id: id + "__" + index,
16139 strokeWidth: path.strokeWidth,
16140 strokeColor: path.strokeColor,
16141 command: bezierCommand
16142 });
16143 }));
16144 };
16145
16146 var loadImage = function loadImage(url) {
16147 return new Promise(function (resolve, reject) {
16148 var img = new Image();
16149 img.addEventListener('load', function () {
16150 if (img.width > 0) {
16151 resolve(img);
16152 }
16153
16154 reject('Image not found');
16155 });
16156 img.addEventListener('error', function (err) {
16157 return reject(err);
16158 });
16159 img.src = url;
16160 img.setAttribute('crossorigin', 'anonymous');
16161 });
16162 };
16163
16164 function getCanvasWithViewBox(canvas) {
16165 var _canvas$firstChild;
16166
16167 var svgCanvas = (_canvas$firstChild = canvas.firstChild) == null ? void 0 : _canvas$firstChild.cloneNode(true);
16168 var width = canvas.offsetWidth;
16169 var height = canvas.offsetHeight;
16170 svgCanvas.setAttribute('viewBox', "0 0 " + width + " " + height);
16171 svgCanvas.setAttribute('width', width.toString());
16172 svgCanvas.setAttribute('height', height.toString());
16173 return {
16174 svgCanvas: svgCanvas,
16175 width: width,
16176 height: height
16177 };
16178 }
16179
16180 var Canvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
16181 var paths = props.paths,
16182 isDrawing = props.isDrawing,
16183 onPointerDown = props.onPointerDown,
16184 onPointerMove = props.onPointerMove,
16185 onPointerUp = props.onPointerUp,
16186 _props$id = props.id,
16187 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
16188 _props$width = props.width,
16189 width = _props$width === void 0 ? '100%' : _props$width,
16190 _props$height = props.height,
16191 height = _props$height === void 0 ? '100%' : _props$height,
16192 _props$className = props.className,
16193 className = _props$className === void 0 ? 'react-sketch-canvas' : _props$className,
16194 _props$canvasColor = props.canvasColor,
16195 canvasColor = _props$canvasColor === void 0 ? 'red' : _props$canvasColor,
16196 _props$backgroundImag = props.backgroundImage,
16197 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
16198 _props$exportWithBack = props.exportWithBackgroundImage,
16199 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
16200 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
16201 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
16202 _props$allowOnlyPoint = props.allowOnlyPointerType,
16203 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
16204 _props$style = props.style,
16205 style = _props$style === void 0 ? {
16206 border: '0.0625rem solid #9c9c9c',
16207 borderRadius: '0.25rem'
16208 } : _props$style,
16209 _props$svgStyle = props.svgStyle,
16210 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle;
16211 var canvasRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); // Converts mouse coordinates to relative coordinate based on the absolute position of svg
16212
16213 var getCoordinates = function getCoordinates(pointerEvent) {
16214 var _canvasRef$current, _window$scrollX, _window$scrollY;
16215
16216 var boundingArea = (_canvasRef$current = canvasRef.current) == null ? void 0 : _canvasRef$current.getBoundingClientRect();
16217 var scrollLeft = (_window$scrollX = window.scrollX) != null ? _window$scrollX : 0;
16218 var scrollTop = (_window$scrollY = window.scrollY) != null ? _window$scrollY : 0;
16219
16220 if (!boundingArea) {
16221 return {
16222 x: 0,
16223 y: 0
16224 };
16225 }
16226
16227 var point = {
16228 x: pointerEvent.pageX - boundingArea.left - scrollLeft,
16229 y: pointerEvent.pageY - boundingArea.top - scrollTop
16230 };
16231 return point;
16232 };
16233 /* Mouse Handlers - Mouse down, move and up */
16234
16235
16236 var handlePointerDown = function handlePointerDown(event) {
16237 // Allow only chosen pointer type
16238 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
16239 return;
16240 }
16241
16242 if (event.pointerType === 'mouse' && event.button !== 0) return;
16243 var point = getCoordinates(event);
16244 onPointerDown(point);
16245 };
16246
16247 var handlePointerMove = function handlePointerMove(event) {
16248 if (!isDrawing) return; // Allow only chosen pointer type
16249
16250 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
16251 return;
16252 }
16253
16254 var point = getCoordinates(event);
16255 onPointerMove(point);
16256 };
16257
16258 var handlePointerUp = function handlePointerUp(event) {
16259 if (event.pointerType === 'mouse' && event.button !== 0) return; // Allow only chosen pointer type
16260
16261 if (allowOnlyPointerType !== 'all' && event.pointerType !== allowOnlyPointerType) {
16262 return;
16263 }
16264
16265 onPointerUp();
16266 };
16267 /* Mouse Handlers ends */
16268
16269
16270 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
16271 return {
16272 exportImage: function exportImage(imageType) {
16273 return new Promise( /*#__PURE__*/function () {
16274 var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
16275 var canvas, _getCanvasWithViewBox, svgCanvas, _width, _height, canvasSketch, loadImagePromises, img;
16276
16277 return _regeneratorRuntime.wrap(function _callee$(_context) {
16278 while (1) {
16279 switch (_context.prev = _context.next) {
16280 case 0:
16281 _context.prev = 0;
16282 canvas = canvasRef.current;
16283
16284 if (canvas) {
16285 _context.next = 4;
16286 break;
16287 }
16288
16289 throw Error('Canvas not rendered yet');
16290
16291 case 4:
16292 _getCanvasWithViewBox = getCanvasWithViewBox(canvas), svgCanvas = _getCanvasWithViewBox.svgCanvas, _width = _getCanvasWithViewBox.width, _height = _getCanvasWithViewBox.height;
16293 canvasSketch = "data:image/svg+xml;base64," + btoa(svgCanvas.outerHTML);
16294 _context.next = 8;
16295 return loadImage(canvasSketch);
16296
16297 case 8:
16298 _context.t0 = _context.sent;
16299 loadImagePromises = [_context.t0];
16300
16301 if (!exportWithBackgroundImage) {
16302 _context.next = 21;
16303 break;
16304 }
16305
16306 _context.prev = 11;
16307 _context.next = 14;
16308 return loadImage(backgroundImage);
16309
16310 case 14:
16311 img = _context.sent;
16312 loadImagePromises.push(img);
16313 _context.next = 21;
16314 break;
16315
16316 case 18:
16317 _context.prev = 18;
16318 _context.t1 = _context["catch"](11);
16319 console.warn('exportWithBackgroundImage props is set without a valid background image URL. This option is ignored');
16320
16321 case 21:
16322 Promise.all(loadImagePromises).then(function (images) {
16323 var renderCanvas = document.createElement('canvas');
16324 renderCanvas.setAttribute('width', _width.toString());
16325 renderCanvas.setAttribute('height', _height.toString());
16326 var context = renderCanvas.getContext('2d');
16327
16328 if (!context) {
16329 throw Error('Canvas not rendered yet');
16330 }
16331
16332 images.reverse().forEach(function (image) {
16333 context.drawImage(image, 0, 0);
16334 });
16335 resolve(renderCanvas.toDataURL("image/" + imageType));
16336 })["catch"](function (e) {
16337 throw e;
16338 });
16339 _context.next = 27;
16340 break;
16341
16342 case 24:
16343 _context.prev = 24;
16344 _context.t2 = _context["catch"](0);
16345 reject(_context.t2);
16346
16347 case 27:
16348 case "end":
16349 return _context.stop();
16350 }
16351 }
16352 }, _callee, null, [[0, 24], [11, 18]]);
16353 }));
16354
16355 return function (_x, _x2) {
16356 return _ref.apply(this, arguments);
16357 };
16358 }());
16359 },
16360 exportSvg: function exportSvg() {
16361 return new Promise(function (resolve, reject) {
16362 try {
16363 var _canvasRef$current2;
16364
16365 var canvas = (_canvasRef$current2 = canvasRef.current) != null ? _canvasRef$current2 : null;
16366
16367 if (canvas !== null) {
16368 var _svgCanvas$querySelec, _svgCanvas$querySelec2;
16369
16370 var _getCanvasWithViewBox2 = getCanvasWithViewBox(canvas),
16371 svgCanvas = _getCanvasWithViewBox2.svgCanvas;
16372
16373 if (exportWithBackgroundImage) {
16374 resolve(svgCanvas.outerHTML);
16375 return;
16376 }
16377
16378 (_svgCanvas$querySelec = svgCanvas.querySelector("#" + id + "__background")) == null ? void 0 : _svgCanvas$querySelec.remove();
16379 (_svgCanvas$querySelec2 = svgCanvas.querySelector("#" + id + "__canvas-background")) == null ? void 0 : _svgCanvas$querySelec2.setAttribute('fill', canvasColor);
16380 resolve(svgCanvas.outerHTML);
16381 }
16382
16383 reject(new Error('Canvas not loaded'));
16384 } catch (e) {
16385 reject(e);
16386 }
16387 });
16388 }
16389 };
16390 });
16391 /* Add event listener to Mouse up and Touch up to
16392 release drawing even when point goes out of canvas */
16393
16394 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16395 document.addEventListener('pointerup', handlePointerUp);
16396 return function () {
16397 document.removeEventListener('pointerup', handlePointerUp);
16398 };
16399 }, [handlePointerUp]);
16400 var eraserPaths = paths.filter(function (path) {
16401 return !path.drawMode;
16402 });
16403 var currentGroup = 0;
16404 var pathGroups = paths.reduce(function (arrayGroup, path) {
16405 if (!path.drawMode) {
16406 currentGroup += 1;
16407 return arrayGroup;
16408 }
16409
16410 if (arrayGroup[currentGroup] === undefined) {
16411 arrayGroup[currentGroup] = [];
16412 }
16413
16414 arrayGroup[currentGroup].push(path);
16415 return arrayGroup;
16416 }, [[]]);
16417 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
16418 role: "presentation",
16419 ref: canvasRef,
16420 className: className,
16421 style: _extends({
16422 touchAction: 'none',
16423 width: width,
16424 height: height
16425 }, style),
16426 "touch-action": "none",
16427 onPointerDown: handlePointerDown,
16428 onPointerMove: handlePointerMove,
16429 onPointerUp: handlePointerUp
16430 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", {
16431 version: "1.1",
16432 baseProfile: "full",
16433 xmlns: "http://www.w3.org/2000/svg",
16434 xmlnsXlink: "http://www.w3.org/1999/xlink",
16435 style: _extends({
16436 width: '100%',
16437 height: '100%'
16438 }, svgStyle),
16439 id: id
16440 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16441 id: id + "__eraser-stroke-group",
16442 display: "none"
16443 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16444 id: id + "__mask-background",
16445 x: "0",
16446 y: "0",
16447 width: "100%",
16448 height: "100%",
16449 fill: "white"
16450 }), eraserPaths.map(function (eraserPath, i) {
16451 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(SvgPath, {
16452 key: id + "__eraser-" + i,
16453 id: id + "__eraser-" + i,
16454 paths: eraserPath.paths,
16455 strokeColor: "#000000",
16456 strokeWidth: eraserPath.strokeWidth
16457 });
16458 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, backgroundImage && react__WEBPACK_IMPORTED_MODULE_0__.createElement("pattern", {
16459 id: id + "__background",
16460 x: "0",
16461 y: "0",
16462 width: "100%",
16463 height: "100%",
16464 patternUnits: "userSpaceOnUse"
16465 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("image", {
16466 x: "0",
16467 y: "0",
16468 width: "100%",
16469 height: "100%",
16470 xlinkHref: backgroundImage,
16471 preserveAspectRatio: preserveBackgroundImageAspectRatio
16472 })), eraserPaths.map(function (_, i) {
16473 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
16474 id: id + "__eraser-mask-" + i,
16475 key: id + "__eraser-mask-" + i,
16476 maskUnits: "userSpaceOnUse"
16477 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16478 href: "#" + id + "__mask-background"
16479 }), Array.from({
16480 length: eraserPaths.length - i
16481 }, function (_, j) {
16482 return j + i;
16483 }).map(function (k) {
16484 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("use", {
16485 key: k.toString(),
16486 href: "#" + id + "__eraser-" + k.toString()
16487 });
16488 }));
16489 })), react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16490 id: id + "__canvas-background-group"
16491 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
16492 id: id + "__canvas-background",
16493 x: "0",
16494 y: "0",
16495 width: "100%",
16496 height: "100%",
16497 fill: backgroundImage ? "url(#" + id + "__background)" : canvasColor
16498 })), pathGroups.map(function (pathGroup, i) {
16499 return react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
16500 id: id + "__stroke-group-" + i,
16501 key: id + "__stroke-group-" + i,
16502 mask: "url(#" + id + "__eraser-mask-" + i + ")"
16503 }, react__WEBPACK_IMPORTED_MODULE_0__.createElement(Paths, {
16504 id: id,
16505 paths: pathGroup
16506 }));
16507 })));
16508 });
16509
16510 var ReactSketchCanvas = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {
16511 var _props$id = props.id,
16512 id = _props$id === void 0 ? 'react-sketch-canvas' : _props$id,
16513 _props$width = props.width,
16514 width = _props$width === void 0 ? '100%' : _props$width,
16515 _props$height = props.height,
16516 height = _props$height === void 0 ? '100%' : _props$height,
16517 _props$className = props.className,
16518 className = _props$className === void 0 ? '' : _props$className,
16519 _props$canvasColor = props.canvasColor,
16520 canvasColor = _props$canvasColor === void 0 ? 'white' : _props$canvasColor,
16521 _props$strokeColor = props.strokeColor,
16522 strokeColor = _props$strokeColor === void 0 ? 'red' : _props$strokeColor,
16523 _props$backgroundImag = props.backgroundImage,
16524 backgroundImage = _props$backgroundImag === void 0 ? '' : _props$backgroundImag,
16525 _props$exportWithBack = props.exportWithBackgroundImage,
16526 exportWithBackgroundImage = _props$exportWithBack === void 0 ? false : _props$exportWithBack,
16527 _props$preserveBackgr = props.preserveBackgroundImageAspectRatio,
16528 preserveBackgroundImageAspectRatio = _props$preserveBackgr === void 0 ? 'none' : _props$preserveBackgr,
16529 _props$strokeWidth = props.strokeWidth,
16530 strokeWidth = _props$strokeWidth === void 0 ? 4 : _props$strokeWidth,
16531 _props$eraserWidth = props.eraserWidth,
16532 eraserWidth = _props$eraserWidth === void 0 ? 8 : _props$eraserWidth,
16533 _props$allowOnlyPoint = props.allowOnlyPointerType,
16534 allowOnlyPointerType = _props$allowOnlyPoint === void 0 ? 'all' : _props$allowOnlyPoint,
16535 _props$style = props.style,
16536 style = _props$style === void 0 ? {
16537 border: '0.0625rem solid #9c9c9c',
16538 borderRadius: '0.25rem'
16539 } : _props$style,
16540 _props$svgStyle = props.svgStyle,
16541 svgStyle = _props$svgStyle === void 0 ? {} : _props$svgStyle,
16542 _props$onChange = props.onChange,
16543 onChange = _props$onChange === void 0 ? function (_paths) {} : _props$onChange,
16544 _props$onStroke = props.onStroke,
16545 onStroke = _props$onStroke === void 0 ? function (_path, _isEraser) {} : _props$onStroke,
16546 _props$withTimestamp = props.withTimestamp,
16547 withTimestamp = _props$withTimestamp === void 0 ? false : _props$withTimestamp;
16548 var svgCanvas = react__WEBPACK_IMPORTED_MODULE_0__.createRef();
16549
16550 var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(true),
16551 drawMode = _React$useState[0],
16552 setDrawMode = _React$useState[1];
16553
16554 var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),
16555 isDrawing = _React$useState2[0],
16556 setIsDrawing = _React$useState2[1];
16557
16558 var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16559 resetStack = _React$useState3[0],
16560 setResetStack = _React$useState3[1];
16561
16562 var _React$useState4 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16563 undoStack = _React$useState4[0],
16564 setUndoStack = _React$useState4[1];
16565
16566 var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),
16567 currentPaths = _React$useState5[0],
16568 setCurrentPaths = _React$useState5[1];
16569
16570 var liftStrokeUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
16571 var _currentPaths$slice$, _currentPaths$slice;
16572
16573 var lastStroke = (_currentPaths$slice$ = (_currentPaths$slice = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice[0]) != null ? _currentPaths$slice$ : null;
16574
16575 if (lastStroke === null) {
16576 console.warn('No stroke found!');
16577 return;
16578 }
16579
16580 onStroke(lastStroke, !lastStroke.drawMode);
16581 }, [isDrawing]);
16582 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16583 liftStrokeUp();
16584 }, [isDrawing]);
16585 react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
16586 onChange(currentPaths);
16587 }, [currentPaths]);
16588 react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {
16589 return {
16590 eraseMode: function eraseMode(erase) {
16591 setDrawMode(!erase);
16592 },
16593 clearCanvas: function clearCanvas() {
16594 setResetStack([].concat(currentPaths));
16595 setCurrentPaths([]);
16596 },
16597 undo: function undo() {
16598 // If there was a last reset then
16599 if (resetStack.length !== 0) {
16600 setCurrentPaths([].concat(resetStack));
16601 setResetStack([]);
16602 return;
16603 }
16604
16605 setUndoStack(function (undoStack) {
16606 return [].concat(undoStack, currentPaths.slice(-1));
16607 });
16608 setCurrentPaths(function (currentPaths) {
16609 return currentPaths.slice(0, -1);
16610 });
16611 },
16612 redo: function redo() {
16613 // Nothing to Redo
16614 if (undoStack.length === 0) return;
16615 setCurrentPaths(function (currentPaths) {
16616 return [].concat(currentPaths, undoStack.slice(-1));
16617 });
16618 setUndoStack(function (undoStack) {
16619 return undoStack.slice(0, -1);
16620 });
16621 },
16622 exportImage: function exportImage(imageType) {
16623 var _svgCanvas$current;
16624
16625 var exportImage = (_svgCanvas$current = svgCanvas.current) == null ? void 0 : _svgCanvas$current.exportImage;
16626
16627 if (!exportImage) {
16628 throw Error('Export function called before canvas loaded');
16629 } else {
16630 return exportImage(imageType);
16631 }
16632 },
16633 exportSvg: function exportSvg() {
16634 return new Promise(function (resolve, reject) {
16635 var _svgCanvas$current2;
16636
16637 var exportSvg = (_svgCanvas$current2 = svgCanvas.current) == null ? void 0 : _svgCanvas$current2.exportSvg;
16638
16639 if (!exportSvg) {
16640 reject(Error('Export function called before canvas loaded'));
16641 } else {
16642 exportSvg().then(function (data) {
16643 resolve(data);
16644 })["catch"](function (e) {
16645 reject(e);
16646 });
16647 }
16648 });
16649 },
16650 exportPaths: function exportPaths() {
16651 return new Promise(function (resolve, reject) {
16652 try {
16653 resolve(currentPaths);
16654 } catch (e) {
16655 reject(e);
16656 }
16657 });
16658 },
16659 loadPaths: function loadPaths(paths) {
16660 setCurrentPaths(function (currentPaths) {
16661 return [].concat(currentPaths, paths);
16662 });
16663 },
16664 getSketchingTime: function getSketchingTime() {
16665 return new Promise(function (resolve, reject) {
16666 if (!withTimestamp) {
16667 reject(new Error("Set 'withTimestamp' prop to get sketching time"));
16668 }
16669
16670 try {
16671 var sketchingTime = currentPaths.reduce(function (totalSketchingTime, path) {
16672 var _path$startTimestamp, _path$endTimestamp;
16673
16674 var startTimestamp = (_path$startTimestamp = path.startTimestamp) != null ? _path$startTimestamp : 0;
16675 var endTimestamp = (_path$endTimestamp = path.endTimestamp) != null ? _path$endTimestamp : 0;
16676 return totalSketchingTime + (endTimestamp - startTimestamp);
16677 }, 0);
16678 resolve(sketchingTime);
16679 } catch (e) {
16680 reject(e);
16681 }
16682 });
16683 },
16684 resetCanvas: function resetCanvas() {
16685 setResetStack([]);
16686 setUndoStack([]);
16687 setCurrentPaths([]);
16688 }
16689 };
16690 });
16691
16692 var handlePointerDown = function handlePointerDown(point) {
16693 setIsDrawing(true);
16694 setUndoStack([]);
16695 var stroke = {
16696 drawMode: drawMode,
16697 strokeColor: drawMode ? strokeColor : '#000000',
16698 strokeWidth: drawMode ? strokeWidth : eraserWidth,
16699 paths: [point]
16700 };
16701
16702 if (withTimestamp) {
16703 stroke = _extends({}, stroke, {
16704 startTimestamp: Date.now(),
16705 endTimestamp: 0
16706 });
16707 }
16708
16709 setCurrentPaths(function (currentPaths) {
16710 return [].concat(currentPaths, [stroke]);
16711 });
16712 };
16713
16714 var handlePointerMove = function handlePointerMove(point) {
16715 if (!isDrawing) return;
16716 var currentStroke = currentPaths.slice(-1)[0];
16717
16718 var updatedStroke = _extends({}, currentStroke, {
16719 paths: [].concat(currentStroke.paths, [point])
16720 });
16721
16722 setCurrentPaths(function (currentPaths) {
16723 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16724 });
16725 };
16726
16727 var handlePointerUp = function handlePointerUp() {
16728 var _currentPaths$slice$2, _currentPaths$slice2;
16729
16730 if (!isDrawing) {
16731 return;
16732 }
16733
16734 setIsDrawing(false);
16735
16736 if (!withTimestamp) {
16737 return;
16738 }
16739
16740 var currentStroke = (_currentPaths$slice$2 = (_currentPaths$slice2 = currentPaths.slice(-1)) == null ? void 0 : _currentPaths$slice2[0]) != null ? _currentPaths$slice$2 : null;
16741
16742 if (currentStroke === null) {
16743 return;
16744 }
16745
16746 var updatedStroke = _extends({}, currentStroke, {
16747 endTimestamp: Date.now()
16748 });
16749
16750 setCurrentPaths(function (currentPaths) {
16751 return [].concat(currentPaths.slice(0, -1), [updatedStroke]);
16752 });
16753 };
16754
16755 return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Canvas, {
16756 ref: svgCanvas,
16757 id: id,
16758 width: width,
16759 height: height,
16760 className: className,
16761 canvasColor: canvasColor,
16762 backgroundImage: backgroundImage,
16763 exportWithBackgroundImage: exportWithBackgroundImage,
16764 preserveBackgroundImageAspectRatio: preserveBackgroundImageAspectRatio,
16765 allowOnlyPointerType: allowOnlyPointerType,
16766 style: style,
16767 svgStyle: svgStyle,
16768 paths: currentPaths,
16769 isDrawing: isDrawing,
16770 onPointerDown: handlePointerDown,
16771 onPointerMove: handlePointerMove,
16772 onPointerUp: handlePointerUp
16773 });
16774 });
16775
16776
16777 //# sourceMappingURL=react-sketch-canvas.esm.js.map
16778
16779
16780 /***/ }),
16781
16782 /***/ "../node_modules/style-to-object/index.js":
16783 /*!************************************************!*\
16784 !*** ../node_modules/style-to-object/index.js ***!
16785 \************************************************/
16786 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16787
16788 var parse = __webpack_require__(/*! inline-style-parser */ "../node_modules/inline-style-parser/index.js");
16789
16790 /**
16791 * Parses inline style to object.
16792 *
16793 * @example
16794 * // returns { 'line-height': '42' }
16795 * StyleToObject('line-height: 42;');
16796 *
16797 * @param {String} style - The inline style.
16798 * @param {Function} [iterator] - The iterator function.
16799 * @return {null|Object}
16800 */
16801 function StyleToObject(style, iterator) {
16802 var output = null;
16803 if (!style || typeof style !== 'string') {
16804 return output;
16805 }
16806
16807 var declaration;
16808 var declarations = parse(style);
16809 var hasIterator = typeof iterator === 'function';
16810 var property;
16811 var value;
16812
16813 for (var i = 0, len = declarations.length; i < len; i++) {
16814 declaration = declarations[i];
16815 property = declaration.property;
16816 value = declaration.value;
16817
16818 if (hasIterator) {
16819 iterator(property, value, declaration);
16820 } else if (value) {
16821 output || (output = {});
16822 output[property] = value;
16823 }
16824 }
16825
16826 return output;
16827 }
16828
16829 module.exports = StyleToObject;
16830 module.exports["default"] = StyleToObject; // ESM support
16831
16832
16833 /***/ }),
16834
16835 /***/ "react":
16836 /*!************************!*\
16837 !*** external "React" ***!
16838 \************************/
16839 /***/ ((module) => {
16840
16841 "use strict";
16842 module.exports = React;
16843
16844 /***/ }),
16845
16846 /***/ "react-dom":
16847 /*!***************************!*\
16848 !*** external "ReactDOM" ***!
16849 \***************************/
16850 /***/ ((module) => {
16851
16852 "use strict";
16853 module.exports = ReactDOM;
16854
16855 /***/ }),
16856
16857 /***/ "@elementor/icons":
16858 /*!************************************!*\
16859 !*** external "elementorV2.icons" ***!
16860 \************************************/
16861 /***/ ((module) => {
16862
16863 "use strict";
16864 module.exports = elementorV2.icons;
16865
16866 /***/ }),
16867
16868 /***/ "@elementor/ui":
16869 /*!*********************************!*\
16870 !*** external "elementorV2.ui" ***!
16871 \*********************************/
16872 /***/ ((module) => {
16873
16874 "use strict";
16875 module.exports = elementorV2.ui;
16876
16877 /***/ }),
16878
16879 /***/ "@wordpress/i18n":
16880 /*!**************************!*\
16881 !*** external "wp.i18n" ***!
16882 \**************************/
16883 /***/ ((module) => {
16884
16885 "use strict";
16886 module.exports = wp.i18n;
16887
16888 /***/ }),
16889
16890 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
16891 /*!******************************************************************!*\
16892 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
16893 \******************************************************************/
16894 /***/ ((module) => {
16895
16896 function _arrayLikeToArray(arr, len) {
16897 if (len == null || len > arr.length) len = arr.length;
16898 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16899 return arr2;
16900 }
16901 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
16902
16903 /***/ }),
16904
16905 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
16906 /*!****************************************************************!*\
16907 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
16908 \****************************************************************/
16909 /***/ ((module) => {
16910
16911 function _arrayWithHoles(arr) {
16912 if (Array.isArray(arr)) return arr;
16913 }
16914 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16915
16916 /***/ }),
16917
16918 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
16919 /*!*******************************************************************!*\
16920 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
16921 \*******************************************************************/
16922 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16923
16924 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
16925 function _arrayWithoutHoles(arr) {
16926 if (Array.isArray(arr)) return arrayLikeToArray(arr);
16927 }
16928 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
16929
16930 /***/ }),
16931
16932 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
16933 /*!******************************************************************!*\
16934 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
16935 \******************************************************************/
16936 /***/ ((module) => {
16937
16938 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
16939 try {
16940 var info = gen[key](arg);
16941 var value = info.value;
16942 } catch (error) {
16943 reject(error);
16944 return;
16945 }
16946 if (info.done) {
16947 resolve(value);
16948 } else {
16949 Promise.resolve(value).then(_next, _throw);
16950 }
16951 }
16952 function _asyncToGenerator(fn) {
16953 return function () {
16954 var self = this,
16955 args = arguments;
16956 return new Promise(function (resolve, reject) {
16957 var gen = fn.apply(self, args);
16958 function _next(value) {
16959 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
16960 }
16961 function _throw(err) {
16962 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
16963 }
16964 _next(undefined);
16965 });
16966 };
16967 }
16968 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
16969
16970 /***/ }),
16971
16972 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
16973 /*!****************************************************************!*\
16974 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
16975 \****************************************************************/
16976 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16977
16978 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
16979 function _defineProperty(obj, key, value) {
16980 key = toPropertyKey(key);
16981 if (key in obj) {
16982 Object.defineProperty(obj, key, {
16983 value: value,
16984 enumerable: true,
16985 configurable: true,
16986 writable: true
16987 });
16988 } else {
16989 obj[key] = value;
16990 }
16991 return obj;
16992 }
16993 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
16994
16995 /***/ }),
16996
16997 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
16998 /*!*********************************************************!*\
16999 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
17000 \*********************************************************/
17001 /***/ ((module) => {
17002
17003 function _extends() {
17004 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
17005 for (var i = 1; i < arguments.length; i++) {
17006 var source = arguments[i];
17007 for (var key in source) {
17008 if (Object.prototype.hasOwnProperty.call(source, key)) {
17009 target[key] = source[key];
17010 }
17011 }
17012 }
17013 return target;
17014 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
17015 return _extends.apply(this, arguments);
17016 }
17017 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
17018
17019 /***/ }),
17020
17021 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
17022 /*!***********************************************************************!*\
17023 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
17024 \***********************************************************************/
17025 /***/ ((module) => {
17026
17027 function _interopRequireDefault(obj) {
17028 return obj && obj.__esModule ? obj : {
17029 "default": obj
17030 };
17031 }
17032 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
17033
17034 /***/ }),
17035
17036 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
17037 /*!*****************************************************************!*\
17038 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
17039 \*****************************************************************/
17040 /***/ ((module) => {
17041
17042 function _iterableToArray(iter) {
17043 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
17044 }
17045 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17046
17047 /***/ }),
17048
17049 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
17050 /*!**********************************************************************!*\
17051 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
17052 \**********************************************************************/
17053 /***/ ((module) => {
17054
17055 function _iterableToArrayLimit(r, l) {
17056 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
17057 if (null != t) {
17058 var e,
17059 n,
17060 i,
17061 u,
17062 a = [],
17063 f = !0,
17064 o = !1;
17065 try {
17066 if (i = (t = t.call(r)).next, 0 === l) {
17067 if (Object(t) !== t) return;
17068 f = !1;
17069 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
17070 } catch (r) {
17071 o = !0, n = r;
17072 } finally {
17073 try {
17074 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
17075 } finally {
17076 if (o) throw n;
17077 }
17078 }
17079 return a;
17080 }
17081 }
17082 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
17083
17084 /***/ }),
17085
17086 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
17087 /*!*****************************************************************!*\
17088 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
17089 \*****************************************************************/
17090 /***/ ((module) => {
17091
17092 function _nonIterableRest() {
17093 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17094 }
17095 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
17096
17097 /***/ }),
17098
17099 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
17100 /*!*******************************************************************!*\
17101 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
17102 \*******************************************************************/
17103 /***/ ((module) => {
17104
17105 function _nonIterableSpread() {
17106 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17107 }
17108 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
17109
17110 /***/ }),
17111
17112 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
17113 /*!*************************************************************************!*\
17114 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
17115 \*************************************************************************/
17116 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17117
17118 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
17119 function _objectWithoutProperties(source, excluded) {
17120 if (source == null) return {};
17121 var target = objectWithoutPropertiesLoose(source, excluded);
17122 var key, i;
17123 if (Object.getOwnPropertySymbols) {
17124 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
17125 for (i = 0; i < sourceSymbolKeys.length; i++) {
17126 key = sourceSymbolKeys[i];
17127 if (excluded.indexOf(key) >= 0) continue;
17128 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
17129 target[key] = source[key];
17130 }
17131 }
17132 return target;
17133 }
17134 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
17135
17136 /***/ }),
17137
17138 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
17139 /*!******************************************************************************!*\
17140 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
17141 \******************************************************************************/
17142 /***/ ((module) => {
17143
17144 function _objectWithoutPropertiesLoose(source, excluded) {
17145 if (source == null) return {};
17146 var target = {};
17147 var sourceKeys = Object.keys(source);
17148 var key, i;
17149 for (i = 0; i < sourceKeys.length; i++) {
17150 key = sourceKeys[i];
17151 if (excluded.indexOf(key) >= 0) continue;
17152 target[key] = source[key];
17153 }
17154 return target;
17155 }
17156 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
17157
17158 /***/ }),
17159
17160 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
17161 /*!********************************************************************!*\
17162 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
17163 \********************************************************************/
17164 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17165
17166 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17167 function _regeneratorRuntime() {
17168 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
17169 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
17170 return e;
17171 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
17172 var t,
17173 e = {},
17174 r = Object.prototype,
17175 n = r.hasOwnProperty,
17176 o = Object.defineProperty || function (t, e, r) {
17177 t[e] = r.value;
17178 },
17179 i = "function" == typeof Symbol ? Symbol : {},
17180 a = i.iterator || "@@iterator",
17181 c = i.asyncIterator || "@@asyncIterator",
17182 u = i.toStringTag || "@@toStringTag";
17183 function define(t, e, r) {
17184 return Object.defineProperty(t, e, {
17185 value: r,
17186 enumerable: !0,
17187 configurable: !0,
17188 writable: !0
17189 }), t[e];
17190 }
17191 try {
17192 define({}, "");
17193 } catch (t) {
17194 define = function define(t, e, r) {
17195 return t[e] = r;
17196 };
17197 }
17198 function wrap(t, e, r, n) {
17199 var i = e && e.prototype instanceof Generator ? e : Generator,
17200 a = Object.create(i.prototype),
17201 c = new Context(n || []);
17202 return o(a, "_invoke", {
17203 value: makeInvokeMethod(t, r, c)
17204 }), a;
17205 }
17206 function tryCatch(t, e, r) {
17207 try {
17208 return {
17209 type: "normal",
17210 arg: t.call(e, r)
17211 };
17212 } catch (t) {
17213 return {
17214 type: "throw",
17215 arg: t
17216 };
17217 }
17218 }
17219 e.wrap = wrap;
17220 var h = "suspendedStart",
17221 l = "suspendedYield",
17222 f = "executing",
17223 s = "completed",
17224 y = {};
17225 function Generator() {}
17226 function GeneratorFunction() {}
17227 function GeneratorFunctionPrototype() {}
17228 var p = {};
17229 define(p, a, function () {
17230 return this;
17231 });
17232 var d = Object.getPrototypeOf,
17233 v = d && d(d(values([])));
17234 v && v !== r && n.call(v, a) && (p = v);
17235 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
17236 function defineIteratorMethods(t) {
17237 ["next", "throw", "return"].forEach(function (e) {
17238 define(t, e, function (t) {
17239 return this._invoke(e, t);
17240 });
17241 });
17242 }
17243 function AsyncIterator(t, e) {
17244 function invoke(r, o, i, a) {
17245 var c = tryCatch(t[r], t, o);
17246 if ("throw" !== c.type) {
17247 var u = c.arg,
17248 h = u.value;
17249 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
17250 invoke("next", t, i, a);
17251 }, function (t) {
17252 invoke("throw", t, i, a);
17253 }) : e.resolve(h).then(function (t) {
17254 u.value = t, i(u);
17255 }, function (t) {
17256 return invoke("throw", t, i, a);
17257 });
17258 }
17259 a(c.arg);
17260 }
17261 var r;
17262 o(this, "_invoke", {
17263 value: function value(t, n) {
17264 function callInvokeWithMethodAndArg() {
17265 return new e(function (e, r) {
17266 invoke(t, n, e, r);
17267 });
17268 }
17269 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
17270 }
17271 });
17272 }
17273 function makeInvokeMethod(e, r, n) {
17274 var o = h;
17275 return function (i, a) {
17276 if (o === f) throw new Error("Generator is already running");
17277 if (o === s) {
17278 if ("throw" === i) throw a;
17279 return {
17280 value: t,
17281 done: !0
17282 };
17283 }
17284 for (n.method = i, n.arg = a;;) {
17285 var c = n.delegate;
17286 if (c) {
17287 var u = maybeInvokeDelegate(c, n);
17288 if (u) {
17289 if (u === y) continue;
17290 return u;
17291 }
17292 }
17293 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
17294 if (o === h) throw o = s, n.arg;
17295 n.dispatchException(n.arg);
17296 } else "return" === n.method && n.abrupt("return", n.arg);
17297 o = f;
17298 var p = tryCatch(e, r, n);
17299 if ("normal" === p.type) {
17300 if (o = n.done ? s : l, p.arg === y) continue;
17301 return {
17302 value: p.arg,
17303 done: n.done
17304 };
17305 }
17306 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
17307 }
17308 };
17309 }
17310 function maybeInvokeDelegate(e, r) {
17311 var n = r.method,
17312 o = e.iterator[n];
17313 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;
17314 var i = tryCatch(o, e.iterator, r.arg);
17315 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
17316 var a = i.arg;
17317 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);
17318 }
17319 function pushTryEntry(t) {
17320 var e = {
17321 tryLoc: t[0]
17322 };
17323 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
17324 }
17325 function resetTryEntry(t) {
17326 var e = t.completion || {};
17327 e.type = "normal", delete e.arg, t.completion = e;
17328 }
17329 function Context(t) {
17330 this.tryEntries = [{
17331 tryLoc: "root"
17332 }], t.forEach(pushTryEntry, this), this.reset(!0);
17333 }
17334 function values(e) {
17335 if (e || "" === e) {
17336 var r = e[a];
17337 if (r) return r.call(e);
17338 if ("function" == typeof e.next) return e;
17339 if (!isNaN(e.length)) {
17340 var o = -1,
17341 i = function next() {
17342 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
17343 return next.value = t, next.done = !0, next;
17344 };
17345 return i.next = i;
17346 }
17347 }
17348 throw new TypeError(_typeof(e) + " is not iterable");
17349 }
17350 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
17351 value: GeneratorFunctionPrototype,
17352 configurable: !0
17353 }), o(GeneratorFunctionPrototype, "constructor", {
17354 value: GeneratorFunction,
17355 configurable: !0
17356 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
17357 var e = "function" == typeof t && t.constructor;
17358 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
17359 }, e.mark = function (t) {
17360 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
17361 }, e.awrap = function (t) {
17362 return {
17363 __await: t
17364 };
17365 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
17366 return this;
17367 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
17368 void 0 === i && (i = Promise);
17369 var a = new AsyncIterator(wrap(t, r, n, o), i);
17370 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
17371 return t.done ? t.value : a.next();
17372 });
17373 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
17374 return this;
17375 }), define(g, "toString", function () {
17376 return "[object Generator]";
17377 }), e.keys = function (t) {
17378 var e = Object(t),
17379 r = [];
17380 for (var n in e) r.push(n);
17381 return r.reverse(), function next() {
17382 for (; r.length;) {
17383 var t = r.pop();
17384 if (t in e) return next.value = t, next.done = !1, next;
17385 }
17386 return next.done = !0, next;
17387 };
17388 }, e.values = values, Context.prototype = {
17389 constructor: Context,
17390 reset: function reset(e) {
17391 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);
17392 },
17393 stop: function stop() {
17394 this.done = !0;
17395 var t = this.tryEntries[0].completion;
17396 if ("throw" === t.type) throw t.arg;
17397 return this.rval;
17398 },
17399 dispatchException: function dispatchException(e) {
17400 if (this.done) throw e;
17401 var r = this;
17402 function handle(n, o) {
17403 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
17404 }
17405 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
17406 var i = this.tryEntries[o],
17407 a = i.completion;
17408 if ("root" === i.tryLoc) return handle("end");
17409 if (i.tryLoc <= this.prev) {
17410 var c = n.call(i, "catchLoc"),
17411 u = n.call(i, "finallyLoc");
17412 if (c && u) {
17413 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17414 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17415 } else if (c) {
17416 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
17417 } else {
17418 if (!u) throw new Error("try statement without catch or finally");
17419 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
17420 }
17421 }
17422 }
17423 },
17424 abrupt: function abrupt(t, e) {
17425 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
17426 var o = this.tryEntries[r];
17427 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
17428 var i = o;
17429 break;
17430 }
17431 }
17432 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
17433 var a = i ? i.completion : {};
17434 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
17435 },
17436 complete: function complete(t, e) {
17437 if ("throw" === t.type) throw t.arg;
17438 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;
17439 },
17440 finish: function finish(t) {
17441 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17442 var r = this.tryEntries[e];
17443 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
17444 }
17445 },
17446 "catch": function _catch(t) {
17447 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
17448 var r = this.tryEntries[e];
17449 if (r.tryLoc === t) {
17450 var n = r.completion;
17451 if ("throw" === n.type) {
17452 var o = n.arg;
17453 resetTryEntry(r);
17454 }
17455 return o;
17456 }
17457 }
17458 throw new Error("illegal catch attempt");
17459 },
17460 delegateYield: function delegateYield(e, r, n) {
17461 return this.delegate = {
17462 iterator: values(e),
17463 resultName: r,
17464 nextLoc: n
17465 }, "next" === this.method && (this.arg = t), y;
17466 }
17467 }, e;
17468 }
17469 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
17470
17471 /***/ }),
17472
17473 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
17474 /*!***************************************************************!*\
17475 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
17476 \***************************************************************/
17477 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17478
17479 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
17480 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
17481 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17482 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
17483 function _slicedToArray(arr, i) {
17484 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
17485 }
17486 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17487
17488 /***/ }),
17489
17490 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
17491 /*!***********************************************************************!*\
17492 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
17493 \***********************************************************************/
17494 /***/ ((module) => {
17495
17496 function _taggedTemplateLiteral(strings, raw) {
17497 if (!raw) {
17498 raw = strings.slice(0);
17499 }
17500 return Object.freeze(Object.defineProperties(strings, {
17501 raw: {
17502 value: Object.freeze(raw)
17503 }
17504 }));
17505 }
17506 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
17507
17508 /***/ }),
17509
17510 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
17511 /*!*******************************************************************!*\
17512 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
17513 \*******************************************************************/
17514 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17515
17516 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
17517 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
17518 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
17519 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
17520 function _toConsumableArray(arr) {
17521 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
17522 }
17523 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17524
17525 /***/ }),
17526
17527 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
17528 /*!*************************************************************!*\
17529 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
17530 \*************************************************************/
17531 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17532
17533 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17534 function toPrimitive(t, r) {
17535 if ("object" != _typeof(t) || !t) return t;
17536 var e = t[Symbol.toPrimitive];
17537 if (void 0 !== e) {
17538 var i = e.call(t, r || "default");
17539 if ("object" != _typeof(i)) return i;
17540 throw new TypeError("@@toPrimitive must return a primitive value.");
17541 }
17542 return ("string" === r ? String : Number)(t);
17543 }
17544 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
17545
17546 /***/ }),
17547
17548 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
17549 /*!***************************************************************!*\
17550 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
17551 \***************************************************************/
17552 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17553
17554 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
17555 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
17556 function toPropertyKey(t) {
17557 var i = toPrimitive(t, "string");
17558 return "symbol" == _typeof(i) ? i : String(i);
17559 }
17560 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
17561
17562 /***/ }),
17563
17564 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
17565 /*!********************************************************!*\
17566 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
17567 \********************************************************/
17568 /***/ ((module) => {
17569
17570 function _typeof(o) {
17571 "@babel/helpers - typeof";
17572
17573 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
17574 return typeof o;
17575 } : function (o) {
17576 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
17577 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
17578 }
17579 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
17580
17581 /***/ }),
17582
17583 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
17584 /*!****************************************************************************!*\
17585 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
17586 \****************************************************************************/
17587 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17588
17589 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
17590 function _unsupportedIterableToArray(o, minLen) {
17591 if (!o) return;
17592 if (typeof o === "string") return arrayLikeToArray(o, minLen);
17593 var n = Object.prototype.toString.call(o).slice(8, -1);
17594 if (n === "Object" && o.constructor) n = o.constructor.name;
17595 if (n === "Map" || n === "Set") return Array.from(o);
17596 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
17597 }
17598 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
17599
17600 /***/ }),
17601
17602 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
17603 /*!***********************************************************!*\
17604 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
17605 \***********************************************************/
17606 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17607
17608 // TODO(Babel 8): Remove this file.
17609
17610 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
17611 module.exports = runtime;
17612
17613 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
17614 try {
17615 regeneratorRuntime = runtime;
17616 } catch (accidentalStrictMode) {
17617 if (typeof globalThis === "object") {
17618 globalThis.regeneratorRuntime = runtime;
17619 } else {
17620 Function("r", "regeneratorRuntime = r")(runtime);
17621 }
17622 }
17623
17624
17625 /***/ }),
17626
17627 /***/ "../node_modules/bail/index.js":
17628 /*!*************************************!*\
17629 !*** ../node_modules/bail/index.js ***!
17630 \*************************************/
17631 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17632
17633 "use strict";
17634 __webpack_require__.r(__webpack_exports__);
17635 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17636 /* harmony export */ bail: () => (/* binding */ bail)
17637 /* harmony export */ });
17638 /**
17639 * Throw a given error.
17640 *
17641 * @param {Error|null|undefined} [error]
17642 * Maybe error.
17643 * @returns {asserts error is null|undefined}
17644 */
17645 function bail(error) {
17646 if (error) {
17647 throw error
17648 }
17649 }
17650
17651
17652 /***/ }),
17653
17654 /***/ "../node_modules/comma-separated-tokens/index.js":
17655 /*!*******************************************************!*\
17656 !*** ../node_modules/comma-separated-tokens/index.js ***!
17657 \*******************************************************/
17658 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17659
17660 "use strict";
17661 __webpack_require__.r(__webpack_exports__);
17662 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17663 /* harmony export */ parse: () => (/* binding */ parse),
17664 /* harmony export */ stringify: () => (/* binding */ stringify)
17665 /* harmony export */ });
17666 /**
17667 * @typedef Options
17668 * Configuration for `stringify`.
17669 * @property {boolean} [padLeft=true]
17670 * Whether to pad a space before a token.
17671 * @property {boolean} [padRight=false]
17672 * Whether to pad a space after a token.
17673 */
17674
17675 /**
17676 * @typedef {Options} StringifyOptions
17677 * Please use `StringifyOptions` instead.
17678 */
17679
17680 /**
17681 * Parse comma-separated tokens to an array.
17682 *
17683 * @param {string} value
17684 * Comma-separated tokens.
17685 * @returns {Array<string>}
17686 * List of tokens.
17687 */
17688 function parse(value) {
17689 /** @type {Array<string>} */
17690 const tokens = []
17691 const input = String(value || '')
17692 let index = input.indexOf(',')
17693 let start = 0
17694 /** @type {boolean} */
17695 let end = false
17696
17697 while (!end) {
17698 if (index === -1) {
17699 index = input.length
17700 end = true
17701 }
17702
17703 const token = input.slice(start, index).trim()
17704
17705 if (token || !end) {
17706 tokens.push(token)
17707 }
17708
17709 start = index + 1
17710 index = input.indexOf(',', start)
17711 }
17712
17713 return tokens
17714 }
17715
17716 /**
17717 * Serialize an array of strings or numbers to comma-separated tokens.
17718 *
17719 * @param {Array<string|number>} values
17720 * List of tokens.
17721 * @param {Options} [options]
17722 * Configuration for `stringify` (optional).
17723 * @returns {string}
17724 * Comma-separated tokens.
17725 */
17726 function stringify(values, options) {
17727 const settings = options || {}
17728
17729 // Ensure the last empty entry is seen.
17730 const input = values[values.length - 1] === '' ? [...values, ''] : values
17731
17732 return input
17733 .join(
17734 (settings.padRight ? ' ' : '') +
17735 ',' +
17736 (settings.padLeft === false ? '' : ' ')
17737 )
17738 .trim()
17739 }
17740
17741
17742 /***/ }),
17743
17744 /***/ "../node_modules/decode-named-character-reference/index.dom.js":
17745 /*!*********************************************************************!*\
17746 !*** ../node_modules/decode-named-character-reference/index.dom.js ***!
17747 \*********************************************************************/
17748 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17749
17750 "use strict";
17751 __webpack_require__.r(__webpack_exports__);
17752 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17753 /* harmony export */ decodeNamedCharacterReference: () => (/* binding */ decodeNamedCharacterReference)
17754 /* harmony export */ });
17755 /// <reference lib="dom" />
17756
17757 /* eslint-env browser */
17758
17759 const element = document.createElement('i')
17760
17761 /**
17762 * @param {string} value
17763 * @returns {string|false}
17764 */
17765 function decodeNamedCharacterReference(value) {
17766 const characterReference = '&' + value + ';'
17767 element.innerHTML = characterReference
17768 const char = element.textContent
17769
17770 // Some named character references do not require the closing semicolon
17771 // (`&not`, for instance), which leads to situations where parsing the assumed
17772 // named reference of `&notit;` will result in the string `¬it;`.
17773 // When we encounter a trailing semicolon after parsing, and the character
17774 // reference to decode was not a semicolon (`&semi;`), we can assume that the
17775 // matching was not complete.
17776 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17777 // yield `null`.
17778 if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {
17779 return false
17780 }
17781
17782 // If the decoded string is equal to the input, the character reference was
17783 // not valid.
17784 // @ts-expect-error: TypeScript is wrong that `textContent` on elements can
17785 // yield `null`.
17786 return char === characterReference ? false : char
17787 }
17788
17789
17790 /***/ }),
17791
17792 /***/ "../node_modules/dequal/dist/index.mjs":
17793 /*!*********************************************!*\
17794 !*** ../node_modules/dequal/dist/index.mjs ***!
17795 \*********************************************/
17796 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17797
17798 "use strict";
17799 __webpack_require__.r(__webpack_exports__);
17800 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17801 /* harmony export */ dequal: () => (/* binding */ dequal)
17802 /* harmony export */ });
17803 var has = Object.prototype.hasOwnProperty;
17804
17805 function find(iter, tar, key) {
17806 for (key of iter.keys()) {
17807 if (dequal(key, tar)) return key;
17808 }
17809 }
17810
17811 function dequal(foo, bar) {
17812 var ctor, len, tmp;
17813 if (foo === bar) return true;
17814
17815 if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
17816 if (ctor === Date) return foo.getTime() === bar.getTime();
17817 if (ctor === RegExp) return foo.toString() === bar.toString();
17818
17819 if (ctor === Array) {
17820 if ((len=foo.length) === bar.length) {
17821 while (len-- && dequal(foo[len], bar[len]));
17822 }
17823 return len === -1;
17824 }
17825
17826 if (ctor === Set) {
17827 if (foo.size !== bar.size) {
17828 return false;
17829 }
17830 for (len of foo) {
17831 tmp = len;
17832 if (tmp && typeof tmp === 'object') {
17833 tmp = find(bar, tmp);
17834 if (!tmp) return false;
17835 }
17836 if (!bar.has(tmp)) return false;
17837 }
17838 return true;
17839 }
17840
17841 if (ctor === Map) {
17842 if (foo.size !== bar.size) {
17843 return false;
17844 }
17845 for (len of foo) {
17846 tmp = len[0];
17847 if (tmp && typeof tmp === 'object') {
17848 tmp = find(bar, tmp);
17849 if (!tmp) return false;
17850 }
17851 if (!dequal(len[1], bar.get(tmp))) {
17852 return false;
17853 }
17854 }
17855 return true;
17856 }
17857
17858 if (ctor === ArrayBuffer) {
17859 foo = new Uint8Array(foo);
17860 bar = new Uint8Array(bar);
17861 } else if (ctor === DataView) {
17862 if ((len=foo.byteLength) === bar.byteLength) {
17863 while (len-- && foo.getInt8(len) === bar.getInt8(len));
17864 }
17865 return len === -1;
17866 }
17867
17868 if (ArrayBuffer.isView(foo)) {
17869 if ((len=foo.byteLength) === bar.byteLength) {
17870 while (len-- && foo[len] === bar[len]);
17871 }
17872 return len === -1;
17873 }
17874
17875 if (!ctor || typeof foo === 'object') {
17876 len = 0;
17877 for (ctor in foo) {
17878 if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
17879 if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
17880 }
17881 return Object.keys(bar).length === len;
17882 }
17883 }
17884
17885 return foo !== foo && bar !== bar;
17886 }
17887
17888
17889 /***/ }),
17890
17891 /***/ "../node_modules/diff/lib/index.mjs":
17892 /*!******************************************!*\
17893 !*** ../node_modules/diff/lib/index.mjs ***!
17894 \******************************************/
17895 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17896
17897 "use strict";
17898 __webpack_require__.r(__webpack_exports__);
17899 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17900 /* harmony export */ Diff: () => (/* binding */ Diff),
17901 /* harmony export */ applyPatch: () => (/* binding */ applyPatch),
17902 /* harmony export */ applyPatches: () => (/* binding */ applyPatches),
17903 /* harmony export */ canonicalize: () => (/* binding */ canonicalize),
17904 /* harmony export */ convertChangesToDMP: () => (/* binding */ convertChangesToDMP),
17905 /* harmony export */ convertChangesToXML: () => (/* binding */ convertChangesToXML),
17906 /* harmony export */ createPatch: () => (/* binding */ createPatch),
17907 /* harmony export */ createTwoFilesPatch: () => (/* binding */ createTwoFilesPatch),
17908 /* harmony export */ diffArrays: () => (/* binding */ diffArrays),
17909 /* harmony export */ diffChars: () => (/* binding */ diffChars),
17910 /* harmony export */ diffCss: () => (/* binding */ diffCss),
17911 /* harmony export */ diffJson: () => (/* binding */ diffJson),
17912 /* harmony export */ diffLines: () => (/* binding */ diffLines),
17913 /* harmony export */ diffSentences: () => (/* binding */ diffSentences),
17914 /* harmony export */ diffTrimmedLines: () => (/* binding */ diffTrimmedLines),
17915 /* harmony export */ diffWords: () => (/* binding */ diffWords),
17916 /* harmony export */ diffWordsWithSpace: () => (/* binding */ diffWordsWithSpace),
17917 /* harmony export */ merge: () => (/* binding */ merge),
17918 /* harmony export */ parsePatch: () => (/* binding */ parsePatch),
17919 /* harmony export */ structuredPatch: () => (/* binding */ structuredPatch)
17920 /* harmony export */ });
17921 function Diff() {}
17922 Diff.prototype = {
17923 diff: function diff(oldString, newString) {
17924 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
17925 var callback = options.callback;
17926
17927 if (typeof options === 'function') {
17928 callback = options;
17929 options = {};
17930 }
17931
17932 this.options = options;
17933 var self = this;
17934
17935 function done(value) {
17936 if (callback) {
17937 setTimeout(function () {
17938 callback(undefined, value);
17939 }, 0);
17940 return true;
17941 } else {
17942 return value;
17943 }
17944 } // Allow subclasses to massage the input prior to running
17945
17946
17947 oldString = this.castInput(oldString);
17948 newString = this.castInput(newString);
17949 oldString = this.removeEmpty(this.tokenize(oldString));
17950 newString = this.removeEmpty(this.tokenize(newString));
17951 var newLen = newString.length,
17952 oldLen = oldString.length;
17953 var editLength = 1;
17954 var maxEditLength = newLen + oldLen;
17955
17956 if (options.maxEditLength) {
17957 maxEditLength = Math.min(maxEditLength, options.maxEditLength);
17958 }
17959
17960 var bestPath = [{
17961 newPos: -1,
17962 components: []
17963 }]; // Seed editLength = 0, i.e. the content starts with the same values
17964
17965 var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
17966
17967 if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
17968 // Identity per the equality and tokenizer
17969 return done([{
17970 value: this.join(newString),
17971 count: newString.length
17972 }]);
17973 } // Main worker method. checks all permutations of a given edit length for acceptance.
17974
17975
17976 function execEditLength() {
17977 for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
17978 var basePath = void 0;
17979
17980 var addPath = bestPath[diagonalPath - 1],
17981 removePath = bestPath[diagonalPath + 1],
17982 _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
17983
17984 if (addPath) {
17985 // No one else is going to attempt to use this value, clear it
17986 bestPath[diagonalPath - 1] = undefined;
17987 }
17988
17989 var canAdd = addPath && addPath.newPos + 1 < newLen,
17990 canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
17991
17992 if (!canAdd && !canRemove) {
17993 // If this path is a terminal then prune
17994 bestPath[diagonalPath] = undefined;
17995 continue;
17996 } // Select the diagonal that we want to branch from. We select the prior
17997 // path whose position in the new string is the farthest from the origin
17998 // and does not pass the bounds of the diff graph
17999
18000
18001 if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
18002 basePath = clonePath(removePath);
18003 self.pushComponent(basePath.components, undefined, true);
18004 } else {
18005 basePath = addPath; // No need to clone, we've pulled it from the list
18006
18007 basePath.newPos++;
18008 self.pushComponent(basePath.components, true, undefined);
18009 }
18010
18011 _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
18012
18013 if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
18014 return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
18015 } else {
18016 // Otherwise track this path as a potential candidate and continue.
18017 bestPath[diagonalPath] = basePath;
18018 }
18019 }
18020
18021 editLength++;
18022 } // Performs the length of edit iteration. Is a bit fugly as this has to support the
18023 // sync and async mode which is never fun. Loops over execEditLength until a value
18024 // is produced, or until the edit length exceeds options.maxEditLength (if given),
18025 // in which case it will return undefined.
18026
18027
18028 if (callback) {
18029 (function exec() {
18030 setTimeout(function () {
18031 if (editLength > maxEditLength) {
18032 return callback();
18033 }
18034
18035 if (!execEditLength()) {
18036 exec();
18037 }
18038 }, 0);
18039 })();
18040 } else {
18041 while (editLength <= maxEditLength) {
18042 var ret = execEditLength();
18043
18044 if (ret) {
18045 return ret;
18046 }
18047 }
18048 }
18049 },
18050 pushComponent: function pushComponent(components, added, removed) {
18051 var last = components[components.length - 1];
18052
18053 if (last && last.added === added && last.removed === removed) {
18054 // We need to clone here as the component clone operation is just
18055 // as shallow array clone
18056 components[components.length - 1] = {
18057 count: last.count + 1,
18058 added: added,
18059 removed: removed
18060 };
18061 } else {
18062 components.push({
18063 count: 1,
18064 added: added,
18065 removed: removed
18066 });
18067 }
18068 },
18069 extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
18070 var newLen = newString.length,
18071 oldLen = oldString.length,
18072 newPos = basePath.newPos,
18073 oldPos = newPos - diagonalPath,
18074 commonCount = 0;
18075
18076 while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
18077 newPos++;
18078 oldPos++;
18079 commonCount++;
18080 }
18081
18082 if (commonCount) {
18083 basePath.components.push({
18084 count: commonCount
18085 });
18086 }
18087
18088 basePath.newPos = newPos;
18089 return oldPos;
18090 },
18091 equals: function equals(left, right) {
18092 if (this.options.comparator) {
18093 return this.options.comparator(left, right);
18094 } else {
18095 return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
18096 }
18097 },
18098 removeEmpty: function removeEmpty(array) {
18099 var ret = [];
18100
18101 for (var i = 0; i < array.length; i++) {
18102 if (array[i]) {
18103 ret.push(array[i]);
18104 }
18105 }
18106
18107 return ret;
18108 },
18109 castInput: function castInput(value) {
18110 return value;
18111 },
18112 tokenize: function tokenize(value) {
18113 return value.split('');
18114 },
18115 join: function join(chars) {
18116 return chars.join('');
18117 }
18118 };
18119
18120 function buildValues(diff, components, newString, oldString, useLongestToken) {
18121 var componentPos = 0,
18122 componentLen = components.length,
18123 newPos = 0,
18124 oldPos = 0;
18125
18126 for (; componentPos < componentLen; componentPos++) {
18127 var component = components[componentPos];
18128
18129 if (!component.removed) {
18130 if (!component.added && useLongestToken) {
18131 var value = newString.slice(newPos, newPos + component.count);
18132 value = value.map(function (value, i) {
18133 var oldValue = oldString[oldPos + i];
18134 return oldValue.length > value.length ? oldValue : value;
18135 });
18136 component.value = diff.join(value);
18137 } else {
18138 component.value = diff.join(newString.slice(newPos, newPos + component.count));
18139 }
18140
18141 newPos += component.count; // Common case
18142
18143 if (!component.added) {
18144 oldPos += component.count;
18145 }
18146 } else {
18147 component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
18148 oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
18149 // The diffing algorithm is tied to add then remove output and this is the simplest
18150 // route to get the desired output with minimal overhead.
18151
18152 if (componentPos && components[componentPos - 1].added) {
18153 var tmp = components[componentPos - 1];
18154 components[componentPos - 1] = components[componentPos];
18155 components[componentPos] = tmp;
18156 }
18157 }
18158 } // Special case handle for when one terminal is ignored (i.e. whitespace).
18159 // For this case we merge the terminal into the prior string and drop the change.
18160 // This is only available for string mode.
18161
18162
18163 var lastComponent = components[componentLen - 1];
18164
18165 if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
18166 components[componentLen - 2].value += lastComponent.value;
18167 components.pop();
18168 }
18169
18170 return components;
18171 }
18172
18173 function clonePath(path) {
18174 return {
18175 newPos: path.newPos,
18176 components: path.components.slice(0)
18177 };
18178 }
18179
18180 var characterDiff = new Diff();
18181 function diffChars(oldStr, newStr, options) {
18182 return characterDiff.diff(oldStr, newStr, options);
18183 }
18184
18185 function generateOptions(options, defaults) {
18186 if (typeof options === 'function') {
18187 defaults.callback = options;
18188 } else if (options) {
18189 for (var name in options) {
18190 /* istanbul ignore else */
18191 if (options.hasOwnProperty(name)) {
18192 defaults[name] = options[name];
18193 }
18194 }
18195 }
18196
18197 return defaults;
18198 }
18199
18200 //
18201 // Ranges and exceptions:
18202 // Latin-1 Supplement, 0080–00FF
18203 // - U+00D7 × Multiplication sign
18204 // - U+00F7 ÷ Division sign
18205 // Latin Extended-A, 0100–017F
18206 // Latin Extended-B, 0180–024F
18207 // IPA Extensions, 0250–02AF
18208 // Spacing Modifier Letters, 02B0–02FF
18209 // - U+02C7 ˇ &#711; Caron
18210 // - U+02D8 ˘ &#728; Breve
18211 // - U+02D9 ˙ &#729; Dot Above
18212 // - U+02DA ˚ &#730; Ring Above
18213 // - U+02DB ˛ &#731; Ogonek
18214 // - U+02DC ˜ &#732; Small Tilde
18215 // - U+02DD ˝ &#733; Double Acute Accent
18216 // Latin Extended Additional, 1E00–1EFF
18217
18218 var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
18219 var reWhitespace = /\S/;
18220 var wordDiff = new Diff();
18221
18222 wordDiff.equals = function (left, right) {
18223 if (this.options.ignoreCase) {
18224 left = left.toLowerCase();
18225 right = right.toLowerCase();
18226 }
18227
18228 return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
18229 };
18230
18231 wordDiff.tokenize = function (value) {
18232 // All whitespace symbols except newline group into one token, each newline - in separate token
18233 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.
18234
18235 for (var i = 0; i < tokens.length - 1; i++) {
18236 // If we have an empty string in the next field and we have only word chars before and after, merge
18237 if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
18238 tokens[i] += tokens[i + 2];
18239 tokens.splice(i + 1, 2);
18240 i--;
18241 }
18242 }
18243
18244 return tokens;
18245 };
18246
18247 function diffWords(oldStr, newStr, options) {
18248 options = generateOptions(options, {
18249 ignoreWhitespace: true
18250 });
18251 return wordDiff.diff(oldStr, newStr, options);
18252 }
18253 function diffWordsWithSpace(oldStr, newStr, options) {
18254 return wordDiff.diff(oldStr, newStr, options);
18255 }
18256
18257 var lineDiff = new Diff();
18258
18259 lineDiff.tokenize = function (value) {
18260 var retLines = [],
18261 linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
18262
18263 if (!linesAndNewlines[linesAndNewlines.length - 1]) {
18264 linesAndNewlines.pop();
18265 } // Merge the content and line separators into single tokens
18266
18267
18268 for (var i = 0; i < linesAndNewlines.length; i++) {
18269 var line = linesAndNewlines[i];
18270
18271 if (i % 2 && !this.options.newlineIsToken) {
18272 retLines[retLines.length - 1] += line;
18273 } else {
18274 if (this.options.ignoreWhitespace) {
18275 line = line.trim();
18276 }
18277
18278 retLines.push(line);
18279 }
18280 }
18281
18282 return retLines;
18283 };
18284
18285 function diffLines(oldStr, newStr, callback) {
18286 return lineDiff.diff(oldStr, newStr, callback);
18287 }
18288 function diffTrimmedLines(oldStr, newStr, callback) {
18289 var options = generateOptions(callback, {
18290 ignoreWhitespace: true
18291 });
18292 return lineDiff.diff(oldStr, newStr, options);
18293 }
18294
18295 var sentenceDiff = new Diff();
18296
18297 sentenceDiff.tokenize = function (value) {
18298 return value.split(/(\S.+?[.!?])(?=\s+|$)/);
18299 };
18300
18301 function diffSentences(oldStr, newStr, callback) {
18302 return sentenceDiff.diff(oldStr, newStr, callback);
18303 }
18304
18305 var cssDiff = new Diff();
18306
18307 cssDiff.tokenize = function (value) {
18308 return value.split(/([{}:;,]|\s+)/);
18309 };
18310
18311 function diffCss(oldStr, newStr, callback) {
18312 return cssDiff.diff(oldStr, newStr, callback);
18313 }
18314
18315 function _typeof(obj) {
18316 "@babel/helpers - typeof";
18317
18318 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
18319 _typeof = function (obj) {
18320 return typeof obj;
18321 };
18322 } else {
18323 _typeof = function (obj) {
18324 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18325 };
18326 }
18327
18328 return _typeof(obj);
18329 }
18330
18331 function _toConsumableArray(arr) {
18332 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
18333 }
18334
18335 function _arrayWithoutHoles(arr) {
18336 if (Array.isArray(arr)) return _arrayLikeToArray(arr);
18337 }
18338
18339 function _iterableToArray(iter) {
18340 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
18341 }
18342
18343 function _unsupportedIterableToArray(o, minLen) {
18344 if (!o) return;
18345 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
18346 var n = Object.prototype.toString.call(o).slice(8, -1);
18347 if (n === "Object" && o.constructor) n = o.constructor.name;
18348 if (n === "Map" || n === "Set") return Array.from(o);
18349 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
18350 }
18351
18352 function _arrayLikeToArray(arr, len) {
18353 if (len == null || len > arr.length) len = arr.length;
18354
18355 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
18356
18357 return arr2;
18358 }
18359
18360 function _nonIterableSpread() {
18361 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18362 }
18363
18364 var objectPrototypeToString = Object.prototype.toString;
18365 var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
18366 // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
18367
18368 jsonDiff.useLongestToken = true;
18369 jsonDiff.tokenize = lineDiff.tokenize;
18370
18371 jsonDiff.castInput = function (value) {
18372 var _this$options = this.options,
18373 undefinedReplacement = _this$options.undefinedReplacement,
18374 _this$options$stringi = _this$options.stringifyReplacer,
18375 stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {
18376 return typeof v === 'undefined' ? undefinedReplacement : v;
18377 } : _this$options$stringi;
18378 return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');
18379 };
18380
18381 jsonDiff.equals = function (left, right) {
18382 return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
18383 };
18384
18385 function diffJson(oldObj, newObj, options) {
18386 return jsonDiff.diff(oldObj, newObj, options);
18387 } // This function handles the presence of circular references by bailing out when encountering an
18388 // object that is already on the "stack" of items being processed. Accepts an optional replacer
18389
18390 function canonicalize(obj, stack, replacementStack, replacer, key) {
18391 stack = stack || [];
18392 replacementStack = replacementStack || [];
18393
18394 if (replacer) {
18395 obj = replacer(key, obj);
18396 }
18397
18398 var i;
18399
18400 for (i = 0; i < stack.length; i += 1) {
18401 if (stack[i] === obj) {
18402 return replacementStack[i];
18403 }
18404 }
18405
18406 var canonicalizedObj;
18407
18408 if ('[object Array]' === objectPrototypeToString.call(obj)) {
18409 stack.push(obj);
18410 canonicalizedObj = new Array(obj.length);
18411 replacementStack.push(canonicalizedObj);
18412
18413 for (i = 0; i < obj.length; i += 1) {
18414 canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
18415 }
18416
18417 stack.pop();
18418 replacementStack.pop();
18419 return canonicalizedObj;
18420 }
18421
18422 if (obj && obj.toJSON) {
18423 obj = obj.toJSON();
18424 }
18425
18426 if (_typeof(obj) === 'object' && obj !== null) {
18427 stack.push(obj);
18428 canonicalizedObj = {};
18429 replacementStack.push(canonicalizedObj);
18430
18431 var sortedKeys = [],
18432 _key;
18433
18434 for (_key in obj) {
18435 /* istanbul ignore else */
18436 if (obj.hasOwnProperty(_key)) {
18437 sortedKeys.push(_key);
18438 }
18439 }
18440
18441 sortedKeys.sort();
18442
18443 for (i = 0; i < sortedKeys.length; i += 1) {
18444 _key = sortedKeys[i];
18445 canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
18446 }
18447
18448 stack.pop();
18449 replacementStack.pop();
18450 } else {
18451 canonicalizedObj = obj;
18452 }
18453
18454 return canonicalizedObj;
18455 }
18456
18457 var arrayDiff = new Diff();
18458
18459 arrayDiff.tokenize = function (value) {
18460 return value.slice();
18461 };
18462
18463 arrayDiff.join = arrayDiff.removeEmpty = function (value) {
18464 return value;
18465 };
18466
18467 function diffArrays(oldArr, newArr, callback) {
18468 return arrayDiff.diff(oldArr, newArr, callback);
18469 }
18470
18471 function parsePatch(uniDiff) {
18472 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18473 var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
18474 delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18475 list = [],
18476 i = 0;
18477
18478 function parseIndex() {
18479 var index = {};
18480 list.push(index); // Parse diff metadata
18481
18482 while (i < diffstr.length) {
18483 var line = diffstr[i]; // File header found, end parsing diff metadata
18484
18485 if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
18486 break;
18487 } // Diff index
18488
18489
18490 var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
18491
18492 if (header) {
18493 index.index = header[1];
18494 }
18495
18496 i++;
18497 } // Parse file headers if they are defined. Unified diff requires them, but
18498 // there's no technical issues to have an isolated hunk without file header
18499
18500
18501 parseFileHeader(index);
18502 parseFileHeader(index); // Parse hunks
18503
18504 index.hunks = [];
18505
18506 while (i < diffstr.length) {
18507 var _line = diffstr[i];
18508
18509 if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
18510 break;
18511 } else if (/^@@/.test(_line)) {
18512 index.hunks.push(parseHunk());
18513 } else if (_line && options.strict) {
18514 // Ignore unexpected content unless in strict mode
18515 throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
18516 } else {
18517 i++;
18518 }
18519 }
18520 } // Parses the --- and +++ headers, if none are found, no lines
18521 // are consumed.
18522
18523
18524 function parseFileHeader(index) {
18525 var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
18526
18527 if (fileHeader) {
18528 var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
18529 var data = fileHeader[2].split('\t', 2);
18530 var fileName = data[0].replace(/\\\\/g, '\\');
18531
18532 if (/^".*"$/.test(fileName)) {
18533 fileName = fileName.substr(1, fileName.length - 2);
18534 }
18535
18536 index[keyPrefix + 'FileName'] = fileName;
18537 index[keyPrefix + 'Header'] = (data[1] || '').trim();
18538 i++;
18539 }
18540 } // Parses a hunk
18541 // This assumes that we are at the start of a hunk.
18542
18543
18544 function parseHunk() {
18545 var chunkHeaderIndex = i,
18546 chunkHeaderLine = diffstr[i++],
18547 chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
18548 var hunk = {
18549 oldStart: +chunkHeader[1],
18550 oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],
18551 newStart: +chunkHeader[3],
18552 newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],
18553 lines: [],
18554 linedelimiters: []
18555 }; // Unified Diff Format quirk: If the chunk size is 0,
18556 // the first number is one lower than one would expect.
18557 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18558
18559 if (hunk.oldLines === 0) {
18560 hunk.oldStart += 1;
18561 }
18562
18563 if (hunk.newLines === 0) {
18564 hunk.newStart += 1;
18565 }
18566
18567 var addCount = 0,
18568 removeCount = 0;
18569
18570 for (; i < diffstr.length; i++) {
18571 // Lines starting with '---' could be mistaken for the "remove line" operation
18572 // But they could be the header for the next file. Therefore prune such cases out.
18573 if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
18574 break;
18575 }
18576
18577 var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
18578
18579 if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
18580 hunk.lines.push(diffstr[i]);
18581 hunk.linedelimiters.push(delimiters[i] || '\n');
18582
18583 if (operation === '+') {
18584 addCount++;
18585 } else if (operation === '-') {
18586 removeCount++;
18587 } else if (operation === ' ') {
18588 addCount++;
18589 removeCount++;
18590 }
18591 } else {
18592 break;
18593 }
18594 } // Handle the empty block count case
18595
18596
18597 if (!addCount && hunk.newLines === 1) {
18598 hunk.newLines = 0;
18599 }
18600
18601 if (!removeCount && hunk.oldLines === 1) {
18602 hunk.oldLines = 0;
18603 } // Perform optional sanity checking
18604
18605
18606 if (options.strict) {
18607 if (addCount !== hunk.newLines) {
18608 throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18609 }
18610
18611 if (removeCount !== hunk.oldLines) {
18612 throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
18613 }
18614 }
18615
18616 return hunk;
18617 }
18618
18619 while (i < diffstr.length) {
18620 parseIndex();
18621 }
18622
18623 return list;
18624 }
18625
18626 // Iterator that traverses in the range of [min, max], stepping
18627 // by distance from a given start position. I.e. for [0, 4], with
18628 // start of 2, this will iterate 2, 3, 1, 4, 0.
18629 function distanceIterator (start, minLine, maxLine) {
18630 var wantForward = true,
18631 backwardExhausted = false,
18632 forwardExhausted = false,
18633 localOffset = 1;
18634 return function iterator() {
18635 if (wantForward && !forwardExhausted) {
18636 if (backwardExhausted) {
18637 localOffset++;
18638 } else {
18639 wantForward = false;
18640 } // Check if trying to fit beyond text length, and if not, check it fits
18641 // after offset location (or desired location on first iteration)
18642
18643
18644 if (start + localOffset <= maxLine) {
18645 return localOffset;
18646 }
18647
18648 forwardExhausted = true;
18649 }
18650
18651 if (!backwardExhausted) {
18652 if (!forwardExhausted) {
18653 wantForward = true;
18654 } // Check if trying to fit before text beginning, and if not, check it fits
18655 // before offset location
18656
18657
18658 if (minLine <= start - localOffset) {
18659 return -localOffset++;
18660 }
18661
18662 backwardExhausted = true;
18663 return iterator();
18664 } // We tried to fit hunk before text beginning and beyond text length, then
18665 // hunk can't fit on the text. Return undefined
18666
18667 };
18668 }
18669
18670 function applyPatch(source, uniDiff) {
18671 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18672
18673 if (typeof uniDiff === 'string') {
18674 uniDiff = parsePatch(uniDiff);
18675 }
18676
18677 if (Array.isArray(uniDiff)) {
18678 if (uniDiff.length > 1) {
18679 throw new Error('applyPatch only works with a single input.');
18680 }
18681
18682 uniDiff = uniDiff[0];
18683 } // Apply the diff to the input
18684
18685
18686 var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
18687 delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
18688 hunks = uniDiff.hunks,
18689 compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {
18690 return line === patchContent;
18691 },
18692 errorCount = 0,
18693 fuzzFactor = options.fuzzFactor || 0,
18694 minLine = 0,
18695 offset = 0,
18696 removeEOFNL,
18697 addEOFNL;
18698 /**
18699 * Checks if the hunk exactly fits on the provided location
18700 */
18701
18702
18703 function hunkFits(hunk, toPos) {
18704 for (var j = 0; j < hunk.lines.length; j++) {
18705 var line = hunk.lines[j],
18706 operation = line.length > 0 ? line[0] : ' ',
18707 content = line.length > 0 ? line.substr(1) : line;
18708
18709 if (operation === ' ' || operation === '-') {
18710 // Context sanity check
18711 if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
18712 errorCount++;
18713
18714 if (errorCount > fuzzFactor) {
18715 return false;
18716 }
18717 }
18718
18719 toPos++;
18720 }
18721 }
18722
18723 return true;
18724 } // Search best fit offsets for each hunk based on the previous ones
18725
18726
18727 for (var i = 0; i < hunks.length; i++) {
18728 var hunk = hunks[i],
18729 maxLine = lines.length - hunk.oldLines,
18730 localOffset = 0,
18731 toPos = offset + hunk.oldStart - 1;
18732 var iterator = distanceIterator(toPos, minLine, maxLine);
18733
18734 for (; localOffset !== undefined; localOffset = iterator()) {
18735 if (hunkFits(hunk, toPos + localOffset)) {
18736 hunk.offset = offset += localOffset;
18737 break;
18738 }
18739 }
18740
18741 if (localOffset === undefined) {
18742 return false;
18743 } // Set lower text limit to end of the current hunk, so next ones don't try
18744 // to fit over already patched text
18745
18746
18747 minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
18748 } // Apply patch hunks
18749
18750
18751 var diffOffset = 0;
18752
18753 for (var _i = 0; _i < hunks.length; _i++) {
18754 var _hunk = hunks[_i],
18755 _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
18756
18757 diffOffset += _hunk.newLines - _hunk.oldLines;
18758
18759 for (var j = 0; j < _hunk.lines.length; j++) {
18760 var line = _hunk.lines[j],
18761 operation = line.length > 0 ? line[0] : ' ',
18762 content = line.length > 0 ? line.substr(1) : line,
18763 delimiter = _hunk.linedelimiters[j];
18764
18765 if (operation === ' ') {
18766 _toPos++;
18767 } else if (operation === '-') {
18768 lines.splice(_toPos, 1);
18769 delimiters.splice(_toPos, 1);
18770 /* istanbul ignore else */
18771 } else if (operation === '+') {
18772 lines.splice(_toPos, 0, content);
18773 delimiters.splice(_toPos, 0, delimiter);
18774 _toPos++;
18775 } else if (operation === '\\') {
18776 var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
18777
18778 if (previousOperation === '+') {
18779 removeEOFNL = true;
18780 } else if (previousOperation === '-') {
18781 addEOFNL = true;
18782 }
18783 }
18784 }
18785 } // Handle EOFNL insertion/removal
18786
18787
18788 if (removeEOFNL) {
18789 while (!lines[lines.length - 1]) {
18790 lines.pop();
18791 delimiters.pop();
18792 }
18793 } else if (addEOFNL) {
18794 lines.push('');
18795 delimiters.push('\n');
18796 }
18797
18798 for (var _k = 0; _k < lines.length - 1; _k++) {
18799 lines[_k] = lines[_k] + delimiters[_k];
18800 }
18801
18802 return lines.join('');
18803 } // Wrapper that supports multiple file patches via callbacks.
18804
18805 function applyPatches(uniDiff, options) {
18806 if (typeof uniDiff === 'string') {
18807 uniDiff = parsePatch(uniDiff);
18808 }
18809
18810 var currentIndex = 0;
18811
18812 function processIndex() {
18813 var index = uniDiff[currentIndex++];
18814
18815 if (!index) {
18816 return options.complete();
18817 }
18818
18819 options.loadFile(index, function (err, data) {
18820 if (err) {
18821 return options.complete(err);
18822 }
18823
18824 var updatedContent = applyPatch(data, index, options);
18825 options.patched(index, updatedContent, function (err) {
18826 if (err) {
18827 return options.complete(err);
18828 }
18829
18830 processIndex();
18831 });
18832 });
18833 }
18834
18835 processIndex();
18836 }
18837
18838 function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
18839 if (!options) {
18840 options = {};
18841 }
18842
18843 if (typeof options.context === 'undefined') {
18844 options.context = 4;
18845 }
18846
18847 var diff = diffLines(oldStr, newStr, options);
18848
18849 if (!diff) {
18850 return;
18851 }
18852
18853 diff.push({
18854 value: '',
18855 lines: []
18856 }); // Append an empty value to make cleanup easier
18857
18858 function contextLines(lines) {
18859 return lines.map(function (entry) {
18860 return ' ' + entry;
18861 });
18862 }
18863
18864 var hunks = [];
18865 var oldRangeStart = 0,
18866 newRangeStart = 0,
18867 curRange = [],
18868 oldLine = 1,
18869 newLine = 1;
18870
18871 var _loop = function _loop(i) {
18872 var current = diff[i],
18873 lines = current.lines || current.value.replace(/\n$/, '').split('\n');
18874 current.lines = lines;
18875
18876 if (current.added || current.removed) {
18877 var _curRange;
18878
18879 // If we have previous context, start with that
18880 if (!oldRangeStart) {
18881 var prev = diff[i - 1];
18882 oldRangeStart = oldLine;
18883 newRangeStart = newLine;
18884
18885 if (prev) {
18886 curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
18887 oldRangeStart -= curRange.length;
18888 newRangeStart -= curRange.length;
18889 }
18890 } // Output our changes
18891
18892
18893 (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {
18894 return (current.added ? '+' : '-') + entry;
18895 }))); // Track the updated file position
18896
18897
18898 if (current.added) {
18899 newLine += lines.length;
18900 } else {
18901 oldLine += lines.length;
18902 }
18903 } else {
18904 // Identical context lines. Track line changes
18905 if (oldRangeStart) {
18906 // Close out any changes that have been output (or join overlapping)
18907 if (lines.length <= options.context * 2 && i < diff.length - 2) {
18908 var _curRange2;
18909
18910 // Overlapping
18911 (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));
18912 } else {
18913 var _curRange3;
18914
18915 // end the range and output
18916 var contextSize = Math.min(lines.length, options.context);
18917
18918 (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));
18919
18920 var hunk = {
18921 oldStart: oldRangeStart,
18922 oldLines: oldLine - oldRangeStart + contextSize,
18923 newStart: newRangeStart,
18924 newLines: newLine - newRangeStart + contextSize,
18925 lines: curRange
18926 };
18927
18928 if (i >= diff.length - 2 && lines.length <= options.context) {
18929 // EOF is inside this hunk
18930 var oldEOFNewline = /\n$/.test(oldStr);
18931 var newEOFNewline = /\n$/.test(newStr);
18932 var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
18933
18934 if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
18935 // special case: old has no eol and no trailing context; no-nl can end up before adds
18936 // however, if the old file is empty, do not output the no-nl line
18937 curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
18938 }
18939
18940 if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
18941 curRange.push('\\ No newline at end of file');
18942 }
18943 }
18944
18945 hunks.push(hunk);
18946 oldRangeStart = 0;
18947 newRangeStart = 0;
18948 curRange = [];
18949 }
18950 }
18951
18952 oldLine += lines.length;
18953 newLine += lines.length;
18954 }
18955 };
18956
18957 for (var i = 0; i < diff.length; i++) {
18958 _loop(i);
18959 }
18960
18961 return {
18962 oldFileName: oldFileName,
18963 newFileName: newFileName,
18964 oldHeader: oldHeader,
18965 newHeader: newHeader,
18966 hunks: hunks
18967 };
18968 }
18969 function formatPatch(diff) {
18970 var ret = [];
18971
18972 if (diff.oldFileName == diff.newFileName) {
18973 ret.push('Index: ' + diff.oldFileName);
18974 }
18975
18976 ret.push('===================================================================');
18977 ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
18978 ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
18979
18980 for (var i = 0; i < diff.hunks.length; i++) {
18981 var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
18982 // the first number is one lower than one would expect.
18983 // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
18984
18985 if (hunk.oldLines === 0) {
18986 hunk.oldStart -= 1;
18987 }
18988
18989 if (hunk.newLines === 0) {
18990 hunk.newStart -= 1;
18991 }
18992
18993 ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
18994 ret.push.apply(ret, hunk.lines);
18995 }
18996
18997 return ret.join('\n') + '\n';
18998 }
18999 function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
19000 return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
19001 }
19002 function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
19003 return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
19004 }
19005
19006 function arrayEqual(a, b) {
19007 if (a.length !== b.length) {
19008 return false;
19009 }
19010
19011 return arrayStartsWith(a, b);
19012 }
19013 function arrayStartsWith(array, start) {
19014 if (start.length > array.length) {
19015 return false;
19016 }
19017
19018 for (var i = 0; i < start.length; i++) {
19019 if (start[i] !== array[i]) {
19020 return false;
19021 }
19022 }
19023
19024 return true;
19025 }
19026
19027 function calcLineCount(hunk) {
19028 var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),
19029 oldLines = _calcOldNewLineCount.oldLines,
19030 newLines = _calcOldNewLineCount.newLines;
19031
19032 if (oldLines !== undefined) {
19033 hunk.oldLines = oldLines;
19034 } else {
19035 delete hunk.oldLines;
19036 }
19037
19038 if (newLines !== undefined) {
19039 hunk.newLines = newLines;
19040 } else {
19041 delete hunk.newLines;
19042 }
19043 }
19044 function merge(mine, theirs, base) {
19045 mine = loadPatch(mine, base);
19046 theirs = loadPatch(theirs, base);
19047 var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.
19048 // Leaving sanity checks on this to the API consumer that may know more about the
19049 // meaning in their own context.
19050
19051 if (mine.index || theirs.index) {
19052 ret.index = mine.index || theirs.index;
19053 }
19054
19055 if (mine.newFileName || theirs.newFileName) {
19056 if (!fileNameChanged(mine)) {
19057 // No header or no change in ours, use theirs (and ours if theirs does not exist)
19058 ret.oldFileName = theirs.oldFileName || mine.oldFileName;
19059 ret.newFileName = theirs.newFileName || mine.newFileName;
19060 ret.oldHeader = theirs.oldHeader || mine.oldHeader;
19061 ret.newHeader = theirs.newHeader || mine.newHeader;
19062 } else if (!fileNameChanged(theirs)) {
19063 // No header or no change in theirs, use ours
19064 ret.oldFileName = mine.oldFileName;
19065 ret.newFileName = mine.newFileName;
19066 ret.oldHeader = mine.oldHeader;
19067 ret.newHeader = mine.newHeader;
19068 } else {
19069 // Both changed... figure it out
19070 ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
19071 ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
19072 ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
19073 ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
19074 }
19075 }
19076
19077 ret.hunks = [];
19078 var mineIndex = 0,
19079 theirsIndex = 0,
19080 mineOffset = 0,
19081 theirsOffset = 0;
19082
19083 while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
19084 var mineCurrent = mine.hunks[mineIndex] || {
19085 oldStart: Infinity
19086 },
19087 theirsCurrent = theirs.hunks[theirsIndex] || {
19088 oldStart: Infinity
19089 };
19090
19091 if (hunkBefore(mineCurrent, theirsCurrent)) {
19092 // This patch does not overlap with any of the others, yay.
19093 ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
19094 mineIndex++;
19095 theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
19096 } else if (hunkBefore(theirsCurrent, mineCurrent)) {
19097 // This patch does not overlap with any of the others, yay.
19098 ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
19099 theirsIndex++;
19100 mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
19101 } else {
19102 // Overlap, merge as best we can
19103 var mergedHunk = {
19104 oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
19105 oldLines: 0,
19106 newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
19107 newLines: 0,
19108 lines: []
19109 };
19110 mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
19111 theirsIndex++;
19112 mineIndex++;
19113 ret.hunks.push(mergedHunk);
19114 }
19115 }
19116
19117 return ret;
19118 }
19119
19120 function loadPatch(param, base) {
19121 if (typeof param === 'string') {
19122 if (/^@@/m.test(param) || /^Index:/m.test(param)) {
19123 return parsePatch(param)[0];
19124 }
19125
19126 if (!base) {
19127 throw new Error('Must provide a base reference or pass in a patch');
19128 }
19129
19130 return structuredPatch(undefined, undefined, base, param);
19131 }
19132
19133 return param;
19134 }
19135
19136 function fileNameChanged(patch) {
19137 return patch.newFileName && patch.newFileName !== patch.oldFileName;
19138 }
19139
19140 function selectField(index, mine, theirs) {
19141 if (mine === theirs) {
19142 return mine;
19143 } else {
19144 index.conflict = true;
19145 return {
19146 mine: mine,
19147 theirs: theirs
19148 };
19149 }
19150 }
19151
19152 function hunkBefore(test, check) {
19153 return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
19154 }
19155
19156 function cloneHunk(hunk, offset) {
19157 return {
19158 oldStart: hunk.oldStart,
19159 oldLines: hunk.oldLines,
19160 newStart: hunk.newStart + offset,
19161 newLines: hunk.newLines,
19162 lines: hunk.lines
19163 };
19164 }
19165
19166 function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
19167 // This will generally result in a conflicted hunk, but there are cases where the context
19168 // is the only overlap where we can successfully merge the content here.
19169 var mine = {
19170 offset: mineOffset,
19171 lines: mineLines,
19172 index: 0
19173 },
19174 their = {
19175 offset: theirOffset,
19176 lines: theirLines,
19177 index: 0
19178 }; // Handle any leading content
19179
19180 insertLeading(hunk, mine, their);
19181 insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.
19182
19183 while (mine.index < mine.lines.length && their.index < their.lines.length) {
19184 var mineCurrent = mine.lines[mine.index],
19185 theirCurrent = their.lines[their.index];
19186
19187 if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
19188 // Both modified ...
19189 mutualChange(hunk, mine, their);
19190 } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
19191 var _hunk$lines;
19192
19193 // Mine inserted
19194 (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));
19195 } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
19196 var _hunk$lines2;
19197
19198 // Theirs inserted
19199 (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));
19200 } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
19201 // Mine removed or edited
19202 removal(hunk, mine, their);
19203 } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
19204 // Their removed or edited
19205 removal(hunk, their, mine, true);
19206 } else if (mineCurrent === theirCurrent) {
19207 // Context identity
19208 hunk.lines.push(mineCurrent);
19209 mine.index++;
19210 their.index++;
19211 } else {
19212 // Context mismatch
19213 conflict(hunk, collectChange(mine), collectChange(their));
19214 }
19215 } // Now push anything that may be remaining
19216
19217
19218 insertTrailing(hunk, mine);
19219 insertTrailing(hunk, their);
19220 calcLineCount(hunk);
19221 }
19222
19223 function mutualChange(hunk, mine, their) {
19224 var myChanges = collectChange(mine),
19225 theirChanges = collectChange(their);
19226
19227 if (allRemoves(myChanges) && allRemoves(theirChanges)) {
19228 // Special case for remove changes that are supersets of one another
19229 if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
19230 var _hunk$lines3;
19231
19232 (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));
19233
19234 return;
19235 } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
19236 var _hunk$lines4;
19237
19238 (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));
19239
19240 return;
19241 }
19242 } else if (arrayEqual(myChanges, theirChanges)) {
19243 var _hunk$lines5;
19244
19245 (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));
19246
19247 return;
19248 }
19249
19250 conflict(hunk, myChanges, theirChanges);
19251 }
19252
19253 function removal(hunk, mine, their, swap) {
19254 var myChanges = collectChange(mine),
19255 theirChanges = collectContext(their, myChanges);
19256
19257 if (theirChanges.merged) {
19258 var _hunk$lines6;
19259
19260 (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));
19261 } else {
19262 conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
19263 }
19264 }
19265
19266 function conflict(hunk, mine, their) {
19267 hunk.conflict = true;
19268 hunk.lines.push({
19269 conflict: true,
19270 mine: mine,
19271 theirs: their
19272 });
19273 }
19274
19275 function insertLeading(hunk, insert, their) {
19276 while (insert.offset < their.offset && insert.index < insert.lines.length) {
19277 var line = insert.lines[insert.index++];
19278 hunk.lines.push(line);
19279 insert.offset++;
19280 }
19281 }
19282
19283 function insertTrailing(hunk, insert) {
19284 while (insert.index < insert.lines.length) {
19285 var line = insert.lines[insert.index++];
19286 hunk.lines.push(line);
19287 }
19288 }
19289
19290 function collectChange(state) {
19291 var ret = [],
19292 operation = state.lines[state.index][0];
19293
19294 while (state.index < state.lines.length) {
19295 var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
19296
19297 if (operation === '-' && line[0] === '+') {
19298 operation = '+';
19299 }
19300
19301 if (operation === line[0]) {
19302 ret.push(line);
19303 state.index++;
19304 } else {
19305 break;
19306 }
19307 }
19308
19309 return ret;
19310 }
19311
19312 function collectContext(state, matchChanges) {
19313 var changes = [],
19314 merged = [],
19315 matchIndex = 0,
19316 contextChanges = false,
19317 conflicted = false;
19318
19319 while (matchIndex < matchChanges.length && state.index < state.lines.length) {
19320 var change = state.lines[state.index],
19321 match = matchChanges[matchIndex]; // Once we've hit our add, then we are done
19322
19323 if (match[0] === '+') {
19324 break;
19325 }
19326
19327 contextChanges = contextChanges || change[0] !== ' ';
19328 merged.push(match);
19329 matchIndex++; // Consume any additions in the other block as a conflict to attempt
19330 // to pull in the remaining context after this
19331
19332 if (change[0] === '+') {
19333 conflicted = true;
19334
19335 while (change[0] === '+') {
19336 changes.push(change);
19337 change = state.lines[++state.index];
19338 }
19339 }
19340
19341 if (match.substr(1) === change.substr(1)) {
19342 changes.push(change);
19343 state.index++;
19344 } else {
19345 conflicted = true;
19346 }
19347 }
19348
19349 if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
19350 conflicted = true;
19351 }
19352
19353 if (conflicted) {
19354 return changes;
19355 }
19356
19357 while (matchIndex < matchChanges.length) {
19358 merged.push(matchChanges[matchIndex++]);
19359 }
19360
19361 return {
19362 merged: merged,
19363 changes: changes
19364 };
19365 }
19366
19367 function allRemoves(changes) {
19368 return changes.reduce(function (prev, change) {
19369 return prev && change[0] === '-';
19370 }, true);
19371 }
19372
19373 function skipRemoveSuperset(state, removeChanges, delta) {
19374 for (var i = 0; i < delta; i++) {
19375 var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
19376
19377 if (state.lines[state.index + i] !== ' ' + changeContent) {
19378 return false;
19379 }
19380 }
19381
19382 state.index += delta;
19383 return true;
19384 }
19385
19386 function calcOldNewLineCount(lines) {
19387 var oldLines = 0;
19388 var newLines = 0;
19389 lines.forEach(function (line) {
19390 if (typeof line !== 'string') {
19391 var myCount = calcOldNewLineCount(line.mine);
19392 var theirCount = calcOldNewLineCount(line.theirs);
19393
19394 if (oldLines !== undefined) {
19395 if (myCount.oldLines === theirCount.oldLines) {
19396 oldLines += myCount.oldLines;
19397 } else {
19398 oldLines = undefined;
19399 }
19400 }
19401
19402 if (newLines !== undefined) {
19403 if (myCount.newLines === theirCount.newLines) {
19404 newLines += myCount.newLines;
19405 } else {
19406 newLines = undefined;
19407 }
19408 }
19409 } else {
19410 if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
19411 newLines++;
19412 }
19413
19414 if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
19415 oldLines++;
19416 }
19417 }
19418 });
19419 return {
19420 oldLines: oldLines,
19421 newLines: newLines
19422 };
19423 }
19424
19425 // See: http://code.google.com/p/google-diff-match-patch/wiki/API
19426 function convertChangesToDMP(changes) {
19427 var ret = [],
19428 change,
19429 operation;
19430
19431 for (var i = 0; i < changes.length; i++) {
19432 change = changes[i];
19433
19434 if (change.added) {
19435 operation = 1;
19436 } else if (change.removed) {
19437 operation = -1;
19438 } else {
19439 operation = 0;
19440 }
19441
19442 ret.push([operation, change.value]);
19443 }
19444
19445 return ret;
19446 }
19447
19448 function convertChangesToXML(changes) {
19449 var ret = [];
19450
19451 for (var i = 0; i < changes.length; i++) {
19452 var change = changes[i];
19453
19454 if (change.added) {
19455 ret.push('<ins>');
19456 } else if (change.removed) {
19457 ret.push('<del>');
19458 }
19459
19460 ret.push(escapeHTML(change.value));
19461
19462 if (change.added) {
19463 ret.push('</ins>');
19464 } else if (change.removed) {
19465 ret.push('</del>');
19466 }
19467 }
19468
19469 return ret.join('');
19470 }
19471
19472 function escapeHTML(s) {
19473 var n = s;
19474 n = n.replace(/&/g, '&amp;');
19475 n = n.replace(/</g, '&lt;');
19476 n = n.replace(/>/g, '&gt;');
19477 n = n.replace(/"/g, '&quot;');
19478 return n;
19479 }
19480
19481
19482
19483
19484 /***/ }),
19485
19486 /***/ "../node_modules/hast-util-whitespace/index.js":
19487 /*!*****************************************************!*\
19488 !*** ../node_modules/hast-util-whitespace/index.js ***!
19489 \*****************************************************/
19490 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19491
19492 "use strict";
19493 __webpack_require__.r(__webpack_exports__);
19494 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19495 /* harmony export */ whitespace: () => (/* binding */ whitespace)
19496 /* harmony export */ });
19497 /**
19498 * Check if the given value is *inter-element whitespace*.
19499 *
19500 * @param {unknown} thing
19501 * Thing to check (typically `Node` or `string`).
19502 * @returns {boolean}
19503 * Whether the `value` is inter-element whitespace (`boolean`): consisting of
19504 * zero or more of space, tab (`\t`), line feed (`\n`), carriage return
19505 * (`\r`), or form feed (`\f`).
19506 * If a node is passed it must be a `Text` node, whose `value` field is
19507 * checked.
19508 */
19509 function whitespace(thing) {
19510 /** @type {string} */
19511 const value =
19512 // @ts-expect-error looks like a node.
19513 thing && typeof thing === 'object' && thing.type === 'text'
19514 ? // @ts-expect-error looks like a text.
19515 thing.value || ''
19516 : thing
19517
19518 // HTML whitespace expression.
19519 // See <https://infra.spec.whatwg.org/#ascii-whitespace>.
19520 return typeof value === 'string' && value.replace(/[ \t\n\f\r]/g, '') === ''
19521 }
19522
19523
19524 /***/ }),
19525
19526 /***/ "../node_modules/is-plain-obj/index.js":
19527 /*!*********************************************!*\
19528 !*** ../node_modules/is-plain-obj/index.js ***!
19529 \*********************************************/
19530 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19531
19532 "use strict";
19533 __webpack_require__.r(__webpack_exports__);
19534 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19535 /* harmony export */ "default": () => (/* binding */ isPlainObject)
19536 /* harmony export */ });
19537 function isPlainObject(value) {
19538 if (typeof value !== 'object' || value === null) {
19539 return false;
19540 }
19541
19542 const prototype = Object.getPrototypeOf(value);
19543 return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
19544 }
19545
19546
19547 /***/ }),
19548
19549 /***/ "../node_modules/mdast-util-definitions/lib/index.js":
19550 /*!***********************************************************!*\
19551 !*** ../node_modules/mdast-util-definitions/lib/index.js ***!
19552 \***********************************************************/
19553 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19554
19555 "use strict";
19556 __webpack_require__.r(__webpack_exports__);
19557 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19558 /* harmony export */ definitions: () => (/* binding */ definitions)
19559 /* harmony export */ });
19560 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
19561 /**
19562 * @typedef {import('mdast').Root} Root
19563 * @typedef {import('mdast').Content} Content
19564 * @typedef {import('mdast').Definition} Definition
19565 */
19566
19567 /**
19568 * @typedef {Root | Content} Node
19569 *
19570 * @callback GetDefinition
19571 * Get a definition by identifier.
19572 * @param {string | null | undefined} [identifier]
19573 * Identifier of definition.
19574 * @returns {Definition | null}
19575 * Definition corresponding to `identifier` or `null`.
19576 */
19577
19578
19579
19580 const own = {}.hasOwnProperty
19581
19582 /**
19583 * Find definitions in `tree`.
19584 *
19585 * Uses CommonMark precedence, which means that earlier definitions are
19586 * preferred over duplicate later definitions.
19587 *
19588 * @param {Node} tree
19589 * Tree to check.
19590 * @returns {GetDefinition}
19591 * Getter.
19592 */
19593 function definitions(tree) {
19594 /** @type {Record<string, Definition>} */
19595 const cache = Object.create(null)
19596
19597 if (!tree || !tree.type) {
19598 throw new Error('mdast-util-definitions expected node')
19599 }
19600
19601 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'definition', (definition) => {
19602 const id = clean(definition.identifier)
19603 if (id && !own.call(cache, id)) {
19604 cache[id] = definition
19605 }
19606 })
19607
19608 return definition
19609
19610 /** @type {GetDefinition} */
19611 function definition(identifier) {
19612 const id = clean(identifier)
19613 // To do: next major: return `undefined` when not found.
19614 return id && own.call(cache, id) ? cache[id] : null
19615 }
19616 }
19617
19618 /**
19619 * @param {string | null | undefined} [value]
19620 * @returns {string}
19621 */
19622 function clean(value) {
19623 return String(value || '').toUpperCase()
19624 }
19625
19626
19627 /***/ }),
19628
19629 /***/ "../node_modules/mdast-util-from-markdown/dev/lib/index.js":
19630 /*!*****************************************************************!*\
19631 !*** ../node_modules/mdast-util-from-markdown/dev/lib/index.js ***!
19632 \*****************************************************************/
19633 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
19634
19635 "use strict";
19636 __webpack_require__.r(__webpack_exports__);
19637 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
19638 /* harmony export */ fromMarkdown: () => (/* binding */ fromMarkdown)
19639 /* harmony export */ });
19640 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
19641 /* 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");
19642 /* harmony import */ var micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark/lib/parse.js */ "../node_modules/micromark/dev/lib/parse.js");
19643 /* harmony import */ var micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark/lib/preprocess.js */ "../node_modules/micromark/dev/lib/preprocess.js");
19644 /* harmony import */ var micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark/lib/postprocess.js */ "../node_modules/micromark/dev/lib/postprocess.js");
19645 /* 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");
19646 /* 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");
19647 /* 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");
19648 /* 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");
19649 /* 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");
19650 /* 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");
19651 /* 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");
19652 /* 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");
19653 /**
19654 * @typedef {import('micromark-util-types').Encoding} Encoding
19655 * @typedef {import('micromark-util-types').Event} Event
19656 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
19657 * @typedef {import('micromark-util-types').Token} Token
19658 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
19659 * @typedef {import('micromark-util-types').Value} Value
19660 *
19661 * @typedef {import('unist').Parent} UnistParent
19662 * @typedef {import('unist').Point} Point
19663 *
19664 * @typedef {import('mdast').PhrasingContent} PhrasingContent
19665 * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
19666 * @typedef {import('mdast').Content} Content
19667 * @typedef {import('mdast').Break} Break
19668 * @typedef {import('mdast').Blockquote} Blockquote
19669 * @typedef {import('mdast').Code} Code
19670 * @typedef {import('mdast').Definition} Definition
19671 * @typedef {import('mdast').Emphasis} Emphasis
19672 * @typedef {import('mdast').Heading} Heading
19673 * @typedef {import('mdast').HTML} HTML
19674 * @typedef {import('mdast').Image} Image
19675 * @typedef {import('mdast').ImageReference} ImageReference
19676 * @typedef {import('mdast').InlineCode} InlineCode
19677 * @typedef {import('mdast').Link} Link
19678 * @typedef {import('mdast').LinkReference} LinkReference
19679 * @typedef {import('mdast').List} List
19680 * @typedef {import('mdast').ListItem} ListItem
19681 * @typedef {import('mdast').Paragraph} Paragraph
19682 * @typedef {import('mdast').Root} Root
19683 * @typedef {import('mdast').Strong} Strong
19684 * @typedef {import('mdast').Text} Text
19685 * @typedef {import('mdast').ThematicBreak} ThematicBreak
19686 * @typedef {import('mdast').ReferenceType} ReferenceType
19687 * @typedef {import('../index.js').CompileData} CompileData
19688 */
19689
19690 /**
19691 * @typedef {Root | Content} Node
19692 * @typedef {Extract<Node, UnistParent>} Parent
19693 *
19694 * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment
19695 */
19696
19697 /**
19698 * @callback Transform
19699 * Extra transform, to change the AST afterwards.
19700 * @param {Root} tree
19701 * Tree to transform.
19702 * @returns {Root | undefined | null | void}
19703 * New tree or nothing (in which case the current tree is used).
19704 *
19705 * @callback Handle
19706 * Handle a token.
19707 * @param {CompileContext} this
19708 * Context.
19709 * @param {Token} token
19710 * Current token.
19711 * @returns {void}
19712 * Nothing.
19713 *
19714 * @typedef {Record<string, Handle>} Handles
19715 * Token types mapping to handles
19716 *
19717 * @callback OnEnterError
19718 * Handle the case where the `right` token is open, but it is closed (by the
19719 * `left` token) or because we reached the end of the document.
19720 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19721 * Context.
19722 * @param {Token | undefined} left
19723 * Left token.
19724 * @param {Token} right
19725 * Right token.
19726 * @returns {void}
19727 * Nothing.
19728 *
19729 * @callback OnExitError
19730 * Handle the case where the `right` token is open but it is closed by
19731 * exiting the `left` token.
19732 * @param {Omit<CompileContext, 'sliceSerialize'>} this
19733 * Context.
19734 * @param {Token} left
19735 * Left token.
19736 * @param {Token} right
19737 * Right token.
19738 * @returns {void}
19739 * Nothing.
19740 *
19741 * @typedef {[Token, OnEnterError | undefined]} TokenTuple
19742 * Open token on the stack, with an optional error handler for when
19743 * that token isn’t closed properly.
19744 */
19745
19746 /**
19747 * @typedef Config
19748 * Configuration.
19749 *
19750 * We have our defaults, but extensions will add more.
19751 * @property {Array<string>} canContainEols
19752 * Token types where line endings are used.
19753 * @property {Handles} enter
19754 * Opening handles.
19755 * @property {Handles} exit
19756 * Closing handles.
19757 * @property {Array<Transform>} transforms
19758 * Tree transforms.
19759 *
19760 * @typedef {Partial<Config>} Extension
19761 * Change how markdown tokens from micromark are turned into mdast.
19762 *
19763 * @typedef CompileContext
19764 * mdast compiler context.
19765 * @property {Array<Node | Fragment>} stack
19766 * Stack of nodes.
19767 * @property {Array<TokenTuple>} tokenStack
19768 * Stack of tokens.
19769 * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData
19770 * Get data from the key/value store.
19771 * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData
19772 * Set data into the key/value store.
19773 * @property {(this: CompileContext) => void} buffer
19774 * Capture some of the output data.
19775 * @property {(this: CompileContext) => string} resume
19776 * Stop capturing and access the output data.
19777 * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
19778 * Enter a token.
19779 * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
19780 * Exit a token.
19781 * @property {TokenizeContext['sliceSerialize']} sliceSerialize
19782 * Get the string value of a token.
19783 * @property {Config} config
19784 * Configuration.
19785 *
19786 * @typedef FromMarkdownOptions
19787 * Configuration for how to build mdast.
19788 * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]
19789 * Extensions for this utility to change how tokens are turned into a tree.
19790 *
19791 * @typedef {ParseOptions & FromMarkdownOptions} Options
19792 * Configuration.
19793 */
19794
19795 // To do: micromark: create a registry of tokens?
19796 // To do: next major: don’t return given `Node` from `enter`.
19797 // To do: next major: remove setter/getter.
19798
19799
19800
19801
19802
19803
19804
19805
19806
19807
19808
19809
19810
19811
19812
19813 const own = {}.hasOwnProperty
19814
19815 /**
19816 * @param value
19817 * Markdown to parse.
19818 * @param encoding
19819 * Character encoding for when `value` is `Buffer`.
19820 * @param options
19821 * Configuration.
19822 * @returns
19823 * mdast tree.
19824 */
19825 const fromMarkdown =
19826 /**
19827 * @type {(
19828 * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
19829 * ((value: Value, options?: Options | null | undefined) => Root)
19830 * )}
19831 */
19832 (
19833 /**
19834 * @param {Value} value
19835 * @param {Encoding | Options | null | undefined} [encoding]
19836 * @param {Options | null | undefined} [options]
19837 * @returns {Root}
19838 */
19839 function (value, encoding, options) {
19840 if (typeof encoding !== 'string') {
19841 options = encoding
19842 encoding = undefined
19843 }
19844
19845 return compiler(options)(
19846 (0,micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_1__.postprocess)(
19847 (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))
19848 )
19849 )
19850 }
19851 )
19852
19853 /**
19854 * Note this compiler only understand complete buffering, not streaming.
19855 *
19856 * @param {Options | null | undefined} [options]
19857 */
19858 function compiler(options) {
19859 /** @type {Config} */
19860 const config = {
19861 transforms: [],
19862 canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
19863 enter: {
19864 autolink: opener(link),
19865 autolinkProtocol: onenterdata,
19866 autolinkEmail: onenterdata,
19867 atxHeading: opener(heading),
19868 blockQuote: opener(blockQuote),
19869 characterEscape: onenterdata,
19870 characterReference: onenterdata,
19871 codeFenced: opener(codeFlow),
19872 codeFencedFenceInfo: buffer,
19873 codeFencedFenceMeta: buffer,
19874 codeIndented: opener(codeFlow, buffer),
19875 codeText: opener(codeText, buffer),
19876 codeTextData: onenterdata,
19877 data: onenterdata,
19878 codeFlowValue: onenterdata,
19879 definition: opener(definition),
19880 definitionDestinationString: buffer,
19881 definitionLabelString: buffer,
19882 definitionTitleString: buffer,
19883 emphasis: opener(emphasis),
19884 hardBreakEscape: opener(hardBreak),
19885 hardBreakTrailing: opener(hardBreak),
19886 htmlFlow: opener(html, buffer),
19887 htmlFlowData: onenterdata,
19888 htmlText: opener(html, buffer),
19889 htmlTextData: onenterdata,
19890 image: opener(image),
19891 label: buffer,
19892 link: opener(link),
19893 listItem: opener(listItem),
19894 listItemValue: onenterlistitemvalue,
19895 listOrdered: opener(list, onenterlistordered),
19896 listUnordered: opener(list),
19897 paragraph: opener(paragraph),
19898 reference: onenterreference,
19899 referenceString: buffer,
19900 resourceDestinationString: buffer,
19901 resourceTitleString: buffer,
19902 setextHeading: opener(heading),
19903 strong: opener(strong),
19904 thematicBreak: opener(thematicBreak)
19905 },
19906 exit: {
19907 atxHeading: closer(),
19908 atxHeadingSequence: onexitatxheadingsequence,
19909 autolink: closer(),
19910 autolinkEmail: onexitautolinkemail,
19911 autolinkProtocol: onexitautolinkprotocol,
19912 blockQuote: closer(),
19913 characterEscapeValue: onexitdata,
19914 characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
19915 characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
19916 characterReferenceValue: onexitcharacterreferencevalue,
19917 codeFenced: closer(onexitcodefenced),
19918 codeFencedFence: onexitcodefencedfence,
19919 codeFencedFenceInfo: onexitcodefencedfenceinfo,
19920 codeFencedFenceMeta: onexitcodefencedfencemeta,
19921 codeFlowValue: onexitdata,
19922 codeIndented: closer(onexitcodeindented),
19923 codeText: closer(onexitcodetext),
19924 codeTextData: onexitdata,
19925 data: onexitdata,
19926 definition: closer(),
19927 definitionDestinationString: onexitdefinitiondestinationstring,
19928 definitionLabelString: onexitdefinitionlabelstring,
19929 definitionTitleString: onexitdefinitiontitlestring,
19930 emphasis: closer(),
19931 hardBreakEscape: closer(onexithardbreak),
19932 hardBreakTrailing: closer(onexithardbreak),
19933 htmlFlow: closer(onexithtmlflow),
19934 htmlFlowData: onexitdata,
19935 htmlText: closer(onexithtmltext),
19936 htmlTextData: onexitdata,
19937 image: closer(onexitimage),
19938 label: onexitlabel,
19939 labelText: onexitlabeltext,
19940 lineEnding: onexitlineending,
19941 link: closer(onexitlink),
19942 listItem: closer(),
19943 listOrdered: closer(),
19944 listUnordered: closer(),
19945 paragraph: closer(),
19946 referenceString: onexitreferencestring,
19947 resourceDestinationString: onexitresourcedestinationstring,
19948 resourceTitleString: onexitresourcetitlestring,
19949 resource: onexitresource,
19950 setextHeading: closer(onexitsetextheading),
19951 setextHeadingLineSequence: onexitsetextheadinglinesequence,
19952 setextHeadingText: onexitsetextheadingtext,
19953 strong: closer(),
19954 thematicBreak: closer()
19955 }
19956 }
19957
19958 configure(config, (options || {}).mdastExtensions || [])
19959
19960 /** @type {CompileData} */
19961 const data = {}
19962
19963 return compile
19964
19965 /**
19966 * Turn micromark events into an mdast tree.
19967 *
19968 * @param {Array<Event>} events
19969 * Events.
19970 * @returns {Root}
19971 * mdast tree.
19972 */
19973 function compile(events) {
19974 /** @type {Root} */
19975 let tree = {type: 'root', children: []}
19976 /** @type {Omit<CompileContext, 'sliceSerialize'>} */
19977 const context = {
19978 stack: [tree],
19979 tokenStack: [],
19980 config,
19981 enter,
19982 exit,
19983 buffer,
19984 resume,
19985 setData,
19986 getData
19987 }
19988 /** @type {Array<number>} */
19989 const listStack = []
19990 let index = -1
19991
19992 while (++index < events.length) {
19993 // We preprocess lists to add `listItem` tokens, and to infer whether
19994 // items the list itself are spread out.
19995 if (
19996 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
19997 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered
19998 ) {
19999 if (events[index][0] === 'enter') {
20000 listStack.push(index)
20001 } else {
20002 const tail = listStack.pop()
20003 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof tail === 'number', 'expected list ot be open')
20004 index = prepareList(events, tail, index)
20005 }
20006 }
20007 }
20008
20009 index = -1
20010
20011 while (++index < events.length) {
20012 const handler = config[events[index][0]]
20013
20014 if (own.call(handler, events[index][1].type)) {
20015 handler[events[index][1].type].call(
20016 Object.assign(
20017 {sliceSerialize: events[index][2].sliceSerialize},
20018 context
20019 ),
20020 events[index][1]
20021 )
20022 }
20023 }
20024
20025 // Handle tokens still being open.
20026 if (context.tokenStack.length > 0) {
20027 const tail = context.tokenStack[context.tokenStack.length - 1]
20028 const handler = tail[1] || defaultOnError
20029 handler.call(context, undefined, tail[0])
20030 }
20031
20032 // Figure out `root` position.
20033 tree.position = {
20034 start: point(
20035 events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}
20036 ),
20037 end: point(
20038 events.length > 0
20039 ? events[events.length - 2][1].end
20040 : {line: 1, column: 1, offset: 0}
20041 )
20042 }
20043
20044 // Call transforms.
20045 index = -1
20046 while (++index < config.transforms.length) {
20047 tree = config.transforms[index](tree) || tree
20048 }
20049
20050 return tree
20051 }
20052
20053 /**
20054 * @param {Array<Event>} events
20055 * @param {number} start
20056 * @param {number} length
20057 * @returns {number}
20058 */
20059 function prepareList(events, start, length) {
20060 let index = start - 1
20061 let containerBalance = -1
20062 let listSpread = false
20063 /** @type {Token | undefined} */
20064 let listItem
20065 /** @type {number | undefined} */
20066 let lineIndex
20067 /** @type {number | undefined} */
20068 let firstBlankLineIndex
20069 /** @type {boolean | undefined} */
20070 let atMarker
20071
20072 while (++index <= length) {
20073 const event = events[index]
20074
20075 if (
20076 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
20077 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered ||
20078 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuote
20079 ) {
20080 if (event[0] === 'enter') {
20081 containerBalance++
20082 } else {
20083 containerBalance--
20084 }
20085
20086 atMarker = undefined
20087 } else if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank) {
20088 if (event[0] === 'enter') {
20089 if (
20090 listItem &&
20091 !atMarker &&
20092 !containerBalance &&
20093 !firstBlankLineIndex
20094 ) {
20095 firstBlankLineIndex = index
20096 }
20097
20098 atMarker = undefined
20099 }
20100 } else if (
20101 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
20102 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemValue ||
20103 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemMarker ||
20104 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix ||
20105 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefixWhitespace
20106 ) {
20107 // Empty.
20108 } else {
20109 atMarker = undefined
20110 }
20111
20112 if (
20113 (!containerBalance &&
20114 event[0] === 'enter' &&
20115 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) ||
20116 (containerBalance === -1 &&
20117 event[0] === 'exit' &&
20118 (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listUnordered ||
20119 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listOrdered))
20120 ) {
20121 if (listItem) {
20122 let tailIndex = index
20123 lineIndex = undefined
20124
20125 while (tailIndex--) {
20126 const tailEvent = events[tailIndex]
20127
20128 if (
20129 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding ||
20130 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
20131 ) {
20132 if (tailEvent[0] === 'exit') continue
20133
20134 if (lineIndex) {
20135 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank
20136 listSpread = true
20137 }
20138
20139 tailEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding
20140 lineIndex = tailIndex
20141 } else if (
20142 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix ||
20143 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefix ||
20144 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuotePrefixWhitespace ||
20145 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.blockQuoteMarker ||
20146 tailEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemIndent
20147 ) {
20148 // Empty
20149 } else {
20150 break
20151 }
20152 }
20153
20154 if (
20155 firstBlankLineIndex &&
20156 (!lineIndex || firstBlankLineIndex < lineIndex)
20157 ) {
20158 listItem._spread = true
20159 }
20160
20161 // Fix position.
20162 listItem.end = Object.assign(
20163 {},
20164 lineIndex ? events[lineIndex][1].start : event[1].end
20165 )
20166
20167 events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])
20168 index++
20169 length++
20170 }
20171
20172 // Create a new list item.
20173 if (event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.listItemPrefix) {
20174 listItem = {
20175 type: 'listItem',
20176 _spread: false,
20177 start: Object.assign({}, event[1].start),
20178 // @ts-expect-error: we’ll add `end` in a second.
20179 end: undefined
20180 }
20181 // @ts-expect-error: `listItem` is most definitely defined, TS...
20182 events.splice(index, 0, ['enter', listItem, event[2]])
20183 index++
20184 length++
20185 firstBlankLineIndex = undefined
20186 atMarker = true
20187 }
20188 }
20189 }
20190
20191 events[start][1]._spread = listSpread
20192 return length
20193 }
20194
20195 /**
20196 * Set data.
20197 *
20198 * @template {keyof CompileData} Key
20199 * Field type.
20200 * @param {Key} key
20201 * Key of field.
20202 * @param {CompileData[Key]} [value]
20203 * New value.
20204 * @returns {void}
20205 * Nothing.
20206 */
20207 function setData(key, value) {
20208 data[key] = value
20209 }
20210
20211 /**
20212 * Get data.
20213 *
20214 * @template {keyof CompileData} Key
20215 * Field type.
20216 * @param {Key} key
20217 * Key of field.
20218 * @returns {CompileData[Key]}
20219 * Value.
20220 */
20221 function getData(key) {
20222 return data[key]
20223 }
20224
20225 /**
20226 * Create an opener handle.
20227 *
20228 * @param {(token: Token) => Node} create
20229 * Create a node.
20230 * @param {Handle} [and]
20231 * Optional function to also run.
20232 * @returns {Handle}
20233 * Handle.
20234 */
20235 function opener(create, and) {
20236 return open
20237
20238 /**
20239 * @this {CompileContext}
20240 * @param {Token} token
20241 * @returns {void}
20242 */
20243 function open(token) {
20244 enter.call(this, create(token), token)
20245 if (and) and.call(this, token)
20246 }
20247 }
20248
20249 /**
20250 * @this {CompileContext}
20251 * @returns {void}
20252 */
20253 function buffer() {
20254 this.stack.push({type: 'fragment', children: []})
20255 }
20256
20257 /**
20258 * @template {Node} Kind
20259 * Node type.
20260 * @this {CompileContext}
20261 * Context.
20262 * @param {Kind} node
20263 * Node to enter.
20264 * @param {Token} token
20265 * Corresponding token.
20266 * @param {OnEnterError | undefined} [errorHandler]
20267 * Handle the case where this token is open, but it is closed by something else.
20268 * @returns {Kind}
20269 * The given node.
20270 */
20271 function enter(node, token, errorHandler) {
20272 const parent = this.stack[this.stack.length - 1]
20273 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(parent, 'expected `parent`')
20274 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in parent, 'expected `parent`')
20275 // @ts-expect-error: Assume `Node` can exist as a child of `parent`.
20276 parent.children.push(node)
20277 this.stack.push(node)
20278 this.tokenStack.push([token, errorHandler])
20279 // @ts-expect-error: `end` will be patched later.
20280 node.position = {start: point(token.start)}
20281 return node
20282 }
20283
20284 /**
20285 * Create a closer handle.
20286 *
20287 * @param {Handle} [and]
20288 * Optional function to also run.
20289 * @returns {Handle}
20290 * Handle.
20291 */
20292 function closer(and) {
20293 return close
20294
20295 /**
20296 * @this {CompileContext}
20297 * @param {Token} token
20298 * @returns {void}
20299 */
20300 function close(token) {
20301 if (and) and.call(this, token)
20302 exit.call(this, token)
20303 }
20304 }
20305
20306 /**
20307 * @this {CompileContext}
20308 * Context.
20309 * @param {Token} token
20310 * Corresponding token.
20311 * @param {OnExitError | undefined} [onExitError]
20312 * Handle the case where another token is open.
20313 * @returns {Node}
20314 * The closed node.
20315 */
20316 function exit(token, onExitError) {
20317 const node = this.stack.pop()
20318 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected `node`')
20319 const open = this.tokenStack.pop()
20320
20321 if (!open) {
20322 throw new Error(
20323 'Cannot close `' +
20324 token.type +
20325 '` (' +
20326 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: token.start, end: token.end}) +
20327 '): it’s not open'
20328 )
20329 } else if (open[0].type !== token.type) {
20330 if (onExitError) {
20331 onExitError.call(this, token, open[0])
20332 } else {
20333 const handler = open[1] || defaultOnError
20334 handler.call(this, token, open[0])
20335 }
20336 }
20337
20338 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type !== 'fragment', 'unexpected fragment `exit`ed')
20339 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.position, 'expected `position` to be defined')
20340 node.position.end = point(token.end)
20341 return node
20342 }
20343
20344 /**
20345 * @this {CompileContext}
20346 * @returns {string}
20347 */
20348 function resume() {
20349 return (0,mdast_util_to_string__WEBPACK_IMPORTED_MODULE_6__.toString)(this.stack.pop())
20350 }
20351
20352 //
20353 // Handlers.
20354 //
20355
20356 /**
20357 * @this {CompileContext}
20358 * @type {Handle}
20359 */
20360 function onenterlistordered() {
20361 setData('expectingFirstListItemValue', true)
20362 }
20363
20364 /**
20365 * @this {CompileContext}
20366 * @type {Handle}
20367 */
20368 function onenterlistitemvalue(token) {
20369 if (getData('expectingFirstListItemValue')) {
20370 const ancestor = this.stack[this.stack.length - 2]
20371 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected nodes on stack')
20372 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor.type === 'list', 'expected list on stack')
20373 ancestor.start = Number.parseInt(
20374 this.sliceSerialize(token),
20375 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20376 )
20377 setData('expectingFirstListItemValue')
20378 }
20379 }
20380
20381 /**
20382 * @this {CompileContext}
20383 * @type {Handle}
20384 */
20385 function onexitcodefencedfenceinfo() {
20386 const data = this.resume()
20387 const node = this.stack[this.stack.length - 1]
20388 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20389 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20390 node.lang = data
20391 }
20392
20393 /**
20394 * @this {CompileContext}
20395 * @type {Handle}
20396 */
20397 function onexitcodefencedfencemeta() {
20398 const data = this.resume()
20399 const node = this.stack[this.stack.length - 1]
20400 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20401 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20402 node.meta = data
20403 }
20404
20405 /**
20406 * @this {CompileContext}
20407 * @type {Handle}
20408 */
20409 function onexitcodefencedfence() {
20410 // Exit if this is the closing fence.
20411 if (getData('flowCodeInside')) return
20412 this.buffer()
20413 setData('flowCodeInside', true)
20414 }
20415
20416 /**
20417 * @this {CompileContext}
20418 * @type {Handle}
20419 */
20420 function onexitcodefenced() {
20421 const data = this.resume()
20422 const node = this.stack[this.stack.length - 1]
20423 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20424 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20425
20426 node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
20427 setData('flowCodeInside')
20428 }
20429
20430 /**
20431 * @this {CompileContext}
20432 * @type {Handle}
20433 */
20434 function onexitcodeindented() {
20435 const data = this.resume()
20436 const node = this.stack[this.stack.length - 1]
20437 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20438 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'code', 'expected code on stack')
20439
20440 node.value = data.replace(/(\r?\n|\r)$/g, '')
20441 }
20442
20443 /**
20444 * @this {CompileContext}
20445 * @type {Handle}
20446 */
20447 function onexitdefinitionlabelstring(token) {
20448 const label = this.resume()
20449 const node = this.stack[this.stack.length - 1]
20450 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20451 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20452
20453 node.label = label
20454 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20455 this.sliceSerialize(token)
20456 ).toLowerCase()
20457 }
20458
20459 /**
20460 * @this {CompileContext}
20461 * @type {Handle}
20462 */
20463 function onexitdefinitiontitlestring() {
20464 const data = this.resume()
20465 const node = this.stack[this.stack.length - 1]
20466 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20467 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20468
20469 node.title = data
20470 }
20471
20472 /**
20473 * @this {CompileContext}
20474 * @type {Handle}
20475 */
20476 function onexitdefinitiondestinationstring() {
20477 const data = this.resume()
20478 const node = this.stack[this.stack.length - 1]
20479 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20480 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'definition', 'expected definition on stack')
20481
20482 node.url = data
20483 }
20484
20485 /**
20486 * @this {CompileContext}
20487 * @type {Handle}
20488 */
20489 function onexitatxheadingsequence(token) {
20490 const node = this.stack[this.stack.length - 1]
20491 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20492 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20493
20494 if (!node.depth) {
20495 const depth = this.sliceSerialize(token).length
20496
20497 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20498 depth === 1 ||
20499 depth === 2 ||
20500 depth === 3 ||
20501 depth === 4 ||
20502 depth === 5 ||
20503 depth === 6,
20504 'expected `depth` between `1` and `6`'
20505 )
20506
20507 node.depth = depth
20508 }
20509 }
20510
20511 /**
20512 * @this {CompileContext}
20513 * @type {Handle}
20514 */
20515 function onexitsetextheadingtext() {
20516 setData('setextHeadingSlurpLineEnding', true)
20517 }
20518
20519 /**
20520 * @this {CompileContext}
20521 * @type {Handle}
20522 */
20523 function onexitsetextheadinglinesequence(token) {
20524 const node = this.stack[this.stack.length - 1]
20525 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20526 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'heading', 'expected heading on stack')
20527
20528 node.depth =
20529 this.sliceSerialize(token).charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_9__.codes.equalsTo ? 1 : 2
20530 }
20531
20532 /**
20533 * @this {CompileContext}
20534 * @type {Handle}
20535 */
20536 function onexitsetextheading() {
20537 setData('setextHeadingSlurpLineEnding')
20538 }
20539
20540 /**
20541 * @this {CompileContext}
20542 * @type {Handle}
20543 */
20544
20545 function onenterdata(token) {
20546 const node = this.stack[this.stack.length - 1]
20547 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20548 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in node, 'expected parent on stack')
20549
20550 let tail = node.children[node.children.length - 1]
20551
20552 if (!tail || tail.type !== 'text') {
20553 // Add a new text node.
20554 tail = text()
20555 // @ts-expect-error: we’ll add `end` later.
20556 tail.position = {start: point(token.start)}
20557 // @ts-expect-error: Assume `parent` accepts `text`.
20558 node.children.push(tail)
20559 }
20560
20561 this.stack.push(tail)
20562 }
20563
20564 /**
20565 * @this {CompileContext}
20566 * @type {Handle}
20567 */
20568
20569 function onexitdata(token) {
20570 const tail = this.stack.pop()
20571 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected a `node` to be on the stack')
20572 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected a `literal` to be on the stack')
20573 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node` to have an open position')
20574 tail.value += this.sliceSerialize(token)
20575 tail.position.end = point(token.end)
20576 }
20577
20578 /**
20579 * @this {CompileContext}
20580 * @type {Handle}
20581 */
20582
20583 function onexitlineending(token) {
20584 const context = this.stack[this.stack.length - 1]
20585 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(context, 'expected `node`')
20586
20587 // If we’re at a hard break, include the line ending in there.
20588 if (getData('atHardBreak')) {
20589 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('children' in context, 'expected `parent`')
20590 const tail = context.children[context.children.length - 1]
20591 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected tail to have a starting position')
20592 tail.position.end = point(token.end)
20593 setData('atHardBreak')
20594 return
20595 }
20596
20597 if (
20598 !getData('setextHeadingSlurpLineEnding') &&
20599 config.canContainEols.includes(context.type)
20600 ) {
20601 onenterdata.call(this, token)
20602 onexitdata.call(this, token)
20603 }
20604 }
20605
20606 /**
20607 * @this {CompileContext}
20608 * @type {Handle}
20609 */
20610
20611 function onexithardbreak() {
20612 setData('atHardBreak', true)
20613 }
20614
20615 /**
20616 * @this {CompileContext}
20617 * @type {Handle}
20618 */
20619
20620 function onexithtmlflow() {
20621 const data = this.resume()
20622 const node = this.stack[this.stack.length - 1]
20623 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20624 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20625
20626 node.value = data
20627 }
20628
20629 /**
20630 * @this {CompileContext}
20631 * @type {Handle}
20632 */
20633
20634 function onexithtmltext() {
20635 const data = this.resume()
20636 const node = this.stack[this.stack.length - 1]
20637 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20638 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'html', 'expected html on stack')
20639
20640 node.value = data
20641 }
20642
20643 /**
20644 * @this {CompileContext}
20645 * @type {Handle}
20646 */
20647
20648 function onexitcodetext() {
20649 const data = this.resume()
20650 const node = this.stack[this.stack.length - 1]
20651 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20652 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'inlineCode', 'expected inline code on stack')
20653
20654 node.value = data
20655 }
20656
20657 /**
20658 * @this {CompileContext}
20659 * @type {Handle}
20660 */
20661
20662 function onexitlink() {
20663 const node = this.stack[this.stack.length - 1]
20664 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20665 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20666
20667 // Note: there are also `identifier` and `label` fields on this link node!
20668 // These are used / cleaned here.
20669
20670 // To do: clean.
20671 if (getData('inReference')) {
20672 /** @type {ReferenceType} */
20673 const referenceType = getData('referenceType') || 'shortcut'
20674
20675 node.type += 'Reference'
20676 // @ts-expect-error: mutate.
20677 node.referenceType = referenceType
20678 // @ts-expect-error: mutate.
20679 delete node.url
20680 delete node.title
20681 } else {
20682 // @ts-expect-error: mutate.
20683 delete node.identifier
20684 // @ts-expect-error: mutate.
20685 delete node.label
20686 }
20687
20688 setData('referenceType')
20689 }
20690
20691 /**
20692 * @this {CompileContext}
20693 * @type {Handle}
20694 */
20695
20696 function onexitimage() {
20697 const node = this.stack[this.stack.length - 1]
20698 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20699 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'image', 'expected image on stack')
20700
20701 // Note: there are also `identifier` and `label` fields on this link node!
20702 // These are used / cleaned here.
20703
20704 // To do: clean.
20705 if (getData('inReference')) {
20706 /** @type {ReferenceType} */
20707 const referenceType = getData('referenceType') || 'shortcut'
20708
20709 node.type += 'Reference'
20710 // @ts-expect-error: mutate.
20711 node.referenceType = referenceType
20712 // @ts-expect-error: mutate.
20713 delete node.url
20714 delete node.title
20715 } else {
20716 // @ts-expect-error: mutate.
20717 delete node.identifier
20718 // @ts-expect-error: mutate.
20719 delete node.label
20720 }
20721
20722 setData('referenceType')
20723 }
20724
20725 /**
20726 * @this {CompileContext}
20727 * @type {Handle}
20728 */
20729
20730 function onexitlabeltext(token) {
20731 const string = this.sliceSerialize(token)
20732 const ancestor = this.stack[this.stack.length - 2]
20733 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(ancestor, 'expected ancestor on stack')
20734 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20735 ancestor.type === 'image' || ancestor.type === 'link',
20736 'expected image or link on stack'
20737 )
20738
20739 // @ts-expect-error: stash this on the node, as it might become a reference
20740 // later.
20741 ancestor.label = (0,micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_10__.decodeString)(string)
20742 // @ts-expect-error: same as above.
20743 ancestor.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(string).toLowerCase()
20744 }
20745
20746 /**
20747 * @this {CompileContext}
20748 * @type {Handle}
20749 */
20750
20751 function onexitlabel() {
20752 const fragment = this.stack[this.stack.length - 1]
20753 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment, 'expected node on stack')
20754 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(fragment.type === 'fragment', 'expected fragment on stack')
20755 const value = this.resume()
20756 const node = this.stack[this.stack.length - 1]
20757 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20758 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20759 node.type === 'image' || node.type === 'link',
20760 'expected image or link on stack'
20761 )
20762
20763 // Assume a reference.
20764 setData('inReference', true)
20765
20766 if (node.type === 'link') {
20767 /** @type {Array<StaticPhrasingContent>} */
20768 // @ts-expect-error: Assume static phrasing content.
20769 const children = fragment.children
20770
20771 node.children = children
20772 } else {
20773 node.alt = value
20774 }
20775 }
20776
20777 /**
20778 * @this {CompileContext}
20779 * @type {Handle}
20780 */
20781
20782 function onexitresourcedestinationstring() {
20783 const data = this.resume()
20784 const node = this.stack[this.stack.length - 1]
20785 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20786 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20787 node.type === 'image' || node.type === 'link',
20788 'expected image or link on stack'
20789 )
20790 node.url = data
20791 }
20792
20793 /**
20794 * @this {CompileContext}
20795 * @type {Handle}
20796 */
20797
20798 function onexitresourcetitlestring() {
20799 const data = this.resume()
20800 const node = this.stack[this.stack.length - 1]
20801 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20802 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20803 node.type === 'image' || node.type === 'link',
20804 'expected image or link on stack'
20805 )
20806 node.title = data
20807 }
20808
20809 /**
20810 * @this {CompileContext}
20811 * @type {Handle}
20812 */
20813
20814 function onexitresource() {
20815 setData('inReference')
20816 }
20817
20818 /**
20819 * @this {CompileContext}
20820 * @type {Handle}
20821 */
20822
20823 function onenterreference() {
20824 setData('referenceType', 'collapsed')
20825 }
20826
20827 /**
20828 * @this {CompileContext}
20829 * @type {Handle}
20830 */
20831
20832 function onexitreferencestring(token) {
20833 const label = this.resume()
20834 const node = this.stack[this.stack.length - 1]
20835 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20836 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20837 node.type === 'image' || node.type === 'link',
20838 'expected image reference or link reference on stack'
20839 )
20840
20841 // @ts-expect-error: stash this on the node, as it might become a reference
20842 // later.
20843 node.label = label
20844 // @ts-expect-error: same as above.
20845 node.identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_8__.normalizeIdentifier)(
20846 this.sliceSerialize(token)
20847 ).toLowerCase()
20848 setData('referenceType', 'full')
20849 }
20850
20851 /**
20852 * @this {CompileContext}
20853 * @type {Handle}
20854 */
20855
20856 function onexitcharacterreferencemarker(token) {
20857 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
20858 token.type === 'characterReferenceMarkerNumeric' ||
20859 token.type === 'characterReferenceMarkerHexadecimal'
20860 )
20861 setData('characterReferenceType', token.type)
20862 }
20863
20864 /**
20865 * @this {CompileContext}
20866 * @type {Handle}
20867 */
20868 function onexitcharacterreferencevalue(token) {
20869 const data = this.sliceSerialize(token)
20870 const type = getData('characterReferenceType')
20871 /** @type {string} */
20872 let value
20873
20874 if (type) {
20875 value = (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_11__.decodeNumericCharacterReference)(
20876 data,
20877 type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.characterReferenceMarkerNumeric
20878 ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseDecimal
20879 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_7__.constants.numericBaseHexadecimal
20880 )
20881 setData('characterReferenceType')
20882 } else {
20883 const result = (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_12__.decodeNamedCharacterReference)(data)
20884 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(result !== false, 'expected reference to decode')
20885 value = result
20886 }
20887
20888 const tail = this.stack.pop()
20889 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail, 'expected `node`')
20890 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(tail.position, 'expected `node.position`')
20891 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)('value' in tail, 'expected `node.value`')
20892 tail.value += value
20893 tail.position.end = point(token.end)
20894 }
20895
20896 /**
20897 * @this {CompileContext}
20898 * @type {Handle}
20899 */
20900 function onexitautolinkprotocol(token) {
20901 onexitdata.call(this, token)
20902 const node = this.stack[this.stack.length - 1]
20903 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20904 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20905
20906 node.url = this.sliceSerialize(token)
20907 }
20908
20909 /**
20910 * @this {CompileContext}
20911 * @type {Handle}
20912 */
20913 function onexitautolinkemail(token) {
20914 onexitdata.call(this, token)
20915 const node = this.stack[this.stack.length - 1]
20916 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node, 'expected node on stack')
20917 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(node.type === 'link', 'expected link on stack')
20918
20919 node.url = 'mailto:' + this.sliceSerialize(token)
20920 }
20921
20922 //
20923 // Creaters.
20924 //
20925
20926 /** @returns {Blockquote} */
20927 function blockQuote() {
20928 return {type: 'blockquote', children: []}
20929 }
20930
20931 /** @returns {Code} */
20932 function codeFlow() {
20933 return {type: 'code', lang: null, meta: null, value: ''}
20934 }
20935
20936 /** @returns {InlineCode} */
20937 function codeText() {
20938 return {type: 'inlineCode', value: ''}
20939 }
20940
20941 /** @returns {Definition} */
20942 function definition() {
20943 return {
20944 type: 'definition',
20945 identifier: '',
20946 label: null,
20947 title: null,
20948 url: ''
20949 }
20950 }
20951
20952 /** @returns {Emphasis} */
20953 function emphasis() {
20954 return {type: 'emphasis', children: []}
20955 }
20956
20957 /** @returns {Heading} */
20958 function heading() {
20959 // @ts-expect-error `depth` will be set later.
20960 return {type: 'heading', depth: undefined, children: []}
20961 }
20962
20963 /** @returns {Break} */
20964 function hardBreak() {
20965 return {type: 'break'}
20966 }
20967
20968 /** @returns {HTML} */
20969 function html() {
20970 return {type: 'html', value: ''}
20971 }
20972
20973 /** @returns {Image} */
20974 function image() {
20975 return {type: 'image', title: null, url: '', alt: null}
20976 }
20977
20978 /** @returns {Link} */
20979 function link() {
20980 return {type: 'link', title: null, url: '', children: []}
20981 }
20982
20983 /**
20984 * @param {Token} token
20985 * @returns {List}
20986 */
20987 function list(token) {
20988 return {
20989 type: 'list',
20990 ordered: token.type === 'listOrdered',
20991 start: null,
20992 spread: token._spread,
20993 children: []
20994 }
20995 }
20996
20997 /**
20998 * @param {Token} token
20999 * @returns {ListItem}
21000 */
21001 function listItem(token) {
21002 return {
21003 type: 'listItem',
21004 spread: token._spread,
21005 checked: null,
21006 children: []
21007 }
21008 }
21009
21010 /** @returns {Paragraph} */
21011 function paragraph() {
21012 return {type: 'paragraph', children: []}
21013 }
21014
21015 /** @returns {Strong} */
21016 function strong() {
21017 return {type: 'strong', children: []}
21018 }
21019
21020 /** @returns {Text} */
21021 function text() {
21022 return {type: 'text', value: ''}
21023 }
21024
21025 /** @returns {ThematicBreak} */
21026 function thematicBreak() {
21027 return {type: 'thematicBreak'}
21028 }
21029 }
21030
21031 /**
21032 * Copy a point-like value.
21033 *
21034 * @param {Point} d
21035 * Point-like value.
21036 * @returns {Point}
21037 * unist point.
21038 */
21039 function point(d) {
21040 return {line: d.line, column: d.column, offset: d.offset}
21041 }
21042
21043 /**
21044 * @param {Config} combined
21045 * @param {Array<Extension | Array<Extension>>} extensions
21046 * @returns {void}
21047 */
21048 function configure(combined, extensions) {
21049 let index = -1
21050
21051 while (++index < extensions.length) {
21052 const value = extensions[index]
21053
21054 if (Array.isArray(value)) {
21055 configure(combined, value)
21056 } else {
21057 extension(combined, value)
21058 }
21059 }
21060 }
21061
21062 /**
21063 * @param {Config} combined
21064 * @param {Extension} extension
21065 * @returns {void}
21066 */
21067 function extension(combined, extension) {
21068 /** @type {keyof Extension} */
21069 let key
21070
21071 for (key in extension) {
21072 if (own.call(extension, key)) {
21073 if (key === 'canContainEols') {
21074 const right = extension[key]
21075 if (right) {
21076 combined[key].push(...right)
21077 }
21078 } else if (key === 'transforms') {
21079 const right = extension[key]
21080 if (right) {
21081 combined[key].push(...right)
21082 }
21083 } else if (key === 'enter' || key === 'exit') {
21084 const right = extension[key]
21085 if (right) {
21086 Object.assign(combined[key], right)
21087 }
21088 }
21089 }
21090 }
21091 }
21092
21093 /** @type {OnEnterError} */
21094 function defaultOnError(left, right) {
21095 if (left) {
21096 throw new Error(
21097 'Cannot close `' +
21098 left.type +
21099 '` (' +
21100 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: left.start, end: left.end}) +
21101 '): a different token (`' +
21102 right.type +
21103 '`, ' +
21104 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
21105 ') is open'
21106 )
21107 } else {
21108 throw new Error(
21109 'Cannot close document, a token (`' +
21110 right.type +
21111 '`, ' +
21112 (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_5__.stringifyPosition)({start: right.start, end: right.end}) +
21113 ') is still open'
21114 )
21115 }
21116 }
21117
21118
21119 /***/ }),
21120
21121 /***/ "../node_modules/mdast-util-to-hast/lib/footer.js":
21122 /*!********************************************************!*\
21123 !*** ../node_modules/mdast-util-to-hast/lib/footer.js ***!
21124 \********************************************************/
21125 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21126
21127 "use strict";
21128 __webpack_require__.r(__webpack_exports__);
21129 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21130 /* harmony export */ footer: () => (/* binding */ footer)
21131 /* harmony export */ });
21132 /* 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");
21133 /**
21134 * @typedef {import('hast').Element} Element
21135 * @typedef {import('hast').ElementContent} ElementContent
21136 *
21137 * @typedef {import('./state.js').State} State
21138 */
21139
21140
21141
21142 /**
21143 * Generate a hast footer for called footnote definitions.
21144 *
21145 * @param {State} state
21146 * Info passed around.
21147 * @returns {Element | undefined}
21148 * `section` element or `undefined`.
21149 */
21150 function footer(state) {
21151 /** @type {Array<ElementContent>} */
21152 const listItems = []
21153 let index = -1
21154
21155 while (++index < state.footnoteOrder.length) {
21156 const def = state.footnoteById[state.footnoteOrder[index]]
21157
21158 if (!def) {
21159 continue
21160 }
21161
21162 const content = state.all(def)
21163 const id = String(def.identifier).toUpperCase()
21164 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
21165 let referenceIndex = 0
21166 /** @type {Array<ElementContent>} */
21167 const backReferences = []
21168
21169 while (++referenceIndex <= state.footnoteCounts[id]) {
21170 /** @type {Element} */
21171 const backReference = {
21172 type: 'element',
21173 tagName: 'a',
21174 properties: {
21175 href:
21176 '#' +
21177 state.clobberPrefix +
21178 'fnref-' +
21179 safeId +
21180 (referenceIndex > 1 ? '-' + referenceIndex : ''),
21181 dataFootnoteBackref: true,
21182 className: ['data-footnote-backref'],
21183 ariaLabel: state.footnoteBackLabel
21184 },
21185 children: [{type: 'text', value: '↩'}]
21186 }
21187
21188 if (referenceIndex > 1) {
21189 backReference.children.push({
21190 type: 'element',
21191 tagName: 'sup',
21192 children: [{type: 'text', value: String(referenceIndex)}]
21193 })
21194 }
21195
21196 if (backReferences.length > 0) {
21197 backReferences.push({type: 'text', value: ' '})
21198 }
21199
21200 backReferences.push(backReference)
21201 }
21202
21203 const tail = content[content.length - 1]
21204
21205 if (tail && tail.type === 'element' && tail.tagName === 'p') {
21206 const tailTail = tail.children[tail.children.length - 1]
21207 if (tailTail && tailTail.type === 'text') {
21208 tailTail.value += ' '
21209 } else {
21210 tail.children.push({type: 'text', value: ' '})
21211 }
21212
21213 tail.children.push(...backReferences)
21214 } else {
21215 content.push(...backReferences)
21216 }
21217
21218 /** @type {Element} */
21219 const listItem = {
21220 type: 'element',
21221 tagName: 'li',
21222 properties: {id: state.clobberPrefix + 'fn-' + safeId},
21223 children: state.wrap(content, true)
21224 }
21225
21226 state.patch(def, listItem)
21227
21228 listItems.push(listItem)
21229 }
21230
21231 if (listItems.length === 0) {
21232 return
21233 }
21234
21235 return {
21236 type: 'element',
21237 tagName: 'section',
21238 properties: {dataFootnotes: true, className: ['footnotes']},
21239 children: [
21240 {
21241 type: 'element',
21242 tagName: state.footnoteLabelTagName,
21243 properties: {
21244 // To do: use structured clone.
21245 ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),
21246 id: 'footnote-label'
21247 },
21248 children: [{type: 'text', value: state.footnoteLabel}]
21249 },
21250 {type: 'text', value: '\n'},
21251 {
21252 type: 'element',
21253 tagName: 'ol',
21254 properties: {},
21255 children: state.wrap(listItems, true)
21256 },
21257 {type: 'text', value: '\n'}
21258 ]
21259 }
21260 }
21261
21262
21263 /***/ }),
21264
21265 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js":
21266 /*!*********************************************************************!*\
21267 !*** ../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js ***!
21268 \*********************************************************************/
21269 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21270
21271 "use strict";
21272 __webpack_require__.r(__webpack_exports__);
21273 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21274 /* harmony export */ blockquote: () => (/* binding */ blockquote)
21275 /* harmony export */ });
21276 /**
21277 * @typedef {import('hast').Element} Element
21278 * @typedef {import('mdast').Blockquote} Blockquote
21279 * @typedef {import('../state.js').State} State
21280 */
21281
21282 /**
21283 * Turn an mdast `blockquote` node into hast.
21284 *
21285 * @param {State} state
21286 * Info passed around.
21287 * @param {Blockquote} node
21288 * mdast node.
21289 * @returns {Element}
21290 * hast node.
21291 */
21292 function blockquote(state, node) {
21293 /** @type {Element} */
21294 const result = {
21295 type: 'element',
21296 tagName: 'blockquote',
21297 properties: {},
21298 children: state.wrap(state.all(node), true)
21299 }
21300 state.patch(node, result)
21301 return state.applyData(node, result)
21302 }
21303
21304
21305 /***/ }),
21306
21307 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/break.js":
21308 /*!****************************************************************!*\
21309 !*** ../node_modules/mdast-util-to-hast/lib/handlers/break.js ***!
21310 \****************************************************************/
21311 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21312
21313 "use strict";
21314 __webpack_require__.r(__webpack_exports__);
21315 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21316 /* harmony export */ hardBreak: () => (/* binding */ hardBreak)
21317 /* harmony export */ });
21318 /**
21319 * @typedef {import('hast').Element} Element
21320 * @typedef {import('hast').Text} Text
21321 * @typedef {import('mdast').Break} Break
21322 * @typedef {import('../state.js').State} State
21323 */
21324
21325 /**
21326 * Turn an mdast `break` node into hast.
21327 *
21328 * @param {State} state
21329 * Info passed around.
21330 * @param {Break} node
21331 * mdast node.
21332 * @returns {Array<Element | Text>}
21333 * hast element content.
21334 */
21335 function hardBreak(state, node) {
21336 /** @type {Element} */
21337 const result = {type: 'element', tagName: 'br', properties: {}, children: []}
21338 state.patch(node, result)
21339 return [state.applyData(node, result), {type: 'text', value: '\n'}]
21340 }
21341
21342
21343 /***/ }),
21344
21345 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/code.js":
21346 /*!***************************************************************!*\
21347 !*** ../node_modules/mdast-util-to-hast/lib/handlers/code.js ***!
21348 \***************************************************************/
21349 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21350
21351 "use strict";
21352 __webpack_require__.r(__webpack_exports__);
21353 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21354 /* harmony export */ code: () => (/* binding */ code)
21355 /* harmony export */ });
21356 /**
21357 * @typedef {import('hast').Element} Element
21358 * @typedef {import('hast').Properties} Properties
21359 * @typedef {import('mdast').Code} Code
21360 * @typedef {import('../state.js').State} State
21361
21362 */
21363
21364 /**
21365 * Turn an mdast `code` node into hast.
21366 *
21367 * @param {State} state
21368 * Info passed around.
21369 * @param {Code} node
21370 * mdast node.
21371 * @returns {Element}
21372 * hast node.
21373 */
21374 function code(state, node) {
21375 const value = node.value ? node.value + '\n' : ''
21376 // To do: next major, use `node.lang` w/o regex, the splitting’s been going
21377 // on for years in remark now.
21378 const lang = node.lang ? node.lang.match(/^[^ \t]+(?=[ \t]|$)/) : null
21379 /** @type {Properties} */
21380 const properties = {}
21381
21382 if (lang) {
21383 properties.className = ['language-' + lang]
21384 }
21385
21386 // Create `<code>`.
21387 /** @type {Element} */
21388 let result = {
21389 type: 'element',
21390 tagName: 'code',
21391 properties,
21392 children: [{type: 'text', value}]
21393 }
21394
21395 if (node.meta) {
21396 result.data = {meta: node.meta}
21397 }
21398
21399 state.patch(node, result)
21400 result = state.applyData(node, result)
21401
21402 // Create `<pre>`.
21403 result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}
21404 state.patch(node, result)
21405 return result
21406 }
21407
21408
21409 /***/ }),
21410
21411 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js":
21412 /*!*****************************************************************!*\
21413 !*** ../node_modules/mdast-util-to-hast/lib/handlers/delete.js ***!
21414 \*****************************************************************/
21415 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21416
21417 "use strict";
21418 __webpack_require__.r(__webpack_exports__);
21419 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21420 /* harmony export */ strikethrough: () => (/* binding */ strikethrough)
21421 /* harmony export */ });
21422 /**
21423 * @typedef {import('hast').Element} Element
21424 * @typedef {import('mdast').Delete} Delete
21425 * @typedef {import('../state.js').State} State
21426
21427 */
21428
21429 /**
21430 * Turn an mdast `delete` node into hast.
21431 *
21432 * @param {State} state
21433 * Info passed around.
21434 * @param {Delete} node
21435 * mdast node.
21436 * @returns {Element}
21437 * hast node.
21438 */
21439 function strikethrough(state, node) {
21440 /** @type {Element} */
21441 const result = {
21442 type: 'element',
21443 tagName: 'del',
21444 properties: {},
21445 children: state.all(node)
21446 }
21447 state.patch(node, result)
21448 return state.applyData(node, result)
21449 }
21450
21451
21452 /***/ }),
21453
21454 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js":
21455 /*!*******************************************************************!*\
21456 !*** ../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js ***!
21457 \*******************************************************************/
21458 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21459
21460 "use strict";
21461 __webpack_require__.r(__webpack_exports__);
21462 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21463 /* harmony export */ emphasis: () => (/* binding */ emphasis)
21464 /* harmony export */ });
21465 /**
21466 * @typedef {import('hast').Element} Element
21467 * @typedef {import('mdast').Emphasis} Emphasis
21468 * @typedef {import('../state.js').State} State
21469 */
21470
21471 /**
21472 * Turn an mdast `emphasis` node into hast.
21473 *
21474 * @param {State} state
21475 * Info passed around.
21476 * @param {Emphasis} node
21477 * mdast node.
21478 * @returns {Element}
21479 * hast node.
21480 */
21481 function emphasis(state, node) {
21482 /** @type {Element} */
21483 const result = {
21484 type: 'element',
21485 tagName: 'em',
21486 properties: {},
21487 children: state.all(node)
21488 }
21489 state.patch(node, result)
21490 return state.applyData(node, result)
21491 }
21492
21493
21494 /***/ }),
21495
21496 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js":
21497 /*!*****************************************************************************!*\
21498 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js ***!
21499 \*****************************************************************************/
21500 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21501
21502 "use strict";
21503 __webpack_require__.r(__webpack_exports__);
21504 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21505 /* harmony export */ footnoteReference: () => (/* binding */ footnoteReference)
21506 /* harmony export */ });
21507 /* 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");
21508 /**
21509 * @typedef {import('mdast').FootnoteReference} FootnoteReference
21510 * @typedef {import('hast').Element} Element
21511 * @typedef {import('../state.js').State} State
21512 */
21513
21514
21515
21516 /**
21517 * Turn an mdast `footnoteReference` node into hast.
21518 *
21519 * @param {State} state
21520 * Info passed around.
21521 * @param {FootnoteReference} node
21522 * mdast node.
21523 * @returns {Element}
21524 * hast node.
21525 */
21526 function footnoteReference(state, node) {
21527 const id = String(node.identifier).toUpperCase()
21528 const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())
21529 const index = state.footnoteOrder.indexOf(id)
21530 /** @type {number} */
21531 let counter
21532
21533 if (index === -1) {
21534 state.footnoteOrder.push(id)
21535 state.footnoteCounts[id] = 1
21536 counter = state.footnoteOrder.length
21537 } else {
21538 state.footnoteCounts[id]++
21539 counter = index + 1
21540 }
21541
21542 const reuseCounter = state.footnoteCounts[id]
21543
21544 /** @type {Element} */
21545 const link = {
21546 type: 'element',
21547 tagName: 'a',
21548 properties: {
21549 href: '#' + state.clobberPrefix + 'fn-' + safeId,
21550 id:
21551 state.clobberPrefix +
21552 'fnref-' +
21553 safeId +
21554 (reuseCounter > 1 ? '-' + reuseCounter : ''),
21555 dataFootnoteRef: true,
21556 ariaDescribedBy: ['footnote-label']
21557 },
21558 children: [{type: 'text', value: String(counter)}]
21559 }
21560 state.patch(node, link)
21561
21562 /** @type {Element} */
21563 const sup = {
21564 type: 'element',
21565 tagName: 'sup',
21566 properties: {},
21567 children: [link]
21568 }
21569 state.patch(node, sup)
21570 return state.applyData(node, sup)
21571 }
21572
21573
21574 /***/ }),
21575
21576 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js":
21577 /*!*******************************************************************!*\
21578 !*** ../node_modules/mdast-util-to-hast/lib/handlers/footnote.js ***!
21579 \*******************************************************************/
21580 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21581
21582 "use strict";
21583 __webpack_require__.r(__webpack_exports__);
21584 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21585 /* harmony export */ footnote: () => (/* binding */ footnote)
21586 /* harmony export */ });
21587 /* 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");
21588 /**
21589 * @typedef {import('hast').Element} Element
21590 * @typedef {import('mdast').Footnote} Footnote
21591 * @typedef {import('../state.js').State} State
21592 */
21593
21594
21595
21596 // To do: when both:
21597 // * <https://github.com/micromark/micromark-extension-footnote>
21598 // * <https://github.com/syntax-tree/mdast-util-footnote>
21599 // …are archived, remove this (also from mdast).
21600 // These inline notes are not used in GFM.
21601
21602 /**
21603 * Turn an mdast `footnote` node into hast.
21604 *
21605 * @param {State} state
21606 * Info passed around.
21607 * @param {Footnote} node
21608 * mdast node.
21609 * @returns {Element}
21610 * hast node.
21611 */
21612 function footnote(state, node) {
21613 const footnoteById = state.footnoteById
21614 let no = 1
21615
21616 while (no in footnoteById) no++
21617
21618 const identifier = String(no)
21619
21620 footnoteById[identifier] = {
21621 type: 'footnoteDefinition',
21622 identifier,
21623 children: [{type: 'paragraph', children: node.children}],
21624 position: node.position
21625 }
21626
21627 return (0,_footnote_reference_js__WEBPACK_IMPORTED_MODULE_0__.footnoteReference)(state, {
21628 type: 'footnoteReference',
21629 identifier,
21630 position: node.position
21631 })
21632 }
21633
21634
21635 /***/ }),
21636
21637 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js":
21638 /*!******************************************************************!*\
21639 !*** ../node_modules/mdast-util-to-hast/lib/handlers/heading.js ***!
21640 \******************************************************************/
21641 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21642
21643 "use strict";
21644 __webpack_require__.r(__webpack_exports__);
21645 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21646 /* harmony export */ heading: () => (/* binding */ heading)
21647 /* harmony export */ });
21648 /**
21649 * @typedef {import('hast').Element} Element
21650 * @typedef {import('mdast').Heading} Heading
21651 * @typedef {import('../state.js').State} State
21652 */
21653
21654 /**
21655 * Turn an mdast `heading` node into hast.
21656 *
21657 * @param {State} state
21658 * Info passed around.
21659 * @param {Heading} node
21660 * mdast node.
21661 * @returns {Element}
21662 * hast node.
21663 */
21664 function heading(state, node) {
21665 /** @type {Element} */
21666 const result = {
21667 type: 'element',
21668 tagName: 'h' + node.depth,
21669 properties: {},
21670 children: state.all(node)
21671 }
21672 state.patch(node, result)
21673 return state.applyData(node, result)
21674 }
21675
21676
21677 /***/ }),
21678
21679 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/html.js":
21680 /*!***************************************************************!*\
21681 !*** ../node_modules/mdast-util-to-hast/lib/handlers/html.js ***!
21682 \***************************************************************/
21683 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21684
21685 "use strict";
21686 __webpack_require__.r(__webpack_exports__);
21687 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21688 /* harmony export */ html: () => (/* binding */ html)
21689 /* harmony export */ });
21690 /**
21691 * @typedef {import('hast').Element} Element
21692 * @typedef {import('mdast').HTML} Html
21693 * @typedef {import('../state.js').State} State
21694 * @typedef {import('../../index.js').Raw} Raw
21695 */
21696
21697 /**
21698 * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise
21699 * nothing).
21700 *
21701 * @param {State} state
21702 * Info passed around.
21703 * @param {Html} node
21704 * mdast node.
21705 * @returns {Raw | Element | null}
21706 * hast node.
21707 */
21708 function html(state, node) {
21709 if (state.dangerous) {
21710 /** @type {Raw} */
21711 const result = {type: 'raw', value: node.value}
21712 state.patch(node, result)
21713 return state.applyData(node, result)
21714 }
21715
21716 // To do: next major: return `undefined`.
21717 return null
21718 }
21719
21720
21721 /***/ }),
21722
21723 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js":
21724 /*!**************************************************************************!*\
21725 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js ***!
21726 \**************************************************************************/
21727 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21728
21729 "use strict";
21730 __webpack_require__.r(__webpack_exports__);
21731 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21732 /* harmony export */ imageReference: () => (/* binding */ imageReference)
21733 /* harmony export */ });
21734 /* 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");
21735 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21736 /**
21737 * @typedef {import('hast').ElementContent} ElementContent
21738 * @typedef {import('hast').Element} Element
21739 * @typedef {import('hast').Properties} Properties
21740 * @typedef {import('mdast').ImageReference} ImageReference
21741 * @typedef {import('../state.js').State} State
21742 */
21743
21744
21745
21746
21747 /**
21748 * Turn an mdast `imageReference` node into hast.
21749 *
21750 * @param {State} state
21751 * Info passed around.
21752 * @param {ImageReference} node
21753 * mdast node.
21754 * @returns {ElementContent | Array<ElementContent>}
21755 * hast node.
21756 */
21757 function imageReference(state, node) {
21758 const def = state.definition(node.identifier)
21759
21760 if (!def) {
21761 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
21762 }
21763
21764 /** @type {Properties} */
21765 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || ''), alt: node.alt}
21766
21767 if (def.title !== null && def.title !== undefined) {
21768 properties.title = def.title
21769 }
21770
21771 /** @type {Element} */
21772 const result = {type: 'element', tagName: 'img', properties, children: []}
21773 state.patch(node, result)
21774 return state.applyData(node, result)
21775 }
21776
21777
21778 /***/ }),
21779
21780 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/image.js":
21781 /*!****************************************************************!*\
21782 !*** ../node_modules/mdast-util-to-hast/lib/handlers/image.js ***!
21783 \****************************************************************/
21784 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21785
21786 "use strict";
21787 __webpack_require__.r(__webpack_exports__);
21788 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21789 /* harmony export */ image: () => (/* binding */ image)
21790 /* harmony export */ });
21791 /* 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");
21792 /**
21793 * @typedef {import('hast').Element} Element
21794 * @typedef {import('hast').Properties} Properties
21795 * @typedef {import('mdast').Image} Image
21796 * @typedef {import('../state.js').State} State
21797 */
21798
21799
21800
21801 /**
21802 * Turn an mdast `image` node into hast.
21803 *
21804 * @param {State} state
21805 * Info passed around.
21806 * @param {Image} node
21807 * mdast node.
21808 * @returns {Element}
21809 * hast node.
21810 */
21811 function image(state, node) {
21812 /** @type {Properties} */
21813 const properties = {src: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
21814
21815 if (node.alt !== null && node.alt !== undefined) {
21816 properties.alt = node.alt
21817 }
21818
21819 if (node.title !== null && node.title !== undefined) {
21820 properties.title = node.title
21821 }
21822
21823 /** @type {Element} */
21824 const result = {type: 'element', tagName: 'img', properties, children: []}
21825 state.patch(node, result)
21826 return state.applyData(node, result)
21827 }
21828
21829
21830 /***/ }),
21831
21832 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/index.js":
21833 /*!****************************************************************!*\
21834 !*** ../node_modules/mdast-util-to-hast/lib/handlers/index.js ***!
21835 \****************************************************************/
21836 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21837
21838 "use strict";
21839 __webpack_require__.r(__webpack_exports__);
21840 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21841 /* harmony export */ handlers: () => (/* binding */ handlers)
21842 /* harmony export */ });
21843 /* harmony import */ var _blockquote_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blockquote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js");
21844 /* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ "../node_modules/mdast-util-to-hast/lib/handlers/break.js");
21845 /* harmony import */ var _code_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./code.js */ "../node_modules/mdast-util-to-hast/lib/handlers/code.js");
21846 /* harmony import */ var _delete_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete.js */ "../node_modules/mdast-util-to-hast/lib/handlers/delete.js");
21847 /* harmony import */ var _emphasis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emphasis.js */ "../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js");
21848 /* 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");
21849 /* harmony import */ var _footnote_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./footnote.js */ "../node_modules/mdast-util-to-hast/lib/handlers/footnote.js");
21850 /* harmony import */ var _heading_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./heading.js */ "../node_modules/mdast-util-to-hast/lib/handlers/heading.js");
21851 /* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./html.js */ "../node_modules/mdast-util-to-hast/lib/handlers/html.js");
21852 /* 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");
21853 /* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./image.js */ "../node_modules/mdast-util-to-hast/lib/handlers/image.js");
21854 /* 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");
21855 /* 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");
21856 /* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./link.js */ "../node_modules/mdast-util-to-hast/lib/handlers/link.js");
21857 /* 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");
21858 /* harmony import */ var _list_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./list.js */ "../node_modules/mdast-util-to-hast/lib/handlers/list.js");
21859 /* harmony import */ var _paragraph_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./paragraph.js */ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js");
21860 /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./root.js */ "../node_modules/mdast-util-to-hast/lib/handlers/root.js");
21861 /* harmony import */ var _strong_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./strong.js */ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js");
21862 /* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./table.js */ "../node_modules/mdast-util-to-hast/lib/handlers/table.js");
21863 /* 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");
21864 /* 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");
21865 /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ "../node_modules/mdast-util-to-hast/lib/handlers/text.js");
21866 /* 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");
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892 /**
21893 * Default handlers for nodes.
21894 */
21895 const handlers = {
21896 blockquote: _blockquote_js__WEBPACK_IMPORTED_MODULE_0__.blockquote,
21897 break: _break_js__WEBPACK_IMPORTED_MODULE_1__.hardBreak,
21898 code: _code_js__WEBPACK_IMPORTED_MODULE_2__.code,
21899 delete: _delete_js__WEBPACK_IMPORTED_MODULE_3__.strikethrough,
21900 emphasis: _emphasis_js__WEBPACK_IMPORTED_MODULE_4__.emphasis,
21901 footnoteReference: _footnote_reference_js__WEBPACK_IMPORTED_MODULE_5__.footnoteReference,
21902 footnote: _footnote_js__WEBPACK_IMPORTED_MODULE_6__.footnote,
21903 heading: _heading_js__WEBPACK_IMPORTED_MODULE_7__.heading,
21904 html: _html_js__WEBPACK_IMPORTED_MODULE_8__.html,
21905 imageReference: _image_reference_js__WEBPACK_IMPORTED_MODULE_9__.imageReference,
21906 image: _image_js__WEBPACK_IMPORTED_MODULE_10__.image,
21907 inlineCode: _inline_code_js__WEBPACK_IMPORTED_MODULE_11__.inlineCode,
21908 linkReference: _link_reference_js__WEBPACK_IMPORTED_MODULE_12__.linkReference,
21909 link: _link_js__WEBPACK_IMPORTED_MODULE_13__.link,
21910 listItem: _list_item_js__WEBPACK_IMPORTED_MODULE_14__.listItem,
21911 list: _list_js__WEBPACK_IMPORTED_MODULE_15__.list,
21912 paragraph: _paragraph_js__WEBPACK_IMPORTED_MODULE_16__.paragraph,
21913 root: _root_js__WEBPACK_IMPORTED_MODULE_17__.root,
21914 strong: _strong_js__WEBPACK_IMPORTED_MODULE_18__.strong,
21915 table: _table_js__WEBPACK_IMPORTED_MODULE_19__.table,
21916 tableCell: _table_cell_js__WEBPACK_IMPORTED_MODULE_20__.tableCell,
21917 tableRow: _table_row_js__WEBPACK_IMPORTED_MODULE_21__.tableRow,
21918 text: _text_js__WEBPACK_IMPORTED_MODULE_22__.text,
21919 thematicBreak: _thematic_break_js__WEBPACK_IMPORTED_MODULE_23__.thematicBreak,
21920 toml: ignore,
21921 yaml: ignore,
21922 definition: ignore,
21923 footnoteDefinition: ignore
21924 }
21925
21926 // Return nothing for nodes that are ignored.
21927 function ignore() {
21928 // To do: next major: return `undefined`.
21929 return null
21930 }
21931
21932
21933 /***/ }),
21934
21935 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js":
21936 /*!**********************************************************************!*\
21937 !*** ../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js ***!
21938 \**********************************************************************/
21939 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21940
21941 "use strict";
21942 __webpack_require__.r(__webpack_exports__);
21943 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21944 /* harmony export */ inlineCode: () => (/* binding */ inlineCode)
21945 /* harmony export */ });
21946 /**
21947 * @typedef {import('hast').Element} Element
21948 * @typedef {import('hast').Text} Text
21949 * @typedef {import('mdast').InlineCode} InlineCode
21950 * @typedef {import('../state.js').State} State
21951 */
21952
21953 /**
21954 * Turn an mdast `inlineCode` node into hast.
21955 *
21956 * @param {State} state
21957 * Info passed around.
21958 * @param {InlineCode} node
21959 * mdast node.
21960 * @returns {Element}
21961 * hast node.
21962 */
21963 function inlineCode(state, node) {
21964 /** @type {Text} */
21965 const text = {type: 'text', value: node.value.replace(/\r?\n|\r/g, ' ')}
21966 state.patch(node, text)
21967
21968 /** @type {Element} */
21969 const result = {
21970 type: 'element',
21971 tagName: 'code',
21972 properties: {},
21973 children: [text]
21974 }
21975 state.patch(node, result)
21976 return state.applyData(node, result)
21977 }
21978
21979
21980 /***/ }),
21981
21982 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js":
21983 /*!*************************************************************************!*\
21984 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js ***!
21985 \*************************************************************************/
21986 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21987
21988 "use strict";
21989 __webpack_require__.r(__webpack_exports__);
21990 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21991 /* harmony export */ linkReference: () => (/* binding */ linkReference)
21992 /* harmony export */ });
21993 /* 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");
21994 /* harmony import */ var _revert_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../revert.js */ "../node_modules/mdast-util-to-hast/lib/revert.js");
21995 /**
21996 * @typedef {import('hast').Element} Element
21997 * @typedef {import('hast').ElementContent} ElementContent
21998 * @typedef {import('hast').Properties} Properties
21999 * @typedef {import('mdast').LinkReference} LinkReference
22000 * @typedef {import('../state.js').State} State
22001 */
22002
22003
22004
22005
22006 /**
22007 * Turn an mdast `linkReference` node into hast.
22008 *
22009 * @param {State} state
22010 * Info passed around.
22011 * @param {LinkReference} node
22012 * mdast node.
22013 * @returns {ElementContent | Array<ElementContent>}
22014 * hast node.
22015 */
22016 function linkReference(state, node) {
22017 const def = state.definition(node.identifier)
22018
22019 if (!def) {
22020 return (0,_revert_js__WEBPACK_IMPORTED_MODULE_0__.revert)(state, node)
22021 }
22022
22023 /** @type {Properties} */
22024 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_1__.normalizeUri)(def.url || '')}
22025
22026 if (def.title !== null && def.title !== undefined) {
22027 properties.title = def.title
22028 }
22029
22030 /** @type {Element} */
22031 const result = {
22032 type: 'element',
22033 tagName: 'a',
22034 properties,
22035 children: state.all(node)
22036 }
22037 state.patch(node, result)
22038 return state.applyData(node, result)
22039 }
22040
22041
22042 /***/ }),
22043
22044 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/link.js":
22045 /*!***************************************************************!*\
22046 !*** ../node_modules/mdast-util-to-hast/lib/handlers/link.js ***!
22047 \***************************************************************/
22048 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22049
22050 "use strict";
22051 __webpack_require__.r(__webpack_exports__);
22052 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22053 /* harmony export */ link: () => (/* binding */ link)
22054 /* harmony export */ });
22055 /* 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");
22056 /**
22057 * @typedef {import('hast').Element} Element
22058 * @typedef {import('hast').Properties} Properties
22059 * @typedef {import('mdast').Link} Link
22060 * @typedef {import('../state.js').State} State
22061 */
22062
22063
22064
22065 /**
22066 * Turn an mdast `link` node into hast.
22067 *
22068 * @param {State} state
22069 * Info passed around.
22070 * @param {Link} node
22071 * mdast node.
22072 * @returns {Element}
22073 * hast node.
22074 */
22075 function link(state, node) {
22076 /** @type {Properties} */
22077 const properties = {href: (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(node.url)}
22078
22079 if (node.title !== null && node.title !== undefined) {
22080 properties.title = node.title
22081 }
22082
22083 /** @type {Element} */
22084 const result = {
22085 type: 'element',
22086 tagName: 'a',
22087 properties,
22088 children: state.all(node)
22089 }
22090 state.patch(node, result)
22091 return state.applyData(node, result)
22092 }
22093
22094
22095 /***/ }),
22096
22097 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list-item.js":
22098 /*!********************************************************************!*\
22099 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list-item.js ***!
22100 \********************************************************************/
22101 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22102
22103 "use strict";
22104 __webpack_require__.r(__webpack_exports__);
22105 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22106 /* harmony export */ listItem: () => (/* binding */ listItem)
22107 /* harmony export */ });
22108 /**
22109 * @typedef {import('hast').Element} Element
22110 * @typedef {import('hast').ElementContent} ElementContent
22111 * @typedef {import('hast').Properties} Properties
22112 * @typedef {import('mdast').Content} Content
22113 * @typedef {import('mdast').ListItem} ListItem
22114 * @typedef {import('mdast').Parent} Parent
22115 * @typedef {import('mdast').Root} Root
22116 * @typedef {import('../state.js').State} State
22117 */
22118
22119 /**
22120 * @typedef {Root | Content} Nodes
22121 * @typedef {Extract<Nodes, Parent>} Parents
22122 */
22123
22124 /**
22125 * Turn an mdast `listItem` node into hast.
22126 *
22127 * @param {State} state
22128 * Info passed around.
22129 * @param {ListItem} node
22130 * mdast node.
22131 * @param {Parents | null | undefined} parent
22132 * Parent of `node`.
22133 * @returns {Element}
22134 * hast node.
22135 */
22136 function listItem(state, node, parent) {
22137 const results = state.all(node)
22138 const loose = parent ? listLoose(parent) : listItemLoose(node)
22139 /** @type {Properties} */
22140 const properties = {}
22141 /** @type {Array<ElementContent>} */
22142 const children = []
22143
22144 if (typeof node.checked === 'boolean') {
22145 const head = results[0]
22146 /** @type {Element} */
22147 let paragraph
22148
22149 if (head && head.type === 'element' && head.tagName === 'p') {
22150 paragraph = head
22151 } else {
22152 paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}
22153 results.unshift(paragraph)
22154 }
22155
22156 if (paragraph.children.length > 0) {
22157 paragraph.children.unshift({type: 'text', value: ' '})
22158 }
22159
22160 paragraph.children.unshift({
22161 type: 'element',
22162 tagName: 'input',
22163 properties: {type: 'checkbox', checked: node.checked, disabled: true},
22164 children: []
22165 })
22166
22167 // According to github-markdown-css, this class hides bullet.
22168 // See: <https://github.com/sindresorhus/github-markdown-css>.
22169 properties.className = ['task-list-item']
22170 }
22171
22172 let index = -1
22173
22174 while (++index < results.length) {
22175 const child = results[index]
22176
22177 // Add eols before nodes, except if this is a loose, first paragraph.
22178 if (
22179 loose ||
22180 index !== 0 ||
22181 child.type !== 'element' ||
22182 child.tagName !== 'p'
22183 ) {
22184 children.push({type: 'text', value: '\n'})
22185 }
22186
22187 if (child.type === 'element' && child.tagName === 'p' && !loose) {
22188 children.push(...child.children)
22189 } else {
22190 children.push(child)
22191 }
22192 }
22193
22194 const tail = results[results.length - 1]
22195
22196 // Add a final eol.
22197 if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {
22198 children.push({type: 'text', value: '\n'})
22199 }
22200
22201 /** @type {Element} */
22202 const result = {type: 'element', tagName: 'li', properties, children}
22203 state.patch(node, result)
22204 return state.applyData(node, result)
22205 }
22206
22207 /**
22208 * @param {Parents} node
22209 * @return {Boolean}
22210 */
22211 function listLoose(node) {
22212 let loose = false
22213 if (node.type === 'list') {
22214 loose = node.spread || false
22215 const children = node.children
22216 let index = -1
22217
22218 while (!loose && ++index < children.length) {
22219 loose = listItemLoose(children[index])
22220 }
22221 }
22222
22223 return loose
22224 }
22225
22226 /**
22227 * @param {ListItem} node
22228 * @return {Boolean}
22229 */
22230 function listItemLoose(node) {
22231 const spread = node.spread
22232
22233 return spread === undefined || spread === null
22234 ? node.children.length > 1
22235 : spread
22236 }
22237
22238
22239 /***/ }),
22240
22241 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/list.js":
22242 /*!***************************************************************!*\
22243 !*** ../node_modules/mdast-util-to-hast/lib/handlers/list.js ***!
22244 \***************************************************************/
22245 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22246
22247 "use strict";
22248 __webpack_require__.r(__webpack_exports__);
22249 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22250 /* harmony export */ list: () => (/* binding */ list)
22251 /* harmony export */ });
22252 /**
22253 * @typedef {import('hast').Element} Element
22254 * @typedef {import('hast').Properties} Properties
22255 * @typedef {import('mdast').List} List
22256 * @typedef {import('../state.js').State} State
22257 */
22258
22259 /**
22260 * Turn an mdast `list` node into hast.
22261 *
22262 * @param {State} state
22263 * Info passed around.
22264 * @param {List} node
22265 * mdast node.
22266 * @returns {Element}
22267 * hast node.
22268 */
22269 function list(state, node) {
22270 /** @type {Properties} */
22271 const properties = {}
22272 const results = state.all(node)
22273 let index = -1
22274
22275 if (typeof node.start === 'number' && node.start !== 1) {
22276 properties.start = node.start
22277 }
22278
22279 // Like GitHub, add a class for custom styling.
22280 while (++index < results.length) {
22281 const child = results[index]
22282
22283 if (
22284 child.type === 'element' &&
22285 child.tagName === 'li' &&
22286 child.properties &&
22287 Array.isArray(child.properties.className) &&
22288 child.properties.className.includes('task-list-item')
22289 ) {
22290 properties.className = ['contains-task-list']
22291 break
22292 }
22293 }
22294
22295 /** @type {Element} */
22296 const result = {
22297 type: 'element',
22298 tagName: node.ordered ? 'ol' : 'ul',
22299 properties,
22300 children: state.wrap(results, true)
22301 }
22302 state.patch(node, result)
22303 return state.applyData(node, result)
22304 }
22305
22306
22307 /***/ }),
22308
22309 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js":
22310 /*!********************************************************************!*\
22311 !*** ../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js ***!
22312 \********************************************************************/
22313 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22314
22315 "use strict";
22316 __webpack_require__.r(__webpack_exports__);
22317 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22318 /* harmony export */ paragraph: () => (/* binding */ paragraph)
22319 /* harmony export */ });
22320 /**
22321 * @typedef {import('hast').Element} Element
22322 * @typedef {import('mdast').Paragraph} Paragraph
22323 * @typedef {import('../state.js').State} State
22324 */
22325
22326 /**
22327 * Turn an mdast `paragraph` node into hast.
22328 *
22329 * @param {State} state
22330 * Info passed around.
22331 * @param {Paragraph} node
22332 * mdast node.
22333 * @returns {Element}
22334 * hast node.
22335 */
22336 function paragraph(state, node) {
22337 /** @type {Element} */
22338 const result = {
22339 type: 'element',
22340 tagName: 'p',
22341 properties: {},
22342 children: state.all(node)
22343 }
22344 state.patch(node, result)
22345 return state.applyData(node, result)
22346 }
22347
22348
22349 /***/ }),
22350
22351 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/root.js":
22352 /*!***************************************************************!*\
22353 !*** ../node_modules/mdast-util-to-hast/lib/handlers/root.js ***!
22354 \***************************************************************/
22355 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22356
22357 "use strict";
22358 __webpack_require__.r(__webpack_exports__);
22359 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22360 /* harmony export */ root: () => (/* binding */ root)
22361 /* harmony export */ });
22362 /**
22363 * @typedef {import('hast').Root} HastRoot
22364 * @typedef {import('hast').Element} HastElement
22365 * @typedef {import('mdast').Root} MdastRoot
22366 * @typedef {import('../state.js').State} State
22367 */
22368
22369 /**
22370 * Turn an mdast `root` node into hast.
22371 *
22372 * @param {State} state
22373 * Info passed around.
22374 * @param {MdastRoot} node
22375 * mdast node.
22376 * @returns {HastRoot | HastElement}
22377 * hast node.
22378 */
22379 function root(state, node) {
22380 /** @type {HastRoot} */
22381 const result = {type: 'root', children: state.wrap(state.all(node))}
22382 state.patch(node, result)
22383 return state.applyData(node, result)
22384 }
22385
22386
22387 /***/ }),
22388
22389 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/strong.js":
22390 /*!*****************************************************************!*\
22391 !*** ../node_modules/mdast-util-to-hast/lib/handlers/strong.js ***!
22392 \*****************************************************************/
22393 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22394
22395 "use strict";
22396 __webpack_require__.r(__webpack_exports__);
22397 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22398 /* harmony export */ strong: () => (/* binding */ strong)
22399 /* harmony export */ });
22400 /**
22401 * @typedef {import('hast').Element} Element
22402 * @typedef {import('mdast').Strong} Strong
22403 * @typedef {import('../state.js').State} State
22404 */
22405
22406 /**
22407 * Turn an mdast `strong` node into hast.
22408 *
22409 * @param {State} state
22410 * Info passed around.
22411 * @param {Strong} node
22412 * mdast node.
22413 * @returns {Element}
22414 * hast node.
22415 */
22416 function strong(state, node) {
22417 /** @type {Element} */
22418 const result = {
22419 type: 'element',
22420 tagName: 'strong',
22421 properties: {},
22422 children: state.all(node)
22423 }
22424 state.patch(node, result)
22425 return state.applyData(node, result)
22426 }
22427
22428
22429 /***/ }),
22430
22431 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js":
22432 /*!*********************************************************************!*\
22433 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js ***!
22434 \*********************************************************************/
22435 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22436
22437 "use strict";
22438 __webpack_require__.r(__webpack_exports__);
22439 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22440 /* harmony export */ tableCell: () => (/* binding */ tableCell)
22441 /* harmony export */ });
22442 /**
22443 * @typedef {import('hast').Element} Element
22444 * @typedef {import('mdast').TableCell} TableCell
22445 * @typedef {import('../state.js').State} State
22446 */
22447
22448 /**
22449 * Turn an mdast `tableCell` node into hast.
22450 *
22451 * @param {State} state
22452 * Info passed around.
22453 * @param {TableCell} node
22454 * mdast node.
22455 * @returns {Element}
22456 * hast node.
22457 */
22458 function tableCell(state, node) {
22459 // Note: this function is normally not called: see `table-row` for how rows
22460 // and their cells are compiled.
22461 /** @type {Element} */
22462 const result = {
22463 type: 'element',
22464 tagName: 'td', // Assume body cell.
22465 properties: {},
22466 children: state.all(node)
22467 }
22468 state.patch(node, result)
22469 return state.applyData(node, result)
22470 }
22471
22472
22473 /***/ }),
22474
22475 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table-row.js":
22476 /*!********************************************************************!*\
22477 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table-row.js ***!
22478 \********************************************************************/
22479 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22480
22481 "use strict";
22482 __webpack_require__.r(__webpack_exports__);
22483 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22484 /* harmony export */ tableRow: () => (/* binding */ tableRow)
22485 /* harmony export */ });
22486 /**
22487 * @typedef {import('hast').Properties} Properties
22488 * @typedef {import('hast').Element} Element
22489 * @typedef {import('hast').ElementContent} ElementContent
22490 * @typedef {import('mdast').Content} Content
22491 * @typedef {import('mdast').Parent} Parent
22492 * @typedef {import('mdast').Root} Root
22493 * @typedef {import('mdast').TableRow} TableRow
22494 * @typedef {import('../state.js').State} State
22495 */
22496
22497 /**
22498 * @typedef {Root | Content} Nodes
22499 * @typedef {Extract<Nodes, Parent>} Parents
22500 */
22501
22502 /**
22503 * Turn an mdast `tableRow` node into hast.
22504 *
22505 * @param {State} state
22506 * Info passed around.
22507 * @param {TableRow} node
22508 * mdast node.
22509 * @param {Parents | null | undefined} parent
22510 * Parent of `node`.
22511 * @returns {Element}
22512 * hast node.
22513 */
22514 function tableRow(state, node, parent) {
22515 const siblings = parent ? parent.children : undefined
22516 // Generate a body row when without parent.
22517 const rowIndex = siblings ? siblings.indexOf(node) : 1
22518 const tagName = rowIndex === 0 ? 'th' : 'td'
22519 const align = parent && parent.type === 'table' ? parent.align : undefined
22520 const length = align ? align.length : node.children.length
22521 let cellIndex = -1
22522 /** @type {Array<ElementContent>} */
22523 const cells = []
22524
22525 while (++cellIndex < length) {
22526 // Note: can also be undefined.
22527 const cell = node.children[cellIndex]
22528 /** @type {Properties} */
22529 const properties = {}
22530 const alignValue = align ? align[cellIndex] : undefined
22531
22532 if (alignValue) {
22533 properties.align = alignValue
22534 }
22535
22536 /** @type {Element} */
22537 let result = {type: 'element', tagName, properties, children: []}
22538
22539 if (cell) {
22540 result.children = state.all(cell)
22541 state.patch(cell, result)
22542 result = state.applyData(node, result)
22543 }
22544
22545 cells.push(result)
22546 }
22547
22548 /** @type {Element} */
22549 const result = {
22550 type: 'element',
22551 tagName: 'tr',
22552 properties: {},
22553 children: state.wrap(cells, true)
22554 }
22555 state.patch(node, result)
22556 return state.applyData(node, result)
22557 }
22558
22559
22560 /***/ }),
22561
22562 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/table.js":
22563 /*!****************************************************************!*\
22564 !*** ../node_modules/mdast-util-to-hast/lib/handlers/table.js ***!
22565 \****************************************************************/
22566 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22567
22568 "use strict";
22569 __webpack_require__.r(__webpack_exports__);
22570 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22571 /* harmony export */ table: () => (/* binding */ table)
22572 /* harmony export */ });
22573 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22574 /**
22575 * @typedef {import('hast').Element} Element
22576 * @typedef {import('mdast').Table} Table
22577 * @typedef {import('../state.js').State} State
22578 */
22579
22580
22581
22582 /**
22583 * Turn an mdast `table` node into hast.
22584 *
22585 * @param {State} state
22586 * Info passed around.
22587 * @param {Table} node
22588 * mdast node.
22589 * @returns {Element}
22590 * hast node.
22591 */
22592 function table(state, node) {
22593 const rows = state.all(node)
22594 const firstRow = rows.shift()
22595 /** @type {Array<Element>} */
22596 const tableContent = []
22597
22598 if (firstRow) {
22599 /** @type {Element} */
22600 const head = {
22601 type: 'element',
22602 tagName: 'thead',
22603 properties: {},
22604 children: state.wrap([firstRow], true)
22605 }
22606 state.patch(node.children[0], head)
22607 tableContent.push(head)
22608 }
22609
22610 if (rows.length > 0) {
22611 /** @type {Element} */
22612 const body = {
22613 type: 'element',
22614 tagName: 'tbody',
22615 properties: {},
22616 children: state.wrap(rows, true)
22617 }
22618
22619 const start = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointStart)(node.children[1])
22620 const end = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_0__.pointEnd)(node.children[node.children.length - 1])
22621 if (start.line && end.line) body.position = {start, end}
22622 tableContent.push(body)
22623 }
22624
22625 /** @type {Element} */
22626 const result = {
22627 type: 'element',
22628 tagName: 'table',
22629 properties: {},
22630 children: state.wrap(tableContent, true)
22631 }
22632 state.patch(node, result)
22633 return state.applyData(node, result)
22634 }
22635
22636
22637 /***/ }),
22638
22639 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/text.js":
22640 /*!***************************************************************!*\
22641 !*** ../node_modules/mdast-util-to-hast/lib/handlers/text.js ***!
22642 \***************************************************************/
22643 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22644
22645 "use strict";
22646 __webpack_require__.r(__webpack_exports__);
22647 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22648 /* harmony export */ text: () => (/* binding */ text)
22649 /* harmony export */ });
22650 /* harmony import */ var trim_lines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! trim-lines */ "../node_modules/trim-lines/index.js");
22651 /**
22652 * @typedef {import('hast').Element} HastElement
22653 * @typedef {import('hast').Text} HastText
22654 * @typedef {import('mdast').Text} MdastText
22655 * @typedef {import('../state.js').State} State
22656 */
22657
22658
22659
22660 /**
22661 * Turn an mdast `text` node into hast.
22662 *
22663 * @param {State} state
22664 * Info passed around.
22665 * @param {MdastText} node
22666 * mdast node.
22667 * @returns {HastText | HastElement}
22668 * hast node.
22669 */
22670 function text(state, node) {
22671 /** @type {HastText} */
22672 const result = {type: 'text', value: (0,trim_lines__WEBPACK_IMPORTED_MODULE_0__.trimLines)(String(node.value))}
22673 state.patch(node, result)
22674 return state.applyData(node, result)
22675 }
22676
22677
22678 /***/ }),
22679
22680 /***/ "../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js":
22681 /*!*************************************************************************!*\
22682 !*** ../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js ***!
22683 \*************************************************************************/
22684 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22685
22686 "use strict";
22687 __webpack_require__.r(__webpack_exports__);
22688 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22689 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
22690 /* harmony export */ });
22691 /**
22692 * @typedef {import('hast').Element} Element
22693 * @typedef {import('mdast').ThematicBreak} ThematicBreak
22694 * @typedef {import('../state.js').State} State
22695 */
22696
22697 /**
22698 * Turn an mdast `thematicBreak` node into hast.
22699 *
22700 * @param {State} state
22701 * Info passed around.
22702 * @param {ThematicBreak} node
22703 * mdast node.
22704 * @returns {Element}
22705 * hast node.
22706 */
22707 function thematicBreak(state, node) {
22708 /** @type {Element} */
22709 const result = {
22710 type: 'element',
22711 tagName: 'hr',
22712 properties: {},
22713 children: []
22714 }
22715 state.patch(node, result)
22716 return state.applyData(node, result)
22717 }
22718
22719
22720 /***/ }),
22721
22722 /***/ "../node_modules/mdast-util-to-hast/lib/index.js":
22723 /*!*******************************************************!*\
22724 !*** ../node_modules/mdast-util-to-hast/lib/index.js ***!
22725 \*******************************************************/
22726 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22727
22728 "use strict";
22729 __webpack_require__.r(__webpack_exports__);
22730 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22731 /* harmony export */ toHast: () => (/* binding */ toHast)
22732 /* harmony export */ });
22733 /* harmony import */ var _footer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./footer.js */ "../node_modules/mdast-util-to-hast/lib/footer.js");
22734 /* harmony import */ var _state_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.js */ "../node_modules/mdast-util-to-hast/lib/state.js");
22735 /**
22736 * @typedef {import('hast').Content} HastContent
22737 * @typedef {import('hast').Root} HastRoot
22738 *
22739 * @typedef {import('mdast').Content} MdastContent
22740 * @typedef {import('mdast').Root} MdastRoot
22741 *
22742 * @typedef {import('./state.js').Options} Options
22743 */
22744
22745 /**
22746 * @typedef {HastRoot | HastContent} HastNodes
22747 * @typedef {MdastRoot | MdastContent} MdastNodes
22748 */
22749
22750
22751
22752
22753 /**
22754 * Transform mdast to hast.
22755 *
22756 * ##### Notes
22757 *
22758 * ###### HTML
22759 *
22760 * Raw HTML is available in mdast as `html` nodes and can be embedded in hast
22761 * as semistandard `raw` nodes.
22762 * Most utilities ignore `raw` nodes but two notable ones don’t:
22763 *
22764 * * `hast-util-to-html` also has an option `allowDangerousHtml` which will
22765 * output the raw HTML.
22766 * This is typically discouraged as noted by the option name but is useful
22767 * if you completely trust authors
22768 * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them
22769 * into standard hast nodes (`element`, `text`, etc).
22770 * This is a heavy task as it needs a full HTML parser, but it is the only
22771 * way to support untrusted content
22772 *
22773 * ###### Footnotes
22774 *
22775 * Many options supported here relate to footnotes.
22776 * Footnotes are not specified by CommonMark, which we follow by default.
22777 * They are supported by GitHub, so footnotes can be enabled in markdown with
22778 * `mdast-util-gfm`.
22779 *
22780 * The options `footnoteBackLabel` and `footnoteLabel` define natural language
22781 * that explains footnotes, which is hidden for sighted users but shown to
22782 * assistive technology.
22783 * When your page is not in English, you must define translated values.
22784 *
22785 * Back references use ARIA attributes, but the section label itself uses a
22786 * heading that is hidden with an `sr-only` class.
22787 * To show it to sighted users, define different attributes in
22788 * `footnoteLabelProperties`.
22789 *
22790 * ###### Clobbering
22791 *
22792 * Footnotes introduces a problem, as it links footnote calls to footnote
22793 * definitions on the page through `id` attributes generated from user content,
22794 * which results in DOM clobbering.
22795 *
22796 * DOM clobbering is this:
22797 *
22798 * ```html
22799 * <p id=x></p>
22800 * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>
22801 * ```
22802 *
22803 * Elements by their ID are made available by browsers on the `window` object,
22804 * which is a security risk.
22805 * Using a prefix solves this problem.
22806 *
22807 * More information on how to handle clobbering and the prefix is explained in
22808 * Example: headings (DOM clobbering) in `rehype-sanitize`.
22809 *
22810 * ###### Unknown nodes
22811 *
22812 * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.
22813 * The default behavior for unknown nodes is:
22814 *
22815 * * when the node has a `value` (and doesn’t have `data.hName`,
22816 * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`
22817 * node
22818 * * otherwise, create a `<div>` element (which could be changed with
22819 * `data.hName`), with its children mapped from mdast to hast as well
22820 *
22821 * This behavior can be changed by passing an `unknownHandler`.
22822 *
22823 * @param {MdastNodes} tree
22824 * mdast tree.
22825 * @param {Options | null | undefined} [options]
22826 * Configuration.
22827 * @returns {HastNodes | null | undefined}
22828 * hast tree.
22829 */
22830 // To do: next major: always return a single `root`.
22831 function toHast(tree, options) {
22832 const state = (0,_state_js__WEBPACK_IMPORTED_MODULE_0__.createState)(tree, options)
22833 const node = state.one(tree, null)
22834 const foot = (0,_footer_js__WEBPACK_IMPORTED_MODULE_1__.footer)(state)
22835
22836 if (foot) {
22837 // @ts-expect-error If there’s a footer, there were definitions, meaning block
22838 // content.
22839 // So assume `node` is a parent node.
22840 node.children.push({type: 'text', value: '\n'}, foot)
22841 }
22842
22843 // To do: next major: always return root?
22844 return Array.isArray(node) ? {type: 'root', children: node} : node
22845 }
22846
22847
22848 /***/ }),
22849
22850 /***/ "../node_modules/mdast-util-to-hast/lib/revert.js":
22851 /*!********************************************************!*\
22852 !*** ../node_modules/mdast-util-to-hast/lib/revert.js ***!
22853 \********************************************************/
22854 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22855
22856 "use strict";
22857 __webpack_require__.r(__webpack_exports__);
22858 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22859 /* harmony export */ revert: () => (/* binding */ revert)
22860 /* harmony export */ });
22861 /**
22862 * @typedef {import('hast').ElementContent} ElementContent
22863 *
22864 * @typedef {import('mdast').Content} Content
22865 * @typedef {import('mdast').Reference} Reference
22866 * @typedef {import('mdast').Root} Root
22867 *
22868 * @typedef {import('./state.js').State} State
22869 */
22870
22871 /**
22872 * @typedef {Root | Content} Nodes
22873 * @typedef {Extract<Nodes, Reference>} References
22874 */
22875
22876 // To do: next major: always return array.
22877
22878 /**
22879 * Return the content of a reference without definition as plain text.
22880 *
22881 * @param {State} state
22882 * Info passed around.
22883 * @param {References} node
22884 * Reference node (image, link).
22885 * @returns {ElementContent | Array<ElementContent>}
22886 * hast content.
22887 */
22888 function revert(state, node) {
22889 const subtype = node.referenceType
22890 let suffix = ']'
22891
22892 if (subtype === 'collapsed') {
22893 suffix += '[]'
22894 } else if (subtype === 'full') {
22895 suffix += '[' + (node.label || node.identifier) + ']'
22896 }
22897
22898 if (node.type === 'imageReference') {
22899 return {type: 'text', value: '![' + node.alt + suffix}
22900 }
22901
22902 const contents = state.all(node)
22903 const head = contents[0]
22904
22905 if (head && head.type === 'text') {
22906 head.value = '[' + head.value
22907 } else {
22908 contents.unshift({type: 'text', value: '['})
22909 }
22910
22911 const tail = contents[contents.length - 1]
22912
22913 if (tail && tail.type === 'text') {
22914 tail.value += suffix
22915 } else {
22916 contents.push({type: 'text', value: suffix})
22917 }
22918
22919 return contents
22920 }
22921
22922
22923 /***/ }),
22924
22925 /***/ "../node_modules/mdast-util-to-hast/lib/state.js":
22926 /*!*******************************************************!*\
22927 !*** ../node_modules/mdast-util-to-hast/lib/state.js ***!
22928 \*******************************************************/
22929 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22930
22931 "use strict";
22932 __webpack_require__.r(__webpack_exports__);
22933 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22934 /* harmony export */ all: () => (/* binding */ all),
22935 /* harmony export */ createState: () => (/* binding */ createState),
22936 /* harmony export */ one: () => (/* binding */ one),
22937 /* harmony export */ wrap: () => (/* binding */ wrap)
22938 /* harmony export */ });
22939 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
22940 /* harmony import */ var unist_util_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! unist-util-position */ "../node_modules/unist-util-position/lib/index.js");
22941 /* harmony import */ var unist_util_generated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! unist-util-generated */ "../node_modules/unist-util-generated/lib/index.js");
22942 /* harmony import */ var mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-definitions */ "../node_modules/mdast-util-definitions/lib/index.js");
22943 /* 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");
22944 /**
22945 * @typedef {import('hast').Content} HastContent
22946 * @typedef {import('hast').Element} HastElement
22947 * @typedef {import('hast').ElementContent} HastElementContent
22948 * @typedef {import('hast').Properties} HastProperties
22949 * @typedef {import('hast').Root} HastRoot
22950 * @typedef {import('hast').Text} HastText
22951 *
22952 * @typedef {import('mdast').Content} MdastContent
22953 * @typedef {import('mdast').Definition} MdastDefinition
22954 * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition
22955 * @typedef {import('mdast').Parent} MdastParent
22956 * @typedef {import('mdast').Root} MdastRoot
22957 */
22958
22959 /**
22960 * @typedef {HastRoot | HastContent} HastNodes
22961 * @typedef {MdastRoot | MdastContent} MdastNodes
22962 * @typedef {Extract<MdastNodes, MdastParent>} MdastParents
22963 *
22964 * @typedef EmbeddedHastFields
22965 * hast fields.
22966 * @property {string | null | undefined} [hName]
22967 * Generate a specific element with this tag name instead.
22968 * @property {HastProperties | null | undefined} [hProperties]
22969 * Generate an element with these properties instead.
22970 * @property {Array<HastElementContent> | null | undefined} [hChildren]
22971 * Generate an element with this content instead.
22972 *
22973 * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData
22974 * mdast data with embedded hast fields.
22975 *
22976 * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData
22977 * mdast node with embedded hast data.
22978 *
22979 * @typedef PointLike
22980 * Point-like value.
22981 * @property {number | null | undefined} [line]
22982 * Line.
22983 * @property {number | null | undefined} [column]
22984 * Column.
22985 * @property {number | null | undefined} [offset]
22986 * Offset.
22987 *
22988 * @typedef PositionLike
22989 * Position-like value.
22990 * @property {PointLike | null | undefined} [start]
22991 * Point-like value.
22992 * @property {PointLike | null | undefined} [end]
22993 * Point-like value.
22994 *
22995 * @callback Handler
22996 * Handle a node.
22997 * @param {State} state
22998 * Info passed around.
22999 * @param {any} node
23000 * mdast node to handle.
23001 * @param {MdastParents | null | undefined} parent
23002 * Parent of `node`.
23003 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23004 * hast node.
23005 *
23006 * @callback HFunctionProps
23007 * Signature of `state` for when props are passed.
23008 * @param {MdastNodes | PositionLike | null | undefined} node
23009 * mdast node or unist position.
23010 * @param {string} tagName
23011 * HTML tag name.
23012 * @param {HastProperties} props
23013 * Properties.
23014 * @param {Array<HastElementContent> | null | undefined} [children]
23015 * hast content.
23016 * @returns {HastElement}
23017 * Compiled element.
23018 *
23019 * @callback HFunctionNoProps
23020 * Signature of `state` for when no props are passed.
23021 * @param {MdastNodes | PositionLike | null | undefined} node
23022 * mdast node or unist position.
23023 * @param {string} tagName
23024 * HTML tag name.
23025 * @param {Array<HastElementContent> | null | undefined} [children]
23026 * hast content.
23027 * @returns {HastElement}
23028 * Compiled element.
23029 *
23030 * @typedef HFields
23031 * Info on `state`.
23032 * @property {boolean} dangerous
23033 * Whether HTML is allowed.
23034 * @property {string} clobberPrefix
23035 * Prefix to use to prevent DOM clobbering.
23036 * @property {string} footnoteLabel
23037 * Label to use to introduce the footnote section.
23038 * @property {string} footnoteLabelTagName
23039 * HTML used for the footnote label.
23040 * @property {HastProperties} footnoteLabelProperties
23041 * Properties on the HTML tag used for the footnote label.
23042 * @property {string} footnoteBackLabel
23043 * Label to use from backreferences back to their footnote call.
23044 * @property {(identifier: string) => MdastDefinition | null} definition
23045 * Definition cache.
23046 * @property {Record<string, MdastFootnoteDefinition>} footnoteById
23047 * Footnote definitions by their identifier.
23048 * @property {Array<string>} footnoteOrder
23049 * Identifiers of order when footnote calls first appear in tree order.
23050 * @property {Record<string, number>} footnoteCounts
23051 * Counts for how often the same footnote was called.
23052 * @property {Handlers} handlers
23053 * Applied handlers.
23054 * @property {Handler} unknownHandler
23055 * Handler for any none not in `passThrough` or otherwise handled.
23056 * @property {(from: MdastNodes, node: HastNodes) => void} patch
23057 * Copy a node’s positional info.
23058 * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData
23059 * Honor the `data` of `from`, and generate an element instead of `node`.
23060 * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one
23061 * Transform an mdast node to hast.
23062 * @property {(node: MdastNodes) => Array<HastElementContent>} all
23063 * Transform the children of an mdast parent to hast.
23064 * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap
23065 * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.
23066 * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment
23067 * Like `state` but lower-level and usable on non-elements.
23068 * Deprecated: use `patch` and `applyData`.
23069 * @property {Array<string>} passThrough
23070 * List of node types to pass through untouched (except for their children).
23071 *
23072 * @typedef Options
23073 * Configuration (optional).
23074 * @property {boolean | null | undefined} [allowDangerousHtml=false]
23075 * Whether to persist raw HTML in markdown in the hast tree.
23076 * @property {string | null | undefined} [clobberPrefix='user-content-']
23077 * Prefix to use before the `id` attribute on footnotes to prevent it from
23078 * *clobbering*.
23079 * @property {string | null | undefined} [footnoteBackLabel='Back to content']
23080 * Label to use from backreferences back to their footnote call (affects
23081 * screen readers).
23082 * @property {string | null | undefined} [footnoteLabel='Footnotes']
23083 * Label to use for the footnotes section (affects screen readers).
23084 * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]
23085 * Properties to use on the footnote label (note that `id: 'footnote-label'`
23086 * is always added as footnote calls use it with `aria-describedby` to
23087 * provide an accessible label).
23088 * @property {string | null | undefined} [footnoteLabelTagName='h2']
23089 * Tag name to use for the footnote label.
23090 * @property {Handlers | null | undefined} [handlers]
23091 * Extra handlers for nodes.
23092 * @property {Array<string> | null | undefined} [passThrough]
23093 * List of custom mdast node types to pass through (keep) in hast (note that
23094 * the node itself is passed, but eventual children are transformed).
23095 * @property {Handler | null | undefined} [unknownHandler]
23096 * Handler for all unknown nodes.
23097 *
23098 * @typedef {Record<string, Handler>} Handlers
23099 * Handle nodes.
23100 *
23101 * @typedef {HFunctionProps & HFunctionNoProps & HFields} State
23102 * Info passed around.
23103 */
23104
23105
23106
23107
23108
23109
23110
23111 const own = {}.hasOwnProperty
23112
23113 /**
23114 * Create `state` from an mdast tree.
23115 *
23116 * @param {MdastNodes} tree
23117 * mdast node to transform.
23118 * @param {Options | null | undefined} [options]
23119 * Configuration.
23120 * @returns {State}
23121 * `state` function.
23122 */
23123 function createState(tree, options) {
23124 const settings = options || {}
23125 const dangerous = settings.allowDangerousHtml || false
23126 /** @type {Record<string, MdastFootnoteDefinition>} */
23127 const footnoteById = {}
23128
23129 // To do: next major: add `options` to state, remove:
23130 // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,
23131 // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,
23132 // `unknownHandler`.
23133
23134 // To do: next major: move to `state.options.allowDangerousHtml`.
23135 state.dangerous = dangerous
23136 // To do: next major: move to `state.options`.
23137 state.clobberPrefix =
23138 settings.clobberPrefix === undefined || settings.clobberPrefix === null
23139 ? 'user-content-'
23140 : settings.clobberPrefix
23141 // To do: next major: move to `state.options`.
23142 state.footnoteLabel = settings.footnoteLabel || 'Footnotes'
23143 // To do: next major: move to `state.options`.
23144 state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'
23145 // To do: next major: move to `state.options`.
23146 state.footnoteLabelProperties = settings.footnoteLabelProperties || {
23147 className: ['sr-only']
23148 }
23149 // To do: next major: move to `state.options`.
23150 state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'
23151 // To do: next major: move to `state.options`.
23152 state.unknownHandler = settings.unknownHandler
23153 // To do: next major: move to `state.options`.
23154 state.passThrough = settings.passThrough
23155
23156 state.handlers = {..._handlers_index_js__WEBPACK_IMPORTED_MODULE_0__.handlers, ...settings.handlers}
23157
23158 // To do: next major: replace utility with `definitionById` object, so we
23159 // only walk once (as we need footnotes too).
23160 state.definition = (0,mdast_util_definitions__WEBPACK_IMPORTED_MODULE_1__.definitions)(tree)
23161 state.footnoteById = footnoteById
23162 /** @type {Array<string>} */
23163 state.footnoteOrder = []
23164 /** @type {Record<string, number>} */
23165 state.footnoteCounts = {}
23166
23167 state.patch = patch
23168 state.applyData = applyData
23169 state.one = oneBound
23170 state.all = allBound
23171 state.wrap = wrap
23172 // To do: next major: remove `augment`.
23173 state.augment = augment
23174
23175 ;(0,unist_util_visit__WEBPACK_IMPORTED_MODULE_2__.visit)(tree, 'footnoteDefinition', (definition) => {
23176 const id = String(definition.identifier).toUpperCase()
23177
23178 // Mimick CM behavior of link definitions.
23179 // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.
23180 if (!own.call(footnoteById, id)) {
23181 footnoteById[id] = definition
23182 }
23183 })
23184
23185 // @ts-expect-error Hush, it’s fine!
23186 return state
23187
23188 /**
23189 * Finalise the created `right`, a hast node, from `left`, an mdast node.
23190 *
23191 * @param {MdastNodeWithData | PositionLike | null | undefined} left
23192 * @param {HastElementContent} right
23193 * @returns {HastElementContent}
23194 */
23195 /* c8 ignore start */
23196 // To do: next major: remove.
23197 function augment(left, right) {
23198 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
23199 if (left && 'data' in left && left.data) {
23200 /** @type {MdastData} */
23201 const data = left.data
23202
23203 if (data.hName) {
23204 if (right.type !== 'element') {
23205 right = {
23206 type: 'element',
23207 tagName: '',
23208 properties: {},
23209 children: []
23210 }
23211 }
23212
23213 right.tagName = data.hName
23214 }
23215
23216 if (right.type === 'element' && data.hProperties) {
23217 right.properties = {...right.properties, ...data.hProperties}
23218 }
23219
23220 if ('children' in right && right.children && data.hChildren) {
23221 right.children = data.hChildren
23222 }
23223 }
23224
23225 if (left) {
23226 const ctx = 'type' in left ? left : {position: left}
23227
23228 if (!(0,unist_util_generated__WEBPACK_IMPORTED_MODULE_3__.generated)(ctx)) {
23229 // @ts-expect-error: fine.
23230 right.position = {start: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointStart)(ctx), end: (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.pointEnd)(ctx)}
23231 }
23232 }
23233
23234 return right
23235 }
23236 /* c8 ignore stop */
23237
23238 /**
23239 * Create an element for `node`.
23240 *
23241 * @type {HFunctionProps}
23242 */
23243 /* c8 ignore start */
23244 // To do: next major: remove.
23245 function state(node, tagName, props, children) {
23246 if (Array.isArray(props)) {
23247 children = props
23248 props = {}
23249 }
23250
23251 // @ts-expect-error augmenting an element yields an element.
23252 return augment(node, {
23253 type: 'element',
23254 tagName,
23255 properties: props || {},
23256 children: children || []
23257 })
23258 }
23259 /* c8 ignore stop */
23260
23261 /**
23262 * Transform an mdast node into a hast node.
23263 *
23264 * @param {MdastNodes} node
23265 * mdast node.
23266 * @param {MdastParents | null | undefined} [parent]
23267 * Parent of `node`.
23268 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23269 * Resulting hast node.
23270 */
23271 function oneBound(node, parent) {
23272 // @ts-expect-error: that’s a state :)
23273 return one(state, node, parent)
23274 }
23275
23276 /**
23277 * Transform the children of an mdast node into hast nodes.
23278 *
23279 * @param {MdastNodes} parent
23280 * mdast node to compile
23281 * @returns {Array<HastElementContent>}
23282 * Resulting hast nodes.
23283 */
23284 function allBound(parent) {
23285 // @ts-expect-error: that’s a state :)
23286 return all(state, parent)
23287 }
23288 }
23289
23290 /**
23291 * Copy a node’s positional info.
23292 *
23293 * @param {MdastNodes} from
23294 * mdast node to copy from.
23295 * @param {HastNodes} to
23296 * hast node to copy into.
23297 * @returns {void}
23298 * Nothing.
23299 */
23300 function patch(from, to) {
23301 if (from.position) to.position = (0,unist_util_position__WEBPACK_IMPORTED_MODULE_4__.position)(from)
23302 }
23303
23304 /**
23305 * Honor the `data` of `from` and maybe generate an element instead of `to`.
23306 *
23307 * @template {HastNodes} Type
23308 * Node type.
23309 * @param {MdastNodes} from
23310 * mdast node to use data from.
23311 * @param {Type} to
23312 * hast node to change.
23313 * @returns {Type | HastElement}
23314 * Nothing.
23315 */
23316 function applyData(from, to) {
23317 /** @type {Type | HastElement} */
23318 let result = to
23319
23320 // Handle `data.hName`, `data.hProperties, `data.hChildren`.
23321 if (from && from.data) {
23322 const hName = from.data.hName
23323 const hChildren = from.data.hChildren
23324 const hProperties = from.data.hProperties
23325
23326 if (typeof hName === 'string') {
23327 // Transforming the node resulted in an element with a different name
23328 // than wanted:
23329 if (result.type === 'element') {
23330 result.tagName = hName
23331 }
23332 // Transforming the node resulted in a non-element, which happens for
23333 // raw, text, and root nodes (unless custom handlers are passed).
23334 // The intent is likely to keep the content around (otherwise: pass
23335 // `hChildren`).
23336 else {
23337 result = {
23338 type: 'element',
23339 tagName: hName,
23340 properties: {},
23341 children: []
23342 }
23343
23344 // To do: next major: take the children from the `root`, or inject the
23345 // raw/text/comment or so into the element?
23346 // if ('children' in node) {
23347 // // @ts-expect-error: assume `children` are allowed in elements.
23348 // result.children = node.children
23349 // } else {
23350 // // @ts-expect-error: assume `node` is allowed in elements.
23351 // result.children.push(node)
23352 // }
23353 }
23354 }
23355
23356 if (result.type === 'element' && hProperties) {
23357 result.properties = {...result.properties, ...hProperties}
23358 }
23359
23360 if (
23361 'children' in result &&
23362 result.children &&
23363 hChildren !== null &&
23364 hChildren !== undefined
23365 ) {
23366 // @ts-expect-error: assume valid children are defined.
23367 result.children = hChildren
23368 }
23369 }
23370
23371 return result
23372 }
23373
23374 /**
23375 * Transform an mdast node into a hast node.
23376 *
23377 * @param {State} state
23378 * Info passed around.
23379 * @param {MdastNodes} node
23380 * mdast node.
23381 * @param {MdastParents | null | undefined} [parent]
23382 * Parent of `node`.
23383 * @returns {HastElementContent | Array<HastElementContent> | null | undefined}
23384 * Resulting hast node.
23385 */
23386 // To do: next major: do not expose, keep bound.
23387 function one(state, node, parent) {
23388 const type = node && node.type
23389
23390 // Fail on non-nodes.
23391 if (!type) {
23392 throw new Error('Expected node, got `' + node + '`')
23393 }
23394
23395 if (own.call(state.handlers, type)) {
23396 return state.handlers[type](state, node, parent)
23397 }
23398
23399 if (state.passThrough && state.passThrough.includes(type)) {
23400 // To do: next major: deep clone.
23401 // @ts-expect-error: types of passed through nodes are expected to be added manually.
23402 return 'children' in node ? {...node, children: all(state, node)} : node
23403 }
23404
23405 if (state.unknownHandler) {
23406 return state.unknownHandler(state, node, parent)
23407 }
23408
23409 return defaultUnknownHandler(state, node)
23410 }
23411
23412 /**
23413 * Transform the children of an mdast node into hast nodes.
23414 *
23415 * @param {State} state
23416 * Info passed around.
23417 * @param {MdastNodes} parent
23418 * mdast node to compile
23419 * @returns {Array<HastElementContent>}
23420 * Resulting hast nodes.
23421 */
23422 // To do: next major: do not expose, keep bound.
23423 function all(state, parent) {
23424 /** @type {Array<HastElementContent>} */
23425 const values = []
23426
23427 if ('children' in parent) {
23428 const nodes = parent.children
23429 let index = -1
23430 while (++index < nodes.length) {
23431 const result = one(state, nodes[index], parent)
23432
23433 // To do: see if we van clean this? Can we merge texts?
23434 if (result) {
23435 if (index && nodes[index - 1].type === 'break') {
23436 if (!Array.isArray(result) && result.type === 'text') {
23437 result.value = result.value.replace(/^\s+/, '')
23438 }
23439
23440 if (!Array.isArray(result) && result.type === 'element') {
23441 const head = result.children[0]
23442
23443 if (head && head.type === 'text') {
23444 head.value = head.value.replace(/^\s+/, '')
23445 }
23446 }
23447 }
23448
23449 if (Array.isArray(result)) {
23450 values.push(...result)
23451 } else {
23452 values.push(result)
23453 }
23454 }
23455 }
23456 }
23457
23458 return values
23459 }
23460
23461 /**
23462 * Transform an unknown node.
23463 *
23464 * @param {State} state
23465 * Info passed around.
23466 * @param {MdastNodes} node
23467 * Unknown mdast node.
23468 * @returns {HastText | HastElement}
23469 * Resulting hast node.
23470 */
23471 function defaultUnknownHandler(state, node) {
23472 const data = node.data || {}
23473 /** @type {HastText | HastElement} */
23474 const result =
23475 'value' in node &&
23476 !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))
23477 ? {type: 'text', value: node.value}
23478 : {
23479 type: 'element',
23480 tagName: 'div',
23481 properties: {},
23482 children: all(state, node)
23483 }
23484
23485 state.patch(node, result)
23486 return state.applyData(node, result)
23487 }
23488
23489 /**
23490 * Wrap `nodes` with line endings between each node.
23491 *
23492 * @template {HastContent} Type
23493 * Node type.
23494 * @param {Array<Type>} nodes
23495 * List of nodes to wrap.
23496 * @param {boolean | null | undefined} [loose=false]
23497 * Whether to add line endings at start and end.
23498 * @returns {Array<Type | HastText>}
23499 * Wrapped nodes.
23500 */
23501 function wrap(nodes, loose) {
23502 /** @type {Array<Type | HastText>} */
23503 const result = []
23504 let index = -1
23505
23506 if (loose) {
23507 result.push({type: 'text', value: '\n'})
23508 }
23509
23510 while (++index < nodes.length) {
23511 if (index) result.push({type: 'text', value: '\n'})
23512 result.push(nodes[index])
23513 }
23514
23515 if (loose && nodes.length > 0) {
23516 result.push({type: 'text', value: '\n'})
23517 }
23518
23519 return result
23520 }
23521
23522
23523 /***/ }),
23524
23525 /***/ "../node_modules/mdast-util-to-string/lib/index.js":
23526 /*!*********************************************************!*\
23527 !*** ../node_modules/mdast-util-to-string/lib/index.js ***!
23528 \*********************************************************/
23529 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23530
23531 "use strict";
23532 __webpack_require__.r(__webpack_exports__);
23533 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23534 /* harmony export */ toString: () => (/* binding */ toString)
23535 /* harmony export */ });
23536 /**
23537 * @typedef {import('mdast').Root|import('mdast').Content} Node
23538 *
23539 * @typedef Options
23540 * Configuration (optional).
23541 * @property {boolean | null | undefined} [includeImageAlt=true]
23542 * Whether to use `alt` for `image`s.
23543 * @property {boolean | null | undefined} [includeHtml=true]
23544 * Whether to use `value` of HTML.
23545 */
23546
23547 /** @type {Options} */
23548 const emptyOptions = {}
23549
23550 /**
23551 * Get the text content of a node or list of nodes.
23552 *
23553 * Prefers the node’s plain-text fields, otherwise serializes its children,
23554 * and if the given value is an array, serialize the nodes in it.
23555 *
23556 * @param {unknown} value
23557 * Thing to serialize, typically `Node`.
23558 * @param {Options | null | undefined} [options]
23559 * Configuration (optional).
23560 * @returns {string}
23561 * Serialized `value`.
23562 */
23563 function toString(value, options) {
23564 const settings = options || emptyOptions
23565 const includeImageAlt =
23566 typeof settings.includeImageAlt === 'boolean'
23567 ? settings.includeImageAlt
23568 : true
23569 const includeHtml =
23570 typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true
23571
23572 return one(value, includeImageAlt, includeHtml)
23573 }
23574
23575 /**
23576 * One node or several nodes.
23577 *
23578 * @param {unknown} value
23579 * Thing to serialize.
23580 * @param {boolean} includeImageAlt
23581 * Include image `alt`s.
23582 * @param {boolean} includeHtml
23583 * Include HTML.
23584 * @returns {string}
23585 * Serialized node.
23586 */
23587 function one(value, includeImageAlt, includeHtml) {
23588 if (node(value)) {
23589 if ('value' in value) {
23590 return value.type === 'html' && !includeHtml ? '' : value.value
23591 }
23592
23593 if (includeImageAlt && 'alt' in value && value.alt) {
23594 return value.alt
23595 }
23596
23597 if ('children' in value) {
23598 return all(value.children, includeImageAlt, includeHtml)
23599 }
23600 }
23601
23602 if (Array.isArray(value)) {
23603 return all(value, includeImageAlt, includeHtml)
23604 }
23605
23606 return ''
23607 }
23608
23609 /**
23610 * Serialize a list of nodes.
23611 *
23612 * @param {Array<unknown>} values
23613 * Thing to serialize.
23614 * @param {boolean} includeImageAlt
23615 * Include image `alt`s.
23616 * @param {boolean} includeHtml
23617 * Include HTML.
23618 * @returns {string}
23619 * Serialized nodes.
23620 */
23621 function all(values, includeImageAlt, includeHtml) {
23622 /** @type {Array<string>} */
23623 const result = []
23624 let index = -1
23625
23626 while (++index < values.length) {
23627 result[index] = one(values[index], includeImageAlt, includeHtml)
23628 }
23629
23630 return result.join('')
23631 }
23632
23633 /**
23634 * Check if `value` looks like a node.
23635 *
23636 * @param {unknown} value
23637 * Thing.
23638 * @returns {value is Node}
23639 * Whether `value` is a node.
23640 */
23641 function node(value) {
23642 return Boolean(value && typeof value === 'object')
23643 }
23644
23645
23646 /***/ }),
23647
23648 /***/ "../node_modules/micromark-core-commonmark/dev/lib/attention.js":
23649 /*!**********************************************************************!*\
23650 !*** ../node_modules/micromark-core-commonmark/dev/lib/attention.js ***!
23651 \**********************************************************************/
23652 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23653
23654 "use strict";
23655 __webpack_require__.r(__webpack_exports__);
23656 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23657 /* harmony export */ attention: () => (/* binding */ attention)
23658 /* harmony export */ });
23659 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
23660 /* 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");
23661 /* 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");
23662 /* 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");
23663 /* 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");
23664 /* 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");
23665 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23666 /**
23667 * @typedef {import('micromark-util-types').Code} Code
23668 * @typedef {import('micromark-util-types').Construct} Construct
23669 * @typedef {import('micromark-util-types').Event} Event
23670 * @typedef {import('micromark-util-types').Point} Point
23671 * @typedef {import('micromark-util-types').Resolver} Resolver
23672 * @typedef {import('micromark-util-types').State} State
23673 * @typedef {import('micromark-util-types').Token} Token
23674 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23675 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23676 */
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686 /** @type {Construct} */
23687 const attention = {
23688 name: 'attention',
23689 tokenize: tokenizeAttention,
23690 resolveAll: resolveAllAttention
23691 }
23692
23693 /**
23694 * Take all events and resolve attention to emphasis or strong.
23695 *
23696 * @type {Resolver}
23697 */
23698 function resolveAllAttention(events, context) {
23699 let index = -1
23700 /** @type {number} */
23701 let open
23702 /** @type {Token} */
23703 let group
23704 /** @type {Token} */
23705 let text
23706 /** @type {Token} */
23707 let openingSequence
23708 /** @type {Token} */
23709 let closingSequence
23710 /** @type {number} */
23711 let use
23712 /** @type {Array<Event>} */
23713 let nextEvents
23714 /** @type {number} */
23715 let offset
23716
23717 // Walk through all events.
23718 //
23719 // Note: performance of this is fine on an mb of normal markdown, but it’s
23720 // a bottleneck for malicious stuff.
23721 while (++index < events.length) {
23722 // Find a token that can close.
23723 if (
23724 events[index][0] === 'enter' &&
23725 events[index][1].type === 'attentionSequence' &&
23726 events[index][1]._close
23727 ) {
23728 open = index
23729
23730 // Now walk back to find an opener.
23731 while (open--) {
23732 // Find a token that can open the closer.
23733 if (
23734 events[open][0] === 'exit' &&
23735 events[open][1].type === 'attentionSequence' &&
23736 events[open][1]._open &&
23737 // If the markers are the same:
23738 context.sliceSerialize(events[open][1]).charCodeAt(0) ===
23739 context.sliceSerialize(events[index][1]).charCodeAt(0)
23740 ) {
23741 // If the opening can close or the closing can open,
23742 // and the close size *is not* a multiple of three,
23743 // but the sum of the opening and closing size *is* multiple of three,
23744 // then don’t match.
23745 if (
23746 (events[open][1]._close || events[index][1]._open) &&
23747 (events[index][1].end.offset - events[index][1].start.offset) % 3 &&
23748 !(
23749 (events[open][1].end.offset -
23750 events[open][1].start.offset +
23751 events[index][1].end.offset -
23752 events[index][1].start.offset) %
23753 3
23754 )
23755 ) {
23756 continue
23757 }
23758
23759 // Number of markers to use from the sequence.
23760 use =
23761 events[open][1].end.offset - events[open][1].start.offset > 1 &&
23762 events[index][1].end.offset - events[index][1].start.offset > 1
23763 ? 2
23764 : 1
23765
23766 const start = Object.assign({}, events[open][1].end)
23767 const end = Object.assign({}, events[index][1].start)
23768 movePoint(start, -use)
23769 movePoint(end, use)
23770
23771 openingSequence = {
23772 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,
23773 start,
23774 end: Object.assign({}, events[open][1].end)
23775 }
23776 closingSequence = {
23777 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,
23778 start: Object.assign({}, events[index][1].start),
23779 end
23780 }
23781 text = {
23782 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,
23783 start: Object.assign({}, events[open][1].end),
23784 end: Object.assign({}, events[index][1].start)
23785 }
23786 group = {
23787 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,
23788 start: Object.assign({}, openingSequence.start),
23789 end: Object.assign({}, closingSequence.end)
23790 }
23791
23792 events[open][1].end = Object.assign({}, openingSequence.start)
23793 events[index][1].start = Object.assign({}, closingSequence.end)
23794
23795 nextEvents = []
23796
23797 // If there are more markers in the opening, add them before.
23798 if (events[open][1].end.offset - events[open][1].start.offset) {
23799 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23800 ['enter', events[open][1], context],
23801 ['exit', events[open][1], context]
23802 ])
23803 }
23804
23805 // Opening.
23806 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23807 ['enter', group, context],
23808 ['enter', openingSequence, context],
23809 ['exit', openingSequence, context],
23810 ['enter', text, context]
23811 ])
23812
23813 // Always populated by defaults.
23814 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23815 context.parser.constructs.insideSpan.null,
23816 'expected `insideSpan` to be populated'
23817 )
23818
23819 // Between.
23820 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
23821 nextEvents,
23822 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
23823 context.parser.constructs.insideSpan.null,
23824 events.slice(open + 1, index),
23825 context
23826 )
23827 )
23828
23829 // Closing.
23830 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23831 ['exit', text, context],
23832 ['enter', closingSequence, context],
23833 ['exit', closingSequence, context],
23834 ['exit', group, context]
23835 ])
23836
23837 // If there are more markers in the closing, add them after.
23838 if (events[index][1].end.offset - events[index][1].start.offset) {
23839 offset = 2
23840 nextEvents = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(nextEvents, [
23841 ['enter', events[index][1], context],
23842 ['exit', events[index][1], context]
23843 ])
23844 } else {
23845 offset = 0
23846 }
23847
23848 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open - 1, index - open + 3, nextEvents)
23849
23850 index = open + nextEvents.length - offset - 2
23851 break
23852 }
23853 }
23854 }
23855 }
23856
23857 // Remove remaining sequences.
23858 index = -1
23859
23860 while (++index < events.length) {
23861 if (events[index][1].type === 'attentionSequence') {
23862 events[index][1].type = 'data'
23863 }
23864 }
23865
23866 return events
23867 }
23868
23869 /**
23870 * @this {TokenizeContext}
23871 * @type {Tokenizer}
23872 */
23873 function tokenizeAttention(effects, ok) {
23874 const attentionMarkers = this.parser.constructs.attentionMarkers.null
23875 const previous = this.previous
23876 const before = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(previous)
23877
23878 /** @type {NonNullable<Code>} */
23879 let marker
23880
23881 return start
23882
23883 /**
23884 * Before a sequence.
23885 *
23886 * ```markdown
23887 * > | **
23888 * ^
23889 * ```
23890 *
23891 * @type {State}
23892 */
23893 function start(code) {
23894 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
23895 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.underscore,
23896 'expected asterisk or underscore'
23897 )
23898 marker = code
23899 effects.enter('attentionSequence')
23900 return inside(code)
23901 }
23902
23903 /**
23904 * In a sequence.
23905 *
23906 * ```markdown
23907 * > | **
23908 * ^^
23909 * ```
23910 *
23911 * @type {State}
23912 */
23913 function inside(code) {
23914 if (code === marker) {
23915 effects.consume(code)
23916 return inside
23917 }
23918
23919 const token = effects.exit('attentionSequence')
23920
23921 // To do: next major: move this to resolver, just like `markdown-rs`.
23922 const after = (0,micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_4__.classifyCharacter)(code)
23923
23924 // Always populated by defaults.
23925 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(attentionMarkers, 'expected `attentionMarkers` to be populated')
23926
23927 const open =
23928 !after ||
23929 (after === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && before) ||
23930 attentionMarkers.includes(code)
23931 const close =
23932 !before ||
23933 (before === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_6__.constants.characterGroupPunctuation && after) ||
23934 attentionMarkers.includes(previous)
23935
23936 token._open = Boolean(
23937 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? open : open && (before || !close)
23938 )
23939 token._close = Boolean(
23940 marker === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.asterisk ? close : close && (after || !open)
23941 )
23942 return ok(code)
23943 }
23944 }
23945
23946 /**
23947 * Move a point a bit.
23948 *
23949 * Note: `move` only works inside lines! It’s not possible to move past other
23950 * chunks (replacement characters, tabs, or line endings).
23951 *
23952 * @param {Point} point
23953 * @param {number} offset
23954 * @returns {void}
23955 */
23956 function movePoint(point, offset) {
23957 point.column += offset
23958 point.offset += offset
23959 point._bufferIndex += offset
23960 }
23961
23962
23963 /***/ }),
23964
23965 /***/ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js":
23966 /*!*********************************************************************!*\
23967 !*** ../node_modules/micromark-core-commonmark/dev/lib/autolink.js ***!
23968 \*********************************************************************/
23969 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
23970
23971 "use strict";
23972 __webpack_require__.r(__webpack_exports__);
23973 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23974 /* harmony export */ autolink: () => (/* binding */ autolink)
23975 /* harmony export */ });
23976 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
23977 /* 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");
23978 /* 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");
23979 /* 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");
23980 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
23981 /**
23982 * @typedef {import('micromark-util-types').Construct} Construct
23983 * @typedef {import('micromark-util-types').State} State
23984 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
23985 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
23986 */
23987
23988
23989
23990
23991
23992
23993
23994 /** @type {Construct} */
23995 const autolink = {name: 'autolink', tokenize: tokenizeAutolink}
23996
23997 /**
23998 * @this {TokenizeContext}
23999 * @type {Tokenizer}
24000 */
24001 function tokenizeAutolink(effects, ok, nok) {
24002 let size = 0
24003
24004 return start
24005
24006 /**
24007 * Start of an autolink.
24008 *
24009 * ```markdown
24010 * > | a<https://example.com>b
24011 * ^
24012 * > | a<user@example.com>b
24013 * ^
24014 * ```
24015 *
24016 * @type {State}
24017 */
24018 function start(code) {
24019 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
24020 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
24021 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24022 effects.consume(code)
24023 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24024 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
24025 return open
24026 }
24027
24028 /**
24029 * After `<`, at protocol or atext.
24030 *
24031 * ```markdown
24032 * > | a<https://example.com>b
24033 * ^
24034 * > | a<user@example.com>b
24035 * ^
24036 * ```
24037 *
24038 * @type {State}
24039 */
24040 function open(code) {
24041 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
24042 effects.consume(code)
24043 return schemeOrEmailAtext
24044 }
24045
24046 return emailAtext(code)
24047 }
24048
24049 /**
24050 * At second byte of protocol or atext.
24051 *
24052 * ```markdown
24053 * > | a<https://example.com>b
24054 * ^
24055 * > | a<user@example.com>b
24056 * ^
24057 * ```
24058 *
24059 * @type {State}
24060 */
24061 function schemeOrEmailAtext(code) {
24062 // ASCII alphanumeric and `+`, `-`, and `.`.
24063 if (
24064 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
24065 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
24066 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
24067 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
24068 ) {
24069 // Count the previous alphabetical from `open` too.
24070 size = 1
24071 return schemeInsideOrEmailAtext(code)
24072 }
24073
24074 return emailAtext(code)
24075 }
24076
24077 /**
24078 * In ambiguous protocol or atext.
24079 *
24080 * ```markdown
24081 * > | a<https://example.com>b
24082 * ^
24083 * > | a<user@example.com>b
24084 * ^
24085 * ```
24086 *
24087 * @type {State}
24088 */
24089 function schemeInsideOrEmailAtext(code) {
24090 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {
24091 effects.consume(code)
24092 size = 0
24093 return urlInside
24094 }
24095
24096 // ASCII alphanumeric and `+`, `-`, and `.`.
24097 if (
24098 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||
24099 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
24100 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
24101 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
24102 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax
24103 ) {
24104 effects.consume(code)
24105 return schemeInsideOrEmailAtext
24106 }
24107
24108 size = 0
24109 return emailAtext(code)
24110 }
24111
24112 /**
24113 * After protocol, in URL.
24114 *
24115 * ```markdown
24116 * > | a<https://example.com>b
24117 * ^
24118 * ```
24119 *
24120 * @type {State}
24121 */
24122 function urlInside(code) {
24123 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24124 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)
24125 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24126 effects.consume(code)
24127 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24128 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
24129 return ok
24130 }
24131
24132 // ASCII control, space, or `<`.
24133 if (
24134 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
24135 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space ||
24136 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
24137 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)
24138 ) {
24139 return nok(code)
24140 }
24141
24142 effects.consume(code)
24143 return urlInside
24144 }
24145
24146 /**
24147 * In email atext.
24148 *
24149 * ```markdown
24150 * > | a<user.name@example.com>b
24151 * ^
24152 * ```
24153 *
24154 * @type {State}
24155 */
24156 function emailAtext(code) {
24157 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {
24158 effects.consume(code)
24159 return emailAtSignOrDot
24160 }
24161
24162 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {
24163 effects.consume(code)
24164 return emailAtext
24165 }
24166
24167 return nok(code)
24168 }
24169
24170 /**
24171 * In label, after at-sign or dot.
24172 *
24173 * ```markdown
24174 * > | a<user.name@example.com>b
24175 * ^ ^
24176 * ```
24177 *
24178 * @type {State}
24179 */
24180 function emailAtSignOrDot(code) {
24181 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code)
24182 }
24183
24184 /**
24185 * In label, where `.` and `>` are allowed.
24186 *
24187 * ```markdown
24188 * > | a<user.name@example.com>b
24189 * ^
24190 * ```
24191 *
24192 * @type {State}
24193 */
24194 function emailLabel(code) {
24195 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {
24196 effects.consume(code)
24197 size = 0
24198 return emailAtSignOrDot
24199 }
24200
24201 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24202 // Exit, then change the token type.
24203 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
24204 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24205 effects.consume(code)
24206 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)
24207 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.autolink)
24208 return ok
24209 }
24210
24211 return emailValue(code)
24212 }
24213
24214 /**
24215 * In label, where `.` and `>` are *not* allowed.
24216 *
24217 * Though, this is also used in `emailLabel` to parse other values.
24218 *
24219 * ```markdown
24220 * > | a<user.name@ex-ample.com>b
24221 * ^
24222 * ```
24223 *
24224 * @type {State}
24225 */
24226 function emailValue(code) {
24227 // ASCII alphanumeric or `-`.
24228 if (
24229 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&
24230 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax
24231 ) {
24232 const next = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel
24233 effects.consume(code)
24234 return next
24235 }
24236
24237 return nok(code)
24238 }
24239 }
24240
24241
24242 /***/ }),
24243
24244 /***/ "../node_modules/micromark-core-commonmark/dev/lib/blank-line.js":
24245 /*!***********************************************************************!*\
24246 !*** ../node_modules/micromark-core-commonmark/dev/lib/blank-line.js ***!
24247 \***********************************************************************/
24248 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24249
24250 "use strict";
24251 __webpack_require__.r(__webpack_exports__);
24252 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24253 /* harmony export */ blankLine: () => (/* binding */ blankLine)
24254 /* harmony export */ });
24255 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24256 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24257 /* 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");
24258 /* 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");
24259 /**
24260 * @typedef {import('micromark-util-types').Construct} Construct
24261 * @typedef {import('micromark-util-types').State} State
24262 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24263 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24264 */
24265
24266
24267
24268
24269
24270
24271 /** @type {Construct} */
24272 const blankLine = {tokenize: tokenizeBlankLine, partial: true}
24273
24274 /**
24275 * @this {TokenizeContext}
24276 * @type {Tokenizer}
24277 */
24278 function tokenizeBlankLine(effects, ok, nok) {
24279 return start
24280
24281 /**
24282 * Start of blank line.
24283 *
24284 * > 👉 **Note**: `␠` represents a space character.
24285 *
24286 * ```markdown
24287 * > | ␠␠␊
24288 * ^
24289 * > | ␊
24290 * ^
24291 * ```
24292 *
24293 * @type {State}
24294 */
24295 function start(code) {
24296 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)
24297 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)(code)
24298 : after(code)
24299 }
24300
24301 /**
24302 * At eof/eol, after optional whitespace.
24303 *
24304 * > 👉 **Note**: `␠` represents a space character.
24305 *
24306 * ```markdown
24307 * > | ␠␠␊
24308 * ^
24309 * > | ␊
24310 * ^
24311 * ```
24312 *
24313 * @type {State}
24314 */
24315 function after(code) {
24316 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)
24317 }
24318 }
24319
24320
24321 /***/ }),
24322
24323 /***/ "../node_modules/micromark-core-commonmark/dev/lib/block-quote.js":
24324 /*!************************************************************************!*\
24325 !*** ../node_modules/micromark-core-commonmark/dev/lib/block-quote.js ***!
24326 \************************************************************************/
24327 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24328
24329 "use strict";
24330 __webpack_require__.r(__webpack_exports__);
24331 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24332 /* harmony export */ blockQuote: () => (/* binding */ blockQuote)
24333 /* harmony export */ });
24334 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24335 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24336 /* 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");
24337 /* 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");
24338 /* 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");
24339 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24340 /**
24341 * @typedef {import('micromark-util-types').Construct} Construct
24342 * @typedef {import('micromark-util-types').Exiter} Exiter
24343 * @typedef {import('micromark-util-types').State} State
24344 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24345 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24346 */
24347
24348
24349
24350
24351
24352
24353
24354
24355 /** @type {Construct} */
24356 const blockQuote = {
24357 name: 'blockQuote',
24358 tokenize: tokenizeBlockQuoteStart,
24359 continuation: {tokenize: tokenizeBlockQuoteContinuation},
24360 exit
24361 }
24362
24363 /**
24364 * @this {TokenizeContext}
24365 * @type {Tokenizer}
24366 */
24367 function tokenizeBlockQuoteStart(effects, ok, nok) {
24368 const self = this
24369
24370 return start
24371
24372 /**
24373 * Start of block quote.
24374 *
24375 * ```markdown
24376 * > | > a
24377 * ^
24378 * ```
24379 *
24380 * @type {State}
24381 */
24382 function start(code) {
24383 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
24384 const state = self.containerState
24385
24386 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(state, 'expected `containerState` to be defined in container')
24387
24388 if (!state.open) {
24389 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote, {_container: true})
24390 state.open = true
24391 }
24392
24393 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24394 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24395 effects.consume(code)
24396 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuoteMarker)
24397 return after
24398 }
24399
24400 return nok(code)
24401 }
24402
24403 /**
24404 * After `>`, before optional whitespace.
24405 *
24406 * ```markdown
24407 * > | > a
24408 * ^
24409 * ```
24410 *
24411 * @type {State}
24412 */
24413 function after(code) {
24414 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24415 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24416 effects.consume(code)
24417 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefixWhitespace)
24418 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24419 return ok
24420 }
24421
24422 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuotePrefix)
24423 return ok(code)
24424 }
24425 }
24426
24427 /**
24428 * Start of block quote continuation.
24429 *
24430 * ```markdown
24431 * | > a
24432 * > | > b
24433 * ^
24434 * ```
24435 *
24436 * @this {TokenizeContext}
24437 * @type {Tokenizer}
24438 */
24439 function tokenizeBlockQuoteContinuation(effects, ok, nok) {
24440 const self = this
24441
24442 return contStart
24443
24444 /**
24445 * Start of block quote continuation.
24446 *
24447 * Also used to parse the first block quote opening.
24448 *
24449 * ```markdown
24450 * | > a
24451 * > | > b
24452 * ^
24453 * ```
24454 *
24455 * @type {State}
24456 */
24457 function contStart(code) {
24458 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
24459 // Always populated by defaults.
24460 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24461 self.parser.constructs.disable.null,
24462 'expected `disable.null` to be populated'
24463 )
24464
24465 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(
24466 effects,
24467 contBefore,
24468 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
24469 self.parser.constructs.disable.null.includes('codeIndented')
24470 ? undefined
24471 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
24472 )(code)
24473 }
24474
24475 return contBefore(code)
24476 }
24477
24478 /**
24479 * At `>`, after optional whitespace.
24480 *
24481 * Also used to parse the first block quote opening.
24482 *
24483 * ```markdown
24484 * | > a
24485 * > | > b
24486 * ^
24487 * ```
24488 *
24489 * @type {State}
24490 */
24491 function contBefore(code) {
24492 return effects.attempt(blockQuote, ok, nok)(code)
24493 }
24494 }
24495
24496 /** @type {Exiter} */
24497 function exit(effects) {
24498 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.blockQuote)
24499 }
24500
24501
24502 /***/ }),
24503
24504 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-escape.js":
24505 /*!*****************************************************************************!*\
24506 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-escape.js ***!
24507 \*****************************************************************************/
24508 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24509
24510 "use strict";
24511 __webpack_require__.r(__webpack_exports__);
24512 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24513 /* harmony export */ characterEscape: () => (/* binding */ characterEscape)
24514 /* harmony export */ });
24515 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24516 /* 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");
24517 /* 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");
24518 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24519 /**
24520 * @typedef {import('micromark-util-types').Construct} Construct
24521 * @typedef {import('micromark-util-types').State} State
24522 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24523 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24524 */
24525
24526
24527
24528
24529
24530
24531 /** @type {Construct} */
24532 const characterEscape = {
24533 name: 'characterEscape',
24534 tokenize: tokenizeCharacterEscape
24535 }
24536
24537 /**
24538 * @this {TokenizeContext}
24539 * @type {Tokenizer}
24540 */
24541 function tokenizeCharacterEscape(effects, ok, nok) {
24542 return start
24543
24544 /**
24545 * Start of character escape.
24546 *
24547 * ```markdown
24548 * > | a\*b
24549 * ^
24550 * ```
24551 *
24552 * @type {State}
24553 */
24554 function start(code) {
24555 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
24556 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24557 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24558 effects.consume(code)
24559 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.escapeMarker)
24560 return inside
24561 }
24562
24563 /**
24564 * After `\`, at punctuation.
24565 *
24566 * ```markdown
24567 * > | a\*b
24568 * ^
24569 * ```
24570 *
24571 * @type {State}
24572 */
24573 function inside(code) {
24574 // ASCII punctuation.
24575 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiPunctuation)(code)) {
24576 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24577 effects.consume(code)
24578 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscapeValue)
24579 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterEscape)
24580 return ok
24581 }
24582
24583 return nok(code)
24584 }
24585 }
24586
24587
24588 /***/ }),
24589
24590 /***/ "../node_modules/micromark-core-commonmark/dev/lib/character-reference.js":
24591 /*!********************************************************************************!*\
24592 !*** ../node_modules/micromark-core-commonmark/dev/lib/character-reference.js ***!
24593 \********************************************************************************/
24594 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24595
24596 "use strict";
24597 __webpack_require__.r(__webpack_exports__);
24598 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24599 /* harmony export */ characterReference: () => (/* binding */ characterReference)
24600 /* harmony export */ });
24601 /* 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");
24602 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24603 /* 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");
24604 /* 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");
24605 /* 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");
24606 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24607 /**
24608 * @typedef {import('micromark-util-types').Code} Code
24609 * @typedef {import('micromark-util-types').Construct} Construct
24610 * @typedef {import('micromark-util-types').State} State
24611 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24612 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24613 */
24614
24615
24616
24617
24618
24619
24620
24621
24622 /** @type {Construct} */
24623 const characterReference = {
24624 name: 'characterReference',
24625 tokenize: tokenizeCharacterReference
24626 }
24627
24628 /**
24629 * @this {TokenizeContext}
24630 * @type {Tokenizer}
24631 */
24632 function tokenizeCharacterReference(effects, ok, nok) {
24633 const self = this
24634 let size = 0
24635 /** @type {number} */
24636 let max
24637 /** @type {(code: Code) => boolean} */
24638 let test
24639
24640 return start
24641
24642 /**
24643 * Start of character reference.
24644 *
24645 * ```markdown
24646 * > | a&amp;b
24647 * ^
24648 * > | a&#123;b
24649 * ^
24650 * > | a&#x9;b
24651 * ^
24652 * ```
24653 *
24654 * @type {State}
24655 */
24656 function start(code) {
24657 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.ampersand, 'expected `&`')
24658 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24659 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24660 effects.consume(code)
24661 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24662 return open
24663 }
24664
24665 /**
24666 * After `&`, at `#` for numeric references or alphanumeric for named
24667 * references.
24668 *
24669 * ```markdown
24670 * > | a&amp;b
24671 * ^
24672 * > | a&#123;b
24673 * ^
24674 * > | a&#x9;b
24675 * ^
24676 * ```
24677 *
24678 * @type {State}
24679 */
24680 function open(code) {
24681 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.numberSign) {
24682 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24683 effects.consume(code)
24684 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerNumeric)
24685 return numeric
24686 }
24687
24688 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24689 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceNamedSizeMax
24690 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric
24691 return value(code)
24692 }
24693
24694 /**
24695 * After `#`, at `x` for hexadecimals or digit for decimals.
24696 *
24697 * ```markdown
24698 * > | a&#123;b
24699 * ^
24700 * > | a&#x9;b
24701 * ^
24702 * ```
24703 *
24704 * @type {State}
24705 */
24706 function numeric(code) {
24707 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) {
24708 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24709 effects.consume(code)
24710 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarkerHexadecimal)
24711 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24712 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceHexadecimalSizeMax
24713 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiHexDigit
24714 return value
24715 }
24716
24717 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24718 max = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.characterReferenceDecimalSizeMax
24719 test = micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiDigit
24720 return value(code)
24721 }
24722
24723 /**
24724 * After markers (`&#x`, `&#`, or `&`), in value, before `;`.
24725 *
24726 * The character reference kind defines what and how many characters are
24727 * allowed.
24728 *
24729 * ```markdown
24730 * > | a&amp;b
24731 * ^^^
24732 * > | a&#123;b
24733 * ^^^
24734 * > | a&#x9;b
24735 * ^
24736 * ```
24737 *
24738 * @type {State}
24739 */
24740 function value(code) {
24741 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.semicolon && size) {
24742 const token = effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceValue)
24743
24744 if (
24745 test === micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric &&
24746 !(0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_5__.decodeNamedCharacterReference)(self.sliceSerialize(token))
24747 ) {
24748 return nok(code)
24749 }
24750
24751 // To do: `markdown-rs` uses a different name:
24752 // `CharacterReferenceMarkerSemi`.
24753 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24754 effects.consume(code)
24755 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReferenceMarker)
24756 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.characterReference)
24757 return ok
24758 }
24759
24760 if (test(code) && size++ < max) {
24761 effects.consume(code)
24762 return value
24763 }
24764
24765 return nok(code)
24766 }
24767 }
24768
24769
24770 /***/ }),
24771
24772 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js":
24773 /*!************************************************************************!*\
24774 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js ***!
24775 \************************************************************************/
24776 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24777
24778 "use strict";
24779 __webpack_require__.r(__webpack_exports__);
24780 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24781 /* harmony export */ codeFenced: () => (/* binding */ codeFenced)
24782 /* harmony export */ });
24783 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
24784 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
24785 /* 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");
24786 /* 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");
24787 /* 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");
24788 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
24789 /**
24790 * @typedef {import('micromark-util-types').Code} Code
24791 * @typedef {import('micromark-util-types').Construct} Construct
24792 * @typedef {import('micromark-util-types').State} State
24793 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
24794 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
24795 */
24796
24797
24798
24799
24800
24801
24802
24803
24804 /** @type {Construct} */
24805 const nonLazyContinuation = {
24806 tokenize: tokenizeNonLazyContinuation,
24807 partial: true
24808 }
24809
24810 /** @type {Construct} */
24811 const codeFenced = {
24812 name: 'codeFenced',
24813 tokenize: tokenizeCodeFenced,
24814 concrete: true
24815 }
24816
24817 /**
24818 * @this {TokenizeContext}
24819 * @type {Tokenizer}
24820 */
24821 function tokenizeCodeFenced(effects, ok, nok) {
24822 const self = this
24823 /** @type {Construct} */
24824 const closeStart = {tokenize: tokenizeCloseStart, partial: true}
24825 let initialPrefix = 0
24826 let sizeOpen = 0
24827 /** @type {NonNullable<Code>} */
24828 let marker
24829
24830 return start
24831
24832 /**
24833 * Start of code.
24834 *
24835 * ```markdown
24836 * > | ~~~js
24837 * ^
24838 * | alert(1)
24839 * | ~~~
24840 * ```
24841 *
24842 * @type {State}
24843 */
24844 function start(code) {
24845 // To do: parse whitespace like `markdown-rs`.
24846 return beforeSequenceOpen(code)
24847 }
24848
24849 /**
24850 * In opening fence, after prefix, at sequence.
24851 *
24852 * ```markdown
24853 * > | ~~~js
24854 * ^
24855 * | alert(1)
24856 * | ~~~
24857 * ```
24858 *
24859 * @type {State}
24860 */
24861 function beforeSequenceOpen(code) {
24862 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
24863 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.tilde,
24864 'expected `` ` `` or `~`'
24865 )
24866
24867 const tail = self.events[self.events.length - 1]
24868 initialPrefix =
24869 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix
24870 ? tail[2].sliceSerialize(tail[1], true).length
24871 : 0
24872
24873 marker = code
24874 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
24875 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24876 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24877 return sequenceOpen(code)
24878 }
24879
24880 /**
24881 * In opening fence sequence.
24882 *
24883 * ```markdown
24884 * > | ~~~js
24885 * ^
24886 * | alert(1)
24887 * | ~~~
24888 * ```
24889 *
24890 * @type {State}
24891 */
24892 function sequenceOpen(code) {
24893 if (code === marker) {
24894 sizeOpen++
24895 effects.consume(code)
24896 return sequenceOpen
24897 }
24898
24899 if (sizeOpen < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.codeFencedSequenceSizeMin) {
24900 return nok(code)
24901 }
24902
24903 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
24904 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
24905 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, infoBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24906 : infoBefore(code)
24907 }
24908
24909 /**
24910 * In opening fence, after the sequence (and optional whitespace), before info.
24911 *
24912 * ```markdown
24913 * > | ~~~js
24914 * ^
24915 * | alert(1)
24916 * | ~~~
24917 * ```
24918 *
24919 * @type {State}
24920 */
24921 function infoBefore(code) {
24922 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24923 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
24924 return self.interrupt
24925 ? ok(code)
24926 : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
24927 }
24928
24929 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24930 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})
24931 return info(code)
24932 }
24933
24934 /**
24935 * In info.
24936 *
24937 * ```markdown
24938 * > | ~~~js
24939 * ^
24940 * | alert(1)
24941 * | ~~~
24942 * ```
24943 *
24944 * @type {State}
24945 */
24946 function info(code) {
24947 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24948 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24949 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24950 return infoBefore(code)
24951 }
24952
24953 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
24954 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
24955 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceInfo)
24956 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, metaBefore, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
24957 }
24958
24959 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
24960 return nok(code)
24961 }
24962
24963 effects.consume(code)
24964 return info
24965 }
24966
24967 /**
24968 * In opening fence, after info and whitespace, before meta.
24969 *
24970 * ```markdown
24971 * > | ~~~js eval
24972 * ^
24973 * | alert(1)
24974 * | ~~~
24975 * ```
24976 *
24977 * @type {State}
24978 */
24979 function metaBefore(code) {
24980 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
24981 return infoBefore(code)
24982 }
24983
24984 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
24985 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})
24986 return meta(code)
24987 }
24988
24989 /**
24990 * In meta.
24991 *
24992 * ```markdown
24993 * > | ~~~js eval
24994 * ^
24995 * | alert(1)
24996 * | ~~~
24997 * ```
24998 *
24999 * @type {State}
25000 */
25001 function meta(code) {
25002 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
25003 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
25004 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceMeta)
25005 return infoBefore(code)
25006 }
25007
25008 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent && code === marker) {
25009 return nok(code)
25010 }
25011
25012 effects.consume(code)
25013 return meta
25014 }
25015
25016 /**
25017 * At eol/eof in code, before a non-lazy closing fence or content.
25018 *
25019 * ```markdown
25020 * > | ~~~js
25021 * ^
25022 * > | alert(1)
25023 * ^
25024 * | ~~~
25025 * ```
25026 *
25027 * @type {State}
25028 */
25029 function atNonLazyBreak(code) {
25030 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
25031 return effects.attempt(closeStart, after, contentBefore)(code)
25032 }
25033
25034 /**
25035 * Before code content, not a closing fence, at eol.
25036 *
25037 * ```markdown
25038 * | ~~~js
25039 * > | alert(1)
25040 * ^
25041 * | ~~~
25042 * ```
25043 *
25044 * @type {State}
25045 */
25046 function contentBefore(code) {
25047 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
25048 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25049 effects.consume(code)
25050 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25051 return contentStart
25052 }
25053
25054 /**
25055 * Before code content, not a closing fence.
25056 *
25057 * ```markdown
25058 * | ~~~js
25059 * > | alert(1)
25060 * ^
25061 * | ~~~
25062 * ```
25063 *
25064 * @type {State}
25065 */
25066 function contentStart(code) {
25067 return initialPrefix > 0 && (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
25068 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
25069 effects,
25070 beforeContentChunk,
25071 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25072 initialPrefix + 1
25073 )(code)
25074 : beforeContentChunk(code)
25075 }
25076
25077 /**
25078 * Before code content, after optional prefix.
25079 *
25080 * ```markdown
25081 * | ~~~js
25082 * > | alert(1)
25083 * ^
25084 * | ~~~
25085 * ```
25086 *
25087 * @type {State}
25088 */
25089 function beforeContentChunk(code) {
25090 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
25091 return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)
25092 }
25093
25094 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25095 return contentChunk(code)
25096 }
25097
25098 /**
25099 * In code content.
25100 *
25101 * ```markdown
25102 * | ~~~js
25103 * > | alert(1)
25104 * ^^^^^^^^
25105 * | ~~~
25106 * ```
25107 *
25108 * @type {State}
25109 */
25110 function contentChunk(code) {
25111 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
25112 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25113 return beforeContentChunk(code)
25114 }
25115
25116 effects.consume(code)
25117 return contentChunk
25118 }
25119
25120 /**
25121 * After code.
25122 *
25123 * ```markdown
25124 * | ~~~js
25125 * | alert(1)
25126 * > | ~~~
25127 * ^
25128 * ```
25129 *
25130 * @type {State}
25131 */
25132 function after(code) {
25133 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFenced)
25134 return ok(code)
25135 }
25136
25137 /**
25138 * @this {TokenizeContext}
25139 * @type {Tokenizer}
25140 */
25141 function tokenizeCloseStart(effects, ok, nok) {
25142 let size = 0
25143
25144 return startBefore
25145
25146 /**
25147 *
25148 *
25149 * @type {State}
25150 */
25151 function startBefore(code) {
25152 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
25153 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25154 effects.consume(code)
25155 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25156 return start
25157 }
25158
25159 /**
25160 * Before closing fence, at optional whitespace.
25161 *
25162 * ```markdown
25163 * | ~~~js
25164 * | alert(1)
25165 * > | ~~~
25166 * ^
25167 * ```
25168 *
25169 * @type {State}
25170 */
25171 function start(code) {
25172 // Always populated by defaults.
25173 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25174 self.parser.constructs.disable.null,
25175 'expected `disable.null` to be populated'
25176 )
25177
25178 // To do: `enter` here or in next state?
25179 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
25180 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
25181 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
25182 effects,
25183 beforeSequenceClose,
25184 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25185 self.parser.constructs.disable.null.includes('codeIndented')
25186 ? undefined
25187 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.tabSize
25188 )(code)
25189 : beforeSequenceClose(code)
25190 }
25191
25192 /**
25193 * In closing fence, after optional whitespace, at sequence.
25194 *
25195 * ```markdown
25196 * | ~~~js
25197 * | alert(1)
25198 * > | ~~~
25199 * ^
25200 * ```
25201 *
25202 * @type {State}
25203 */
25204 function beforeSequenceClose(code) {
25205 if (code === marker) {
25206 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
25207 return sequenceClose(code)
25208 }
25209
25210 return nok(code)
25211 }
25212
25213 /**
25214 * In closing fence sequence.
25215 *
25216 * ```markdown
25217 * | ~~~js
25218 * | alert(1)
25219 * > | ~~~
25220 * ^
25221 * ```
25222 *
25223 * @type {State}
25224 */
25225 function sequenceClose(code) {
25226 if (code === marker) {
25227 size++
25228 effects.consume(code)
25229 return sequenceClose
25230 }
25231
25232 if (size >= sizeOpen) {
25233 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFenceSequence)
25234 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
25235 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, sequenceCloseAfter, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.whitespace)(code)
25236 : sequenceCloseAfter(code)
25237 }
25238
25239 return nok(code)
25240 }
25241
25242 /**
25243 * After closing fence sequence, after optional whitespace.
25244 *
25245 * ```markdown
25246 * | ~~~js
25247 * | alert(1)
25248 * > | ~~~
25249 * ^
25250 * ```
25251 *
25252 * @type {State}
25253 */
25254 function sequenceCloseAfter(code) {
25255 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
25256 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFencedFence)
25257 return ok(code)
25258 }
25259
25260 return nok(code)
25261 }
25262 }
25263 }
25264
25265 /**
25266 * @this {TokenizeContext}
25267 * @type {Tokenizer}
25268 */
25269 function tokenizeNonLazyContinuation(effects, ok, nok) {
25270 const self = this
25271
25272 return start
25273
25274 /**
25275 *
25276 *
25277 * @type {State}
25278 */
25279 function start(code) {
25280 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
25281 return nok(code)
25282 }
25283
25284 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected eol')
25285 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25286 effects.consume(code)
25287 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25288 return lineStart
25289 }
25290
25291 /**
25292 *
25293 *
25294 * @type {State}
25295 */
25296 function lineStart(code) {
25297 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
25298 }
25299 }
25300
25301
25302 /***/ }),
25303
25304 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-indented.js":
25305 /*!**************************************************************************!*\
25306 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-indented.js ***!
25307 \**************************************************************************/
25308 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25309
25310 "use strict";
25311 __webpack_require__.r(__webpack_exports__);
25312 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25313 /* harmony export */ codeIndented: () => (/* binding */ codeIndented)
25314 /* harmony export */ });
25315 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25316 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25317 /* 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");
25318 /* 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");
25319 /* 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");
25320 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25321 /**
25322 * @typedef {import('micromark-util-types').Construct} Construct
25323 * @typedef {import('micromark-util-types').State} State
25324 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25325 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25326 */
25327
25328
25329
25330
25331
25332
25333
25334
25335 /** @type {Construct} */
25336 const codeIndented = {
25337 name: 'codeIndented',
25338 tokenize: tokenizeCodeIndented
25339 }
25340
25341 /** @type {Construct} */
25342 const furtherStart = {tokenize: tokenizeFurtherStart, partial: true}
25343
25344 /**
25345 * @this {TokenizeContext}
25346 * @type {Tokenizer}
25347 */
25348 function tokenizeCodeIndented(effects, ok, nok) {
25349 const self = this
25350 return start
25351
25352 /**
25353 * Start of code (indented).
25354 *
25355 * > **Parsing note**: it is not needed to check if this first line is a
25356 * > filled line (that it has a non-whitespace character), because blank lines
25357 * > are parsed already, so we never run into that.
25358 *
25359 * ```markdown
25360 * > | aaa
25361 * ^
25362 * ```
25363 *
25364 * @type {State}
25365 */
25366 function start(code) {
25367 // To do: manually check if interrupting like `markdown-rs`.
25368 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownSpace)(code))
25369 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25370 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25371 // so that we can drop the next state.
25372 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25373 effects,
25374 afterPrefix,
25375 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25376 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25377 )(code)
25378 }
25379
25380 /**
25381 * At start, after 1 or 4 spaces.
25382 *
25383 * ```markdown
25384 * > | aaa
25385 * ^
25386 * ```
25387 *
25388 * @type {State}
25389 */
25390 function afterPrefix(code) {
25391 const tail = self.events[self.events.length - 1]
25392 return tail &&
25393 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25394 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25395 ? atBreak(code)
25396 : nok(code)
25397 }
25398
25399 /**
25400 * At a break.
25401 *
25402 * ```markdown
25403 * > | aaa
25404 * ^ ^
25405 * ```
25406 *
25407 * @type {State}
25408 */
25409 function atBreak(code) {
25410 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
25411 return after(code)
25412 }
25413
25414 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25415 return effects.attempt(furtherStart, atBreak, after)(code)
25416 }
25417
25418 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25419 return inside(code)
25420 }
25421
25422 /**
25423 * In code content.
25424 *
25425 * ```markdown
25426 * > | aaa
25427 * ^^^^
25428 * ```
25429 *
25430 * @type {State}
25431 */
25432 function inside(code) {
25433 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25434 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeFlowValue)
25435 return atBreak(code)
25436 }
25437
25438 effects.consume(code)
25439 return inside
25440 }
25441
25442 /** @type {State} */
25443 function after(code) {
25444 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.codeIndented)
25445 // To do: allow interrupting like `markdown-rs`.
25446 // Feel free to interrupt.
25447 // tokenizer.interrupt = false
25448 return ok(code)
25449 }
25450 }
25451
25452 /**
25453 * @this {TokenizeContext}
25454 * @type {Tokenizer}
25455 */
25456 function tokenizeFurtherStart(effects, ok, nok) {
25457 const self = this
25458
25459 return furtherStart
25460
25461 /**
25462 * At eol, trying to parse another indent.
25463 *
25464 * ```markdown
25465 * > | aaa
25466 * ^
25467 * | bbb
25468 * ```
25469 *
25470 * @type {State}
25471 */
25472 function furtherStart(code) {
25473 // To do: improve `lazy` / `pierce` handling.
25474 // If this is a lazy line, it can’t be code.
25475 if (self.parser.lazy[self.now().line]) {
25476 return nok(code)
25477 }
25478
25479 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
25480 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25481 effects.consume(code)
25482 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
25483 return furtherStart
25484 }
25485
25486 // To do: the code here in `micromark-js` is a bit different from
25487 // `markdown-rs` because there it can attempt spaces.
25488 // We can’t yet.
25489 //
25490 // To do: use an improved `space_or_tab` function like `markdown-rs`,
25491 // so that we can drop the next state.
25492 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(
25493 effects,
25494 afterPrefix,
25495 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
25496 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize + 1
25497 )(code)
25498 }
25499
25500 /**
25501 * At start, after 1 or 4 spaces.
25502 *
25503 * ```markdown
25504 * > | aaa
25505 * ^
25506 * ```
25507 *
25508 * @type {State}
25509 */
25510 function afterPrefix(code) {
25511 const tail = self.events[self.events.length - 1]
25512 return tail &&
25513 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix &&
25514 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
25515 ? ok(code)
25516 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
25517 ? furtherStart(code)
25518 : nok(code)
25519 }
25520 }
25521
25522
25523 /***/ }),
25524
25525 /***/ "../node_modules/micromark-core-commonmark/dev/lib/code-text.js":
25526 /*!**********************************************************************!*\
25527 !*** ../node_modules/micromark-core-commonmark/dev/lib/code-text.js ***!
25528 \**********************************************************************/
25529 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25530
25531 "use strict";
25532 __webpack_require__.r(__webpack_exports__);
25533 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25534 /* harmony export */ codeText: () => (/* binding */ codeText)
25535 /* harmony export */ });
25536 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25537 /* 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");
25538 /* 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");
25539 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25540 /**
25541 * @typedef {import('micromark-util-types').Construct} Construct
25542 * @typedef {import('micromark-util-types').Previous} Previous
25543 * @typedef {import('micromark-util-types').Resolver} Resolver
25544 * @typedef {import('micromark-util-types').State} State
25545 * @typedef {import('micromark-util-types').Token} Token
25546 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25547 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25548 */
25549
25550
25551
25552
25553
25554
25555 /** @type {Construct} */
25556 const codeText = {
25557 name: 'codeText',
25558 tokenize: tokenizeCodeText,
25559 resolve: resolveCodeText,
25560 previous
25561 }
25562
25563 // To do: next major: don’t resolve, like `markdown-rs`.
25564 /** @type {Resolver} */
25565 function resolveCodeText(events) {
25566 let tailExitIndex = events.length - 4
25567 let headEnterIndex = 3
25568 /** @type {number} */
25569 let index
25570 /** @type {number | undefined} */
25571 let enter
25572
25573 // If we start and end with an EOL or a space.
25574 if (
25575 (events[headEnterIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25576 events[headEnterIndex][1].type === 'space') &&
25577 (events[tailExitIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
25578 events[tailExitIndex][1].type === 'space')
25579 ) {
25580 index = headEnterIndex
25581
25582 // And we have data.
25583 while (++index < tailExitIndex) {
25584 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData) {
25585 // Then we have padding.
25586 events[headEnterIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25587 events[tailExitIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextPadding
25588 headEnterIndex += 2
25589 tailExitIndex -= 2
25590 break
25591 }
25592 }
25593 }
25594
25595 // Merge adjacent spaces and data.
25596 index = headEnterIndex - 1
25597 tailExitIndex++
25598
25599 while (++index <= tailExitIndex) {
25600 if (enter === undefined) {
25601 if (
25602 index !== tailExitIndex &&
25603 events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25604 ) {
25605 enter = index
25606 }
25607 } else if (
25608 index === tailExitIndex ||
25609 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
25610 ) {
25611 events[enter][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25612
25613 if (index !== enter + 2) {
25614 events[enter][1].end = events[index - 1][1].end
25615 events.splice(enter + 2, index - enter - 2)
25616 tailExitIndex -= index - enter - 2
25617 index = enter + 2
25618 }
25619
25620 enter = undefined
25621 }
25622 }
25623
25624 return events
25625 }
25626
25627 /**
25628 * @this {TokenizeContext}
25629 * @type {Previous}
25630 */
25631 function previous(code) {
25632 // If there is a previous code, there will always be a tail.
25633 return (
25634 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25635 this.events[this.events.length - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.characterEscape
25636 )
25637 }
25638
25639 /**
25640 * @this {TokenizeContext}
25641 * @type {Tokenizer}
25642 */
25643 function tokenizeCodeText(effects, ok, nok) {
25644 const self = this
25645 let sizeOpen = 0
25646 /** @type {number} */
25647 let size
25648 /** @type {Token} */
25649 let token
25650
25651 return start
25652
25653 /**
25654 * Start of code (text).
25655 *
25656 * ```markdown
25657 * > | `a`
25658 * ^
25659 * > | \`a`
25660 * ^
25661 * ```
25662 *
25663 * @type {State}
25664 */
25665 function start(code) {
25666 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent, 'expected `` ` ``')
25667 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous.call(self, self.previous), 'expected correct previous')
25668 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25669 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25670 return sequenceOpen(code)
25671 }
25672
25673 /**
25674 * In opening sequence.
25675 *
25676 * ```markdown
25677 * > | `a`
25678 * ^
25679 * ```
25680 *
25681 * @type {State}
25682 */
25683 function sequenceOpen(code) {
25684 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25685 effects.consume(code)
25686 sizeOpen++
25687 return sequenceOpen
25688 }
25689
25690 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25691 return between(code)
25692 }
25693
25694 /**
25695 * Between something and something else.
25696 *
25697 * ```markdown
25698 * > | `a`
25699 * ^^
25700 * ```
25701 *
25702 * @type {State}
25703 */
25704 function between(code) {
25705 // EOF.
25706 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25707 return nok(code)
25708 }
25709
25710 // To do: next major: don’t do spaces in resolve, but when compiling,
25711 // like `markdown-rs`.
25712 // Tabs don’t work, and virtual spaces don’t make sense.
25713 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space) {
25714 effects.enter('space')
25715 effects.consume(code)
25716 effects.exit('space')
25717 return between
25718 }
25719
25720 // Closing fence? Could also be data.
25721 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25722 token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25723 size = 0
25724 return sequenceClose(code)
25725 }
25726
25727 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25728 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25729 effects.consume(code)
25730 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
25731 return between
25732 }
25733
25734 // Data.
25735 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25736 return data(code)
25737 }
25738
25739 /**
25740 * In data.
25741 *
25742 * ```markdown
25743 * > | `a`
25744 * ^
25745 * ```
25746 *
25747 * @type {State}
25748 */
25749 function data(code) {
25750 if (
25751 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
25752 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.space ||
25753 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
25754 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)
25755 ) {
25756 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData)
25757 return between(code)
25758 }
25759
25760 effects.consume(code)
25761 return data
25762 }
25763
25764 /**
25765 * In closing sequence.
25766 *
25767 * ```markdown
25768 * > | `a`
25769 * ^
25770 * ```
25771 *
25772 * @type {State}
25773 */
25774 function sequenceClose(code) {
25775 // More.
25776 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent) {
25777 effects.consume(code)
25778 size++
25779 return sequenceClose
25780 }
25781
25782 // Done!
25783 if (size === sizeOpen) {
25784 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextSequence)
25785 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeText)
25786 return ok(code)
25787 }
25788
25789 // More or less accents: mark as data.
25790 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.codeTextData
25791 return data(code)
25792 }
25793 }
25794
25795
25796 /***/ }),
25797
25798 /***/ "../node_modules/micromark-core-commonmark/dev/lib/content.js":
25799 /*!********************************************************************!*\
25800 !*** ../node_modules/micromark-core-commonmark/dev/lib/content.js ***!
25801 \********************************************************************/
25802 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25803
25804 "use strict";
25805 __webpack_require__.r(__webpack_exports__);
25806 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25807 /* harmony export */ content: () => (/* binding */ content)
25808 /* harmony export */ });
25809 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
25810 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
25811 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
25812 /* 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");
25813 /* 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");
25814 /* 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");
25815 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
25816 /**
25817 * @typedef {import('micromark-util-types').Construct} Construct
25818 * @typedef {import('micromark-util-types').Resolver} Resolver
25819 * @typedef {import('micromark-util-types').State} State
25820 * @typedef {import('micromark-util-types').Token} Token
25821 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
25822 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
25823 */
25824
25825
25826
25827
25828
25829
25830
25831
25832
25833 /**
25834 * No name because it must not be turned off.
25835 * @type {Construct}
25836 */
25837 const content = {tokenize: tokenizeContent, resolve: resolveContent}
25838
25839 /** @type {Construct} */
25840 const continuationConstruct = {tokenize: tokenizeContinuation, partial: true}
25841
25842 /**
25843 * Content is transparent: it’s parsed right now. That way, definitions are also
25844 * parsed right now: before text in paragraphs (specifically, media) are parsed.
25845 *
25846 * @type {Resolver}
25847 */
25848 function resolveContent(events) {
25849 ;(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_1__.subtokenize)(events)
25850 return events
25851 }
25852
25853 /**
25854 * @this {TokenizeContext}
25855 * @type {Tokenizer}
25856 */
25857 function tokenizeContent(effects, ok) {
25858 /** @type {Token | undefined} */
25859 let previous
25860
25861 return chunkStart
25862
25863 /**
25864 * Before a content chunk.
25865 *
25866 * ```markdown
25867 * > | abc
25868 * ^
25869 * ```
25870 *
25871 * @type {State}
25872 */
25873 function chunkStart(code) {
25874 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25875 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code),
25876 'expected no eof or eol'
25877 )
25878
25879 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25880 previous = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25881 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent
25882 })
25883 return chunkInside(code)
25884 }
25885
25886 /**
25887 * In a content chunk.
25888 *
25889 * ```markdown
25890 * > | abc
25891 * ^^^
25892 * ```
25893 *
25894 * @type {State}
25895 */
25896 function chunkInside(code) {
25897 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
25898 return contentEnd(code)
25899 }
25900
25901 // To do: in `markdown-rs`, each line is parsed on its own, and everything
25902 // is stitched together resolving.
25903 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25904 return effects.check(
25905 continuationConstruct,
25906 contentContinue,
25907 contentEnd
25908 )(code)
25909 }
25910
25911 // Data.
25912 effects.consume(code)
25913 return chunkInside
25914 }
25915
25916 /**
25917 *
25918 *
25919 * @type {State}
25920 */
25921 function contentEnd(code) {
25922 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25923 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.content)
25924 return ok(code)
25925 }
25926
25927 /**
25928 *
25929 *
25930 * @type {State}
25931 */
25932 function contentContinue(code) {
25933 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
25934 effects.consume(code)
25935 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25936 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(previous, 'expected previous token')
25937 previous.next = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent, {
25938 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeContent,
25939 previous
25940 })
25941 previous = previous.next
25942 return chunkInside
25943 }
25944 }
25945
25946 /**
25947 * @this {TokenizeContext}
25948 * @type {Tokenizer}
25949 */
25950 function tokenizeContinuation(effects, ok, nok) {
25951 const self = this
25952
25953 return startLookahead
25954
25955 /**
25956 *
25957 *
25958 * @type {State}
25959 */
25960 function startLookahead(code) {
25961 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected a line ending')
25962 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkContent)
25963 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25964 effects.consume(code)
25965 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
25966 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, prefixed, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix)
25967 }
25968
25969 /**
25970 *
25971 *
25972 * @type {State}
25973 */
25974 function prefixed(code) {
25975 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
25976 return nok(code)
25977 }
25978
25979 // Always populated by defaults.
25980 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
25981 self.parser.constructs.disable.null,
25982 'expected `disable.null` to be populated'
25983 )
25984
25985 const tail = self.events[self.events.length - 1]
25986
25987 if (
25988 !self.parser.constructs.disable.null.includes('codeIndented') &&
25989 tail &&
25990 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix &&
25991 tail[2].sliceSerialize(tail[1], true).length >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
25992 ) {
25993 return ok(code)
25994 }
25995
25996 return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)
25997 }
25998 }
25999
26000
26001 /***/ }),
26002
26003 /***/ "../node_modules/micromark-core-commonmark/dev/lib/definition.js":
26004 /*!***********************************************************************!*\
26005 !*** ../node_modules/micromark-core-commonmark/dev/lib/definition.js ***!
26006 \***********************************************************************/
26007 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26008
26009 "use strict";
26010 __webpack_require__.r(__webpack_exports__);
26011 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26012 /* harmony export */ definition: () => (/* binding */ definition)
26013 /* harmony export */ });
26014 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
26015 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
26016 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
26017 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
26018 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
26019 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26020 /* 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");
26021 /* 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");
26022 /* 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");
26023 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26024 /**
26025 * @typedef {import('micromark-util-types').Construct} Construct
26026 * @typedef {import('micromark-util-types').State} State
26027 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26028 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26029 */
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042 /** @type {Construct} */
26043 const definition = {name: 'definition', tokenize: tokenizeDefinition}
26044
26045 /** @type {Construct} */
26046 const titleBefore = {tokenize: tokenizeTitleBefore, partial: true}
26047
26048 /**
26049 * @this {TokenizeContext}
26050 * @type {Tokenizer}
26051 */
26052 function tokenizeDefinition(effects, ok, nok) {
26053 const self = this
26054 /** @type {string} */
26055 let identifier
26056
26057 return start
26058
26059 /**
26060 * At start of a definition.
26061 *
26062 * ```markdown
26063 * > | [a]: b "c"
26064 * ^
26065 * ```
26066 *
26067 * @type {State}
26068 */
26069 function start(code) {
26070 // Do not interrupt paragraphs (but do follow definitions).
26071 // To do: do `interrupt` the way `markdown-rs` does.
26072 // To do: parse whitespace the way `markdown-rs` does.
26073 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
26074 return before(code)
26075 }
26076
26077 /**
26078 * After optional whitespace, at `[`.
26079 *
26080 * ```markdown
26081 * > | [a]: b "c"
26082 * ^
26083 * ```
26084 *
26085 * @type {State}
26086 */
26087 function before(code) {
26088 // To do: parse whitespace the way `markdown-rs` does.
26089 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
26090 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_3__.factoryLabel.call(
26091 self,
26092 effects,
26093 labelAfter,
26094 // Note: we don’t need to reset the way `markdown-rs` does.
26095 nok,
26096 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabel,
26097 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelMarker,
26098 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionLabelString
26099 )(code)
26100 }
26101
26102 /**
26103 * After label.
26104 *
26105 * ```markdown
26106 * > | [a]: b "c"
26107 * ^
26108 * ```
26109 *
26110 * @type {State}
26111 */
26112 function labelAfter(code) {
26113 identifier = (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_4__.normalizeIdentifier)(
26114 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
26115 )
26116
26117 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon) {
26118 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
26119 effects.consume(code)
26120 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionMarker)
26121 return markerAfter
26122 }
26123
26124 return nok(code)
26125 }
26126
26127 /**
26128 * After marker.
26129 *
26130 * ```markdown
26131 * > | [a]: b "c"
26132 * ^
26133 * ```
26134 *
26135 * @type {State}
26136 */
26137 function markerAfter(code) {
26138 // Note: whitespace is optional.
26139 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26140 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, destinationBefore)(code)
26141 : destinationBefore(code)
26142 }
26143
26144 /**
26145 * Before destination.
26146 *
26147 * ```markdown
26148 * > | [a]: b "c"
26149 * ^
26150 * ```
26151 *
26152 * @type {State}
26153 */
26154 function destinationBefore(code) {
26155 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_7__.factoryDestination)(
26156 effects,
26157 destinationAfter,
26158 // Note: we don’t need to reset the way `markdown-rs` does.
26159 nok,
26160 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestination,
26161 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteral,
26162 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationLiteralMarker,
26163 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationRaw,
26164 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionDestinationString
26165 )(code)
26166 }
26167
26168 /**
26169 * After destination.
26170 *
26171 * ```markdown
26172 * > | [a]: b "c"
26173 * ^
26174 * ```
26175 *
26176 * @type {State}
26177 */
26178 function destinationAfter(code) {
26179 return effects.attempt(titleBefore, after, after)(code)
26180 }
26181
26182 /**
26183 * After definition.
26184 *
26185 * ```markdown
26186 * > | [a]: b
26187 * ^
26188 * > | [a]: b "c"
26189 * ^
26190 * ```
26191 *
26192 * @type {State}
26193 */
26194 function after(code) {
26195 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
26196 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(effects, afterWhitespace, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
26197 : afterWhitespace(code)
26198 }
26199
26200 /**
26201 * After definition, after optional whitespace.
26202 *
26203 * ```markdown
26204 * > | [a]: b
26205 * ^
26206 * > | [a]: b "c"
26207 * ^
26208 * ```
26209 *
26210 * @type {State}
26211 */
26212 function afterWhitespace(code) {
26213 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
26214 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition)
26215
26216 // Note: we don’t care about uniqueness.
26217 // It’s likely that that doesn’t happen very frequently.
26218 // It is more likely that it wastes precious time.
26219 self.parser.defined.push(identifier)
26220
26221 // To do: `markdown-rs` interrupt.
26222 // // You’d be interrupting.
26223 // tokenizer.interrupt = true
26224 return ok(code)
26225 }
26226
26227 return nok(code)
26228 }
26229 }
26230
26231 /**
26232 * @this {TokenizeContext}
26233 * @type {Tokenizer}
26234 */
26235 function tokenizeTitleBefore(effects, ok, nok) {
26236 return titleBefore
26237
26238 /**
26239 * After destination, at whitespace.
26240 *
26241 * ```markdown
26242 * > | [a]: b
26243 * ^
26244 * > | [a]: b "c"
26245 * ^
26246 * ```
26247 *
26248 * @type {State}
26249 */
26250 function titleBefore(code) {
26251 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26252 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_6__.factoryWhitespace)(effects, beforeMarker)(code)
26253 : nok(code)
26254 }
26255
26256 /**
26257 * At title.
26258 *
26259 * ```markdown
26260 * | [a]: b
26261 * > | "c"
26262 * ^
26263 * ```
26264 *
26265 * @type {State}
26266 */
26267 function beforeMarker(code) {
26268 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_9__.factoryTitle)(
26269 effects,
26270 titleAfter,
26271 nok,
26272 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitle,
26273 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleMarker,
26274 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definitionTitleString
26275 )(code)
26276 }
26277
26278 /**
26279 * After title.
26280 *
26281 * ```markdown
26282 * > | [a]: b "c"
26283 * ^
26284 * ```
26285 *
26286 * @type {State}
26287 */
26288 function titleAfter(code) {
26289 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)
26290 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_8__.factorySpace)(
26291 effects,
26292 titleAfterOptionalWhitespace,
26293 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26294 )(code)
26295 : titleAfterOptionalWhitespace(code)
26296 }
26297
26298 /**
26299 * After title, after optional whitespace.
26300 *
26301 * ```markdown
26302 * > | [a]: b "c"
26303 * ^
26304 * ```
26305 *
26306 * @type {State}
26307 */
26308 function titleAfterOptionalWhitespace(code) {
26309 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)
26310 }
26311 }
26312
26313
26314 /***/ }),
26315
26316 /***/ "../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js":
26317 /*!******************************************************************************!*\
26318 !*** ../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js ***!
26319 \******************************************************************************/
26320 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26321
26322 "use strict";
26323 __webpack_require__.r(__webpack_exports__);
26324 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26325 /* harmony export */ hardBreakEscape: () => (/* binding */ hardBreakEscape)
26326 /* harmony export */ });
26327 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26328 /* 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");
26329 /* 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");
26330 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26331 /**
26332 * @typedef {import('micromark-util-types').Construct} Construct
26333 * @typedef {import('micromark-util-types').State} State
26334 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26335 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26336 */
26337
26338
26339
26340
26341
26342
26343 /** @type {Construct} */
26344 const hardBreakEscape = {
26345 name: 'hardBreakEscape',
26346 tokenize: tokenizeHardBreakEscape
26347 }
26348
26349 /**
26350 * @this {TokenizeContext}
26351 * @type {Tokenizer}
26352 */
26353 function tokenizeHardBreakEscape(effects, ok, nok) {
26354 return start
26355
26356 /**
26357 * Start of a hard break (escape).
26358 *
26359 * ```markdown
26360 * > | a\
26361 * ^
26362 * | b
26363 * ```
26364 *
26365 * @type {State}
26366 */
26367 function start(code) {
26368 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash, 'expected `\\`')
26369 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26370 effects.consume(code)
26371 return after
26372 }
26373
26374 /**
26375 * After `\`, at eol.
26376 *
26377 * ```markdown
26378 * > | a\
26379 * ^
26380 * | b
26381 * ```
26382 *
26383 * @type {State}
26384 */
26385 function after(code) {
26386 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
26387 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakEscape)
26388 return ok(code)
26389 }
26390
26391 return nok(code)
26392 }
26393 }
26394
26395
26396 /***/ }),
26397
26398 /***/ "../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js":
26399 /*!************************************************************************!*\
26400 !*** ../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js ***!
26401 \************************************************************************/
26402 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26403
26404 "use strict";
26405 __webpack_require__.r(__webpack_exports__);
26406 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26407 /* harmony export */ headingAtx: () => (/* binding */ headingAtx)
26408 /* harmony export */ });
26409 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
26410 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26411 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
26412 /* 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");
26413 /* 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");
26414 /* 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");
26415 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26416 /**
26417 * @typedef {import('micromark-util-types').Construct} Construct
26418 * @typedef {import('micromark-util-types').Resolver} Resolver
26419 * @typedef {import('micromark-util-types').State} State
26420 * @typedef {import('micromark-util-types').Token} Token
26421 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26422 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26423 */
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433 /** @type {Construct} */
26434 const headingAtx = {
26435 name: 'headingAtx',
26436 tokenize: tokenizeHeadingAtx,
26437 resolve: resolveHeadingAtx
26438 }
26439
26440 /** @type {Resolver} */
26441 function resolveHeadingAtx(events, context) {
26442 let contentEnd = events.length - 2
26443 let contentStart = 3
26444 /** @type {Token} */
26445 let content
26446 /** @type {Token} */
26447 let text
26448
26449 // Prefix whitespace, part of the opening.
26450 if (events[contentStart][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace) {
26451 contentStart += 2
26452 }
26453
26454 // Suffix whitespace, part of the closing.
26455 if (
26456 contentEnd - 2 > contentStart &&
26457 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace
26458 ) {
26459 contentEnd -= 2
26460 }
26461
26462 if (
26463 events[contentEnd][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence &&
26464 (contentStart === contentEnd - 1 ||
26465 (contentEnd - 4 > contentStart &&
26466 events[contentEnd - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace))
26467 ) {
26468 contentEnd -= contentStart + 1 === contentEnd ? 2 : 4
26469 }
26470
26471 if (contentEnd > contentStart) {
26472 content = {
26473 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText,
26474 start: events[contentStart][1].start,
26475 end: events[contentEnd][1].end
26476 }
26477 text = {
26478 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText,
26479 start: events[contentStart][1].start,
26480 end: events[contentEnd][1].end,
26481 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.contentTypeText
26482 }
26483
26484 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(events, contentStart, contentEnd - contentStart + 1, [
26485 ['enter', content, context],
26486 ['enter', text, context],
26487 ['exit', text, context],
26488 ['exit', content, context]
26489 ])
26490 }
26491
26492 return events
26493 }
26494
26495 /**
26496 * @this {TokenizeContext}
26497 * @type {Tokenizer}
26498 */
26499 function tokenizeHeadingAtx(effects, ok, nok) {
26500 let size = 0
26501
26502 return start
26503
26504 /**
26505 * Start of a heading (atx).
26506 *
26507 * ```markdown
26508 * > | ## aa
26509 * ^
26510 * ```
26511 *
26512 * @type {State}
26513 */
26514 function start(code) {
26515 // To do: parse indent like `markdown-rs`.
26516 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26517 return before(code)
26518 }
26519
26520 /**
26521 * After optional whitespace, at `#`.
26522 *
26523 * ```markdown
26524 * > | ## aa
26525 * ^
26526 * ```
26527 *
26528 * @type {State}
26529 */
26530 function before(code) {
26531 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, 'expected `#`')
26532 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26533 return sequenceOpen(code)
26534 }
26535
26536 /**
26537 * In opening sequence.
26538 *
26539 * ```markdown
26540 * > | ## aa
26541 * ^
26542 * ```
26543 *
26544 * @type {State}
26545 */
26546 function sequenceOpen(code) {
26547 if (
26548 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign &&
26549 size++ < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.atxHeadingOpeningFenceSizeMax
26550 ) {
26551 effects.consume(code)
26552 return sequenceOpen
26553 }
26554
26555 // Always at least one `#`.
26556 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {
26557 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26558 return atBreak(code)
26559 }
26560
26561 return nok(code)
26562 }
26563
26564 /**
26565 * After something, before something else.
26566 *
26567 * ```markdown
26568 * > | ## aa
26569 * ^
26570 * ```
26571 *
26572 * @type {State}
26573 */
26574 function atBreak(code) {
26575 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26576 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26577 return sequenceFurther(code)
26578 }
26579
26580 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
26581 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeading)
26582 // To do: interrupt like `markdown-rs`.
26583 // // Feel free to interrupt.
26584 // tokenizer.interrupt = false
26585 return ok(code)
26586 }
26587
26588 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {
26589 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
26590 }
26591
26592 // To do: generate `data` tokens, add the `text` token later.
26593 // Needs edit map, see: `markdown.rs`.
26594 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26595 return data(code)
26596 }
26597
26598 /**
26599 * In further sequence (after whitespace).
26600 *
26601 * Could be normal “visible” hashes in the heading or a final sequence.
26602 *
26603 * ```markdown
26604 * > | ## aa ##
26605 * ^
26606 * ```
26607 *
26608 * @type {State}
26609 */
26610 function sequenceFurther(code) {
26611 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {
26612 effects.consume(code)
26613 return sequenceFurther
26614 }
26615
26616 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingSequence)
26617 return atBreak(code)
26618 }
26619
26620 /**
26621 * In text.
26622 *
26623 * ```markdown
26624 * > | ## aa
26625 * ^
26626 * ```
26627 *
26628 * @type {State}
26629 */
26630 function data(code) {
26631 if (
26632 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.eof ||
26633 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign ||
26634 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)
26635 ) {
26636 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.atxHeadingText)
26637 return atBreak(code)
26638 }
26639
26640 effects.consume(code)
26641 return data
26642 }
26643 }
26644
26645
26646 /***/ }),
26647
26648 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-flow.js":
26649 /*!**********************************************************************!*\
26650 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-flow.js ***!
26651 \**********************************************************************/
26652 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
26653
26654 "use strict";
26655 __webpack_require__.r(__webpack_exports__);
26656 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26657 /* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)
26658 /* harmony export */ });
26659 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
26660 /* 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");
26661 /* 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");
26662 /* 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");
26663 /* 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");
26664 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
26665 /* 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");
26666 /**
26667 * @typedef {import('micromark-util-types').Code} Code
26668 * @typedef {import('micromark-util-types').Construct} Construct
26669 * @typedef {import('micromark-util-types').Resolver} Resolver
26670 * @typedef {import('micromark-util-types').State} State
26671 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
26672 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
26673 */
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683 /** @type {Construct} */
26684 const htmlFlow = {
26685 name: 'htmlFlow',
26686 tokenize: tokenizeHtmlFlow,
26687 resolveTo: resolveToHtmlFlow,
26688 concrete: true
26689 }
26690
26691 /** @type {Construct} */
26692 const blankLineBefore = {tokenize: tokenizeBlankLineBefore, partial: true}
26693 const nonLazyContinuationStart = {
26694 tokenize: tokenizeNonLazyContinuationStart,
26695 partial: true
26696 }
26697
26698 /** @type {Resolver} */
26699 function resolveToHtmlFlow(events) {
26700 let index = events.length
26701
26702 while (index--) {
26703 if (
26704 events[index][0] === 'enter' &&
26705 events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow
26706 ) {
26707 break
26708 }
26709 }
26710
26711 if (index > 1 && events[index - 2][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix) {
26712 // Add the prefix start to the HTML token.
26713 events[index][1].start = events[index - 2][1].start
26714 // Add the prefix start to the HTML line token.
26715 events[index + 1][1].start = events[index - 2][1].start
26716 // Remove the line prefix.
26717 events.splice(index - 2, 2)
26718 }
26719
26720 return events
26721 }
26722
26723 /**
26724 * @this {TokenizeContext}
26725 * @type {Tokenizer}
26726 */
26727 function tokenizeHtmlFlow(effects, ok, nok) {
26728 const self = this
26729 /** @type {number} */
26730 let marker
26731 /** @type {boolean} */
26732 let closingTag
26733 /** @type {string} */
26734 let buffer
26735 /** @type {number} */
26736 let index
26737 /** @type {Code} */
26738 let markerB
26739
26740 return start
26741
26742 /**
26743 * Start of HTML (flow).
26744 *
26745 * ```markdown
26746 * > | <x />
26747 * ^
26748 * ```
26749 *
26750 * @type {State}
26751 */
26752 function start(code) {
26753 // To do: parse indent like `markdown-rs`.
26754 return before(code)
26755 }
26756
26757 /**
26758 * At `<`, after optional whitespace.
26759 *
26760 * ```markdown
26761 * > | <x />
26762 * ^
26763 * ```
26764 *
26765 * @type {State}
26766 */
26767 function before(code) {
26768 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, 'expected `<`')
26769 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
26770 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
26771 effects.consume(code)
26772 return open
26773 }
26774
26775 /**
26776 * After `<`, at tag name or other stuff.
26777 *
26778 * ```markdown
26779 * > | <x />
26780 * ^
26781 * > | <!doctype>
26782 * ^
26783 * > | <!--xxx-->
26784 * ^
26785 * ```
26786 *
26787 * @type {State}
26788 */
26789 function open(code) {
26790 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {
26791 effects.consume(code)
26792 return declarationOpen
26793 }
26794
26795 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
26796 effects.consume(code)
26797 closingTag = true
26798 return tagCloseStart
26799 }
26800
26801 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {
26802 effects.consume(code)
26803 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction
26804 // To do:
26805 // tokenizer.concrete = true
26806 // To do: use `markdown-rs` style interrupt.
26807 // While we’re in an instruction instead of a declaration, we’re on a `?`
26808 // right now, so we do need to search for `>`, similar to declarations.
26809 return self.interrupt ? ok : continuationDeclarationInside
26810 }
26811
26812 // ASCII alphabetical.
26813 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26814 effects.consume(code)
26815 // @ts-expect-error: not null.
26816 buffer = String.fromCharCode(code)
26817 return tagName
26818 }
26819
26820 return nok(code)
26821 }
26822
26823 /**
26824 * After `<!`, at declaration, comment, or CDATA.
26825 *
26826 * ```markdown
26827 * > | <!doctype>
26828 * ^
26829 * > | <!--xxx-->
26830 * ^
26831 * > | <![CDATA[>&<]]>
26832 * ^
26833 * ```
26834 *
26835 * @type {State}
26836 */
26837 function declarationOpen(code) {
26838 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26839 effects.consume(code)
26840 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment
26841 return commentOpenInside
26842 }
26843
26844 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
26845 effects.consume(code)
26846 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata
26847 index = 0
26848 return cdataOpenInside
26849 }
26850
26851 // ASCII alphabetical.
26852 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26853 effects.consume(code)
26854 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration
26855 // // Do not form containers.
26856 // tokenizer.concrete = true
26857 return self.interrupt ? ok : continuationDeclarationInside
26858 }
26859
26860 return nok(code)
26861 }
26862
26863 /**
26864 * After `<!-`, inside a comment, at another `-`.
26865 *
26866 * ```markdown
26867 * > | <!--xxx-->
26868 * ^
26869 * ```
26870 *
26871 * @type {State}
26872 */
26873 function commentOpenInside(code) {
26874 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
26875 effects.consume(code)
26876 // // Do not form containers.
26877 // tokenizer.concrete = true
26878 return self.interrupt ? ok : continuationDeclarationInside
26879 }
26880
26881 return nok(code)
26882 }
26883
26884 /**
26885 * After `<![`, inside CDATA, expecting `CDATA[`.
26886 *
26887 * ```markdown
26888 * > | <![CDATA[>&<]]>
26889 * ^^^^^^
26890 * ```
26891 *
26892 * @type {State}
26893 */
26894 function cdataOpenInside(code) {
26895 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString
26896
26897 if (code === value.charCodeAt(index++)) {
26898 effects.consume(code)
26899
26900 if (index === value.length) {
26901 // // Do not form containers.
26902 // tokenizer.concrete = true
26903 return self.interrupt ? ok : continuation
26904 }
26905
26906 return cdataOpenInside
26907 }
26908
26909 return nok(code)
26910 }
26911
26912 /**
26913 * After `</`, in closing tag, at tag name.
26914 *
26915 * ```markdown
26916 * > | </x>
26917 * ^
26918 * ```
26919 *
26920 * @type {State}
26921 */
26922 function tagCloseStart(code) {
26923 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {
26924 effects.consume(code)
26925 // @ts-expect-error: not null.
26926 buffer = String.fromCharCode(code)
26927 return tagName
26928 }
26929
26930 return nok(code)
26931 }
26932
26933 /**
26934 * In tag name.
26935 *
26936 * ```markdown
26937 * > | <ab>
26938 * ^^
26939 * > | </ab>
26940 * ^^
26941 * ```
26942 *
26943 * @type {State}
26944 */
26945 function tagName(code) {
26946 if (
26947 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
26948 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
26949 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
26950 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
26951 ) {
26952 const slash = code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash
26953 const name = buffer.toLowerCase()
26954
26955 if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
26956 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw
26957 // // Do not form containers.
26958 // tokenizer.concrete = true
26959 return self.interrupt ? ok(code) : continuation(code)
26960 }
26961
26962 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {
26963 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic
26964
26965 if (slash) {
26966 effects.consume(code)
26967 return basicSelfClosing
26968 }
26969
26970 // // Do not form containers.
26971 // tokenizer.concrete = true
26972 return self.interrupt ? ok(code) : continuation(code)
26973 }
26974
26975 marker = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete
26976 // Do not support complete HTML when interrupting.
26977 return self.interrupt && !self.parser.lazy[self.now().line]
26978 ? nok(code)
26979 : closingTag
26980 ? completeClosingTagAfter(code)
26981 : completeAttributeNameBefore(code)
26982 }
26983
26984 // ASCII alphanumerical and `-`.
26985 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {
26986 effects.consume(code)
26987 buffer += String.fromCharCode(code)
26988 return tagName
26989 }
26990
26991 return nok(code)
26992 }
26993
26994 /**
26995 * After closing slash of a basic tag name.
26996 *
26997 * ```markdown
26998 * > | <div/>
26999 * ^
27000 * ```
27001 *
27002 * @type {State}
27003 */
27004 function basicSelfClosing(code) {
27005 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27006 effects.consume(code)
27007 // // Do not form containers.
27008 // tokenizer.concrete = true
27009 return self.interrupt ? ok : continuation
27010 }
27011
27012 return nok(code)
27013 }
27014
27015 /**
27016 * After closing slash of a complete tag name.
27017 *
27018 * ```markdown
27019 * > | <x/>
27020 * ^
27021 * ```
27022 *
27023 * @type {State}
27024 */
27025 function completeClosingTagAfter(code) {
27026 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
27027 effects.consume(code)
27028 return completeClosingTagAfter
27029 }
27030
27031 return completeEnd(code)
27032 }
27033
27034 /**
27035 * At an attribute name.
27036 *
27037 * At first, this state is used after a complete tag name, after whitespace,
27038 * where it expects optional attributes or the end of the tag.
27039 * It is also reused after attributes, when expecting more optional
27040 * attributes.
27041 *
27042 * ```markdown
27043 * > | <a />
27044 * ^
27045 * > | <a :b>
27046 * ^
27047 * > | <a _b>
27048 * ^
27049 * > | <a b>
27050 * ^
27051 * > | <a >
27052 * ^
27053 * ```
27054 *
27055 * @type {State}
27056 */
27057 function completeAttributeNameBefore(code) {
27058 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
27059 effects.consume(code)
27060 return completeEnd
27061 }
27062
27063 // ASCII alphanumerical and `:` and `_`.
27064 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)) {
27065 effects.consume(code)
27066 return completeAttributeName
27067 }
27068
27069 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
27070 effects.consume(code)
27071 return completeAttributeNameBefore
27072 }
27073
27074 return completeEnd(code)
27075 }
27076
27077 /**
27078 * In attribute name.
27079 *
27080 * ```markdown
27081 * > | <a :b>
27082 * ^
27083 * > | <a _b>
27084 * ^
27085 * > | <a b>
27086 * ^
27087 * ```
27088 *
27089 * @type {State}
27090 */
27091 function completeAttributeName(code) {
27092 // ASCII alphanumerical and `-`, `.`, `:`, and `_`.
27093 if (
27094 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
27095 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot ||
27096 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.colon ||
27097 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore ||
27098 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)
27099 ) {
27100 effects.consume(code)
27101 return completeAttributeName
27102 }
27103
27104 return completeAttributeNameAfter(code)
27105 }
27106
27107 /**
27108 * After attribute name, at an optional initializer, the end of the tag, or
27109 * whitespace.
27110 *
27111 * ```markdown
27112 * > | <a b>
27113 * ^
27114 * > | <a b=c>
27115 * ^
27116 * ```
27117 *
27118 * @type {State}
27119 */
27120 function completeAttributeNameAfter(code) {
27121 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {
27122 effects.consume(code)
27123 return completeAttributeValueBefore
27124 }
27125
27126 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
27127 effects.consume(code)
27128 return completeAttributeNameAfter
27129 }
27130
27131 return completeAttributeNameBefore(code)
27132 }
27133
27134 /**
27135 * Before unquoted, double quoted, or single quoted attribute value, allowing
27136 * whitespace.
27137 *
27138 * ```markdown
27139 * > | <a b=c>
27140 * ^
27141 * > | <a b="c">
27142 * ^
27143 * ```
27144 *
27145 * @type {State}
27146 */
27147 function completeAttributeValueBefore(code) {
27148 if (
27149 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
27150 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
27151 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
27152 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
27153 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent
27154 ) {
27155 return nok(code)
27156 }
27157
27158 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) {
27159 effects.consume(code)
27160 markerB = code
27161 return completeAttributeValueQuoted
27162 }
27163
27164 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
27165 effects.consume(code)
27166 return completeAttributeValueBefore
27167 }
27168
27169 return completeAttributeValueUnquoted(code)
27170 }
27171
27172 /**
27173 * In double or single quoted attribute value.
27174 *
27175 * ```markdown
27176 * > | <a b="c">
27177 * ^
27178 * > | <a b='c'>
27179 * ^
27180 * ```
27181 *
27182 * @type {State}
27183 */
27184 function completeAttributeValueQuoted(code) {
27185 if (code === markerB) {
27186 effects.consume(code)
27187 markerB = null
27188 return completeAttributeValueQuotedAfter
27189 }
27190
27191 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27192 return nok(code)
27193 }
27194
27195 effects.consume(code)
27196 return completeAttributeValueQuoted
27197 }
27198
27199 /**
27200 * In unquoted attribute value.
27201 *
27202 * ```markdown
27203 * > | <a b=c>
27204 * ^
27205 * ```
27206 *
27207 * @type {State}
27208 */
27209 function completeAttributeValueUnquoted(code) {
27210 if (
27211 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||
27212 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark ||
27213 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe ||
27214 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
27215 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||
27216 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||
27217 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
27218 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||
27219 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)
27220 ) {
27221 return completeAttributeNameAfter(code)
27222 }
27223
27224 effects.consume(code)
27225 return completeAttributeValueUnquoted
27226 }
27227
27228 /**
27229 * After double or single quoted attribute value, before whitespace or the
27230 * end of the tag.
27231 *
27232 * ```markdown
27233 * > | <a b="c">
27234 * ^
27235 * ```
27236 *
27237 * @type {State}
27238 */
27239 function completeAttributeValueQuotedAfter(code) {
27240 if (
27241 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||
27242 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||
27243 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
27244 ) {
27245 return completeAttributeNameBefore(code)
27246 }
27247
27248 return nok(code)
27249 }
27250
27251 /**
27252 * In certain circumstances of a complete tag where only an `>` is allowed.
27253 *
27254 * ```markdown
27255 * > | <a b="c">
27256 * ^
27257 * ```
27258 *
27259 * @type {State}
27260 */
27261 function completeEnd(code) {
27262 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27263 effects.consume(code)
27264 return completeAfter
27265 }
27266
27267 return nok(code)
27268 }
27269
27270 /**
27271 * After `>` in a complete tag.
27272 *
27273 * ```markdown
27274 * > | <x>
27275 * ^
27276 * ```
27277 *
27278 * @type {State}
27279 */
27280 function completeAfter(code) {
27281 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27282 // // Do not form containers.
27283 // tokenizer.concrete = true
27284 return continuation(code)
27285 }
27286
27287 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {
27288 effects.consume(code)
27289 return completeAfter
27290 }
27291
27292 return nok(code)
27293 }
27294
27295 /**
27296 * In continuation of any HTML kind.
27297 *
27298 * ```markdown
27299 * > | <!--xxx-->
27300 * ^
27301 * ```
27302 *
27303 * @type {State}
27304 */
27305 function continuation(code) {
27306 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) {
27307 effects.consume(code)
27308 return continuationCommentInside
27309 }
27310
27311 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) {
27312 effects.consume(code)
27313 return continuationRawTagOpen
27314 }
27315
27316 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) {
27317 effects.consume(code)
27318 return continuationClose
27319 }
27320
27321 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) {
27322 effects.consume(code)
27323 return continuationDeclarationInside
27324 }
27325
27326 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) {
27327 effects.consume(code)
27328 return continuationCdataInside
27329 }
27330
27331 if (
27332 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) &&
27333 (marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)
27334 ) {
27335 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27336 return effects.check(
27337 blankLineBefore,
27338 continuationAfter,
27339 continuationStart
27340 )(code)
27341 }
27342
27343 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27344 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27345 return continuationStart(code)
27346 }
27347
27348 effects.consume(code)
27349 return continuation
27350 }
27351
27352 /**
27353 * In continuation, at eol.
27354 *
27355 * ```markdown
27356 * > | <x>
27357 * ^
27358 * | asd
27359 * ```
27360 *
27361 * @type {State}
27362 */
27363 function continuationStart(code) {
27364 return effects.check(
27365 nonLazyContinuationStart,
27366 continuationStartNonLazy,
27367 continuationAfter
27368 )(code)
27369 }
27370
27371 /**
27372 * In continuation, at eol, before non-lazy content.
27373 *
27374 * ```markdown
27375 * > | <x>
27376 * ^
27377 * | asd
27378 * ```
27379 *
27380 * @type {State}
27381 */
27382 function continuationStartNonLazy(code) {
27383 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
27384 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27385 effects.consume(code)
27386 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27387 return continuationBefore
27388 }
27389
27390 /**
27391 * In continuation, before non-lazy content.
27392 *
27393 * ```markdown
27394 * | <x>
27395 * > | asd
27396 * ^
27397 * ```
27398 *
27399 * @type {State}
27400 */
27401 function continuationBefore(code) {
27402 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27403 return continuationStart(code)
27404 }
27405
27406 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27407 return continuation(code)
27408 }
27409
27410 /**
27411 * In comment continuation, after one `-`, expecting another.
27412 *
27413 * ```markdown
27414 * > | <!--xxx-->
27415 * ^
27416 * ```
27417 *
27418 * @type {State}
27419 */
27420 function continuationCommentInside(code) {
27421 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {
27422 effects.consume(code)
27423 return continuationDeclarationInside
27424 }
27425
27426 return continuation(code)
27427 }
27428
27429 /**
27430 * In raw continuation, after `<`, at `/`.
27431 *
27432 * ```markdown
27433 * > | <script>console.log(1)</script>
27434 * ^
27435 * ```
27436 *
27437 * @type {State}
27438 */
27439 function continuationRawTagOpen(code) {
27440 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {
27441 effects.consume(code)
27442 buffer = ''
27443 return continuationRawEndTag
27444 }
27445
27446 return continuation(code)
27447 }
27448
27449 /**
27450 * In raw continuation, after `</`, in a raw tag name.
27451 *
27452 * ```markdown
27453 * > | <script>console.log(1)</script>
27454 * ^^^^^^
27455 * ```
27456 *
27457 * @type {State}
27458 */
27459 function continuationRawEndTag(code) {
27460 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27461 const name = buffer.toLowerCase()
27462
27463 if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {
27464 effects.consume(code)
27465 return continuationClose
27466 }
27467
27468 return continuation(code)
27469 }
27470
27471 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code) && buffer.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRawSizeMax) {
27472 effects.consume(code)
27473 // @ts-expect-error: not null.
27474 buffer += String.fromCharCode(code)
27475 return continuationRawEndTag
27476 }
27477
27478 return continuation(code)
27479 }
27480
27481 /**
27482 * In cdata continuation, after `]`, expecting `]>`.
27483 *
27484 * ```markdown
27485 * > | <![CDATA[>&<]]>
27486 * ^
27487 * ```
27488 *
27489 * @type {State}
27490 */
27491 function continuationCdataInside(code) {
27492 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket) {
27493 effects.consume(code)
27494 return continuationDeclarationInside
27495 }
27496
27497 return continuation(code)
27498 }
27499
27500 /**
27501 * In declaration or instruction continuation, at `>`.
27502 *
27503 * ```markdown
27504 * > | <!-->
27505 * ^
27506 * > | <?>
27507 * ^
27508 * > | <!q>
27509 * ^
27510 * > | <!--ab-->
27511 * ^
27512 * > | <![CDATA[>&<]]>
27513 * ^
27514 * ```
27515 *
27516 * @type {State}
27517 */
27518 function continuationDeclarationInside(code) {
27519 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {
27520 effects.consume(code)
27521 return continuationClose
27522 }
27523
27524 // More dashes.
27525 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) {
27526 effects.consume(code)
27527 return continuationDeclarationInside
27528 }
27529
27530 return continuation(code)
27531 }
27532
27533 /**
27534 * In closed continuation: everything we get until the eol/eof is part of it.
27535 *
27536 * ```markdown
27537 * > | <!doctype>
27538 * ^
27539 * ```
27540 *
27541 * @type {State}
27542 */
27543 function continuationClose(code) {
27544 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27545 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlowData)
27546 return continuationAfter(code)
27547 }
27548
27549 effects.consume(code)
27550 return continuationClose
27551 }
27552
27553 /**
27554 * Done.
27555 *
27556 * ```markdown
27557 * > | <!doctype>
27558 * ^
27559 * ```
27560 *
27561 * @type {State}
27562 */
27563 function continuationAfter(code) {
27564 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.htmlFlow)
27565 // // Feel free to interrupt.
27566 // tokenizer.interrupt = false
27567 // // No longer concrete.
27568 // tokenizer.concrete = false
27569 return ok(code)
27570 }
27571 }
27572
27573 /**
27574 * @this {TokenizeContext}
27575 * @type {Tokenizer}
27576 */
27577 function tokenizeNonLazyContinuationStart(effects, ok, nok) {
27578 const self = this
27579
27580 return start
27581
27582 /**
27583 * At eol, before continuation.
27584 *
27585 * ```markdown
27586 * > | * ```js
27587 * ^
27588 * | b
27589 * ```
27590 *
27591 * @type {State}
27592 */
27593 function start(code) {
27594 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {
27595 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27596 effects.consume(code)
27597 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27598 return after
27599 }
27600
27601 return nok(code)
27602 }
27603
27604 /**
27605 * A continuation.
27606 *
27607 * ```markdown
27608 * | * ```js
27609 * > | b
27610 * ^
27611 * ```
27612 *
27613 * @type {State}
27614 */
27615 function after(code) {
27616 return self.parser.lazy[self.now().line] ? nok(code) : ok(code)
27617 }
27618 }
27619
27620 /**
27621 * @this {TokenizeContext}
27622 * @type {Tokenizer}
27623 */
27624 function tokenizeBlankLineBefore(effects, ok, nok) {
27625 return start
27626
27627 /**
27628 * Before eol, expecting blank line.
27629 *
27630 * ```markdown
27631 * > | <div>
27632 * ^
27633 * |
27634 * ```
27635 *
27636 * @type {State}
27637 */
27638 function start(code) {
27639 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code), 'expected a line ending')
27640 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27641 effects.consume(code)
27642 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
27643 return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, ok, nok)
27644 }
27645 }
27646
27647
27648 /***/ }),
27649
27650 /***/ "../node_modules/micromark-core-commonmark/dev/lib/html-text.js":
27651 /*!**********************************************************************!*\
27652 !*** ../node_modules/micromark-core-commonmark/dev/lib/html-text.js ***!
27653 \**********************************************************************/
27654 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
27655
27656 "use strict";
27657 __webpack_require__.r(__webpack_exports__);
27658 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27659 /* harmony export */ htmlText: () => (/* binding */ htmlText)
27660 /* harmony export */ });
27661 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
27662 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
27663 /* 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");
27664 /* 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");
27665 /* 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");
27666 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
27667 /**
27668 * @typedef {import('micromark-util-types').Code} Code
27669 * @typedef {import('micromark-util-types').Construct} Construct
27670 * @typedef {import('micromark-util-types').State} State
27671 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
27672 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
27673 */
27674
27675
27676
27677
27678
27679
27680
27681
27682 /** @type {Construct} */
27683 const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}
27684
27685 /**
27686 * @this {TokenizeContext}
27687 * @type {Tokenizer}
27688 */
27689 function tokenizeHtmlText(effects, ok, nok) {
27690 const self = this
27691 /** @type {NonNullable<Code> | undefined} */
27692 let marker
27693 /** @type {number} */
27694 let index
27695 /** @type {State} */
27696 let returnState
27697
27698 return start
27699
27700 /**
27701 * Start of HTML (text).
27702 *
27703 * ```markdown
27704 * > | a <b> c
27705 * ^
27706 * ```
27707 *
27708 * @type {State}
27709 */
27710 function start(code) {
27711 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')
27712 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
27713 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
27714 effects.consume(code)
27715 return open
27716 }
27717
27718 /**
27719 * After `<`, at tag name or other stuff.
27720 *
27721 * ```markdown
27722 * > | a <b> c
27723 * ^
27724 * > | a <!doctype> c
27725 * ^
27726 * > | a <!--b--> c
27727 * ^
27728 * ```
27729 *
27730 * @type {State}
27731 */
27732 function open(code) {
27733 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.exclamationMark) {
27734 effects.consume(code)
27735 return declarationOpen
27736 }
27737
27738 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
27739 effects.consume(code)
27740 return tagCloseStart
27741 }
27742
27743 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
27744 effects.consume(code)
27745 return instruction
27746 }
27747
27748 // ASCII alphabetical.
27749 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27750 effects.consume(code)
27751 return tagOpen
27752 }
27753
27754 return nok(code)
27755 }
27756
27757 /**
27758 * After `<!`, at declaration, comment, or CDATA.
27759 *
27760 * ```markdown
27761 * > | a <!doctype> c
27762 * ^
27763 * > | a <!--b--> c
27764 * ^
27765 * > | a <![CDATA[>&<]]> c
27766 * ^
27767 * ```
27768 *
27769 * @type {State}
27770 */
27771 function declarationOpen(code) {
27772 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27773 effects.consume(code)
27774 return commentOpenInside
27775 }
27776
27777 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket) {
27778 effects.consume(code)
27779 index = 0
27780 return cdataOpenInside
27781 }
27782
27783 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
27784 effects.consume(code)
27785 return declaration
27786 }
27787
27788 return nok(code)
27789 }
27790
27791 /**
27792 * In a comment, after `<!-`, at another `-`.
27793 *
27794 * ```markdown
27795 * > | a <!--b--> c
27796 * ^
27797 * ```
27798 *
27799 * @type {State}
27800 */
27801 function commentOpenInside(code) {
27802 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27803 effects.consume(code)
27804 return commentEnd
27805 }
27806
27807 return nok(code)
27808 }
27809
27810 /**
27811 * In comment.
27812 *
27813 * ```markdown
27814 * > | a <!--b--> c
27815 * ^
27816 * ```
27817 *
27818 * @type {State}
27819 */
27820 function comment(code) {
27821 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27822 return nok(code)
27823 }
27824
27825 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27826 effects.consume(code)
27827 return commentClose
27828 }
27829
27830 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27831 returnState = comment
27832 return lineEndingBefore(code)
27833 }
27834
27835 effects.consume(code)
27836 return comment
27837 }
27838
27839 /**
27840 * In comment, after `-`.
27841 *
27842 * ```markdown
27843 * > | a <!--b--> c
27844 * ^
27845 * ```
27846 *
27847 * @type {State}
27848 */
27849 function commentClose(code) {
27850 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash) {
27851 effects.consume(code)
27852 return commentEnd
27853 }
27854
27855 return comment(code)
27856 }
27857
27858 /**
27859 * In comment, after `--`.
27860 *
27861 * ```markdown
27862 * > | a <!--b--> c
27863 * ^
27864 * ```
27865 *
27866 * @type {State}
27867 */
27868 function commentEnd(code) {
27869 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan
27870 ? end(code)
27871 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash
27872 ? commentClose(code)
27873 : comment(code)
27874 }
27875
27876 /**
27877 * After `<![`, in CDATA, expecting `CDATA[`.
27878 *
27879 * ```markdown
27880 * > | a <![CDATA[>&<]]> b
27881 * ^^^^^^
27882 * ```
27883 *
27884 * @type {State}
27885 */
27886 function cdataOpenInside(code) {
27887 const value = micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.cdataOpeningString
27888
27889 if (code === value.charCodeAt(index++)) {
27890 effects.consume(code)
27891 return index === value.length ? cdata : cdataOpenInside
27892 }
27893
27894 return nok(code)
27895 }
27896
27897 /**
27898 * In CDATA.
27899 *
27900 * ```markdown
27901 * > | a <![CDATA[>&<]]> b
27902 * ^^^
27903 * ```
27904 *
27905 * @type {State}
27906 */
27907 function cdata(code) {
27908 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
27909 return nok(code)
27910 }
27911
27912 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27913 effects.consume(code)
27914 return cdataClose
27915 }
27916
27917 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27918 returnState = cdata
27919 return lineEndingBefore(code)
27920 }
27921
27922 effects.consume(code)
27923 return cdata
27924 }
27925
27926 /**
27927 * In CDATA, after `]`, at another `]`.
27928 *
27929 * ```markdown
27930 * > | a <![CDATA[>&<]]> b
27931 * ^
27932 * ```
27933 *
27934 * @type {State}
27935 */
27936 function cdataClose(code) {
27937 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27938 effects.consume(code)
27939 return cdataEnd
27940 }
27941
27942 return cdata(code)
27943 }
27944
27945 /**
27946 * In CDATA, after `]]`, at `>`.
27947 *
27948 * ```markdown
27949 * > | a <![CDATA[>&<]]> b
27950 * ^
27951 * ```
27952 *
27953 * @type {State}
27954 */
27955 function cdataEnd(code) {
27956 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
27957 return end(code)
27958 }
27959
27960 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
27961 effects.consume(code)
27962 return cdataEnd
27963 }
27964
27965 return cdata(code)
27966 }
27967
27968 /**
27969 * In declaration.
27970 *
27971 * ```markdown
27972 * > | a <!b> c
27973 * ^
27974 * ```
27975 *
27976 * @type {State}
27977 */
27978 function declaration(code) {
27979 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) {
27980 return end(code)
27981 }
27982
27983 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
27984 returnState = declaration
27985 return lineEndingBefore(code)
27986 }
27987
27988 effects.consume(code)
27989 return declaration
27990 }
27991
27992 /**
27993 * In instruction.
27994 *
27995 * ```markdown
27996 * > | a <?b?> c
27997 * ^
27998 * ```
27999 *
28000 * @type {State}
28001 */
28002 function instruction(code) {
28003 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
28004 return nok(code)
28005 }
28006
28007 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.questionMark) {
28008 effects.consume(code)
28009 return instructionClose
28010 }
28011
28012 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28013 returnState = instruction
28014 return lineEndingBefore(code)
28015 }
28016
28017 effects.consume(code)
28018 return instruction
28019 }
28020
28021 /**
28022 * In instruction, after `?`, at `>`.
28023 *
28024 * ```markdown
28025 * > | a <?b?> c
28026 * ^
28027 * ```
28028 *
28029 * @type {State}
28030 */
28031 function instructionClose(code) {
28032 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ? end(code) : instruction(code)
28033 }
28034
28035 /**
28036 * After `</`, in closing tag, at tag name.
28037 *
28038 * ```markdown
28039 * > | a </b> c
28040 * ^
28041 * ```
28042 *
28043 * @type {State}
28044 */
28045 function tagCloseStart(code) {
28046 // ASCII alphabetical.
28047 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {
28048 effects.consume(code)
28049 return tagClose
28050 }
28051
28052 return nok(code)
28053 }
28054
28055 /**
28056 * After `</x`, in a tag name.
28057 *
28058 * ```markdown
28059 * > | a </b> c
28060 * ^
28061 * ```
28062 *
28063 * @type {State}
28064 */
28065 function tagClose(code) {
28066 // ASCII alphanumerical and `-`.
28067 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
28068 effects.consume(code)
28069 return tagClose
28070 }
28071
28072 return tagCloseBetween(code)
28073 }
28074
28075 /**
28076 * In closing tag, after tag name.
28077 *
28078 * ```markdown
28079 * > | a </b> c
28080 * ^
28081 * ```
28082 *
28083 * @type {State}
28084 */
28085 function tagCloseBetween(code) {
28086 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28087 returnState = tagCloseBetween
28088 return lineEndingBefore(code)
28089 }
28090
28091 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
28092 effects.consume(code)
28093 return tagCloseBetween
28094 }
28095
28096 return end(code)
28097 }
28098
28099 /**
28100 * After `<x`, in opening tag name.
28101 *
28102 * ```markdown
28103 * > | a <b> c
28104 * ^
28105 * ```
28106 *
28107 * @type {State}
28108 */
28109 function tagOpen(code) {
28110 // ASCII alphanumerical and `-`.
28111 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) {
28112 effects.consume(code)
28113 return tagOpen
28114 }
28115
28116 if (
28117 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28118 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28119 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28120 ) {
28121 return tagOpenBetween(code)
28122 }
28123
28124 return nok(code)
28125 }
28126
28127 /**
28128 * In opening tag, after tag name.
28129 *
28130 * ```markdown
28131 * > | a <b> c
28132 * ^
28133 * ```
28134 *
28135 * @type {State}
28136 */
28137 function tagOpenBetween(code) {
28138 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash) {
28139 effects.consume(code)
28140 return end
28141 }
28142
28143 // ASCII alphabetical and `:` and `_`.
28144 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)) {
28145 effects.consume(code)
28146 return tagOpenAttributeName
28147 }
28148
28149 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28150 returnState = tagOpenBetween
28151 return lineEndingBefore(code)
28152 }
28153
28154 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
28155 effects.consume(code)
28156 return tagOpenBetween
28157 }
28158
28159 return end(code)
28160 }
28161
28162 /**
28163 * In attribute name.
28164 *
28165 * ```markdown
28166 * > | a <b c> d
28167 * ^
28168 * ```
28169 *
28170 * @type {State}
28171 */
28172 function tagOpenAttributeName(code) {
28173 // ASCII alphabetical and `-`, `.`, `:`, and `_`.
28174 if (
28175 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||
28176 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||
28177 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.colon ||
28178 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.underscore ||
28179 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)
28180 ) {
28181 effects.consume(code)
28182 return tagOpenAttributeName
28183 }
28184
28185 return tagOpenAttributeNameAfter(code)
28186 }
28187
28188 /**
28189 * After attribute name, before initializer, the end of the tag, or
28190 * whitespace.
28191 *
28192 * ```markdown
28193 * > | a <b c> d
28194 * ^
28195 * ```
28196 *
28197 * @type {State}
28198 */
28199 function tagOpenAttributeNameAfter(code) {
28200 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo) {
28201 effects.consume(code)
28202 return tagOpenAttributeValueBefore
28203 }
28204
28205 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28206 returnState = tagOpenAttributeNameAfter
28207 return lineEndingBefore(code)
28208 }
28209
28210 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
28211 effects.consume(code)
28212 return tagOpenAttributeNameAfter
28213 }
28214
28215 return tagOpenBetween(code)
28216 }
28217
28218 /**
28219 * Before unquoted, double quoted, or single quoted attribute value, allowing
28220 * whitespace.
28221 *
28222 * ```markdown
28223 * > | a <b c=d> e
28224 * ^
28225 * ```
28226 *
28227 * @type {State}
28228 */
28229 function tagOpenAttributeValueBefore(code) {
28230 if (
28231 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
28232 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
28233 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
28234 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28235 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
28236 ) {
28237 return nok(code)
28238 }
28239
28240 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) {
28241 effects.consume(code)
28242 marker = code
28243 return tagOpenAttributeValueQuoted
28244 }
28245
28246 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28247 returnState = tagOpenAttributeValueBefore
28248 return lineEndingBefore(code)
28249 }
28250
28251 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
28252 effects.consume(code)
28253 return tagOpenAttributeValueBefore
28254 }
28255
28256 effects.consume(code)
28257 return tagOpenAttributeValueUnquoted
28258 }
28259
28260 /**
28261 * In double or single quoted attribute value.
28262 *
28263 * ```markdown
28264 * > | a <b c="d"> e
28265 * ^
28266 * ```
28267 *
28268 * @type {State}
28269 */
28270 function tagOpenAttributeValueQuoted(code) {
28271 if (code === marker) {
28272 effects.consume(code)
28273 marker = undefined
28274 return tagOpenAttributeValueQuotedAfter
28275 }
28276
28277 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
28278 return nok(code)
28279 }
28280
28281 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
28282 returnState = tagOpenAttributeValueQuoted
28283 return lineEndingBefore(code)
28284 }
28285
28286 effects.consume(code)
28287 return tagOpenAttributeValueQuoted
28288 }
28289
28290 /**
28291 * In unquoted attribute value.
28292 *
28293 * ```markdown
28294 * > | a <b c=d> e
28295 * ^
28296 * ```
28297 *
28298 * @type {State}
28299 */
28300 function tagOpenAttributeValueUnquoted(code) {
28301 if (
28302 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
28303 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.quotationMark ||
28304 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.apostrophe ||
28305 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||
28306 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.equalsTo ||
28307 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.graveAccent
28308 ) {
28309 return nok(code)
28310 }
28311
28312 if (
28313 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28314 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28315 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28316 ) {
28317 return tagOpenBetween(code)
28318 }
28319
28320 effects.consume(code)
28321 return tagOpenAttributeValueUnquoted
28322 }
28323
28324 /**
28325 * After double or single quoted attribute value, before whitespace or the end
28326 * of the tag.
28327 *
28328 * ```markdown
28329 * > | a <b c="d"> e
28330 * ^
28331 * ```
28332 *
28333 * @type {State}
28334 */
28335 function tagOpenAttributeValueQuotedAfter(code) {
28336 if (
28337 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.slash ||
28338 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan ||
28339 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEndingOrSpace)(code)
28340 ) {
28341 return tagOpenBetween(code)
28342 }
28343
28344 return nok(code)
28345 }
28346
28347 /**
28348 * In certain circumstances of a tag where only an `>` is allowed.
28349 *
28350 * ```markdown
28351 * > | a <b c="d"> e
28352 * ^
28353 * ```
28354 *
28355 * @type {State}
28356 */
28357 function end(code) {
28358 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {
28359 effects.consume(code)
28360 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28361 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlText)
28362 return ok
28363 }
28364
28365 return nok(code)
28366 }
28367
28368 /**
28369 * At eol.
28370 *
28371 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28372 * > empty tokens.
28373 *
28374 * ```markdown
28375 * > | a <!--a
28376 * ^
28377 * | b-->
28378 * ```
28379 *
28380 * @type {State}
28381 */
28382 function lineEndingBefore(code) {
28383 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(returnState, 'expected return state')
28384 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code), 'expected eol')
28385 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28386 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28387 effects.consume(code)
28388 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
28389 return lineEndingAfter
28390 }
28391
28392 /**
28393 * After eol, at optional whitespace.
28394 *
28395 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28396 * > empty tokens.
28397 *
28398 * ```markdown
28399 * | a <!--a
28400 * > | b-->
28401 * ^
28402 * ```
28403 *
28404 * @type {State}
28405 */
28406 function lineEndingAfter(code) {
28407 // Always populated by defaults.
28408 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28409 self.parser.constructs.disable.null,
28410 'expected `disable.null` to be populated'
28411 )
28412 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
28413 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(
28414 effects,
28415 lineEndingAfterPrefix,
28416 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix,
28417 self.parser.constructs.disable.null.includes('codeIndented')
28418 ? undefined
28419 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
28420 )(code)
28421 : lineEndingAfterPrefix(code)
28422 }
28423
28424 /**
28425 * After eol, after optional whitespace.
28426 *
28427 * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
28428 * > empty tokens.
28429 *
28430 * ```markdown
28431 * | a <!--a
28432 * > | b-->
28433 * ^
28434 * ```
28435 *
28436 * @type {State}
28437 */
28438 function lineEndingAfterPrefix(code) {
28439 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.htmlTextData)
28440 return returnState(code)
28441 }
28442 }
28443
28444
28445 /***/ }),
28446
28447 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-end.js":
28448 /*!**********************************************************************!*\
28449 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-end.js ***!
28450 \**********************************************************************/
28451 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
28452
28453 "use strict";
28454 __webpack_require__.r(__webpack_exports__);
28455 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28456 /* harmony export */ labelEnd: () => (/* binding */ labelEnd)
28457 /* harmony export */ });
28458 /* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! micromark-factory-destination */ "../node_modules/micromark-factory-destination/dev/index.js");
28459 /* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! micromark-factory-label */ "../node_modules/micromark-factory-label/dev/index.js");
28460 /* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! micromark-factory-title */ "../node_modules/micromark-factory-title/dev/index.js");
28461 /* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-whitespace */ "../node_modules/micromark-factory-whitespace/dev/index.js");
28462 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
28463 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
28464 /* 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");
28465 /* 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");
28466 /* 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");
28467 /* 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");
28468 /* 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");
28469 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
28470 /**
28471 * @typedef {import('micromark-util-types').Construct} Construct
28472 * @typedef {import('micromark-util-types').Event} Event
28473 * @typedef {import('micromark-util-types').Resolver} Resolver
28474 * @typedef {import('micromark-util-types').State} State
28475 * @typedef {import('micromark-util-types').Token} Token
28476 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
28477 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
28478 */
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493 /** @type {Construct} */
28494 const labelEnd = {
28495 name: 'labelEnd',
28496 tokenize: tokenizeLabelEnd,
28497 resolveTo: resolveToLabelEnd,
28498 resolveAll: resolveAllLabelEnd
28499 }
28500
28501 /** @type {Construct} */
28502 const resourceConstruct = {tokenize: tokenizeResource}
28503 /** @type {Construct} */
28504 const referenceFullConstruct = {tokenize: tokenizeReferenceFull}
28505 /** @type {Construct} */
28506 const referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}
28507
28508 /** @type {Resolver} */
28509 function resolveAllLabelEnd(events) {
28510 let index = -1
28511
28512 while (++index < events.length) {
28513 const token = events[index][1]
28514
28515 if (
28516 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28517 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink ||
28518 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd
28519 ) {
28520 // Remove the marker.
28521 events.splice(index + 1, token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ? 4 : 2)
28522 token.type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.data
28523 index++
28524 }
28525 }
28526
28527 return events
28528 }
28529
28530 /** @type {Resolver} */
28531 function resolveToLabelEnd(events, context) {
28532 let index = events.length
28533 let offset = 0
28534 /** @type {Token} */
28535 let token
28536 /** @type {number | undefined} */
28537 let open
28538 /** @type {number | undefined} */
28539 let close
28540 /** @type {Array<Event>} */
28541 let media
28542
28543 // Find an opening.
28544 while (index--) {
28545 token = events[index][1]
28546
28547 if (open) {
28548 // If we see another link, or inactive link label, we’ve been here before.
28549 if (
28550 token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.link ||
28551 (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink && token._inactive)
28552 ) {
28553 break
28554 }
28555
28556 // Mark other link openings as inactive, as we can’t have links in
28557 // links.
28558 if (events[index][0] === 'enter' && token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28559 token._inactive = true
28560 }
28561 } else if (close) {
28562 if (
28563 events[index][0] === 'enter' &&
28564 (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) &&
28565 !token._balanced
28566 ) {
28567 open = index
28568
28569 if (token.type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) {
28570 offset = 2
28571 break
28572 }
28573 }
28574 } else if (token.type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd) {
28575 close = index
28576 }
28577 }
28578
28579 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(open !== undefined, '`open` is supposed to be found')
28580 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(close !== undefined, '`close` is supposed to be found')
28581
28582 const group = {
28583 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,
28584 start: Object.assign({}, events[open][1].start),
28585 end: Object.assign({}, events[events.length - 1][1].end)
28586 }
28587
28588 const label = {
28589 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.label,
28590 start: Object.assign({}, events[open][1].start),
28591 end: Object.assign({}, events[close][1].end)
28592 }
28593
28594 const text = {
28595 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelText,
28596 start: Object.assign({}, events[open + offset + 2][1].end),
28597 end: Object.assign({}, events[close - 2][1].start)
28598 }
28599
28600 media = [
28601 ['enter', group, context],
28602 ['enter', label, context]
28603 ]
28604
28605 // Opening marker.
28606 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(open + 1, open + offset + 3))
28607
28608 // Text open.
28609 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['enter', text, context]])
28610
28611 // Always populated by defaults.
28612 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
28613 context.parser.constructs.insideSpan.null,
28614 'expected `insideSpan.null` to be populated'
28615 )
28616 // Between.
28617 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(
28618 media,
28619 (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_3__.resolveAll)(
28620 context.parser.constructs.insideSpan.null,
28621 events.slice(open + offset + 4, close - 3),
28622 context
28623 )
28624 )
28625
28626 // Text close, marker close, label close.
28627 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [
28628 ['exit', text, context],
28629 events[close - 2],
28630 events[close - 1],
28631 ['exit', label, context]
28632 ])
28633
28634 // Reference, resource, or so.
28635 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, events.slice(close + 1))
28636
28637 // Media close.
28638 media = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.push)(media, [['exit', group, context]])
28639
28640 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, open, events.length, media)
28641
28642 return events
28643 }
28644
28645 /**
28646 * @this {TokenizeContext}
28647 * @type {Tokenizer}
28648 */
28649 function tokenizeLabelEnd(effects, ok, nok) {
28650 const self = this
28651 let index = self.events.length
28652 /** @type {Token} */
28653 let labelStart
28654 /** @type {boolean} */
28655 let defined
28656
28657 // Find an opening.
28658 while (index--) {
28659 if (
28660 (self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelImage ||
28661 self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelLink) &&
28662 !self.events[index][1]._balanced
28663 ) {
28664 labelStart = self.events[index][1]
28665 break
28666 }
28667 }
28668
28669 return start
28670
28671 /**
28672 * Start of label end.
28673 *
28674 * ```markdown
28675 * > | [a](b) c
28676 * ^
28677 * > | [a][b] c
28678 * ^
28679 * > | [a][] b
28680 * ^
28681 * > | [a] b
28682 * ```
28683 *
28684 * @type {State}
28685 */
28686 function start(code) {
28687 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket, 'expected `]`')
28688
28689 // If there is not an okay opening.
28690 if (!labelStart) {
28691 return nok(code)
28692 }
28693
28694 // If the corresponding label (link) start is marked as inactive,
28695 // it means we’d be wrapping a link, like this:
28696 //
28697 // ```markdown
28698 // > | a [b [c](d) e](f) g.
28699 // ^
28700 // ```
28701 //
28702 // We can’t have that, so it’s just balanced brackets.
28703 if (labelStart._inactive) {
28704 return labelEndNok(code)
28705 }
28706
28707 defined = self.parser.defined.includes(
28708 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
28709 self.sliceSerialize({start: labelStart.end, end: self.now()})
28710 )
28711 )
28712 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28713 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28714 effects.consume(code)
28715 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelMarker)
28716 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.labelEnd)
28717 return after
28718 }
28719
28720 /**
28721 * After `]`.
28722 *
28723 * ```markdown
28724 * > | [a](b) c
28725 * ^
28726 * > | [a][b] c
28727 * ^
28728 * > | [a][] b
28729 * ^
28730 * > | [a] b
28731 * ^
28732 * ```
28733 *
28734 * @type {State}
28735 */
28736 function after(code) {
28737 // Note: `markdown-rs` also parses GFM footnotes here, which for us is in
28738 // an extension.
28739
28740 // Resource (`[asd](fgh)`)?
28741 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis) {
28742 return effects.attempt(
28743 resourceConstruct,
28744 labelEndOk,
28745 defined ? labelEndOk : labelEndNok
28746 )(code)
28747 }
28748
28749 // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
28750 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket) {
28751 return effects.attempt(
28752 referenceFullConstruct,
28753 labelEndOk,
28754 defined ? referenceNotFull : labelEndNok
28755 )(code)
28756 }
28757
28758 // Shortcut (`[asd]`) reference?
28759 return defined ? labelEndOk(code) : labelEndNok(code)
28760 }
28761
28762 /**
28763 * After `]`, at `[`, but not at a full reference.
28764 *
28765 * > 👉 **Note**: we only get here if the label is defined.
28766 *
28767 * ```markdown
28768 * > | [a][] b
28769 * ^
28770 * > | [a] b
28771 * ^
28772 * ```
28773 *
28774 * @type {State}
28775 */
28776 function referenceNotFull(code) {
28777 return effects.attempt(
28778 referenceCollapsedConstruct,
28779 labelEndOk,
28780 labelEndNok
28781 )(code)
28782 }
28783
28784 /**
28785 * Done, we found something.
28786 *
28787 * ```markdown
28788 * > | [a](b) c
28789 * ^
28790 * > | [a][b] c
28791 * ^
28792 * > | [a][] b
28793 * ^
28794 * > | [a] b
28795 * ^
28796 * ```
28797 *
28798 * @type {State}
28799 */
28800 function labelEndOk(code) {
28801 // Note: `markdown-rs` does a bunch of stuff here.
28802 return ok(code)
28803 }
28804
28805 /**
28806 * Done, it’s nothing.
28807 *
28808 * There was an okay opening, but we didn’t match anything.
28809 *
28810 * ```markdown
28811 * > | [a](b c
28812 * ^
28813 * > | [a][b c
28814 * ^
28815 * > | [a] b
28816 * ^
28817 * ```
28818 *
28819 * @type {State}
28820 */
28821 function labelEndNok(code) {
28822 labelStart._balanced = true
28823 return nok(code)
28824 }
28825 }
28826
28827 /**
28828 * @this {TokenizeContext}
28829 * @type {Tokenizer}
28830 */
28831 function tokenizeResource(effects, ok, nok) {
28832 return resourceStart
28833
28834 /**
28835 * At a resource.
28836 *
28837 * ```markdown
28838 * > | [a](b) c
28839 * ^
28840 * ```
28841 *
28842 * @type {State}
28843 */
28844 function resourceStart(code) {
28845 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis, 'expected left paren')
28846 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28847 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28848 effects.consume(code)
28849 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28850 return resourceBefore
28851 }
28852
28853 /**
28854 * In resource, after `(`, at optional whitespace.
28855 *
28856 * ```markdown
28857 * > | [a](b) c
28858 * ^
28859 * ```
28860 *
28861 * @type {State}
28862 */
28863 function resourceBefore(code) {
28864 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28865 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceOpen)(code)
28866 : resourceOpen(code)
28867 }
28868
28869 /**
28870 * In resource, after optional whitespace, at `)` or a destination.
28871 *
28872 * ```markdown
28873 * > | [a](b) c
28874 * ^
28875 * ```
28876 *
28877 * @type {State}
28878 */
28879 function resourceOpen(code) {
28880 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28881 return resourceEnd(code)
28882 }
28883
28884 return (0,micromark_factory_destination__WEBPACK_IMPORTED_MODULE_8__.factoryDestination)(
28885 effects,
28886 resourceDestinationAfter,
28887 resourceDestinationMissing,
28888 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestination,
28889 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteral,
28890 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationLiteralMarker,
28891 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationRaw,
28892 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceDestinationString,
28893 micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_9__.constants.linkResourceDestinationBalanceMax
28894 )(code)
28895 }
28896
28897 /**
28898 * In resource, after destination, at optional whitespace.
28899 *
28900 * ```markdown
28901 * > | [a](b) c
28902 * ^
28903 * ```
28904 *
28905 * @type {State}
28906 */
28907 function resourceDestinationAfter(code) {
28908 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28909 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceBetween)(code)
28910 : resourceEnd(code)
28911 }
28912
28913 /**
28914 * At invalid destination.
28915 *
28916 * ```markdown
28917 * > | [a](<<) b
28918 * ^
28919 * ```
28920 *
28921 * @type {State}
28922 */
28923 function resourceDestinationMissing(code) {
28924 return nok(code)
28925 }
28926
28927 /**
28928 * In resource, after destination and whitespace, at `(` or title.
28929 *
28930 * ```markdown
28931 * > | [a](b ) c
28932 * ^
28933 * ```
28934 *
28935 * @type {State}
28936 */
28937 function resourceBetween(code) {
28938 if (
28939 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.quotationMark ||
28940 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.apostrophe ||
28941 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftParenthesis
28942 ) {
28943 return (0,micromark_factory_title__WEBPACK_IMPORTED_MODULE_10__.factoryTitle)(
28944 effects,
28945 resourceTitleAfter,
28946 nok,
28947 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitle,
28948 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleMarker,
28949 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceTitleString
28950 )(code)
28951 }
28952
28953 return resourceEnd(code)
28954 }
28955
28956 /**
28957 * In resource, after title, at optional whitespace.
28958 *
28959 * ```markdown
28960 * > | [a](b "c") d
28961 * ^
28962 * ```
28963 *
28964 * @type {State}
28965 */
28966 function resourceTitleAfter(code) {
28967 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEndingOrSpace)(code)
28968 ? (0,micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_7__.factoryWhitespace)(effects, resourceEnd)(code)
28969 : resourceEnd(code)
28970 }
28971
28972 /**
28973 * In resource, at `)`.
28974 *
28975 * ```markdown
28976 * > | [a](b) d
28977 * ^
28978 * ```
28979 *
28980 * @type {State}
28981 */
28982 function resourceEnd(code) {
28983 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightParenthesis) {
28984 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28985 effects.consume(code)
28986 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resourceMarker)
28987 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.resource)
28988 return ok
28989 }
28990
28991 return nok(code)
28992 }
28993 }
28994
28995 /**
28996 * @this {TokenizeContext}
28997 * @type {Tokenizer}
28998 */
28999 function tokenizeReferenceFull(effects, ok, nok) {
29000 const self = this
29001
29002 return referenceFull
29003
29004 /**
29005 * In a reference (full), at the `[`.
29006 *
29007 * ```markdown
29008 * > | [a][b] d
29009 * ^
29010 * ```
29011 *
29012 * @type {State}
29013 */
29014 function referenceFull(code) {
29015 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
29016 return micromark_factory_label__WEBPACK_IMPORTED_MODULE_11__.factoryLabel.call(
29017 self,
29018 effects,
29019 referenceFullAfter,
29020 referenceFullMissing,
29021 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference,
29022 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker,
29023 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceString
29024 )(code)
29025 }
29026
29027 /**
29028 * In a reference (full), after `]`.
29029 *
29030 * ```markdown
29031 * > | [a][b] d
29032 * ^
29033 * ```
29034 *
29035 * @type {State}
29036 */
29037 function referenceFullAfter(code) {
29038 return self.parser.defined.includes(
29039 (0,micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_5__.normalizeIdentifier)(
29040 self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
29041 )
29042 )
29043 ? ok(code)
29044 : nok(code)
29045 }
29046
29047 /**
29048 * In reference (full) that was missing.
29049 *
29050 * ```markdown
29051 * > | [a][b d
29052 * ^
29053 * ```
29054 *
29055 * @type {State}
29056 */
29057 function referenceFullMissing(code) {
29058 return nok(code)
29059 }
29060 }
29061
29062 /**
29063 * @this {TokenizeContext}
29064 * @type {Tokenizer}
29065 */
29066 function tokenizeReferenceCollapsed(effects, ok, nok) {
29067 return referenceCollapsedStart
29068
29069 /**
29070 * In reference (collapsed), at `[`.
29071 *
29072 * > 👉 **Note**: we only get here if the label is defined.
29073 *
29074 * ```markdown
29075 * > | [a][] d
29076 * ^
29077 * ```
29078 *
29079 * @type {State}
29080 */
29081 function referenceCollapsedStart(code) {
29082 // We only attempt a collapsed label if there’s a `[`.
29083 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.leftSquareBracket, 'expected left bracket')
29084 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
29085 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
29086 effects.consume(code)
29087 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
29088 return referenceCollapsedOpen
29089 }
29090
29091 /**
29092 * In reference (collapsed), at `]`.
29093 *
29094 * > 👉 **Note**: we only get here if the label is defined.
29095 *
29096 * ```markdown
29097 * > | [a][] d
29098 * ^
29099 * ```
29100 *
29101 * @type {State}
29102 */
29103 function referenceCollapsedOpen(code) {
29104 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_4__.codes.rightSquareBracket) {
29105 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
29106 effects.consume(code)
29107 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.referenceMarker)
29108 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.reference)
29109 return ok
29110 }
29111
29112 return nok(code)
29113 }
29114 }
29115
29116
29117 /***/ }),
29118
29119 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js":
29120 /*!******************************************************************************!*\
29121 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js ***!
29122 \******************************************************************************/
29123 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29124
29125 "use strict";
29126 __webpack_require__.r(__webpack_exports__);
29127 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29128 /* harmony export */ labelStartImage: () => (/* binding */ labelStartImage)
29129 /* harmony export */ });
29130 /* 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");
29131 /* 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");
29132 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29133 /* 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");
29134 /**
29135 * @typedef {import('micromark-util-types').Construct} Construct
29136 * @typedef {import('micromark-util-types').State} State
29137 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29138 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29139 */
29140
29141
29142
29143
29144
29145
29146 /** @type {Construct} */
29147 const labelStartImage = {
29148 name: 'labelStartImage',
29149 tokenize: tokenizeLabelStartImage,
29150 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
29151 }
29152
29153 /**
29154 * @this {TokenizeContext}
29155 * @type {Tokenizer}
29156 */
29157 function tokenizeLabelStartImage(effects, ok, nok) {
29158 const self = this
29159
29160 return start
29161
29162 /**
29163 * Start of label (image) start.
29164 *
29165 * ```markdown
29166 * > | a ![b] c
29167 * ^
29168 * ```
29169 *
29170 * @type {State}
29171 */
29172 function start(code) {
29173 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark, 'expected `!`')
29174 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
29175 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
29176 effects.consume(code)
29177 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImageMarker)
29178 return open
29179 }
29180
29181 /**
29182 * After `!`, at `[`.
29183 *
29184 * ```markdown
29185 * > | a ![b] c
29186 * ^
29187 * ```
29188 *
29189 * @type {State}
29190 */
29191 function open(code) {
29192 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {
29193 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29194 effects.consume(code)
29195 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29196 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelImage)
29197 return after
29198 }
29199
29200 return nok(code)
29201 }
29202
29203 /**
29204 * After `![`.
29205 *
29206 * ```markdown
29207 * > | a ![b] c
29208 * ^
29209 * ```
29210 *
29211 * This is needed in because, when GFM footnotes are enabled, images never
29212 * form when started with a `^`.
29213 * Instead, links form:
29214 *
29215 * ```markdown
29216 * ![^a](b)
29217 *
29218 * ![^a][b]
29219 *
29220 * [b]: c
29221 * ```
29222 *
29223 * ```html
29224 * <p>!<a href=\"b\">^a</a></p>
29225 * <p>!<a href=\"c\">^a</a></p>
29226 * ```
29227 *
29228 * @type {State}
29229 */
29230 function after(code) {
29231 // To do: use a new field to do this, this is still needed for
29232 // `micromark-extension-gfm-footnote`, but the `label-start-link`
29233 // behavior isn’t.
29234 // Hidden footnotes hook.
29235 /* c8 ignore next 3 */
29236 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
29237 '_hiddenFootnoteSupport' in self.parser.constructs
29238 ? nok(code)
29239 : ok(code)
29240 }
29241 }
29242
29243
29244 /***/ }),
29245
29246 /***/ "../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js":
29247 /*!*****************************************************************************!*\
29248 !*** ../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js ***!
29249 \*****************************************************************************/
29250 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29251
29252 "use strict";
29253 __webpack_require__.r(__webpack_exports__);
29254 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29255 /* harmony export */ labelStartLink: () => (/* binding */ labelStartLink)
29256 /* harmony export */ });
29257 /* 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");
29258 /* 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");
29259 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29260 /* 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");
29261 /**
29262 * @typedef {import('micromark-util-types').Construct} Construct
29263 * @typedef {import('micromark-util-types').State} State
29264 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29265 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29266 */
29267
29268
29269
29270
29271
29272
29273 /** @type {Construct} */
29274 const labelStartLink = {
29275 name: 'labelStartLink',
29276 tokenize: tokenizeLabelStartLink,
29277 resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_1__.labelEnd.resolveAll
29278 }
29279
29280 /**
29281 * @this {TokenizeContext}
29282 * @type {Tokenizer}
29283 */
29284 function tokenizeLabelStartLink(effects, ok, nok) {
29285 const self = this
29286
29287 return start
29288
29289 /**
29290 * Start of label (link) start.
29291 *
29292 * ```markdown
29293 * > | a [b] c
29294 * ^
29295 * ```
29296 *
29297 * @type {State}
29298 */
29299 function start(code) {
29300 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket, 'expected `[`')
29301 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29302 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29303 effects.consume(code)
29304 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelMarker)
29305 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.labelLink)
29306 return after
29307 }
29308
29309 /** @type {State} */
29310 function after(code) {
29311 // To do: this isn’t needed in `micromark-extension-gfm-footnote`,
29312 // remove.
29313 // Hidden footnotes hook.
29314 /* c8 ignore next 3 */
29315 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.caret &&
29316 '_hiddenFootnoteSupport' in self.parser.constructs
29317 ? nok(code)
29318 : ok(code)
29319 }
29320 }
29321
29322
29323 /***/ }),
29324
29325 /***/ "../node_modules/micromark-core-commonmark/dev/lib/line-ending.js":
29326 /*!************************************************************************!*\
29327 !*** ../node_modules/micromark-core-commonmark/dev/lib/line-ending.js ***!
29328 \************************************************************************/
29329 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29330
29331 "use strict";
29332 __webpack_require__.r(__webpack_exports__);
29333 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29334 /* harmony export */ lineEnding: () => (/* binding */ lineEnding)
29335 /* harmony export */ });
29336 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29337 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29338 /* 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");
29339 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29340 /**
29341 * @typedef {import('micromark-util-types').Construct} Construct
29342 * @typedef {import('micromark-util-types').State} State
29343 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29344 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29345 */
29346
29347
29348
29349
29350
29351
29352 /** @type {Construct} */
29353 const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}
29354
29355 /**
29356 * @this {TokenizeContext}
29357 * @type {Tokenizer}
29358 */
29359 function tokenizeLineEnding(effects, ok) {
29360 return start
29361
29362 /** @type {State} */
29363 function start(code) {
29364 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code), 'expected eol')
29365 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29366 effects.consume(code)
29367 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
29368 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, ok, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
29369 }
29370 }
29371
29372
29373 /***/ }),
29374
29375 /***/ "../node_modules/micromark-core-commonmark/dev/lib/list.js":
29376 /*!*****************************************************************!*\
29377 !*** ../node_modules/micromark-core-commonmark/dev/lib/list.js ***!
29378 \*****************************************************************/
29379 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29380
29381 "use strict";
29382 __webpack_require__.r(__webpack_exports__);
29383 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29384 /* harmony export */ list: () => (/* binding */ list)
29385 /* harmony export */ });
29386 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29387 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29388 /* 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");
29389 /* 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");
29390 /* 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");
29391 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29392 /* 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");
29393 /* 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");
29394 /**
29395 * @typedef {import('micromark-util-types').Code} Code
29396 * @typedef {import('micromark-util-types').Construct} Construct
29397 * @typedef {import('micromark-util-types').ContainerState} ContainerState
29398 * @typedef {import('micromark-util-types').Exiter} Exiter
29399 * @typedef {import('micromark-util-types').State} State
29400 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29401 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29402 */
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413 /** @type {Construct} */
29414 const list = {
29415 name: 'list',
29416 tokenize: tokenizeListStart,
29417 continuation: {tokenize: tokenizeListContinuation},
29418 exit: tokenizeListEnd
29419 }
29420
29421 /** @type {Construct} */
29422 const listItemPrefixWhitespaceConstruct = {
29423 tokenize: tokenizeListItemPrefixWhitespace,
29424 partial: true
29425 }
29426
29427 /** @type {Construct} */
29428 const indentConstruct = {tokenize: tokenizeIndent, partial: true}
29429
29430 // To do: `markdown-rs` parses list items on their own and later stitches them
29431 // together.
29432
29433 /**
29434 * @type {Tokenizer}
29435 * @this {TokenizeContext}
29436 */
29437 function tokenizeListStart(effects, ok, nok) {
29438 const self = this
29439 const tail = self.events[self.events.length - 1]
29440 let initialSize =
29441 tail && tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix
29442 ? tail[2].sliceSerialize(tail[1], true).length
29443 : 0
29444 let size = 0
29445
29446 return start
29447
29448 /** @type {State} */
29449 function start(code) {
29450 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29451 const kind =
29452 self.containerState.type ||
29453 (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
29454 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29455 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listOrdered)
29456
29457 if (
29458 kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered
29459 ? !self.containerState.marker || code === self.containerState.marker
29460 : (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code)
29461 ) {
29462 if (!self.containerState.type) {
29463 self.containerState.type = kind
29464 effects.enter(kind, {_container: true})
29465 }
29466
29467 if (kind === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listUnordered) {
29468 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29469 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
29470 ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_4__.thematicBreak, nok, atMarker)(code)
29471 : atMarker(code)
29472 }
29473
29474 if (!self.interrupt || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.digit1) {
29475 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix)
29476 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29477 return inside(code)
29478 }
29479 }
29480
29481 return nok(code)
29482 }
29483
29484 /** @type {State} */
29485 function inside(code) {
29486 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29487 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiDigit)(code) && ++size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.listItemValueSizeMax) {
29488 effects.consume(code)
29489 return inside
29490 }
29491
29492 if (
29493 (!self.interrupt || size < 2) &&
29494 (self.containerState.marker
29495 ? code === self.containerState.marker
29496 : code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.rightParenthesis || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dot)
29497 ) {
29498 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemValue)
29499 return atMarker(code)
29500 }
29501
29502 return nok(code)
29503 }
29504
29505 /**
29506 * @type {State}
29507 **/
29508 function atMarker(code) {
29509 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29510 ;(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')
29511 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29512 effects.consume(code)
29513 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemMarker)
29514 self.containerState.marker = self.containerState.marker || code
29515 return effects.check(
29516 _blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine,
29517 // Can’t be empty when interrupting.
29518 self.interrupt ? nok : onBlank,
29519 effects.attempt(
29520 listItemPrefixWhitespaceConstruct,
29521 endOfPrefix,
29522 otherPrefix
29523 )
29524 )
29525 }
29526
29527 /** @type {State} */
29528 function onBlank(code) {
29529 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29530 self.containerState.initialBlankLine = true
29531 initialSize++
29532 return endOfPrefix(code)
29533 }
29534
29535 /** @type {State} */
29536 function otherPrefix(code) {
29537 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29538 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29539 effects.consume(code)
29540 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace)
29541 return endOfPrefix
29542 }
29543
29544 return nok(code)
29545 }
29546
29547 /** @type {State} */
29548 function endOfPrefix(code) {
29549 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29550 self.containerState.size =
29551 initialSize +
29552 self.sliceSerialize(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix), true).length
29553 return ok(code)
29554 }
29555 }
29556
29557 /**
29558 * @type {Tokenizer}
29559 * @this {TokenizeContext}
29560 */
29561 function tokenizeListContinuation(effects, ok, nok) {
29562 const self = this
29563
29564 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29565 self.containerState._closeFlow = undefined
29566
29567 return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_6__.blankLine, onBlank, notBlank)
29568
29569 /** @type {State} */
29570 function onBlank(code) {
29571 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29572 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29573 self.containerState.furtherBlankLines =
29574 self.containerState.furtherBlankLines ||
29575 self.containerState.initialBlankLine
29576
29577 // We have a blank line.
29578 // Still, try to consume at most the items size.
29579 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29580 effects,
29581 ok,
29582 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29583 self.containerState.size + 1
29584 )(code)
29585 }
29586
29587 /** @type {State} */
29588 function notBlank(code) {
29589 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29590 if (self.containerState.furtherBlankLines || !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)) {
29591 self.containerState.furtherBlankLines = undefined
29592 self.containerState.initialBlankLine = undefined
29593 return notInCurrentItem(code)
29594 }
29595
29596 self.containerState.furtherBlankLines = undefined
29597 self.containerState.initialBlankLine = undefined
29598 return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)
29599 }
29600
29601 /** @type {State} */
29602 function notInCurrentItem(code) {
29603 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29604 // While we do continue, we signal that the flow should be closed.
29605 self.containerState._closeFlow = true
29606 // As we’re closing flow, we’re no longer interrupting.
29607 self.interrupt = undefined
29608 // Always populated by defaults.
29609 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29610 self.parser.constructs.disable.null,
29611 'expected `disable.null` to be populated'
29612 )
29613 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29614 effects,
29615 effects.attempt(list, ok, nok),
29616 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
29617 self.parser.constructs.disable.null.includes('codeIndented')
29618 ? undefined
29619 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize
29620 )(code)
29621 }
29622 }
29623
29624 /**
29625 * @type {Tokenizer}
29626 * @this {TokenizeContext}
29627 */
29628 function tokenizeIndent(effects, ok, nok) {
29629 const self = this
29630
29631 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29632 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof self.containerState.size === 'number', 'expected size')
29633
29634 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29635 effects,
29636 afterPrefix,
29637 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent,
29638 self.containerState.size + 1
29639 )
29640
29641 /** @type {State} */
29642 function afterPrefix(code) {
29643 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(self.containerState, 'expected state')
29644 const tail = self.events[self.events.length - 1]
29645 return tail &&
29646 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemIndent &&
29647 tail[2].sliceSerialize(tail[1], true).length === self.containerState.size
29648 ? ok(code)
29649 : nok(code)
29650 }
29651 }
29652
29653 /**
29654 * @type {Exiter}
29655 * @this {TokenizeContext}
29656 */
29657 function tokenizeListEnd(effects) {
29658 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(this.containerState, 'expected state')
29659 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(typeof this.containerState.type === 'string', 'expected type')
29660 effects.exit(this.containerState.type)
29661 }
29662
29663 /**
29664 * @type {Tokenizer}
29665 * @this {TokenizeContext}
29666 */
29667 function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
29668 const self = this
29669
29670 // Always populated by defaults.
29671 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29672 self.parser.constructs.disable.null,
29673 'expected `disable.null` to be populated'
29674 )
29675
29676 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_7__.factorySpace)(
29677 effects,
29678 afterPrefix,
29679 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace,
29680 self.parser.constructs.disable.null.includes('codeIndented')
29681 ? undefined
29682 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.tabSize + 1
29683 )
29684
29685 /** @type {State} */
29686 function afterPrefix(code) {
29687 const tail = self.events[self.events.length - 1]
29688
29689 return !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code) &&
29690 tail &&
29691 tail[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefixWhitespace
29692 ? ok(code)
29693 : nok(code)
29694 }
29695 }
29696
29697
29698 /***/ }),
29699
29700 /***/ "../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js":
29701 /*!*****************************************************************************!*\
29702 !*** ../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js ***!
29703 \*****************************************************************************/
29704 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29705
29706 "use strict";
29707 __webpack_require__.r(__webpack_exports__);
29708 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29709 /* harmony export */ setextUnderline: () => (/* binding */ setextUnderline)
29710 /* harmony export */ });
29711 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29712 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29713 /* 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");
29714 /* 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");
29715 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29716 /**
29717 * @typedef {import('micromark-util-types').Code} Code
29718 * @typedef {import('micromark-util-types').Construct} Construct
29719 * @typedef {import('micromark-util-types').Resolver} Resolver
29720 * @typedef {import('micromark-util-types').State} State
29721 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29722 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29723 */
29724
29725
29726
29727
29728
29729
29730
29731 /** @type {Construct} */
29732 const setextUnderline = {
29733 name: 'setextUnderline',
29734 tokenize: tokenizeSetextUnderline,
29735 resolveTo: resolveToSetextUnderline
29736 }
29737
29738 /** @type {Resolver} */
29739 function resolveToSetextUnderline(events, context) {
29740 // To do: resolve like `markdown-rs`.
29741 let index = events.length
29742 /** @type {number | undefined} */
29743 let content
29744 /** @type {number | undefined} */
29745 let text
29746 /** @type {number | undefined} */
29747 let definition
29748
29749 // Find the opening of the content.
29750 // It’ll always exist: we don’t tokenize if it isn’t there.
29751 while (index--) {
29752 if (events[index][0] === 'enter') {
29753 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29754 content = index
29755 break
29756 }
29757
29758 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph) {
29759 text = index
29760 }
29761 }
29762 // Exit
29763 else {
29764 if (events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
29765 // Remove the content end (if needed we’ll add it later)
29766 events.splice(index, 1)
29767 }
29768
29769 if (!definition && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.definition) {
29770 definition = index
29771 }
29772 }
29773 }
29774
29775 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(text !== undefined, 'expected a `text` index to be found')
29776 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(content !== undefined, 'expected a `text` index to be found')
29777
29778 const heading = {
29779 type: micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeading,
29780 start: Object.assign({}, events[text][1].start),
29781 end: Object.assign({}, events[events.length - 1][1].end)
29782 }
29783
29784 // Change the paragraph to setext heading text.
29785 events[text][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingText
29786
29787 // If we have definitions in the content, we’ll keep on having content,
29788 // but we need move it.
29789 if (definition) {
29790 events.splice(text, 0, ['enter', heading, context])
29791 events.splice(definition + 1, 0, ['exit', events[content][1], context])
29792 events[content][1].end = Object.assign({}, events[definition][1].end)
29793 } else {
29794 events[content][1] = heading
29795 }
29796
29797 // Add the heading exit at the end.
29798 events.push(['exit', heading, context])
29799
29800 return events
29801 }
29802
29803 /**
29804 * @this {TokenizeContext}
29805 * @type {Tokenizer}
29806 */
29807 function tokenizeSetextUnderline(effects, ok, nok) {
29808 const self = this
29809 /** @type {NonNullable<Code>} */
29810 let marker
29811
29812 return start
29813
29814 /**
29815 * At start of heading (setext) underline.
29816 *
29817 * ```markdown
29818 * | aa
29819 * > | ==
29820 * ^
29821 * ```
29822 *
29823 * @type {State}
29824 */
29825 function start(code) {
29826 let index = self.events.length
29827 /** @type {boolean | undefined} */
29828 let paragraph
29829
29830 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
29831 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo,
29832 'expected `=` or `-`'
29833 )
29834
29835 // Find an opening.
29836 while (index--) {
29837 // Skip enter/exit of line ending, line prefix, and content.
29838 // We can now either have a definition or a paragraph.
29839 if (
29840 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding &&
29841 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix &&
29842 self.events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
29843 ) {
29844 paragraph = self.events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.paragraph
29845 break
29846 }
29847 }
29848
29849 // To do: handle lazy/pierce like `markdown-rs`.
29850 // To do: parse indent like `markdown-rs`.
29851 if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
29852 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29853 marker = code
29854 return before(code)
29855 }
29856
29857 return nok(code)
29858 }
29859
29860 /**
29861 * After optional whitespace, at `-` or `=`.
29862 *
29863 * ```markdown
29864 * | aa
29865 * > | ==
29866 * ^
29867 * ```
29868 *
29869 * @type {State}
29870 */
29871 function before(code) {
29872 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29873 return inside(code)
29874 }
29875
29876 /**
29877 * In sequence.
29878 *
29879 * ```markdown
29880 * | aa
29881 * > | ==
29882 * ^
29883 * ```
29884 *
29885 * @type {State}
29886 */
29887 function inside(code) {
29888 if (code === marker) {
29889 effects.consume(code)
29890 return inside
29891 }
29892
29893 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLineSequence)
29894
29895 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
29896 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, after, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix)(code)
29897 : after(code)
29898 }
29899
29900 /**
29901 * After sequence, after optional whitespace.
29902 *
29903 * ```markdown
29904 * | aa
29905 * > | ==
29906 * ^
29907 * ```
29908 *
29909 * @type {State}
29910 */
29911 function after(code) {
29912 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
29913 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.setextHeadingLine)
29914 return ok(code)
29915 }
29916
29917 return nok(code)
29918 }
29919 }
29920
29921
29922 /***/ }),
29923
29924 /***/ "../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js":
29925 /*!***************************************************************************!*\
29926 !*** ../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js ***!
29927 \***************************************************************************/
29928 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
29929
29930 "use strict";
29931 __webpack_require__.r(__webpack_exports__);
29932 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29933 /* harmony export */ thematicBreak: () => (/* binding */ thematicBreak)
29934 /* harmony export */ });
29935 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
29936 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
29937 /* 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");
29938 /* 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");
29939 /* 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");
29940 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
29941 /**
29942 * @typedef {import('micromark-util-types').Code} Code
29943 * @typedef {import('micromark-util-types').Construct} Construct
29944 * @typedef {import('micromark-util-types').State} State
29945 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
29946 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
29947 */
29948
29949
29950
29951
29952
29953
29954
29955
29956 /** @type {Construct} */
29957 const thematicBreak = {
29958 name: 'thematicBreak',
29959 tokenize: tokenizeThematicBreak
29960 }
29961
29962 /**
29963 * @this {TokenizeContext}
29964 * @type {Tokenizer}
29965 */
29966 function tokenizeThematicBreak(effects, ok, nok) {
29967 let size = 0
29968 /** @type {NonNullable<Code>} */
29969 let marker
29970
29971 return start
29972
29973 /**
29974 * Start of thematic break.
29975 *
29976 * ```markdown
29977 * > | ***
29978 * ^
29979 * ```
29980 *
29981 * @type {State}
29982 */
29983 function start(code) {
29984 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
29985 // To do: parse indent like `markdown-rs`.
29986 return before(code)
29987 }
29988
29989 /**
29990 * After optional whitespace, at marker.
29991 *
29992 * ```markdown
29993 * > | ***
29994 * ^
29995 * ```
29996 *
29997 * @type {State}
29998 */
29999 function before(code) {
30000 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
30001 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.asterisk ||
30002 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||
30003 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.underscore,
30004 'expected `*`, `-`, or `_`'
30005 )
30006 marker = code
30007 return atBreak(code)
30008 }
30009
30010 /**
30011 * After something, before something else.
30012 *
30013 * ```markdown
30014 * > | ***
30015 * ^
30016 * ```
30017 *
30018 * @type {State}
30019 */
30020 function atBreak(code) {
30021 if (code === marker) {
30022 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
30023 return sequence(code)
30024 }
30025
30026 if (
30027 size >= micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.thematicBreakMarkerCountMin &&
30028 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))
30029 ) {
30030 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreak)
30031 return ok(code)
30032 }
30033
30034 return nok(code)
30035 }
30036
30037 /**
30038 * In sequence.
30039 *
30040 * ```markdown
30041 * > | ***
30042 * ^
30043 * ```
30044 *
30045 * @type {State}
30046 */
30047 function sequence(code) {
30048 if (code === marker) {
30049 effects.consume(code)
30050 size++
30051 return sequence
30052 }
30053
30054 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.thematicBreakSequence)
30055 return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)
30056 ? (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_5__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.whitespace)(code)
30057 : atBreak(code)
30058 }
30059 }
30060
30061
30062 /***/ }),
30063
30064 /***/ "../node_modules/micromark-factory-destination/dev/index.js":
30065 /*!******************************************************************!*\
30066 !*** ../node_modules/micromark-factory-destination/dev/index.js ***!
30067 \******************************************************************/
30068 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30069
30070 "use strict";
30071 __webpack_require__.r(__webpack_exports__);
30072 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30073 /* harmony export */ factoryDestination: () => (/* binding */ factoryDestination)
30074 /* harmony export */ });
30075 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30076 /* 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");
30077 /* 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");
30078 /* 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");
30079 /**
30080 * @typedef {import('micromark-util-types').Effects} Effects
30081 * @typedef {import('micromark-util-types').State} State
30082 * @typedef {import('micromark-util-types').TokenType} TokenType
30083 */
30084
30085
30086
30087
30088
30089
30090 /**
30091 * Parse destinations.
30092 *
30093 * ###### Examples
30094 *
30095 * ```markdown
30096 * <a>
30097 * <a\>b>
30098 * <a b>
30099 * <a)>
30100 * a
30101 * a\)b
30102 * a(b)c
30103 * a(b)
30104 * ```
30105 *
30106 * @param {Effects} effects
30107 * Context.
30108 * @param {State} ok
30109 * State switched to when successful.
30110 * @param {State} nok
30111 * State switched to when unsuccessful.
30112 * @param {TokenType} type
30113 * Type for whole (`<a>` or `b`).
30114 * @param {TokenType} literalType
30115 * Type when enclosed (`<a>`).
30116 * @param {TokenType} literalMarkerType
30117 * Type for enclosing (`<` and `>`).
30118 * @param {TokenType} rawType
30119 * Type when not enclosed (`b`).
30120 * @param {TokenType} stringType
30121 * Type for the value (`a` or `b`).
30122 * @param {number | undefined} [max=Infinity]
30123 * Depth of nested parens (inclusive).
30124 * @returns {State}
30125 * Start state.
30126 */
30127 // eslint-disable-next-line max-params
30128 function factoryDestination(
30129 effects,
30130 ok,
30131 nok,
30132 type,
30133 literalType,
30134 literalMarkerType,
30135 rawType,
30136 stringType,
30137 max
30138 ) {
30139 const limit = max || Number.POSITIVE_INFINITY
30140 let balance = 0
30141
30142 return start
30143
30144 /**
30145 * Start of destination.
30146 *
30147 * ```markdown
30148 * > | <aa>
30149 * ^
30150 * > | aa
30151 * ^
30152 * ```
30153 *
30154 * @type {State}
30155 */
30156 function start(code) {
30157 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan) {
30158 effects.enter(type)
30159 effects.enter(literalType)
30160 effects.enter(literalMarkerType)
30161 effects.consume(code)
30162 effects.exit(literalMarkerType)
30163 return enclosedBefore
30164 }
30165
30166 // ASCII control, space, closing paren.
30167 if (
30168 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30169 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
30170 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
30171 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
30172 ) {
30173 return nok(code)
30174 }
30175
30176 effects.enter(type)
30177 effects.enter(rawType)
30178 effects.enter(stringType)
30179 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})
30180 return raw(code)
30181 }
30182
30183 /**
30184 * After `<`, at an enclosed destination.
30185 *
30186 * ```markdown
30187 * > | <aa>
30188 * ^
30189 * ```
30190 *
30191 * @type {State}
30192 */
30193 function enclosedBefore(code) {
30194 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
30195 effects.enter(literalMarkerType)
30196 effects.consume(code)
30197 effects.exit(literalMarkerType)
30198 effects.exit(literalType)
30199 effects.exit(type)
30200 return ok
30201 }
30202
30203 effects.enter(stringType)
30204 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})
30205 return enclosed(code)
30206 }
30207
30208 /**
30209 * In enclosed destination.
30210 *
30211 * ```markdown
30212 * > | <aa>
30213 * ^
30214 * ```
30215 *
30216 * @type {State}
30217 */
30218 function enclosed(code) {
30219 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan) {
30220 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30221 effects.exit(stringType)
30222 return enclosedBefore(code)
30223 }
30224
30225 if (
30226 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30227 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
30228 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)
30229 ) {
30230 return nok(code)
30231 }
30232
30233 effects.consume(code)
30234 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? enclosedEscape : enclosed
30235 }
30236
30237 /**
30238 * After `\`, at a special character.
30239 *
30240 * ```markdown
30241 * > | <a\*a>
30242 * ^
30243 * ```
30244 *
30245 * @type {State}
30246 */
30247 function enclosedEscape(code) {
30248 if (
30249 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan ||
30250 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan ||
30251 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
30252 ) {
30253 effects.consume(code)
30254 return enclosed
30255 }
30256
30257 return enclosed(code)
30258 }
30259
30260 /**
30261 * In raw destination.
30262 *
30263 * ```markdown
30264 * > | aa
30265 * ^
30266 * ```
30267 *
30268 * @type {State}
30269 */
30270 function raw(code) {
30271 if (
30272 !balance &&
30273 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30274 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
30275 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code))
30276 ) {
30277 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30278 effects.exit(stringType)
30279 effects.exit(rawType)
30280 effects.exit(type)
30281 return ok(code)
30282 }
30283
30284 if (balance < limit && code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis) {
30285 effects.consume(code)
30286 balance++
30287 return raw
30288 }
30289
30290 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis) {
30291 effects.consume(code)
30292 balance--
30293 return raw
30294 }
30295
30296 // ASCII control (but *not* `\0`) and space and `(`.
30297 // Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
30298 // doesn’t.
30299 if (
30300 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
30301 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space ||
30302 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30303 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.asciiControl)(code)
30304 ) {
30305 return nok(code)
30306 }
30307
30308 effects.consume(code)
30309 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? rawEscape : raw
30310 }
30311
30312 /**
30313 * After `\`, at special character.
30314 *
30315 * ```markdown
30316 * > | a\*a
30317 * ^
30318 * ```
30319 *
30320 * @type {State}
30321 */
30322 function rawEscape(code) {
30323 if (
30324 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis ||
30325 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightParenthesis ||
30326 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash
30327 ) {
30328 effects.consume(code)
30329 return raw
30330 }
30331
30332 return raw(code)
30333 }
30334 }
30335
30336
30337 /***/ }),
30338
30339 /***/ "../node_modules/micromark-factory-label/dev/index.js":
30340 /*!************************************************************!*\
30341 !*** ../node_modules/micromark-factory-label/dev/index.js ***!
30342 \************************************************************/
30343 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30344
30345 "use strict";
30346 __webpack_require__.r(__webpack_exports__);
30347 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30348 /* harmony export */ factoryLabel: () => (/* binding */ factoryLabel)
30349 /* harmony export */ });
30350 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30351 /* 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");
30352 /* 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");
30353 /* 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");
30354 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
30355 /**
30356 * @typedef {import('micromark-util-types').Effects} Effects
30357 * @typedef {import('micromark-util-types').State} State
30358 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
30359 * @typedef {import('micromark-util-types').TokenType} TokenType
30360 */
30361
30362
30363
30364
30365
30366
30367
30368 /**
30369 * Parse labels.
30370 *
30371 * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
30372 *
30373 * ###### Examples
30374 *
30375 * ```markdown
30376 * [a]
30377 * [a
30378 * b]
30379 * [a\]b]
30380 * ```
30381 *
30382 * @this {TokenizeContext}
30383 * Tokenize context.
30384 * @param {Effects} effects
30385 * Context.
30386 * @param {State} ok
30387 * State switched to when successful.
30388 * @param {State} nok
30389 * State switched to when unsuccessful.
30390 * @param {TokenType} type
30391 * Type of the whole label (`[a]`).
30392 * @param {TokenType} markerType
30393 * Type for the markers (`[` and `]`).
30394 * @param {TokenType} stringType
30395 * Type for the identifier (`a`).
30396 * @returns {State}
30397 * Start state.
30398 */
30399 // eslint-disable-next-line max-params
30400 function factoryLabel(effects, ok, nok, type, markerType, stringType) {
30401 const self = this
30402 let size = 0
30403 /** @type {boolean} */
30404 let seen
30405
30406 return start
30407
30408 /**
30409 * Start of label.
30410 *
30411 * ```markdown
30412 * > | [a]
30413 * ^
30414 * ```
30415 *
30416 * @type {State}
30417 */
30418 function start(code) {
30419 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket, 'expected `[`')
30420 effects.enter(type)
30421 effects.enter(markerType)
30422 effects.consume(code)
30423 effects.exit(markerType)
30424 effects.enter(stringType)
30425 return atBreak
30426 }
30427
30428 /**
30429 * In label, at something, before something else.
30430 *
30431 * ```markdown
30432 * > | [a]
30433 * ^
30434 * ```
30435 *
30436 * @type {State}
30437 */
30438 function atBreak(code) {
30439 if (
30440 size > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax ||
30441 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30442 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30443 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket && !seen) ||
30444 // To do: remove in the future once we’ve switched from
30445 // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
30446 // which doesn’t need this.
30447 // Hidden footnotes hook.
30448 /* c8 ignore next 3 */
30449 (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.caret &&
30450 !size &&
30451 '_hiddenFootnoteSupport' in self.parser.constructs)
30452 ) {
30453 return nok(code)
30454 }
30455
30456 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket) {
30457 effects.exit(stringType)
30458 effects.enter(markerType)
30459 effects.consume(code)
30460 effects.exit(markerType)
30461 effects.exit(type)
30462 return ok
30463 }
30464
30465 // To do: indent? Link chunks and EOLs together?
30466 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code)) {
30467 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30468 effects.consume(code)
30469 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
30470 return atBreak
30471 }
30472
30473 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})
30474 return labelInside(code)
30475 }
30476
30477 /**
30478 * In label, in text.
30479 *
30480 * ```markdown
30481 * > | [a]
30482 * ^
30483 * ```
30484 *
30485 * @type {State}
30486 */
30487 function labelInside(code) {
30488 if (
30489 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||
30490 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30491 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket ||
30492 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownLineEnding)(code) ||
30493 size++ > micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.linkReferenceSizeMax
30494 ) {
30495 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.chunkString)
30496 return atBreak(code)
30497 }
30498
30499 effects.consume(code)
30500 if (!seen) seen = !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.markdownSpace)(code)
30501 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ? labelEscape : labelInside
30502 }
30503
30504 /**
30505 * After `\`, at a special character.
30506 *
30507 * ```markdown
30508 * > | [a\*a]
30509 * ^
30510 * ```
30511 *
30512 * @type {State}
30513 */
30514 function labelEscape(code) {
30515 if (
30516 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.leftSquareBracket ||
30517 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.backslash ||
30518 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.rightSquareBracket
30519 ) {
30520 effects.consume(code)
30521 size++
30522 return labelInside
30523 }
30524
30525 return labelInside(code)
30526 }
30527 }
30528
30529
30530 /***/ }),
30531
30532 /***/ "../node_modules/micromark-factory-space/dev/index.js":
30533 /*!************************************************************!*\
30534 !*** ../node_modules/micromark-factory-space/dev/index.js ***!
30535 \************************************************************/
30536 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30537
30538 "use strict";
30539 __webpack_require__.r(__webpack_exports__);
30540 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30541 /* harmony export */ factorySpace: () => (/* binding */ factorySpace)
30542 /* harmony export */ });
30543 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30544 /**
30545 * @typedef {import('micromark-util-types').Effects} Effects
30546 * @typedef {import('micromark-util-types').State} State
30547 * @typedef {import('micromark-util-types').TokenType} TokenType
30548 */
30549
30550
30551
30552 // To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.
30553
30554 /**
30555 * Parse spaces and tabs.
30556 *
30557 * There is no `nok` parameter:
30558 *
30559 * * spaces in markdown are often optional, in which case this factory can be
30560 * used and `ok` will be switched to whether spaces were found or not
30561 * * one line ending or space can be detected with `markdownSpace(code)` right
30562 * before using `factorySpace`
30563 *
30564 * ###### Examples
30565 *
30566 * Where `␉` represents a tab (plus how much it expands) and `␠` represents a
30567 * single space.
30568 *
30569 * ```markdown
30570 * ␉
30571 * ␠␠␠␠
30572 * ␉␠
30573 * ```
30574 *
30575 * @param {Effects} effects
30576 * Context.
30577 * @param {State} ok
30578 * State switched to when successful.
30579 * @param {TokenType} type
30580 * Type (`' \t'`).
30581 * @param {number | undefined} [max=Infinity]
30582 * Max (exclusive).
30583 * @returns
30584 * Start state.
30585 */
30586 function factorySpace(effects, ok, type, max) {
30587 const limit = max ? max - 1 : Number.POSITIVE_INFINITY
30588 let size = 0
30589
30590 return start
30591
30592 /** @type {State} */
30593 function start(code) {
30594 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30595 effects.enter(type)
30596 return prefix(code)
30597 }
30598
30599 return ok(code)
30600 }
30601
30602 /** @type {State} */
30603 function prefix(code) {
30604 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code) && size++ < limit) {
30605 effects.consume(code)
30606 return prefix
30607 }
30608
30609 effects.exit(type)
30610 return ok(code)
30611 }
30612 }
30613
30614
30615 /***/ }),
30616
30617 /***/ "../node_modules/micromark-factory-title/dev/index.js":
30618 /*!************************************************************!*\
30619 !*** ../node_modules/micromark-factory-title/dev/index.js ***!
30620 \************************************************************/
30621 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30622
30623 "use strict";
30624 __webpack_require__.r(__webpack_exports__);
30625 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30626 /* harmony export */ factoryTitle: () => (/* binding */ factoryTitle)
30627 /* harmony export */ });
30628 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30629 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30630 /* 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");
30631 /* 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");
30632 /* 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");
30633 /**
30634 * @typedef {import('micromark-util-types').Code} Code
30635 * @typedef {import('micromark-util-types').Effects} Effects
30636 * @typedef {import('micromark-util-types').State} State
30637 * @typedef {import('micromark-util-types').TokenType} TokenType
30638 */
30639
30640
30641
30642
30643
30644
30645
30646 /**
30647 * Parse titles.
30648 *
30649 * ###### Examples
30650 *
30651 * ```markdown
30652 * "a"
30653 * 'b'
30654 * (c)
30655 * "a
30656 * b"
30657 * 'a
30658 * b'
30659 * (a\)b)
30660 * ```
30661 *
30662 * @param {Effects} effects
30663 * Context.
30664 * @param {State} ok
30665 * State switched to when successful.
30666 * @param {State} nok
30667 * State switched to when unsuccessful.
30668 * @param {TokenType} type
30669 * Type of the whole title (`"a"`, `'b'`, `(c)`).
30670 * @param {TokenType} markerType
30671 * Type for the markers (`"`, `'`, `(`, and `)`).
30672 * @param {TokenType} stringType
30673 * Type for the value (`a`).
30674 * @returns {State}
30675 * Start state.
30676 */
30677 // eslint-disable-next-line max-params
30678 function factoryTitle(effects, ok, nok, type, markerType, stringType) {
30679 /** @type {NonNullable<Code>} */
30680 let marker
30681
30682 return start
30683
30684 /**
30685 * Start of title.
30686 *
30687 * ```markdown
30688 * > | "a"
30689 * ^
30690 * ```
30691 *
30692 * @type {State}
30693 */
30694 function start(code) {
30695 if (
30696 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.quotationMark ||
30697 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.apostrophe ||
30698 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftParenthesis
30699 ) {
30700 effects.enter(type)
30701 effects.enter(markerType)
30702 effects.consume(code)
30703 effects.exit(markerType)
30704 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
30705 return begin
30706 }
30707
30708 return nok(code)
30709 }
30710
30711 /**
30712 * After opening marker.
30713 *
30714 * This is also used at the closing marker.
30715 *
30716 * ```markdown
30717 * > | "a"
30718 * ^
30719 * ```
30720 *
30721 * @type {State}
30722 */
30723 function begin(code) {
30724 if (code === marker) {
30725 effects.enter(markerType)
30726 effects.consume(code)
30727 effects.exit(markerType)
30728 effects.exit(type)
30729 return ok
30730 }
30731
30732 effects.enter(stringType)
30733 return atBreak(code)
30734 }
30735
30736 /**
30737 * At something, before something else.
30738 *
30739 * ```markdown
30740 * > | "a"
30741 * ^
30742 * ```
30743 *
30744 * @type {State}
30745 */
30746 function atBreak(code) {
30747 if (code === marker) {
30748 effects.exit(stringType)
30749 return begin(marker)
30750 }
30751
30752 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof) {
30753 return nok(code)
30754 }
30755
30756 // Note: blank lines can’t exist in content.
30757 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEnding)(code)) {
30758 // To do: use `space_or_tab_eol_with_options`, connect.
30759 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30760 effects.consume(code)
30761 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding)
30762 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_3__.factorySpace)(effects, atBreak, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.linePrefix)
30763 }
30764
30765 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})
30766 return inside(code)
30767 }
30768
30769 /**
30770 *
30771 *
30772 * @type {State}
30773 */
30774 function inside(code) {
30775 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)) {
30776 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.chunkString)
30777 return atBreak(code)
30778 }
30779
30780 effects.consume(code)
30781 return code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash ? escape : inside
30782 }
30783
30784 /**
30785 * After `\`, at a special character.
30786 *
30787 * ```markdown
30788 * > | "a\*b"
30789 * ^
30790 * ```
30791 *
30792 * @type {State}
30793 */
30794 function escape(code) {
30795 if (code === marker || code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash) {
30796 effects.consume(code)
30797 return inside
30798 }
30799
30800 return inside(code)
30801 }
30802 }
30803
30804
30805 /***/ }),
30806
30807 /***/ "../node_modules/micromark-factory-whitespace/dev/index.js":
30808 /*!*****************************************************************!*\
30809 !*** ../node_modules/micromark-factory-whitespace/dev/index.js ***!
30810 \*****************************************************************/
30811 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30812
30813 "use strict";
30814 __webpack_require__.r(__webpack_exports__);
30815 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30816 /* harmony export */ factoryWhitespace: () => (/* binding */ factoryWhitespace)
30817 /* harmony export */ });
30818 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
30819 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
30820 /* 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");
30821 /**
30822 * @typedef {import('micromark-util-types').Effects} Effects
30823 * @typedef {import('micromark-util-types').State} State
30824 */
30825
30826
30827
30828
30829
30830 /**
30831 * Parse spaces and tabs.
30832 *
30833 * There is no `nok` parameter:
30834 *
30835 * * line endings or spaces in markdown are often optional, in which case this
30836 * factory can be used and `ok` will be switched to whether spaces were found
30837 * or not
30838 * * one line ending or space can be detected with
30839 * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
30840 *
30841 * @param {Effects} effects
30842 * Context.
30843 * @param {State} ok
30844 * State switched to when successful.
30845 * @returns
30846 * Start state.
30847 */
30848 function factoryWhitespace(effects, ok) {
30849 /** @type {boolean} */
30850 let seen
30851
30852 return start
30853
30854 /** @type {State} */
30855 function start(code) {
30856 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownLineEnding)(code)) {
30857 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30858 effects.consume(code)
30859 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding)
30860 seen = true
30861 return start
30862 }
30863
30864 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_0__.markdownSpace)(code)) {
30865 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
30866 effects,
30867 start,
30868 seen ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineSuffix
30869 )(code)
30870 }
30871
30872 return ok(code)
30873 }
30874 }
30875
30876
30877 /***/ }),
30878
30879 /***/ "../node_modules/micromark-util-character/dev/index.js":
30880 /*!*************************************************************!*\
30881 !*** ../node_modules/micromark-util-character/dev/index.js ***!
30882 \*************************************************************/
30883 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
30884
30885 "use strict";
30886 __webpack_require__.r(__webpack_exports__);
30887 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
30888 /* harmony export */ asciiAlpha: () => (/* binding */ asciiAlpha),
30889 /* harmony export */ asciiAlphanumeric: () => (/* binding */ asciiAlphanumeric),
30890 /* harmony export */ asciiAtext: () => (/* binding */ asciiAtext),
30891 /* harmony export */ asciiControl: () => (/* binding */ asciiControl),
30892 /* harmony export */ asciiDigit: () => (/* binding */ asciiDigit),
30893 /* harmony export */ asciiHexDigit: () => (/* binding */ asciiHexDigit),
30894 /* harmony export */ asciiPunctuation: () => (/* binding */ asciiPunctuation),
30895 /* harmony export */ markdownLineEnding: () => (/* binding */ markdownLineEnding),
30896 /* harmony export */ markdownLineEndingOrSpace: () => (/* binding */ markdownLineEndingOrSpace),
30897 /* harmony export */ markdownSpace: () => (/* binding */ markdownSpace),
30898 /* harmony export */ unicodePunctuation: () => (/* binding */ unicodePunctuation),
30899 /* harmony export */ unicodeWhitespace: () => (/* binding */ unicodeWhitespace)
30900 /* harmony export */ });
30901 /* 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");
30902 /* 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");
30903 /**
30904 * @typedef {import('micromark-util-types').Code} Code
30905 */
30906
30907
30908
30909
30910 /**
30911 * Check whether the character code represents an ASCII alpha (`a` through `z`,
30912 * case insensitive).
30913 *
30914 * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.
30915 *
30916 * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)
30917 * to U+005A (`Z`).
30918 *
30919 * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)
30920 * to U+007A (`z`).
30921 *
30922 * @param code
30923 * Code.
30924 * @returns
30925 * Whether it matches.
30926 */
30927 const asciiAlpha = regexCheck(/[A-Za-z]/)
30928
30929 /**
30930 * Check whether the character code represents an ASCII alphanumeric (`a`
30931 * through `z`, case insensitive, or `0` through `9`).
30932 *
30933 * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha
30934 * (see `asciiAlpha`).
30935 *
30936 * @param code
30937 * Code.
30938 * @returns
30939 * Whether it matches.
30940 */
30941 const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/)
30942
30943 /**
30944 * Check whether the character code represents an ASCII atext.
30945 *
30946 * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in
30947 * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),
30948 * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F
30949 * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E
30950 * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE
30951 * (`{`) to U+007E TILDE (`~`).
30952 *
30953 * See:
30954 * **\[RFC5322]**:
30955 * [Internet Message Format](https://tools.ietf.org/html/rfc5322).
30956 * P. Resnick.
30957 * IETF.
30958 *
30959 * @param code
30960 * Code.
30961 * @returns
30962 * Whether it matches.
30963 */
30964 const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/)
30965
30966 /**
30967 * Check whether a character code is an ASCII control character.
30968 *
30969 * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)
30970 * to U+001F (US), or U+007F (DEL).
30971 *
30972 * @param {Code} code
30973 * Code.
30974 * @returns {boolean}
30975 * Whether it matches.
30976 */
30977 function asciiControl(code) {
30978 return (
30979 // Special whitespace codes (which have negative values), C0 and Control
30980 // character DEL
30981 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)
30982 )
30983 }
30984
30985 /**
30986 * Check whether the character code represents an ASCII digit (`0` through `9`).
30987 *
30988 * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to
30989 * U+0039 (`9`).
30990 *
30991 * @param code
30992 * Code.
30993 * @returns
30994 * Whether it matches.
30995 */
30996 const asciiDigit = regexCheck(/\d/)
30997
30998 /**
30999 * Check whether the character code represents an ASCII hex digit (`a` through
31000 * `f`, case insensitive, or `0` through `9`).
31001 *
31002 * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex
31003 * digit, or an ASCII lower hex digit.
31004 *
31005 * An **ASCII upper hex digit** is a character in the inclusive range U+0041
31006 * (`A`) to U+0046 (`F`).
31007 *
31008 * An **ASCII lower hex digit** is a character in the inclusive range U+0061
31009 * (`a`) to U+0066 (`f`).
31010 *
31011 * @param code
31012 * Code.
31013 * @returns
31014 * Whether it matches.
31015 */
31016 const asciiHexDigit = regexCheck(/[\dA-Fa-f]/)
31017
31018 /**
31019 * Check whether the character code represents ASCII punctuation.
31020 *
31021 * An **ASCII punctuation** is a character in the inclusive ranges U+0021
31022 * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT
31023 * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT
31024 * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).
31025 *
31026 * @param code
31027 * Code.
31028 * @returns
31029 * Whether it matches.
31030 */
31031 const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)
31032
31033 /**
31034 * Check whether a character code is a markdown line ending.
31035 *
31036 * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN
31037 * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).
31038 *
31039 * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE
31040 * RETURN (CR) are replaced by these virtual characters depending on whether
31041 * they occurred together.
31042 *
31043 * @param {Code} code
31044 * Code.
31045 * @returns {boolean}
31046 * Whether it matches.
31047 */
31048 function markdownLineEnding(code) {
31049 return code !== null && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab
31050 }
31051
31052 /**
31053 * Check whether a character code is a markdown line ending (see
31054 * `markdownLineEnding`) or markdown space (see `markdownSpace`).
31055 *
31056 * @param {Code} code
31057 * Code.
31058 * @returns {boolean}
31059 * Whether it matches.
31060 */
31061 function markdownLineEndingOrSpace(code) {
31062 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)
31063 }
31064
31065 /**
31066 * Check whether a character code is a markdown space.
31067 *
31068 * A **markdown space** is the concrete character U+0020 SPACE (SP) and the
31069 * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).
31070 *
31071 * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is
31072 * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL
31073 * SPACE (VS) characters, depending on the column at which the tab occurred.
31074 *
31075 * @param {Code} code
31076 * Code.
31077 * @returns {boolean}
31078 * Whether it matches.
31079 */
31080 function markdownSpace(code) {
31081 return (
31082 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab ||
31083 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace ||
31084 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space
31085 )
31086 }
31087
31088 // Size note: removing ASCII from the regex and using `asciiPunctuation` here
31089 // In fact adds to the bundle size.
31090 /**
31091 * Check whether the character code represents Unicode punctuation.
31092 *
31093 * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,
31094 * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`
31095 * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`
31096 * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII
31097 * punctuation (see `asciiPunctuation`).
31098 *
31099 * See:
31100 * **\[UNICODE]**:
31101 * [The Unicode Standard](https://www.unicode.org/versions/).
31102 * Unicode Consortium.
31103 *
31104 * @param code
31105 * Code.
31106 * @returns
31107 * Whether it matches.
31108 */
31109 const unicodePunctuation = regexCheck(_lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuationRegex)
31110
31111 /**
31112 * Check whether the character code represents Unicode whitespace.
31113 *
31114 * Note that this does handle micromark specific markdown whitespace characters.
31115 * See `markdownLineEndingOrSpace` to check that.
31116 *
31117 * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,
31118 * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),
31119 * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**).
31120 *
31121 * See:
31122 * **\[UNICODE]**:
31123 * [The Unicode Standard](https://www.unicode.org/versions/).
31124 * Unicode Consortium.
31125 *
31126 * @param code
31127 * Code.
31128 * @returns
31129 * Whether it matches.
31130 */
31131 const unicodeWhitespace = regexCheck(/\s/)
31132
31133 /**
31134 * Create a code check from a regex.
31135 *
31136 * @param {RegExp} regex
31137 * @returns {(code: Code) => boolean}
31138 */
31139 function regexCheck(regex) {
31140 return check
31141
31142 /**
31143 * Check whether a code matches the bound regex.
31144 *
31145 * @param {Code} code
31146 * Character code.
31147 * @returns {boolean}
31148 * Whether the character code matches the bound regex.
31149 */
31150 function check(code) {
31151 return code !== null && regex.test(String.fromCharCode(code))
31152 }
31153 }
31154
31155
31156 /***/ }),
31157
31158 /***/ "../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js":
31159 /*!*************************************************************************************!*\
31160 !*** ../node_modules/micromark-util-character/dev/lib/unicode-punctuation-regex.js ***!
31161 \*************************************************************************************/
31162 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31163
31164 "use strict";
31165 __webpack_require__.r(__webpack_exports__);
31166 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31167 /* harmony export */ unicodePunctuationRegex: () => (/* binding */ unicodePunctuationRegex)
31168 /* harmony export */ });
31169 // This module is generated by `script/`.
31170 //
31171 // CommonMark handles attention (emphasis, strong) markers based on what comes
31172 // before or after them.
31173 // One such difference is if those characters are Unicode punctuation.
31174 // This script is generated from the Unicode data.
31175
31176 /**
31177 * Regular expression that matches a unicode punctuation character.
31178 */
31179 const unicodePunctuationRegex =
31180 /[!-/:-@[-`{-~\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]/
31181
31182
31183 /***/ }),
31184
31185 /***/ "../node_modules/micromark-util-chunked/dev/index.js":
31186 /*!***********************************************************!*\
31187 !*** ../node_modules/micromark-util-chunked/dev/index.js ***!
31188 \***********************************************************/
31189 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31190
31191 "use strict";
31192 __webpack_require__.r(__webpack_exports__);
31193 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31194 /* harmony export */ push: () => (/* binding */ push),
31195 /* harmony export */ splice: () => (/* binding */ splice)
31196 /* harmony export */ });
31197 /* 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");
31198
31199
31200 /**
31201 * Like `Array#splice`, but smarter for giant arrays.
31202 *
31203 * `Array#splice` takes all items to be inserted as individual argument which
31204 * causes a stack overflow in V8 when trying to insert 100k items for instance.
31205 *
31206 * Otherwise, this does not return the removed items, and takes `items` as an
31207 * array instead of rest parameters.
31208 *
31209 * @template {unknown} T
31210 * Item type.
31211 * @param {Array<T>} list
31212 * List to operate on.
31213 * @param {number} start
31214 * Index to remove/insert at (can be negative).
31215 * @param {number} remove
31216 * Number of items to remove.
31217 * @param {Array<T>} items
31218 * Items to inject into `list`.
31219 * @returns {void}
31220 * Nothing.
31221 */
31222 function splice(list, start, remove, items) {
31223 const end = list.length
31224 let chunkStart = 0
31225 /** @type {Array<unknown>} */
31226 let parameters
31227
31228 // Make start between zero and `end` (included).
31229 if (start < 0) {
31230 start = -start > end ? 0 : end + start
31231 } else {
31232 start = start > end ? end : start
31233 }
31234
31235 remove = remove > 0 ? remove : 0
31236
31237 // No need to chunk the items if there’s only a couple (10k) items.
31238 if (items.length < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize) {
31239 parameters = Array.from(items)
31240 parameters.unshift(start, remove)
31241 // @ts-expect-error Hush, it’s fine.
31242 list.splice(...parameters)
31243 } else {
31244 // Delete `remove` items starting from `start`
31245 if (remove) list.splice(start, remove)
31246
31247 // Insert the items in chunks to not cause stack overflows.
31248 while (chunkStart < items.length) {
31249 parameters = items.slice(
31250 chunkStart,
31251 chunkStart + micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
31252 )
31253 parameters.unshift(start, 0)
31254 // @ts-expect-error Hush, it’s fine.
31255 list.splice(...parameters)
31256
31257 chunkStart += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
31258 start += micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_0__.constants.v8MaxSafeChunkSize
31259 }
31260 }
31261 }
31262
31263 /**
31264 * Append `items` (an array) at the end of `list` (another array).
31265 * When `list` was empty, returns `items` instead.
31266 *
31267 * This prevents a potentially expensive operation when `list` is empty,
31268 * and adds items in batches to prevent V8 from hanging.
31269 *
31270 * @template {unknown} T
31271 * Item type.
31272 * @param {Array<T>} list
31273 * List to operate on.
31274 * @param {Array<T>} items
31275 * Items to add to `list`.
31276 * @returns {Array<T>}
31277 * Either `list` or `items`.
31278 */
31279 function push(list, items) {
31280 if (list.length > 0) {
31281 splice(list, list.length, 0, items)
31282 return list
31283 }
31284
31285 return items
31286 }
31287
31288
31289 /***/ }),
31290
31291 /***/ "../node_modules/micromark-util-classify-character/dev/index.js":
31292 /*!**********************************************************************!*\
31293 !*** ../node_modules/micromark-util-classify-character/dev/index.js ***!
31294 \**********************************************************************/
31295 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31296
31297 "use strict";
31298 __webpack_require__.r(__webpack_exports__);
31299 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31300 /* harmony export */ classifyCharacter: () => (/* binding */ classifyCharacter)
31301 /* harmony export */ });
31302 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31303 /* 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");
31304 /* 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");
31305 /**
31306 * @typedef {import('micromark-util-types').Code} Code
31307 */
31308
31309
31310
31311
31312
31313 /**
31314 * Classify whether a code represents whitespace, punctuation, or something
31315 * else.
31316 *
31317 * Used for attention (emphasis, strong), whose sequences can open or close
31318 * based on the class of surrounding characters.
31319 *
31320 * > 👉 **Note**: eof (`null`) is seen as whitespace.
31321 *
31322 * @param {Code} code
31323 * Code.
31324 * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
31325 * Group.
31326 */
31327 function classifyCharacter(code) {
31328 if (
31329 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof ||
31330 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.markdownLineEndingOrSpace)(code) ||
31331 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodeWhitespace)(code)
31332 ) {
31333 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupWhitespace
31334 }
31335
31336 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_1__.unicodePunctuation)(code)) {
31337 return micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.characterGroupPunctuation
31338 }
31339 }
31340
31341
31342 /***/ }),
31343
31344 /***/ "../node_modules/micromark-util-combine-extensions/index.js":
31345 /*!******************************************************************!*\
31346 !*** ../node_modules/micromark-util-combine-extensions/index.js ***!
31347 \******************************************************************/
31348 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31349
31350 "use strict";
31351 __webpack_require__.r(__webpack_exports__);
31352 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31353 /* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),
31354 /* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)
31355 /* harmony export */ });
31356 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
31357 /**
31358 * @typedef {import('micromark-util-types').Extension} Extension
31359 * @typedef {import('micromark-util-types').Handles} Handles
31360 * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension
31361 * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension
31362 */
31363
31364
31365
31366 const hasOwnProperty = {}.hasOwnProperty
31367
31368 /**
31369 * Combine multiple syntax extensions into one.
31370 *
31371 * @param {Array<Extension>} extensions
31372 * List of syntax extensions.
31373 * @returns {NormalizedExtension}
31374 * A single combined extension.
31375 */
31376 function combineExtensions(extensions) {
31377 /** @type {NormalizedExtension} */
31378 const all = {}
31379 let index = -1
31380
31381 while (++index < extensions.length) {
31382 syntaxExtension(all, extensions[index])
31383 }
31384
31385 return all
31386 }
31387
31388 /**
31389 * Merge `extension` into `all`.
31390 *
31391 * @param {NormalizedExtension} all
31392 * Extension to merge into.
31393 * @param {Extension} extension
31394 * Extension to merge.
31395 * @returns {void}
31396 */
31397 function syntaxExtension(all, extension) {
31398 /** @type {keyof Extension} */
31399 let hook
31400
31401 for (hook in extension) {
31402 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31403 /** @type {Record<string, unknown>} */
31404 const left = maybe || (all[hook] = {})
31405 /** @type {Record<string, unknown> | undefined} */
31406 const right = extension[hook]
31407 /** @type {string} */
31408 let code
31409
31410 if (right) {
31411 for (code in right) {
31412 if (!hasOwnProperty.call(left, code)) left[code] = []
31413 const value = right[code]
31414 constructs(
31415 // @ts-expect-error Looks like a list.
31416 left[code],
31417 Array.isArray(value) ? value : value ? [value] : []
31418 )
31419 }
31420 }
31421 }
31422 }
31423
31424 /**
31425 * Merge `list` into `existing` (both lists of constructs).
31426 * Mutates `existing`.
31427 *
31428 * @param {Array<unknown>} existing
31429 * @param {Array<unknown>} list
31430 * @returns {void}
31431 */
31432 function constructs(existing, list) {
31433 let index = -1
31434 /** @type {Array<unknown>} */
31435 const before = []
31436
31437 while (++index < list.length) {
31438 // @ts-expect-error Looks like an object.
31439 ;(list[index].add === 'after' ? existing : before).push(list[index])
31440 }
31441
31442 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before)
31443 }
31444
31445 /**
31446 * Combine multiple HTML extensions into one.
31447 *
31448 * @param {Array<HtmlExtension>} htmlExtensions
31449 * List of HTML extensions.
31450 * @returns {HtmlExtension}
31451 * A single combined HTML extension.
31452 */
31453 function combineHtmlExtensions(htmlExtensions) {
31454 /** @type {HtmlExtension} */
31455 const handlers = {}
31456 let index = -1
31457
31458 while (++index < htmlExtensions.length) {
31459 htmlExtension(handlers, htmlExtensions[index])
31460 }
31461
31462 return handlers
31463 }
31464
31465 /**
31466 * Merge `extension` into `all`.
31467 *
31468 * @param {HtmlExtension} all
31469 * Extension to merge into.
31470 * @param {HtmlExtension} extension
31471 * Extension to merge.
31472 * @returns {void}
31473 */
31474 function htmlExtension(all, extension) {
31475 /** @type {keyof HtmlExtension} */
31476 let hook
31477
31478 for (hook in extension) {
31479 const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined
31480 const left = maybe || (all[hook] = {})
31481 const right = extension[hook]
31482 /** @type {keyof Handles} */
31483 let type
31484
31485 if (right) {
31486 for (type in right) {
31487 // @ts-expect-error assume document vs regular handler are managed correctly.
31488 left[type] = right[type]
31489 }
31490 }
31491 }
31492 }
31493
31494
31495 /***/ }),
31496
31497 /***/ "../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js":
31498 /*!**************************************************************************************!*\
31499 !*** ../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js ***!
31500 \**************************************************************************************/
31501 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31502
31503 "use strict";
31504 __webpack_require__.r(__webpack_exports__);
31505 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31506 /* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)
31507 /* harmony export */ });
31508 /* 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");
31509 /* 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");
31510
31511
31512
31513 /**
31514 * Turn the number (in string form as either hexa- or plain decimal) coming from
31515 * a numeric character reference into a character.
31516 *
31517 * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
31518 * non-characters and control characters safe.
31519 *
31520 * @param {string} value
31521 * Value to decode.
31522 * @param {number} base
31523 * Numeric base.
31524 * @returns {string}
31525 * Character.
31526 */
31527 function decodeNumericCharacterReference(value, base) {
31528 const code = Number.parseInt(value, base)
31529
31530 if (
31531 // C0 except for HT, LF, FF, CR, space.
31532 code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht ||
31533 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.vt ||
31534 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space) ||
31535 // Control character (DEL) of C0, and C1 controls.
31536 (code > micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160) ||
31537 // Lone high surrogates and low surrogates.
31538 (code > 55295 && code < 57344) ||
31539 // Noncharacters.
31540 (code > 64975 && code < 65008) ||
31541 /* eslint-disable no-bitwise */
31542 (code & 65535) === 65535 ||
31543 (code & 65535) === 65534 ||
31544 /* eslint-enable no-bitwise */
31545 // Out of range
31546 code > 1114111
31547 ) {
31548 return micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter
31549 }
31550
31551 return String.fromCharCode(code)
31552 }
31553
31554
31555 /***/ }),
31556
31557 /***/ "../node_modules/micromark-util-decode-string/dev/index.js":
31558 /*!*****************************************************************!*\
31559 !*** ../node_modules/micromark-util-decode-string/dev/index.js ***!
31560 \*****************************************************************/
31561 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31562
31563 "use strict";
31564 __webpack_require__.r(__webpack_exports__);
31565 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31566 /* harmony export */ decodeString: () => (/* binding */ decodeString)
31567 /* harmony export */ });
31568 /* 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");
31569 /* 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");
31570 /* 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");
31571 /* 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");
31572
31573
31574
31575
31576
31577 const characterEscapeOrReference =
31578 /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi
31579
31580 /**
31581 * Decode markdown strings (which occur in places such as fenced code info
31582 * strings, destinations, labels, and titles).
31583 *
31584 * The “string” content type allows character escapes and -references.
31585 * This decodes those.
31586 *
31587 * @param {string} value
31588 * Value to decode.
31589 * @returns {string}
31590 * Decoded value.
31591 */
31592 function decodeString(value) {
31593 return value.replace(characterEscapeOrReference, decode)
31594 }
31595
31596 /**
31597 * @param {string} $0
31598 * @param {string} $1
31599 * @param {string} $2
31600 * @returns {string}
31601 */
31602 function decode($0, $1, $2) {
31603 if ($1) {
31604 // Escape.
31605 return $1
31606 }
31607
31608 // Reference.
31609 const head = $2.charCodeAt(0)
31610
31611 if (head === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign) {
31612 const head = $2.charCodeAt(1)
31613 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
31614 return (0,micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__.decodeNumericCharacterReference)(
31615 $2.slice(hex ? 2 : 1),
31616 hex ? micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseHexadecimal : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_2__.constants.numericBaseDecimal
31617 )
31618 }
31619
31620 return (0,decode_named_character_reference__WEBPACK_IMPORTED_MODULE_3__.decodeNamedCharacterReference)($2) || $0
31621 }
31622
31623
31624 /***/ }),
31625
31626 /***/ "../node_modules/micromark-util-encode/index.js":
31627 /*!******************************************************!*\
31628 !*** ../node_modules/micromark-util-encode/index.js ***!
31629 \******************************************************/
31630 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31631
31632 "use strict";
31633 __webpack_require__.r(__webpack_exports__);
31634 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31635 /* harmony export */ encode: () => (/* binding */ encode)
31636 /* harmony export */ });
31637 const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}
31638
31639 /**
31640 * Encode only the dangerous HTML characters.
31641 *
31642 * This ensures that certain characters which have special meaning in HTML are
31643 * dealt with.
31644 * Technically, we can skip `>` and `"` in many cases, but CM includes them.
31645 *
31646 * @param {string} value
31647 * Value to encode.
31648 * @returns {string}
31649 * Encoded value.
31650 */
31651 function encode(value) {
31652 return value.replace(/["&<>]/g, replace)
31653
31654 /**
31655 * @param {string} value
31656 * @returns {string}
31657 */
31658 function replace(value) {
31659 // @ts-expect-error Hush, it’s fine.
31660 return '&' + characterReferences[value] + ';'
31661 }
31662 }
31663
31664
31665 /***/ }),
31666
31667 /***/ "../node_modules/micromark-util-html-tag-name/index.js":
31668 /*!*************************************************************!*\
31669 !*** ../node_modules/micromark-util-html-tag-name/index.js ***!
31670 \*************************************************************/
31671 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31672
31673 "use strict";
31674 __webpack_require__.r(__webpack_exports__);
31675 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31676 /* harmony export */ htmlBlockNames: () => (/* binding */ htmlBlockNames),
31677 /* harmony export */ htmlRawNames: () => (/* binding */ htmlRawNames)
31678 /* harmony export */ });
31679 /**
31680 * List of lowercase HTML “block” tag names.
31681 *
31682 * The list, when parsing HTML (flow), results in more relaxed rules (condition
31683 * 6).
31684 * Because they are known blocks, the HTML-like syntax doesn’t have to be
31685 * strictly parsed.
31686 * For tag names not in this list, a more strict algorithm (condition 7) is used
31687 * to detect whether the HTML-like syntax is seen as HTML (flow) or not.
31688 *
31689 * This is copied from:
31690 * <https://spec.commonmark.org/0.30/#html-blocks>.
31691 *
31692 * > 👉 **Note**: `search` was added in `CommonMark@0.31`.
31693 */
31694 const htmlBlockNames = [
31695 'address',
31696 'article',
31697 'aside',
31698 'base',
31699 'basefont',
31700 'blockquote',
31701 'body',
31702 'caption',
31703 'center',
31704 'col',
31705 'colgroup',
31706 'dd',
31707 'details',
31708 'dialog',
31709 'dir',
31710 'div',
31711 'dl',
31712 'dt',
31713 'fieldset',
31714 'figcaption',
31715 'figure',
31716 'footer',
31717 'form',
31718 'frame',
31719 'frameset',
31720 'h1',
31721 'h2',
31722 'h3',
31723 'h4',
31724 'h5',
31725 'h6',
31726 'head',
31727 'header',
31728 'hr',
31729 'html',
31730 'iframe',
31731 'legend',
31732 'li',
31733 'link',
31734 'main',
31735 'menu',
31736 'menuitem',
31737 'nav',
31738 'noframes',
31739 'ol',
31740 'optgroup',
31741 'option',
31742 'p',
31743 'param',
31744 'search',
31745 'section',
31746 'summary',
31747 'table',
31748 'tbody',
31749 'td',
31750 'tfoot',
31751 'th',
31752 'thead',
31753 'title',
31754 'tr',
31755 'track',
31756 'ul'
31757 ]
31758
31759 /**
31760 * List of lowercase HTML “raw” tag names.
31761 *
31762 * The list, when parsing HTML (flow), results in HTML that can include lines
31763 * without exiting, until a closing tag also in this list is found (condition
31764 * 1).
31765 *
31766 * This module is copied from:
31767 * <https://spec.commonmark.org/0.30/#html-blocks>.
31768 *
31769 * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.
31770 */
31771 const htmlRawNames = ['pre', 'script', 'style', 'textarea']
31772
31773
31774 /***/ }),
31775
31776 /***/ "../node_modules/micromark-util-normalize-identifier/dev/index.js":
31777 /*!************************************************************************!*\
31778 !*** ../node_modules/micromark-util-normalize-identifier/dev/index.js ***!
31779 \************************************************************************/
31780 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31781
31782 "use strict";
31783 __webpack_require__.r(__webpack_exports__);
31784 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31785 /* harmony export */ normalizeIdentifier: () => (/* binding */ normalizeIdentifier)
31786 /* harmony export */ });
31787 /* 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");
31788
31789
31790 /**
31791 * Normalize an identifier (as found in references, definitions).
31792 *
31793 * Collapses markdown whitespace, trim, and then lower- and uppercase.
31794 *
31795 * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
31796 * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
31797 * uppercase character (U+0398 (`Θ`)).
31798 * So, to get a canonical form, we perform both lower- and uppercase.
31799 *
31800 * Using uppercase last makes sure keys will never interact with default
31801 * prototypal values (such as `constructor`): nothing in the prototype of
31802 * `Object` is uppercase.
31803 *
31804 * @param {string} value
31805 * Identifier to normalize.
31806 * @returns {string}
31807 * Normalized identifier.
31808 */
31809 function normalizeIdentifier(value) {
31810 return (
31811 value
31812 // Collapse markdown whitespace.
31813 .replace(/[\t\n\r ]+/g, micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_0__.values.space)
31814 // Trim.
31815 .replace(/^ | $/g, '')
31816 // Some characters are considered “uppercase”, but if their lowercase
31817 // counterpart is uppercased will result in a different uppercase
31818 // character.
31819 // Hence, to get that form, we perform both lower- and uppercase.
31820 // Upper case makes sure keys will not interact with default prototypal
31821 // methods: no method is uppercase.
31822 .toLowerCase()
31823 .toUpperCase()
31824 )
31825 }
31826
31827
31828 /***/ }),
31829
31830 /***/ "../node_modules/micromark-util-resolve-all/index.js":
31831 /*!***********************************************************!*\
31832 !*** ../node_modules/micromark-util-resolve-all/index.js ***!
31833 \***********************************************************/
31834 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31835
31836 "use strict";
31837 __webpack_require__.r(__webpack_exports__);
31838 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31839 /* harmony export */ resolveAll: () => (/* binding */ resolveAll)
31840 /* harmony export */ });
31841 /**
31842 * @typedef {import('micromark-util-types').Event} Event
31843 * @typedef {import('micromark-util-types').Resolver} Resolver
31844 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
31845 */
31846
31847 /**
31848 * Call all `resolveAll`s.
31849 *
31850 * @param {Array<{resolveAll?: Resolver | undefined}>} constructs
31851 * List of constructs, optionally with `resolveAll`s.
31852 * @param {Array<Event>} events
31853 * List of events.
31854 * @param {TokenizeContext} context
31855 * Context used by `tokenize`.
31856 * @returns {Array<Event>}
31857 * Changed events.
31858 */
31859 function resolveAll(constructs, events, context) {
31860 /** @type {Array<Resolver>} */
31861 const called = []
31862 let index = -1
31863
31864 while (++index < constructs.length) {
31865 const resolve = constructs[index].resolveAll
31866
31867 if (resolve && !called.includes(resolve)) {
31868 events = resolve(events, context)
31869 called.push(resolve)
31870 }
31871 }
31872
31873 return events
31874 }
31875
31876
31877 /***/ }),
31878
31879 /***/ "../node_modules/micromark-util-sanitize-uri/dev/index.js":
31880 /*!****************************************************************!*\
31881 !*** ../node_modules/micromark-util-sanitize-uri/dev/index.js ***!
31882 \****************************************************************/
31883 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
31884
31885 "use strict";
31886 __webpack_require__.r(__webpack_exports__);
31887 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31888 /* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),
31889 /* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)
31890 /* harmony export */ });
31891 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
31892 /* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ "../node_modules/micromark-util-encode/index.js");
31893 /* 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");
31894 /* 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");
31895
31896
31897
31898
31899
31900 /**
31901 * Make a value safe for injection as a URL.
31902 *
31903 * This encodes unsafe characters with percent-encoding and skips already
31904 * encoded sequences (see `normalizeUri`).
31905 * Further unsafe characters are encoded as character references (see
31906 * `micromark-util-encode`).
31907 *
31908 * A regex of allowed protocols can be given, in which case the URL is
31909 * sanitized.
31910 * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or
31911 * `/^https?$/i` for `img[src]` (this is what `github.com` allows).
31912 * If the URL includes an unknown protocol (one not matched by `protocol`, such
31913 * as a dangerous example, `javascript:`), the value is ignored.
31914 *
31915 * @param {string | undefined} url
31916 * URI to sanitize.
31917 * @param {RegExp | null | undefined} [protocol]
31918 * Allowed protocols.
31919 * @returns {string}
31920 * Sanitized URI.
31921 */
31922 function sanitizeUri(url, protocol) {
31923 const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || ''))
31924
31925 if (!protocol) {
31926 return value
31927 }
31928
31929 const colon = value.indexOf(':')
31930 const questionMark = value.indexOf('?')
31931 const numberSign = value.indexOf('#')
31932 const slash = value.indexOf('/')
31933
31934 if (
31935 // If there is no protocol, it’s relative.
31936 colon < 0 ||
31937 // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.
31938 (slash > -1 && colon > slash) ||
31939 (questionMark > -1 && colon > questionMark) ||
31940 (numberSign > -1 && colon > numberSign) ||
31941 // It is a protocol, it should be allowed.
31942 protocol.test(value.slice(0, colon))
31943 ) {
31944 return value
31945 }
31946
31947 return ''
31948 }
31949
31950 /**
31951 * Normalize a URL.
31952 *
31953 * Encode unsafe characters with percent-encoding, skipping already encoded
31954 * sequences.
31955 *
31956 * @param {string} value
31957 * URI to normalize.
31958 * @returns {string}
31959 * Normalized URI.
31960 */
31961 function normalizeUri(value) {
31962 /** @type {Array<string>} */
31963 const result = []
31964 let index = -1
31965 let start = 0
31966 let skip = 0
31967
31968 while (++index < value.length) {
31969 const code = value.charCodeAt(index)
31970 /** @type {string} */
31971 let replace = ''
31972
31973 // A correct percent encoded value.
31974 if (
31975 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign &&
31976 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) &&
31977 (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))
31978 ) {
31979 skip = 2
31980 }
31981 // ASCII.
31982 else if (code < 128) {
31983 if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
31984 replace = String.fromCharCode(code)
31985 }
31986 }
31987 // Astral.
31988 else if (code > 55295 && code < 57344) {
31989 const next = value.charCodeAt(index + 1)
31990
31991 // A correct surrogate pair.
31992 if (code < 56320 && next > 56319 && next < 57344) {
31993 replace = String.fromCharCode(code, next)
31994 skip = 1
31995 }
31996 // Lone surrogate.
31997 else {
31998 replace = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter
31999 }
32000 }
32001 // Unicode.
32002 else {
32003 replace = String.fromCharCode(code)
32004 }
32005
32006 if (replace) {
32007 result.push(value.slice(start, index), encodeURIComponent(replace))
32008 start = index + skip + 1
32009 replace = ''
32010 }
32011
32012 if (skip) {
32013 index += skip
32014 skip = 0
32015 }
32016 }
32017
32018 return result.join('') + value.slice(start)
32019 }
32020
32021
32022 /***/ }),
32023
32024 /***/ "../node_modules/micromark-util-subtokenize/dev/index.js":
32025 /*!***************************************************************!*\
32026 !*** ../node_modules/micromark-util-subtokenize/dev/index.js ***!
32027 \***************************************************************/
32028 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32029
32030 "use strict";
32031 __webpack_require__.r(__webpack_exports__);
32032 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32033 /* harmony export */ subtokenize: () => (/* binding */ subtokenize)
32034 /* harmony export */ });
32035 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
32036 /* 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");
32037 /* 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");
32038 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
32039 /**
32040 * @typedef {import('micromark-util-types').Chunk} Chunk
32041 * @typedef {import('micromark-util-types').Event} Event
32042 * @typedef {import('micromark-util-types').Token} Token
32043 */
32044
32045
32046
32047
32048
32049
32050 /**
32051 * Tokenize subcontent.
32052 *
32053 * @param {Array<Event>} events
32054 * List of events.
32055 * @returns {boolean}
32056 * Whether subtokens were found.
32057 */
32058 function subtokenize(events) {
32059 /** @type {Record<string, number>} */
32060 const jumps = {}
32061 let index = -1
32062 /** @type {Event} */
32063 let event
32064 /** @type {number | undefined} */
32065 let lineIndex
32066 /** @type {number} */
32067 let otherIndex
32068 /** @type {Event} */
32069 let otherEvent
32070 /** @type {Array<Event>} */
32071 let parameters
32072 /** @type {Array<Event>} */
32073 let subevents
32074 /** @type {boolean | undefined} */
32075 let more
32076
32077 while (++index < events.length) {
32078 while (index in jumps) {
32079 index = jumps[index]
32080 }
32081
32082 event = events[index]
32083
32084 // Add a hook for the GFM tasklist extension, which needs to know if text
32085 // is in the first content of a list item.
32086 if (
32087 index &&
32088 event[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow &&
32089 events[index - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.listItemPrefix
32090 ) {
32091 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(event[1]._tokenizer, 'expected `_tokenizer` on subtokens')
32092 subevents = event[1]._tokenizer.events
32093 otherIndex = 0
32094
32095 if (
32096 otherIndex < subevents.length &&
32097 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
32098 ) {
32099 otherIndex += 2
32100 }
32101
32102 if (
32103 otherIndex < subevents.length &&
32104 subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content
32105 ) {
32106 while (++otherIndex < subevents.length) {
32107 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.content) {
32108 break
32109 }
32110
32111 if (subevents[otherIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkText) {
32112 subevents[otherIndex][1]._isInFirstContentOfListItem = true
32113 otherIndex++
32114 }
32115 }
32116 }
32117 }
32118
32119 // Enter.
32120 if (event[0] === 'enter') {
32121 if (event[1].contentType) {
32122 Object.assign(jumps, subcontent(events, index))
32123 index = jumps[index]
32124 more = true
32125 }
32126 }
32127 // Exit.
32128 else if (event[1]._container) {
32129 otherIndex = index
32130 lineIndex = undefined
32131
32132 while (otherIndex--) {
32133 otherEvent = events[otherIndex]
32134
32135 if (
32136 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding ||
32137 otherEvent[1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
32138 ) {
32139 if (otherEvent[0] === 'enter') {
32140 if (lineIndex) {
32141 events[lineIndex][1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEndingBlank
32142 }
32143
32144 otherEvent[1].type = micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.lineEnding
32145 lineIndex = otherIndex
32146 }
32147 } else {
32148 break
32149 }
32150 }
32151
32152 if (lineIndex) {
32153 // Fix position.
32154 event[1].end = Object.assign({}, events[lineIndex][1].start)
32155
32156 // Switch container exit w/ line endings.
32157 parameters = events.slice(lineIndex, index)
32158 parameters.unshift(event)
32159 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, lineIndex, index - lineIndex + 1, parameters)
32160 }
32161 }
32162 }
32163
32164 return !more
32165 }
32166
32167 /**
32168 * Tokenize embedded tokens.
32169 *
32170 * @param {Array<Event>} events
32171 * @param {number} eventIndex
32172 * @returns {Record<string, number>}
32173 */
32174 function subcontent(events, eventIndex) {
32175 const token = events[eventIndex][1]
32176 const context = events[eventIndex][2]
32177 let startPosition = eventIndex - 1
32178 /** @type {Array<number>} */
32179 const startPositions = []
32180 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(token.contentType, 'expected `contentType` on subtokens')
32181 const tokenizer =
32182 token._tokenizer || context.parser[token.contentType](token.start)
32183 const childEvents = tokenizer.events
32184 /** @type {Array<[number, number]>} */
32185 const jumps = []
32186 /** @type {Record<string, number>} */
32187 const gaps = {}
32188 /** @type {Array<Chunk>} */
32189 let stream
32190 /** @type {Token | undefined} */
32191 let previous
32192 let index = -1
32193 /** @type {Token | undefined} */
32194 let current = token
32195 let adjust = 0
32196 let start = 0
32197 const breaks = [start]
32198
32199 // Loop forward through the linked tokens to pass them in order to the
32200 // subtokenizer.
32201 while (current) {
32202 // Find the position of the event for this token.
32203 while (events[++startPosition][1] !== current) {
32204 // Empty.
32205 }
32206
32207 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
32208 !previous || current.previous === previous,
32209 'expected previous to match'
32210 )
32211 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!previous || previous.next === current, 'expected next to match')
32212
32213 startPositions.push(startPosition)
32214
32215 if (!current._tokenizer) {
32216 stream = context.sliceStream(current)
32217
32218 if (!current.next) {
32219 stream.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof)
32220 }
32221
32222 if (previous) {
32223 tokenizer.defineSkip(current.start)
32224 }
32225
32226 if (current._isInFirstContentOfListItem) {
32227 tokenizer._gfmTasklistFirstContentOfListItem = true
32228 }
32229
32230 tokenizer.write(stream)
32231
32232 if (current._isInFirstContentOfListItem) {
32233 tokenizer._gfmTasklistFirstContentOfListItem = undefined
32234 }
32235 }
32236
32237 // Unravel the next token.
32238 previous = current
32239 current = current.next
32240 }
32241
32242 // Now, loop back through all events (and linked tokens), to figure out which
32243 // parts belong where.
32244 current = token
32245
32246 while (++index < childEvents.length) {
32247 if (
32248 // Find a void token that includes a break.
32249 childEvents[index][0] === 'exit' &&
32250 childEvents[index - 1][0] === 'enter' &&
32251 childEvents[index][1].type === childEvents[index - 1][1].type &&
32252 childEvents[index][1].start.line !== childEvents[index][1].end.line
32253 ) {
32254 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(current, 'expected a current token')
32255 start = index + 1
32256 breaks.push(start)
32257 // Help GC.
32258 current._tokenizer = undefined
32259 current.previous = undefined
32260 current = current.next
32261 }
32262 }
32263
32264 // Help GC.
32265 tokenizer.events = []
32266
32267 // If there’s one more token (which is the cases for lines that end in an
32268 // EOF), that’s perfect: the last point we found starts it.
32269 // If there isn’t then make sure any remaining content is added to it.
32270 if (current) {
32271 // Help GC.
32272 current._tokenizer = undefined
32273 current.previous = undefined
32274 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(!current.next, 'expected no next token')
32275 } else {
32276 breaks.pop()
32277 }
32278
32279 // Now splice the events from the subtokenizer into the current events,
32280 // moving back to front so that splice indices aren’t affected.
32281 index = breaks.length
32282
32283 while (index--) {
32284 const slice = childEvents.slice(breaks[index], breaks[index + 1])
32285 const start = startPositions.pop()
32286 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(start !== undefined, 'expected a start position when splicing')
32287 jumps.unshift([start, start + slice.length - 1])
32288 ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, start, 2, slice)
32289 }
32290
32291 index = -1
32292
32293 while (++index < jumps.length) {
32294 gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]
32295 adjust += jumps[index][1] - jumps[index][0] - 1
32296 }
32297
32298 return gaps
32299 }
32300
32301
32302 /***/ }),
32303
32304 /***/ "../node_modules/micromark-util-symbol/codes.js":
32305 /*!******************************************************!*\
32306 !*** ../node_modules/micromark-util-symbol/codes.js ***!
32307 \******************************************************/
32308 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32309
32310 "use strict";
32311 __webpack_require__.r(__webpack_exports__);
32312 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32313 /* harmony export */ codes: () => (/* binding */ codes)
32314 /* harmony export */ });
32315 /**
32316 * Character codes.
32317 *
32318 * This module is compiled away!
32319 *
32320 * micromark works based on character codes.
32321 * This module contains constants for the ASCII block and the replacement
32322 * character.
32323 * A couple of them are handled in a special way, such as the line endings
32324 * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal
32325 * tab) and its expansion based on what column it’s at (virtual space),
32326 * and the end-of-file (eof) character.
32327 * As values are preprocessed before handling them, the actual characters LF,
32328 * CR, HT, and NUL (which is present as the replacement character), are
32329 * guaranteed to not exist.
32330 *
32331 * Unicode basic latin block.
32332 */
32333 const codes = /** @type {const} */ ({
32334 carriageReturn: -5,
32335 lineFeed: -4,
32336 carriageReturnLineFeed: -3,
32337 horizontalTab: -2,
32338 virtualSpace: -1,
32339 eof: null,
32340 nul: 0,
32341 soh: 1,
32342 stx: 2,
32343 etx: 3,
32344 eot: 4,
32345 enq: 5,
32346 ack: 6,
32347 bel: 7,
32348 bs: 8,
32349 ht: 9, // `\t`
32350 lf: 10, // `\n`
32351 vt: 11, // `\v`
32352 ff: 12, // `\f`
32353 cr: 13, // `\r`
32354 so: 14,
32355 si: 15,
32356 dle: 16,
32357 dc1: 17,
32358 dc2: 18,
32359 dc3: 19,
32360 dc4: 20,
32361 nak: 21,
32362 syn: 22,
32363 etb: 23,
32364 can: 24,
32365 em: 25,
32366 sub: 26,
32367 esc: 27,
32368 fs: 28,
32369 gs: 29,
32370 rs: 30,
32371 us: 31,
32372 space: 32,
32373 exclamationMark: 33, // `!`
32374 quotationMark: 34, // `"`
32375 numberSign: 35, // `#`
32376 dollarSign: 36, // `$`
32377 percentSign: 37, // `%`
32378 ampersand: 38, // `&`
32379 apostrophe: 39, // `'`
32380 leftParenthesis: 40, // `(`
32381 rightParenthesis: 41, // `)`
32382 asterisk: 42, // `*`
32383 plusSign: 43, // `+`
32384 comma: 44, // `,`
32385 dash: 45, // `-`
32386 dot: 46, // `.`
32387 slash: 47, // `/`
32388 digit0: 48, // `0`
32389 digit1: 49, // `1`
32390 digit2: 50, // `2`
32391 digit3: 51, // `3`
32392 digit4: 52, // `4`
32393 digit5: 53, // `5`
32394 digit6: 54, // `6`
32395 digit7: 55, // `7`
32396 digit8: 56, // `8`
32397 digit9: 57, // `9`
32398 colon: 58, // `:`
32399 semicolon: 59, // `;`
32400 lessThan: 60, // `<`
32401 equalsTo: 61, // `=`
32402 greaterThan: 62, // `>`
32403 questionMark: 63, // `?`
32404 atSign: 64, // `@`
32405 uppercaseA: 65, // `A`
32406 uppercaseB: 66, // `B`
32407 uppercaseC: 67, // `C`
32408 uppercaseD: 68, // `D`
32409 uppercaseE: 69, // `E`
32410 uppercaseF: 70, // `F`
32411 uppercaseG: 71, // `G`
32412 uppercaseH: 72, // `H`
32413 uppercaseI: 73, // `I`
32414 uppercaseJ: 74, // `J`
32415 uppercaseK: 75, // `K`
32416 uppercaseL: 76, // `L`
32417 uppercaseM: 77, // `M`
32418 uppercaseN: 78, // `N`
32419 uppercaseO: 79, // `O`
32420 uppercaseP: 80, // `P`
32421 uppercaseQ: 81, // `Q`
32422 uppercaseR: 82, // `R`
32423 uppercaseS: 83, // `S`
32424 uppercaseT: 84, // `T`
32425 uppercaseU: 85, // `U`
32426 uppercaseV: 86, // `V`
32427 uppercaseW: 87, // `W`
32428 uppercaseX: 88, // `X`
32429 uppercaseY: 89, // `Y`
32430 uppercaseZ: 90, // `Z`
32431 leftSquareBracket: 91, // `[`
32432 backslash: 92, // `\`
32433 rightSquareBracket: 93, // `]`
32434 caret: 94, // `^`
32435 underscore: 95, // `_`
32436 graveAccent: 96, // `` ` ``
32437 lowercaseA: 97, // `a`
32438 lowercaseB: 98, // `b`
32439 lowercaseC: 99, // `c`
32440 lowercaseD: 100, // `d`
32441 lowercaseE: 101, // `e`
32442 lowercaseF: 102, // `f`
32443 lowercaseG: 103, // `g`
32444 lowercaseH: 104, // `h`
32445 lowercaseI: 105, // `i`
32446 lowercaseJ: 106, // `j`
32447 lowercaseK: 107, // `k`
32448 lowercaseL: 108, // `l`
32449 lowercaseM: 109, // `m`
32450 lowercaseN: 110, // `n`
32451 lowercaseO: 111, // `o`
32452 lowercaseP: 112, // `p`
32453 lowercaseQ: 113, // `q`
32454 lowercaseR: 114, // `r`
32455 lowercaseS: 115, // `s`
32456 lowercaseT: 116, // `t`
32457 lowercaseU: 117, // `u`
32458 lowercaseV: 118, // `v`
32459 lowercaseW: 119, // `w`
32460 lowercaseX: 120, // `x`
32461 lowercaseY: 121, // `y`
32462 lowercaseZ: 122, // `z`
32463 leftCurlyBrace: 123, // `{`
32464 verticalBar: 124, // `|`
32465 rightCurlyBrace: 125, // `}`
32466 tilde: 126, // `~`
32467 del: 127,
32468 // Unicode Specials block.
32469 byteOrderMarker: 65279,
32470 // Unicode Specials block.
32471 replacementCharacter: 65533 // ``
32472 })
32473
32474
32475 /***/ }),
32476
32477 /***/ "../node_modules/micromark-util-symbol/constants.js":
32478 /*!**********************************************************!*\
32479 !*** ../node_modules/micromark-util-symbol/constants.js ***!
32480 \**********************************************************/
32481 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32482
32483 "use strict";
32484 __webpack_require__.r(__webpack_exports__);
32485 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32486 /* harmony export */ constants: () => (/* binding */ constants)
32487 /* harmony export */ });
32488 /**
32489 * This module is compiled away!
32490 *
32491 * Parsing markdown comes with a couple of constants, such as minimum or maximum
32492 * sizes of certain sequences.
32493 * Additionally, there are a couple symbols used inside micromark.
32494 * These are all defined here, but compiled away by scripts.
32495 */
32496 const constants = /** @type {const} */ ({
32497 attentionSideBefore: 1, // Symbol to mark an attention sequence as before content: `*a`
32498 attentionSideAfter: 2, // Symbol to mark an attention sequence as after content: `a*`
32499 atxHeadingOpeningFenceSizeMax: 6, // 6 number signs is fine, 7 isn’t.
32500 autolinkDomainSizeMax: 63, // 63 characters is fine, 64 is too many.
32501 autolinkSchemeSizeMax: 32, // 32 characters is fine, 33 is too many.
32502 cdataOpeningString: 'CDATA[', // And preceded by `<![`.
32503 characterGroupWhitespace: 1, // Symbol used to indicate a character is whitespace
32504 characterGroupPunctuation: 2, // Symbol used to indicate a character is punctuation
32505 characterReferenceDecimalSizeMax: 7, // `&#9999999;`.
32506 characterReferenceHexadecimalSizeMax: 6, // `&#xff9999;`.
32507 characterReferenceNamedSizeMax: 31, // `&CounterClockwiseContourIntegral;`.
32508 codeFencedSequenceSizeMin: 3, // At least 3 ticks or tildes are needed.
32509 contentTypeDocument: 'document',
32510 contentTypeFlow: 'flow',
32511 contentTypeContent: 'content',
32512 contentTypeString: 'string',
32513 contentTypeText: 'text',
32514 hardBreakPrefixSizeMin: 2, // At least 2 trailing spaces are needed.
32515 htmlRaw: 1, // Symbol for `<script>`
32516 htmlComment: 2, // Symbol for `<!---->`
32517 htmlInstruction: 3, // Symbol for `<?php?>`
32518 htmlDeclaration: 4, // Symbol for `<!doctype>`
32519 htmlCdata: 5, // Symbol for `<![CDATA[]]>`
32520 htmlBasic: 6, // Symbol for `<div`
32521 htmlComplete: 7, // Symbol for `<x>`
32522 htmlRawSizeMax: 8, // Length of `textarea`.
32523 linkResourceDestinationBalanceMax: 32, // See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>
32524 linkReferenceSizeMax: 999, // See: <https://spec.commonmark.org/0.30/#link-label>
32525 listItemValueSizeMax: 10, // See: <https://spec.commonmark.org/0.30/#ordered-list-marker>
32526 numericBaseDecimal: 10,
32527 numericBaseHexadecimal: 0x10,
32528 tabSize: 4, // Tabs have a hard-coded size of 4, per CommonMark.
32529 thematicBreakMarkerCountMin: 3, // At least 3 asterisks, dashes, or underscores are needed.
32530 v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.
32531 })
32532
32533
32534 /***/ }),
32535
32536 /***/ "../node_modules/micromark-util-symbol/types.js":
32537 /*!******************************************************!*\
32538 !*** ../node_modules/micromark-util-symbol/types.js ***!
32539 \******************************************************/
32540 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
32541
32542 "use strict";
32543 __webpack_require__.r(__webpack_exports__);
32544 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32545 /* harmony export */ types: () => (/* binding */ types)
32546 /* harmony export */ });
32547 /**
32548 * This module is compiled away!
32549 *
32550 * Here is the list of all types of tokens exposed by micromark, with a short
32551 * explanation of what they include and where they are found.
32552 * In picking names, generally, the rule is to be as explicit as possible
32553 * instead of reusing names.
32554 * For example, there is a `definitionDestination` and a `resourceDestination`,
32555 * instead of one shared name.
32556 */
32557
32558 // Note: when changing the next record, you must also change `TokenTypeMap`
32559 // in `micromark-util-types/index.d.ts`.
32560 const types = /** @type {const} */ ({
32561 // Generic type for data, such as in a title, a destination, etc.
32562 data: 'data',
32563
32564 // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).
32565 // Such as, between a fenced code fence and an info string.
32566 whitespace: 'whitespace',
32567
32568 // Generic type for line endings (line feed, carriage return, carriage return +
32569 // line feed).
32570 lineEnding: 'lineEnding',
32571
32572 // A line ending, but ending a blank line.
32573 lineEndingBlank: 'lineEndingBlank',
32574
32575 // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a
32576 // line.
32577 linePrefix: 'linePrefix',
32578
32579 // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a
32580 // line.
32581 lineSuffix: 'lineSuffix',
32582
32583 // Whole ATX heading:
32584 //
32585 // ```markdown
32586 // #
32587 // ## Alpha
32588 // ### Bravo ###
32589 // ```
32590 //
32591 // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.
32592 atxHeading: 'atxHeading',
32593
32594 // Sequence of number signs in an ATX heading (`###`).
32595 atxHeadingSequence: 'atxHeadingSequence',
32596
32597 // Content in an ATX heading (`alpha`).
32598 // Includes text.
32599 atxHeadingText: 'atxHeadingText',
32600
32601 // Whole autolink (`<https://example.com>` or `<admin@example.com>`)
32602 // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.
32603 autolink: 'autolink',
32604
32605 // Email autolink w/o markers (`admin@example.com`)
32606 autolinkEmail: 'autolinkEmail',
32607
32608 // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).
32609 autolinkMarker: 'autolinkMarker',
32610
32611 // Protocol autolink w/o markers (`https://example.com`)
32612 autolinkProtocol: 'autolinkProtocol',
32613
32614 // A whole character escape (`\-`).
32615 // Includes `escapeMarker` and `characterEscapeValue`.
32616 characterEscape: 'characterEscape',
32617
32618 // The escaped character (`-`).
32619 characterEscapeValue: 'characterEscapeValue',
32620
32621 // A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).
32622 // Includes `characterReferenceMarker`, an optional
32623 // `characterReferenceMarkerNumeric`, in which case an optional
32624 // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.
32625 characterReference: 'characterReference',
32626
32627 // The start or end marker (`&` or `;`).
32628 characterReferenceMarker: 'characterReferenceMarker',
32629
32630 // Mark reference as numeric (`#`).
32631 characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',
32632
32633 // Mark reference as numeric (`x` or `X`).
32634 characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',
32635
32636 // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).
32637 characterReferenceValue: 'characterReferenceValue',
32638
32639 // Whole fenced code:
32640 //
32641 // ````markdown
32642 // ```js
32643 // alert(1)
32644 // ```
32645 // ````
32646 codeFenced: 'codeFenced',
32647
32648 // A fenced code fence, including whitespace, sequence, info, and meta
32649 // (` ```js `).
32650 codeFencedFence: 'codeFencedFence',
32651
32652 // Sequence of grave accent or tilde characters (` ``` `) in a fence.
32653 codeFencedFenceSequence: 'codeFencedFenceSequence',
32654
32655 // Info word (`js`) in a fence.
32656 // Includes string.
32657 codeFencedFenceInfo: 'codeFencedFenceInfo',
32658
32659 // Meta words (`highlight="1"`) in a fence.
32660 // Includes string.
32661 codeFencedFenceMeta: 'codeFencedFenceMeta',
32662
32663 // A line of code.
32664 codeFlowValue: 'codeFlowValue',
32665
32666 // Whole indented code:
32667 //
32668 // ```markdown
32669 // alert(1)
32670 // ```
32671 //
32672 // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.
32673 codeIndented: 'codeIndented',
32674
32675 // A text code (``` `alpha` ```).
32676 // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include
32677 // `codeTextPadding`.
32678 codeText: 'codeText',
32679
32680 codeTextData: 'codeTextData',
32681
32682 // A space or line ending right after or before a tick.
32683 codeTextPadding: 'codeTextPadding',
32684
32685 // A text code fence (` `` `).
32686 codeTextSequence: 'codeTextSequence',
32687
32688 // Whole content:
32689 //
32690 // ```markdown
32691 // [a]: b
32692 // c
32693 // =
32694 // d
32695 // ```
32696 //
32697 // Includes `paragraph` and `definition`.
32698 content: 'content',
32699 // Whole definition:
32700 //
32701 // ```markdown
32702 // [micromark]: https://github.com/micromark/micromark
32703 // ```
32704 //
32705 // Includes `definitionLabel`, `definitionMarker`, `whitespace`,
32706 // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.
32707 definition: 'definition',
32708
32709 // Destination of a definition (`https://github.com/micromark/micromark` or
32710 // `<https://github.com/micromark/micromark>`).
32711 // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.
32712 definitionDestination: 'definitionDestination',
32713
32714 // Enclosed destination of a definition
32715 // (`<https://github.com/micromark/micromark>`).
32716 // Includes `definitionDestinationLiteralMarker` and optionally
32717 // `definitionDestinationString`.
32718 definitionDestinationLiteral: 'definitionDestinationLiteral',
32719
32720 // Markers of an enclosed definition destination (`<` or `>`).
32721 definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',
32722
32723 // Unenclosed destination of a definition
32724 // (`https://github.com/micromark/micromark`).
32725 // Includes `definitionDestinationString`.
32726 definitionDestinationRaw: 'definitionDestinationRaw',
32727
32728 // Text in an destination (`https://github.com/micromark/micromark`).
32729 // Includes string.
32730 definitionDestinationString: 'definitionDestinationString',
32731
32732 // Label of a definition (`[micromark]`).
32733 // Includes `definitionLabelMarker` and `definitionLabelString`.
32734 definitionLabel: 'definitionLabel',
32735
32736 // Markers of a definition label (`[` or `]`).
32737 definitionLabelMarker: 'definitionLabelMarker',
32738
32739 // Value of a definition label (`micromark`).
32740 // Includes string.
32741 definitionLabelString: 'definitionLabelString',
32742
32743 // Marker between a label and a destination (`:`).
32744 definitionMarker: 'definitionMarker',
32745
32746 // Title of a definition (`"x"`, `'y'`, or `(z)`).
32747 // Includes `definitionTitleMarker` and optionally `definitionTitleString`.
32748 definitionTitle: 'definitionTitle',
32749
32750 // Marker around a title of a definition (`"`, `'`, `(`, or `)`).
32751 definitionTitleMarker: 'definitionTitleMarker',
32752
32753 // Data without markers in a title (`z`).
32754 // Includes string.
32755 definitionTitleString: 'definitionTitleString',
32756
32757 // Emphasis (`*alpha*`).
32758 // Includes `emphasisSequence` and `emphasisText`.
32759 emphasis: 'emphasis',
32760
32761 // Sequence of emphasis markers (`*` or `_`).
32762 emphasisSequence: 'emphasisSequence',
32763
32764 // Emphasis text (`alpha`).
32765 // Includes text.
32766 emphasisText: 'emphasisText',
32767
32768 // The character escape marker (`\`).
32769 escapeMarker: 'escapeMarker',
32770
32771 // A hard break created with a backslash (`\\n`).
32772 // Note: does not include the line ending.
32773 hardBreakEscape: 'hardBreakEscape',
32774
32775 // A hard break created with trailing spaces (` \n`).
32776 // Does not include the line ending.
32777 hardBreakTrailing: 'hardBreakTrailing',
32778
32779 // Flow HTML:
32780 //
32781 // ```markdown
32782 // <div
32783 // ```
32784 //
32785 // Inlcudes `lineEnding`, `htmlFlowData`.
32786 htmlFlow: 'htmlFlow',
32787
32788 htmlFlowData: 'htmlFlowData',
32789
32790 // HTML in text (the tag in `a <i> b`).
32791 // Includes `lineEnding`, `htmlTextData`.
32792 htmlText: 'htmlText',
32793
32794 htmlTextData: 'htmlTextData',
32795
32796 // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or
32797 // `![alpha]`).
32798 // Includes `label` and an optional `resource` or `reference`.
32799 image: 'image',
32800
32801 // Whole link label (`[*alpha*]`).
32802 // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.
32803 label: 'label',
32804
32805 // Text in an label (`*alpha*`).
32806 // Includes text.
32807 labelText: 'labelText',
32808
32809 // Start a link label (`[`).
32810 // Includes a `labelMarker`.
32811 labelLink: 'labelLink',
32812
32813 // Start an image label (`![`).
32814 // Includes `labelImageMarker` and `labelMarker`.
32815 labelImage: 'labelImage',
32816
32817 // Marker of a label (`[` or `]`).
32818 labelMarker: 'labelMarker',
32819
32820 // Marker to start an image (`!`).
32821 labelImageMarker: 'labelImageMarker',
32822
32823 // End a label (`]`).
32824 // Includes `labelMarker`.
32825 labelEnd: 'labelEnd',
32826
32827 // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).
32828 // Includes `label` and an optional `resource` or `reference`.
32829 link: 'link',
32830
32831 // Whole paragraph:
32832 //
32833 // ```markdown
32834 // alpha
32835 // bravo.
32836 // ```
32837 //
32838 // Includes text.
32839 paragraph: 'paragraph',
32840
32841 // A reference (`[alpha]` or `[]`).
32842 // Includes `referenceMarker` and an optional `referenceString`.
32843 reference: 'reference',
32844
32845 // A reference marker (`[` or `]`).
32846 referenceMarker: 'referenceMarker',
32847
32848 // Reference text (`alpha`).
32849 // Includes string.
32850 referenceString: 'referenceString',
32851
32852 // A resource (`(https://example.com "alpha")`).
32853 // Includes `resourceMarker`, an optional `resourceDestination` with an optional
32854 // `whitespace` and `resourceTitle`.
32855 resource: 'resource',
32856
32857 // A resource destination (`https://example.com`).
32858 // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.
32859 resourceDestination: 'resourceDestination',
32860
32861 // A literal resource destination (`<https://example.com>`).
32862 // Includes `resourceDestinationLiteralMarker` and optionally
32863 // `resourceDestinationString`.
32864 resourceDestinationLiteral: 'resourceDestinationLiteral',
32865
32866 // A resource destination marker (`<` or `>`).
32867 resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',
32868
32869 // A raw resource destination (`https://example.com`).
32870 // Includes `resourceDestinationString`.
32871 resourceDestinationRaw: 'resourceDestinationRaw',
32872
32873 // Resource destination text (`https://example.com`).
32874 // Includes string.
32875 resourceDestinationString: 'resourceDestinationString',
32876
32877 // A resource marker (`(` or `)`).
32878 resourceMarker: 'resourceMarker',
32879
32880 // A resource title (`"alpha"`, `'alpha'`, or `(alpha)`).
32881 // Includes `resourceTitleMarker` and optionally `resourceTitleString`.
32882 resourceTitle: 'resourceTitle',
32883
32884 // A resource title marker (`"`, `'`, `(`, or `)`).
32885 resourceTitleMarker: 'resourceTitleMarker',
32886
32887 // Resource destination title (`alpha`).
32888 // Includes string.
32889 resourceTitleString: 'resourceTitleString',
32890
32891 // Whole setext heading:
32892 //
32893 // ```markdown
32894 // alpha
32895 // bravo
32896 // =====
32897 // ```
32898 //
32899 // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and
32900 // `setextHeadingLine`.
32901 setextHeading: 'setextHeading',
32902
32903 // Content in a setext heading (`alpha\nbravo`).
32904 // Includes text.
32905 setextHeadingText: 'setextHeadingText',
32906
32907 // Underline in a setext heading, including whitespace suffix (`==`).
32908 // Includes `setextHeadingLineSequence`.
32909 setextHeadingLine: 'setextHeadingLine',
32910
32911 // Sequence of equals or dash characters in underline in a setext heading (`-`).
32912 setextHeadingLineSequence: 'setextHeadingLineSequence',
32913
32914 // Strong (`**alpha**`).
32915 // Includes `strongSequence` and `strongText`.
32916 strong: 'strong',
32917
32918 // Sequence of strong markers (`**` or `__`).
32919 strongSequence: 'strongSequence',
32920
32921 // Strong text (`alpha`).
32922 // Includes text.
32923 strongText: 'strongText',
32924
32925 // Whole thematic break:
32926 //
32927 // ```markdown
32928 // * * *
32929 // ```
32930 //
32931 // Includes `thematicBreakSequence` and `whitespace`.
32932 thematicBreak: 'thematicBreak',
32933
32934 // A sequence of one or more thematic break markers (`***`).
32935 thematicBreakSequence: 'thematicBreakSequence',
32936
32937 // Whole block quote:
32938 //
32939 // ```markdown
32940 // > a
32941 // >
32942 // > b
32943 // ```
32944 //
32945 // Includes `blockQuotePrefix` and flow.
32946 blockQuote: 'blockQuote',
32947 // The `>` or `> ` of a block quote.
32948 blockQuotePrefix: 'blockQuotePrefix',
32949 // The `>` of a block quote prefix.
32950 blockQuoteMarker: 'blockQuoteMarker',
32951 // The optional ` ` of a block quote prefix.
32952 blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',
32953
32954 // Whole unordered list:
32955 //
32956 // ```markdown
32957 // - a
32958 // b
32959 // ```
32960 //
32961 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32962 // lines.
32963 listOrdered: 'listOrdered',
32964
32965 // Whole ordered list:
32966 //
32967 // ```markdown
32968 // 1. a
32969 // b
32970 // ```
32971 //
32972 // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
32973 // lines.
32974 listUnordered: 'listUnordered',
32975
32976 // The indent of further list item lines.
32977 listItemIndent: 'listItemIndent',
32978
32979 // A marker, as in, `*`, `+`, `-`, `.`, or `)`.
32980 listItemMarker: 'listItemMarker',
32981
32982 // The thing that starts a list item, such as `1. `.
32983 // Includes `listItemValue` if ordered, `listItemMarker`, and
32984 // `listItemPrefixWhitespace` (unless followed by a line ending).
32985 listItemPrefix: 'listItemPrefix',
32986
32987 // The whitespace after a marker.
32988 listItemPrefixWhitespace: 'listItemPrefixWhitespace',
32989
32990 // The numerical value of an ordered item.
32991 listItemValue: 'listItemValue',
32992
32993 // Internal types used for subtokenizers, compiled away
32994 chunkDocument: 'chunkDocument',
32995 chunkContent: 'chunkContent',
32996 chunkFlow: 'chunkFlow',
32997 chunkText: 'chunkText',
32998 chunkString: 'chunkString'
32999 })
33000
33001
33002 /***/ }),
33003
33004 /***/ "../node_modules/micromark-util-symbol/values.js":
33005 /*!*******************************************************!*\
33006 !*** ../node_modules/micromark-util-symbol/values.js ***!
33007 \*******************************************************/
33008 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33009
33010 "use strict";
33011 __webpack_require__.r(__webpack_exports__);
33012 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33013 /* harmony export */ values: () => (/* binding */ values)
33014 /* harmony export */ });
33015 /**
33016 * This module is compiled away!
33017 *
33018 * While micromark works based on character codes, this module includes the
33019 * string versions of ’em.
33020 * The C0 block, except for LF, CR, HT, and w/ the replacement character added,
33021 * are available here.
33022 */
33023 const values = /** @type {const} */ ({
33024 ht: '\t',
33025 lf: '\n',
33026 cr: '\r',
33027 space: ' ',
33028 exclamationMark: '!',
33029 quotationMark: '"',
33030 numberSign: '#',
33031 dollarSign: '$',
33032 percentSign: '%',
33033 ampersand: '&',
33034 apostrophe: "'",
33035 leftParenthesis: '(',
33036 rightParenthesis: ')',
33037 asterisk: '*',
33038 plusSign: '+',
33039 comma: ',',
33040 dash: '-',
33041 dot: '.',
33042 slash: '/',
33043 digit0: '0',
33044 digit1: '1',
33045 digit2: '2',
33046 digit3: '3',
33047 digit4: '4',
33048 digit5: '5',
33049 digit6: '6',
33050 digit7: '7',
33051 digit8: '8',
33052 digit9: '9',
33053 colon: ':',
33054 semicolon: ';',
33055 lessThan: '<',
33056 equalsTo: '=',
33057 greaterThan: '>',
33058 questionMark: '?',
33059 atSign: '@',
33060 uppercaseA: 'A',
33061 uppercaseB: 'B',
33062 uppercaseC: 'C',
33063 uppercaseD: 'D',
33064 uppercaseE: 'E',
33065 uppercaseF: 'F',
33066 uppercaseG: 'G',
33067 uppercaseH: 'H',
33068 uppercaseI: 'I',
33069 uppercaseJ: 'J',
33070 uppercaseK: 'K',
33071 uppercaseL: 'L',
33072 uppercaseM: 'M',
33073 uppercaseN: 'N',
33074 uppercaseO: 'O',
33075 uppercaseP: 'P',
33076 uppercaseQ: 'Q',
33077 uppercaseR: 'R',
33078 uppercaseS: 'S',
33079 uppercaseT: 'T',
33080 uppercaseU: 'U',
33081 uppercaseV: 'V',
33082 uppercaseW: 'W',
33083 uppercaseX: 'X',
33084 uppercaseY: 'Y',
33085 uppercaseZ: 'Z',
33086 leftSquareBracket: '[',
33087 backslash: '\\',
33088 rightSquareBracket: ']',
33089 caret: '^',
33090 underscore: '_',
33091 graveAccent: '`',
33092 lowercaseA: 'a',
33093 lowercaseB: 'b',
33094 lowercaseC: 'c',
33095 lowercaseD: 'd',
33096 lowercaseE: 'e',
33097 lowercaseF: 'f',
33098 lowercaseG: 'g',
33099 lowercaseH: 'h',
33100 lowercaseI: 'i',
33101 lowercaseJ: 'j',
33102 lowercaseK: 'k',
33103 lowercaseL: 'l',
33104 lowercaseM: 'm',
33105 lowercaseN: 'n',
33106 lowercaseO: 'o',
33107 lowercaseP: 'p',
33108 lowercaseQ: 'q',
33109 lowercaseR: 'r',
33110 lowercaseS: 's',
33111 lowercaseT: 't',
33112 lowercaseU: 'u',
33113 lowercaseV: 'v',
33114 lowercaseW: 'w',
33115 lowercaseX: 'x',
33116 lowercaseY: 'y',
33117 lowercaseZ: 'z',
33118 leftCurlyBrace: '{',
33119 verticalBar: '|',
33120 rightCurlyBrace: '}',
33121 tilde: '~',
33122 replacementCharacter: ''
33123 })
33124
33125
33126 /***/ }),
33127
33128 /***/ "../node_modules/micromark/dev/lib/constructs.js":
33129 /*!*******************************************************!*\
33130 !*** ../node_modules/micromark/dev/lib/constructs.js ***!
33131 \*******************************************************/
33132 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33133
33134 "use strict";
33135 __webpack_require__.r(__webpack_exports__);
33136 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33137 /* harmony export */ attentionMarkers: () => (/* binding */ attentionMarkers),
33138 /* harmony export */ contentInitial: () => (/* binding */ contentInitial),
33139 /* harmony export */ disable: () => (/* binding */ disable),
33140 /* harmony export */ document: () => (/* binding */ document),
33141 /* harmony export */ flow: () => (/* binding */ flow),
33142 /* harmony export */ flowInitial: () => (/* binding */ flowInitial),
33143 /* harmony export */ insideSpan: () => (/* binding */ insideSpan),
33144 /* harmony export */ string: () => (/* binding */ string),
33145 /* harmony export */ text: () => (/* binding */ text)
33146 /* harmony export */ });
33147 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/list.js");
33148 /* 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");
33149 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/definition.js");
33150 /* 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");
33151 /* 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");
33152 /* 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");
33153 /* 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");
33154 /* 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");
33155 /* 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");
33156 /* 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");
33157 /* 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");
33158 /* 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");
33159 /* 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");
33160 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/attention.js");
33161 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/autolink.js");
33162 /* 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");
33163 /* 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");
33164 /* 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");
33165 /* 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");
33166 /* 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");
33167 /* 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");
33168 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
33169 /**
33170 * @typedef {import('micromark-util-types').Extension} Extension
33171 */
33172
33173
33174
33175
33176
33177 /** @satisfies {Extension['document']} */
33178 const document = {
33179 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33180 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.plusSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33181 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.dash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33182 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit0]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33183 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33184 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33185 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33186 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33187 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33188 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit6]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33189 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit7]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33190 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit8]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33191 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.digit9]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.list,
33192 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.greaterThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_2__.blockQuote
33193 }
33194
33195 /** @satisfies {Extension['contentInitial']} */
33196 const contentInitial = {
33197 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.definition
33198 }
33199
33200 /** @satisfies {Extension['flowInitial']} */
33201 const flowInitial = {
33202 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
33203 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented,
33204 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.space]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_4__.codeIndented
33205 }
33206
33207 /** @satisfies {Extension['flow']} */
33208 const flow = {
33209 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.numberSign]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_5__.headingAtx,
33210 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
33211 [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],
33212 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lessThan]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_8__.htmlFlow,
33213 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.equalsTo]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_7__.setextUnderline,
33214 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_6__.thematicBreak,
33215 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced,
33216 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.tilde]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_9__.codeFenced
33217 }
33218
33219 /** @satisfies {Extension['string']} */
33220 const string = {
33221 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
33222 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.backslash]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_11__.characterEscape
33223 }
33224
33225 /** @satisfies {Extension['text']} */
33226 const text = {
33227 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
33228 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
33229 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_12__.lineEnding,
33230 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.exclamationMark]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_13__.labelStartImage,
33231 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ampersand]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_10__.characterReference,
33232 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.asterisk]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
33233 [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],
33234 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.leftSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_17__.labelStartLink,
33235 [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],
33236 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.rightSquareBracket]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_19__.labelEnd,
33237 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.underscore]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention,
33238 [micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.graveAccent]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_20__.codeText
33239 }
33240
33241 /** @satisfies {Extension['insideSpan']} */
33242 const insideSpan = {null: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_14__.attention, _initialize_text_js__WEBPACK_IMPORTED_MODULE_21__.resolver]}
33243
33244 /** @satisfies {Extension['attentionMarkers']} */
33245 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]}
33246
33247 /** @satisfies {Extension['disable']} */
33248 const disable = {null: []}
33249
33250
33251 /***/ }),
33252
33253 /***/ "../node_modules/micromark/dev/lib/create-tokenizer.js":
33254 /*!*************************************************************!*\
33255 !*** ../node_modules/micromark/dev/lib/create-tokenizer.js ***!
33256 \*************************************************************/
33257 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33258
33259 "use strict";
33260 __webpack_require__.r(__webpack_exports__);
33261 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33262 /* harmony export */ createTokenizer: () => (/* binding */ createTokenizer)
33263 /* harmony export */ });
33264 /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "../node_modules/debug/src/browser.js");
33265 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33266 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
33267 /* 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");
33268 /* 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");
33269 /* 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");
33270 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33271 /**
33272 * @typedef {import('micromark-util-types').Chunk} Chunk
33273 * @typedef {import('micromark-util-types').Code} Code
33274 * @typedef {import('micromark-util-types').Construct} Construct
33275 * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord
33276 * @typedef {import('micromark-util-types').Effects} Effects
33277 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33278 * @typedef {import('micromark-util-types').ParseContext} ParseContext
33279 * @typedef {import('micromark-util-types').Point} Point
33280 * @typedef {import('micromark-util-types').State} State
33281 * @typedef {import('micromark-util-types').Token} Token
33282 * @typedef {import('micromark-util-types').TokenType} TokenType
33283 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33284 */
33285
33286 /**
33287 * @callback Restore
33288 * @returns {void}
33289 *
33290 * @typedef Info
33291 * @property {Restore} restore
33292 * @property {number} from
33293 *
33294 * @callback ReturnHandle
33295 * Handle a successful run.
33296 * @param {Construct} construct
33297 * @param {Info} info
33298 * @returns {void}
33299 */
33300
33301
33302
33303
33304
33305
33306
33307
33308
33309 const debug = debug__WEBPACK_IMPORTED_MODULE_0__('micromark')
33310
33311 /**
33312 * Create a tokenizer.
33313 * Tokenizers deal with one type of data (e.g., containers, flow, text).
33314 * The parser is the object dealing with it all.
33315 * `initialize` works like other constructs, except that only its `tokenize`
33316 * function is used, in which case it doesn’t receive an `ok` or `nok`.
33317 * `from` can be given to set the point before the first character, although
33318 * when further lines are indented, they must be set with `defineSkip`.
33319 *
33320 * @param {ParseContext} parser
33321 * @param {InitialConstruct} initialize
33322 * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]
33323 * @returns {TokenizeContext}
33324 */
33325 function createTokenizer(parser, initialize, from) {
33326 /** @type {Point} */
33327 let point = Object.assign(
33328 from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},
33329 {_index: 0, _bufferIndex: -1}
33330 )
33331 /** @type {Record<string, number>} */
33332 const columnStart = {}
33333 /** @type {Array<Construct>} */
33334 const resolveAllConstructs = []
33335 /** @type {Array<Chunk>} */
33336 let chunks = []
33337 /** @type {Array<Token>} */
33338 let stack = []
33339 /** @type {boolean | undefined} */
33340 let consumed = true
33341
33342 /**
33343 * Tools used for tokenizing.
33344 *
33345 * @type {Effects}
33346 */
33347 const effects = {
33348 consume,
33349 enter,
33350 exit,
33351 attempt: constructFactory(onsuccessfulconstruct),
33352 check: constructFactory(onsuccessfulcheck),
33353 interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})
33354 }
33355
33356 /**
33357 * State and tools for resolving and serializing.
33358 *
33359 * @type {TokenizeContext}
33360 */
33361 const context = {
33362 previous: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33363 code: micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof,
33364 containerState: {},
33365 events: [],
33366 parser,
33367 sliceStream,
33368 sliceSerialize,
33369 now,
33370 defineSkip,
33371 write
33372 }
33373
33374 /**
33375 * The state function.
33376 *
33377 * @type {State | void}
33378 */
33379 let state = initialize.tokenize.call(context, effects)
33380
33381 /**
33382 * Track which character we expect to be consumed, to catch bugs.
33383 *
33384 * @type {Code}
33385 */
33386 let expectedCode
33387
33388 if (initialize.resolveAll) {
33389 resolveAllConstructs.push(initialize)
33390 }
33391
33392 return context
33393
33394 /** @type {TokenizeContext['write']} */
33395 function write(slice) {
33396 chunks = (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.push)(chunks, slice)
33397
33398 main()
33399
33400 // Exit if we’re not done, resolve might change stuff.
33401 if (chunks[chunks.length - 1] !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.eof) {
33402 return []
33403 }
33404
33405 addResult(initialize, 0)
33406
33407 // Otherwise, resolve, and exit.
33408 context.events = (0,micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_4__.resolveAll)(resolveAllConstructs, context.events, context)
33409
33410 return context.events
33411 }
33412
33413 //
33414 // Tools.
33415 //
33416
33417 /** @type {TokenizeContext['sliceSerialize']} */
33418 function sliceSerialize(token, expandTabs) {
33419 return serializeChunks(sliceStream(token), expandTabs)
33420 }
33421
33422 /** @type {TokenizeContext['sliceStream']} */
33423 function sliceStream(token) {
33424 return sliceChunks(chunks, token)
33425 }
33426
33427 /** @type {TokenizeContext['now']} */
33428 function now() {
33429 // This is a hot path, so we clone manually instead of `Object.assign({}, point)`
33430 const {line, column, offset, _index, _bufferIndex} = point
33431 return {line, column, offset, _index, _bufferIndex}
33432 }
33433
33434 /** @type {TokenizeContext['defineSkip']} */
33435 function defineSkip(value) {
33436 columnStart[value.line] = value.column
33437 accountForPotentialSkip()
33438 debug('position: define skip: `%j`', point)
33439 }
33440
33441 //
33442 // State management.
33443 //
33444
33445 /**
33446 * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by
33447 * `consume`).
33448 * Here is where we walk through the chunks, which either include strings of
33449 * several characters, or numerical character codes.
33450 * The reason to do this in a loop instead of a call is so the stack can
33451 * drain.
33452 *
33453 * @returns {void}
33454 */
33455 function main() {
33456 /** @type {number} */
33457 let chunkIndex
33458
33459 while (point._index < chunks.length) {
33460 const chunk = chunks[point._index]
33461
33462 // If we’re in a buffer chunk, loop through it.
33463 if (typeof chunk === 'string') {
33464 chunkIndex = point._index
33465
33466 if (point._bufferIndex < 0) {
33467 point._bufferIndex = 0
33468 }
33469
33470 while (
33471 point._index === chunkIndex &&
33472 point._bufferIndex < chunk.length
33473 ) {
33474 go(chunk.charCodeAt(point._bufferIndex))
33475 }
33476 } else {
33477 go(chunk)
33478 }
33479 }
33480 }
33481
33482 /**
33483 * Deal with one code.
33484 *
33485 * @param {Code} code
33486 * @returns {void}
33487 */
33488 function go(code) {
33489 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(consumed === true, 'expected character to be consumed')
33490 consumed = undefined
33491 debug('main: passing `%s` to %s', code, state && state.name)
33492 expectedCode = code
33493 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof state === 'function', 'expected state')
33494 state = state(code)
33495 }
33496
33497 /** @type {Effects['consume']} */
33498 function consume(code) {
33499 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected given code to equal expected code')
33500
33501 debug('consume: `%s`', code)
33502
33503 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33504 consumed === undefined,
33505 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'
33506 )
33507 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33508 code === null
33509 ? context.events.length === 0 ||
33510 context.events[context.events.length - 1][0] === 'exit'
33511 : context.events[context.events.length - 1][0] === 'enter',
33512 'expected last token to be open'
33513 )
33514
33515 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
33516 point.line++
33517 point.column = 1
33518 point.offset += code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed ? 2 : 1
33519 accountForPotentialSkip()
33520 debug('position: after eol: `%j`', point)
33521 } else if (code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace) {
33522 point.column++
33523 point.offset++
33524 }
33525
33526 // Not in a string chunk.
33527 if (point._bufferIndex < 0) {
33528 point._index++
33529 } else {
33530 point._bufferIndex++
33531
33532 // At end of string chunk.
33533 // @ts-expect-error Points w/ non-negative `_bufferIndex` reference
33534 // strings.
33535 if (point._bufferIndex === chunks[point._index].length) {
33536 point._bufferIndex = -1
33537 point._index++
33538 }
33539 }
33540
33541 // Expose the previous character.
33542 context.previous = code
33543
33544 // Mark as consumed.
33545 consumed = true
33546 }
33547
33548 /** @type {Effects['enter']} */
33549 function enter(type, fields) {
33550 /** @type {Token} */
33551 // @ts-expect-error Patch instead of assign required fields to help GC.
33552 const token = fields || {}
33553 token.type = type
33554 token.start = now()
33555
33556 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33557 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33558 debug('enter: `%s`', type)
33559
33560 context.events.push(['enter', token, context])
33561
33562 stack.push(token)
33563
33564 return token
33565 }
33566
33567 /** @type {Effects['exit']} */
33568 function exit(type) {
33569 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof type === 'string', 'expected string type')
33570 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type.length > 0, 'expected non-empty string')
33571
33572 const token = stack.pop()
33573 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(token, 'cannot close w/o open tokens')
33574 token.end = now()
33575
33576 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(type === token.type, 'expected exit token to match current token')
33577
33578 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33579 !(
33580 token.start._index === token.end._index &&
33581 token.start._bufferIndex === token.end._bufferIndex
33582 ),
33583 'expected non-empty token (`' + type + '`)'
33584 )
33585
33586 debug('exit: `%s`', token.type)
33587 context.events.push(['exit', token, context])
33588
33589 return token
33590 }
33591
33592 /**
33593 * Use results.
33594 *
33595 * @type {ReturnHandle}
33596 */
33597 function onsuccessfulconstruct(construct, info) {
33598 addResult(construct, info.from)
33599 }
33600
33601 /**
33602 * Discard results.
33603 *
33604 * @type {ReturnHandle}
33605 */
33606 function onsuccessfulcheck(_, info) {
33607 info.restore()
33608 }
33609
33610 /**
33611 * Factory to attempt/check/interrupt.
33612 *
33613 * @param {ReturnHandle} onreturn
33614 * @param {{interrupt?: boolean | undefined} | undefined} [fields]
33615 */
33616 function constructFactory(onreturn, fields) {
33617 return hook
33618
33619 /**
33620 * Handle either an object mapping codes to constructs, a list of
33621 * constructs, or a single construct.
33622 *
33623 * @param {Array<Construct> | Construct | ConstructRecord} constructs
33624 * @param {State} returnState
33625 * @param {State | undefined} [bogusState]
33626 * @returns {State}
33627 */
33628 function hook(constructs, returnState, bogusState) {
33629 /** @type {Array<Construct>} */
33630 let listOfConstructs
33631 /** @type {number} */
33632 let constructIndex
33633 /** @type {Construct} */
33634 let currentConstruct
33635 /** @type {Info} */
33636 let info
33637
33638 return Array.isArray(constructs)
33639 ? /* c8 ignore next 1 */
33640 handleListOfConstructs(constructs)
33641 : 'tokenize' in constructs
33642 ? // @ts-expect-error Looks like a construct.
33643 handleListOfConstructs([constructs])
33644 : handleMapOfConstructs(constructs)
33645
33646 /**
33647 * Handle a list of construct.
33648 *
33649 * @param {ConstructRecord} map
33650 * @returns {State}
33651 */
33652 function handleMapOfConstructs(map) {
33653 return start
33654
33655 /** @type {State} */
33656 function start(code) {
33657 const def = code !== null && map[code]
33658 const all = code !== null && map.null
33659 const list = [
33660 // To do: add more extension tests.
33661 /* c8 ignore next 2 */
33662 ...(Array.isArray(def) ? def : def ? [def] : []),
33663 ...(Array.isArray(all) ? all : all ? [all] : [])
33664 ]
33665
33666 return handleListOfConstructs(list)(code)
33667 }
33668 }
33669
33670 /**
33671 * Handle a list of construct.
33672 *
33673 * @param {Array<Construct>} list
33674 * @returns {State}
33675 */
33676 function handleListOfConstructs(list) {
33677 listOfConstructs = list
33678 constructIndex = 0
33679
33680 if (list.length === 0) {
33681 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(bogusState, 'expected `bogusState` to be given')
33682 return bogusState
33683 }
33684
33685 return handleConstruct(list[constructIndex])
33686 }
33687
33688 /**
33689 * Handle a single construct.
33690 *
33691 * @param {Construct} construct
33692 * @returns {State}
33693 */
33694 function handleConstruct(construct) {
33695 return start
33696
33697 /** @type {State} */
33698 function start(code) {
33699 // To do: not needed to store if there is no bogus state, probably?
33700 // Currently doesn’t work because `inspect` in document does a check
33701 // w/o a bogus, which doesn’t make sense. But it does seem to help perf
33702 // by not storing.
33703 info = store()
33704 currentConstruct = construct
33705
33706 if (!construct.partial) {
33707 context.currentConstruct = construct
33708 }
33709
33710 // Always populated by defaults.
33711 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33712 context.parser.constructs.disable.null,
33713 'expected `disable.null` to be populated'
33714 )
33715
33716 if (
33717 construct.name &&
33718 context.parser.constructs.disable.null.includes(construct.name)
33719 ) {
33720 return nok(code)
33721 }
33722
33723 return construct.tokenize.call(
33724 // If we do have fields, create an object w/ `context` as its
33725 // prototype.
33726 // This allows a “live binding”, which is needed for `interrupt`.
33727 fields ? Object.assign(Object.create(context), fields) : context,
33728 effects,
33729 ok,
33730 nok
33731 )(code)
33732 }
33733 }
33734
33735 /** @type {State} */
33736 function ok(code) {
33737 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33738 consumed = true
33739 onreturn(currentConstruct, info)
33740 return returnState
33741 }
33742
33743 /** @type {State} */
33744 function nok(code) {
33745 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(code === expectedCode, 'expected code')
33746 consumed = true
33747 info.restore()
33748
33749 if (++constructIndex < listOfConstructs.length) {
33750 return handleConstruct(listOfConstructs[constructIndex])
33751 }
33752
33753 return bogusState
33754 }
33755 }
33756 }
33757
33758 /**
33759 * @param {Construct} construct
33760 * @param {number} from
33761 * @returns {void}
33762 */
33763 function addResult(construct, from) {
33764 if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {
33765 resolveAllConstructs.push(construct)
33766 }
33767
33768 if (construct.resolve) {
33769 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_3__.splice)(
33770 context.events,
33771 from,
33772 context.events.length - from,
33773 construct.resolve(context.events.slice(from), context)
33774 )
33775 }
33776
33777 if (construct.resolveTo) {
33778 context.events = construct.resolveTo(context.events, context)
33779 }
33780
33781 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(
33782 construct.partial ||
33783 context.events.length === 0 ||
33784 context.events[context.events.length - 1][0] === 'exit',
33785 'expected last token to end'
33786 )
33787 }
33788
33789 /**
33790 * Store state.
33791 *
33792 * @returns {Info}
33793 */
33794 function store() {
33795 const startPoint = now()
33796 const startPrevious = context.previous
33797 const startCurrentConstruct = context.currentConstruct
33798 const startEventsIndex = context.events.length
33799 const startStack = Array.from(stack)
33800
33801 return {restore, from: startEventsIndex}
33802
33803 /**
33804 * Restore state.
33805 *
33806 * @returns {void}
33807 */
33808 function restore() {
33809 point = startPoint
33810 context.previous = startPrevious
33811 context.currentConstruct = startCurrentConstruct
33812 context.events.length = startEventsIndex
33813 stack = startStack
33814 accountForPotentialSkip()
33815 debug('position: restore: `%j`', point)
33816 }
33817 }
33818
33819 /**
33820 * Move the current point a bit forward in the line when it’s on a column
33821 * skip.
33822 *
33823 * @returns {void}
33824 */
33825 function accountForPotentialSkip() {
33826 if (point.line in columnStart && point.column < 2) {
33827 point.column = columnStart[point.line]
33828 point.offset += columnStart[point.line] - 1
33829 }
33830 }
33831 }
33832
33833 /**
33834 * Get the chunks from a slice of chunks in the range of a token.
33835 *
33836 * @param {Array<Chunk>} chunks
33837 * @param {Pick<Token, 'end' | 'start'>} token
33838 * @returns {Array<Chunk>}
33839 */
33840 function sliceChunks(chunks, token) {
33841 const startIndex = token.start._index
33842 const startBufferIndex = token.start._bufferIndex
33843 const endIndex = token.end._index
33844 const endBufferIndex = token.end._bufferIndex
33845 /** @type {Array<Chunk>} */
33846 let view
33847
33848 if (startIndex === endIndex) {
33849 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(endBufferIndex > -1, 'expected non-negative end buffer index')
33850 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex > -1, 'expected non-negative start buffer index')
33851 // @ts-expect-error `_bufferIndex` is used on string chunks.
33852 view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]
33853 } else {
33854 view = chunks.slice(startIndex, endIndex)
33855
33856 if (startBufferIndex > -1) {
33857 const head = view[0]
33858 if (typeof head === 'string') {
33859 view[0] = head.slice(startBufferIndex)
33860 } else {
33861 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')
33862 view.shift()
33863 }
33864 }
33865
33866 if (endBufferIndex > 0) {
33867 // @ts-expect-error `_bufferIndex` is used on string chunks.
33868 view.push(chunks[endIndex].slice(0, endBufferIndex))
33869 }
33870 }
33871
33872 return view
33873 }
33874
33875 /**
33876 * Get the string value of a slice of chunks.
33877 *
33878 * @param {Array<Chunk>} chunks
33879 * @param {boolean | undefined} [expandTabs=false]
33880 * @returns {string}
33881 */
33882 function serializeChunks(chunks, expandTabs) {
33883 let index = -1
33884 /** @type {Array<string>} */
33885 const result = []
33886 /** @type {boolean | undefined} */
33887 let atTab
33888
33889 while (++index < chunks.length) {
33890 const chunk = chunks[index]
33891 /** @type {string} */
33892 let value
33893
33894 if (typeof chunk === 'string') {
33895 value = chunk
33896 } else
33897 switch (chunk) {
33898 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturn: {
33899 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr
33900
33901 break
33902 }
33903
33904 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.lineFeed: {
33905 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33906
33907 break
33908 }
33909
33910 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.carriageReturnLineFeed: {
33911 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.cr + micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.lf
33912
33913 break
33914 }
33915
33916 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab: {
33917 value = expandTabs ? micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space : micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.ht
33918
33919 break
33920 }
33921
33922 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.virtualSpace: {
33923 if (!expandTabs && atTab) continue
33924 value = micromark_util_symbol_values_js__WEBPACK_IMPORTED_MODULE_6__.values.space
33925
33926 break
33927 }
33928
33929 default: {
33930 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_1__.ok)(typeof chunk === 'number', 'expected number')
33931 // Currently only replacement character.
33932 value = String.fromCharCode(chunk)
33933 }
33934 }
33935
33936 atTab = chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_2__.codes.horizontalTab
33937 result.push(value)
33938 }
33939
33940 return result.join('')
33941 }
33942
33943
33944 /***/ }),
33945
33946 /***/ "../node_modules/micromark/dev/lib/initialize/content.js":
33947 /*!***************************************************************!*\
33948 !*** ../node_modules/micromark/dev/lib/initialize/content.js ***!
33949 \***************************************************************/
33950 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
33951
33952 "use strict";
33953 __webpack_require__.r(__webpack_exports__);
33954 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33955 /* harmony export */ content: () => (/* binding */ content)
33956 /* harmony export */ });
33957 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
33958 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
33959 /* 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");
33960 /* 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");
33961 /* 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");
33962 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
33963 /**
33964 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
33965 * @typedef {import('micromark-util-types').Initializer} Initializer
33966 * @typedef {import('micromark-util-types').State} State
33967 * @typedef {import('micromark-util-types').Token} Token
33968 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
33969 */
33970
33971
33972
33973
33974
33975
33976
33977
33978 /** @type {InitialConstruct} */
33979 const content = {tokenize: initializeContent}
33980
33981 /**
33982 * @this {TokenizeContext}
33983 * @type {Initializer}
33984 */
33985 function initializeContent(effects) {
33986 const contentStart = effects.attempt(
33987 this.parser.constructs.contentInitial,
33988 afterContentStartConstruct,
33989 paragraphInitial
33990 )
33991 /** @type {Token} */
33992 let previous
33993
33994 return contentStart
33995
33996 /** @type {State} */
33997 function afterContentStartConstruct(code) {
33998 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
33999 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
34000 'expected eol or eof'
34001 )
34002
34003 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34004 effects.consume(code)
34005 return
34006 }
34007
34008 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
34009 effects.consume(code)
34010 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.lineEnding)
34011 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_4__.factorySpace)(effects, contentStart, micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.linePrefix)
34012 }
34013
34014 /** @type {State} */
34015 function paragraphInitial(code) {
34016 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34017 code !== micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof && !(0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code),
34018 'expected anything other than a line ending or EOF'
34019 )
34020 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
34021 return lineStart(code)
34022 }
34023
34024 /** @type {State} */
34025 function lineStart(code) {
34026 const token = effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText, {
34027 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_5__.constants.contentTypeText,
34028 previous
34029 })
34030
34031 if (previous) {
34032 previous.next = token
34033 }
34034
34035 previous = token
34036
34037 return data(code)
34038 }
34039
34040 /** @type {State} */
34041 function data(code) {
34042 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34043 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
34044 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.paragraph)
34045 effects.consume(code)
34046 return
34047 }
34048
34049 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.markdownLineEnding)(code)) {
34050 effects.consume(code)
34051 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_3__.types.chunkText)
34052 return lineStart
34053 }
34054
34055 // Data.
34056 effects.consume(code)
34057 return data
34058 }
34059 }
34060
34061
34062 /***/ }),
34063
34064 /***/ "../node_modules/micromark/dev/lib/initialize/document.js":
34065 /*!****************************************************************!*\
34066 !*** ../node_modules/micromark/dev/lib/initialize/document.js ***!
34067 \****************************************************************/
34068 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34069
34070 "use strict";
34071 __webpack_require__.r(__webpack_exports__);
34072 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34073 /* harmony export */ document: () => (/* binding */ document)
34074 /* harmony export */ });
34075 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
34076 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
34077 /* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ "../node_modules/micromark-util-chunked/dev/index.js");
34078 /* 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");
34079 /* 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");
34080 /* 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");
34081 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34082 /**
34083 * @typedef {import('micromark-util-types').Construct} Construct
34084 * @typedef {import('micromark-util-types').ContainerState} ContainerState
34085 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34086 * @typedef {import('micromark-util-types').Initializer} Initializer
34087 * @typedef {import('micromark-util-types').Point} Point
34088 * @typedef {import('micromark-util-types').State} State
34089 * @typedef {import('micromark-util-types').Token} Token
34090 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34091 * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
34092 */
34093
34094 /**
34095 * @typedef {[Construct, ContainerState]} StackItem
34096 */
34097
34098
34099
34100
34101
34102
34103
34104
34105
34106 /** @type {InitialConstruct} */
34107 const document = {tokenize: initializeDocument}
34108
34109 /** @type {Construct} */
34110 const containerConstruct = {tokenize: tokenizeContainer}
34111
34112 /**
34113 * @this {TokenizeContext}
34114 * @type {Initializer}
34115 */
34116 function initializeDocument(effects) {
34117 const self = this
34118 /** @type {Array<StackItem>} */
34119 const stack = []
34120 let continued = 0
34121 /** @type {TokenizeContext | undefined} */
34122 let childFlow
34123 /** @type {Token | undefined} */
34124 let childToken
34125 /** @type {number} */
34126 let lineStartOffset
34127
34128 return start
34129
34130 /** @type {State} */
34131 function start(code) {
34132 // First we iterate through the open blocks, starting with the root
34133 // document, and descending through last children down to the last open
34134 // block.
34135 // Each block imposes a condition that the line must satisfy if the block is
34136 // to remain open.
34137 // For example, a block quote requires a `>` character.
34138 // A paragraph requires a non-blank line.
34139 // In this phase we may match all or just some of the open blocks.
34140 // But we cannot close unmatched blocks yet, because we may have a lazy
34141 // continuation line.
34142 if (continued < stack.length) {
34143 const item = stack[continued]
34144 self.containerState = item[1]
34145 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34146 item[0].continuation,
34147 'expected `continuation` to be defined on container construct'
34148 )
34149 return effects.attempt(
34150 item[0].continuation,
34151 documentContinue,
34152 checkNewContainers
34153 )(code)
34154 }
34155
34156 // Done.
34157 return checkNewContainers(code)
34158 }
34159
34160 /** @type {State} */
34161 function documentContinue(code) {
34162 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34163 self.containerState,
34164 'expected `containerState` to be defined after continuation'
34165 )
34166
34167 continued++
34168
34169 // Note: this field is called `_closeFlow` but it also closes containers.
34170 // Perhaps a good idea to rename it but it’s already used in the wild by
34171 // extensions.
34172 if (self.containerState._closeFlow) {
34173 self.containerState._closeFlow = undefined
34174
34175 if (childFlow) {
34176 closeFlow()
34177 }
34178
34179 // Note: this algorithm for moving events around is similar to the
34180 // algorithm when dealing with lazy lines in `writeToChild`.
34181 const indexBeforeExits = self.events.length
34182 let indexBeforeFlow = indexBeforeExits
34183 /** @type {Point | undefined} */
34184 let point
34185
34186 // Find the flow chunk.
34187 while (indexBeforeFlow--) {
34188 if (
34189 self.events[indexBeforeFlow][0] === 'exit' &&
34190 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
34191 ) {
34192 point = self.events[indexBeforeFlow][1].end
34193 break
34194 }
34195 }
34196
34197 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
34198
34199 exitContainers(continued)
34200
34201 // Fix positions.
34202 let index = indexBeforeExits
34203
34204 while (index < self.events.length) {
34205 self.events[index][1].end = Object.assign({}, point)
34206 index++
34207 }
34208
34209 // Inject the exits earlier (they’re still also at the end).
34210 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
34211 self.events,
34212 indexBeforeFlow + 1,
34213 0,
34214 self.events.slice(indexBeforeExits)
34215 )
34216
34217 // Discard the duplicate exits.
34218 self.events.length = index
34219
34220 return checkNewContainers(code)
34221 }
34222
34223 return start(code)
34224 }
34225
34226 /** @type {State} */
34227 function checkNewContainers(code) {
34228 // Next, after consuming the continuation markers for existing blocks, we
34229 // look for new block starts (e.g. `>` for a block quote).
34230 // If we encounter a new block start, we close any blocks unmatched in
34231 // step 1 before creating the new block as a child of the last matched
34232 // block.
34233 if (continued === stack.length) {
34234 // No need to `check` whether there’s a container, of `exitContainers`
34235 // would be moot.
34236 // We can instead immediately `attempt` to parse one.
34237 if (!childFlow) {
34238 return documentContinued(code)
34239 }
34240
34241 // If we have concrete content, such as block HTML or fenced code,
34242 // we can’t have containers “pierce” into them, so we can immediately
34243 // start.
34244 if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
34245 return flowStart(code)
34246 }
34247
34248 // If we do have flow, it could still be a blank line,
34249 // but we’d be interrupting it w/ a new container if there’s a current
34250 // construct.
34251 // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer
34252 // needed in micromark-extension-gfm-table@1.0.6).
34253 self.interrupt = Boolean(
34254 childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack
34255 )
34256 }
34257
34258 // Check if there is a new container.
34259 self.containerState = {}
34260 return effects.check(
34261 containerConstruct,
34262 thereIsANewContainer,
34263 thereIsNoNewContainer
34264 )(code)
34265 }
34266
34267 /** @type {State} */
34268 function thereIsANewContainer(code) {
34269 if (childFlow) closeFlow()
34270 exitContainers(continued)
34271 return documentContinued(code)
34272 }
34273
34274 /** @type {State} */
34275 function thereIsNoNewContainer(code) {
34276 self.parser.lazy[self.now().line] = continued !== stack.length
34277 lineStartOffset = self.now().offset
34278 return flowStart(code)
34279 }
34280
34281 /** @type {State} */
34282 function documentContinued(code) {
34283 // Try new containers.
34284 self.containerState = {}
34285 return effects.attempt(
34286 containerConstruct,
34287 containerContinue,
34288 flowStart
34289 )(code)
34290 }
34291
34292 /** @type {State} */
34293 function containerContinue(code) {
34294 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34295 self.currentConstruct,
34296 'expected `currentConstruct` to be defined on tokenizer'
34297 )
34298 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34299 self.containerState,
34300 'expected `containerState` to be defined on tokenizer'
34301 )
34302 continued++
34303 stack.push([self.currentConstruct, self.containerState])
34304 // Try another.
34305 return documentContinued(code)
34306 }
34307
34308 /** @type {State} */
34309 function flowStart(code) {
34310 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34311 if (childFlow) closeFlow()
34312 exitContainers(0)
34313 effects.consume(code)
34314 return
34315 }
34316
34317 childFlow = childFlow || self.parser.flow(self.now())
34318 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow, {
34319 contentType: micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.contentTypeFlow,
34320 previous: childToken,
34321 _tokenizer: childFlow
34322 })
34323
34324 return flowContinue(code)
34325 }
34326
34327 /** @type {State} */
34328 function flowContinue(code) {
34329 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof) {
34330 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow), true)
34331 exitContainers(0)
34332 effects.consume(code)
34333 return
34334 }
34335
34336 if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {
34337 effects.consume(code)
34338 writeToChild(effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow))
34339 // Get ready for the next line.
34340 continued = 0
34341 self.interrupt = undefined
34342 return start
34343 }
34344
34345 effects.consume(code)
34346 return flowContinue
34347 }
34348
34349 /**
34350 * @param {Token} token
34351 * @param {boolean | undefined} [eof]
34352 * @returns {void}
34353 */
34354 function writeToChild(token, eof) {
34355 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when continuing')
34356 const stream = self.sliceStream(token)
34357 if (eof) stream.push(null)
34358 token.previous = childToken
34359 if (childToken) childToken.next = token
34360 childToken = token
34361 childFlow.defineSkip(token.start)
34362 childFlow.write(stream)
34363
34364 // Alright, so we just added a lazy line:
34365 //
34366 // ```markdown
34367 // > a
34368 // b.
34369 //
34370 // Or:
34371 //
34372 // > ~~~c
34373 // d
34374 //
34375 // Or:
34376 //
34377 // > | e |
34378 // f
34379 // ```
34380 //
34381 // The construct in the second example (fenced code) does not accept lazy
34382 // lines, so it marked itself as done at the end of its first line, and
34383 // then the content construct parses `d`.
34384 // Most constructs in markdown match on the first line: if the first line
34385 // forms a construct, a non-lazy line can’t “unmake” it.
34386 //
34387 // The construct in the third example is potentially a GFM table, and
34388 // those are *weird*.
34389 // It *could* be a table, from the first line, if the following line
34390 // matches a condition.
34391 // In this case, that second line is lazy, which “unmakes” the first line
34392 // and turns the whole into one content block.
34393 //
34394 // We’ve now parsed the non-lazy and the lazy line, and can figure out
34395 // whether the lazy line started a new flow block.
34396 // If it did, we exit the current containers between the two flow blocks.
34397 if (self.parser.lazy[token.start.line]) {
34398 let index = childFlow.events.length
34399
34400 while (index--) {
34401 if (
34402 // The token starts before the line ending…
34403 childFlow.events[index][1].start.offset < lineStartOffset &&
34404 // …and either is not ended yet…
34405 (!childFlow.events[index][1].end ||
34406 // …or ends after it.
34407 childFlow.events[index][1].end.offset > lineStartOffset)
34408 ) {
34409 // Exit: there’s still something open, which means it’s a lazy line
34410 // part of something.
34411 return
34412 }
34413 }
34414
34415 // Note: this algorithm for moving events around is similar to the
34416 // algorithm when closing flow in `documentContinue`.
34417 const indexBeforeExits = self.events.length
34418 let indexBeforeFlow = indexBeforeExits
34419 /** @type {boolean | undefined} */
34420 let seen
34421 /** @type {Point | undefined} */
34422 let point
34423
34424 // Find the previous chunk (the one before the lazy line).
34425 while (indexBeforeFlow--) {
34426 if (
34427 self.events[indexBeforeFlow][0] === 'exit' &&
34428 self.events[indexBeforeFlow][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.chunkFlow
34429 ) {
34430 if (seen) {
34431 point = self.events[indexBeforeFlow][1].end
34432 break
34433 }
34434
34435 seen = true
34436 }
34437 }
34438
34439 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(point, 'could not find previous flow chunk')
34440
34441 exitContainers(continued)
34442
34443 // Fix positions.
34444 index = indexBeforeExits
34445
34446 while (index < self.events.length) {
34447 self.events[index][1].end = Object.assign({}, point)
34448 index++
34449 }
34450
34451 // Inject the exits earlier (they’re still also at the end).
34452 (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(
34453 self.events,
34454 indexBeforeFlow + 1,
34455 0,
34456 self.events.slice(indexBeforeExits)
34457 )
34458
34459 // Discard the duplicate exits.
34460 self.events.length = index
34461 }
34462 }
34463
34464 /**
34465 * @param {number} size
34466 * @returns {void}
34467 */
34468 function exitContainers(size) {
34469 let index = stack.length
34470
34471 // Exit open containers.
34472 while (index-- > size) {
34473 const entry = stack[index]
34474 self.containerState = entry[1]
34475 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34476 entry[0].exit,
34477 'expected `exit` to be defined on container construct'
34478 )
34479 entry[0].exit.call(self, effects)
34480 }
34481
34482 stack.length = size
34483 }
34484
34485 function closeFlow() {
34486 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34487 self.containerState,
34488 'expected `containerState` to be defined when closing flow'
34489 )
34490 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(childFlow, 'expected `childFlow` to be defined when closing it')
34491 childFlow.write([micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_3__.codes.eof])
34492 childToken = undefined
34493 childFlow = undefined
34494 self.containerState._closeFlow = undefined
34495 }
34496 }
34497
34498 /**
34499 * @this {TokenizeContext}
34500 * @type {Tokenizer}
34501 */
34502 function tokenizeContainer(effects, ok, nok) {
34503 // Always populated by defaults.
34504 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34505 this.parser.constructs.disable.null,
34506 'expected `disable.null` to be populated'
34507 )
34508 return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(
34509 effects,
34510 effects.attempt(this.parser.constructs.document, ok, nok),
34511 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_1__.types.linePrefix,
34512 this.parser.constructs.disable.null.includes('codeIndented')
34513 ? undefined
34514 : micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_4__.constants.tabSize
34515 )
34516 }
34517
34518
34519 /***/ }),
34520
34521 /***/ "../node_modules/micromark/dev/lib/initialize/flow.js":
34522 /*!************************************************************!*\
34523 !*** ../node_modules/micromark/dev/lib/initialize/flow.js ***!
34524 \************************************************************/
34525 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34526
34527 "use strict";
34528 __webpack_require__.r(__webpack_exports__);
34529 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34530 /* harmony export */ flow: () => (/* binding */ flow)
34531 /* harmony export */ });
34532 /* 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");
34533 /* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-core-commonmark */ "../node_modules/micromark-core-commonmark/dev/lib/content.js");
34534 /* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ "../node_modules/micromark-factory-space/dev/index.js");
34535 /* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-character */ "../node_modules/micromark-util-character/dev/index.js");
34536 /* 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");
34537 /* 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");
34538 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34539 /**
34540 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34541 * @typedef {import('micromark-util-types').Initializer} Initializer
34542 * @typedef {import('micromark-util-types').State} State
34543 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34544 */
34545
34546
34547
34548
34549
34550
34551
34552
34553 /** @type {InitialConstruct} */
34554 const flow = {tokenize: initializeFlow}
34555
34556 /**
34557 * @this {TokenizeContext}
34558 * @type {Initializer}
34559 */
34560 function initializeFlow(effects) {
34561 const self = this
34562 const initial = effects.attempt(
34563 // Try to parse a blank line.
34564 micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_1__.blankLine,
34565 atBlankEnding,
34566 // Try to parse initial flow (essentially, only code).
34567 effects.attempt(
34568 this.parser.constructs.flowInitial,
34569 afterConstruct,
34570 (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__.factorySpace)(
34571 effects,
34572 effects.attempt(
34573 this.parser.constructs.flow,
34574 afterConstruct,
34575 effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_3__.content, afterConstruct)
34576 ),
34577 micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.linePrefix
34578 )
34579 )
34580 )
34581
34582 return initial
34583
34584 /** @type {State} */
34585 function atBlankEnding(code) {
34586 ;(0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34587 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34588 'expected eol or eof'
34589 )
34590
34591 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34592 effects.consume(code)
34593 return
34594 }
34595
34596 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34597 effects.consume(code)
34598 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEndingBlank)
34599 self.currentConstruct = undefined
34600 return initial
34601 }
34602
34603 /** @type {State} */
34604 function afterConstruct(code) {
34605 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(
34606 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_6__.markdownLineEnding)(code),
34607 'expected eol or eof'
34608 )
34609
34610 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_5__.codes.eof) {
34611 effects.consume(code)
34612 return
34613 }
34614
34615 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34616 effects.consume(code)
34617 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_4__.types.lineEnding)
34618 self.currentConstruct = undefined
34619 return initial
34620 }
34621 }
34622
34623
34624 /***/ }),
34625
34626 /***/ "../node_modules/micromark/dev/lib/initialize/text.js":
34627 /*!************************************************************!*\
34628 !*** ../node_modules/micromark/dev/lib/initialize/text.js ***!
34629 \************************************************************/
34630 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34631
34632 "use strict";
34633 __webpack_require__.r(__webpack_exports__);
34634 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34635 /* harmony export */ resolver: () => (/* binding */ resolver),
34636 /* harmony export */ string: () => (/* binding */ string),
34637 /* harmony export */ text: () => (/* binding */ text)
34638 /* harmony export */ });
34639 /* 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");
34640 /* 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");
34641 /* 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");
34642 /* harmony import */ var uvu_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uvu/assert */ "../node_modules/uvu/assert/index.mjs");
34643 /**
34644 * @typedef {import('micromark-util-types').Code} Code
34645 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34646 * @typedef {import('micromark-util-types').Initializer} Initializer
34647 * @typedef {import('micromark-util-types').Resolver} Resolver
34648 * @typedef {import('micromark-util-types').State} State
34649 * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34650 */
34651
34652
34653
34654
34655
34656
34657 const resolver = {resolveAll: createResolver()}
34658 const string = initializeFactory('string')
34659 const text = initializeFactory('text')
34660
34661 /**
34662 * @param {'string' | 'text'} field
34663 * @returns {InitialConstruct}
34664 */
34665 function initializeFactory(field) {
34666 return {
34667 tokenize: initializeText,
34668 resolveAll: createResolver(
34669 field === 'text' ? resolveAllLineSuffixes : undefined
34670 )
34671 }
34672
34673 /**
34674 * @this {TokenizeContext}
34675 * @type {Initializer}
34676 */
34677 function initializeText(effects) {
34678 const self = this
34679 const constructs = this.parser.constructs[field]
34680 const text = effects.attempt(constructs, start, notText)
34681
34682 return start
34683
34684 /** @type {State} */
34685 function start(code) {
34686 return atBreak(code) ? text(code) : notText(code)
34687 }
34688
34689 /** @type {State} */
34690 function notText(code) {
34691 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34692 effects.consume(code)
34693 return
34694 }
34695
34696 effects.enter(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34697 effects.consume(code)
34698 return data
34699 }
34700
34701 /** @type {State} */
34702 function data(code) {
34703 if (atBreak(code)) {
34704 effects.exit(micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data)
34705 return text(code)
34706 }
34707
34708 // Data.
34709 effects.consume(code)
34710 return data
34711 }
34712
34713 /**
34714 * @param {Code} code
34715 * @returns {boolean}
34716 */
34717 function atBreak(code) {
34718 if (code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.eof) {
34719 return true
34720 }
34721
34722 const list = constructs[code]
34723 let index = -1
34724
34725 if (list) {
34726 // Always populated by defaults.
34727 (0,uvu_assert__WEBPACK_IMPORTED_MODULE_0__.ok)(Array.isArray(list), 'expected `disable.null` to be populated')
34728
34729 while (++index < list.length) {
34730 const item = list[index]
34731 if (!item.previous || item.previous.call(self, self.previous)) {
34732 return true
34733 }
34734 }
34735 }
34736
34737 return false
34738 }
34739 }
34740 }
34741
34742 /**
34743 * @param {Resolver | undefined} [extraResolver]
34744 * @returns {Resolver}
34745 */
34746 function createResolver(extraResolver) {
34747 return resolveAllText
34748
34749 /** @type {Resolver} */
34750 function resolveAllText(events, context) {
34751 let index = -1
34752 /** @type {number | undefined} */
34753 let enter
34754
34755 // A rather boring computation (to merge adjacent `data` events) which
34756 // improves mm performance by 29%.
34757 while (++index <= events.length) {
34758 if (enter === undefined) {
34759 if (events[index] && events[index][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34760 enter = index
34761 index++
34762 }
34763 } else if (!events[index] || events[index][1].type !== micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data) {
34764 // Don’t do anything if there is one data token.
34765 if (index !== enter + 2) {
34766 events[enter][1].end = events[index - 1][1].end
34767 events.splice(enter + 2, index - enter - 2)
34768 index = enter + 2
34769 }
34770
34771 enter = undefined
34772 }
34773 }
34774
34775 return extraResolver ? extraResolver(events, context) : events
34776 }
34777 }
34778
34779 /**
34780 * A rather ugly set of instructions which again looks at chunks in the input
34781 * stream.
34782 * The reason to do this here is that it is *much* faster to parse in reverse.
34783 * And that we can’t hook into `null` to split the line suffix before an EOF.
34784 * To do: figure out if we can make this into a clean utility, or even in core.
34785 * As it will be useful for GFMs literal autolink extension (and maybe even
34786 * tables?)
34787 *
34788 * @type {Resolver}
34789 */
34790 function resolveAllLineSuffixes(events, context) {
34791 let eventIndex = 0 // Skip first.
34792
34793 while (++eventIndex <= events.length) {
34794 if (
34795 (eventIndex === events.length ||
34796 events[eventIndex][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineEnding) &&
34797 events[eventIndex - 1][1].type === micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.data
34798 ) {
34799 const data = events[eventIndex - 1][1]
34800 const chunks = context.sliceStream(data)
34801 let index = chunks.length
34802 let bufferIndex = -1
34803 let size = 0
34804 /** @type {boolean | undefined} */
34805 let tabs
34806
34807 while (index--) {
34808 const chunk = chunks[index]
34809
34810 if (typeof chunk === 'string') {
34811 bufferIndex = chunk.length
34812
34813 while (chunk.charCodeAt(bufferIndex - 1) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.space) {
34814 size++
34815 bufferIndex--
34816 }
34817
34818 if (bufferIndex) break
34819 bufferIndex = -1
34820 }
34821 // Number
34822 else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.horizontalTab) {
34823 tabs = true
34824 size++
34825 } else if (chunk === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_1__.codes.virtualSpace) {
34826 // Empty
34827 } else {
34828 // Replacement character, exit.
34829 index++
34830 break
34831 }
34832 }
34833
34834 if (size) {
34835 const token = {
34836 type:
34837 eventIndex === events.length ||
34838 tabs ||
34839 size < micromark_util_symbol_constants_js__WEBPACK_IMPORTED_MODULE_3__.constants.hardBreakPrefixSizeMin
34840 ? micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.lineSuffix
34841 : micromark_util_symbol_types_js__WEBPACK_IMPORTED_MODULE_2__.types.hardBreakTrailing,
34842 start: {
34843 line: data.end.line,
34844 column: data.end.column - size,
34845 offset: data.end.offset - size,
34846 _index: data.start._index + index,
34847 _bufferIndex: index
34848 ? bufferIndex
34849 : data.start._bufferIndex + bufferIndex
34850 },
34851 end: Object.assign({}, data.end)
34852 }
34853
34854 data.end = Object.assign({}, token.start)
34855
34856 if (data.start.offset === data.end.offset) {
34857 Object.assign(data, token)
34858 } else {
34859 events.splice(
34860 eventIndex,
34861 0,
34862 ['enter', token, context],
34863 ['exit', token, context]
34864 )
34865 eventIndex += 2
34866 }
34867 }
34868
34869 eventIndex++
34870 }
34871 }
34872
34873 return events
34874 }
34875
34876
34877 /***/ }),
34878
34879 /***/ "../node_modules/micromark/dev/lib/parse.js":
34880 /*!**************************************************!*\
34881 !*** ../node_modules/micromark/dev/lib/parse.js ***!
34882 \**************************************************/
34883 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34884
34885 "use strict";
34886 __webpack_require__.r(__webpack_exports__);
34887 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34888 /* harmony export */ parse: () => (/* binding */ parse)
34889 /* harmony export */ });
34890 /* 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");
34891 /* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/content.js */ "../node_modules/micromark/dev/lib/initialize/content.js");
34892 /* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/document.js */ "../node_modules/micromark/dev/lib/initialize/document.js");
34893 /* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/flow.js */ "../node_modules/micromark/dev/lib/initialize/flow.js");
34894 /* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./initialize/text.js */ "../node_modules/micromark/dev/lib/initialize/text.js");
34895 /* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-tokenizer.js */ "../node_modules/micromark/dev/lib/create-tokenizer.js");
34896 /* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructs.js */ "../node_modules/micromark/dev/lib/constructs.js");
34897 /**
34898 * @typedef {import('micromark-util-types').Create} Create
34899 * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
34900 * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
34901 * @typedef {import('micromark-util-types').ParseContext} ParseContext
34902 * @typedef {import('micromark-util-types').ParseOptions} ParseOptions
34903 */
34904
34905
34906
34907
34908
34909
34910
34911
34912
34913 /**
34914 * @param {ParseOptions | null | undefined} [options]
34915 * @returns {ParseContext}
34916 */
34917 function parse(options) {
34918 const settings = options || {}
34919 const constructs = /** @type {FullNormalizedExtension} */ (
34920 (0,micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions)([_constructs_js__WEBPACK_IMPORTED_MODULE_1__, ...(settings.extensions || [])])
34921 )
34922
34923 /** @type {ParseContext} */
34924 const parser = {
34925 defined: [],
34926 lazy: {},
34927 constructs,
34928 content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_2__.content),
34929 document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_3__.document),
34930 flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_4__.flow),
34931 string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.string),
34932 text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_5__.text)
34933 }
34934
34935 return parser
34936
34937 /**
34938 * @param {InitialConstruct} initial
34939 */
34940 function create(initial) {
34941 return creator
34942 /** @type {Create} */
34943 function creator(from) {
34944 return (0,_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_6__.createTokenizer)(parser, initial, from)
34945 }
34946 }
34947 }
34948
34949
34950 /***/ }),
34951
34952 /***/ "../node_modules/micromark/dev/lib/postprocess.js":
34953 /*!********************************************************!*\
34954 !*** ../node_modules/micromark/dev/lib/postprocess.js ***!
34955 \********************************************************/
34956 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34957
34958 "use strict";
34959 __webpack_require__.r(__webpack_exports__);
34960 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34961 /* harmony export */ postprocess: () => (/* binding */ postprocess)
34962 /* harmony export */ });
34963 /* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ "../node_modules/micromark-util-subtokenize/dev/index.js");
34964 /**
34965 * @typedef {import('micromark-util-types').Event} Event
34966 */
34967
34968
34969
34970 /**
34971 * @param {Array<Event>} events
34972 * @returns {Array<Event>}
34973 */
34974 function postprocess(events) {
34975 while (!(0,micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__.subtokenize)(events)) {
34976 // Empty
34977 }
34978
34979 return events
34980 }
34981
34982
34983 /***/ }),
34984
34985 /***/ "../node_modules/micromark/dev/lib/preprocess.js":
34986 /*!*******************************************************!*\
34987 !*** ../node_modules/micromark/dev/lib/preprocess.js ***!
34988 \*******************************************************/
34989 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
34990
34991 "use strict";
34992 __webpack_require__.r(__webpack_exports__);
34993 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34994 /* harmony export */ preprocess: () => (/* binding */ preprocess)
34995 /* harmony export */ });
34996 /* 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");
34997 /* 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");
34998 /**
34999 * @typedef {import('micromark-util-types').Chunk} Chunk
35000 * @typedef {import('micromark-util-types').Code} Code
35001 * @typedef {import('micromark-util-types').Encoding} Encoding
35002 * @typedef {import('micromark-util-types').Value} Value
35003 */
35004
35005 /**
35006 * @callback Preprocessor
35007 * @param {Value} value
35008 * @param {Encoding | null | undefined} [encoding]
35009 * @param {boolean | null | undefined} [end=false]
35010 * @returns {Array<Chunk>}
35011 */
35012
35013
35014
35015
35016 const search = /[\0\t\n\r]/g
35017
35018 /**
35019 * @returns {Preprocessor}
35020 */
35021 function preprocess() {
35022 let column = 1
35023 let buffer = ''
35024 /** @type {boolean | undefined} */
35025 let start = true
35026 /** @type {boolean | undefined} */
35027 let atCarriageReturn
35028
35029 return preprocessor
35030
35031 /** @type {Preprocessor} */
35032 function preprocessor(value, encoding, end) {
35033 /** @type {Array<Chunk>} */
35034 const chunks = []
35035 /** @type {RegExpMatchArray | null} */
35036 let match
35037 /** @type {number} */
35038 let next
35039 /** @type {number} */
35040 let startPosition
35041 /** @type {number} */
35042 let endPosition
35043 /** @type {Code} */
35044 let code
35045
35046 // @ts-expect-error `Buffer` does allow an encoding.
35047 value = buffer + value.toString(encoding)
35048 startPosition = 0
35049 buffer = ''
35050
35051 if (start) {
35052 // To do: `markdown-rs` actually parses BOMs (byte order mark).
35053 if (value.charCodeAt(0) === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.byteOrderMarker) {
35054 startPosition++
35055 }
35056
35057 start = undefined
35058 }
35059
35060 while (startPosition < value.length) {
35061 search.lastIndex = startPosition
35062 match = search.exec(value)
35063 endPosition =
35064 match && match.index !== undefined ? match.index : value.length
35065 code = value.charCodeAt(endPosition)
35066
35067 if (!match) {
35068 buffer = value.slice(startPosition)
35069 break
35070 }
35071
35072 if (
35073 code === micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf &&
35074 startPosition === endPosition &&
35075 atCarriageReturn
35076 ) {
35077 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturnLineFeed)
35078 atCarriageReturn = undefined
35079 } else {
35080 if (atCarriageReturn) {
35081 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
35082 atCarriageReturn = undefined
35083 }
35084
35085 if (startPosition < endPosition) {
35086 chunks.push(value.slice(startPosition, endPosition))
35087 column += endPosition - startPosition
35088 }
35089
35090 switch (code) {
35091 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.nul: {
35092 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.replacementCharacter)
35093 column++
35094
35095 break
35096 }
35097
35098 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.ht: {
35099 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
35100 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.horizontalTab)
35101 while (column++ < next) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.virtualSpace)
35102
35103 break
35104 }
35105
35106 case micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lf: {
35107 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.lineFeed)
35108 column = 1
35109
35110 break
35111 }
35112
35113 default: {
35114 atCarriageReturn = true
35115 column = 1
35116 }
35117 }
35118 }
35119
35120 startPosition = endPosition + 1
35121 }
35122
35123 if (end) {
35124 if (atCarriageReturn) chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.carriageReturn)
35125 if (buffer) chunks.push(buffer)
35126 chunks.push(micromark_util_symbol_codes_js__WEBPACK_IMPORTED_MODULE_0__.codes.eof)
35127 }
35128
35129 return chunks
35130 }
35131 }
35132
35133
35134 /***/ }),
35135
35136 /***/ "../node_modules/property-information/index.js":
35137 /*!*****************************************************!*\
35138 !*** ../node_modules/property-information/index.js ***!
35139 \*****************************************************/
35140 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35141
35142 "use strict";
35143 __webpack_require__.r(__webpack_exports__);
35144 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35145 /* harmony export */ find: () => (/* reexport safe */ _lib_find_js__WEBPACK_IMPORTED_MODULE_0__.find),
35146 /* harmony export */ hastToReact: () => (/* reexport safe */ _lib_hast_to_react_js__WEBPACK_IMPORTED_MODULE_1__.hastToReact),
35147 /* harmony export */ html: () => (/* binding */ html),
35148 /* harmony export */ normalize: () => (/* reexport safe */ _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__.normalize),
35149 /* harmony export */ svg: () => (/* binding */ svg)
35150 /* harmony export */ });
35151 /* 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");
35152 /* harmony import */ var _lib_xlink_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/xlink.js */ "../node_modules/property-information/lib/xlink.js");
35153 /* harmony import */ var _lib_xml_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/xml.js */ "../node_modules/property-information/lib/xml.js");
35154 /* harmony import */ var _lib_xmlns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/xmlns.js */ "../node_modules/property-information/lib/xmlns.js");
35155 /* harmony import */ var _lib_aria_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/aria.js */ "../node_modules/property-information/lib/aria.js");
35156 /* harmony import */ var _lib_html_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/html.js */ "../node_modules/property-information/lib/html.js");
35157 /* harmony import */ var _lib_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/svg.js */ "../node_modules/property-information/lib/svg.js");
35158 /* harmony import */ var _lib_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/find.js */ "../node_modules/property-information/lib/find.js");
35159 /* 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");
35160 /* harmony import */ var _lib_normalize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/normalize.js */ "../node_modules/property-information/lib/normalize.js");
35161 /**
35162 * @typedef {import('./lib/util/info.js').Info} Info
35163 * @typedef {import('./lib/util/schema.js').Schema} Schema
35164 */
35165
35166
35167
35168
35169
35170
35171
35172
35173
35174
35175
35176
35177 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')
35178 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')
35179
35180
35181 /***/ }),
35182
35183 /***/ "../node_modules/property-information/lib/aria.js":
35184 /*!********************************************************!*\
35185 !*** ../node_modules/property-information/lib/aria.js ***!
35186 \********************************************************/
35187 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35188
35189 "use strict";
35190 __webpack_require__.r(__webpack_exports__);
35191 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35192 /* harmony export */ aria: () => (/* binding */ aria)
35193 /* harmony export */ });
35194 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35195 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35196
35197
35198
35199 const aria = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35200 transform(_, prop) {
35201 return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()
35202 },
35203 properties: {
35204 ariaActiveDescendant: null,
35205 ariaAtomic: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35206 ariaAutoComplete: null,
35207 ariaBusy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35208 ariaChecked: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35209 ariaColCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35210 ariaColIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35211 ariaColSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35212 ariaControls: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35213 ariaCurrent: null,
35214 ariaDescribedBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35215 ariaDetails: null,
35216 ariaDisabled: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35217 ariaDropEffect: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35218 ariaErrorMessage: null,
35219 ariaExpanded: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35220 ariaFlowTo: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35221 ariaGrabbed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35222 ariaHasPopup: null,
35223 ariaHidden: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35224 ariaInvalid: null,
35225 ariaKeyShortcuts: null,
35226 ariaLabel: null,
35227 ariaLabelledBy: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35228 ariaLevel: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35229 ariaLive: null,
35230 ariaModal: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35231 ariaMultiLine: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35232 ariaMultiSelectable: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35233 ariaOrientation: null,
35234 ariaOwns: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35235 ariaPlaceholder: null,
35236 ariaPosInSet: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35237 ariaPressed: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35238 ariaReadOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35239 ariaRelevant: null,
35240 ariaRequired: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35241 ariaRoleDescription: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.spaceSeparated,
35242 ariaRowCount: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35243 ariaRowIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35244 ariaRowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35245 ariaSelected: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.booleanish,
35246 ariaSetSize: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35247 ariaSort: null,
35248 ariaValueMax: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35249 ariaValueMin: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35250 ariaValueNow: _util_types_js__WEBPACK_IMPORTED_MODULE_1__.number,
35251 ariaValueText: null,
35252 role: null
35253 }
35254 })
35255
35256
35257 /***/ }),
35258
35259 /***/ "../node_modules/property-information/lib/find.js":
35260 /*!********************************************************!*\
35261 !*** ../node_modules/property-information/lib/find.js ***!
35262 \********************************************************/
35263 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35264
35265 "use strict";
35266 __webpack_require__.r(__webpack_exports__);
35267 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35268 /* harmony export */ find: () => (/* binding */ find)
35269 /* harmony export */ });
35270 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalize.js */ "../node_modules/property-information/lib/normalize.js");
35271 /* 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");
35272 /* harmony import */ var _util_info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/info.js */ "../node_modules/property-information/lib/util/info.js");
35273 /**
35274 * @typedef {import('./util/schema.js').Schema} Schema
35275 */
35276
35277
35278
35279
35280
35281 const valid = /^data[-\w.:]+$/i
35282 const dash = /-[a-z]/g
35283 const cap = /[A-Z]/g
35284
35285 /**
35286 * @param {Schema} schema
35287 * @param {string} value
35288 * @returns {Info}
35289 */
35290 function find(schema, value) {
35291 const normal = (0,_normalize_js__WEBPACK_IMPORTED_MODULE_0__.normalize)(value)
35292 let prop = value
35293 let Type = _util_info_js__WEBPACK_IMPORTED_MODULE_1__.Info
35294
35295 if (normal in schema.normal) {
35296 return schema.property[schema.normal[normal]]
35297 }
35298
35299 if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {
35300 // Attribute or property.
35301 if (value.charAt(4) === '-') {
35302 // Turn it into a property.
35303 const rest = value.slice(5).replace(dash, camelcase)
35304 prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)
35305 } else {
35306 // Turn it into an attribute.
35307 const rest = value.slice(4)
35308
35309 if (!dash.test(rest)) {
35310 let dashes = rest.replace(cap, kebab)
35311
35312 if (dashes.charAt(0) !== '-') {
35313 dashes = '-' + dashes
35314 }
35315
35316 value = 'data' + dashes
35317 }
35318 }
35319
35320 Type = _util_defined_info_js__WEBPACK_IMPORTED_MODULE_2__.DefinedInfo
35321 }
35322
35323 return new Type(prop, value)
35324 }
35325
35326 /**
35327 * @param {string} $0
35328 * @returns {string}
35329 */
35330 function kebab($0) {
35331 return '-' + $0.toLowerCase()
35332 }
35333
35334 /**
35335 * @param {string} $0
35336 * @returns {string}
35337 */
35338 function camelcase($0) {
35339 return $0.charAt(1).toUpperCase()
35340 }
35341
35342
35343 /***/ }),
35344
35345 /***/ "../node_modules/property-information/lib/hast-to-react.js":
35346 /*!*****************************************************************!*\
35347 !*** ../node_modules/property-information/lib/hast-to-react.js ***!
35348 \*****************************************************************/
35349 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35350
35351 "use strict";
35352 __webpack_require__.r(__webpack_exports__);
35353 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35354 /* harmony export */ hastToReact: () => (/* binding */ hastToReact)
35355 /* harmony export */ });
35356 /**
35357 * `hast` is close to `React`, but differs in a couple of cases.
35358 *
35359 * To get a React property from a hast property, check if it is in
35360 * `hastToReact`, if it is, then use the corresponding value,
35361 * otherwise, use the hast property.
35362 *
35363 * @type {Record<string, string>}
35364 */
35365 const hastToReact = {
35366 classId: 'classID',
35367 dataType: 'datatype',
35368 itemId: 'itemID',
35369 strokeDashArray: 'strokeDasharray',
35370 strokeDashOffset: 'strokeDashoffset',
35371 strokeLineCap: 'strokeLinecap',
35372 strokeLineJoin: 'strokeLinejoin',
35373 strokeMiterLimit: 'strokeMiterlimit',
35374 typeOf: 'typeof',
35375 xLinkActuate: 'xlinkActuate',
35376 xLinkArcRole: 'xlinkArcrole',
35377 xLinkHref: 'xlinkHref',
35378 xLinkRole: 'xlinkRole',
35379 xLinkShow: 'xlinkShow',
35380 xLinkTitle: 'xlinkTitle',
35381 xLinkType: 'xlinkType',
35382 xmlnsXLink: 'xmlnsXlink'
35383 }
35384
35385
35386 /***/ }),
35387
35388 /***/ "../node_modules/property-information/lib/html.js":
35389 /*!********************************************************!*\
35390 !*** ../node_modules/property-information/lib/html.js ***!
35391 \********************************************************/
35392 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35393
35394 "use strict";
35395 __webpack_require__.r(__webpack_exports__);
35396 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35397 /* harmony export */ html: () => (/* binding */ html)
35398 /* harmony export */ });
35399 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35400 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35401 /* 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");
35402
35403
35404
35405
35406 const html = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35407 space: 'html',
35408 attributes: {
35409 acceptcharset: 'accept-charset',
35410 classname: 'class',
35411 htmlfor: 'for',
35412 httpequiv: 'http-equiv'
35413 },
35414 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
35415 mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],
35416 properties: {
35417 // Standard Properties.
35418 abbr: null,
35419 accept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35420 acceptCharset: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35421 accessKey: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35422 action: null,
35423 allow: null,
35424 allowFullScreen: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35425 allowPaymentRequest: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35426 allowUserMedia: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35427 alt: null,
35428 as: null,
35429 async: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35430 autoCapitalize: null,
35431 autoComplete: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35432 autoFocus: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35433 autoPlay: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35434 capture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35435 charSet: null,
35436 checked: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35437 cite: null,
35438 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35439 cols: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35440 colSpan: null,
35441 content: null,
35442 contentEditable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35443 controls: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35444 controlsList: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35445 coords: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number | _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
35446 crossOrigin: null,
35447 data: null,
35448 dateTime: null,
35449 decoding: null,
35450 default: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35451 defer: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35452 dir: null,
35453 dirName: null,
35454 disabled: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35455 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.overloadedBoolean,
35456 draggable: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35457 encType: null,
35458 enterKeyHint: null,
35459 form: null,
35460 formAction: null,
35461 formEncType: null,
35462 formMethod: null,
35463 formNoValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35464 formTarget: null,
35465 headers: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35466 height: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35467 hidden: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35468 high: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35469 href: null,
35470 hrefLang: null,
35471 htmlFor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35472 httpEquiv: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35473 id: null,
35474 imageSizes: null,
35475 imageSrcSet: null,
35476 inputMode: null,
35477 integrity: null,
35478 is: null,
35479 isMap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35480 itemId: null,
35481 itemProp: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35482 itemRef: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35483 itemScope: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35484 itemType: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35485 kind: null,
35486 label: null,
35487 lang: null,
35488 language: null,
35489 list: null,
35490 loading: null,
35491 loop: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35492 low: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35493 manifest: null,
35494 max: null,
35495 maxLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35496 media: null,
35497 method: null,
35498 min: null,
35499 minLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35500 multiple: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35501 muted: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35502 name: null,
35503 nonce: null,
35504 noModule: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35505 noValidate: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35506 onAbort: null,
35507 onAfterPrint: null,
35508 onAuxClick: null,
35509 onBeforeMatch: null,
35510 onBeforePrint: null,
35511 onBeforeUnload: null,
35512 onBlur: null,
35513 onCancel: null,
35514 onCanPlay: null,
35515 onCanPlayThrough: null,
35516 onChange: null,
35517 onClick: null,
35518 onClose: null,
35519 onContextLost: null,
35520 onContextMenu: null,
35521 onContextRestored: null,
35522 onCopy: null,
35523 onCueChange: null,
35524 onCut: null,
35525 onDblClick: null,
35526 onDrag: null,
35527 onDragEnd: null,
35528 onDragEnter: null,
35529 onDragExit: null,
35530 onDragLeave: null,
35531 onDragOver: null,
35532 onDragStart: null,
35533 onDrop: null,
35534 onDurationChange: null,
35535 onEmptied: null,
35536 onEnded: null,
35537 onError: null,
35538 onFocus: null,
35539 onFormData: null,
35540 onHashChange: null,
35541 onInput: null,
35542 onInvalid: null,
35543 onKeyDown: null,
35544 onKeyPress: null,
35545 onKeyUp: null,
35546 onLanguageChange: null,
35547 onLoad: null,
35548 onLoadedData: null,
35549 onLoadedMetadata: null,
35550 onLoadEnd: null,
35551 onLoadStart: null,
35552 onMessage: null,
35553 onMessageError: null,
35554 onMouseDown: null,
35555 onMouseEnter: null,
35556 onMouseLeave: null,
35557 onMouseMove: null,
35558 onMouseOut: null,
35559 onMouseOver: null,
35560 onMouseUp: null,
35561 onOffline: null,
35562 onOnline: null,
35563 onPageHide: null,
35564 onPageShow: null,
35565 onPaste: null,
35566 onPause: null,
35567 onPlay: null,
35568 onPlaying: null,
35569 onPopState: null,
35570 onProgress: null,
35571 onRateChange: null,
35572 onRejectionHandled: null,
35573 onReset: null,
35574 onResize: null,
35575 onScroll: null,
35576 onScrollEnd: null,
35577 onSecurityPolicyViolation: null,
35578 onSeeked: null,
35579 onSeeking: null,
35580 onSelect: null,
35581 onSlotChange: null,
35582 onStalled: null,
35583 onStorage: null,
35584 onSubmit: null,
35585 onSuspend: null,
35586 onTimeUpdate: null,
35587 onToggle: null,
35588 onUnhandledRejection: null,
35589 onUnload: null,
35590 onVolumeChange: null,
35591 onWaiting: null,
35592 onWheel: null,
35593 open: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35594 optimum: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35595 pattern: null,
35596 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35597 placeholder: null,
35598 playsInline: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35599 poster: null,
35600 preload: null,
35601 readOnly: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35602 referrerPolicy: null,
35603 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35604 required: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35605 reversed: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35606 rows: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35607 rowSpan: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35608 sandbox: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35609 scope: null,
35610 scoped: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35611 seamless: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35612 selected: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35613 shape: null,
35614 size: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35615 sizes: null,
35616 slot: null,
35617 span: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35618 spellCheck: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35619 src: null,
35620 srcDoc: null,
35621 srcLang: null,
35622 srcSet: null,
35623 start: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35624 step: null,
35625 style: null,
35626 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35627 target: null,
35628 title: null,
35629 translate: null,
35630 type: null,
35631 typeMustMatch: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35632 useMap: null,
35633 value: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish,
35634 width: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35635 wrap: null,
35636
35637 // Legacy.
35638 // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
35639 align: null, // Several. Use CSS `text-align` instead,
35640 aLink: null, // `<body>`. Use CSS `a:active {color}` instead
35641 archive: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated, // `<object>`. List of URIs to archives
35642 axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`
35643 background: null, // `<body>`. Use CSS `background-image` instead
35644 bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead
35645 border: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<table>`. Use CSS `border-width` instead,
35646 borderColor: null, // `<table>`. Use CSS `border-color` instead,
35647 bottomMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35648 cellPadding: null, // `<table>`
35649 cellSpacing: null, // `<table>`
35650 char: null, // Several table elements. When `align=char`, sets the character to align on
35651 charOff: null, // Several table elements. When `char`, offsets the alignment
35652 classId: null, // `<object>`
35653 clear: null, // `<br>`. Use CSS `clear` instead
35654 code: null, // `<object>`
35655 codeBase: null, // `<object>`
35656 codeType: null, // `<object>`
35657 color: null, // `<font>` and `<hr>`. Use CSS instead
35658 compact: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // Lists. Use CSS to reduce space between items instead
35659 declare: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<object>`
35660 event: null, // `<script>`
35661 face: null, // `<font>`. Use CSS instead
35662 frame: null, // `<table>`
35663 frameBorder: null, // `<iframe>`. Use CSS `border` instead
35664 hSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35665 leftMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35666 link: null, // `<body>`. Use CSS `a:link {color: *}` instead
35667 longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
35668 lowSrc: null, // `<img>`. Use a `<picture>`
35669 marginHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35670 marginWidth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35671 noResize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<frame>`
35672 noHref: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<area>`. Use no href instead of an explicit `nohref`
35673 noShade: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<hr>`. Use background-color and height instead of borders
35674 noWrap: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean, // `<td>` and `<th>`
35675 object: null, // `<applet>`
35676 profile: null, // `<head>`
35677 prompt: null, // `<isindex>`
35678 rev: null, // `<link>`
35679 rightMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35680 rules: null, // `<table>`
35681 scheme: null, // `<meta>`
35682 scrolling: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.booleanish, // `<frame>`. Use overflow in the child context
35683 standby: null, // `<object>`
35684 summary: null, // `<table>`
35685 text: null, // `<body>`. Use CSS `color` instead
35686 topMargin: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<body>`
35687 valueType: null, // `<param>`
35688 version: null, // `<html>`. Use a doctype.
35689 vAlign: null, // Several. Use CSS `vertical-align` instead
35690 vLink: null, // `<body>`. Use CSS `a:visited {color}` instead
35691 vSpace: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number, // `<img>` and `<object>`
35692
35693 // Non-standard Properties.
35694 allowTransparency: null,
35695 autoCorrect: null,
35696 autoSave: null,
35697 disablePictureInPicture: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35698 disableRemotePlayback: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35699 prefix: null,
35700 property: null,
35701 results: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35702 security: null,
35703 unselectable: null
35704 }
35705 })
35706
35707
35708 /***/ }),
35709
35710 /***/ "../node_modules/property-information/lib/normalize.js":
35711 /*!*************************************************************!*\
35712 !*** ../node_modules/property-information/lib/normalize.js ***!
35713 \*************************************************************/
35714 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35715
35716 "use strict";
35717 __webpack_require__.r(__webpack_exports__);
35718 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35719 /* harmony export */ normalize: () => (/* binding */ normalize)
35720 /* harmony export */ });
35721 /**
35722 * @param {string} value
35723 * @returns {string}
35724 */
35725 function normalize(value) {
35726 return value.toLowerCase()
35727 }
35728
35729
35730 /***/ }),
35731
35732 /***/ "../node_modules/property-information/lib/svg.js":
35733 /*!*******************************************************!*\
35734 !*** ../node_modules/property-information/lib/svg.js ***!
35735 \*******************************************************/
35736 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35737
35738 "use strict";
35739 __webpack_require__.r(__webpack_exports__);
35740 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35741 /* harmony export */ svg: () => (/* binding */ svg)
35742 /* harmony export */ });
35743 /* harmony import */ var _util_types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/types.js */ "../node_modules/property-information/lib/util/types.js");
35744 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
35745 /* 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");
35746
35747
35748
35749
35750 const svg = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
35751 space: 'svg',
35752 attributes: {
35753 accentHeight: 'accent-height',
35754 alignmentBaseline: 'alignment-baseline',
35755 arabicForm: 'arabic-form',
35756 baselineShift: 'baseline-shift',
35757 capHeight: 'cap-height',
35758 className: 'class',
35759 clipPath: 'clip-path',
35760 clipRule: 'clip-rule',
35761 colorInterpolation: 'color-interpolation',
35762 colorInterpolationFilters: 'color-interpolation-filters',
35763 colorProfile: 'color-profile',
35764 colorRendering: 'color-rendering',
35765 crossOrigin: 'crossorigin',
35766 dataType: 'datatype',
35767 dominantBaseline: 'dominant-baseline',
35768 enableBackground: 'enable-background',
35769 fillOpacity: 'fill-opacity',
35770 fillRule: 'fill-rule',
35771 floodColor: 'flood-color',
35772 floodOpacity: 'flood-opacity',
35773 fontFamily: 'font-family',
35774 fontSize: 'font-size',
35775 fontSizeAdjust: 'font-size-adjust',
35776 fontStretch: 'font-stretch',
35777 fontStyle: 'font-style',
35778 fontVariant: 'font-variant',
35779 fontWeight: 'font-weight',
35780 glyphName: 'glyph-name',
35781 glyphOrientationHorizontal: 'glyph-orientation-horizontal',
35782 glyphOrientationVertical: 'glyph-orientation-vertical',
35783 hrefLang: 'hreflang',
35784 horizAdvX: 'horiz-adv-x',
35785 horizOriginX: 'horiz-origin-x',
35786 horizOriginY: 'horiz-origin-y',
35787 imageRendering: 'image-rendering',
35788 letterSpacing: 'letter-spacing',
35789 lightingColor: 'lighting-color',
35790 markerEnd: 'marker-end',
35791 markerMid: 'marker-mid',
35792 markerStart: 'marker-start',
35793 navDown: 'nav-down',
35794 navDownLeft: 'nav-down-left',
35795 navDownRight: 'nav-down-right',
35796 navLeft: 'nav-left',
35797 navNext: 'nav-next',
35798 navPrev: 'nav-prev',
35799 navRight: 'nav-right',
35800 navUp: 'nav-up',
35801 navUpLeft: 'nav-up-left',
35802 navUpRight: 'nav-up-right',
35803 onAbort: 'onabort',
35804 onActivate: 'onactivate',
35805 onAfterPrint: 'onafterprint',
35806 onBeforePrint: 'onbeforeprint',
35807 onBegin: 'onbegin',
35808 onCancel: 'oncancel',
35809 onCanPlay: 'oncanplay',
35810 onCanPlayThrough: 'oncanplaythrough',
35811 onChange: 'onchange',
35812 onClick: 'onclick',
35813 onClose: 'onclose',
35814 onCopy: 'oncopy',
35815 onCueChange: 'oncuechange',
35816 onCut: 'oncut',
35817 onDblClick: 'ondblclick',
35818 onDrag: 'ondrag',
35819 onDragEnd: 'ondragend',
35820 onDragEnter: 'ondragenter',
35821 onDragExit: 'ondragexit',
35822 onDragLeave: 'ondragleave',
35823 onDragOver: 'ondragover',
35824 onDragStart: 'ondragstart',
35825 onDrop: 'ondrop',
35826 onDurationChange: 'ondurationchange',
35827 onEmptied: 'onemptied',
35828 onEnd: 'onend',
35829 onEnded: 'onended',
35830 onError: 'onerror',
35831 onFocus: 'onfocus',
35832 onFocusIn: 'onfocusin',
35833 onFocusOut: 'onfocusout',
35834 onHashChange: 'onhashchange',
35835 onInput: 'oninput',
35836 onInvalid: 'oninvalid',
35837 onKeyDown: 'onkeydown',
35838 onKeyPress: 'onkeypress',
35839 onKeyUp: 'onkeyup',
35840 onLoad: 'onload',
35841 onLoadedData: 'onloadeddata',
35842 onLoadedMetadata: 'onloadedmetadata',
35843 onLoadStart: 'onloadstart',
35844 onMessage: 'onmessage',
35845 onMouseDown: 'onmousedown',
35846 onMouseEnter: 'onmouseenter',
35847 onMouseLeave: 'onmouseleave',
35848 onMouseMove: 'onmousemove',
35849 onMouseOut: 'onmouseout',
35850 onMouseOver: 'onmouseover',
35851 onMouseUp: 'onmouseup',
35852 onMouseWheel: 'onmousewheel',
35853 onOffline: 'onoffline',
35854 onOnline: 'ononline',
35855 onPageHide: 'onpagehide',
35856 onPageShow: 'onpageshow',
35857 onPaste: 'onpaste',
35858 onPause: 'onpause',
35859 onPlay: 'onplay',
35860 onPlaying: 'onplaying',
35861 onPopState: 'onpopstate',
35862 onProgress: 'onprogress',
35863 onRateChange: 'onratechange',
35864 onRepeat: 'onrepeat',
35865 onReset: 'onreset',
35866 onResize: 'onresize',
35867 onScroll: 'onscroll',
35868 onSeeked: 'onseeked',
35869 onSeeking: 'onseeking',
35870 onSelect: 'onselect',
35871 onShow: 'onshow',
35872 onStalled: 'onstalled',
35873 onStorage: 'onstorage',
35874 onSubmit: 'onsubmit',
35875 onSuspend: 'onsuspend',
35876 onTimeUpdate: 'ontimeupdate',
35877 onToggle: 'ontoggle',
35878 onUnload: 'onunload',
35879 onVolumeChange: 'onvolumechange',
35880 onWaiting: 'onwaiting',
35881 onZoom: 'onzoom',
35882 overlinePosition: 'overline-position',
35883 overlineThickness: 'overline-thickness',
35884 paintOrder: 'paint-order',
35885 panose1: 'panose-1',
35886 pointerEvents: 'pointer-events',
35887 referrerPolicy: 'referrerpolicy',
35888 renderingIntent: 'rendering-intent',
35889 shapeRendering: 'shape-rendering',
35890 stopColor: 'stop-color',
35891 stopOpacity: 'stop-opacity',
35892 strikethroughPosition: 'strikethrough-position',
35893 strikethroughThickness: 'strikethrough-thickness',
35894 strokeDashArray: 'stroke-dasharray',
35895 strokeDashOffset: 'stroke-dashoffset',
35896 strokeLineCap: 'stroke-linecap',
35897 strokeLineJoin: 'stroke-linejoin',
35898 strokeMiterLimit: 'stroke-miterlimit',
35899 strokeOpacity: 'stroke-opacity',
35900 strokeWidth: 'stroke-width',
35901 tabIndex: 'tabindex',
35902 textAnchor: 'text-anchor',
35903 textDecoration: 'text-decoration',
35904 textRendering: 'text-rendering',
35905 typeOf: 'typeof',
35906 underlinePosition: 'underline-position',
35907 underlineThickness: 'underline-thickness',
35908 unicodeBidi: 'unicode-bidi',
35909 unicodeRange: 'unicode-range',
35910 unitsPerEm: 'units-per-em',
35911 vAlphabetic: 'v-alphabetic',
35912 vHanging: 'v-hanging',
35913 vIdeographic: 'v-ideographic',
35914 vMathematical: 'v-mathematical',
35915 vectorEffect: 'vector-effect',
35916 vertAdvY: 'vert-adv-y',
35917 vertOriginX: 'vert-origin-x',
35918 vertOriginY: 'vert-origin-y',
35919 wordSpacing: 'word-spacing',
35920 writingMode: 'writing-mode',
35921 xHeight: 'x-height',
35922 // These were camelcased in Tiny. Now lowercased in SVG 2
35923 playbackOrder: 'playbackorder',
35924 timelineBegin: 'timelinebegin'
35925 },
35926 transform: _util_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseSensitiveTransform,
35927 properties: {
35928 about: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
35929 accentHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35930 accumulate: null,
35931 additive: null,
35932 alignmentBaseline: null,
35933 alphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35934 amplitude: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35935 arabicForm: null,
35936 ascent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35937 attributeName: null,
35938 attributeType: null,
35939 azimuth: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35940 bandwidth: null,
35941 baselineShift: null,
35942 baseFrequency: null,
35943 baseProfile: null,
35944 bbox: null,
35945 begin: null,
35946 bias: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35947 by: null,
35948 calcMode: null,
35949 capHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35950 className: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
35951 clip: null,
35952 clipPath: null,
35953 clipPathUnits: null,
35954 clipRule: null,
35955 color: null,
35956 colorInterpolation: null,
35957 colorInterpolationFilters: null,
35958 colorProfile: null,
35959 colorRendering: null,
35960 content: null,
35961 contentScriptType: null,
35962 contentStyleType: null,
35963 crossOrigin: null,
35964 cursor: null,
35965 cx: null,
35966 cy: null,
35967 d: null,
35968 dataType: null,
35969 defaultAction: null,
35970 descent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35971 diffuseConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35972 direction: null,
35973 display: null,
35974 dur: null,
35975 divisor: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35976 dominantBaseline: null,
35977 download: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.boolean,
35978 dx: null,
35979 dy: null,
35980 edgeMode: null,
35981 editable: null,
35982 elevation: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35983 enableBackground: null,
35984 end: null,
35985 event: null,
35986 exponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35987 externalResourcesRequired: null,
35988 fill: null,
35989 fillOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
35990 fillRule: null,
35991 filter: null,
35992 filterRes: null,
35993 filterUnits: null,
35994 floodColor: null,
35995 floodOpacity: null,
35996 focusable: null,
35997 focusHighlight: null,
35998 fontFamily: null,
35999 fontSize: null,
36000 fontSizeAdjust: null,
36001 fontStretch: null,
36002 fontStyle: null,
36003 fontVariant: null,
36004 fontWeight: null,
36005 format: null,
36006 fr: null,
36007 from: null,
36008 fx: null,
36009 fy: null,
36010 g1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
36011 g2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
36012 glyphName: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaSeparated,
36013 glyphOrientationHorizontal: null,
36014 glyphOrientationVertical: null,
36015 glyphRef: null,
36016 gradientTransform: null,
36017 gradientUnits: null,
36018 handler: null,
36019 hanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36020 hatchContentUnits: null,
36021 hatchUnits: null,
36022 height: null,
36023 href: null,
36024 hrefLang: null,
36025 horizAdvX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36026 horizOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36027 horizOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36028 id: null,
36029 ideographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36030 imageRendering: null,
36031 initialVisibility: null,
36032 in: null,
36033 in2: null,
36034 intercept: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36035 k: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36036 k1: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36037 k2: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36038 k3: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36039 k4: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36040 kernelMatrix: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36041 kernelUnitLength: null,
36042 keyPoints: null, // SEMI_COLON_SEPARATED
36043 keySplines: null, // SEMI_COLON_SEPARATED
36044 keyTimes: null, // SEMI_COLON_SEPARATED
36045 kerning: null,
36046 lang: null,
36047 lengthAdjust: null,
36048 letterSpacing: null,
36049 lightingColor: null,
36050 limitingConeAngle: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36051 local: null,
36052 markerEnd: null,
36053 markerMid: null,
36054 markerStart: null,
36055 markerHeight: null,
36056 markerUnits: null,
36057 markerWidth: null,
36058 mask: null,
36059 maskContentUnits: null,
36060 maskUnits: null,
36061 mathematical: null,
36062 max: null,
36063 media: null,
36064 mediaCharacterEncoding: null,
36065 mediaContentEncodings: null,
36066 mediaSize: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36067 mediaTime: null,
36068 method: null,
36069 min: null,
36070 mode: null,
36071 name: null,
36072 navDown: null,
36073 navDownLeft: null,
36074 navDownRight: null,
36075 navLeft: null,
36076 navNext: null,
36077 navPrev: null,
36078 navRight: null,
36079 navUp: null,
36080 navUpLeft: null,
36081 navUpRight: null,
36082 numOctaves: null,
36083 observer: null,
36084 offset: null,
36085 onAbort: null,
36086 onActivate: null,
36087 onAfterPrint: null,
36088 onBeforePrint: null,
36089 onBegin: null,
36090 onCancel: null,
36091 onCanPlay: null,
36092 onCanPlayThrough: null,
36093 onChange: null,
36094 onClick: null,
36095 onClose: null,
36096 onCopy: null,
36097 onCueChange: null,
36098 onCut: null,
36099 onDblClick: null,
36100 onDrag: null,
36101 onDragEnd: null,
36102 onDragEnter: null,
36103 onDragExit: null,
36104 onDragLeave: null,
36105 onDragOver: null,
36106 onDragStart: null,
36107 onDrop: null,
36108 onDurationChange: null,
36109 onEmptied: null,
36110 onEnd: null,
36111 onEnded: null,
36112 onError: null,
36113 onFocus: null,
36114 onFocusIn: null,
36115 onFocusOut: null,
36116 onHashChange: null,
36117 onInput: null,
36118 onInvalid: null,
36119 onKeyDown: null,
36120 onKeyPress: null,
36121 onKeyUp: null,
36122 onLoad: null,
36123 onLoadedData: null,
36124 onLoadedMetadata: null,
36125 onLoadStart: null,
36126 onMessage: null,
36127 onMouseDown: null,
36128 onMouseEnter: null,
36129 onMouseLeave: null,
36130 onMouseMove: null,
36131 onMouseOut: null,
36132 onMouseOver: null,
36133 onMouseUp: null,
36134 onMouseWheel: null,
36135 onOffline: null,
36136 onOnline: null,
36137 onPageHide: null,
36138 onPageShow: null,
36139 onPaste: null,
36140 onPause: null,
36141 onPlay: null,
36142 onPlaying: null,
36143 onPopState: null,
36144 onProgress: null,
36145 onRateChange: null,
36146 onRepeat: null,
36147 onReset: null,
36148 onResize: null,
36149 onScroll: null,
36150 onSeeked: null,
36151 onSeeking: null,
36152 onSelect: null,
36153 onShow: null,
36154 onStalled: null,
36155 onStorage: null,
36156 onSubmit: null,
36157 onSuspend: null,
36158 onTimeUpdate: null,
36159 onToggle: null,
36160 onUnload: null,
36161 onVolumeChange: null,
36162 onWaiting: null,
36163 onZoom: null,
36164 opacity: null,
36165 operator: null,
36166 order: null,
36167 orient: null,
36168 orientation: null,
36169 origin: null,
36170 overflow: null,
36171 overlay: null,
36172 overlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36173 overlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36174 paintOrder: null,
36175 panose1: null,
36176 path: null,
36177 pathLength: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36178 patternContentUnits: null,
36179 patternTransform: null,
36180 patternUnits: null,
36181 phase: null,
36182 ping: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.spaceSeparated,
36183 pitch: null,
36184 playbackOrder: null,
36185 pointerEvents: null,
36186 points: null,
36187 pointsAtX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36188 pointsAtY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36189 pointsAtZ: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36190 preserveAlpha: null,
36191 preserveAspectRatio: null,
36192 primitiveUnits: null,
36193 propagate: null,
36194 property: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36195 r: null,
36196 radius: null,
36197 referrerPolicy: null,
36198 refX: null,
36199 refY: null,
36200 rel: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36201 rev: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36202 renderingIntent: null,
36203 repeatCount: null,
36204 repeatDur: null,
36205 requiredExtensions: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36206 requiredFeatures: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36207 requiredFonts: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36208 requiredFormats: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36209 resource: null,
36210 restart: null,
36211 result: null,
36212 rotate: null,
36213 rx: null,
36214 ry: null,
36215 scale: null,
36216 seed: null,
36217 shapeRendering: null,
36218 side: null,
36219 slope: null,
36220 snapshotTime: null,
36221 specularConstant: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36222 specularExponent: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36223 spreadMethod: null,
36224 spacing: null,
36225 startOffset: null,
36226 stdDeviation: null,
36227 stemh: null,
36228 stemv: null,
36229 stitchTiles: null,
36230 stopColor: null,
36231 stopOpacity: null,
36232 strikethroughPosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36233 strikethroughThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36234 string: null,
36235 stroke: null,
36236 strokeDashArray: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36237 strokeDashOffset: null,
36238 strokeLineCap: null,
36239 strokeLineJoin: null,
36240 strokeMiterLimit: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36241 strokeOpacity: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36242 strokeWidth: null,
36243 style: null,
36244 surfaceScale: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36245 syncBehavior: null,
36246 syncBehaviorDefault: null,
36247 syncMaster: null,
36248 syncTolerance: null,
36249 syncToleranceDefault: null,
36250 systemLanguage: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36251 tabIndex: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36252 tableValues: null,
36253 target: null,
36254 targetX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36255 targetY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36256 textAnchor: null,
36257 textDecoration: null,
36258 textRendering: null,
36259 textLength: null,
36260 timelineBegin: null,
36261 title: null,
36262 transformBehavior: null,
36263 type: null,
36264 typeOf: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.commaOrSpaceSeparated,
36265 to: null,
36266 transform: null,
36267 u1: null,
36268 u2: null,
36269 underlinePosition: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36270 underlineThickness: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36271 unicode: null,
36272 unicodeBidi: null,
36273 unicodeRange: null,
36274 unitsPerEm: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36275 values: null,
36276 vAlphabetic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36277 vMathematical: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36278 vectorEffect: null,
36279 vHanging: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36280 vIdeographic: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36281 version: null,
36282 vertAdvY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36283 vertOriginX: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36284 vertOriginY: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36285 viewBox: null,
36286 viewTarget: null,
36287 visibility: null,
36288 width: null,
36289 widths: null,
36290 wordSpacing: null,
36291 writingMode: null,
36292 x: null,
36293 x1: null,
36294 x2: null,
36295 xChannelSelector: null,
36296 xHeight: _util_types_js__WEBPACK_IMPORTED_MODULE_2__.number,
36297 y: null,
36298 y1: null,
36299 y2: null,
36300 yChannelSelector: null,
36301 z: null,
36302 zoomAndPan: null
36303 }
36304 })
36305
36306
36307 /***/ }),
36308
36309 /***/ "../node_modules/property-information/lib/util/case-insensitive-transform.js":
36310 /*!***********************************************************************************!*\
36311 !*** ../node_modules/property-information/lib/util/case-insensitive-transform.js ***!
36312 \***********************************************************************************/
36313 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36314
36315 "use strict";
36316 __webpack_require__.r(__webpack_exports__);
36317 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36318 /* harmony export */ caseInsensitiveTransform: () => (/* binding */ caseInsensitiveTransform)
36319 /* harmony export */ });
36320 /* 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");
36321
36322
36323 /**
36324 * @param {Record<string, string>} attributes
36325 * @param {string} property
36326 * @returns {string}
36327 */
36328 function caseInsensitiveTransform(attributes, property) {
36329 return (0,_case_sensitive_transform_js__WEBPACK_IMPORTED_MODULE_0__.caseSensitiveTransform)(attributes, property.toLowerCase())
36330 }
36331
36332
36333 /***/ }),
36334
36335 /***/ "../node_modules/property-information/lib/util/case-sensitive-transform.js":
36336 /*!*********************************************************************************!*\
36337 !*** ../node_modules/property-information/lib/util/case-sensitive-transform.js ***!
36338 \*********************************************************************************/
36339 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36340
36341 "use strict";
36342 __webpack_require__.r(__webpack_exports__);
36343 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36344 /* harmony export */ caseSensitiveTransform: () => (/* binding */ caseSensitiveTransform)
36345 /* harmony export */ });
36346 /**
36347 * @param {Record<string, string>} attributes
36348 * @param {string} attribute
36349 * @returns {string}
36350 */
36351 function caseSensitiveTransform(attributes, attribute) {
36352 return attribute in attributes ? attributes[attribute] : attribute
36353 }
36354
36355
36356 /***/ }),
36357
36358 /***/ "../node_modules/property-information/lib/util/create.js":
36359 /*!***************************************************************!*\
36360 !*** ../node_modules/property-information/lib/util/create.js ***!
36361 \***************************************************************/
36362 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36363
36364 "use strict";
36365 __webpack_require__.r(__webpack_exports__);
36366 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36367 /* harmony export */ create: () => (/* binding */ create)
36368 /* harmony export */ });
36369 /* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ "../node_modules/property-information/lib/normalize.js");
36370 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36371 /* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ "../node_modules/property-information/lib/util/defined-info.js");
36372 /**
36373 * @typedef {import('./schema.js').Properties} Properties
36374 * @typedef {import('./schema.js').Normal} Normal
36375 *
36376 * @typedef {Record<string, string>} Attributes
36377 *
36378 * @typedef {Object} Definition
36379 * @property {Record<string, number|null>} properties
36380 * @property {(attributes: Attributes, property: string) => string} transform
36381 * @property {string} [space]
36382 * @property {Attributes} [attributes]
36383 * @property {Array<string>} [mustUseProperty]
36384 */
36385
36386
36387
36388
36389
36390 const own = {}.hasOwnProperty
36391
36392 /**
36393 * @param {Definition} definition
36394 * @returns {Schema}
36395 */
36396 function create(definition) {
36397 /** @type {Properties} */
36398 const property = {}
36399 /** @type {Normal} */
36400 const normal = {}
36401 /** @type {string} */
36402 let prop
36403
36404 for (prop in definition.properties) {
36405 if (own.call(definition.properties, prop)) {
36406 const value = definition.properties[prop]
36407 const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(
36408 prop,
36409 definition.transform(definition.attributes || {}, prop),
36410 value,
36411 definition.space
36412 )
36413
36414 if (
36415 definition.mustUseProperty &&
36416 definition.mustUseProperty.includes(prop)
36417 ) {
36418 info.mustUseProperty = true
36419 }
36420
36421 property[prop] = info
36422
36423 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(prop)] = prop
36424 normal[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = prop
36425 }
36426 }
36427
36428 return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(property, normal, definition.space)
36429 }
36430
36431
36432 /***/ }),
36433
36434 /***/ "../node_modules/property-information/lib/util/defined-info.js":
36435 /*!*********************************************************************!*\
36436 !*** ../node_modules/property-information/lib/util/defined-info.js ***!
36437 \*********************************************************************/
36438 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36439
36440 "use strict";
36441 __webpack_require__.r(__webpack_exports__);
36442 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36443 /* harmony export */ DefinedInfo: () => (/* binding */ DefinedInfo)
36444 /* harmony export */ });
36445 /* harmony import */ var _info_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./info.js */ "../node_modules/property-information/lib/util/info.js");
36446 /* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ "../node_modules/property-information/lib/util/types.js");
36447
36448
36449
36450 /** @type {Array<keyof types>} */
36451 // @ts-expect-error: hush.
36452 const checks = Object.keys(_types_js__WEBPACK_IMPORTED_MODULE_0__)
36453
36454 class DefinedInfo extends _info_js__WEBPACK_IMPORTED_MODULE_1__.Info {
36455 /**
36456 * @constructor
36457 * @param {string} property
36458 * @param {string} attribute
36459 * @param {number|null} [mask]
36460 * @param {string} [space]
36461 */
36462 constructor(property, attribute, mask, space) {
36463 let index = -1
36464
36465 super(property, attribute)
36466
36467 mark(this, 'space', space)
36468
36469 if (typeof mask === 'number') {
36470 while (++index < checks.length) {
36471 const check = checks[index]
36472 mark(this, checks[index], (mask & _types_js__WEBPACK_IMPORTED_MODULE_0__[check]) === _types_js__WEBPACK_IMPORTED_MODULE_0__[check])
36473 }
36474 }
36475 }
36476 }
36477
36478 DefinedInfo.prototype.defined = true
36479
36480 /**
36481 * @param {DefinedInfo} values
36482 * @param {string} key
36483 * @param {unknown} value
36484 */
36485 function mark(values, key, value) {
36486 if (value) {
36487 // @ts-expect-error: assume `value` matches the expected value of `key`.
36488 values[key] = value
36489 }
36490 }
36491
36492
36493 /***/ }),
36494
36495 /***/ "../node_modules/property-information/lib/util/info.js":
36496 /*!*************************************************************!*\
36497 !*** ../node_modules/property-information/lib/util/info.js ***!
36498 \*************************************************************/
36499 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36500
36501 "use strict";
36502 __webpack_require__.r(__webpack_exports__);
36503 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36504 /* harmony export */ Info: () => (/* binding */ Info)
36505 /* harmony export */ });
36506 class Info {
36507 /**
36508 * @constructor
36509 * @param {string} property
36510 * @param {string} attribute
36511 */
36512 constructor(property, attribute) {
36513 /** @type {string} */
36514 this.property = property
36515 /** @type {string} */
36516 this.attribute = attribute
36517 }
36518 }
36519
36520 /** @type {string|null} */
36521 Info.prototype.space = null
36522 Info.prototype.boolean = false
36523 Info.prototype.booleanish = false
36524 Info.prototype.overloadedBoolean = false
36525 Info.prototype.number = false
36526 Info.prototype.commaSeparated = false
36527 Info.prototype.spaceSeparated = false
36528 Info.prototype.commaOrSpaceSeparated = false
36529 Info.prototype.mustUseProperty = false
36530 Info.prototype.defined = false
36531
36532
36533 /***/ }),
36534
36535 /***/ "../node_modules/property-information/lib/util/merge.js":
36536 /*!**************************************************************!*\
36537 !*** ../node_modules/property-information/lib/util/merge.js ***!
36538 \**************************************************************/
36539 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36540
36541 "use strict";
36542 __webpack_require__.r(__webpack_exports__);
36543 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36544 /* harmony export */ merge: () => (/* binding */ merge)
36545 /* harmony export */ });
36546 /* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ "../node_modules/property-information/lib/util/schema.js");
36547 /**
36548 * @typedef {import('./schema.js').Properties} Properties
36549 * @typedef {import('./schema.js').Normal} Normal
36550 */
36551
36552
36553
36554 /**
36555 * @param {Schema[]} definitions
36556 * @param {string} [space]
36557 * @returns {Schema}
36558 */
36559 function merge(definitions, space) {
36560 /** @type {Properties} */
36561 const property = {}
36562 /** @type {Normal} */
36563 const normal = {}
36564 let index = -1
36565
36566 while (++index < definitions.length) {
36567 Object.assign(property, definitions[index].property)
36568 Object.assign(normal, definitions[index].normal)
36569 }
36570
36571 return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space)
36572 }
36573
36574
36575 /***/ }),
36576
36577 /***/ "../node_modules/property-information/lib/util/schema.js":
36578 /*!***************************************************************!*\
36579 !*** ../node_modules/property-information/lib/util/schema.js ***!
36580 \***************************************************************/
36581 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36582
36583 "use strict";
36584 __webpack_require__.r(__webpack_exports__);
36585 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36586 /* harmony export */ Schema: () => (/* binding */ Schema)
36587 /* harmony export */ });
36588 /**
36589 * @typedef {import('./info.js').Info} Info
36590 * @typedef {Record<string, Info>} Properties
36591 * @typedef {Record<string, string>} Normal
36592 */
36593
36594 class Schema {
36595 /**
36596 * @constructor
36597 * @param {Properties} property
36598 * @param {Normal} normal
36599 * @param {string} [space]
36600 */
36601 constructor(property, normal, space) {
36602 this.property = property
36603 this.normal = normal
36604 if (space) {
36605 this.space = space
36606 }
36607 }
36608 }
36609
36610 /** @type {Properties} */
36611 Schema.prototype.property = {}
36612 /** @type {Normal} */
36613 Schema.prototype.normal = {}
36614 /** @type {string|null} */
36615 Schema.prototype.space = null
36616
36617
36618 /***/ }),
36619
36620 /***/ "../node_modules/property-information/lib/util/types.js":
36621 /*!**************************************************************!*\
36622 !*** ../node_modules/property-information/lib/util/types.js ***!
36623 \**************************************************************/
36624 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36625
36626 "use strict";
36627 __webpack_require__.r(__webpack_exports__);
36628 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36629 /* harmony export */ boolean: () => (/* binding */ boolean),
36630 /* harmony export */ booleanish: () => (/* binding */ booleanish),
36631 /* harmony export */ commaOrSpaceSeparated: () => (/* binding */ commaOrSpaceSeparated),
36632 /* harmony export */ commaSeparated: () => (/* binding */ commaSeparated),
36633 /* harmony export */ number: () => (/* binding */ number),
36634 /* harmony export */ overloadedBoolean: () => (/* binding */ overloadedBoolean),
36635 /* harmony export */ spaceSeparated: () => (/* binding */ spaceSeparated)
36636 /* harmony export */ });
36637 let powers = 0
36638
36639 const boolean = increment()
36640 const booleanish = increment()
36641 const overloadedBoolean = increment()
36642 const number = increment()
36643 const spaceSeparated = increment()
36644 const commaSeparated = increment()
36645 const commaOrSpaceSeparated = increment()
36646
36647 function increment() {
36648 return 2 ** ++powers
36649 }
36650
36651
36652 /***/ }),
36653
36654 /***/ "../node_modules/property-information/lib/xlink.js":
36655 /*!*********************************************************!*\
36656 !*** ../node_modules/property-information/lib/xlink.js ***!
36657 \*********************************************************/
36658 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36659
36660 "use strict";
36661 __webpack_require__.r(__webpack_exports__);
36662 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36663 /* harmony export */ xlink: () => (/* binding */ xlink)
36664 /* harmony export */ });
36665 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36666
36667
36668 const xlink = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36669 space: 'xlink',
36670 transform(_, prop) {
36671 return 'xlink:' + prop.slice(5).toLowerCase()
36672 },
36673 properties: {
36674 xLinkActuate: null,
36675 xLinkArcRole: null,
36676 xLinkHref: null,
36677 xLinkRole: null,
36678 xLinkShow: null,
36679 xLinkTitle: null,
36680 xLinkType: null
36681 }
36682 })
36683
36684
36685 /***/ }),
36686
36687 /***/ "../node_modules/property-information/lib/xml.js":
36688 /*!*******************************************************!*\
36689 !*** ../node_modules/property-information/lib/xml.js ***!
36690 \*******************************************************/
36691 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36692
36693 "use strict";
36694 __webpack_require__.r(__webpack_exports__);
36695 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36696 /* harmony export */ xml: () => (/* binding */ xml)
36697 /* harmony export */ });
36698 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36699
36700
36701 const xml = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36702 space: 'xml',
36703 transform(_, prop) {
36704 return 'xml:' + prop.slice(3).toLowerCase()
36705 },
36706 properties: {xmlLang: null, xmlBase: null, xmlSpace: null}
36707 })
36708
36709
36710 /***/ }),
36711
36712 /***/ "../node_modules/property-information/lib/xmlns.js":
36713 /*!*********************************************************!*\
36714 !*** ../node_modules/property-information/lib/xmlns.js ***!
36715 \*********************************************************/
36716 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36717
36718 "use strict";
36719 __webpack_require__.r(__webpack_exports__);
36720 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36721 /* harmony export */ xmlns: () => (/* binding */ xmlns)
36722 /* harmony export */ });
36723 /* harmony import */ var _util_create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/create.js */ "../node_modules/property-information/lib/util/create.js");
36724 /* 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");
36725
36726
36727
36728 const xmlns = (0,_util_create_js__WEBPACK_IMPORTED_MODULE_0__.create)({
36729 space: 'xmlns',
36730 attributes: {xmlnsxlink: 'xmlns:xlink'},
36731 transform: _util_case_insensitive_transform_js__WEBPACK_IMPORTED_MODULE_1__.caseInsensitiveTransform,
36732 properties: {xmlns: null, xmlnsXLink: null}
36733 })
36734
36735
36736 /***/ }),
36737
36738 /***/ "../node_modules/react-markdown/index.js":
36739 /*!***********************************************!*\
36740 !*** ../node_modules/react-markdown/index.js ***!
36741 \***********************************************/
36742 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36743
36744 "use strict";
36745 __webpack_require__.r(__webpack_exports__);
36746 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36747 /* harmony export */ "default": () => (/* reexport safe */ _lib_react_markdown_js__WEBPACK_IMPORTED_MODULE_1__.ReactMarkdown),
36748 /* harmony export */ uriTransformer: () => (/* reexport safe */ _lib_uri_transformer_js__WEBPACK_IMPORTED_MODULE_0__.uriTransformer)
36749 /* harmony export */ });
36750 /* 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");
36751 /* 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");
36752 /**
36753 * @typedef {import('./lib/react-markdown.js').ReactMarkdownOptions} Options
36754 * @typedef {import('./lib/ast-to-react.js').Components} Components
36755 */
36756
36757
36758
36759
36760
36761
36762 /***/ }),
36763
36764 /***/ "../node_modules/react-markdown/lib/ast-to-react.js":
36765 /*!**********************************************************!*\
36766 !*** ../node_modules/react-markdown/lib/ast-to-react.js ***!
36767 \**********************************************************/
36768 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
36769
36770 "use strict";
36771 __webpack_require__.r(__webpack_exports__);
36772 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
36773 /* harmony export */ childrenToReact: () => (/* binding */ childrenToReact)
36774 /* harmony export */ });
36775 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
36776 /* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
36777 /* harmony import */ var hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hast-util-whitespace */ "../node_modules/hast-util-whitespace/index.js");
36778 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
36779 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/find.js");
36780 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/lib/hast-to-react.js");
36781 /* harmony import */ var space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! space-separated-tokens */ "../node_modules/space-separated-tokens/index.js");
36782 /* harmony import */ var comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! comma-separated-tokens */ "../node_modules/comma-separated-tokens/index.js");
36783 /* harmony import */ var style_to_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! style-to-object */ "../node_modules/style-to-object/index.mjs");
36784 /* harmony import */ var _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uri-transformer.js */ "../node_modules/react-markdown/lib/uri-transformer.js");
36785 /**
36786 * @template T
36787 * @typedef {import('react').ComponentType<T>} ComponentType<T>
36788 */
36789
36790 /**
36791 * @template {import('react').ElementType} T
36792 * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>
36793 */
36794
36795 /**
36796 * @typedef {import('react').ReactNode} ReactNode
36797 * @typedef {import('unist').Position} Position
36798 * @typedef {import('hast').Element} Element
36799 * @typedef {import('hast').ElementContent} ElementContent
36800 * @typedef {import('hast').Root} Root
36801 * @typedef {import('hast').Text} Text
36802 * @typedef {import('hast').Comment} Comment
36803 * @typedef {import('hast').DocType} Doctype
36804 * @typedef {import('property-information').Info} Info
36805 * @typedef {import('property-information').Schema} Schema
36806 * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps
36807 *
36808 * @typedef Raw
36809 * @property {'raw'} type
36810 * @property {string} value
36811 *
36812 * @typedef Context
36813 * @property {Options} options
36814 * @property {Schema} schema
36815 * @property {number} listDepth
36816 *
36817 * @callback TransformLink
36818 * @param {string} href
36819 * @param {Array<ElementContent>} children
36820 * @param {string?} title
36821 * @returns {string}
36822 *
36823 * @callback TransformImage
36824 * @param {string} src
36825 * @param {string} alt
36826 * @param {string?} title
36827 * @returns {string}
36828 *
36829 * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType
36830 *
36831 * @callback TransformLinkTarget
36832 * @param {string} href
36833 * @param {Array<ElementContent>} children
36834 * @param {string?} title
36835 * @returns {TransformLinkTargetType|undefined}
36836 *
36837 * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames
36838 *
36839 * To do: is `data-sourcepos` typeable?
36840 *
36841 * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps
36842 * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps
36843 * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps
36844 * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps
36845 * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps
36846 * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps
36847 * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps
36848 * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps
36849 *
36850 * @typedef {ComponentType<CodeProps>} CodeComponent
36851 * @typedef {ComponentType<HeadingProps>} HeadingComponent
36852 * @typedef {ComponentType<LiProps>} LiComponent
36853 * @typedef {ComponentType<OrderedListProps>} OrderedListComponent
36854 * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent
36855 * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent
36856 * @typedef {ComponentType<TableRowProps>} TableRowComponent
36857 * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent
36858 *
36859 * @typedef SpecialComponents
36860 * @property {CodeComponent|ReactMarkdownNames} code
36861 * @property {HeadingComponent|ReactMarkdownNames} h1
36862 * @property {HeadingComponent|ReactMarkdownNames} h2
36863 * @property {HeadingComponent|ReactMarkdownNames} h3
36864 * @property {HeadingComponent|ReactMarkdownNames} h4
36865 * @property {HeadingComponent|ReactMarkdownNames} h5
36866 * @property {HeadingComponent|ReactMarkdownNames} h6
36867 * @property {LiComponent|ReactMarkdownNames} li
36868 * @property {OrderedListComponent|ReactMarkdownNames} ol
36869 * @property {TableDataCellComponent|ReactMarkdownNames} td
36870 * @property {TableHeaderCellComponent|ReactMarkdownNames} th
36871 * @property {TableRowComponent|ReactMarkdownNames} tr
36872 * @property {UnorderedListComponent|ReactMarkdownNames} ul
36873 *
36874 * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components
36875 *
36876 * @typedef Options
36877 * @property {boolean} [sourcePos=false]
36878 * @property {boolean} [rawSourcePos=false]
36879 * @property {boolean} [skipHtml=false]
36880 * @property {boolean} [includeElementIndex=false]
36881 * @property {null|false|TransformLink} [transformLinkUri]
36882 * @property {TransformImage} [transformImageUri]
36883 * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]
36884 * @property {Components} [components]
36885 */
36886
36887
36888
36889
36890
36891
36892
36893
36894
36895
36896 const own = {}.hasOwnProperty
36897
36898 // The table-related elements that must not contain whitespace text according
36899 // to React.
36900 const tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])
36901
36902 /**
36903 * @param {Context} context
36904 * @param {Element|Root} node
36905 */
36906 function childrenToReact(context, node) {
36907 /** @type {Array<ReactNode>} */
36908 const children = []
36909 let childIndex = -1
36910 /** @type {Comment|Doctype|Element|Raw|Text} */
36911 let child
36912
36913 while (++childIndex < node.children.length) {
36914 child = node.children[childIndex]
36915
36916 if (child.type === 'element') {
36917 children.push(toReact(context, child, childIndex, node))
36918 } else if (child.type === 'text') {
36919 // Currently, a warning is triggered by react for *any* white space in
36920 // tables.
36921 // So we drop it.
36922 // See: <https://github.com/facebook/react/pull/7081>.
36923 // See: <https://github.com/facebook/react/pull/7515>.
36924 // See: <https://github.com/remarkjs/remark-react/issues/64>.
36925 // See: <https://github.com/remarkjs/react-markdown/issues/576>.
36926 if (
36927 node.type !== 'element' ||
36928 !tableElements.has(node.tagName) ||
36929 !(0,hast_util_whitespace__WEBPACK_IMPORTED_MODULE_3__.whitespace)(child)
36930 ) {
36931 children.push(child.value)
36932 }
36933 } else if (child.type === 'raw' && !context.options.skipHtml) {
36934 // Default behavior is to show (encoded) HTML.
36935 children.push(child.value)
36936 }
36937 }
36938
36939 return children
36940 }
36941
36942 /**
36943 * @param {Context} context
36944 * @param {Element} node
36945 * @param {number} index
36946 * @param {Element|Root} parent
36947 */
36948 function toReact(context, node, index, parent) {
36949 const options = context.options
36950 const transform =
36951 options.transformLinkUri === undefined
36952 ? _uri_transformer_js__WEBPACK_IMPORTED_MODULE_4__.uriTransformer
36953 : options.transformLinkUri
36954 const parentSchema = context.schema
36955 /** @type {ReactMarkdownNames} */
36956 // @ts-expect-error assume a known HTML/SVG element.
36957 const name = node.tagName
36958 /** @type {Record<string, unknown>} */
36959 const properties = {}
36960 let schema = parentSchema
36961 /** @type {string} */
36962 let property
36963
36964 if (parentSchema.space === 'html' && name === 'svg') {
36965 schema = property_information__WEBPACK_IMPORTED_MODULE_5__.svg
36966 context.schema = schema
36967 }
36968
36969 if (node.properties) {
36970 for (property in node.properties) {
36971 if (own.call(node.properties, property)) {
36972 addProperty(properties, property, node.properties[property], context)
36973 }
36974 }
36975 }
36976
36977 if (name === 'ol' || name === 'ul') {
36978 context.listDepth++
36979 }
36980
36981 const children = childrenToReact(context, node)
36982
36983 if (name === 'ol' || name === 'ul') {
36984 context.listDepth--
36985 }
36986
36987 // Restore parent schema.
36988 context.schema = parentSchema
36989
36990 // Nodes created by plugins do not have positional info, in which case we use
36991 // an object that matches the position interface.
36992 const position = node.position || {
36993 start: {line: null, column: null, offset: null},
36994 end: {line: null, column: null, offset: null}
36995 }
36996 const component =
36997 options.components && own.call(options.components, name)
36998 ? options.components[name]
36999 : name
37000 const basic = typeof component === 'string' || component === react__WEBPACK_IMPORTED_MODULE_0__.Fragment
37001
37002 if (!react_is__WEBPACK_IMPORTED_MODULE_1__.isValidElementType(component)) {
37003 throw new TypeError(
37004 `Component for name \`${name}\` not defined or is not renderable`
37005 )
37006 }
37007
37008 properties.key = index
37009
37010 if (name === 'a' && options.linkTarget) {
37011 properties.target =
37012 typeof options.linkTarget === 'function'
37013 ? options.linkTarget(
37014 String(properties.href || ''),
37015 node.children,
37016 typeof properties.title === 'string' ? properties.title : null
37017 )
37018 : options.linkTarget
37019 }
37020
37021 if (name === 'a' && transform) {
37022 properties.href = transform(
37023 String(properties.href || ''),
37024 node.children,
37025 typeof properties.title === 'string' ? properties.title : null
37026 )
37027 }
37028
37029 if (
37030 !basic &&
37031 name === 'code' &&
37032 parent.type === 'element' &&
37033 parent.tagName !== 'pre'
37034 ) {
37035 properties.inline = true
37036 }
37037
37038 if (
37039 !basic &&
37040 (name === 'h1' ||
37041 name === 'h2' ||
37042 name === 'h3' ||
37043 name === 'h4' ||
37044 name === 'h5' ||
37045 name === 'h6')
37046 ) {
37047 properties.level = Number.parseInt(name.charAt(1), 10)
37048 }
37049
37050 if (name === 'img' && options.transformImageUri) {
37051 properties.src = options.transformImageUri(
37052 String(properties.src || ''),
37053 String(properties.alt || ''),
37054 typeof properties.title === 'string' ? properties.title : null
37055 )
37056 }
37057
37058 if (!basic && name === 'li' && parent.type === 'element') {
37059 const input = getInputElement(node)
37060 properties.checked =
37061 input && input.properties ? Boolean(input.properties.checked) : null
37062 properties.index = getElementsBeforeCount(parent, node)
37063 properties.ordered = parent.tagName === 'ol'
37064 }
37065
37066 if (!basic && (name === 'ol' || name === 'ul')) {
37067 properties.ordered = name === 'ol'
37068 properties.depth = context.listDepth
37069 }
37070
37071 if (name === 'td' || name === 'th') {
37072 if (properties.align) {
37073 if (!properties.style) properties.style = {}
37074 // @ts-expect-error assume `style` is an object
37075 properties.style.textAlign = properties.align
37076 delete properties.align
37077 }
37078
37079 if (!basic) {
37080 properties.isHeader = name === 'th'
37081 }
37082 }
37083
37084 if (!basic && name === 'tr' && parent.type === 'element') {
37085 properties.isHeader = Boolean(parent.tagName === 'thead')
37086 }
37087
37088 // If `sourcePos` is given, pass source information (line/column info from markdown source).
37089 if (options.sourcePos) {
37090 properties['data-sourcepos'] = flattenPosition(position)
37091 }
37092
37093 if (!basic && options.rawSourcePos) {
37094 properties.sourcePosition = node.position
37095 }
37096
37097 // If `includeElementIndex` is given, pass node index info to components.
37098 if (!basic && options.includeElementIndex) {
37099 properties.index = getElementsBeforeCount(parent, node)
37100 properties.siblingCount = getElementsBeforeCount(parent)
37101 }
37102
37103 if (!basic) {
37104 properties.node = node
37105 }
37106
37107 // Ensure no React warnings are emitted for void elements w/ children.
37108 return children.length > 0
37109 ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties, children)
37110 : react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, properties)
37111 }
37112
37113 /**
37114 * @param {Element|Root} node
37115 * @returns {Element?}
37116 */
37117 function getInputElement(node) {
37118 let index = -1
37119
37120 while (++index < node.children.length) {
37121 const child = node.children[index]
37122
37123 if (child.type === 'element' && child.tagName === 'input') {
37124 return child
37125 }
37126 }
37127
37128 return null
37129 }
37130
37131 /**
37132 * @param {Element|Root} parent
37133 * @param {Element} [node]
37134 * @returns {number}
37135 */
37136 function getElementsBeforeCount(parent, node) {
37137 let index = -1
37138 let count = 0
37139
37140 while (++index < parent.children.length) {
37141 if (parent.children[index] === node) break
37142 if (parent.children[index].type === 'element') count++
37143 }
37144
37145 return count
37146 }
37147
37148 /**
37149 * @param {Record<string, unknown>} props
37150 * @param {string} prop
37151 * @param {unknown} value
37152 * @param {Context} ctx
37153 */
37154 function addProperty(props, prop, value, ctx) {
37155 const info = (0,property_information__WEBPACK_IMPORTED_MODULE_6__.find)(ctx.schema, prop)
37156 let result = value
37157
37158 // Ignore nullish and `NaN` values.
37159 // eslint-disable-next-line no-self-compare
37160 if (result === null || result === undefined || result !== result) {
37161 return
37162 }
37163
37164 // Accept `array`.
37165 // Most props are space-separated.
37166 if (Array.isArray(result)) {
37167 result = info.commaSeparated ? (0,comma_separated_tokens__WEBPACK_IMPORTED_MODULE_7__.stringify)(result) : (0,space_separated_tokens__WEBPACK_IMPORTED_MODULE_8__.stringify)(result)
37168 }
37169
37170 if (info.property === 'style' && typeof result === 'string') {
37171 result = parseStyle(result)
37172 }
37173
37174 if (info.space && info.property) {
37175 props[
37176 own.call(property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact, info.property)
37177 ? property_information__WEBPACK_IMPORTED_MODULE_9__.hastToReact[info.property]
37178 : info.property
37179 ] = result
37180 } else if (info.attribute) {
37181 props[info.attribute] = result
37182 }
37183 }
37184
37185 /**
37186 * @param {string} value
37187 * @returns {Record<string, string>}
37188 */
37189 function parseStyle(value) {
37190 /** @type {Record<string, string>} */
37191 const result = {}
37192
37193 try {
37194 ;(0,style_to_object__WEBPACK_IMPORTED_MODULE_2__["default"])(value, iterator)
37195 } catch {
37196 // Silent.
37197 }
37198
37199 return result
37200
37201 /**
37202 * @param {string} name
37203 * @param {string} v
37204 */
37205 function iterator(name, v) {
37206 const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name
37207 result[k.replace(/-([a-z])/g, styleReplacer)] = v
37208 }
37209 }
37210
37211 /**
37212 * @param {unknown} _
37213 * @param {string} $1
37214 */
37215 function styleReplacer(_, $1) {
37216 return $1.toUpperCase()
37217 }
37218
37219 /**
37220 * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos
37221 * @returns {string}
37222 */
37223 function flattenPosition(pos) {
37224 return [
37225 pos.start.line,
37226 ':',
37227 pos.start.column,
37228 '-',
37229 pos.end.line,
37230 ':',
37231 pos.end.column
37232 ]
37233 .map(String)
37234 .join('')
37235 }
37236
37237
37238 /***/ }),
37239
37240 /***/ "../node_modules/react-markdown/lib/react-markdown.js":
37241 /*!************************************************************!*\
37242 !*** ../node_modules/react-markdown/lib/react-markdown.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 */ ReactMarkdown: () => (/* binding */ ReactMarkdown)
37250 /* harmony export */ });
37251 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
37252 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
37253 /* harmony import */ var unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! unified */ "../node_modules/unified/lib/index.js");
37254 /* harmony import */ var remark_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! remark-parse */ "../node_modules/remark-parse/lib/index.js");
37255 /* harmony import */ var remark_rehype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! remark-rehype */ "../node_modules/remark-rehype/lib/index.js");
37256 /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
37257 /* harmony import */ var property_information__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! property-information */ "../node_modules/property-information/index.js");
37258 /* harmony import */ var _rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rehype-filter.js */ "../node_modules/react-markdown/lib/rehype-filter.js");
37259 /* 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");
37260 /**
37261 * @typedef {import('react').ReactNode} ReactNode
37262 * @typedef {import('react').ReactElement<{}>} ReactElement
37263 * @typedef {import('unified').PluggableList} PluggableList
37264 * @typedef {import('hast').Root} Root
37265 * @typedef {import('./rehype-filter.js').Options} FilterOptions
37266 * @typedef {import('./ast-to-react.js').Options} TransformOptions
37267 *
37268 * @typedef CoreOptions
37269 * @property {string} children
37270 *
37271 * @typedef PluginOptions
37272 * @property {PluggableList} [remarkPlugins=[]]
37273 * @property {PluggableList} [rehypePlugins=[]]
37274 * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]
37275 *
37276 * @typedef LayoutOptions
37277 * @property {string} [className]
37278 *
37279 * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions
37280 *
37281 * @typedef Deprecation
37282 * @property {string} id
37283 * @property {string} [to]
37284 */
37285
37286
37287
37288
37289
37290
37291
37292
37293
37294
37295
37296 const own = {}.hasOwnProperty
37297 const changelog =
37298 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'
37299
37300 /** @type {Record<string, Deprecation>} */
37301 const deprecated = {
37302 plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},
37303 renderers: {to: 'components', id: 'change-renderers-to-components'},
37304 astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},
37305 allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37306 escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},
37307 source: {to: 'children', id: 'change-source-to-children'},
37308 allowNode: {
37309 to: 'allowElement',
37310 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37311 },
37312 allowedTypes: {
37313 to: 'allowedElements',
37314 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37315 },
37316 disallowedTypes: {
37317 to: 'disallowedElements',
37318 id: 'replace-allownode-allowedtypes-and-disallowedtypes'
37319 },
37320 includeNodeIndex: {
37321 to: 'includeElementIndex',
37322 id: 'change-includenodeindex-to-includeelementindex'
37323 }
37324 }
37325
37326 /**
37327 * React component to render markdown.
37328 *
37329 * @param {ReactMarkdownOptions} options
37330 * @returns {ReactElement}
37331 */
37332 function ReactMarkdown(options) {
37333 for (const key in deprecated) {
37334 if (own.call(deprecated, key) && own.call(options, key)) {
37335 const deprecation = deprecated[key]
37336 console.warn(
37337 `[react-markdown] Warning: please ${
37338 deprecation.to ? `use \`${deprecation.to}\` instead of` : 'remove'
37339 } \`${key}\` (see <${changelog}#${deprecation.id}> for more info)`
37340 )
37341 delete deprecated[key]
37342 }
37343 }
37344
37345 const processor = (0,unified__WEBPACK_IMPORTED_MODULE_1__.unified)()
37346 .use(remark_parse__WEBPACK_IMPORTED_MODULE_2__["default"])
37347 .use(options.remarkPlugins || [])
37348 .use(remark_rehype__WEBPACK_IMPORTED_MODULE_3__["default"], {
37349 ...options.remarkRehypeOptions,
37350 allowDangerousHtml: true
37351 })
37352 .use(options.rehypePlugins || [])
37353 .use(_rehype_filter_js__WEBPACK_IMPORTED_MODULE_4__["default"], options)
37354
37355 const file = new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile()
37356
37357 if (typeof options.children === 'string') {
37358 file.value = options.children
37359 } else if (options.children !== undefined && options.children !== null) {
37360 console.warn(
37361 `[react-markdown] Warning: please pass a string as \`children\` (not: \`${options.children}\`)`
37362 )
37363 }
37364
37365 const hastNode = processor.runSync(processor.parse(file), file)
37366
37367 if (hastNode.type !== 'root') {
37368 throw new TypeError('Expected a `root` node')
37369 }
37370
37371 /** @type {ReactElement} */
37372 let result = react__WEBPACK_IMPORTED_MODULE_0__.createElement(
37373 react__WEBPACK_IMPORTED_MODULE_0__.Fragment,
37374 {},
37375 (0,_ast_to_react_js__WEBPACK_IMPORTED_MODULE_6__.childrenToReact)({options, schema: property_information__WEBPACK_IMPORTED_MODULE_7__.html, listDepth: 0}, hastNode)
37376 )
37377
37378 if (options.className) {
37379 result = react__WEBPACK_IMPORTED_MODULE_0__.createElement('div', {className: options.className}, result)
37380 }
37381
37382 return result
37383 }
37384
37385 ReactMarkdown.propTypes = {
37386 // Core options:
37387 children: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37388 // Layout options:
37389 className: prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37390 // Filter options:
37391 allowElement: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37392 allowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37393 disallowedElements: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_8__.string),
37394 unwrapDisallowed: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37395 // Plugin options:
37396 remarkPlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37397 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37398 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37399 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37400 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37401 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37402 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37403 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37404 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37405 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37406 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37407 // prettier-ignore
37408 // type-coverage:ignore-next-line
37409 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37410 )
37411 ])
37412 )
37413 ])
37414 ),
37415 rehypePlugins: prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37416 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37417 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37418 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37419 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37420 prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([
37421 prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37422 prop_types__WEBPACK_IMPORTED_MODULE_8__.string,
37423 prop_types__WEBPACK_IMPORTED_MODULE_8__.object,
37424 prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37425 prop_types__WEBPACK_IMPORTED_MODULE_8__.arrayOf(
37426 // prettier-ignore
37427 // type-coverage:ignore-next-line
37428 prop_types__WEBPACK_IMPORTED_MODULE_8__.any
37429 )
37430 ])
37431 )
37432 ])
37433 ),
37434 // Transform options:
37435 sourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37436 rawSourcePos: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37437 skipHtml: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37438 includeElementIndex: prop_types__WEBPACK_IMPORTED_MODULE_8__.bool,
37439 transformLinkUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.bool]),
37440 linkTarget: prop_types__WEBPACK_IMPORTED_MODULE_8__.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_8__.func, prop_types__WEBPACK_IMPORTED_MODULE_8__.string]),
37441 transformImageUri: prop_types__WEBPACK_IMPORTED_MODULE_8__.func,
37442 components: prop_types__WEBPACK_IMPORTED_MODULE_8__.object
37443 }
37444
37445
37446 /***/ }),
37447
37448 /***/ "../node_modules/react-markdown/lib/rehype-filter.js":
37449 /*!***********************************************************!*\
37450 !*** ../node_modules/react-markdown/lib/rehype-filter.js ***!
37451 \***********************************************************/
37452 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37453
37454 "use strict";
37455 __webpack_require__.r(__webpack_exports__);
37456 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37457 /* harmony export */ "default": () => (/* binding */ rehypeFilter)
37458 /* harmony export */ });
37459 /* harmony import */ var unist_util_visit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-visit */ "../node_modules/unist-util-visit/lib/index.js");
37460
37461
37462 /**
37463 * @typedef {import('unist').Node} Node
37464 * @typedef {import('hast').Root} Root
37465 * @typedef {import('hast').Element} Element
37466 *
37467 * @callback AllowElement
37468 * @param {Element} element
37469 * @param {number} index
37470 * @param {Element|Root} parent
37471 * @returns {boolean|undefined}
37472 *
37473 * @typedef Options
37474 * @property {Array<string>} [allowedElements]
37475 * @property {Array<string>} [disallowedElements=[]]
37476 * @property {AllowElement} [allowElement]
37477 * @property {boolean} [unwrapDisallowed=false]
37478 */
37479
37480 /**
37481 * @type {import('unified').Plugin<[Options], Root>}
37482 */
37483 function rehypeFilter(options) {
37484 if (options.allowedElements && options.disallowedElements) {
37485 throw new TypeError(
37486 'Only one of `allowedElements` and `disallowedElements` should be defined'
37487 )
37488 }
37489
37490 if (
37491 options.allowedElements ||
37492 options.disallowedElements ||
37493 options.allowElement
37494 ) {
37495 return (tree) => {
37496 (0,unist_util_visit__WEBPACK_IMPORTED_MODULE_0__.visit)(tree, 'element', (node, index, parent_) => {
37497 const parent = /** @type {Element|Root} */ (parent_)
37498 /** @type {boolean|undefined} */
37499 let remove
37500
37501 if (options.allowedElements) {
37502 remove = !options.allowedElements.includes(node.tagName)
37503 } else if (options.disallowedElements) {
37504 remove = options.disallowedElements.includes(node.tagName)
37505 }
37506
37507 if (!remove && options.allowElement && typeof index === 'number') {
37508 remove = !options.allowElement(node, index, parent)
37509 }
37510
37511 if (remove && typeof index === 'number') {
37512 if (options.unwrapDisallowed && node.children) {
37513 parent.children.splice(index, 1, ...node.children)
37514 } else {
37515 parent.children.splice(index, 1)
37516 }
37517
37518 return index
37519 }
37520
37521 return undefined
37522 })
37523 }
37524 }
37525 }
37526
37527
37528 /***/ }),
37529
37530 /***/ "../node_modules/react-markdown/lib/uri-transformer.js":
37531 /*!*************************************************************!*\
37532 !*** ../node_modules/react-markdown/lib/uri-transformer.js ***!
37533 \*************************************************************/
37534 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37535
37536 "use strict";
37537 __webpack_require__.r(__webpack_exports__);
37538 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37539 /* harmony export */ uriTransformer: () => (/* binding */ uriTransformer)
37540 /* harmony export */ });
37541 const protocols = ['http', 'https', 'mailto', 'tel']
37542
37543 /**
37544 * @param {string} uri
37545 * @returns {string}
37546 */
37547 function uriTransformer(uri) {
37548 const url = (uri || '').trim()
37549 const first = url.charAt(0)
37550
37551 if (first === '#' || first === '/') {
37552 return url
37553 }
37554
37555 const colon = url.indexOf(':')
37556 if (colon === -1) {
37557 return url
37558 }
37559
37560 let index = -1
37561
37562 while (++index < protocols.length) {
37563 const protocol = protocols[index]
37564
37565 if (
37566 colon === protocol.length &&
37567 url.slice(0, protocol.length).toLowerCase() === protocol
37568 ) {
37569 return url
37570 }
37571 }
37572
37573 index = url.indexOf('?')
37574 if (index !== -1 && colon > index) {
37575 return url
37576 }
37577
37578 index = url.indexOf('#')
37579 if (index !== -1 && colon > index) {
37580 return url
37581 }
37582
37583 // eslint-disable-next-line no-script-url
37584 return 'javascript:void(0)'
37585 }
37586
37587
37588 /***/ }),
37589
37590 /***/ "../node_modules/remark-parse/lib/index.js":
37591 /*!*************************************************!*\
37592 !*** ../node_modules/remark-parse/lib/index.js ***!
37593 \*************************************************/
37594 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37595
37596 "use strict";
37597 __webpack_require__.r(__webpack_exports__);
37598 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37599 /* harmony export */ "default": () => (/* binding */ remarkParse)
37600 /* harmony export */ });
37601 /* 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");
37602 /**
37603 * @typedef {import('mdast').Root} Root
37604 * @typedef {import('mdast-util-from-markdown').Options} Options
37605 */
37606
37607
37608
37609 /**
37610 * @this {import('unified').Processor}
37611 * @type {import('unified').Plugin<[Options?] | void[], string, Root>}
37612 */
37613 function remarkParse(options) {
37614 /** @type {import('unified').ParserFunction<Root>} */
37615 const parser = (doc) => {
37616 // Assume options.
37617 const settings = /** @type {Options} */ (this.data('settings'))
37618
37619 return (0,mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_0__.fromMarkdown)(
37620 doc,
37621 Object.assign({}, settings, options, {
37622 // Note: these options are not in the readme.
37623 // The goal is for them to be set by plugins on `data` instead of being
37624 // passed by users.
37625 extensions: this.data('micromarkExtensions') || [],
37626 mdastExtensions: this.data('fromMarkdownExtensions') || []
37627 })
37628 )
37629 }
37630
37631 Object.assign(this, {Parser: parser})
37632 }
37633
37634
37635 /***/ }),
37636
37637 /***/ "../node_modules/remark-rehype/lib/index.js":
37638 /*!**************************************************!*\
37639 !*** ../node_modules/remark-rehype/lib/index.js ***!
37640 \**************************************************/
37641 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37642
37643 "use strict";
37644 __webpack_require__.r(__webpack_exports__);
37645 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37646 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37647 /* harmony export */ });
37648 /* 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");
37649 /**
37650 * @typedef {import('hast').Root} HastRoot
37651 * @typedef {import('mdast').Root} MdastRoot
37652 * @typedef {import('mdast-util-to-hast').Options} Options
37653 * @typedef {import('unified').Processor<any, any, any, any>} Processor
37654 *
37655 * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree
37656 */
37657
37658
37659
37660 // Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(
37661
37662 /**
37663 * Plugin that turns markdown into HTML to support rehype.
37664 *
37665 * * If a destination processor is given, that processor runs with a new HTML
37666 * (hast) tree (bridge-mode).
37667 * As the given processor runs with a hast tree, and rehype plugins support
37668 * hast, that means rehype plugins can be used with the given processor.
37669 * The hast tree is discarded in the end.
37670 * It’s highly unlikely that you want to do this.
37671 * * The common case is to not pass a destination processor, in which case the
37672 * current processor continues running with a new HTML (hast) tree
37673 * (mutate-mode).
37674 * As the current processor continues with a hast tree, and rehype plugins
37675 * support hast, that means rehype plugins can be used after
37676 * `remark-rehype`.
37677 * It’s likely that this is what you want to do.
37678 *
37679 * @param destination
37680 * Optional unified processor.
37681 * @param options
37682 * Options passed to `mdast-util-to-hast`.
37683 */
37684 const remarkRehype =
37685 /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */
37686 (
37687 function (destination, options) {
37688 return destination && 'run' in destination
37689 ? bridge(destination, options)
37690 : mutate(destination || options)
37691 }
37692 )
37693
37694 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (remarkRehype);
37695
37696 /**
37697 * Bridge-mode.
37698 * Runs the destination with the new hast tree.
37699 *
37700 * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}
37701 */
37702 function bridge(destination, options) {
37703 return (node, file, next) => {
37704 destination.run((0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options), file, (error) => {
37705 next(error)
37706 })
37707 }
37708 }
37709
37710 /**
37711 * Mutate-mode.
37712 * Further plugins run on the hast tree.
37713 *
37714 * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}
37715 */
37716 function mutate(options) {
37717 // @ts-expect-error: assume a corresponding node is returned by `toHast`.
37718 return (node) => (0,mdast_util_to_hast__WEBPACK_IMPORTED_MODULE_0__.toHast)(node, options)
37719 }
37720
37721
37722 /***/ }),
37723
37724 /***/ "../node_modules/space-separated-tokens/index.js":
37725 /*!*******************************************************!*\
37726 !*** ../node_modules/space-separated-tokens/index.js ***!
37727 \*******************************************************/
37728 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37729
37730 "use strict";
37731 __webpack_require__.r(__webpack_exports__);
37732 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37733 /* harmony export */ parse: () => (/* binding */ parse),
37734 /* harmony export */ stringify: () => (/* binding */ stringify)
37735 /* harmony export */ });
37736 /**
37737 * Parse space-separated tokens to an array of strings.
37738 *
37739 * @param {string} value
37740 * Space-separated tokens.
37741 * @returns {Array<string>}
37742 * List of tokens.
37743 */
37744 function parse(value) {
37745 const input = String(value || '').trim()
37746 return input ? input.split(/[ \t\n\r\f]+/g) : []
37747 }
37748
37749 /**
37750 * Serialize an array of strings as space separated-tokens.
37751 *
37752 * @param {Array<string|number>} values
37753 * List of tokens.
37754 * @returns {string}
37755 * Space-separated tokens.
37756 */
37757 function stringify(values) {
37758 return values.join(' ').trim()
37759 }
37760
37761
37762 /***/ }),
37763
37764 /***/ "../node_modules/style-to-object/index.mjs":
37765 /*!*************************************************!*\
37766 !*** ../node_modules/style-to-object/index.mjs ***!
37767 \*************************************************/
37768 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37769
37770 "use strict";
37771 __webpack_require__.r(__webpack_exports__);
37772 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37773 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
37774 /* harmony export */ });
37775 /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../node_modules/style-to-object/index.js");
37776
37777
37778 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_0__);
37779
37780
37781 /***/ }),
37782
37783 /***/ "../node_modules/trim-lines/index.js":
37784 /*!*******************************************!*\
37785 !*** ../node_modules/trim-lines/index.js ***!
37786 \*******************************************/
37787 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37788
37789 "use strict";
37790 __webpack_require__.r(__webpack_exports__);
37791 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37792 /* harmony export */ trimLines: () => (/* binding */ trimLines)
37793 /* harmony export */ });
37794 const tab = 9 /* `\t` */
37795 const space = 32 /* ` ` */
37796
37797 /**
37798 * Remove initial and final spaces and tabs at the line breaks in `value`.
37799 * Does not trim initial and final spaces and tabs of the value itself.
37800 *
37801 * @param {string} value
37802 * Value to trim.
37803 * @returns {string}
37804 * Trimmed value.
37805 */
37806 function trimLines(value) {
37807 const source = String(value)
37808 const search = /\r?\n|\r/g
37809 let match = search.exec(source)
37810 let last = 0
37811 /** @type {Array<string>} */
37812 const lines = []
37813
37814 while (match) {
37815 lines.push(
37816 trimLine(source.slice(last, match.index), last > 0, true),
37817 match[0]
37818 )
37819
37820 last = match.index + match[0].length
37821 match = search.exec(source)
37822 }
37823
37824 lines.push(trimLine(source.slice(last), last > 0, false))
37825
37826 return lines.join('')
37827 }
37828
37829 /**
37830 * @param {string} value
37831 * Line to trim.
37832 * @param {boolean} start
37833 * Whether to trim the start of the line.
37834 * @param {boolean} end
37835 * Whether to trim the end of the line.
37836 * @returns {string}
37837 * Trimmed line.
37838 */
37839 function trimLine(value, start, end) {
37840 let startIndex = 0
37841 let endIndex = value.length
37842
37843 if (start) {
37844 let code = value.codePointAt(startIndex)
37845
37846 while (code === tab || code === space) {
37847 startIndex++
37848 code = value.codePointAt(startIndex)
37849 }
37850 }
37851
37852 if (end) {
37853 let code = value.codePointAt(endIndex - 1)
37854
37855 while (code === tab || code === space) {
37856 endIndex--
37857 code = value.codePointAt(endIndex - 1)
37858 }
37859 }
37860
37861 return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''
37862 }
37863
37864
37865 /***/ }),
37866
37867 /***/ "../node_modules/trough/index.js":
37868 /*!***************************************!*\
37869 !*** ../node_modules/trough/index.js ***!
37870 \***************************************/
37871 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
37872
37873 "use strict";
37874 __webpack_require__.r(__webpack_exports__);
37875 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37876 /* harmony export */ trough: () => (/* binding */ trough),
37877 /* harmony export */ wrap: () => (/* binding */ wrap)
37878 /* harmony export */ });
37879 /**
37880 * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback
37881 * @typedef {(...input: Array<any>) => any} Middleware
37882 *
37883 * @typedef {(...input: Array<any>) => void} Run
37884 * Call all middleware.
37885 * @typedef {(fn: Middleware) => Pipeline} Use
37886 * Add `fn` (middleware) to the list.
37887 * @typedef {{run: Run, use: Use}} Pipeline
37888 * Middleware.
37889 */
37890
37891 /**
37892 * Create new middleware.
37893 *
37894 * @returns {Pipeline}
37895 */
37896 function trough() {
37897 /** @type {Array<Middleware>} */
37898 const fns = []
37899 /** @type {Pipeline} */
37900 const pipeline = {run, use}
37901
37902 return pipeline
37903
37904 /** @type {Run} */
37905 function run(...values) {
37906 let middlewareIndex = -1
37907 /** @type {Callback} */
37908 const callback = values.pop()
37909
37910 if (typeof callback !== 'function') {
37911 throw new TypeError('Expected function as last argument, not ' + callback)
37912 }
37913
37914 next(null, ...values)
37915
37916 /**
37917 * Run the next `fn`, or we’re done.
37918 *
37919 * @param {Error|null|undefined} error
37920 * @param {Array<any>} output
37921 */
37922 function next(error, ...output) {
37923 const fn = fns[++middlewareIndex]
37924 let index = -1
37925
37926 if (error) {
37927 callback(error)
37928 return
37929 }
37930
37931 // Copy non-nullish input into values.
37932 while (++index < values.length) {
37933 if (output[index] === null || output[index] === undefined) {
37934 output[index] = values[index]
37935 }
37936 }
37937
37938 // Save the newly created `output` for the next call.
37939 values = output
37940
37941 // Next or done.
37942 if (fn) {
37943 wrap(fn, next)(...output)
37944 } else {
37945 callback(null, ...output)
37946 }
37947 }
37948 }
37949
37950 /** @type {Use} */
37951 function use(middelware) {
37952 if (typeof middelware !== 'function') {
37953 throw new TypeError(
37954 'Expected `middelware` to be a function, not ' + middelware
37955 )
37956 }
37957
37958 fns.push(middelware)
37959 return pipeline
37960 }
37961 }
37962
37963 /**
37964 * Wrap `middleware`.
37965 * Can be sync or async; return a promise, receive a callback, or return new
37966 * values and errors.
37967 *
37968 * @param {Middleware} middleware
37969 * @param {Callback} callback
37970 */
37971 function wrap(middleware, callback) {
37972 /** @type {boolean} */
37973 let called
37974
37975 return wrapped
37976
37977 /**
37978 * Call `middleware`.
37979 * @this {any}
37980 * @param {Array<any>} parameters
37981 * @returns {void}
37982 */
37983 function wrapped(...parameters) {
37984 const fnExpectsCallback = middleware.length > parameters.length
37985 /** @type {any} */
37986 let result
37987
37988 if (fnExpectsCallback) {
37989 parameters.push(done)
37990 }
37991
37992 try {
37993 result = middleware.apply(this, parameters)
37994 } catch (error) {
37995 const exception = /** @type {Error} */ (error)
37996
37997 // Well, this is quite the pickle.
37998 // `middleware` received a callback and called it synchronously, but that
37999 // threw an error.
38000 // The only thing left to do is to throw the thing instead.
38001 if (fnExpectsCallback && called) {
38002 throw exception
38003 }
38004
38005 return done(exception)
38006 }
38007
38008 if (!fnExpectsCallback) {
38009 if (result instanceof Promise) {
38010 result.then(then, done)
38011 } else if (result instanceof Error) {
38012 done(result)
38013 } else {
38014 then(result)
38015 }
38016 }
38017 }
38018
38019 /**
38020 * Call `callback`, only once.
38021 * @type {Callback}
38022 */
38023 function done(error, ...output) {
38024 if (!called) {
38025 called = true
38026 callback(error, ...output)
38027 }
38028 }
38029
38030 /**
38031 * Call `done` with one value.
38032 *
38033 * @param {any} [value]
38034 */
38035 function then(value) {
38036 done(null, value)
38037 }
38038 }
38039
38040
38041 /***/ }),
38042
38043 /***/ "../node_modules/unified/lib/index.js":
38044 /*!********************************************!*\
38045 !*** ../node_modules/unified/lib/index.js ***!
38046 \********************************************/
38047 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38048
38049 "use strict";
38050 __webpack_require__.r(__webpack_exports__);
38051 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38052 /* harmony export */ unified: () => (/* binding */ unified)
38053 /* harmony export */ });
38054 /* harmony import */ var bail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! bail */ "../node_modules/bail/index.js");
38055 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
38056 /* harmony import */ var extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! extend */ "../node_modules/extend/index.js");
38057 /* harmony import */ var is_plain_obj__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! is-plain-obj */ "../node_modules/is-plain-obj/index.js");
38058 /* harmony import */ var trough__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! trough */ "../node_modules/trough/index.js");
38059 /* harmony import */ var vfile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile */ "../node_modules/vfile/lib/index.js");
38060 /**
38061 * @typedef {import('unist').Node} Node
38062 * @typedef {import('vfile').VFileCompatible} VFileCompatible
38063 * @typedef {import('vfile').VFileValue} VFileValue
38064 * @typedef {import('..').Processor} Processor
38065 * @typedef {import('..').Plugin} Plugin
38066 * @typedef {import('..').Preset} Preset
38067 * @typedef {import('..').Pluggable} Pluggable
38068 * @typedef {import('..').PluggableList} PluggableList
38069 * @typedef {import('..').Transformer} Transformer
38070 * @typedef {import('..').Parser} Parser
38071 * @typedef {import('..').Compiler} Compiler
38072 * @typedef {import('..').RunCallback} RunCallback
38073 * @typedef {import('..').ProcessCallback} ProcessCallback
38074 *
38075 * @typedef Context
38076 * @property {Node} tree
38077 * @property {VFile} file
38078 */
38079
38080
38081
38082
38083
38084
38085
38086
38087 // Expose a frozen processor.
38088 const unified = base().freeze()
38089
38090 const own = {}.hasOwnProperty
38091
38092 // Function to create the first processor.
38093 /**
38094 * @returns {Processor}
38095 */
38096 function base() {
38097 const transformers = (0,trough__WEBPACK_IMPORTED_MODULE_3__.trough)()
38098 /** @type {Processor['attachers']} */
38099 const attachers = []
38100 /** @type {Record<string, unknown>} */
38101 let namespace = {}
38102 /** @type {boolean|undefined} */
38103 let frozen
38104 let freezeIndex = -1
38105
38106 // Data management.
38107 // @ts-expect-error: overloads are handled.
38108 processor.data = data
38109 processor.Parser = undefined
38110 processor.Compiler = undefined
38111
38112 // Lock.
38113 processor.freeze = freeze
38114
38115 // Plugins.
38116 processor.attachers = attachers
38117 // @ts-expect-error: overloads are handled.
38118 processor.use = use
38119
38120 // API.
38121 processor.parse = parse
38122 processor.stringify = stringify
38123 // @ts-expect-error: overloads are handled.
38124 processor.run = run
38125 processor.runSync = runSync
38126 // @ts-expect-error: overloads are handled.
38127 processor.process = process
38128 processor.processSync = processSync
38129
38130 // Expose.
38131 return processor
38132
38133 // Create a new processor based on the processor in the current scope.
38134 /** @type {Processor} */
38135 function processor() {
38136 const destination = base()
38137 let index = -1
38138
38139 while (++index < attachers.length) {
38140 destination.use(...attachers[index])
38141 }
38142
38143 destination.data(extend__WEBPACK_IMPORTED_MODULE_1__(true, {}, namespace))
38144
38145 return destination
38146 }
38147
38148 /**
38149 * @param {string|Record<string, unknown>} [key]
38150 * @param {unknown} [value]
38151 * @returns {unknown}
38152 */
38153 function data(key, value) {
38154 if (typeof key === 'string') {
38155 // Set `key`.
38156 if (arguments.length === 2) {
38157 assertUnfrozen('data', frozen)
38158 namespace[key] = value
38159 return processor
38160 }
38161
38162 // Get `key`.
38163 return (own.call(namespace, key) && namespace[key]) || null
38164 }
38165
38166 // Set space.
38167 if (key) {
38168 assertUnfrozen('data', frozen)
38169 namespace = key
38170 return processor
38171 }
38172
38173 // Get space.
38174 return namespace
38175 }
38176
38177 /** @type {Processor['freeze']} */
38178 function freeze() {
38179 if (frozen) {
38180 return processor
38181 }
38182
38183 while (++freezeIndex < attachers.length) {
38184 const [attacher, ...options] = attachers[freezeIndex]
38185
38186 if (options[0] === false) {
38187 continue
38188 }
38189
38190 if (options[0] === true) {
38191 options[0] = undefined
38192 }
38193
38194 /** @type {Transformer|void} */
38195 const transformer = attacher.call(processor, ...options)
38196
38197 if (typeof transformer === 'function') {
38198 transformers.use(transformer)
38199 }
38200 }
38201
38202 frozen = true
38203 freezeIndex = Number.POSITIVE_INFINITY
38204
38205 return processor
38206 }
38207
38208 /**
38209 * @param {Pluggable|null|undefined} [value]
38210 * @param {...unknown} options
38211 * @returns {Processor}
38212 */
38213 function use(value, ...options) {
38214 /** @type {Record<string, unknown>|undefined} */
38215 let settings
38216
38217 assertUnfrozen('use', frozen)
38218
38219 if (value === null || value === undefined) {
38220 // Empty.
38221 } else if (typeof value === 'function') {
38222 addPlugin(value, ...options)
38223 } else if (typeof value === 'object') {
38224 if (Array.isArray(value)) {
38225 addList(value)
38226 } else {
38227 addPreset(value)
38228 }
38229 } else {
38230 throw new TypeError('Expected usable value, not `' + value + '`')
38231 }
38232
38233 if (settings) {
38234 namespace.settings = Object.assign(namespace.settings || {}, settings)
38235 }
38236
38237 return processor
38238
38239 /**
38240 * @param {import('..').Pluggable<unknown[]>} value
38241 * @returns {void}
38242 */
38243 function add(value) {
38244 if (typeof value === 'function') {
38245 addPlugin(value)
38246 } else if (typeof value === 'object') {
38247 if (Array.isArray(value)) {
38248 const [plugin, ...options] = value
38249 addPlugin(plugin, ...options)
38250 } else {
38251 addPreset(value)
38252 }
38253 } else {
38254 throw new TypeError('Expected usable value, not `' + value + '`')
38255 }
38256 }
38257
38258 /**
38259 * @param {Preset} result
38260 * @returns {void}
38261 */
38262 function addPreset(result) {
38263 addList(result.plugins)
38264
38265 if (result.settings) {
38266 settings = Object.assign(settings || {}, result.settings)
38267 }
38268 }
38269
38270 /**
38271 * @param {PluggableList|null|undefined} [plugins]
38272 * @returns {void}
38273 */
38274 function addList(plugins) {
38275 let index = -1
38276
38277 if (plugins === null || plugins === undefined) {
38278 // Empty.
38279 } else if (Array.isArray(plugins)) {
38280 while (++index < plugins.length) {
38281 const thing = plugins[index]
38282 add(thing)
38283 }
38284 } else {
38285 throw new TypeError('Expected a list of plugins, not `' + plugins + '`')
38286 }
38287 }
38288
38289 /**
38290 * @param {Plugin} plugin
38291 * @param {...unknown} [value]
38292 * @returns {void}
38293 */
38294 function addPlugin(plugin, value) {
38295 let index = -1
38296 /** @type {Processor['attachers'][number]|undefined} */
38297 let entry
38298
38299 while (++index < attachers.length) {
38300 if (attachers[index][0] === plugin) {
38301 entry = attachers[index]
38302 break
38303 }
38304 }
38305
38306 if (entry) {
38307 if ((0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(entry[1]) && (0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(value)) {
38308 value = extend__WEBPACK_IMPORTED_MODULE_1__(true, entry[1], value)
38309 }
38310
38311 entry[1] = value
38312 } else {
38313 // @ts-expect-error: fine.
38314 attachers.push([...arguments])
38315 }
38316 }
38317 }
38318
38319 /** @type {Processor['parse']} */
38320 function parse(doc) {
38321 processor.freeze()
38322 const file = vfile(doc)
38323 const Parser = processor.Parser
38324 assertParser('parse', Parser)
38325
38326 if (newable(Parser, 'parse')) {
38327 // @ts-expect-error: `newable` checks this.
38328 return new Parser(String(file), file).parse()
38329 }
38330
38331 // @ts-expect-error: `newable` checks this.
38332 return Parser(String(file), file) // eslint-disable-line new-cap
38333 }
38334
38335 /** @type {Processor['stringify']} */
38336 function stringify(node, doc) {
38337 processor.freeze()
38338 const file = vfile(doc)
38339 const Compiler = processor.Compiler
38340 assertCompiler('stringify', Compiler)
38341 assertNode(node)
38342
38343 if (newable(Compiler, 'compile')) {
38344 // @ts-expect-error: `newable` checks this.
38345 return new Compiler(node, file).compile()
38346 }
38347
38348 // @ts-expect-error: `newable` checks this.
38349 return Compiler(node, file) // eslint-disable-line new-cap
38350 }
38351
38352 /**
38353 * @param {Node} node
38354 * @param {VFileCompatible|RunCallback} [doc]
38355 * @param {RunCallback} [callback]
38356 * @returns {Promise<Node>|void}
38357 */
38358 function run(node, doc, callback) {
38359 assertNode(node)
38360 processor.freeze()
38361
38362 if (!callback && typeof doc === 'function') {
38363 callback = doc
38364 doc = undefined
38365 }
38366
38367 if (!callback) {
38368 return new Promise(executor)
38369 }
38370
38371 executor(null, callback)
38372
38373 /**
38374 * @param {null|((node: Node) => void)} resolve
38375 * @param {(error: Error) => void} reject
38376 * @returns {void}
38377 */
38378 function executor(resolve, reject) {
38379 // @ts-expect-error: `doc` can’t be a callback anymore, we checked.
38380 transformers.run(node, vfile(doc), done)
38381
38382 /**
38383 * @param {Error|null} error
38384 * @param {Node} tree
38385 * @param {VFile} file
38386 * @returns {void}
38387 */
38388 function done(error, tree, file) {
38389 tree = tree || node
38390 if (error) {
38391 reject(error)
38392 } else if (resolve) {
38393 resolve(tree)
38394 } else {
38395 // @ts-expect-error: `callback` is defined if `resolve` is not.
38396 callback(null, tree, file)
38397 }
38398 }
38399 }
38400 }
38401
38402 /** @type {Processor['runSync']} */
38403 function runSync(node, file) {
38404 /** @type {Node|undefined} */
38405 let result
38406 /** @type {boolean|undefined} */
38407 let complete
38408
38409 processor.run(node, file, done)
38410
38411 assertDone('runSync', 'run', complete)
38412
38413 // @ts-expect-error: we either bailed on an error or have a tree.
38414 return result
38415
38416 /**
38417 * @param {Error|null} [error]
38418 * @param {Node} [tree]
38419 * @returns {void}
38420 */
38421 function done(error, tree) {
38422 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38423 result = tree
38424 complete = true
38425 }
38426 }
38427
38428 /**
38429 * @param {VFileCompatible} doc
38430 * @param {ProcessCallback} [callback]
38431 * @returns {Promise<VFile>|undefined}
38432 */
38433 function process(doc, callback) {
38434 processor.freeze()
38435 assertParser('process', processor.Parser)
38436 assertCompiler('process', processor.Compiler)
38437
38438 if (!callback) {
38439 return new Promise(executor)
38440 }
38441
38442 executor(null, callback)
38443
38444 /**
38445 * @param {null|((file: VFile) => void)} resolve
38446 * @param {(error?: Error|null|undefined) => void} reject
38447 * @returns {void}
38448 */
38449 function executor(resolve, reject) {
38450 const file = vfile(doc)
38451
38452 processor.run(processor.parse(file), file, (error, tree, file) => {
38453 if (error || !tree || !file) {
38454 done(error)
38455 } else {
38456 /** @type {unknown} */
38457 const result = processor.stringify(tree, file)
38458
38459 if (result === undefined || result === null) {
38460 // Empty.
38461 } else if (looksLikeAVFileValue(result)) {
38462 file.value = result
38463 } else {
38464 file.result = result
38465 }
38466
38467 done(error, file)
38468 }
38469 })
38470
38471 /**
38472 * @param {Error|null|undefined} [error]
38473 * @param {VFile|undefined} [file]
38474 * @returns {void}
38475 */
38476 function done(error, file) {
38477 if (error || !file) {
38478 reject(error)
38479 } else if (resolve) {
38480 resolve(file)
38481 } else {
38482 // @ts-expect-error: `callback` is defined if `resolve` is not.
38483 callback(null, file)
38484 }
38485 }
38486 }
38487 }
38488
38489 /** @type {Processor['processSync']} */
38490 function processSync(doc) {
38491 /** @type {boolean|undefined} */
38492 let complete
38493
38494 processor.freeze()
38495 assertParser('processSync', processor.Parser)
38496 assertCompiler('processSync', processor.Compiler)
38497
38498 const file = vfile(doc)
38499
38500 processor.process(file, done)
38501
38502 assertDone('processSync', 'process', complete)
38503
38504 return file
38505
38506 /**
38507 * @param {Error|null|undefined} [error]
38508 * @returns {void}
38509 */
38510 function done(error) {
38511 complete = true
38512 ;(0,bail__WEBPACK_IMPORTED_MODULE_4__.bail)(error)
38513 }
38514 }
38515 }
38516
38517 /**
38518 * Check if `value` is a constructor.
38519 *
38520 * @param {unknown} value
38521 * @param {string} name
38522 * @returns {boolean}
38523 */
38524 function newable(value, name) {
38525 return (
38526 typeof value === 'function' &&
38527 // Prototypes do exist.
38528 // type-coverage:ignore-next-line
38529 value.prototype &&
38530 // A function with keys in its prototype is probably a constructor.
38531 // Classes’ prototype methods are not enumerable, so we check if some value
38532 // exists in the prototype.
38533 // type-coverage:ignore-next-line
38534 (keys(value.prototype) || name in value.prototype)
38535 )
38536 }
38537
38538 /**
38539 * Check if `value` is an object with keys.
38540 *
38541 * @param {Record<string, unknown>} value
38542 * @returns {boolean}
38543 */
38544 function keys(value) {
38545 /** @type {string} */
38546 let key
38547
38548 for (key in value) {
38549 if (own.call(value, key)) {
38550 return true
38551 }
38552 }
38553
38554 return false
38555 }
38556
38557 /**
38558 * Assert a parser is available.
38559 *
38560 * @param {string} name
38561 * @param {unknown} value
38562 * @returns {asserts value is Parser}
38563 */
38564 function assertParser(name, value) {
38565 if (typeof value !== 'function') {
38566 throw new TypeError('Cannot `' + name + '` without `Parser`')
38567 }
38568 }
38569
38570 /**
38571 * Assert a compiler is available.
38572 *
38573 * @param {string} name
38574 * @param {unknown} value
38575 * @returns {asserts value is Compiler}
38576 */
38577 function assertCompiler(name, value) {
38578 if (typeof value !== 'function') {
38579 throw new TypeError('Cannot `' + name + '` without `Compiler`')
38580 }
38581 }
38582
38583 /**
38584 * Assert the processor is not frozen.
38585 *
38586 * @param {string} name
38587 * @param {unknown} frozen
38588 * @returns {asserts frozen is false}
38589 */
38590 function assertUnfrozen(name, frozen) {
38591 if (frozen) {
38592 throw new Error(
38593 'Cannot call `' +
38594 name +
38595 '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'
38596 )
38597 }
38598 }
38599
38600 /**
38601 * Assert `node` is a unist node.
38602 *
38603 * @param {unknown} node
38604 * @returns {asserts node is Node}
38605 */
38606 function assertNode(node) {
38607 // `isPlainObj` unfortunately uses `any` instead of `unknown`.
38608 // type-coverage:ignore-next-line
38609 if (!(0,is_plain_obj__WEBPACK_IMPORTED_MODULE_2__["default"])(node) || typeof node.type !== 'string') {
38610 throw new TypeError('Expected node, got `' + node + '`')
38611 // Fine.
38612 }
38613 }
38614
38615 /**
38616 * Assert that `complete` is `true`.
38617 *
38618 * @param {string} name
38619 * @param {string} asyncName
38620 * @param {unknown} complete
38621 * @returns {asserts complete is true}
38622 */
38623 function assertDone(name, asyncName, complete) {
38624 if (!complete) {
38625 throw new Error(
38626 '`' + name + '` finished async. Use `' + asyncName + '` instead'
38627 )
38628 }
38629 }
38630
38631 /**
38632 * @param {VFileCompatible} [value]
38633 * @returns {VFile}
38634 */
38635 function vfile(value) {
38636 return looksLikeAVFile(value) ? value : new vfile__WEBPACK_IMPORTED_MODULE_5__.VFile(value)
38637 }
38638
38639 /**
38640 * @param {VFileCompatible} [value]
38641 * @returns {value is VFile}
38642 */
38643 function looksLikeAVFile(value) {
38644 return Boolean(
38645 value &&
38646 typeof value === 'object' &&
38647 'message' in value &&
38648 'messages' in value
38649 )
38650 }
38651
38652 /**
38653 * @param {unknown} [value]
38654 * @returns {value is VFileValue}
38655 */
38656 function looksLikeAVFileValue(value) {
38657 return typeof value === 'string' || is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
38658 }
38659
38660
38661 /***/ }),
38662
38663 /***/ "../node_modules/unist-util-generated/lib/index.js":
38664 /*!*********************************************************!*\
38665 !*** ../node_modules/unist-util-generated/lib/index.js ***!
38666 \*********************************************************/
38667 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38668
38669 "use strict";
38670 __webpack_require__.r(__webpack_exports__);
38671 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38672 /* harmony export */ generated: () => (/* binding */ generated)
38673 /* harmony export */ });
38674 /**
38675 * @typedef PointLike
38676 * @property {number | null | undefined} [line]
38677 * @property {number | null | undefined} [column]
38678 * @property {number | null | undefined} [offset]
38679 *
38680 * @typedef PositionLike
38681 * @property {PointLike | null | undefined} [start]
38682 * @property {PointLike | null | undefined} [end]
38683 *
38684 * @typedef NodeLike
38685 * @property {PositionLike | null | undefined} [position]
38686 */
38687
38688 /**
38689 * Check if `node` is generated.
38690 *
38691 * @param {NodeLike | null | undefined} [node]
38692 * Node to check.
38693 * @returns {boolean}
38694 * Whether `node` is generated (does not have positional info).
38695 */
38696 function generated(node) {
38697 return (
38698 !node ||
38699 !node.position ||
38700 !node.position.start ||
38701 !node.position.start.line ||
38702 !node.position.start.column ||
38703 !node.position.end ||
38704 !node.position.end.line ||
38705 !node.position.end.column
38706 )
38707 }
38708
38709
38710 /***/ }),
38711
38712 /***/ "../node_modules/unist-util-is/lib/index.js":
38713 /*!**************************************************!*\
38714 !*** ../node_modules/unist-util-is/lib/index.js ***!
38715 \**************************************************/
38716 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
38717
38718 "use strict";
38719 __webpack_require__.r(__webpack_exports__);
38720 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38721 /* harmony export */ convert: () => (/* binding */ convert),
38722 /* harmony export */ is: () => (/* binding */ is)
38723 /* harmony export */ });
38724 /**
38725 * @typedef {import('unist').Node} Node
38726 * @typedef {import('unist').Parent} Parent
38727 */
38728
38729 /**
38730 * @typedef {Record<string, unknown>} Props
38731 * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test
38732 * Check for an arbitrary node, unaware of TypeScript inferral.
38733 *
38734 * @callback TestFunctionAnything
38735 * Check if a node passes a test, unaware of TypeScript inferral.
38736 * @param {unknown} this
38737 * The given context.
38738 * @param {Node} node
38739 * A node.
38740 * @param {number | null | undefined} [index]
38741 * The node’s position in its parent.
38742 * @param {Parent | null | undefined} [parent]
38743 * The node’s parent.
38744 * @returns {boolean | void}
38745 * Whether this node passes the test.
38746 */
38747
38748 /**
38749 * @template {Node} Kind
38750 * Node type.
38751 * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest
38752 * Check for a node that can be inferred by TypeScript.
38753 */
38754
38755 /**
38756 * Check if a node passes a certain test.
38757 *
38758 * @template {Node} Kind
38759 * Node type.
38760 * @callback TestFunctionPredicate
38761 * Complex test function for a node that can be inferred by TypeScript.
38762 * @param {Node} node
38763 * A node.
38764 * @param {number | null | undefined} [index]
38765 * The node’s position in its parent.
38766 * @param {Parent | null | undefined} [parent]
38767 * The node’s parent.
38768 * @returns {node is Kind}
38769 * Whether this node passes the test.
38770 */
38771
38772 /**
38773 * @callback AssertAnything
38774 * Check that an arbitrary value is a node, unaware of TypeScript inferral.
38775 * @param {unknown} [node]
38776 * Anything (typically a node).
38777 * @param {number | null | undefined} [index]
38778 * The node’s position in its parent.
38779 * @param {Parent | null | undefined} [parent]
38780 * The node’s parent.
38781 * @returns {boolean}
38782 * Whether this is a node and passes a test.
38783 */
38784
38785 /**
38786 * Check if a node is a node and passes a certain node test.
38787 *
38788 * @template {Node} Kind
38789 * Node type.
38790 * @callback AssertPredicate
38791 * Check that an arbitrary value is a specific node, aware of TypeScript.
38792 * @param {unknown} [node]
38793 * Anything (typically a node).
38794 * @param {number | null | undefined} [index]
38795 * The node’s position in its parent.
38796 * @param {Parent | null | undefined} [parent]
38797 * The node’s parent.
38798 * @returns {node is Kind}
38799 * Whether this is a node and passes a test.
38800 */
38801
38802 /**
38803 * Check if `node` is a `Node` and whether it passes the given test.
38804 *
38805 * @param node
38806 * Thing to check, typically `Node`.
38807 * @param test
38808 * A check for a specific node.
38809 * @param index
38810 * The node’s position in its parent.
38811 * @param parent
38812 * The node’s parent.
38813 * @returns
38814 * Whether `node` is a node and passes a test.
38815 */
38816 const is =
38817 /**
38818 * @type {(
38819 * (() => false) &
38820 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &
38821 * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &
38822 * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &
38823 * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)
38824 * )}
38825 */
38826 (
38827 /**
38828 * @param {unknown} [node]
38829 * @param {Test} [test]
38830 * @param {number | null | undefined} [index]
38831 * @param {Parent | null | undefined} [parent]
38832 * @param {unknown} [context]
38833 * @returns {boolean}
38834 */
38835 // eslint-disable-next-line max-params
38836 function is(node, test, index, parent, context) {
38837 const check = convert(test)
38838
38839 if (
38840 index !== undefined &&
38841 index !== null &&
38842 (typeof index !== 'number' ||
38843 index < 0 ||
38844 index === Number.POSITIVE_INFINITY)
38845 ) {
38846 throw new Error('Expected positive finite index')
38847 }
38848
38849 if (
38850 parent !== undefined &&
38851 parent !== null &&
38852 (!is(parent) || !parent.children)
38853 ) {
38854 throw new Error('Expected parent node')
38855 }
38856
38857 if (
38858 (parent === undefined || parent === null) !==
38859 (index === undefined || index === null)
38860 ) {
38861 throw new Error('Expected both parent and index')
38862 }
38863
38864 // @ts-expect-error Looks like a node.
38865 return node && node.type && typeof node.type === 'string'
38866 ? Boolean(check.call(context, node, index, parent))
38867 : false
38868 }
38869 )
38870
38871 /**
38872 * Generate an assertion from a test.
38873 *
38874 * Useful if you’re going to test many nodes, for example when creating a
38875 * utility where something else passes a compatible test.
38876 *
38877 * The created function is a bit faster because it expects valid input only:
38878 * a `node`, `index`, and `parent`.
38879 *
38880 * @param test
38881 * * when nullish, checks if `node` is a `Node`.
38882 * * when `string`, works like passing `(node) => node.type === test`.
38883 * * when `function` checks if function passed the node is true.
38884 * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.
38885 * * when `array`, checks if any one of the subtests pass.
38886 * @returns
38887 * An assertion.
38888 */
38889 const convert =
38890 /**
38891 * @type {(
38892 * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &
38893 * ((test?: Test) => AssertAnything)
38894 * )}
38895 */
38896 (
38897 /**
38898 * @param {Test} [test]
38899 * @returns {AssertAnything}
38900 */
38901 function (test) {
38902 if (test === undefined || test === null) {
38903 return ok
38904 }
38905
38906 if (typeof test === 'string') {
38907 return typeFactory(test)
38908 }
38909
38910 if (typeof test === 'object') {
38911 return Array.isArray(test) ? anyFactory(test) : propsFactory(test)
38912 }
38913
38914 if (typeof test === 'function') {
38915 return castFactory(test)
38916 }
38917
38918 throw new Error('Expected function, string, or object as test')
38919 }
38920 )
38921
38922 /**
38923 * @param {Array<string | Props | TestFunctionAnything>} tests
38924 * @returns {AssertAnything}
38925 */
38926 function anyFactory(tests) {
38927 /** @type {Array<AssertAnything>} */
38928 const checks = []
38929 let index = -1
38930
38931 while (++index < tests.length) {
38932 checks[index] = convert(tests[index])
38933 }
38934
38935 return castFactory(any)
38936
38937 /**
38938 * @this {unknown}
38939 * @param {Array<unknown>} parameters
38940 * @returns {boolean}
38941 */
38942 function any(...parameters) {
38943 let index = -1
38944
38945 while (++index < checks.length) {
38946 if (checks[index].call(this, ...parameters)) return true
38947 }
38948
38949 return false
38950 }
38951 }
38952
38953 /**
38954 * Turn an object into a test for a node with a certain fields.
38955 *
38956 * @param {Props} check
38957 * @returns {AssertAnything}
38958 */
38959 function propsFactory(check) {
38960 return castFactory(all)
38961
38962 /**
38963 * @param {Node} node
38964 * @returns {boolean}
38965 */
38966 function all(node) {
38967 /** @type {string} */
38968 let key
38969
38970 for (key in check) {
38971 // @ts-expect-error: hush, it sure works as an index.
38972 if (node[key] !== check[key]) return false
38973 }
38974
38975 return true
38976 }
38977 }
38978
38979 /**
38980 * Turn a string into a test for a node with a certain type.
38981 *
38982 * @param {string} check
38983 * @returns {AssertAnything}
38984 */
38985 function typeFactory(check) {
38986 return castFactory(type)
38987
38988 /**
38989 * @param {Node} node
38990 */
38991 function type(node) {
38992 return node && node.type === check
38993 }
38994 }
38995
38996 /**
38997 * Turn a custom test into a test for a node that passes that test.
38998 *
38999 * @param {TestFunctionAnything} check
39000 * @returns {AssertAnything}
39001 */
39002 function castFactory(check) {
39003 return assertion
39004
39005 /**
39006 * @this {unknown}
39007 * @param {unknown} node
39008 * @param {Array<unknown>} parameters
39009 * @returns {boolean}
39010 */
39011 function assertion(node, ...parameters) {
39012 return Boolean(
39013 node &&
39014 typeof node === 'object' &&
39015 'type' in node &&
39016 // @ts-expect-error: fine.
39017 Boolean(check.call(this, node, ...parameters))
39018 )
39019 }
39020 }
39021
39022 function ok() {
39023 return true
39024 }
39025
39026
39027 /***/ }),
39028
39029 /***/ "../node_modules/unist-util-position/lib/index.js":
39030 /*!********************************************************!*\
39031 !*** ../node_modules/unist-util-position/lib/index.js ***!
39032 \********************************************************/
39033 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39034
39035 "use strict";
39036 __webpack_require__.r(__webpack_exports__);
39037 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39038 /* harmony export */ pointEnd: () => (/* binding */ pointEnd),
39039 /* harmony export */ pointStart: () => (/* binding */ pointStart),
39040 /* harmony export */ position: () => (/* binding */ position)
39041 /* harmony export */ });
39042 /**
39043 * @typedef {import('unist').Position} Position
39044 * @typedef {import('unist').Node} Node
39045 * @typedef {import('unist').Point} Point
39046 */
39047
39048 /**
39049 * @typedef NodeLike
39050 * @property {string} type
39051 * @property {PositionLike | null | undefined} [position]
39052 *
39053 * @typedef PositionLike
39054 * @property {PointLike | null | undefined} [start]
39055 * @property {PointLike | null | undefined} [end]
39056 *
39057 * @typedef PointLike
39058 * @property {number | null | undefined} [line]
39059 * @property {number | null | undefined} [column]
39060 * @property {number | null | undefined} [offset]
39061 */
39062
39063 /**
39064 * Get the starting point of `node`.
39065 *
39066 * @param node
39067 * Node.
39068 * @returns
39069 * Point.
39070 */
39071 const pointStart = point('start')
39072
39073 /**
39074 * Get the ending point of `node`.
39075 *
39076 * @param node
39077 * Node.
39078 * @returns
39079 * Point.
39080 */
39081 const pointEnd = point('end')
39082
39083 /**
39084 * Get the positional info of `node`.
39085 *
39086 * @param {NodeLike | Node | null | undefined} [node]
39087 * Node.
39088 * @returns {Position}
39089 * Position.
39090 */
39091 function position(node) {
39092 return {start: pointStart(node), end: pointEnd(node)}
39093 }
39094
39095 /**
39096 * Get the positional info of `node`.
39097 *
39098 * @param {'start' | 'end'} type
39099 * Side.
39100 * @returns
39101 * Getter.
39102 */
39103 function point(type) {
39104 return point
39105
39106 /**
39107 * Get the point info of `node` at a bound side.
39108 *
39109 * @param {NodeLike | Node | null | undefined} [node]
39110 * @returns {Point}
39111 */
39112 function point(node) {
39113 const point = (node && node.position && node.position[type]) || {}
39114
39115 // To do: next major: don’t return points when invalid.
39116 return {
39117 // @ts-expect-error: in practice, null is allowed.
39118 line: point.line || null,
39119 // @ts-expect-error: in practice, null is allowed.
39120 column: point.column || null,
39121 // @ts-expect-error: in practice, null is allowed.
39122 offset: point.offset > -1 ? point.offset : null
39123 }
39124 }
39125 }
39126
39127
39128 /***/ }),
39129
39130 /***/ "../node_modules/unist-util-stringify-position/lib/index.js":
39131 /*!******************************************************************!*\
39132 !*** ../node_modules/unist-util-stringify-position/lib/index.js ***!
39133 \******************************************************************/
39134 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39135
39136 "use strict";
39137 __webpack_require__.r(__webpack_exports__);
39138 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39139 /* harmony export */ stringifyPosition: () => (/* binding */ stringifyPosition)
39140 /* harmony export */ });
39141 /**
39142 * @typedef {import('unist').Node} Node
39143 * @typedef {import('unist').Point} Point
39144 * @typedef {import('unist').Position} Position
39145 */
39146
39147 /**
39148 * @typedef NodeLike
39149 * @property {string} type
39150 * @property {PositionLike | null | undefined} [position]
39151 *
39152 * @typedef PositionLike
39153 * @property {PointLike | null | undefined} [start]
39154 * @property {PointLike | null | undefined} [end]
39155 *
39156 * @typedef PointLike
39157 * @property {number | null | undefined} [line]
39158 * @property {number | null | undefined} [column]
39159 * @property {number | null | undefined} [offset]
39160 */
39161
39162 /**
39163 * Serialize the positional info of a point, position (start and end points),
39164 * or node.
39165 *
39166 * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
39167 * Node, position, or point.
39168 * @returns {string}
39169 * Pretty printed positional info of a node (`string`).
39170 *
39171 * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
39172 * or a point `l:c` (when given `point`), where `l` stands for line, `c` for
39173 * column, `s` for `start`, and `e` for end.
39174 * An empty string (`''`) is returned if the given value is neither `node`,
39175 * `position`, nor `point`.
39176 */
39177 function stringifyPosition(value) {
39178 // Nothing.
39179 if (!value || typeof value !== 'object') {
39180 return ''
39181 }
39182
39183 // Node.
39184 if ('position' in value || 'type' in value) {
39185 return position(value.position)
39186 }
39187
39188 // Position.
39189 if ('start' in value || 'end' in value) {
39190 return position(value)
39191 }
39192
39193 // Point.
39194 if ('line' in value || 'column' in value) {
39195 return point(value)
39196 }
39197
39198 // ?
39199 return ''
39200 }
39201
39202 /**
39203 * @param {Point | PointLike | null | undefined} point
39204 * @returns {string}
39205 */
39206 function point(point) {
39207 return index(point && point.line) + ':' + index(point && point.column)
39208 }
39209
39210 /**
39211 * @param {Position | PositionLike | null | undefined} pos
39212 * @returns {string}
39213 */
39214 function position(pos) {
39215 return point(pos && pos.start) + '-' + point(pos && pos.end)
39216 }
39217
39218 /**
39219 * @param {number | null | undefined} value
39220 * @returns {number}
39221 */
39222 function index(value) {
39223 return value && typeof value === 'number' ? value : 1
39224 }
39225
39226
39227 /***/ }),
39228
39229 /***/ "../node_modules/unist-util-visit-parents/lib/color.browser.js":
39230 /*!*********************************************************************!*\
39231 !*** ../node_modules/unist-util-visit-parents/lib/color.browser.js ***!
39232 \*********************************************************************/
39233 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39234
39235 "use strict";
39236 __webpack_require__.r(__webpack_exports__);
39237 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39238 /* harmony export */ color: () => (/* binding */ color)
39239 /* harmony export */ });
39240 /**
39241 * @param {string} d
39242 * @returns {string}
39243 */
39244 function color(d) {
39245 return d
39246 }
39247
39248
39249 /***/ }),
39250
39251 /***/ "../node_modules/unist-util-visit-parents/lib/index.js":
39252 /*!*************************************************************!*\
39253 !*** ../node_modules/unist-util-visit-parents/lib/index.js ***!
39254 \*************************************************************/
39255 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39256
39257 "use strict";
39258 __webpack_require__.r(__webpack_exports__);
39259 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39260 /* harmony export */ CONTINUE: () => (/* binding */ CONTINUE),
39261 /* harmony export */ EXIT: () => (/* binding */ EXIT),
39262 /* harmony export */ SKIP: () => (/* binding */ SKIP),
39263 /* harmony export */ visitParents: () => (/* binding */ visitParents)
39264 /* harmony export */ });
39265 /* harmony import */ var unist_util_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! unist-util-is */ "../node_modules/unist-util-is/lib/index.js");
39266 /* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "../node_modules/unist-util-visit-parents/lib/color.browser.js");
39267 /**
39268 * @typedef {import('unist').Node} Node
39269 * @typedef {import('unist').Parent} Parent
39270 * @typedef {import('unist-util-is').Test} Test
39271 */
39272
39273 /**
39274 * @typedef {boolean | 'skip'} Action
39275 * Union of the action types.
39276 *
39277 * @typedef {number} Index
39278 * Move to the sibling at `index` next (after node itself is completely
39279 * traversed).
39280 *
39281 * Useful if mutating the tree, such as removing the node the visitor is
39282 * currently on, or any of its previous siblings.
39283 * Results less than 0 or greater than or equal to `children.length` stop
39284 * traversing the parent.
39285 *
39286 * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple
39287 * List with one or two values, the first an action, the second an index.
39288 *
39289 * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
39290 * Any value that can be returned from a visitor.
39291 */
39292
39293 /**
39294 * @template {Node} [Visited=Node]
39295 * Visited node type.
39296 * @template {Parent} [Ancestor=Parent]
39297 * Ancestor type.
39298 * @callback Visitor
39299 * Handle a node (matching `test`, if given).
39300 *
39301 * Visitors are free to transform `node`.
39302 * They can also transform the parent of node (the last of `ancestors`).
39303 *
39304 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39305 * descendants to be walked (which is a bug).
39306 *
39307 * When adding or removing previous siblings of `node` (or next siblings, in
39308 * case of reverse), the `Visitor` should return a new `Index` to specify the
39309 * sibling to traverse after `node` is traversed.
39310 * Adding or removing next siblings of `node` (or previous siblings, in case
39311 * of reverse) is handled as expected without needing to return a new `Index`.
39312 *
39313 * Removing the children property of an ancestor still results in them being
39314 * traversed.
39315 * @param {Visited} node
39316 * Found node.
39317 * @param {Array<Ancestor>} ancestors
39318 * Ancestors of `node`.
39319 * @returns {VisitorResult}
39320 * What to do next.
39321 *
39322 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39323 * An `Action` is treated as a tuple of `[Action]`.
39324 *
39325 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39326 * When the `Action` is `EXIT`, that action can be returned.
39327 * When the `Action` is `CONTINUE`, `Index` can be returned.
39328 */
39329
39330 /**
39331 * @template {Node} [Tree=Node]
39332 * Tree type.
39333 * @template {Test} [Check=string]
39334 * Test type.
39335 * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor
39336 * Build a typed `Visitor` function from a tree and a test.
39337 *
39338 * It will infer which values are passed as `node` and which as `parents`.
39339 */
39340
39341
39342
39343
39344 /**
39345 * Continue traversing as normal.
39346 */
39347 const CONTINUE = true
39348
39349 /**
39350 * Stop traversing immediately.
39351 */
39352 const EXIT = false
39353
39354 /**
39355 * Do not traverse this node’s children.
39356 */
39357 const SKIP = 'skip'
39358
39359 /**
39360 * Visit nodes, with ancestral information.
39361 *
39362 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39363 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39364 *
39365 * You can choose for which nodes `visitor` is called by passing a `test`.
39366 * For complex tests, you should test yourself in `visitor`, as it will be
39367 * faster and will have improved type information.
39368 *
39369 * Walking the tree is an intensive task.
39370 * Make use of the return values of the visitor when possible.
39371 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39372 * to check if a node matches, and then perform different operations.
39373 *
39374 * You can change the tree.
39375 * See `Visitor` for more info.
39376 *
39377 * @param tree
39378 * Tree to traverse.
39379 * @param test
39380 * `unist-util-is`-compatible test
39381 * @param visitor
39382 * Handle each node.
39383 * @param reverse
39384 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39385 * @returns
39386 * Nothing.
39387 */
39388 const visitParents =
39389 /**
39390 * @type {(
39391 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39392 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39393 * )}
39394 */
39395 (
39396 /**
39397 * @param {Node} tree
39398 * @param {Test} test
39399 * @param {Visitor<Node>} visitor
39400 * @param {boolean | null | undefined} [reverse]
39401 * @returns {void}
39402 */
39403 function (tree, test, visitor, reverse) {
39404 if (typeof test === 'function' && typeof visitor !== 'function') {
39405 reverse = visitor
39406 // @ts-expect-error no visitor given, so `visitor` is test.
39407 visitor = test
39408 test = null
39409 }
39410
39411 const is = (0,unist_util_is__WEBPACK_IMPORTED_MODULE_0__.convert)(test)
39412 const step = reverse ? -1 : 1
39413
39414 factory(tree, undefined, [])()
39415
39416 /**
39417 * @param {Node} node
39418 * @param {number | undefined} index
39419 * @param {Array<Parent>} parents
39420 */
39421 function factory(node, index, parents) {
39422 /** @type {Record<string, unknown>} */
39423 // @ts-expect-error: hush
39424 const value = node && typeof node === 'object' ? node : {}
39425
39426 if (typeof value.type === 'string') {
39427 const name =
39428 // `hast`
39429 typeof value.tagName === 'string'
39430 ? value.tagName
39431 : // `xast`
39432 typeof value.name === 'string'
39433 ? value.name
39434 : undefined
39435
39436 Object.defineProperty(visit, 'name', {
39437 value:
39438 'node (' + (0,_color_js__WEBPACK_IMPORTED_MODULE_1__.color)(node.type + (name ? '<' + name + '>' : '')) + ')'
39439 })
39440 }
39441
39442 return visit
39443
39444 function visit() {
39445 /** @type {ActionTuple} */
39446 let result = []
39447 /** @type {ActionTuple} */
39448 let subresult
39449 /** @type {number} */
39450 let offset
39451 /** @type {Array<Parent>} */
39452 let grandparents
39453
39454 if (!test || is(node, index, parents[parents.length - 1] || null)) {
39455 result = toResult(visitor(node, parents))
39456
39457 if (result[0] === EXIT) {
39458 return result
39459 }
39460 }
39461
39462 // @ts-expect-error looks like a parent.
39463 if (node.children && result[0] !== SKIP) {
39464 // @ts-expect-error looks like a parent.
39465 offset = (reverse ? node.children.length : -1) + step
39466 // @ts-expect-error looks like a parent.
39467 grandparents = parents.concat(node)
39468
39469 // @ts-expect-error looks like a parent.
39470 while (offset > -1 && offset < node.children.length) {
39471 // @ts-expect-error looks like a parent.
39472 subresult = factory(node.children[offset], offset, grandparents)()
39473
39474 if (subresult[0] === EXIT) {
39475 return subresult
39476 }
39477
39478 offset =
39479 typeof subresult[1] === 'number' ? subresult[1] : offset + step
39480 }
39481 }
39482
39483 return result
39484 }
39485 }
39486 }
39487 )
39488
39489 /**
39490 * Turn a return value into a clean result.
39491 *
39492 * @param {VisitorResult} value
39493 * Valid return values from visitors.
39494 * @returns {ActionTuple}
39495 * Clean result.
39496 */
39497 function toResult(value) {
39498 if (Array.isArray(value)) {
39499 return value
39500 }
39501
39502 if (typeof value === 'number') {
39503 return [CONTINUE, value]
39504 }
39505
39506 return [value]
39507 }
39508
39509
39510 /***/ }),
39511
39512 /***/ "../node_modules/unist-util-visit/lib/index.js":
39513 /*!*****************************************************!*\
39514 !*** ../node_modules/unist-util-visit/lib/index.js ***!
39515 \*****************************************************/
39516 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39517
39518 "use strict";
39519 __webpack_require__.r(__webpack_exports__);
39520 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39521 /* harmony export */ CONTINUE: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.CONTINUE),
39522 /* harmony export */ EXIT: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.EXIT),
39523 /* harmony export */ SKIP: () => (/* reexport safe */ unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.SKIP),
39524 /* harmony export */ visit: () => (/* binding */ visit)
39525 /* harmony export */ });
39526 /* 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");
39527 /**
39528 * @typedef {import('unist').Node} Node
39529 * @typedef {import('unist').Parent} Parent
39530 * @typedef {import('unist-util-is').Test} Test
39531 * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult
39532 */
39533
39534 /**
39535 * Check if `Child` can be a child of `Ancestor`.
39536 *
39537 * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns
39538 * `never`.
39539 *
39540 * @template {Node} Ancestor
39541 * Node type.
39542 * @template {Node} Child
39543 * Node type.
39544 * @typedef {(
39545 * Ancestor extends Parent
39546 * ? Child extends Ancestor['children'][number]
39547 * ? Ancestor
39548 * : never
39549 * : never
39550 * )} ParentsOf
39551 */
39552
39553 /**
39554 * @template {Node} [Visited=Node]
39555 * Visited node type.
39556 * @template {Parent} [Ancestor=Parent]
39557 * Ancestor type.
39558 * @callback Visitor
39559 * Handle a node (matching `test`, if given).
39560 *
39561 * Visitors are free to transform `node`.
39562 * They can also transform `parent`.
39563 *
39564 * Replacing `node` itself, if `SKIP` is not returned, still causes its
39565 * descendants to be walked (which is a bug).
39566 *
39567 * When adding or removing previous siblings of `node` (or next siblings, in
39568 * case of reverse), the `Visitor` should return a new `Index` to specify the
39569 * sibling to traverse after `node` is traversed.
39570 * Adding or removing next siblings of `node` (or previous siblings, in case
39571 * of reverse) is handled as expected without needing to return a new `Index`.
39572 *
39573 * Removing the children property of `parent` still results in them being
39574 * traversed.
39575 * @param {Visited} node
39576 * Found node.
39577 * @param {Visited extends Node ? number | null : never} index
39578 * Index of `node` in `parent`.
39579 * @param {Ancestor extends Node ? Ancestor | null : never} parent
39580 * Parent of `node`.
39581 * @returns {VisitorResult}
39582 * What to do next.
39583 *
39584 * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
39585 * An `Action` is treated as a tuple of `[Action]`.
39586 *
39587 * Passing a tuple back only makes sense if the `Action` is `SKIP`.
39588 * When the `Action` is `EXIT`, that action can be returned.
39589 * When the `Action` is `CONTINUE`, `Index` can be returned.
39590 */
39591
39592 /**
39593 * Build a typed `Visitor` function from a node and all possible parents.
39594 *
39595 * It will infer which values are passed as `node` and which as `parent`.
39596 *
39597 * @template {Node} Visited
39598 * Node type.
39599 * @template {Parent} Ancestor
39600 * Parent type.
39601 * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch
39602 */
39603
39604 /**
39605 * Build a typed `Visitor` function from a list of descendants and a test.
39606 *
39607 * It will infer which values are passed as `node` and which as `parent`.
39608 *
39609 * @template {Node} Descendant
39610 * Node type.
39611 * @template {Test} Check
39612 * Test type.
39613 * @typedef {(
39614 * BuildVisitorFromMatch<
39615 * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,
39616 * Extract<Descendant, Parent>
39617 * >
39618 * )} BuildVisitorFromDescendants
39619 */
39620
39621 /**
39622 * Build a typed `Visitor` function from a tree and a test.
39623 *
39624 * It will infer which values are passed as `node` and which as `parent`.
39625 *
39626 * @template {Node} [Tree=Node]
39627 * Node type.
39628 * @template {Test} [Check=string]
39629 * Test type.
39630 * @typedef {(
39631 * BuildVisitorFromDescendants<
39632 * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,
39633 * Check
39634 * >
39635 * )} BuildVisitor
39636 */
39637
39638
39639
39640 /**
39641 * Visit nodes.
39642 *
39643 * This algorithm performs *depth-first* *tree traversal* in *preorder*
39644 * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
39645 *
39646 * You can choose for which nodes `visitor` is called by passing a `test`.
39647 * For complex tests, you should test yourself in `visitor`, as it will be
39648 * faster and will have improved type information.
39649 *
39650 * Walking the tree is an intensive task.
39651 * Make use of the return values of the visitor when possible.
39652 * Instead of walking a tree multiple times, walk it once, use `unist-util-is`
39653 * to check if a node matches, and then perform different operations.
39654 *
39655 * You can change the tree.
39656 * See `Visitor` for more info.
39657 *
39658 * @param tree
39659 * Tree to traverse.
39660 * @param test
39661 * `unist-util-is`-compatible test
39662 * @param visitor
39663 * Handle each node.
39664 * @param reverse
39665 * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
39666 * @returns
39667 * Nothing.
39668 */
39669 const visit =
39670 /**
39671 * @type {(
39672 * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
39673 * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
39674 * )}
39675 */
39676 (
39677 /**
39678 * @param {Node} tree
39679 * @param {Test} test
39680 * @param {Visitor} visitor
39681 * @param {boolean | null | undefined} [reverse]
39682 * @returns {void}
39683 */
39684 function (tree, test, visitor, reverse) {
39685 if (typeof test === 'function' && typeof visitor !== 'function') {
39686 reverse = visitor
39687 visitor = test
39688 test = null
39689 }
39690
39691 (0,unist_util_visit_parents__WEBPACK_IMPORTED_MODULE_0__.visitParents)(tree, test, overload, reverse)
39692
39693 /**
39694 * @param {Node} node
39695 * @param {Array<Parent>} parents
39696 */
39697 function overload(node, parents) {
39698 const parent = parents[parents.length - 1]
39699 return visitor(
39700 node,
39701 parent ? parent.children.indexOf(node) : null,
39702 parent
39703 )
39704 }
39705 }
39706 )
39707
39708
39709
39710
39711 /***/ }),
39712
39713 /***/ "../node_modules/uvu/assert/index.mjs":
39714 /*!********************************************!*\
39715 !*** ../node_modules/uvu/assert/index.mjs ***!
39716 \********************************************/
39717 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39718
39719 "use strict";
39720 __webpack_require__.r(__webpack_exports__);
39721 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39722 /* harmony export */ Assertion: () => (/* binding */ Assertion),
39723 /* harmony export */ equal: () => (/* binding */ equal),
39724 /* harmony export */ fixture: () => (/* binding */ fixture),
39725 /* harmony export */ instance: () => (/* binding */ instance),
39726 /* harmony export */ is: () => (/* binding */ is),
39727 /* harmony export */ match: () => (/* binding */ match),
39728 /* harmony export */ not: () => (/* binding */ not),
39729 /* harmony export */ ok: () => (/* binding */ ok),
39730 /* harmony export */ snapshot: () => (/* binding */ snapshot),
39731 /* harmony export */ throws: () => (/* binding */ throws),
39732 /* harmony export */ type: () => (/* binding */ type),
39733 /* harmony export */ unreachable: () => (/* binding */ unreachable)
39734 /* harmony export */ });
39735 /* harmony import */ var dequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dequal */ "../node_modules/dequal/dist/index.mjs");
39736 /* harmony import */ var uvu_diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uvu/diff */ "../node_modules/uvu/diff/index.mjs");
39737
39738
39739
39740 function dedent(str) {
39741 str = str.replace(/\r?\n/g, '\n');
39742 let arr = str.match(/^[ \t]*(?=\S)/gm);
39743 let i = 0, min = 1/0, len = (arr||[]).length;
39744 for (; i < len; i++) min = Math.min(min, arr[i].length);
39745 return len && min ? str.replace(new RegExp(`^[ \\t]{${min}}`, 'gm'), '') : str;
39746 }
39747
39748 class Assertion extends Error {
39749 constructor(opts={}) {
39750 super(opts.message);
39751 this.name = 'Assertion';
39752 this.code = 'ERR_ASSERTION';
39753 if (Error.captureStackTrace) {
39754 Error.captureStackTrace(this, this.constructor);
39755 }
39756 this.details = opts.details || false;
39757 this.generated = !!opts.generated;
39758 this.operator = opts.operator;
39759 this.expects = opts.expects;
39760 this.actual = opts.actual;
39761 }
39762 }
39763
39764 function assert(bool, actual, expects, operator, detailer, backup, msg) {
39765 if (bool) return;
39766 let message = msg || backup;
39767 if (msg instanceof Error) throw msg;
39768 let details = detailer && detailer(actual, expects);
39769 throw new Assertion({ actual, expects, operator, message, details, generated: !msg });
39770 }
39771
39772 function ok(val, msg) {
39773 assert(!!val, false, true, 'ok', false, 'Expected value to be truthy', msg);
39774 }
39775
39776 function is(val, exp, msg) {
39777 assert(val === exp, val, exp, 'is', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.compare, 'Expected values to be strictly equal:', msg);
39778 }
39779
39780 function equal(val, exp, msg) {
39781 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);
39782 }
39783
39784 function unreachable(msg) {
39785 assert(false, true, false, 'unreachable', false, 'Expected not to be reached!', msg);
39786 }
39787
39788 function type(val, exp, msg) {
39789 let tmp = typeof val;
39790 assert(tmp === exp, tmp, exp, 'type', false, `Expected "${tmp}" to be "${exp}"`, msg);
39791 }
39792
39793 function instance(val, exp, msg) {
39794 let name = '`' + (exp.name || exp.constructor.name) + '`';
39795 assert(val instanceof exp, val, exp, 'instance', false, `Expected value to be an instance of ${name}`, msg);
39796 }
39797
39798 function match(val, exp, msg) {
39799 if (typeof exp === 'string') {
39800 assert(val.includes(exp), val, exp, 'match', false, `Expected value to include "${exp}" substring`, msg);
39801 } else {
39802 assert(exp.test(val), val, exp, 'match', false, `Expected value to match \`${String(exp)}\` pattern`, msg);
39803 }
39804 }
39805
39806 function snapshot(val, exp, msg) {
39807 val=dedent(val); exp=dedent(exp);
39808 assert(val === exp, val, exp, 'snapshot', uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines, 'Expected value to match snapshot:', msg);
39809 }
39810
39811 const lineNums = (x, y) => (0,uvu_diff__WEBPACK_IMPORTED_MODULE_1__.lines)(x, y, 1);
39812 function fixture(val, exp, msg) {
39813 val=dedent(val); exp=dedent(exp);
39814 assert(val === exp, val, exp, 'fixture', lineNums, 'Expected value to match fixture:', msg);
39815 }
39816
39817 function throws(blk, exp, msg) {
39818 if (!msg && typeof exp === 'string') {
39819 msg = exp; exp = null;
39820 }
39821
39822 try {
39823 blk();
39824 assert(false, false, true, 'throws', false, 'Expected function to throw', msg);
39825 } catch (err) {
39826 if (err instanceof Assertion) throw err;
39827
39828 if (typeof exp === 'function') {
39829 assert(exp(err), false, true, 'throws', false, 'Expected function to throw matching exception', msg);
39830 } else if (exp instanceof RegExp) {
39831 assert(exp.test(err.message), false, true, 'throws', false, `Expected function to throw exception matching \`${String(exp)}\` pattern`, msg);
39832 }
39833 }
39834 }
39835
39836 // ---
39837
39838 function not(val, msg) {
39839 assert(!val, true, false, 'not', false, 'Expected value to be falsey', msg);
39840 }
39841
39842 not.ok = not;
39843
39844 is.not = function (val, exp, msg) {
39845 assert(val !== exp, val, exp, 'is.not', false, 'Expected values not to be strictly equal', msg);
39846 }
39847
39848 not.equal = function (val, exp, msg) {
39849 assert(!(0,dequal__WEBPACK_IMPORTED_MODULE_0__.dequal)(val, exp), val, exp, 'not.equal', false, 'Expected values not to be deeply equal', msg);
39850 }
39851
39852 not.type = function (val, exp, msg) {
39853 let tmp = typeof val;
39854 assert(tmp !== exp, tmp, exp, 'not.type', false, `Expected "${tmp}" not to be "${exp}"`, msg);
39855 }
39856
39857 not.instance = function (val, exp, msg) {
39858 let name = '`' + (exp.name || exp.constructor.name) + '`';
39859 assert(!(val instanceof exp), val, exp, 'not.instance', false, `Expected value not to be an instance of ${name}`, msg);
39860 }
39861
39862 not.snapshot = function (val, exp, msg) {
39863 val=dedent(val); exp=dedent(exp);
39864 assert(val !== exp, val, exp, 'not.snapshot', false, 'Expected value not to match snapshot', msg);
39865 }
39866
39867 not.fixture = function (val, exp, msg) {
39868 val=dedent(val); exp=dedent(exp);
39869 assert(val !== exp, val, exp, 'not.fixture', false, 'Expected value not to match fixture', msg);
39870 }
39871
39872 not.match = function (val, exp, msg) {
39873 if (typeof exp === 'string') {
39874 assert(!val.includes(exp), val, exp, 'not.match', false, `Expected value not to include "${exp}" substring`, msg);
39875 } else {
39876 assert(!exp.test(val), val, exp, 'not.match', false, `Expected value not to match \`${String(exp)}\` pattern`, msg);
39877 }
39878 }
39879
39880 not.throws = function (blk, exp, msg) {
39881 if (!msg && typeof exp === 'string') {
39882 msg = exp; exp = null;
39883 }
39884
39885 try {
39886 blk();
39887 } catch (err) {
39888 if (typeof exp === 'function') {
39889 assert(!exp(err), true, false, 'not.throws', false, 'Expected function not to throw matching exception', msg);
39890 } else if (exp instanceof RegExp) {
39891 assert(!exp.test(err.message), true, false, 'not.throws', false, `Expected function not to throw exception matching \`${String(exp)}\` pattern`, msg);
39892 } else if (!exp) {
39893 assert(false, true, false, 'not.throws', false, 'Expected function not to throw', msg);
39894 }
39895 }
39896 }
39897
39898
39899 /***/ }),
39900
39901 /***/ "../node_modules/uvu/diff/index.mjs":
39902 /*!******************************************!*\
39903 !*** ../node_modules/uvu/diff/index.mjs ***!
39904 \******************************************/
39905 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
39906
39907 "use strict";
39908 __webpack_require__.r(__webpack_exports__);
39909 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39910 /* harmony export */ arrays: () => (/* binding */ arrays),
39911 /* harmony export */ chars: () => (/* binding */ chars),
39912 /* harmony export */ circular: () => (/* binding */ circular),
39913 /* harmony export */ compare: () => (/* binding */ compare),
39914 /* harmony export */ direct: () => (/* binding */ direct),
39915 /* harmony export */ lines: () => (/* binding */ lines),
39916 /* harmony export */ sort: () => (/* binding */ sort),
39917 /* harmony export */ stringify: () => (/* binding */ stringify)
39918 /* harmony export */ });
39919 /* harmony import */ var kleur__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kleur */ "../node_modules/uvu/node_modules/kleur/index.mjs");
39920 /* harmony import */ var diff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diff */ "../node_modules/diff/lib/index.mjs");
39921
39922
39923
39924 const colors = {
39925 '--': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red,
39926 '··': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].grey,
39927 '++': kleur__WEBPACK_IMPORTED_MODULE_0__["default"].green,
39928 };
39929
39930 const TITLE = kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim().italic;
39931 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('↵');
39932 const LOG = (sym, str) => colors[sym](sym + PRETTY(str)) + '\n';
39933 const LINE = (num, x) => kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim('L' + String(num).padStart(x, '0') + ' ');
39934 const PRETTY = str => str.replace(/[ ]/g, SPACE).replace(/\t/g, TAB).replace(/(\r?\n)/g, NL);
39935
39936 function line(obj, prev, pad) {
39937 let char = obj.removed ? '--' : obj.added ? '++' : '··';
39938 let arr = obj.value.replace(/\r?\n$/, '').split('\n');
39939 let i=0, tmp, out='';
39940
39941 if (obj.added) out += colors[char]().underline(TITLE('Expected:')) + '\n';
39942 else if (obj.removed) out += colors[char]().underline(TITLE('Actual:')) + '\n';
39943
39944 for (; i < arr.length; i++) {
39945 tmp = arr[i];
39946 if (tmp != null) {
39947 if (prev) out += LINE(prev + i, pad);
39948 out += LOG(char, tmp || '\n');
39949 }
39950 }
39951
39952 return out;
39953 }
39954
39955 // TODO: want better diffing
39956 //~> complex items bail outright
39957 function arrays(input, expect) {
39958 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffArrays(input, expect);
39959 let i=0, j=0, k=0, tmp, val, char, isObj, str;
39960 let out = LOG('··', '[');
39961
39962 for (; i < arr.length; i++) {
39963 char = (tmp = arr[i]).removed ? '--' : tmp.added ? '++' : '··';
39964
39965 if (tmp.added) {
39966 out += colors[char]().underline(TITLE('Expected:')) + '\n';
39967 } else if (tmp.removed) {
39968 out += colors[char]().underline(TITLE('Actual:')) + '\n';
39969 }
39970
39971 for (j=0; j < tmp.value.length; j++) {
39972 isObj = (tmp.value[j] && typeof tmp.value[j] === 'object');
39973 val = stringify(tmp.value[j]).split(/\r?\n/g);
39974 for (k=0; k < val.length;) {
39975 str = ' ' + val[k++] + (isObj ? '' : ',');
39976 if (isObj && k === val.length && (j + 1) < tmp.value.length) str += ',';
39977 out += LOG(char, str);
39978 }
39979 }
39980 }
39981
39982 return out + LOG('··', ']');
39983 }
39984
39985 function lines(input, expect, linenum = 0) {
39986 let i=0, tmp, output='';
39987 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffLines(input, expect);
39988 let pad = String(expect.split(/\r?\n/g).length - linenum).length;
39989
39990 for (; i < arr.length; i++) {
39991 output += line(tmp = arr[i], linenum, pad);
39992 if (linenum && !tmp.removed) linenum += tmp.count;
39993 }
39994
39995 return output;
39996 }
39997
39998 function chars(input, expect) {
39999 let arr = diff__WEBPACK_IMPORTED_MODULE_1__.diffChars(input, expect);
40000 let i=0, output='', tmp;
40001
40002 let l1 = input.length;
40003 let l2 = expect.length;
40004
40005 let p1 = PRETTY(input);
40006 let p2 = PRETTY(expect);
40007
40008 tmp = arr[i];
40009
40010 if (l1 === l2) {
40011 // no length offsets
40012 } else if (tmp.removed && arr[i + 1]) {
40013 let del = tmp.count - arr[i + 1].count;
40014 if (del == 0) {
40015 // wash~
40016 } else if (del > 0) {
40017 expect = ' '.repeat(del) + expect;
40018 p2 = ' '.repeat(del) + p2;
40019 l2 += del;
40020 } else if (del < 0) {
40021 input = ' '.repeat(-del) + input;
40022 p1 = ' '.repeat(-del) + p1;
40023 l1 += -del;
40024 }
40025 }
40026
40027 output += direct(p1, p2, l1, l2);
40028
40029 if (l1 === l2) {
40030 for (tmp=' '; i < l1; i++) {
40031 tmp += input[i] === expect[i] ? ' ' : '^';
40032 }
40033 } else {
40034 for (tmp=' '; i < arr.length; i++) {
40035 tmp += ((arr[i].added || arr[i].removed) ? '^' : ' ').repeat(Math.max(arr[i].count, 0));
40036 if (i + 1 < arr.length && ((arr[i].added && arr[i+1].removed) || (arr[i].removed && arr[i+1].added))) {
40037 arr[i + 1].count -= arr[i].count;
40038 }
40039 }
40040 }
40041
40042 return output + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].red(tmp);
40043 }
40044
40045 function direct(input, expect, lenA = String(input).length, lenB = String(expect).length) {
40046 let gutter = 4;
40047 let lenC = Math.max(lenA, lenB);
40048 let typeA=typeof input, typeB=typeof expect;
40049
40050 if (typeA !== typeB) {
40051 gutter = 2;
40052
40053 let delA = gutter + lenC - lenA;
40054 let delB = gutter + lenC - lenB;
40055
40056 input += ' '.repeat(delA) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeA}]`);
40057 expect += ' '.repeat(delB) + kleur__WEBPACK_IMPORTED_MODULE_0__["default"].dim(`[${typeB}]`);
40058
40059 lenA += delA + typeA.length + 2;
40060 lenB += delB + typeB.length + 2;
40061 lenC = Math.max(lenA, lenB);
40062 }
40063
40064 let output = colors['++']('++' + expect + ' '.repeat(gutter + lenC - lenB) + TITLE('(Expected)')) + '\n';
40065 return output + colors['--']('--' + input + ' '.repeat(gutter + lenC - lenA) + TITLE('(Actual)')) + '\n';
40066 }
40067
40068 function sort(input, expect) {
40069 var k, i=0, tmp, isArr = Array.isArray(input);
40070 var keys=[], out=isArr ? Array(input.length) : {};
40071
40072 if (isArr) {
40073 for (i=0; i < out.length; i++) {
40074 tmp = input[i];
40075 if (!tmp || typeof tmp !== 'object') out[i] = tmp;
40076 else out[i] = sort(tmp, expect[i]); // might not be right
40077 }
40078 } else {
40079 for (k in expect)
40080 keys.push(k);
40081
40082 for (; i < keys.length; i++) {
40083 if (Object.prototype.hasOwnProperty.call(input, k = keys[i])) {
40084 if (!(tmp = input[k]) || typeof tmp !== 'object') out[k] = tmp;
40085 else out[k] = sort(tmp, expect[k]);
40086 }
40087 }
40088
40089 for (k in input) {
40090 if (!out.hasOwnProperty(k)) {
40091 out[k] = input[k]; // expect didnt have
40092 }
40093 }
40094 }
40095
40096 return out;
40097 }
40098
40099 function circular() {
40100 var cache = new Set;
40101 return function print(key, val) {
40102 if (val === void 0) return '[__VOID__]';
40103 if (typeof val === 'number' && val !== val) return '[__NAN__]';
40104 if (typeof val === 'bigint') return val.toString();
40105 if (!val || typeof val !== 'object') return val;
40106 if (cache.has(val)) return '[Circular]';
40107 cache.add(val); return val;
40108 }
40109 }
40110
40111 function stringify(input) {
40112 return JSON.stringify(input, circular(), 2).replace(/"\[__NAN__\]"/g, 'NaN').replace(/"\[__VOID__\]"/g, 'undefined');
40113 }
40114
40115 function compare(input, expect) {
40116 if (Array.isArray(expect) && Array.isArray(input)) return arrays(input, expect);
40117 if (expect instanceof RegExp) return chars(''+input, ''+expect);
40118
40119 let isA = input && typeof input == 'object';
40120 let isB = expect && typeof expect == 'object';
40121
40122 if (isA && isB) input = sort(input, expect);
40123 if (isB) expect = stringify(expect);
40124 if (isA) input = stringify(input);
40125
40126 if (expect && typeof expect == 'object') {
40127 input = stringify(sort(input, expect));
40128 expect = stringify(expect);
40129 }
40130
40131 isA = typeof input == 'string';
40132 isB = typeof expect == 'string';
40133
40134 if (isA && /\r?\n/.test(input)) return lines(input, ''+expect);
40135 if (isB && /\r?\n/.test(expect)) return lines(''+input, expect);
40136 if (isA && isB) return chars(input, expect);
40137
40138 return direct(input, expect);
40139 }
40140
40141
40142 /***/ }),
40143
40144 /***/ "../node_modules/uvu/node_modules/kleur/index.mjs":
40145 /*!********************************************************!*\
40146 !*** ../node_modules/uvu/node_modules/kleur/index.mjs ***!
40147 \********************************************************/
40148 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40149
40150 "use strict";
40151 __webpack_require__.r(__webpack_exports__);
40152 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40153 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
40154 /* harmony export */ });
40155
40156
40157 let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;
40158 if (typeof process !== 'undefined') {
40159 ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});
40160 isTTY = process.stdout && process.stdout.isTTY;
40161 }
40162
40163 const $ = {
40164 enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (
40165 FORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY
40166 ),
40167
40168 // modifiers
40169 reset: init(0, 0),
40170 bold: init(1, 22),
40171 dim: init(2, 22),
40172 italic: init(3, 23),
40173 underline: init(4, 24),
40174 inverse: init(7, 27),
40175 hidden: init(8, 28),
40176 strikethrough: init(9, 29),
40177
40178 // colors
40179 black: init(30, 39),
40180 red: init(31, 39),
40181 green: init(32, 39),
40182 yellow: init(33, 39),
40183 blue: init(34, 39),
40184 magenta: init(35, 39),
40185 cyan: init(36, 39),
40186 white: init(37, 39),
40187 gray: init(90, 39),
40188 grey: init(90, 39),
40189
40190 // background colors
40191 bgBlack: init(40, 49),
40192 bgRed: init(41, 49),
40193 bgGreen: init(42, 49),
40194 bgYellow: init(43, 49),
40195 bgBlue: init(44, 49),
40196 bgMagenta: init(45, 49),
40197 bgCyan: init(46, 49),
40198 bgWhite: init(47, 49)
40199 };
40200
40201 function run(arr, str) {
40202 let i=0, tmp, beg='', end='';
40203 for (; i < arr.length; i++) {
40204 tmp = arr[i];
40205 beg += tmp.open;
40206 end += tmp.close;
40207 if (!!~str.indexOf(tmp.close)) {
40208 str = str.replace(tmp.rgx, tmp.close + tmp.open);
40209 }
40210 }
40211 return beg + str + end;
40212 }
40213
40214 function chain(has, keys) {
40215 let ctx = { has, keys };
40216
40217 ctx.reset = $.reset.bind(ctx);
40218 ctx.bold = $.bold.bind(ctx);
40219 ctx.dim = $.dim.bind(ctx);
40220 ctx.italic = $.italic.bind(ctx);
40221 ctx.underline = $.underline.bind(ctx);
40222 ctx.inverse = $.inverse.bind(ctx);
40223 ctx.hidden = $.hidden.bind(ctx);
40224 ctx.strikethrough = $.strikethrough.bind(ctx);
40225
40226 ctx.black = $.black.bind(ctx);
40227 ctx.red = $.red.bind(ctx);
40228 ctx.green = $.green.bind(ctx);
40229 ctx.yellow = $.yellow.bind(ctx);
40230 ctx.blue = $.blue.bind(ctx);
40231 ctx.magenta = $.magenta.bind(ctx);
40232 ctx.cyan = $.cyan.bind(ctx);
40233 ctx.white = $.white.bind(ctx);
40234 ctx.gray = $.gray.bind(ctx);
40235 ctx.grey = $.grey.bind(ctx);
40236
40237 ctx.bgBlack = $.bgBlack.bind(ctx);
40238 ctx.bgRed = $.bgRed.bind(ctx);
40239 ctx.bgGreen = $.bgGreen.bind(ctx);
40240 ctx.bgYellow = $.bgYellow.bind(ctx);
40241 ctx.bgBlue = $.bgBlue.bind(ctx);
40242 ctx.bgMagenta = $.bgMagenta.bind(ctx);
40243 ctx.bgCyan = $.bgCyan.bind(ctx);
40244 ctx.bgWhite = $.bgWhite.bind(ctx);
40245
40246 return ctx;
40247 }
40248
40249 function init(open, close) {
40250 let blk = {
40251 open: `\x1b[${open}m`,
40252 close: `\x1b[${close}m`,
40253 rgx: new RegExp(`\\x1b\\[${close}m`, 'g')
40254 };
40255 return function (txt) {
40256 if (this !== void 0 && this.has !== void 0) {
40257 !!~this.has.indexOf(open) || (this.has.push(open),this.keys.push(blk));
40258 return txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';
40259 }
40260 return txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';
40261 };
40262 }
40263
40264 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($);
40265
40266
40267 /***/ }),
40268
40269 /***/ "../node_modules/vfile-message/lib/index.js":
40270 /*!**************************************************!*\
40271 !*** ../node_modules/vfile-message/lib/index.js ***!
40272 \**************************************************/
40273 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40274
40275 "use strict";
40276 __webpack_require__.r(__webpack_exports__);
40277 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40278 /* harmony export */ VFileMessage: () => (/* binding */ VFileMessage)
40279 /* harmony export */ });
40280 /* 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");
40281 /**
40282 * @typedef {import('unist').Node} Node
40283 * @typedef {import('unist').Position} Position
40284 * @typedef {import('unist').Point} Point
40285 * @typedef {object & {type: string, position?: Position | undefined}} NodeLike
40286 */
40287
40288
40289
40290 /**
40291 * Message.
40292 */
40293 class VFileMessage extends Error {
40294 /**
40295 * Create a message for `reason` at `place` from `origin`.
40296 *
40297 * When an error is passed in as `reason`, the `stack` is copied.
40298 *
40299 * @param {string | Error | VFileMessage} reason
40300 * Reason for message, uses the stack and message of the error if given.
40301 *
40302 * > 👉 **Note**: you should use markdown.
40303 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40304 * Place in file where the message occurred.
40305 * @param {string | null | undefined} [origin]
40306 * Place in code where the message originates (example:
40307 * `'my-package:my-rule'` or `'my-rule'`).
40308 * @returns
40309 * Instance of `VFileMessage`.
40310 */
40311 // To do: next major: expose `undefined` everywhere instead of `null`.
40312 constructor(reason, place, origin) {
40313 /** @type {[string | null, string | null]} */
40314 const parts = [null, null]
40315 /** @type {Position} */
40316 let position = {
40317 // @ts-expect-error: we always follows the structure of `position`.
40318 start: {line: null, column: null},
40319 // @ts-expect-error: "
40320 end: {line: null, column: null}
40321 }
40322
40323 super()
40324
40325 if (typeof place === 'string') {
40326 origin = place
40327 place = undefined
40328 }
40329
40330 if (typeof origin === 'string') {
40331 const index = origin.indexOf(':')
40332
40333 if (index === -1) {
40334 parts[1] = origin
40335 } else {
40336 parts[0] = origin.slice(0, index)
40337 parts[1] = origin.slice(index + 1)
40338 }
40339 }
40340
40341 if (place) {
40342 // Node.
40343 if ('type' in place || 'position' in place) {
40344 if (place.position) {
40345 // To do: next major: deep clone.
40346 // @ts-expect-error: looks like a position.
40347 position = place.position
40348 }
40349 }
40350 // Position.
40351 else if ('start' in place || 'end' in place) {
40352 // @ts-expect-error: looks like a position.
40353 // To do: next major: deep clone.
40354 position = place
40355 }
40356 // Point.
40357 else if ('line' in place || 'column' in place) {
40358 // To do: next major: deep clone.
40359 position.start = place
40360 }
40361 }
40362
40363 // Fields from `Error`.
40364 /**
40365 * Serialized positional info of error.
40366 *
40367 * On normal errors, this would be something like `ParseError`, buit in
40368 * `VFile` messages we use this space to show where an error happened.
40369 */
40370 this.name = (0,unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_0__.stringifyPosition)(place) || '1:1'
40371
40372 /**
40373 * Reason for message.
40374 *
40375 * @type {string}
40376 */
40377 this.message = typeof reason === 'object' ? reason.message : reason
40378
40379 /**
40380 * Stack of message.
40381 *
40382 * This is used by normal errors to show where something happened in
40383 * programming code, irrelevant for `VFile` messages,
40384 *
40385 * @type {string}
40386 */
40387 this.stack = ''
40388
40389 if (typeof reason === 'object' && reason.stack) {
40390 this.stack = reason.stack
40391 }
40392
40393 /**
40394 * Reason for message.
40395 *
40396 * > 👉 **Note**: you should use markdown.
40397 *
40398 * @type {string}
40399 */
40400 this.reason = this.message
40401
40402 /* eslint-disable no-unused-expressions */
40403 /**
40404 * State of problem.
40405 *
40406 * * `true` — marks associated file as no longer processable (error)
40407 * * `false` — necessitates a (potential) change (warning)
40408 * * `null | undefined` — for things that might not need changing (info)
40409 *
40410 * @type {boolean | null | undefined}
40411 */
40412 this.fatal
40413
40414 /**
40415 * Starting line of error.
40416 *
40417 * @type {number | null}
40418 */
40419 this.line = position.start.line
40420
40421 /**
40422 * Starting column of error.
40423 *
40424 * @type {number | null}
40425 */
40426 this.column = position.start.column
40427
40428 /**
40429 * Full unist position.
40430 *
40431 * @type {Position | null}
40432 */
40433 this.position = position
40434
40435 /**
40436 * Namespace of message (example: `'my-package'`).
40437 *
40438 * @type {string | null}
40439 */
40440 this.source = parts[0]
40441
40442 /**
40443 * Category of message (example: `'my-rule'`).
40444 *
40445 * @type {string | null}
40446 */
40447 this.ruleId = parts[1]
40448
40449 /**
40450 * Path of a file (used throughout the `VFile` ecosystem).
40451 *
40452 * @type {string | null}
40453 */
40454 this.file
40455
40456 // The following fields are “well known”.
40457 // Not standard.
40458 // Feel free to add other non-standard fields to your messages.
40459
40460 /**
40461 * Specify the source value that’s being reported, which is deemed
40462 * incorrect.
40463 *
40464 * @type {string | null}
40465 */
40466 this.actual
40467
40468 /**
40469 * Suggest acceptable values that can be used instead of `actual`.
40470 *
40471 * @type {Array<string> | null}
40472 */
40473 this.expected
40474
40475 /**
40476 * Link to docs for the message.
40477 *
40478 * > 👉 **Note**: this must be an absolute URL that can be passed as `x`
40479 * > to `new URL(x)`.
40480 *
40481 * @type {string | null}
40482 */
40483 this.url
40484
40485 /**
40486 * Long form description of the message (you should use markdown).
40487 *
40488 * @type {string | null}
40489 */
40490 this.note
40491 /* eslint-enable no-unused-expressions */
40492 }
40493 }
40494
40495 VFileMessage.prototype.file = ''
40496 VFileMessage.prototype.name = ''
40497 VFileMessage.prototype.reason = ''
40498 VFileMessage.prototype.message = ''
40499 VFileMessage.prototype.stack = ''
40500 VFileMessage.prototype.fatal = null
40501 VFileMessage.prototype.column = null
40502 VFileMessage.prototype.line = null
40503 VFileMessage.prototype.source = null
40504 VFileMessage.prototype.ruleId = null
40505 VFileMessage.prototype.position = null
40506
40507
40508 /***/ }),
40509
40510 /***/ "../node_modules/vfile/lib/index.js":
40511 /*!******************************************!*\
40512 !*** ../node_modules/vfile/lib/index.js ***!
40513 \******************************************/
40514 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40515
40516 "use strict";
40517 __webpack_require__.r(__webpack_exports__);
40518 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40519 /* harmony export */ VFile: () => (/* binding */ VFile)
40520 /* harmony export */ });
40521 /* harmony import */ var is_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-buffer */ "../node_modules/is-buffer/index.js");
40522 /* harmony import */ var vfile_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vfile-message */ "../node_modules/vfile-message/lib/index.js");
40523 /* harmony import */ var _minpath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./minpath.js */ "../node_modules/vfile/lib/minpath.browser.js");
40524 /* harmony import */ var _minproc_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minproc.js */ "../node_modules/vfile/lib/minproc.browser.js");
40525 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.shared.js");
40526 /* harmony import */ var _minurl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minurl.js */ "../node_modules/vfile/lib/minurl.browser.js");
40527 /**
40528 * @typedef {import('unist').Node} Node
40529 * @typedef {import('unist').Position} Position
40530 * @typedef {import('unist').Point} Point
40531 * @typedef {import('./minurl.shared.js').URL} URL
40532 * @typedef {import('../index.js').Data} Data
40533 * @typedef {import('../index.js').Value} Value
40534 */
40535
40536 /**
40537 * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike
40538 *
40539 * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding
40540 * Encodings supported by the buffer class.
40541 *
40542 * This is a copy of the types from Node, copied to prevent Node globals from
40543 * being needed.
40544 * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>
40545 *
40546 * @typedef {Options | URL | Value | VFile} Compatible
40547 * Things that can be passed to the constructor.
40548 *
40549 * @typedef VFileCoreOptions
40550 * Set multiple values.
40551 * @property {Value | null | undefined} [value]
40552 * Set `value`.
40553 * @property {string | null | undefined} [cwd]
40554 * Set `cwd`.
40555 * @property {Array<string> | null | undefined} [history]
40556 * Set `history`.
40557 * @property {URL | string | null | undefined} [path]
40558 * Set `path`.
40559 * @property {string | null | undefined} [basename]
40560 * Set `basename`.
40561 * @property {string | null | undefined} [stem]
40562 * Set `stem`.
40563 * @property {string | null | undefined} [extname]
40564 * Set `extname`.
40565 * @property {string | null | undefined} [dirname]
40566 * Set `dirname`.
40567 * @property {Data | null | undefined} [data]
40568 * Set `data`.
40569 *
40570 * @typedef Map
40571 * Raw source map.
40572 *
40573 * See:
40574 * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.
40575 * @property {number} version
40576 * Which version of the source map spec this map is following.
40577 * @property {Array<string>} sources
40578 * An array of URLs to the original source files.
40579 * @property {Array<string>} names
40580 * An array of identifiers which can be referenced by individual mappings.
40581 * @property {string | undefined} [sourceRoot]
40582 * The URL root from which all sources are relative.
40583 * @property {Array<string> | undefined} [sourcesContent]
40584 * An array of contents of the original source files.
40585 * @property {string} mappings
40586 * A string of base64 VLQs which contain the actual mappings.
40587 * @property {string} file
40588 * The generated file this source map is associated with.
40589 *
40590 * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options
40591 * Configuration.
40592 *
40593 * A bunch of keys that will be shallow copied over to the new file.
40594 *
40595 * @typedef {Record<string, unknown>} ReporterSettings
40596 * Configuration for reporters.
40597 */
40598
40599 /**
40600 * @template {ReporterSettings} Settings
40601 * Options type.
40602 * @callback Reporter
40603 * Type for a reporter.
40604 * @param {Array<VFile>} files
40605 * Files to report.
40606 * @param {Settings} options
40607 * Configuration.
40608 * @returns {string}
40609 * Report.
40610 */
40611
40612
40613
40614
40615
40616
40617
40618 /**
40619 * Order of setting (least specific to most), we need this because otherwise
40620 * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a
40621 * stem can be set.
40622 *
40623 * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}
40624 */
40625 const order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']
40626
40627 class VFile {
40628 /**
40629 * Create a new virtual file.
40630 *
40631 * `options` is treated as:
40632 *
40633 * * `string` or `Buffer` — `{value: options}`
40634 * * `URL` — `{path: options}`
40635 * * `VFile` — shallow copies its data over to the new file
40636 * * `object` — all fields are shallow copied over to the new file
40637 *
40638 * Path related fields are set in the following order (least specific to
40639 * most specific): `history`, `path`, `basename`, `stem`, `extname`,
40640 * `dirname`.
40641 *
40642 * You cannot set `dirname` or `extname` without setting either `history`,
40643 * `path`, `basename`, or `stem` too.
40644 *
40645 * @param {Compatible | null | undefined} [value]
40646 * File value.
40647 * @returns
40648 * New instance.
40649 */
40650 constructor(value) {
40651 /** @type {Options | VFile} */
40652 let options
40653
40654 if (!value) {
40655 options = {}
40656 } else if (typeof value === 'string' || buffer(value)) {
40657 options = {value}
40658 } else if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(value)) {
40659 options = {path: value}
40660 } else {
40661 options = value
40662 }
40663
40664 /**
40665 * Place to store custom information (default: `{}`).
40666 *
40667 * It’s OK to store custom data directly on the file but moving it to
40668 * `data` is recommended.
40669 *
40670 * @type {Data}
40671 */
40672 this.data = {}
40673
40674 /**
40675 * List of messages associated with the file.
40676 *
40677 * @type {Array<VFileMessage>}
40678 */
40679 this.messages = []
40680
40681 /**
40682 * List of filepaths the file moved between.
40683 *
40684 * The first is the original path and the last is the current path.
40685 *
40686 * @type {Array<string>}
40687 */
40688 this.history = []
40689
40690 /**
40691 * Base of `path` (default: `process.cwd()` or `'/'` in browsers).
40692 *
40693 * @type {string}
40694 */
40695 this.cwd = _minproc_js__WEBPACK_IMPORTED_MODULE_2__.proc.cwd()
40696
40697 /* eslint-disable no-unused-expressions */
40698 /**
40699 * Raw value.
40700 *
40701 * @type {Value}
40702 */
40703 this.value
40704
40705 // The below are non-standard, they are “well-known”.
40706 // As in, used in several tools.
40707
40708 /**
40709 * Whether a file was saved to disk.
40710 *
40711 * This is used by vfile reporters.
40712 *
40713 * @type {boolean}
40714 */
40715 this.stored
40716
40717 /**
40718 * Custom, non-string, compiled, representation.
40719 *
40720 * This is used by unified to store non-string results.
40721 * One example is when turning markdown into React nodes.
40722 *
40723 * @type {unknown}
40724 */
40725 this.result
40726
40727 /**
40728 * Source map.
40729 *
40730 * This type is equivalent to the `RawSourceMap` type from the `source-map`
40731 * module.
40732 *
40733 * @type {Map | null | undefined}
40734 */
40735 this.map
40736 /* eslint-enable no-unused-expressions */
40737
40738 // Set path related properties in the correct order.
40739 let index = -1
40740
40741 while (++index < order.length) {
40742 const prop = order[index]
40743
40744 // Note: we specifically use `in` instead of `hasOwnProperty` to accept
40745 // `vfile`s too.
40746 if (
40747 prop in options &&
40748 options[prop] !== undefined &&
40749 options[prop] !== null
40750 ) {
40751 // @ts-expect-error: TS doesn’t understand basic reality.
40752 this[prop] = prop === 'history' ? [...options[prop]] : options[prop]
40753 }
40754 }
40755
40756 /** @type {string} */
40757 let prop
40758
40759 // Set non-path related properties.
40760 for (prop in options) {
40761 // @ts-expect-error: fine to set other things.
40762 if (!order.includes(prop)) {
40763 // @ts-expect-error: fine to set other things.
40764 this[prop] = options[prop]
40765 }
40766 }
40767 }
40768
40769 /**
40770 * Get the full path (example: `'~/index.min.js'`).
40771 *
40772 * @returns {string}
40773 */
40774 get path() {
40775 return this.history[this.history.length - 1]
40776 }
40777
40778 /**
40779 * Set the full path (example: `'~/index.min.js'`).
40780 *
40781 * Cannot be nullified.
40782 * You can set a file URL (a `URL` object with a `file:` protocol) which will
40783 * be turned into a path with `url.fileURLToPath`.
40784 *
40785 * @param {string | URL} path
40786 */
40787 set path(path) {
40788 if ((0,_minurl_js__WEBPACK_IMPORTED_MODULE_1__.isUrl)(path)) {
40789 path = (0,_minurl_js__WEBPACK_IMPORTED_MODULE_3__.urlToPath)(path)
40790 }
40791
40792 assertNonEmpty(path, 'path')
40793
40794 if (this.path !== path) {
40795 this.history.push(path)
40796 }
40797 }
40798
40799 /**
40800 * Get the parent path (example: `'~'`).
40801 */
40802 get dirname() {
40803 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.dirname(this.path) : undefined
40804 }
40805
40806 /**
40807 * Set the parent path (example: `'~'`).
40808 *
40809 * Cannot be set if there’s no `path` yet.
40810 */
40811 set dirname(dirname) {
40812 assertPath(this.basename, 'dirname')
40813 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(dirname || '', this.basename)
40814 }
40815
40816 /**
40817 * Get the basename (including extname) (example: `'index.min.js'`).
40818 */
40819 get basename() {
40820 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path) : undefined
40821 }
40822
40823 /**
40824 * Set basename (including extname) (`'index.min.js'`).
40825 *
40826 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40827 * on windows).
40828 * Cannot be nullified (use `file.path = file.dirname` instead).
40829 */
40830 set basename(basename) {
40831 assertNonEmpty(basename, 'basename')
40832 assertPart(basename, 'basename')
40833 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', basename)
40834 }
40835
40836 /**
40837 * Get the extname (including dot) (example: `'.js'`).
40838 */
40839 get extname() {
40840 return typeof this.path === 'string' ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.extname(this.path) : undefined
40841 }
40842
40843 /**
40844 * Set the extname (including dot) (example: `'.js'`).
40845 *
40846 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40847 * on windows).
40848 * Cannot be set if there’s no `path` yet.
40849 */
40850 set extname(extname) {
40851 assertPart(extname, 'extname')
40852 assertPath(this.dirname, 'extname')
40853
40854 if (extname) {
40855 if (extname.charCodeAt(0) !== 46 /* `.` */) {
40856 throw new Error('`extname` must start with `.`')
40857 }
40858
40859 if (extname.includes('.', 1)) {
40860 throw new Error('`extname` cannot contain multiple dots')
40861 }
40862 }
40863
40864 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname, this.stem + (extname || ''))
40865 }
40866
40867 /**
40868 * Get the stem (basename w/o extname) (example: `'index.min'`).
40869 */
40870 get stem() {
40871 return typeof this.path === 'string'
40872 ? _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.basename(this.path, this.extname)
40873 : undefined
40874 }
40875
40876 /**
40877 * Set the stem (basename w/o extname) (example: `'index.min'`).
40878 *
40879 * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
40880 * on windows).
40881 * Cannot be nullified (use `file.path = file.dirname` instead).
40882 */
40883 set stem(stem) {
40884 assertNonEmpty(stem, 'stem')
40885 assertPart(stem, 'stem')
40886 this.path = _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.join(this.dirname || '', stem + (this.extname || ''))
40887 }
40888
40889 /**
40890 * Serialize the file.
40891 *
40892 * @param {BufferEncoding | null | undefined} [encoding='utf8']
40893 * Character encoding to understand `value` as when it’s a `Buffer`
40894 * (default: `'utf8'`).
40895 * @returns {string}
40896 * Serialized file.
40897 */
40898 toString(encoding) {
40899 return (this.value || '').toString(encoding || undefined)
40900 }
40901
40902 /**
40903 * Create a warning message associated with the file.
40904 *
40905 * Its `fatal` is set to `false` and `file` is set to the current file path.
40906 * Its added to `file.messages`.
40907 *
40908 * @param {string | Error | VFileMessage} reason
40909 * Reason for message, uses the stack and message of the error if given.
40910 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40911 * Place in file where the message occurred.
40912 * @param {string | null | undefined} [origin]
40913 * Place in code where the message originates (example:
40914 * `'my-package:my-rule'` or `'my-rule'`).
40915 * @returns {VFileMessage}
40916 * Message.
40917 */
40918 message(reason, place, origin) {
40919 const message = new vfile_message__WEBPACK_IMPORTED_MODULE_5__.VFileMessage(reason, place, origin)
40920
40921 if (this.path) {
40922 message.name = this.path + ':' + message.name
40923 message.file = this.path
40924 }
40925
40926 message.fatal = false
40927
40928 this.messages.push(message)
40929
40930 return message
40931 }
40932
40933 /**
40934 * Create an info message associated with the file.
40935 *
40936 * Its `fatal` is set to `null` and `file` is set to the current file path.
40937 * Its added to `file.messages`.
40938 *
40939 * @param {string | Error | VFileMessage} reason
40940 * Reason for message, uses the stack and message of the error if given.
40941 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40942 * Place in file where the message occurred.
40943 * @param {string | null | undefined} [origin]
40944 * Place in code where the message originates (example:
40945 * `'my-package:my-rule'` or `'my-rule'`).
40946 * @returns {VFileMessage}
40947 * Message.
40948 */
40949 info(reason, place, origin) {
40950 const message = this.message(reason, place, origin)
40951
40952 message.fatal = null
40953
40954 return message
40955 }
40956
40957 /**
40958 * Create a fatal error associated with the file.
40959 *
40960 * Its `fatal` is set to `true` and `file` is set to the current file path.
40961 * Its added to `file.messages`.
40962 *
40963 * > 👉 **Note**: a fatal error means that a file is no longer processable.
40964 *
40965 * @param {string | Error | VFileMessage} reason
40966 * Reason for message, uses the stack and message of the error if given.
40967 * @param {Node | NodeLike | Position | Point | null | undefined} [place]
40968 * Place in file where the message occurred.
40969 * @param {string | null | undefined} [origin]
40970 * Place in code where the message originates (example:
40971 * `'my-package:my-rule'` or `'my-rule'`).
40972 * @returns {never}
40973 * Message.
40974 * @throws {VFileMessage}
40975 * Message.
40976 */
40977 fail(reason, place, origin) {
40978 const message = this.message(reason, place, origin)
40979
40980 message.fatal = true
40981
40982 throw message
40983 }
40984 }
40985
40986 /**
40987 * Assert that `part` is not a path (as in, does not contain `path.sep`).
40988 *
40989 * @param {string | null | undefined} part
40990 * File path part.
40991 * @param {string} name
40992 * Part name.
40993 * @returns {void}
40994 * Nothing.
40995 */
40996 function assertPart(part, name) {
40997 if (part && part.includes(_minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep)) {
40998 throw new Error(
40999 '`' + name + '` cannot be a path: did not expect `' + _minpath_js__WEBPACK_IMPORTED_MODULE_4__.path.sep + '`'
41000 )
41001 }
41002 }
41003
41004 /**
41005 * Assert that `part` is not empty.
41006 *
41007 * @param {string | undefined} part
41008 * Thing.
41009 * @param {string} name
41010 * Part name.
41011 * @returns {asserts part is string}
41012 * Nothing.
41013 */
41014 function assertNonEmpty(part, name) {
41015 if (!part) {
41016 throw new Error('`' + name + '` cannot be empty')
41017 }
41018 }
41019
41020 /**
41021 * Assert `path` exists.
41022 *
41023 * @param {string | undefined} path
41024 * Path.
41025 * @param {string} name
41026 * Dependency name.
41027 * @returns {asserts path is string}
41028 * Nothing.
41029 */
41030 function assertPath(path, name) {
41031 if (!path) {
41032 throw new Error('Setting `' + name + '` requires `path` to be set too')
41033 }
41034 }
41035
41036 /**
41037 * Assert `value` is a buffer.
41038 *
41039 * @param {unknown} value
41040 * thing.
41041 * @returns {value is Buffer}
41042 * Whether `value` is a Node.js buffer.
41043 */
41044 function buffer(value) {
41045 return is_buffer__WEBPACK_IMPORTED_MODULE_0__(value)
41046 }
41047
41048
41049 /***/ }),
41050
41051 /***/ "../node_modules/vfile/lib/minpath.browser.js":
41052 /*!****************************************************!*\
41053 !*** ../node_modules/vfile/lib/minpath.browser.js ***!
41054 \****************************************************/
41055 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41056
41057 "use strict";
41058 __webpack_require__.r(__webpack_exports__);
41059 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41060 /* harmony export */ path: () => (/* binding */ path)
41061 /* harmony export */ });
41062 // A derivative work based on:
41063 // <https://github.com/browserify/path-browserify>.
41064 // Which is licensed:
41065 //
41066 // MIT License
41067 //
41068 // Copyright (c) 2013 James Halliday
41069 //
41070 // Permission is hereby granted, free of charge, to any person obtaining a copy of
41071 // this software and associated documentation files (the "Software"), to deal in
41072 // the Software without restriction, including without limitation the rights to
41073 // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
41074 // the Software, and to permit persons to whom the Software is furnished to do so,
41075 // subject to the following conditions:
41076 //
41077 // The above copyright notice and this permission notice shall be included in all
41078 // copies or substantial portions of the Software.
41079 //
41080 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41081 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
41082 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
41083 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
41084 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41085 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41086 // A derivative work based on:
41087 //
41088 // Parts of that are extracted from Node’s internal `path` module:
41089 // <https://github.com/nodejs/node/blob/master/lib/path.js>.
41090 // Which is licensed:
41091 //
41092 // Copyright Joyent, Inc. and other Node contributors.
41093 //
41094 // Permission is hereby granted, free of charge, to any person obtaining a
41095 // copy of this software and associated documentation files (the
41096 // "Software"), to deal in the Software without restriction, including
41097 // without limitation the rights to use, copy, modify, merge, publish,
41098 // distribute, sublicense, and/or sell copies of the Software, and to permit
41099 // persons to whom the Software is furnished to do so, subject to the
41100 // following conditions:
41101 //
41102 // The above copyright notice and this permission notice shall be included
41103 // in all copies or substantial portions of the Software.
41104 //
41105 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
41106 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
41107 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
41108 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
41109 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
41110 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
41111 // USE OR OTHER DEALINGS IN THE SOFTWARE.
41112
41113 const path = {basename, dirname, extname, join, sep: '/'}
41114
41115 /* eslint-disable max-depth, complexity */
41116
41117 /**
41118 * Get the basename from a path.
41119 *
41120 * @param {string} path
41121 * File path.
41122 * @param {string | undefined} [ext]
41123 * Extension to strip.
41124 * @returns {string}
41125 * Stem or basename.
41126 */
41127 function basename(path, ext) {
41128 if (ext !== undefined && typeof ext !== 'string') {
41129 throw new TypeError('"ext" argument must be a string')
41130 }
41131
41132 assertPath(path)
41133 let start = 0
41134 let end = -1
41135 let index = path.length
41136 /** @type {boolean | undefined} */
41137 let seenNonSlash
41138
41139 if (ext === undefined || ext.length === 0 || ext.length > path.length) {
41140 while (index--) {
41141 if (path.charCodeAt(index) === 47 /* `/` */) {
41142 // If we reached a path separator that was not part of a set of path
41143 // separators at the end of the string, stop now.
41144 if (seenNonSlash) {
41145 start = index + 1
41146 break
41147 }
41148 } else if (end < 0) {
41149 // We saw the first non-path separator, mark this as the end of our
41150 // path component.
41151 seenNonSlash = true
41152 end = index + 1
41153 }
41154 }
41155
41156 return end < 0 ? '' : path.slice(start, end)
41157 }
41158
41159 if (ext === path) {
41160 return ''
41161 }
41162
41163 let firstNonSlashEnd = -1
41164 let extIndex = ext.length - 1
41165
41166 while (index--) {
41167 if (path.charCodeAt(index) === 47 /* `/` */) {
41168 // If we reached a path separator that was not part of a set of path
41169 // separators at the end of the string, stop now.
41170 if (seenNonSlash) {
41171 start = index + 1
41172 break
41173 }
41174 } else {
41175 if (firstNonSlashEnd < 0) {
41176 // We saw the first non-path separator, remember this index in case
41177 // we need it if the extension ends up not matching.
41178 seenNonSlash = true
41179 firstNonSlashEnd = index + 1
41180 }
41181
41182 if (extIndex > -1) {
41183 // Try to match the explicit extension.
41184 if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {
41185 if (extIndex < 0) {
41186 // We matched the extension, so mark this as the end of our path
41187 // component
41188 end = index
41189 }
41190 } else {
41191 // Extension does not match, so our result is the entire path
41192 // component
41193 extIndex = -1
41194 end = firstNonSlashEnd
41195 }
41196 }
41197 }
41198 }
41199
41200 if (start === end) {
41201 end = firstNonSlashEnd
41202 } else if (end < 0) {
41203 end = path.length
41204 }
41205
41206 return path.slice(start, end)
41207 }
41208
41209 /**
41210 * Get the dirname from a path.
41211 *
41212 * @param {string} path
41213 * File path.
41214 * @returns {string}
41215 * File path.
41216 */
41217 function dirname(path) {
41218 assertPath(path)
41219
41220 if (path.length === 0) {
41221 return '.'
41222 }
41223
41224 let end = -1
41225 let index = path.length
41226 /** @type {boolean | undefined} */
41227 let unmatchedSlash
41228
41229 // Prefix `--` is important to not run on `0`.
41230 while (--index) {
41231 if (path.charCodeAt(index) === 47 /* `/` */) {
41232 if (unmatchedSlash) {
41233 end = index
41234 break
41235 }
41236 } else if (!unmatchedSlash) {
41237 // We saw the first non-path separator
41238 unmatchedSlash = true
41239 }
41240 }
41241
41242 return end < 0
41243 ? path.charCodeAt(0) === 47 /* `/` */
41244 ? '/'
41245 : '.'
41246 : end === 1 && path.charCodeAt(0) === 47 /* `/` */
41247 ? '//'
41248 : path.slice(0, end)
41249 }
41250
41251 /**
41252 * Get an extname from a path.
41253 *
41254 * @param {string} path
41255 * File path.
41256 * @returns {string}
41257 * Extname.
41258 */
41259 function extname(path) {
41260 assertPath(path)
41261
41262 let index = path.length
41263
41264 let end = -1
41265 let startPart = 0
41266 let startDot = -1
41267 // Track the state of characters (if any) we see before our first dot and
41268 // after any path separator we find.
41269 let preDotState = 0
41270 /** @type {boolean | undefined} */
41271 let unmatchedSlash
41272
41273 while (index--) {
41274 const code = path.charCodeAt(index)
41275
41276 if (code === 47 /* `/` */) {
41277 // If we reached a path separator that was not part of a set of path
41278 // separators at the end of the string, stop now.
41279 if (unmatchedSlash) {
41280 startPart = index + 1
41281 break
41282 }
41283
41284 continue
41285 }
41286
41287 if (end < 0) {
41288 // We saw the first non-path separator, mark this as the end of our
41289 // extension.
41290 unmatchedSlash = true
41291 end = index + 1
41292 }
41293
41294 if (code === 46 /* `.` */) {
41295 // If this is our first dot, mark it as the start of our extension.
41296 if (startDot < 0) {
41297 startDot = index
41298 } else if (preDotState !== 1) {
41299 preDotState = 1
41300 }
41301 } else if (startDot > -1) {
41302 // We saw a non-dot and non-path separator before our dot, so we should
41303 // have a good chance at having a non-empty extension.
41304 preDotState = -1
41305 }
41306 }
41307
41308 if (
41309 startDot < 0 ||
41310 end < 0 ||
41311 // We saw a non-dot character immediately before the dot.
41312 preDotState === 0 ||
41313 // The (right-most) trimmed path component is exactly `..`.
41314 (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)
41315 ) {
41316 return ''
41317 }
41318
41319 return path.slice(startDot, end)
41320 }
41321
41322 /**
41323 * Join segments from a path.
41324 *
41325 * @param {Array<string>} segments
41326 * Path segments.
41327 * @returns {string}
41328 * File path.
41329 */
41330 function join(...segments) {
41331 let index = -1
41332 /** @type {string | undefined} */
41333 let joined
41334
41335 while (++index < segments.length) {
41336 assertPath(segments[index])
41337
41338 if (segments[index]) {
41339 joined =
41340 joined === undefined ? segments[index] : joined + '/' + segments[index]
41341 }
41342 }
41343
41344 return joined === undefined ? '.' : normalize(joined)
41345 }
41346
41347 /**
41348 * Normalize a basic file path.
41349 *
41350 * @param {string} path
41351 * File path.
41352 * @returns {string}
41353 * File path.
41354 */
41355 // Note: `normalize` is not exposed as `path.normalize`, so some code is
41356 // manually removed from it.
41357 function normalize(path) {
41358 assertPath(path)
41359
41360 const absolute = path.charCodeAt(0) === 47 /* `/` */
41361
41362 // Normalize the path according to POSIX rules.
41363 let value = normalizeString(path, !absolute)
41364
41365 if (value.length === 0 && !absolute) {
41366 value = '.'
41367 }
41368
41369 if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {
41370 value += '/'
41371 }
41372
41373 return absolute ? '/' + value : value
41374 }
41375
41376 /**
41377 * Resolve `.` and `..` elements in a path with directory names.
41378 *
41379 * @param {string} path
41380 * File path.
41381 * @param {boolean} allowAboveRoot
41382 * Whether `..` can move above root.
41383 * @returns {string}
41384 * File path.
41385 */
41386 function normalizeString(path, allowAboveRoot) {
41387 let result = ''
41388 let lastSegmentLength = 0
41389 let lastSlash = -1
41390 let dots = 0
41391 let index = -1
41392 /** @type {number | undefined} */
41393 let code
41394 /** @type {number} */
41395 let lastSlashIndex
41396
41397 while (++index <= path.length) {
41398 if (index < path.length) {
41399 code = path.charCodeAt(index)
41400 } else if (code === 47 /* `/` */) {
41401 break
41402 } else {
41403 code = 47 /* `/` */
41404 }
41405
41406 if (code === 47 /* `/` */) {
41407 if (lastSlash === index - 1 || dots === 1) {
41408 // Empty.
41409 } else if (lastSlash !== index - 1 && dots === 2) {
41410 if (
41411 result.length < 2 ||
41412 lastSegmentLength !== 2 ||
41413 result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||
41414 result.charCodeAt(result.length - 2) !== 46 /* `.` */
41415 ) {
41416 if (result.length > 2) {
41417 lastSlashIndex = result.lastIndexOf('/')
41418
41419 if (lastSlashIndex !== result.length - 1) {
41420 if (lastSlashIndex < 0) {
41421 result = ''
41422 lastSegmentLength = 0
41423 } else {
41424 result = result.slice(0, lastSlashIndex)
41425 lastSegmentLength = result.length - 1 - result.lastIndexOf('/')
41426 }
41427
41428 lastSlash = index
41429 dots = 0
41430 continue
41431 }
41432 } else if (result.length > 0) {
41433 result = ''
41434 lastSegmentLength = 0
41435 lastSlash = index
41436 dots = 0
41437 continue
41438 }
41439 }
41440
41441 if (allowAboveRoot) {
41442 result = result.length > 0 ? result + '/..' : '..'
41443 lastSegmentLength = 2
41444 }
41445 } else {
41446 if (result.length > 0) {
41447 result += '/' + path.slice(lastSlash + 1, index)
41448 } else {
41449 result = path.slice(lastSlash + 1, index)
41450 }
41451
41452 lastSegmentLength = index - lastSlash - 1
41453 }
41454
41455 lastSlash = index
41456 dots = 0
41457 } else if (code === 46 /* `.` */ && dots > -1) {
41458 dots++
41459 } else {
41460 dots = -1
41461 }
41462 }
41463
41464 return result
41465 }
41466
41467 /**
41468 * Make sure `path` is a string.
41469 *
41470 * @param {string} path
41471 * File path.
41472 * @returns {asserts path is string}
41473 * Nothing.
41474 */
41475 function assertPath(path) {
41476 if (typeof path !== 'string') {
41477 throw new TypeError(
41478 'Path must be a string. Received ' + JSON.stringify(path)
41479 )
41480 }
41481 }
41482
41483 /* eslint-enable max-depth, complexity */
41484
41485
41486 /***/ }),
41487
41488 /***/ "../node_modules/vfile/lib/minproc.browser.js":
41489 /*!****************************************************!*\
41490 !*** ../node_modules/vfile/lib/minproc.browser.js ***!
41491 \****************************************************/
41492 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41493
41494 "use strict";
41495 __webpack_require__.r(__webpack_exports__);
41496 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41497 /* harmony export */ proc: () => (/* binding */ proc)
41498 /* harmony export */ });
41499 // Somewhat based on:
41500 // <https://github.com/defunctzombie/node-process/blob/master/browser.js>.
41501 // But I don’t think one tiny line of code can be copyrighted. 😅
41502 const proc = {cwd}
41503
41504 function cwd() {
41505 return '/'
41506 }
41507
41508
41509 /***/ }),
41510
41511 /***/ "../node_modules/vfile/lib/minurl.browser.js":
41512 /*!***************************************************!*\
41513 !*** ../node_modules/vfile/lib/minurl.browser.js ***!
41514 \***************************************************/
41515 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41516
41517 "use strict";
41518 __webpack_require__.r(__webpack_exports__);
41519 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41520 /* harmony export */ isUrl: () => (/* reexport safe */ _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl),
41521 /* harmony export */ urlToPath: () => (/* binding */ urlToPath)
41522 /* harmony export */ });
41523 /* harmony import */ var _minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./minurl.shared.js */ "../node_modules/vfile/lib/minurl.shared.js");
41524 /// <reference lib="dom" />
41525
41526
41527
41528 // See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>
41529
41530 /**
41531 * @param {string | URL} path
41532 * File URL.
41533 * @returns {string}
41534 * File URL.
41535 */
41536 function urlToPath(path) {
41537 if (typeof path === 'string') {
41538 path = new URL(path)
41539 } else if (!(0,_minurl_shared_js__WEBPACK_IMPORTED_MODULE_0__.isUrl)(path)) {
41540 /** @type {NodeJS.ErrnoException} */
41541 const error = new TypeError(
41542 'The "path" argument must be of type string or an instance of URL. Received `' +
41543 path +
41544 '`'
41545 )
41546 error.code = 'ERR_INVALID_ARG_TYPE'
41547 throw error
41548 }
41549
41550 if (path.protocol !== 'file:') {
41551 /** @type {NodeJS.ErrnoException} */
41552 const error = new TypeError('The URL must be of scheme file')
41553 error.code = 'ERR_INVALID_URL_SCHEME'
41554 throw error
41555 }
41556
41557 return getPathFromURLPosix(path)
41558 }
41559
41560 /**
41561 * Get a path from a POSIX URL.
41562 *
41563 * @param {URL} url
41564 * URL.
41565 * @returns {string}
41566 * File path.
41567 */
41568 function getPathFromURLPosix(url) {
41569 if (url.hostname !== '') {
41570 /** @type {NodeJS.ErrnoException} */
41571 const error = new TypeError(
41572 'File URL host must be "localhost" or empty on darwin'
41573 )
41574 error.code = 'ERR_INVALID_FILE_URL_HOST'
41575 throw error
41576 }
41577
41578 const pathname = url.pathname
41579 let index = -1
41580
41581 while (++index < pathname.length) {
41582 if (
41583 pathname.charCodeAt(index) === 37 /* `%` */ &&
41584 pathname.charCodeAt(index + 1) === 50 /* `2` */
41585 ) {
41586 const third = pathname.charCodeAt(index + 2)
41587 if (third === 70 /* `F` */ || third === 102 /* `f` */) {
41588 /** @type {NodeJS.ErrnoException} */
41589 const error = new TypeError(
41590 'File URL path must not include encoded / characters'
41591 )
41592 error.code = 'ERR_INVALID_FILE_URL_PATH'
41593 throw error
41594 }
41595 }
41596 }
41597
41598 return decodeURIComponent(pathname)
41599 }
41600
41601
41602
41603
41604 /***/ }),
41605
41606 /***/ "../node_modules/vfile/lib/minurl.shared.js":
41607 /*!**************************************************!*\
41608 !*** ../node_modules/vfile/lib/minurl.shared.js ***!
41609 \**************************************************/
41610 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41611
41612 "use strict";
41613 __webpack_require__.r(__webpack_exports__);
41614 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41615 /* harmony export */ isUrl: () => (/* binding */ isUrl)
41616 /* harmony export */ });
41617 /**
41618 * @typedef URL
41619 * @property {string} hash
41620 * @property {string} host
41621 * @property {string} hostname
41622 * @property {string} href
41623 * @property {string} origin
41624 * @property {string} password
41625 * @property {string} pathname
41626 * @property {string} port
41627 * @property {string} protocol
41628 * @property {string} search
41629 * @property {any} searchParams
41630 * @property {string} username
41631 * @property {() => string} toString
41632 * @property {() => string} toJSON
41633 */
41634
41635 /**
41636 * Check if `fileUrlOrPath` looks like a URL.
41637 *
41638 * @param {unknown} fileUrlOrPath
41639 * File path or URL.
41640 * @returns {fileUrlOrPath is URL}
41641 * Whether it’s a URL.
41642 */
41643 // From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
41644 function isUrl(fileUrlOrPath) {
41645 return (
41646 fileUrlOrPath !== null &&
41647 typeof fileUrlOrPath === 'object' &&
41648 // @ts-expect-error: indexable.
41649 fileUrlOrPath.href &&
41650 // @ts-expect-error: indexable.
41651 fileUrlOrPath.origin
41652 )
41653 }
41654
41655
41656 /***/ })
41657
41658 /******/ });
41659 /************************************************************************/
41660 /******/ // The module cache
41661 /******/ var __webpack_module_cache__ = {};
41662 /******/
41663 /******/ // The require function
41664 /******/ function __webpack_require__(moduleId) {
41665 /******/ // Check if module is in cache
41666 /******/ var cachedModule = __webpack_module_cache__[moduleId];
41667 /******/ if (cachedModule !== undefined) {
41668 /******/ return cachedModule.exports;
41669 /******/ }
41670 /******/ // Create a new module (and put it into the cache)
41671 /******/ var module = __webpack_module_cache__[moduleId] = {
41672 /******/ // no module.id needed
41673 /******/ // no module.loaded needed
41674 /******/ exports: {}
41675 /******/ };
41676 /******/
41677 /******/ // Execute the module function
41678 /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
41679 /******/
41680 /******/ // Return the exports of the module
41681 /******/ return module.exports;
41682 /******/ }
41683 /******/
41684 /************************************************************************/
41685 /******/ /* webpack/runtime/compat get default export */
41686 /******/ (() => {
41687 /******/ // getDefaultExport function for compatibility with non-harmony modules
41688 /******/ __webpack_require__.n = (module) => {
41689 /******/ var getter = module && module.__esModule ?
41690 /******/ () => (module['default']) :
41691 /******/ () => (module);
41692 /******/ __webpack_require__.d(getter, { a: getter });
41693 /******/ return getter;
41694 /******/ };
41695 /******/ })();
41696 /******/
41697 /******/ /* webpack/runtime/define property getters */
41698 /******/ (() => {
41699 /******/ // define getter functions for harmony exports
41700 /******/ __webpack_require__.d = (exports, definition) => {
41701 /******/ for(var key in definition) {
41702 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
41703 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
41704 /******/ }
41705 /******/ }
41706 /******/ };
41707 /******/ })();
41708 /******/
41709 /******/ /* webpack/runtime/hasOwnProperty shorthand */
41710 /******/ (() => {
41711 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
41712 /******/ })();
41713 /******/
41714 /******/ /* webpack/runtime/make namespace object */
41715 /******/ (() => {
41716 /******/ // define __esModule on exports
41717 /******/ __webpack_require__.r = (exports) => {
41718 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
41719 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
41720 /******/ }
41721 /******/ Object.defineProperty(exports, '__esModule', { value: true });
41722 /******/ };
41723 /******/ })();
41724 /******/
41725 /************************************************************************/
41726 var __webpack_exports__ = {};
41727 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
41728 (() => {
41729 "use strict";
41730 /*!**********************************************!*\
41731 !*** ../modules/ai/assets/js/admin/index.js ***!
41732 \**********************************************/
41733
41734
41735 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
41736 var _app = _interopRequireDefault(__webpack_require__(/*! elementor/modules/ai/assets/js/editor/app */ "../modules/ai/assets/js/editor/app.js"));
41737 // Temporary solution for exposing the AI App.
41738 window.__UNSTABLE__elementorAI = {
41739 App: _app.default
41740 };
41741 })();
41742
41743 /******/ })()
41744 ;
41745 //# sourceMappingURL=ai-admin.js.map