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

ai-layout.js in Elementor Website Builder – more than just a page builder 3.35.0-dev1, at assets/js/ai-layout.js

11,209 lines 491.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "../assets/dev/js/utils/react.js":
5 /*!***************************************!*\
6 !*** ../assets/dev/js/utils/react.js ***!
7 \***************************************/
8 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9
10 "use strict";
11
12
13 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports["default"] = void 0;
18 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
19 var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
20 var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
21 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22 /**
23 * Support conditional rendering of a React App to the DOM, based on the React version.
24 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
25 *
26 * @param { React.ReactElement } app The app to render.
27 * @param { HTMLElement } domElement The DOM element to render the app into.
28 *
29 * @return {{ unmount: () => void }} The unmount function.
30 */
31 function render(app, domElement) {
32 var unmountFunction;
33 try {
34 var root = (0, _client.createRoot)(domElement);
35 root.render(app);
36 unmountFunction = function unmountFunction() {
37 root.unmount();
38 };
39 } catch (e) {
40 // eslint-disable-next-line react/no-deprecated
41 ReactDOM.render(app, domElement);
42 unmountFunction = function unmountFunction() {
43 // eslint-disable-next-line react/no-deprecated
44 ReactDOM.unmountComponentAtNode(domElement);
45 };
46 }
47 return {
48 unmount: unmountFunction
49 };
50 }
51 var _default = exports["default"] = {
52 render: render
53 };
54
55 /***/ }),
56
57 /***/ "../modules/ai/assets/js/editor/ai-layout-behavior.js":
58 /*!************************************************************!*\
59 !*** ../modules/ai/assets/js/editor/ai-layout-behavior.js ***!
60 \************************************************************/
61 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
62
63 "use strict";
64
65
66 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
67 Object.defineProperty(exports, "__esModule", ({
68 value: true
69 }));
70 exports["default"] = void 0;
71 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
72 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
73 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
74 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
75 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
76 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
77 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
78 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
79 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
80 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
81 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
82 var AiLayoutBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
83 function AiLayoutBehavior() {
84 var _this;
85 (0, _classCallCheck2.default)(this, AiLayoutBehavior);
86 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
87 args[_key] = arguments[_key];
88 }
89 _this = _callSuper(this, AiLayoutBehavior, [].concat(args));
90 (0, _defineProperty2.default)(_this, "previewContainer", null);
91 return _this;
92 }
93 (0, _inherits2.default)(AiLayoutBehavior, _Marionette$Behavior);
94 return (0, _createClass2.default)(AiLayoutBehavior, [{
95 key: "ui",
96 value: function ui() {
97 return {
98 aiButton: '.e-ai-layout-button',
99 addTemplateButton: '.elementor-add-template-button'
100 };
101 }
102 }, {
103 key: "events",
104 value: function events() {
105 return {
106 'click @ui.aiButton': 'onAiButtonClick'
107 };
108 }
109 }, {
110 key: "onAiButtonClick",
111 value: function onAiButtonClick(e) {
112 e.stopPropagation();
113 window.elementorAiCurrentContext = this.getOption('context');
114 (0, _editorIntegration.renderLayoutApp)({
115 parentContainer: elementor.getPreviewContainer(),
116 mode: _config.MODE_LAYOUT,
117 at: this.view.getOption('at'),
118 onInsert: this.onInsert.bind(this),
119 onRenderApp: function onRenderApp(args) {
120 args.previewContainer.init();
121 },
122 onGenerate: function onGenerate(args) {
123 args.previewContainer.reset();
124 }
125 });
126 }
127 }, {
128 key: "hideDropArea",
129 value: function hideDropArea() {
130 this.view.onCloseButtonClick();
131 }
132 }, {
133 key: "onInsert",
134 value: function onInsert(template) {
135 this.hideDropArea();
136 (0, _editorIntegration.importToEditor)({
137 parentContainer: elementor.getPreviewContainer(),
138 at: this.view.getOption('at'),
139 template: template,
140 historyTitle: (0, _i18n.__)('AI Layout', 'elementor')
141 });
142 }
143 }, {
144 key: "onRender",
145 value: function onRender() {
146 var $button = jQuery('<button>', {
147 type: 'button',
148 class: 'e-ai-layout-button elementor-add-section-area-button e-button-primary',
149 title: (0, _i18n.__)('Build with AI', 'elementor'),
150 'aria-label': (0, _i18n.__)('Build with AI', 'elementor')
151 });
152 $button.html("\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<i class=\"eicon-ai\" aria-hidden=\"true\"></i>\n\t\t");
153 this.ui.addTemplateButton.after($button);
154 }
155 }]);
156 }(Marionette.Behavior);
157
158 /***/ }),
159
160 /***/ "../modules/ai/assets/js/editor/api/index.js":
161 /*!***************************************************!*\
162 !*** ../modules/ai/assets/js/editor/api/index.js ***!
163 \***************************************************/
164 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
165
166 "use strict";
167
168
169 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
170 Object.defineProperty(exports, "__esModule", ({
171 value: true
172 }));
173 exports.uploadImage = exports.toggleFavoriteHistoryItem = exports.setStatusFeedback = exports.setGetStarted = exports.getUserInformation = exports.getTextToImageGeneration = exports.getRemoteFrontendConfig = exports.getRemoteConfig = exports.getProductImageUnification = exports.getLayoutPromptEnhanced = exports.getImageToImageUpscale = exports.getImageToImageReplaceBackground = exports.getImageToImageRemoveText = exports.getImageToImageRemoveBackground = exports.getImageToImageOutPainting = exports.getImageToImageMaskGeneration = exports.getImageToImageMaskCleanup = exports.getImageToImageIsolateObjects = exports.getImageToImageGeneration = exports.getImagePromptEnhanced = exports.getHistory = exports.getFeaturedImage = exports.getExcerpt = exports.getEditText = exports.getCustomCode = exports.getCustomCSS = exports.getCompletionText = exports.getAnimation = exports.generateLayout = exports.deleteHistoryItem = void 0;
174 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
175 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
176 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
177 var request = function request(endpoint) {
178 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
179 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
180 var signal = arguments.length > 3 ? arguments[3] : undefined;
181 if (Object.keys(data).length) {
182 if (window.elementorAiCurrentContext) {
183 data.context = window.elementorAiCurrentContext;
184 } else {
185 data.context = window.elementorWpAiCurrentContext;
186 }
187 }
188 return new Promise(function (resolve, reject) {
189 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
190 success: resolve,
191 error: reject,
192 data: data,
193 unique_id: data.unique_id
194 }, immediately);
195 if (signal && ajaxData.jqXhr) {
196 signal.addEventListener('abort', ajaxData.jqXhr.abort);
197 }
198 });
199 };
200 var getUserInformation = exports.getUserInformation = function getUserInformation(immediately) {
201 return request('ai_get_user_information', undefined, immediately);
202 };
203 var getRemoteConfig = exports.getRemoteConfig = function getRemoteConfig() {
204 return request('ai_get_remote_config');
205 };
206 var getRemoteFrontendConfig = exports.getRemoteFrontendConfig = function getRemoteFrontendConfig(payload, immediately) {
207 return request('ai_get_remote_frontend_config', {
208 payload: payload
209 }, immediately);
210 };
211 var getCompletionText = exports.getCompletionText = function getCompletionText(payload) {
212 return request('ai_get_completion_text', {
213 payload: payload
214 });
215 };
216 var getExcerpt = exports.getExcerpt = function getExcerpt(payload) {
217 return request('ai_get_excerpt', {
218 payload: payload
219 });
220 };
221 var getFeaturedImage = exports.getFeaturedImage = function getFeaturedImage(payload) {
222 return request('ai_get_featured_image', {
223 payload: payload
224 });
225 };
226 var getEditText = exports.getEditText = function getEditText(payload) {
227 return request('ai_get_edit_text', {
228 payload: payload
229 });
230 };
231 var getCustomCode = exports.getCustomCode = function getCustomCode(payload) {
232 return request('ai_get_custom_code', {
233 payload: payload
234 });
235 };
236 var getCustomCSS = exports.getCustomCSS = function getCustomCSS(payload) {
237 return request('ai_get_custom_css', {
238 payload: payload
239 });
240 };
241 var setGetStarted = exports.setGetStarted = function setGetStarted() {
242 return request('ai_set_get_started');
243 };
244 var setStatusFeedback = exports.setStatusFeedback = function setStatusFeedback(responseId) {
245 return request('ai_set_status_feedback', {
246 response_id: responseId
247 }, true);
248 };
249 var getTextToImageGeneration = exports.getTextToImageGeneration = function getTextToImageGeneration(payload) {
250 return request('ai_get_text_to_image', {
251 payload: payload
252 });
253 };
254 var getImageToImageGeneration = exports.getImageToImageGeneration = function getImageToImageGeneration(payload) {
255 return request('ai_get_image_to_image', {
256 payload: payload
257 });
258 };
259 var getImageToImageMaskCleanup = exports.getImageToImageMaskCleanup = function getImageToImageMaskCleanup(payload) {
260 return request('ai_get_image_to_image_mask_cleanup', {
261 payload: payload
262 });
263 };
264 var getImageToImageMaskGeneration = exports.getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
265 return request('ai_get_image_to_image_mask', {
266 payload: payload
267 });
268 };
269 var getImageToImageOutPainting = exports.getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
270 return request('ai_get_image_to_image_outpainting', {
271 payload: payload
272 });
273 };
274 var getImageToImageUpscale = exports.getImageToImageUpscale = function getImageToImageUpscale(payload) {
275 return request('ai_get_image_to_image_upscale', {
276 payload: payload
277 });
278 };
279 var getImageToImageRemoveBackground = exports.getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
280 return request('ai_get_image_to_image_remove_background', {
281 payload: payload
282 });
283 };
284 var getImageToImageIsolateObjects = exports.getImageToImageIsolateObjects = function getImageToImageIsolateObjects(payload) {
285 return request('ai_get_image_to_image_isolate_objects', {
286 payload: payload
287 });
288 };
289 var getImageToImageReplaceBackground = exports.getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
290 return request('ai_get_image_to_image_replace_background', {
291 payload: payload
292 });
293 };
294 var getImageToImageRemoveText = exports.getImageToImageRemoveText = function getImageToImageRemoveText(image) {
295 return request('ai_get_image_to_image_remove_text', {
296 image: image
297 });
298 };
299 var getImagePromptEnhanced = exports.getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
300 return request('ai_get_image_prompt_enhancer', {
301 prompt: prompt
302 });
303 };
304 var getProductImageUnification = exports.getProductImageUnification = function getProductImageUnification(payload, immediately) {
305 return request('ai_get_product_image_unification', {
306 payload: payload
307 }, immediately);
308 };
309 var getAnimation = exports.getAnimation = function getAnimation(payload) {
310 return request('ai_get_animation', {
311 payload: payload
312 });
313 };
314 var uploadImage = exports.uploadImage = function uploadImage(image) {
315 return request('ai_upload_image', _objectSpread(_objectSpread({}, image), {}, {
316 editor_post_id: image.image.editor_post_id,
317 unique_id: image.image.unique_id
318 }));
319 };
320
321 /**
322 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
323 * @typedef {Object} requestBody
324 * @property {string} prompt - Prompt to generate the layout from.
325 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
326 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
327 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
328 */
329
330 /**
331 * @param {requestBody} requestBody
332 * @param {AbortSignal} [signal]
333 */
334 var generateLayout = exports.generateLayout = function generateLayout(requestBody, signal) {
335 return request('ai_generate_layout', requestBody, true, signal);
336 };
337 var getLayoutPromptEnhanced = exports.getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
338 return request('ai_get_layout_prompt_enhancer', {
339 prompt: prompt,
340 enhance_type: enhanceType
341 });
342 };
343 var getHistory = exports.getHistory = function getHistory(type, page, limit) {
344 return request('ai_get_history', {
345 type: type,
346 page: page,
347 limit: limit
348 });
349 };
350 var deleteHistoryItem = exports.deleteHistoryItem = function deleteHistoryItem(id) {
351 return request('ai_delete_history_item', {
352 id: id
353 });
354 };
355 var toggleFavoriteHistoryItem = exports.toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
356 return request('ai_toggle_favorite_history_item', {
357 id: id
358 });
359 };
360
361 /***/ }),
362
363 /***/ "../modules/ai/assets/js/editor/components/alert-dialog.js":
364 /*!*****************************************************************!*\
365 !*** ../modules/ai/assets/js/editor/components/alert-dialog.js ***!
366 \*****************************************************************/
367 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
368
369 "use strict";
370
371
372 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
373 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
374 Object.defineProperty(exports, "__esModule", ({
375 value: true
376 }));
377 exports.AlertDialog = void 0;
378 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
379 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
380 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
381 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
382 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
383 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
384 var AlertDialog = exports.AlertDialog = function AlertDialog(props) {
385 var _useState = (0, _react.useState)(true),
386 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
387 isShown = _useState2[0],
388 setIsShown = _useState2[1];
389 if (!isShown) {
390 return null;
391 }
392 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
393 open: true,
394 maxWidth: "lg"
395 }, /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
396 sx: {
397 padding: 0
398 }
399 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
400 sx: {
401 textAlign: 'center',
402 padding: 3
403 }
404 }, props.message), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
405 alignItems: "center",
406 spacing: 2,
407 marginBottom: 2
408 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
409 variant: "contained",
410 type: "button",
411 color: "primary",
412 onClick: function onClick() {
413 var _props$onClose;
414 setIsShown(false);
415 (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
416 }
417 }, (0, _i18n.__)('Close', 'elementor')))));
418 };
419 AlertDialog.propTypes = {
420 message: _propTypes.default.string.isRequired,
421 onClose: _propTypes.default.func
422 };
423
424 /***/ }),
425
426 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
427 /*!******************************************************************!*\
428 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
429 \******************************************************************/
430 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
431
432 "use strict";
433
434
435 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
436 Object.defineProperty(exports, "__esModule", ({
437 value: true
438 }));
439 exports["default"] = void 0;
440 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
441 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
442 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
443 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
444 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
445 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
446 var ElementorLogo = function ElementorLogo(props) {
447 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
448 viewBox: "0 0 32 32"
449 }, props), /*#__PURE__*/_react.default.createElement("path", {
450 fillRule: "evenodd",
451 clipRule: "evenodd",
452 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"
453 }));
454 };
455 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
456 var theme = _ref.theme;
457 return {
458 width: theme.spacing(3),
459 height: theme.spacing(3),
460 '& path': {
461 fill: theme.palette.text.primary
462 }
463 };
464 });
465 var DialogHeader = function DialogHeader(props) {
466 var hideAiBetaLogo = props.hideAiBetaLogo,
467 onClose = props.onClose,
468 children = props.children;
469 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
470 sx: {
471 fontWeight: 'normal'
472 },
473 color: "transparent",
474 position: "relative"
475 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
476 variant: "dense"
477 }, !hideAiBetaLogo && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
478 sx: {
479 mr: 1
480 }
481 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
482 component: "span",
483 variant: "subtitle2",
484 sx: {
485 fontWeight: 'bold',
486 textTransform: 'uppercase'
487 }
488 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
489 label: (0, _i18n.__)('Beta', 'elementor'),
490 color: "default",
491 size: "small",
492 sx: {
493 ml: 1
494 }
495 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
496 direction: "row",
497 spacing: 1,
498 alignItems: "center",
499 sx: {
500 ml: hideAiBetaLogo ? 0 : 'auto'
501 }
502 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
503 size: "small",
504 "aria-label": "close",
505 onClick: onClose,
506 sx: {
507 '&.MuiButtonBase-root': {
508 mr: -1
509 }
510 }
511 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
512 };
513 DialogHeader.propTypes = {
514 onClose: _propTypes.default.func.isRequired,
515 hideAiBetaLogo: _propTypes.default.bool,
516 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
517 };
518 var _default = exports["default"] = DialogHeader;
519
520 /***/ }),
521
522 /***/ "../modules/ai/assets/js/editor/components/loader.js":
523 /*!***********************************************************!*\
524 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
525 \***********************************************************/
526 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
527
528 "use strict";
529
530
531 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
532 Object.defineProperty(exports, "__esModule", ({
533 value: true
534 }));
535 exports["default"] = void 0;
536 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
537 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
538 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
539 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
540 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
541 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
542 var _excluded = ["sx", "BoxProps"];
543 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
544 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
545 var Loader = function Loader(_ref) {
546 var _ref$sx = _ref.sx,
547 sx = _ref$sx === void 0 ? {} : _ref$sx,
548 _ref$BoxProps = _ref.BoxProps,
549 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
550 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
551 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
552 width: "100%",
553 display: "flex",
554 alignItems: "center"
555 }, BoxProps, {
556 sx: _objectSpread({
557 px: 1.5,
558 minHeight: function minHeight(theme) {
559 return theme.spacing(5);
560 }
561 }, BoxProps.sx || {})
562 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
563 color: "secondary"
564 }, props, {
565 sx: _objectSpread({
566 width: '100%'
567 }, sx)
568 })));
569 };
570 Loader.propTypes = {
571 sx: _propTypes.default.object,
572 BoxProps: _propTypes.default.object
573 };
574 var _default = exports["default"] = Loader;
575
576 /***/ }),
577
578 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
579 /*!******************************************************************!*\
580 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
581 \******************************************************************/
582 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
583
584 "use strict";
585
586
587 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
588 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
589 Object.defineProperty(exports, "__esModule", ({
590 value: true
591 }));
592 exports["default"] = void 0;
593 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
594 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
595 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
596 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
597 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
598 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
599 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
600 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
601 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
602 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
603 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
604 var DraggablePaper = function DraggablePaper(props) {
605 var _useState = (0, _react.useState)({
606 x: 0,
607 y: 0
608 }),
609 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
610 position = _useState2[0],
611 setPosition = _useState2[1];
612 var paperRef = (0, _react.useRef)(null);
613 var timeout = (0, _react.useRef)(null);
614 var onDrag = function onDrag(_e, _ref) {
615 var x = _ref.x,
616 y = _ref.y;
617 return setPosition({
618 x: x,
619 y: y
620 });
621 };
622 var handlePositionBoundaries = function handlePositionBoundaries() {
623 clearTimeout(timeout.current);
624
625 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
626 timeout.current = setTimeout(function () {
627 var _paperRef$current;
628 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
629 if (dialogTop < 0) {
630 setPosition(function (prev) {
631 return _objectSpread(_objectSpread({}, prev), {}, {
632 y: prev.y - dialogTop
633 });
634 });
635 }
636 }, 50);
637 };
638 (0, _react.useEffect)(function () {
639 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
640 resizeObserver.observe(paperRef.current);
641 return function () {
642 resizeObserver.disconnect();
643 };
644 }, []);
645 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
646 position: position,
647 onDrag: onDrag,
648 handle: ".MuiAppBar-root",
649 cancel: '[class*="MuiDialogContent-root"]',
650 bounds: "parent"
651 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
652 ref: paperRef
653 })));
654 };
655 var PromptDialog = function PromptDialog(props) {
656 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
657 scroll: "paper",
658 open: true,
659 fullWidth: true,
660 hideBackdrop: true,
661 PaperComponent: DraggablePaper,
662 disableScrollLock: true,
663 sx: {
664 '& .MuiDialog-container': {
665 alignItems: 'flex-start',
666 mt: '18vh'
667 }
668 },
669 PaperProps: {
670 sx: {
671 m: 0,
672 maxHeight: '76vh'
673 }
674 }
675 }, props), props.children);
676 };
677 PromptDialog.propTypes = {
678 onClose: _propTypes.default.func.isRequired,
679 children: _propTypes.default.node,
680 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
681 };
682 PromptDialog.Header = _dialogHeader.default;
683 PromptDialog.Content = _ui.DialogContent;
684 var _default = exports["default"] = PromptDialog;
685
686 /***/ }),
687
688 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
689 /*!*************************************************************************!*\
690 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
691 \*************************************************************************/
692 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
693
694 "use strict";
695 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
696
697
698 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
699 Object.defineProperty(exports, "__esModule", ({
700 value: true
701 }));
702 exports["default"] = void 0;
703 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
704 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
705 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
706 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
707 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
708 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
709 var _excluded = ["error", "onRetry", "actionPosition"];
710 var PromptErrorMessage = function PromptErrorMessage(_ref) {
711 var error = _ref.error,
712 _ref$onRetry = _ref.onRetry,
713 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
714 _ref$actionPosition = _ref.actionPosition,
715 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
716 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
717 function getQuotaReachedTrailMessage(featureName) {
718 if (!featureName) {
719 return {
720 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
721 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
722 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
723 buttonAction: function buttonAction() {
724 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
725 }
726 };
727 }
728 return {
729 // Translators: %s is the feature name.
730 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
731 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
732 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
733 buttonAction: function buttonAction() {
734 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
735 }
736 };
737 }
738 function getErrorMessage() {
739 var _error$extra_data;
740 var errMsg = error.message || error;
741 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
742 var messages = {
743 default: {
744 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
745 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
746 buttonText: (0, _i18n.__)('Try again', 'elementor'),
747 buttonAction: onRetry
748 },
749 service_outage_internal: {
750 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
751 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
752 buttonText: (0, _i18n.__)('Try again', 'elementor'),
753 buttonAction: onRetry
754 },
755 invalid_connect_data: {
756 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
757 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
758 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
759 target: "_blank",
760 rel: "noreferrer"
761 }, (0, _i18n.__)('Show me how', 'elementor'))),
762 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
763 buttonAction: function buttonAction() {
764 return window.open(window.ElementorAiConfig.connect_url);
765 }
766 },
767 not_connected: {
768 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
769 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
770 buttonText: (0, _i18n.__)('Connect', 'elementor'),
771 buttonAction: function buttonAction() {
772 return window.open(window.ElementorAiConfig.connect_url);
773 }
774 },
775 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
776 quota_reached_subscription: {
777 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
778 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
779 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
780 buttonAction: function buttonAction() {
781 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
782 }
783 },
784 rate_limit_network: {
785 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
786 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
787 },
788 invalid_prompts: {
789 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
790 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
791 },
792 service_unavailable: {
793 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
794 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
795 buttonText: (0, _i18n.__)('Try again', 'elementor'),
796 buttonAction: onRetry
797 },
798 request_timeout_error: {
799 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
800 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
801 buttonText: (0, _i18n.__)('Try again', 'elementor'),
802 buttonAction: onRetry
803 },
804 invalid_token: {
805 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
806 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
807 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
808 buttonAction: onRetry
809 },
810 file_too_large: {
811 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
812 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
813 },
814 image_resolution_maximum_exceeded: {
815 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The image resolution exceeds the maximum allowed size.', 'elementor')),
816 description: (0, _i18n.__)('Please upload a file with dimensions less than 2048x2048 pixels.', 'elementor')
817 },
818 external_service_unavailable: {
819 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Temporary external service issue', 'elementor')),
820 description: (0, _i18n.__)('It seems that one of our partner services is temporarily unavailable. Please try again in a few minutes.', 'elementor'),
821 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
822 buttonAction: onRetry
823 }
824 };
825 return messages[errMsg] || messages.default;
826 }
827 var message = getErrorMessage();
828 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
829 color: "inherit",
830 size: "small",
831 variant: "outlined",
832 onClick: message.buttonAction
833 }, message.buttonText);
834 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
835 severity: message.severity || 'error',
836 action: 'default' === actionPosition && action
837 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
838 sx: {
839 mt: 1
840 }
841 }, action));
842 };
843 PromptErrorMessage.propTypes = {
844 error: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
845 onRetry: _propTypes.default.func,
846 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
847 };
848 var _default = exports["default"] = PromptErrorMessage;
849
850 /***/ }),
851
852 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
853 /*!************************************************************************!*\
854 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
855 \************************************************************************/
856 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
857
858 "use strict";
859
860
861 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
862 Object.defineProperty(exports, "__esModule", ({
863 value: true
864 }));
865 exports["default"] = void 0;
866 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
867 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
868 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
869 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
870 var PromptLibraryLink = function PromptLibraryLink(props) {
871 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
872 variant: "body2",
873 color: "text.secondary"
874 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
875 href: props.libraryLink,
876 className: "elementor-clickable",
877 target: "_blank"
878 }, (0, _i18n.__)('prompt library')));
879 };
880 PromptLibraryLink.propTypes = {
881 libraryLink: _propTypes.default.string
882 };
883 var _default = exports["default"] = PromptLibraryLink;
884
885 /***/ }),
886
887 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
888 /*!*****************************************************************!*\
889 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
890 \*****************************************************************/
891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
892
893 "use strict";
894
895
896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
897 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
898 Object.defineProperty(exports, "__esModule", ({
899 value: true
900 }));
901 exports["default"] = void 0;
902 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
903 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
904 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
905 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
906 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
907 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
908 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
909 var popoverId = 'e-ai-upgrade-popover';
910 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
911 var theme = _ref.theme;
912 return {
913 position: 'relative',
914 '[data-popper-placement="top"] &': {
915 marginBottom: theme.spacing(2.5)
916 },
917 '[data-popper-placement="bottom"] &': {
918 marginTop: theme.spacing(2.5)
919 },
920 padding: theme.spacing(3),
921 boxShadow: theme.shadows[4],
922 zIndex: '9999'
923 };
924 });
925 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
926 var theme = _ref2.theme;
927 return {
928 width: theme.spacing(5),
929 height: theme.spacing(2.5),
930 position: 'absolute',
931 overflow: 'hidden',
932 // Override Popper inline styles.
933 left: '50% !important',
934 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
935 '[data-popper-placement="top"] &': {
936 top: '100%'
937 },
938 '[data-popper-placement="bottom"] &': {
939 '--rotate': '180deg',
940 top: "calc(".concat(theme.spacing(2.5), " * -1)")
941 },
942 '&::after': {
943 backgroundColor: theme.palette.background.paper,
944 content: '""',
945 display: 'block',
946 position: 'absolute',
947 width: theme.spacing(2.5),
948 height: theme.spacing(2.5),
949 top: 0,
950 left: '50%',
951 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
952 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
953 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
954 }
955 };
956 });
957 var upgradeBullets = [(0, _i18n.__)('Get spot-on suggestions from AI Copilot and AI Context with appropriate designs, layouts, and content for your business.', 'elementor'), (0, _i18n.__)('Generate professional texts about any topic, in any tone.', 'elementor'), (0, _i18n.__)('Effortlessly create or enhance stunning images and bring your ideas to life.', 'elementor'), (0, _i18n.__)('Unleash infinite possibilities with the custom code generator.', 'elementor'), (0, _i18n.__)('Access 30-days of AI History with the AI Starter plan and 90-days with the Power plan.', 'elementor')];
958 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
959 return {
960 '& .MuiChip-label': {
961 lineHeight: 1.5
962 },
963 '& .MuiSvgIcon-root.MuiChip-icon': {
964 fontSize: '1.25rem'
965 }
966 };
967 });
968 var UpgradeChip = function UpgradeChip(_ref3) {
969 var _ref3$hasSubscription = _ref3.hasSubscription,
970 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
971 _ref3$usagePercentage = _ref3.usagePercentage,
972 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
973 var _useState = (0, _react.useState)(false),
974 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
975 isPopoverOpen = _useState2[0],
976 setIsPopoverOpen = _useState2[1];
977 var anchorEl = (0, _react.useRef)(null);
978 var arrowEl = (0, _react.useRef)(null);
979 var showPopover = function showPopover() {
980 return setIsPopoverOpen(true);
981 };
982 var hidePopover = function hidePopover() {
983 return setIsPopoverOpen(false);
984 };
985 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
986 if (hasSubscription) {
987 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
988 }
989 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
990 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
991 component: "span",
992 "aria-owns": isPopoverOpen ? popoverId : undefined,
993 "aria-haspopup": "true",
994 onMouseEnter: showPopover,
995 onMouseLeave: hidePopover,
996 ref: anchorEl,
997 display: "flex",
998 alignItems: "center"
999 }, /*#__PURE__*/_react.default.createElement(Chip, {
1000 color: "promotion",
1001 label: (0, _i18n.__)('Upgrade', 'elementor'),
1002 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1003 size: "small"
1004 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
1005 open: isPopoverOpen,
1006 anchorEl: anchorEl.current,
1007 sx: {
1008 zIndex: '170001',
1009 maxWidth: 300
1010 },
1011 modifiers: [{
1012 name: 'arrow',
1013 enabled: true,
1014 options: {
1015 element: arrowEl.current
1016 }
1017 }]
1018 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
1019 ref: arrowEl
1020 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1021 variant: "h5",
1022 color: "text.primary"
1023 }, (0, _i18n.__)('Unlimited access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
1024 sx: {
1025 mb: 1
1026 }
1027 }, upgradeBullets.map(function (bullet, index) {
1028 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
1029 key: index,
1030 disableGutters: true,
1031 sx: {
1032 alignItems: 'flex-start'
1033 }
1034 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
1035 sx: {
1036 m: 0
1037 }
1038 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1039 variant: "body2"
1040 }, bullet)));
1041 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
1042 variant: "contained",
1043 color: "promotion",
1044 size: "small",
1045 href: actionUrl,
1046 target: "_blank",
1047 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1048 sx: {
1049 '&:hover': {
1050 color: 'promotion.contrastText'
1051 }
1052 }
1053 }, actionLabel))));
1054 };
1055 var _default = exports["default"] = UpgradeChip;
1056 UpgradeChip.propTypes = {
1057 hasSubscription: _propTypes.default.bool,
1058 usagePercentage: _propTypes.default.number
1059 };
1060
1061 /***/ }),
1062
1063 /***/ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js":
1064 /*!**************************************************************************!*\
1065 !*** ../modules/ai/assets/js/editor/components/voice-promotion-alert.js ***!
1066 \**************************************************************************/
1067 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1068
1069 "use strict";
1070
1071
1072 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1073 Object.defineProperty(exports, "__esModule", ({
1074 value: true
1075 }));
1076 exports["default"] = exports.VoicePromotionAlert = void 0;
1077 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1078 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1079 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1080 var _bulbIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/bulb-icon */ "../modules/ai/assets/js/editor/icons/bulb-icon.js"));
1081 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
1082 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1083 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1084 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1085 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1086 var VoicePromotionAlert = exports.VoicePromotionAlert = function VoicePromotionAlert(props) {
1087 var _useIntroduction = (0, _useIntroduction2.default)(props.introductionKey),
1088 isViewed = _useIntroduction.isViewed,
1089 markAsViewed = _useIntroduction.markAsViewed;
1090 if (isViewed) {
1091 return null;
1092 }
1093 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
1094 sx: _objectSpread({
1095 mt: 2
1096 }, props.sx),
1097 alignItems: "top"
1098 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
1099 severity: "info",
1100 variant: "standard",
1101 icon: /*#__PURE__*/_react.default.createElement(_bulbIcon.default, {
1102 sx: {
1103 alignSelf: 'flex-start'
1104 }
1105 }),
1106 onClose: markAsViewed
1107 }, (0, _i18n.__)('Get improved results from AI by adding personal context.', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
1108 onClick: function onClick() {
1109 return $e.route('panel/global/menu');
1110 },
1111 className: "elementor-clickable",
1112 style: {
1113 textDecoration: 'none'
1114 },
1115 color: "info.main",
1116 href: "#"
1117 }, (0, _i18n.__)('Let’s do it', 'elementor'))));
1118 };
1119 VoicePromotionAlert.propTypes = {
1120 sx: _propTypes.default.object,
1121 introductionKey: _propTypes.default.string
1122 };
1123 var _default = exports["default"] = VoicePromotionAlert;
1124
1125 /***/ }),
1126
1127 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
1128 /*!******************************************************************!*\
1129 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
1130 \******************************************************************/
1131 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1132
1133 "use strict";
1134
1135
1136 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1137 Object.defineProperty(exports, "__esModule", ({
1138 value: true
1139 }));
1140 exports["default"] = void 0;
1141 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1142 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1143 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1144 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1145 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1146 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1147 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
1148 var _excluded = ["sx"];
1149 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1150 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1151 var WizardDialog = function WizardDialog(props) {
1152 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
1153 open: true,
1154 onClose: props.onClose,
1155 fullWidth: true,
1156 hideBackdrop: true,
1157 maxWidth: "lg",
1158 PaperProps: {
1159 sx: {
1160 height: '88vh'
1161 }
1162 },
1163 sx: {
1164 zIndex: 9999
1165 }
1166 }, props.children);
1167 };
1168 WizardDialog.propTypes = {
1169 onClose: _propTypes.default.func.isRequired,
1170 children: _propTypes.default.node.isRequired
1171 };
1172 var WizardDialogContent = function WizardDialogContent(_ref) {
1173 var _ref$sx = _ref.sx,
1174 sx = _ref$sx === void 0 ? {} : _ref$sx,
1175 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1176 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
1177 sx: _objectSpread({
1178 display: 'flex',
1179 flexDirection: 'column',
1180 justifyContent: 'center'
1181 }, sx)
1182 }));
1183 };
1184 WizardDialogContent.propTypes = {
1185 sx: _propTypes.default.object
1186 };
1187 WizardDialog.Header = _dialogHeader.default;
1188 WizardDialog.Content = WizardDialogContent;
1189 var _default = exports["default"] = WizardDialog;
1190
1191 /***/ }),
1192
1193 /***/ "../modules/ai/assets/js/editor/context/requests-ids.js":
1194 /*!**************************************************************!*\
1195 !*** ../modules/ai/assets/js/editor/context/requests-ids.js ***!
1196 \**************************************************************/
1197 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1198
1199 "use strict";
1200
1201
1202 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1203 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1204 Object.defineProperty(exports, "__esModule", ({
1205 value: true
1206 }));
1207 exports["default"] = exports.RequestIdsProvider = void 0;
1208 exports.generateIds = generateIds;
1209 exports.useRequestIds = exports.getUniqueId = void 0;
1210 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1211 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1212 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1213 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1214 var Context = (0, _react.createContext)({});
1215 var useRequestIds = exports.useRequestIds = function useRequestIds() {
1216 var context = (0, _react.useContext)(Context);
1217 if (!context) {
1218 throw new Error('useRequestIds must be used within a RequestIdsProvider');
1219 }
1220 return context;
1221 };
1222 var getUniqueId = exports.getUniqueId = function getUniqueId(prefix) {
1223 return prefix + '-' + Math.random().toString(16).substr(2, 7);
1224 };
1225 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
1226 function generateIds(template) {
1227 var _template$elements;
1228 template.id = getUniqueId().toString();
1229 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
1230 template.elements.map(function (child) {
1231 return generateIds(child);
1232 });
1233 }
1234 return template;
1235 }
1236 var RequestIdsProvider = exports.RequestIdsProvider = function RequestIdsProvider(props) {
1237 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
1238 var sessionId = (0, _react.useRef)('');
1239 var generateId = (0, _react.useRef)('');
1240 var batchId = (0, _react.useRef)('');
1241 var requestId = (0, _react.useRef)('');
1242 sessionId.current = getUniqueId('session');
1243 var setGenerate = function setGenerate() {
1244 generateId.current = getUniqueId('generate');
1245 return generateId;
1246 };
1247 var setBatch = function setBatch() {
1248 batchId.current = getUniqueId('batch');
1249 return batchId;
1250 };
1251 var setRequest = function setRequest() {
1252 requestId.current = getUniqueId('request');
1253 return requestId;
1254 };
1255 var _useState = (0, _react.useState)(0),
1256 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1257 usagePercentage = _useState2[0],
1258 setUsagePercentage = _useState2[1];
1259 var updateUsagePercentage = function updateUsagePercentage(newPercentage) {
1260 setUsagePercentage(newPercentage);
1261 };
1262 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
1263 value: {
1264 editorSessionId: editorSessionId,
1265 sessionId: sessionId,
1266 generateId: generateId,
1267 batchId: batchId,
1268 requestId: requestId,
1269 setGenerate: setGenerate,
1270 setBatch: setBatch,
1271 setRequest: setRequest,
1272 usagePercentage: usagePercentage,
1273 updateUsagePercentage: updateUsagePercentage
1274 }
1275 }, props.children);
1276 };
1277 RequestIdsProvider.propTypes = {
1278 children: _propTypes.default.node.isRequired
1279 };
1280 var _default = exports["default"] = Context;
1281
1282 /***/ }),
1283
1284 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
1285 /*!****************************************************************!*\
1286 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
1287 \****************************************************************/
1288 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1289
1290 "use strict";
1291
1292
1293 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1294 Object.defineProperty(exports, "__esModule", ({
1295 value: true
1296 }));
1297 exports["default"] = useIntroduction;
1298 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1299 var _react = __webpack_require__(/*! react */ "react");
1300 function useIntroduction(key) {
1301 var _window$elementor$con, _window$elementorAdmi, _globalConfig$introdu;
1302 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 || (_window$elementorAdmi = _window$elementorAdmi.config) === null || _window$elementorAdmi === void 0 ? void 0 : _window$elementorAdmi.user;
1303 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
1304 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1305 isViewed = _useState2[0],
1306 setIsViewed = _useState2[1];
1307 function markAsViewed() {
1308 if (!key) {
1309 return Promise.reject();
1310 }
1311 return new Promise(function (resolve, reject) {
1312 if (isViewed) {
1313 reject();
1314 }
1315 setIsViewed(true);
1316 elementorCommon.ajax.addRequest('introduction_viewed', {
1317 data: {
1318 introductionKey: key
1319 },
1320 error: function error() {
1321 setIsViewed(false);
1322 reject();
1323 },
1324 success: function success() {
1325 setIsViewed(true);
1326 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
1327 globalConfig.introduction[key] = true;
1328 }
1329 resolve();
1330 }
1331 });
1332 });
1333 }
1334 return {
1335 isViewed: isViewed,
1336 markAsViewed: markAsViewed
1337 };
1338 }
1339
1340 /***/ }),
1341
1342 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
1343 /*!*******************************************************************!*\
1344 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
1345 \*******************************************************************/
1346 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1347
1348 "use strict";
1349
1350
1351 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1352 Object.defineProperty(exports, "__esModule", ({
1353 value: true
1354 }));
1355 exports["default"] = void 0;
1356 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1357 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
1358 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
1359 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
1360 var getResult = function getResult(prompt, type, enhanceType) {
1361 if (!enhancePromptMap.has(type)) {
1362 throw new Error("Invalid prompt type: ".concat(type));
1363 }
1364 return enhancePromptMap.get(type)(prompt, enhanceType);
1365 };
1366
1367 /**
1368 * Hook to enhance a prompt.
1369 *
1370 * @param {string} prompt
1371 * @param {'media' | 'layout'} type
1372 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
1373 */
1374 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
1375 var _useConfig = (0, _config.useConfig)(),
1376 mode = _useConfig.mode;
1377 var _usePrompt = (0, _usePrompt2.default)(function () {
1378 return getResult(prompt, type, mode);
1379 }, prompt),
1380 enhancedData = _usePrompt.data,
1381 isEnhancing = _usePrompt.isLoading,
1382 enhance = _usePrompt.send;
1383 return {
1384 enhance: enhance,
1385 isEnhancing: isEnhancing,
1386 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
1387 };
1388 };
1389 var _default = exports["default"] = usePromptEnhancer;
1390
1391 /***/ }),
1392
1393 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
1394 /*!**********************************************************!*\
1395 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
1396 \**********************************************************/
1397 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1398
1399 "use strict";
1400
1401
1402 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1403 Object.defineProperty(exports, "__esModule", ({
1404 value: true
1405 }));
1406 exports["default"] = void 0;
1407 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1408 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1409 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1410 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1411 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1412 var _react = __webpack_require__(/*! react */ "react");
1413 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1414 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
1415 var _excluded = ["text", "response_id", "usage", "images"];
1416 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1417 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1418 var normalizeResponse = function normalizeResponse(_ref) {
1419 var text = _ref.text,
1420 responseId = _ref.response_id,
1421 usage = _ref.usage,
1422 images = _ref.images,
1423 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1424 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
1425 var credits = Math.max(creditsData, 0);
1426 var result = text || images;
1427 var normalized = {
1428 result: result,
1429 responseId: responseId,
1430 credits: credits,
1431 usagePercentage: usage === null || usage === void 0 ? void 0 : usage.usagePercentage
1432 };
1433 if (optional.base_template_id) {
1434 normalized.baseTemplateId = optional.base_template_id;
1435 }
1436 normalized.type = optional.template_type;
1437 return normalized;
1438 };
1439 var usePrompt = function usePrompt(fetchData, initialState) {
1440 var _useState = (0, _react.useState)(false),
1441 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1442 isLoading = _useState2[0],
1443 setIsLoading = _useState2[1];
1444 var _useState3 = (0, _react.useState)(''),
1445 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1446 error = _useState4[0],
1447 setError = _useState4[1];
1448 var _useState5 = (0, _react.useState)(initialState),
1449 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1450 data = _useState6[0],
1451 setData = _useState6[1];
1452 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
1453 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
1454 usagePercentage = _useRequestIds.usagePercentage;
1455 var send = (0, _react.useRef)(/*#__PURE__*/function () {
1456 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
1457 return _regenerator.default.wrap(function (_context) {
1458 while (1) switch (_context.prev = _context.next) {
1459 case 0:
1460 return _context.abrupt("return", payload);
1461 case 1:
1462 case "end":
1463 return _context.stop();
1464 }
1465 }, _callee);
1466 }));
1467 return function (_x) {
1468 return _ref2.apply(this, arguments);
1469 };
1470 }());
1471 var sendUsageData = (0, _react.useRef)(function () {});
1472 (0, _react.useEffect)(function () {
1473 var newUsageValue = data === null || data === void 0 ? void 0 : data.usagePercentage;
1474 if (newUsageValue && newUsageValue !== usagePercentage) {
1475 updateUsagePercentage(newUsageValue);
1476 }
1477 }, [data, usagePercentage, updateUsagePercentage]);
1478 var _useRequestIds2 = (0, _requestsIds.useRequestIds)(),
1479 setRequest = _useRequestIds2.setRequest,
1480 editorSessionId = _useRequestIds2.editorSessionId,
1481 sessionId = _useRequestIds2.sessionId,
1482 generateId = _useRequestIds2.generateId,
1483 batchId = _useRequestIds2.batchId;
1484 send.current = (0, _react.useCallback)(/*#__PURE__*/function () {
1485 var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(payload) {
1486 return _regenerator.default.wrap(function (_context2) {
1487 while (1) switch (_context2.prev = _context2.next) {
1488 case 0:
1489 return _context2.abrupt("return", new Promise(function (resolve, reject) {
1490 setError('');
1491 setIsLoading(true);
1492 var requestId = setRequest();
1493 var requestIds = {
1494 editorSessionId: editorSessionId.current,
1495 sessionId: sessionId.current,
1496 generateId: generateId.current,
1497 batchId: batchId.current,
1498 requestId: requestId.current
1499 };
1500 payload = _objectSpread(_objectSpread({}, payload), {}, {
1501 requestIds: requestIds
1502 });
1503 fetchData(payload).then(function (result) {
1504 var normalizedData = normalizeResponse(result);
1505 setData(normalizedData);
1506 resolve(normalizedData);
1507 }).catch(function (err) {
1508 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
1509 setError(finalError);
1510 reject(finalError);
1511 }).finally(function () {
1512 return setIsLoading(false);
1513 });
1514 }));
1515 case 1:
1516 case "end":
1517 return _context2.stop();
1518 }
1519 }, _callee2);
1520 }));
1521 return function (_x2) {
1522 return _ref3.apply(this, arguments);
1523 };
1524 }(), [batchId, editorSessionId, fetchData, generateId, sessionId, setRequest]);
1525 sendUsageData.current = (0, _react.useCallback)(function () {
1526 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
1527 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
1528 }, [data]);
1529 var reset = function reset() {
1530 setData(function (_ref4) {
1531 var credits = _ref4.credits;
1532 return {
1533 credits: credits,
1534 result: '',
1535 responseId: ''
1536 };
1537 });
1538 setError('');
1539 setIsLoading(false);
1540 };
1541 var setResult = function setResult(result) {
1542 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1543 var updatedResult = _objectSpread({}, data);
1544 updatedResult.result = result;
1545 if (responseId) {
1546 updatedResult.responseId = responseId;
1547 }
1548 setData(updatedResult);
1549 };
1550 return {
1551 isLoading: isLoading,
1552 error: error,
1553 data: data,
1554 setResult: setResult,
1555 reset: reset,
1556 send: send.current,
1557 sendUsageData: sendUsageData.current
1558 };
1559 };
1560 var _default = exports["default"] = usePrompt;
1561
1562 /***/ }),
1563
1564 /***/ "../modules/ai/assets/js/editor/hooks/use-timeout.js":
1565 /*!***********************************************************!*\
1566 !*** ../modules/ai/assets/js/editor/hooks/use-timeout.js ***!
1567 \***********************************************************/
1568 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1569
1570 "use strict";
1571
1572
1573 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1574 Object.defineProperty(exports, "__esModule", ({
1575 value: true
1576 }));
1577 exports.useTimeout = void 0;
1578 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1579 var _react = __webpack_require__(/*! react */ "react");
1580 var useTimeout = exports.useTimeout = function useTimeout(delay) {
1581 var _useState = (0, _react.useState)(false),
1582 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1583 isTimeout = _useState2[0],
1584 setIsTimeout = _useState2[1];
1585 var timeoutIdRef = (0, _react.useRef)(null);
1586 var turnOffTimeout = function turnOffTimeout() {
1587 clearTimeout(timeoutIdRef.current);
1588 setIsTimeout(false);
1589 };
1590 (0, _react.useEffect)(function () {
1591 timeoutIdRef.current = setTimeout(function () {
1592 setIsTimeout(true);
1593 }, delay);
1594 return function () {
1595 clearTimeout(timeoutIdRef.current);
1596 };
1597 }, [delay]);
1598 return [isTimeout, turnOffTimeout];
1599 };
1600
1601 /***/ }),
1602
1603 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
1604 /*!*************************************************************!*\
1605 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
1606 \*************************************************************/
1607 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1608
1609 "use strict";
1610
1611
1612 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1613 Object.defineProperty(exports, "__esModule", ({
1614 value: true
1615 }));
1616 exports["default"] = void 0;
1617 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1618 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1619 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1620 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1621 var _react = __webpack_require__(/*! react */ "react");
1622 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1623 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1624 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1625 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1626 var useUserInfo = function useUserInfo() {
1627 var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1628 var _useState = (0, _react.useState)(false),
1629 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1630 isLoaded = _useState2[0],
1631 setIsLoaded = _useState2[1];
1632 var _useState3 = (0, _react.useState)(false),
1633 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1634 isLoading = _useState4[0],
1635 setIsLoading = _useState4[1];
1636 var _useState5 = (0, _react.useState)({
1637 is_connected: false,
1638 is_get_started: false,
1639 connect_url: '',
1640 usage: {
1641 hasAiSubscription: false,
1642 quota: 0,
1643 usedQuota: 0
1644 }
1645 }),
1646 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1647 userInfo = _useState6[0],
1648 setUserInfo = _useState6[1];
1649 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
1650 var usagePercentage = userInfo.usage.quota ? userInfo.usage.usedQuota / userInfo.usage.quota * 100 : 0;
1651 var fetchData = /*#__PURE__*/function () {
1652 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1653 var userInfoResult;
1654 return _regenerator.default.wrap(function (_context) {
1655 while (1) switch (_context.prev = _context.next) {
1656 case 0:
1657 setIsLoading(true);
1658 _context.next = 1;
1659 return (0, _api.getUserInformation)(immediately);
1660 case 1:
1661 userInfoResult = _context.sent;
1662 setUserInfo(function (prevState) {
1663 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
1664 });
1665 setIsLoaded(true);
1666 setIsLoading(false);
1667 case 2:
1668 case "end":
1669 return _context.stop();
1670 }
1671 }, _callee);
1672 }));
1673 return function fetchData() {
1674 return _ref.apply(this, arguments);
1675 };
1676 }();
1677 if (!isLoaded && !isLoading) {
1678 fetchData();
1679 }
1680 return {
1681 isLoading: isLoading,
1682 isLoaded: isLoaded,
1683 isConnected: userInfo.is_connected,
1684 isGetStarted: userInfo.is_get_started,
1685 connectUrl: userInfo.connect_url,
1686 builderUrl: userInfo.usage.builderUrl,
1687 hasSubscription: userInfo.usage.hasAiSubscription,
1688 credits: credits < 0 ? 0 : credits,
1689 usagePercentage: Math.round(usagePercentage),
1690 fetchData: fetchData
1691 };
1692 };
1693 useUserInfo.propTypes = {
1694 immediately: _propTypes.default.bool
1695 };
1696 var _default = exports["default"] = useUserInfo;
1697
1698 /***/ }),
1699
1700 /***/ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js":
1701 /*!***************************************************************!*\
1702 !*** ../modules/ai/assets/js/editor/icons/arrow-left-icon.js ***!
1703 \***************************************************************/
1704 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1705
1706 "use strict";
1707
1708
1709 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1710 Object.defineProperty(exports, "__esModule", ({
1711 value: true
1712 }));
1713 exports["default"] = void 0;
1714 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1715 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1716 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1717 var ArrowLeftIcon = _react.default.forwardRef(function (props, ref) {
1718 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1719 viewBox: "0 0 24 24"
1720 }, props, {
1721 ref: ref
1722 }), /*#__PURE__*/_react.default.createElement("path", {
1723 fillRule: "evenodd",
1724 clipRule: "evenodd",
1725 d: "M9.53033 7.46967C9.82322 7.76256 9.82322 8.23744 9.53033 8.53033L6.81066 11.25H19C19.4142 11.25 19.75 11.5858 19.75 12C19.75 12.4142 19.4142 12.75 19 12.75H6.81066L9.53033 15.4697C9.82322 15.7626 9.82322 16.2374 9.53033 16.5303C9.23744 16.8232 8.76256 16.8232 8.46967 16.5303L4.46967 12.5303C4.17678 12.2374 4.17678 11.7626 4.46967 11.4697L8.46967 7.46967C8.76256 7.17678 9.23744 7.17678 9.53033 7.46967Z"
1726 }));
1727 });
1728 var _default = exports["default"] = ArrowLeftIcon;
1729
1730 /***/ }),
1731
1732 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
1733 /*!*********************************************************!*\
1734 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
1735 \*********************************************************/
1736 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1737
1738 "use strict";
1739
1740
1741 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1742 Object.defineProperty(exports, "__esModule", ({
1743 value: true
1744 }));
1745 exports["default"] = void 0;
1746 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1747 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1748 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1749 var BulbIcon = _react.default.forwardRef(function (props, ref) {
1750 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
1751 ref: ref
1752 }), /*#__PURE__*/_react.default.createElement("svg", {
1753 width: "22",
1754 height: "22",
1755 viewBox: "0 0 22 22",
1756 fill: "none",
1757 xmlns: "http://www.w3.org/2000/svg"
1758 }, /*#__PURE__*/_react.default.createElement("g", {
1759 clipPath: "url(#clip0_10743_8902)"
1760 }, /*#__PURE__*/_react.default.createElement("path", {
1761 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",
1762 stroke: "#2563EB",
1763 strokeWidth: "1.5",
1764 strokeLinecap: "round",
1765 strokeLinejoin: "round"
1766 }), /*#__PURE__*/_react.default.createElement("path", {
1767 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",
1768 stroke: "#2563EB",
1769 strokeWidth: "1.5",
1770 strokeLinecap: "round",
1771 strokeLinejoin: "round"
1772 }), /*#__PURE__*/_react.default.createElement("path", {
1773 d: "M10.0833 16.5H11.9166",
1774 stroke: "#2563EB",
1775 strokeWidth: "1.5",
1776 strokeLinecap: "round",
1777 strokeLinejoin: "round"
1778 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
1779 id: "clip0_10743_8902"
1780 }, /*#__PURE__*/_react.default.createElement("rect", {
1781 width: "22",
1782 height: "22",
1783 fill: "white"
1784 })))));
1785 });
1786 var _default = exports["default"] = BulbIcon;
1787
1788 /***/ }),
1789
1790 /***/ "../modules/ai/assets/js/editor/icons/copy-page-icon.js":
1791 /*!**************************************************************!*\
1792 !*** ../modules/ai/assets/js/editor/icons/copy-page-icon.js ***!
1793 \**************************************************************/
1794 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1795
1796 "use strict";
1797
1798
1799 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1800 Object.defineProperty(exports, "__esModule", ({
1801 value: true
1802 }));
1803 exports["default"] = void 0;
1804 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1805 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1806 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1807 var CopyPageIcon = _react.default.forwardRef(function (props, ref) {
1808 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1809 viewBox: "0 0 24 24"
1810 }, props, {
1811 ref: ref
1812 }), /*#__PURE__*/_react.default.createElement("path", {
1813 fillRule: "evenodd",
1814 clipRule: "evenodd",
1815 d: "M16.6667 0.208496C17.0534 0.208496 17.4244 0.362142 17.6979 0.635632C17.9714 0.909123 18.125 1.28006 18.125 1.66683V11.6668C18.125 12.0536 17.9714 12.4245 17.6979 12.698C17.4244 12.9715 17.0534 13.1252 16.6667 13.1252H14.7917V16.6668C14.7917 17.0536 14.638 17.4245 14.3645 17.698C14.091 17.9715 13.7201 18.1252 13.3333 18.1252H3.33333C2.94656 18.1252 2.57563 17.9715 2.30214 17.698C2.02865 17.4245 1.875 17.0536 1.875 16.6668V6.66683C1.875 6.28005 2.02865 5.90912 2.30214 5.63563C2.57563 5.36214 2.94656 5.2085 3.33333 5.2085H5.20833V1.66683C5.20833 1.28005 5.36198 0.909122 5.63547 0.635632C5.90896 0.362142 6.27989 0.208496 6.66667 0.208496H16.6667ZM6.66667 1.4585C6.61141 1.4585 6.55842 1.48045 6.51935 1.51952C6.48028 1.55859 6.45833 1.61158 6.45833 1.66683V3.54183H8.54167V1.4585H6.66667ZM3.125 9.79183V16.6668C3.125 16.7221 3.14695 16.7751 3.18602 16.8141C3.22509 16.8532 3.27808 16.8752 3.33333 16.8752H13.3333C13.3886 16.8752 13.4416 16.8532 13.4806 16.8141C13.5197 16.7751 13.5417 16.7221 13.5417 16.6668V13.1252H6.66667C6.27989 13.1252 5.90896 12.9715 5.63547 12.698C5.36198 12.4245 5.20833 12.0536 5.20833 11.6668V9.79183H3.125ZM5.20833 8.54183H3.125V6.66683C3.125 6.61158 3.14695 6.55859 3.18602 6.51952C3.22509 6.48045 3.27808 6.4585 3.33333 6.4585H5.20833V8.54183ZM6.45833 11.6668C6.45833 11.7221 6.48028 11.7751 6.51935 11.8141C6.55842 11.8532 6.61141 11.8752 6.66667 11.8752H16.6667C16.7219 11.8752 16.7749 11.8532 16.814 11.8141C16.853 11.7751 16.875 11.7221 16.875 11.6668V4.79183H6.45833V11.6668ZM9.79167 1.4585V3.54183H16.875V1.66683C16.875 1.61157 16.853 1.55858 16.814 1.51952C16.7749 1.48045 16.7219 1.4585 16.6667 1.4585H9.79167Z"
1816 }));
1817 });
1818 var _default = exports["default"] = CopyPageIcon;
1819
1820 /***/ }),
1821
1822 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
1823 /*!*********************************************************!*\
1824 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
1825 \*********************************************************/
1826 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1827
1828 "use strict";
1829
1830
1831 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1832 Object.defineProperty(exports, "__esModule", ({
1833 value: true
1834 }));
1835 exports["default"] = void 0;
1836 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1837 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1838 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1839 var EditIcon = _react.default.forwardRef(function (props, ref) {
1840 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1841 viewBox: "0 0 24 24"
1842 }, props, {
1843 ref: ref
1844 }), /*#__PURE__*/_react.default.createElement("path", {
1845 fillRule: "evenodd",
1846 clipRule: "evenodd",
1847 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"
1848 }), /*#__PURE__*/_react.default.createElement("path", {
1849 fillRule: "evenodd",
1850 clipRule: "evenodd",
1851 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"
1852 }));
1853 });
1854 var _default = exports["default"] = EditIcon;
1855
1856 /***/ }),
1857
1858 /***/ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js":
1859 /*!********************************************************************!*\
1860 !*** ../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js ***!
1861 \********************************************************************/
1862 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1863
1864 "use strict";
1865
1866
1867 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1868 Object.defineProperty(exports, "__esModule", ({
1869 value: true
1870 }));
1871 exports["default"] = void 0;
1872 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1873 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1874 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1875 var ExpandDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1876 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1877 viewBox: "0 0 24 24"
1878 }, props, {
1879 ref: ref
1880 }), /*#__PURE__*/_react.default.createElement("path", {
1881 fillRule: "evenodd",
1882 clipRule: "evenodd",
1883 d: "M4 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.58579 3.58579 3.25 4 3.25ZM13.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 16V20C20.75 20.4142 20.4142 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.4697Z"
1884 }));
1885 });
1886 var _default = exports["default"] = ExpandDiagonalIcon;
1887
1888 /***/ }),
1889
1890 /***/ "../modules/ai/assets/js/editor/icons/lock-icon.js":
1891 /*!*********************************************************!*\
1892 !*** ../modules/ai/assets/js/editor/icons/lock-icon.js ***!
1893 \*********************************************************/
1894 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1895
1896 "use strict";
1897
1898
1899 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1900 Object.defineProperty(exports, "__esModule", ({
1901 value: true
1902 }));
1903 exports["default"] = void 0;
1904 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1905 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1906 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1907 var LockIcon = _react.default.forwardRef(function (props, ref) {
1908 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1909 viewBox: "0 0 24 24"
1910 }, props, {
1911 ref: ref
1912 }), /*#__PURE__*/_react.default.createElement("path", {
1913 fillRule: "evenodd",
1914 clipRule: "evenodd",
1915 d: "M7.8125 11.9996C7.29473 11.9996 6.875 12.4473 6.875 12.9996V18.9996C6.875 19.5519 7.29473 19.9996 7.8125 19.9996H17.1875C17.7053 19.9996 18.125 19.5519 18.125 18.9996V12.9996C18.125 12.4473 17.7053 11.9996 17.1875 11.9996H7.8125ZM5 12.9996C5 11.3428 6.2592 9.99963 7.8125 9.99963H17.1875C18.7408 9.99963 20 11.3428 20 12.9996V18.9996C20 20.6565 18.7408 21.9996 17.1875 21.9996H7.8125C6.2592 21.9996 5 20.6565 5 18.9996V12.9996Z"
1916 }), /*#__PURE__*/_react.default.createElement("path", {
1917 fillRule: "evenodd",
1918 clipRule: "evenodd",
1919 d: "M12.5 3.90527C11.7044 3.90527 10.9413 4.22134 10.3787 4.78395C9.81607 5.34656 9.5 6.10962 9.5 6.90527V10.9053C9.5 11.4576 9.05228 11.9053 8.5 11.9053C7.94772 11.9053 7.5 11.4576 7.5 10.9053V6.90527C7.5 5.57919 8.02678 4.30742 8.96447 3.36974C9.90215 2.43206 11.1739 1.90527 12.5 1.90527C13.8261 1.90527 15.0979 2.43206 16.0355 3.36974C16.9732 4.30742 17.5 5.57919 17.5 6.90527V10.9053C17.5 11.4576 17.0523 11.9053 16.5 11.9053C15.9477 11.9053 15.5 11.4576 15.5 10.9053V6.90527C15.5 6.10962 15.1839 5.34656 14.6213 4.78395C14.0587 4.22134 13.2956 3.90527 12.5 3.90527Z"
1920 }), /*#__PURE__*/_react.default.createElement("path", {
1921 d: "M6 12H19V20H6V12Z"
1922 }));
1923 });
1924 var _default = exports["default"] = LockIcon;
1925
1926 /***/ }),
1927
1928 /***/ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js":
1929 /*!**********************************************************************!*\
1930 !*** ../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js ***!
1931 \**********************************************************************/
1932 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1933
1934 "use strict";
1935
1936
1937 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1938 Object.defineProperty(exports, "__esModule", ({
1939 value: true
1940 }));
1941 exports["default"] = void 0;
1942 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1943 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1944 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1945 var MinimizeDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1946 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1947 viewBox: "0 0 24 24"
1948 }, props, {
1949 ref: ref
1950 }), /*#__PURE__*/_react.default.createElement("path", {
1951 fillRule: "evenodd",
1952 clipRule: "evenodd",
1953 d: "M3.46967 3.46967C3.76256 3.17678 4.23744 3.17678 4.53033 3.46967L9.25 8.18934V6C9.25 5.58579 9.58579 5.25 10 5.25C10.4142 5.25 10.75 5.58579 10.75 6V10C10.75 10.4142 10.4142 10.75 10 10.75H6C5.58579 10.75 5.25 10.4142 5.25 10C5.25 9.58579 5.58579 9.25 6 9.25H8.18934L3.46967 4.53033C3.17678 4.23744 3.17678 3.76256 3.46967 3.46967ZM14 13.25H18C18.4142 13.25 18.75 13.5858 18.75 14C18.75 14.4142 18.4142 14.75 18 14.75H15.8107L20.5303 19.4697C20.8232 19.7626 20.8232 20.2374 20.5303 20.5303C20.2374 20.8232 19.7626 20.8232 19.4697 20.5303L14.75 15.8107V18C14.75 18.4142 14.4142 18.75 14 18.75C13.5858 18.75 13.25 18.4142 13.25 18V14C13.25 13.5858 13.5858 13.25 14 13.25Z"
1954 }));
1955 });
1956 var _default = exports["default"] = MinimizeDiagonalIcon;
1957
1958 /***/ }),
1959
1960 /***/ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js":
1961 /*!****************************************************************!*\
1962 !*** ../modules/ai/assets/js/editor/icons/plus-circle-icon.js ***!
1963 \****************************************************************/
1964 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1965
1966 "use strict";
1967
1968
1969 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1970 Object.defineProperty(exports, "__esModule", ({
1971 value: true
1972 }));
1973 exports["default"] = void 0;
1974 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1975 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1976 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1977 var PlusCircleIcon = _react.default.forwardRef(function (props, ref) {
1978 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1979 viewBox: "0 0 24 24"
1980 }, props, {
1981 ref: ref
1982 }), /*#__PURE__*/_react.default.createElement("path", {
1983 d: "M12 2.69231C6.8595 2.69231 2.69231 6.8595 2.69231 12C2.69231 17.1405 6.8595 21.3077 12 21.3077C17.1405 21.3077 21.3077 17.1405 21.3077 12C21.3077 6.8595 17.1405 2.69231 12 2.69231ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM12 7.76923C12.4673 7.76923 12.8462 8.14807 12.8462 8.61538V11.1538H15.3846C15.8519 11.1538 16.2308 11.5327 16.2308 12C16.2308 12.4673 15.8519 12.8462 15.3846 12.8462H12.8462V15.3846C12.8462 15.8519 12.4673 16.2308 12 16.2308C11.5327 16.2308 11.1538 15.8519 11.1538 15.3846V12.8462H8.61538C8.14807 12.8462 7.76923 12.4673 7.76923 12C7.76923 11.5327 8.14807 11.1538 8.61538 11.1538H11.1538V8.61538C11.1538 8.14807 11.5327 7.76923 12 7.76923Z"
1984 }));
1985 });
1986 var _default = exports["default"] = PlusCircleIcon;
1987
1988 /***/ }),
1989
1990 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
1991 /*!************************************************************!*\
1992 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
1993 \************************************************************/
1994 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1995
1996 "use strict";
1997
1998
1999 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2000 Object.defineProperty(exports, "__esModule", ({
2001 value: true
2002 }));
2003 exports["default"] = void 0;
2004 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2005 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2006 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2007 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
2008 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2009 viewBox: "0 0 24 24"
2010 }, props, {
2011 ref: ref
2012 }), /*#__PURE__*/_react.default.createElement("path", {
2013 fillRule: "evenodd",
2014 clipRule: "evenodd",
2015 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"
2016 }), /*#__PURE__*/_react.default.createElement("path", {
2017 fillRule: "evenodd",
2018 clipRule: "evenodd",
2019 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"
2020 }));
2021 });
2022 var _default = exports["default"] = RefreshIcon;
2023
2024 /***/ }),
2025
2026 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
2027 /*!*********************************************************!*\
2028 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
2029 \*********************************************************/
2030 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2031
2032 "use strict";
2033
2034
2035 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2036 Object.defineProperty(exports, "__esModule", ({
2037 value: true
2038 }));
2039 exports["default"] = void 0;
2040 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2041 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2042 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2043 var WandIcon = _react.default.forwardRef(function (props, ref) {
2044 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2045 viewBox: "0 0 24 24"
2046 }, props, {
2047 ref: ref
2048 }), /*#__PURE__*/_react.default.createElement("path", {
2049 fillRule: "evenodd",
2050 clipRule: "evenodd",
2051 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"
2052 }), /*#__PURE__*/_react.default.createElement("path", {
2053 fillRule: "evenodd",
2054 clipRule: "evenodd",
2055 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"
2056 }), /*#__PURE__*/_react.default.createElement("path", {
2057 fillRule: "evenodd",
2058 clipRule: "evenodd",
2059 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"
2060 }));
2061 });
2062 var _default = exports["default"] = WandIcon;
2063
2064 /***/ }),
2065
2066 /***/ "../modules/ai/assets/js/editor/icons/website-icon.js":
2067 /*!************************************************************!*\
2068 !*** ../modules/ai/assets/js/editor/icons/website-icon.js ***!
2069 \************************************************************/
2070 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2071
2072 "use strict";
2073
2074
2075 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2076 Object.defineProperty(exports, "__esModule", ({
2077 value: true
2078 }));
2079 exports["default"] = void 0;
2080 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2081 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2082 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2083 var WebsiteIcon = _react.default.forwardRef(function (props, ref) {
2084 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2085 viewBox: "0 0 24 24"
2086 }, props, {
2087 ref: ref
2088 }), /*#__PURE__*/_react.default.createElement("path", {
2089 fillRule: "evenodd",
2090 clipRule: "evenodd",
2091 d: "M4.16707 3.95837C4.11182 3.95837 4.05883 3.98032 4.01976 4.01939C3.98069 4.05846 3.95874 4.11145 3.95874 4.16671V6.04171H6.04207V3.95837H4.16707ZM4.16707 2.70837C3.7803 2.70837 3.40937 2.86202 3.13588 3.13551C2.86239 3.409 2.70874 3.77993 2.70874 4.16671V15.8334C2.70874 16.2201 2.86239 16.5911 3.13588 16.8646C3.40937 17.1381 3.7803 17.2917 4.16707 17.2917H15.8337C16.2205 17.2917 16.5914 17.1381 16.8649 16.8646C17.1384 16.5911 17.2921 16.2201 17.2921 15.8334V4.16671C17.2921 3.77993 17.1384 3.409 16.8649 3.13551C16.5914 2.86202 16.2205 2.70837 15.8337 2.70837H4.16707ZM7.29207 3.95837V6.04171H16.0421V4.16671C16.0421 4.11145 16.0201 4.05846 15.9811 4.01939C15.942 3.98032 15.889 3.95837 15.8337 3.95837H7.29207ZM16.0421 7.29171H3.95874V15.8334C3.95874 15.8886 3.98069 15.9416 4.01976 15.9807C4.05883 16.0198 4.11182 16.0417 4.16707 16.0417H15.8337C15.889 16.0417 15.942 16.0198 15.9811 15.9807C16.0201 15.9416 16.0421 15.8886 16.0421 15.8334V7.29171Z"
2092 }));
2093 });
2094 var _default = exports["default"] = WebsiteIcon;
2095
2096 /***/ }),
2097
2098 /***/ "../modules/ai/assets/js/editor/icons/x-circle-icon.js":
2099 /*!*************************************************************!*\
2100 !*** ../modules/ai/assets/js/editor/icons/x-circle-icon.js ***!
2101 \*************************************************************/
2102 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2103
2104 "use strict";
2105
2106
2107 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2108 Object.defineProperty(exports, "__esModule", ({
2109 value: true
2110 }));
2111 exports["default"] = void 0;
2112 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2113 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2114 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2115 var XCircleIcon = _react.default.forwardRef(function (props, ref) {
2116 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2117 viewBox: "0 0 24 24"
2118 }, props, {
2119 ref: ref
2120 }), /*#__PURE__*/_react.default.createElement("path", {
2121 d: "M12 2.69231C6.8595 2.69231 2.69231 6.8595 2.69231 12C2.69231 17.1405 6.8595 21.3077 12 21.3077C17.1405 21.3077 21.3077 17.1405 21.3077 12C21.3077 6.8595 17.1405 2.69231 12 2.69231ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM9.14527 9.14527C9.47571 8.81483 10.0115 8.81483 10.3419 9.14527L12 10.8034L13.6581 9.14527C13.9885 8.81483 14.5243 8.81483 14.8547 9.14527C15.1852 9.47571 15.1852 10.0115 14.8547 10.3419L13.1966 12L14.8547 13.6581C15.1852 13.9885 15.1852 14.5243 14.8547 14.8547C14.5243 15.1852 13.9885 15.1852 13.6581 14.8547L12 13.1966L10.3419 14.8547C10.0115 15.1852 9.47571 15.1852 9.14527 14.8547C8.81483 14.5243 8.81483 13.9885 9.14527 13.6581L10.8034 12L9.14527 10.3419C8.81483 10.0115 8.81483 9.47571 9.14527 9.14527Z"
2122 }));
2123 });
2124 var _default = exports["default"] = XCircleIcon;
2125
2126 /***/ }),
2127
2128 /***/ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js":
2129 /*!********************************************************************************************!*\
2130 !*** ../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js ***!
2131 \********************************************************************************************/
2132 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2133
2134 "use strict";
2135
2136
2137 var _require = __webpack_require__(/*! ../../utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js"),
2138 renderLayoutApp = _require.renderLayoutApp,
2139 importToEditor = _require.importToEditor;
2140 var _require2 = __webpack_require__(/*! ../../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js"),
2141 MODE_VARIATION = _require2.MODE_VARIATION;
2142 var _require3 = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"),
2143 __ = _require3.__;
2144 var _require4 = __webpack_require__(/*! ../../pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"),
2145 ATTACHMENT_TYPE_JSON = _require4.ATTACHMENT_TYPE_JSON,
2146 ELEMENTOR_LIBRARY_SOURCE = _require4.ELEMENTOR_LIBRARY_SOURCE;
2147 var ApplyTemplateForAiBehavior;
2148 ApplyTemplateForAiBehavior = Marionette.Behavior.extend({
2149 ui: {
2150 applyButton: '.elementor-template-library-template-apply-ai',
2151 generateVariation: '.elementor-template-library-template-generate-variation'
2152 },
2153 events: {
2154 'click @ui.applyButton': 'onApplyButtonClick',
2155 'click @ui.generateVariation': 'onGenerateVariationClick'
2156 },
2157 onGenerateVariationClick: function onGenerateVariationClick() {
2158 var _libraryComponent$man;
2159 var args = {
2160 model: this.view.model
2161 };
2162 var libraryComponent = $e.components.get('library');
2163 var at = (_libraryComponent$man = libraryComponent.manager.modalConfig) === null || _libraryComponent$man === void 0 || (_libraryComponent$man = _libraryComponent$man.importOptions) === null || _libraryComponent$man === void 0 ? void 0 : _libraryComponent$man.at;
2164 libraryComponent.downloadTemplate(args, function (data) {
2165 var model = args.model;
2166 var attachment = {
2167 type: ATTACHMENT_TYPE_JSON,
2168 previewHTML: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
2169 content: data.content[0],
2170 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
2171 source: ELEMENTOR_LIBRARY_SOURCE
2172 };
2173 renderLayoutApp({
2174 parentContainer: elementor.getPreviewContainer(),
2175 mode: MODE_VARIATION,
2176 at: at,
2177 attachments: [attachment],
2178 onInsert: function onInsert(template) {
2179 importToEditor({
2180 parentContainer: elementor.getPreviewContainer(),
2181 at: at,
2182 template: template,
2183 historyTitle: __('AI Variation from library', 'elementor')
2184 });
2185 }
2186 });
2187 $e.run('library/close');
2188 });
2189 },
2190 onApplyButtonClick: function onApplyButtonClick() {
2191 var args = {
2192 model: this.view.model
2193 };
2194 this.ui.applyButton.addClass('elementor-disabled');
2195 var activeSource = args.model.get('source');
2196
2197 /**
2198 * Filter template source.
2199 *
2200 * @param bool isRemote - If `true` the source is a remote source.
2201 * @param string activeSource - The current template source.
2202 */
2203 var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
2204 if (isRemote && !elementor.config.library_connect.is_connected) {
2205 $e.route('library/connect', args);
2206 return;
2207 }
2208 $e.run('library/generate-ai-variation', args);
2209 }
2210 });
2211 module.exports = ApplyTemplateForAiBehavior;
2212
2213 /***/ }),
2214
2215 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2216 /*!************************************************************!*\
2217 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2218 \************************************************************/
2219 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2220
2221 "use strict";
2222
2223
2224 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2225 Object.defineProperty(exports, "__esModule", ({
2226 value: true
2227 }));
2228 exports["default"] = void 0;
2229 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2230 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2231 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2232 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2233 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2234 rtl: props.isRTL
2235 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2236 colorScheme: props.colorScheme
2237 }, props.children));
2238 };
2239 LayoutAppWrapper.propTypes = {
2240 children: _propTypes.default.node,
2241 isRTL: _propTypes.default.bool,
2242 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2243 };
2244 var _default = exports["default"] = LayoutAppWrapper;
2245
2246 /***/ }),
2247
2248 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2249 /*!****************************************************!*\
2250 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2251 \****************************************************/
2252 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2253
2254 "use strict";
2255
2256
2257 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2258 Object.defineProperty(exports, "__esModule", ({
2259 value: true
2260 }));
2261 exports["default"] = void 0;
2262 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2263 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2264 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2265 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2266 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2267 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2268 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2269 var LayoutApp = function LayoutApp(props) {
2270 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2271 onError: props.onClose
2272 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2273 mode: props.mode,
2274 attachmentsTypes: props.attachmentsTypes,
2275 onClose: props.onClose,
2276 onConnect: props.onConnect,
2277 onData: props.onData,
2278 onInsert: props.onInsert,
2279 onSelect: props.onSelect,
2280 onGenerate: props.onGenerate,
2281 currentContext: props.currentContext,
2282 hasPro: props.hasPro
2283 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2284 attachments: props.attachments
2285 }))));
2286 };
2287 LayoutApp.propTypes = {
2288 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2289 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2290 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2291 onClose: _propTypes.default.func.isRequired,
2292 onConnect: _propTypes.default.func.isRequired,
2293 onData: _propTypes.default.func.isRequired,
2294 onInsert: _propTypes.default.func.isRequired,
2295 onSelect: _propTypes.default.func.isRequired,
2296 onGenerate: _propTypes.default.func.isRequired,
2297 currentContext: _propTypes.default.object,
2298 hasPro: _propTypes.default.bool
2299 };
2300 var _default = exports["default"] = LayoutApp;
2301
2302 /***/ }),
2303
2304 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2305 /*!********************************************************!*\
2306 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2307 \********************************************************/
2308 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2309
2310 "use strict";
2311
2312
2313 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2314 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2315 Object.defineProperty(exports, "__esModule", ({
2316 value: true
2317 }));
2318 exports["default"] = void 0;
2319 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2320 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2321 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2322 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2323 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2324 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2325 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2326 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2327 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2328 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2329 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2330 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2331 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2332 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2333 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2334 var LayoutContent = function LayoutContent(props) {
2335 var _useUserInfo = (0, _useUserInfo2.default)(),
2336 isLoading = _useUserInfo.isLoading,
2337 isConnected = _useUserInfo.isConnected,
2338 isGetStarted = _useUserInfo.isGetStarted,
2339 connectUrl = _useUserInfo.connectUrl,
2340 fetchData = _useUserInfo.fetchData,
2341 hasSubscription = _useUserInfo.hasSubscription,
2342 initialUsagePercentage = _useUserInfo.usagePercentage;
2343 var _useConfig = (0, _config.useConfig)(),
2344 onClose = _useConfig.onClose,
2345 onConnect = _useConfig.onConnect;
2346 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2347 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2348 usagePercentage = _useRequestIds.usagePercentage;
2349 var _useState = (0, _react.useState)(false),
2350 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2351 isInitUsageDone = _useState2[0],
2352 setIsInitUsageDone = _useState2[1];
2353 (0, _react.useEffect)(function () {
2354 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2355 updateUsagePercentage(initialUsagePercentage);
2356 setIsInitUsageDone(true);
2357 }
2358 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2359 if (isLoading || !isInitUsageDone) {
2360 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2361 onClose: onClose
2362 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2363 onClose: onClose
2364 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2365 dividers: true
2366 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2367 BoxProps: {
2368 sx: {
2369 px: 3
2370 }
2371 }
2372 })));
2373 }
2374 if (!isConnected) {
2375 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2376 onClose: onClose
2377 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2378 onClose: onClose
2379 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2380 dividers: true
2381 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2382 connectUrl: connectUrl,
2383 onSuccess: function onSuccess(data) {
2384 onConnect(data);
2385 fetchData();
2386 }
2387 })));
2388 }
2389 if (!isGetStarted) {
2390 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2391 onClose: onClose
2392 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2393 onClose: onClose
2394 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2395 dividers: true
2396 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2397 onSuccess: fetchData
2398 })));
2399 }
2400 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2401 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2402 attachments: props.attachments,
2403 DialogHeaderProps: {
2404 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2405 hasSubscription: hasSubscription,
2406 usagePercentage: usagePercentage
2407 })
2408 }
2409 });
2410 };
2411 LayoutContent.propTypes = {
2412 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2413 };
2414 var _default = exports["default"] = LayoutContent;
2415
2416 /***/ }),
2417
2418 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2419 /*!*************************************************************!*\
2420 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2421 \*************************************************************/
2422 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2423
2424 "use strict";
2425
2426
2427 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2428 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2429 Object.defineProperty(exports, "__esModule", ({
2430 value: true
2431 }));
2432 exports["default"] = void 0;
2433 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2434 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2435 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2436 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2437 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2438 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2439 var Connect = function Connect(_ref) {
2440 var connectUrl = _ref.connectUrl,
2441 onSuccess = _ref.onSuccess;
2442 var approveButtonRef = (0, _react.useRef)();
2443 (0, _react.useEffect)(function () {
2444 // On local dev (as a standalone app), the connect lib is not loaded.
2445 if (!jQuery.fn.elementorConnect) {
2446 return;
2447 }
2448 jQuery(approveButtonRef.current).elementorConnect({
2449 success: function success(_, data) {
2450 return onSuccess(data);
2451 },
2452 error: function error() {
2453 throw new Error('Elementor AI: Failed to connect.');
2454 }
2455 });
2456 }, []);
2457 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2458 alignItems: "center",
2459 gap: 2
2460 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2461 sx: {
2462 color: 'text.primary',
2463 fontSize: '60px',
2464 mb: 1
2465 }
2466 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2467 variant: "h4",
2468 sx: {
2469 color: 'text.primary'
2470 }
2471 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2472 variant: "body2"
2473 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2474 variant: "caption",
2475 sx: {
2476 maxWidth: 520,
2477 textAlign: 'center'
2478 }
2479 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2480 href: "https://go.elementor.com/ai-terms/",
2481 target: "_blank",
2482 color: "info.main"
2483 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2484 href: "https://go.elementor.com/ai-privacy-policy/",
2485 target: "_blank",
2486 color: "info.main"
2487 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2488 ref: approveButtonRef,
2489 href: connectUrl,
2490 variant: "contained",
2491 sx: {
2492 mt: 1,
2493 '&:hover': {
2494 color: 'primary.contrastText'
2495 }
2496 }
2497 }, (0, _i18n.__)('Connect', 'elementor')));
2498 };
2499 Connect.propTypes = {
2500 connectUrl: _propTypes.default.string.isRequired,
2501 onSuccess: _propTypes.default.func.isRequired
2502 };
2503 var _default = exports["default"] = Connect;
2504
2505 /***/ }),
2506
2507 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2508 /*!**********************************************************************************!*\
2509 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2510 \**********************************************************************************/
2511 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2512
2513 "use strict";
2514
2515
2516 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2517 Object.defineProperty(exports, "__esModule", ({
2518 value: true
2519 }));
2520 exports["default"] = exports.USER_VARIATION_SOURCE = exports.USER_URL_SOURCE = exports.MENU_TYPE_LIBRARY = exports.ELEMENTOR_LIBRARY_SOURCE = exports.ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_JSON = void 0;
2521 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2522 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2523 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2524 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2525 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2526 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2527 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2528 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2529 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2530 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2531 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2532 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2533 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2534 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2535 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2536 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2537 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2538 var Attachments = function Attachments(props) {
2539 if (!props.attachments.length) {
2540 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2541 disabled: props.disabled,
2542 onAttach: props.onAttach,
2543 items: [{
2544 title: (0, _i18n.__)('Reference a website', 'elementor'),
2545 icon: _websiteIcon.default,
2546 type: ATTACHMENT_TYPE_URL
2547 }, {
2548 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2549 icon: _copyPageIcon.default,
2550 type: MENU_TYPE_LIBRARY
2551 }]
2552 });
2553 }
2554 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2555 direction: "row",
2556 spacing: 1
2557 }, props.attachments.map(function (attachment, index) {
2558 switch (attachment.type) {
2559 case ATTACHMENT_TYPE_JSON:
2560 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2561 key: index
2562 }, props));
2563 case ATTACHMENT_TYPE_URL:
2564 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2565 key: index
2566 }, props));
2567 default:
2568 return null;
2569 }
2570 }));
2571 };
2572 Attachments.propTypes = {
2573 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2574 onAttach: _propTypes.default.func.isRequired,
2575 onDetach: _propTypes.default.func,
2576 disabled: _propTypes.default.bool
2577 };
2578 var _default = exports["default"] = Attachments;
2579
2580 /***/ }),
2581
2582 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2583 /*!************************************************************************************************!*\
2584 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2585 \************************************************************************************************/
2586 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2587
2588 "use strict";
2589
2590
2591 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2592 Object.defineProperty(exports, "__esModule", ({
2593 value: true
2594 }));
2595 exports["default"] = exports.AttachDialog = void 0;
2596 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2597 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2598 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2599 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2600 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2601 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2602 var type = props.type;
2603 var url = props.url;
2604 switch (type) {
2605 case _attachments.ATTACHMENT_TYPE_URL:
2606 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2607 url: url,
2608 onAttach: props.onAttach,
2609 onClose: props.onClose
2610 });
2611 case _attachments.MENU_TYPE_LIBRARY:
2612 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2613 onAttach: props.onAttach,
2614 onClose: props.onClose
2615 });
2616 }
2617 return null;
2618 };
2619 AttachDialog.propTypes = {
2620 type: _propTypes.default.string,
2621 onAttach: _propTypes.default.func,
2622 onClose: _propTypes.default.func,
2623 url: _propTypes.default.string
2624 };
2625 var _default = exports["default"] = AttachDialog;
2626
2627 /***/ }),
2628
2629 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2630 /*!*************************************************************************************************!*\
2631 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2632 \*************************************************************************************************/
2633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2634
2635 "use strict";
2636
2637
2638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2639 Object.defineProperty(exports, "__esModule", ({
2640 value: true
2641 }));
2642 exports.LibraryDialog = void 0;
2643 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2644 var _react = __webpack_require__(/*! react */ "react");
2645 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2646 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2647 var isApplyingTemplate = (0, _react.useRef)(false);
2648 (0, _react.useEffect)(function () {
2649 var onLibraryHide = function onLibraryHide() {
2650 if (isApplyingTemplate.current) {
2651 return;
2652 }
2653 props.onClose();
2654 };
2655 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2656 return function () {
2657 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2658 };
2659 }, [props]);
2660 (0, _react.useEffect)(function () {
2661 var onMessage = function onMessage(event) {
2662 var _event$data = event.data,
2663 type = _event$data.type,
2664 json = _event$data.json,
2665 html = _event$data.html,
2666 label = _event$data.label,
2667 source = _event$data.source;
2668 switch (type) {
2669 case 'library/attach:start':
2670 isApplyingTemplate.current = true;
2671 break;
2672 case 'library/attach':
2673 props.onAttach([{
2674 type: _attachments.ATTACHMENT_TYPE_JSON,
2675 previewHTML: html,
2676 content: json,
2677 label: label,
2678 source: source
2679 }]);
2680 isApplyingTemplate.current = false;
2681 props.onClose();
2682 break;
2683 }
2684 };
2685 window.addEventListener('message', onMessage);
2686 return function () {
2687 window.removeEventListener('message', onMessage);
2688 };
2689 });
2690 $e.run('library/open', {
2691 toDefault: true,
2692 mode: 'ai-attachment'
2693 });
2694 isApplyingTemplate.current = false;
2695 return null;
2696 };
2697 LibraryDialog.propTypes = {
2698 onAttach: _propTypes.default.func.isRequired,
2699 onClose: _propTypes.default.func.isRequired
2700 };
2701
2702 /***/ }),
2703
2704 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2705 /*!***************************************************************************************!*\
2706 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2707 \***************************************************************************************/
2708 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2709
2710 "use strict";
2711
2712
2713 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2714 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2715 Object.defineProperty(exports, "__esModule", ({
2716 value: true
2717 }));
2718 exports.Menu = void 0;
2719 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2720 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2721 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2722 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2723 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2724 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2725 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2726 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2727 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2728 var Menu = exports.Menu = function Menu(props) {
2729 var _useState = (0, _react.useState)(false),
2730 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2731 isOpen = _useState2[0],
2732 setIsOpen = _useState2[1];
2733 var _useState3 = (0, _react.useState)(null),
2734 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2735 selectedType = _useState4[0],
2736 setSelectedType = _useState4[1];
2737 var _useTheme = (0, _ui.useTheme)(),
2738 direction = _useTheme.direction;
2739 var anchorRef = (0, _react.useRef)(null);
2740 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2741 isViewed = _useIntroduction.isViewed,
2742 markAsViewed = _useIntroduction.markAsViewed;
2743 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2744 size: "small",
2745 ref: anchorRef,
2746 disabled: props.disabled,
2747 onClick: function onClick() {
2748 setIsOpen(true);
2749 if (!isViewed) {
2750 markAsViewed();
2751 }
2752 },
2753 color: "secondary"
2754 }, function () {
2755 if (isOpen) {
2756 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2757 fontSize: "small"
2758 });
2759 } else if (isViewed) {
2760 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2761 fontSize: "small"
2762 });
2763 }
2764 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2765 color: "primary",
2766 badgeContent: " ",
2767 variant: "dot"
2768 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2769 fontSize: "small"
2770 }));
2771 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2772 open: isOpen,
2773 anchorEl: anchorRef.current,
2774 onClose: function onClose() {
2775 return setIsOpen(false);
2776 },
2777 anchorOrigin: {
2778 vertical: 'bottom',
2779 horizontal: 'rtl' === direction ? 'right' : 'left'
2780 },
2781 transformOrigin: {
2782 vertical: 'top',
2783 horizontal: 'rtl' === direction ? 'right' : 'left'
2784 }
2785 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2786 sx: {
2787 width: 440
2788 }
2789 }, props.items.map(function (item) {
2790 var IconComponent = item.icon;
2791 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2792 key: item.type,
2793 onClick: function onClick() {
2794 setSelectedType(item.type);
2795 setIsOpen(false);
2796 }
2797 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2798 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2799 type: selectedType,
2800 onAttach: props.onAttach,
2801 onClose: function onClose() {
2802 setIsOpen(false);
2803 setSelectedType(null);
2804 }
2805 }));
2806 };
2807 Menu.propTypes = {
2808 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2809 title: _propTypes.default.string.isRequired,
2810 type: _propTypes.default.string.isRequired,
2811 icon: _propTypes.default.elementType
2812 })).isRequired,
2813 onAttach: _propTypes.default.func.isRequired,
2814 disabled: _propTypes.default.bool
2815 };
2816
2817 /***/ }),
2818
2819 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2820 /*!******************************************************************************************************!*\
2821 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2822 \******************************************************************************************************/
2823 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2824
2825 "use strict";
2826
2827
2828 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2829 Object.defineProperty(exports, "__esModule", ({
2830 value: true
2831 }));
2832 exports.PromptPowerNotice = void 0;
2833 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2834 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2835 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2836 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2837 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2838 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2839 isViewed = _useIntroduction.isViewed,
2840 markAsViewed = _useIntroduction.markAsViewed;
2841 if (isViewed) {
2842 return null;
2843 }
2844 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2845 sx: {
2846 pt: 2,
2847 px: 2,
2848 pb: 0
2849 }
2850 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2851 severity: "info",
2852 onClose: function onClose() {
2853 return markAsViewed();
2854 }
2855 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2856 variant: "body2",
2857 display: "inline-block",
2858 sx: {
2859 paddingInlineEnd: 1
2860 }
2861 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2862 variant: "body2",
2863 display: "inline-block"
2864 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2865 };
2866
2867 /***/ }),
2868
2869 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2870 /*!*************************************************************************************************!*\
2871 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2872 \*************************************************************************************************/
2873 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2874
2875 "use strict";
2876
2877
2878 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2879 Object.defineProperty(exports, "__esModule", ({
2880 value: true
2881 }));
2882 exports["default"] = exports.ThumbnailJson = void 0;
2883 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2884 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2885 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2886 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2887 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2888 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2889 var _props$attachments;
2890 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2891 return 'json' === item.type;
2892 });
2893 if (!attachment) {
2894 return null;
2895 }
2896 if (!attachment.previewHTML) {
2897 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2898 animation: "wave",
2899 variant: "rounded",
2900 width: 60,
2901 height: 60
2902 });
2903 }
2904 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2905 html: attachment.previewHTML,
2906 disabled: props.disabled
2907 });
2908 };
2909 ThumbnailJson.propTypes = {
2910 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2911 disabled: _propTypes.default.bool
2912 };
2913 var _default = exports["default"] = ThumbnailJson;
2914
2915 /***/ }),
2916
2917 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2918 /*!************************************************************************************************!*\
2919 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2920 \************************************************************************************************/
2921 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2922
2923 "use strict";
2924
2925
2926 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2927 Object.defineProperty(exports, "__esModule", ({
2928 value: true
2929 }));
2930 exports["default"] = exports.ThumbnailUrl = void 0;
2931 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2932 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2933 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2934 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2935 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2936 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2937 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2938 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2939 var _props$attachments;
2940 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2941 return 'url' === item.type;
2942 });
2943 if (!attachment) {
2944 return null;
2945 }
2946 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2947 sx: {
2948 position: 'relative',
2949 '&:hover::before': {
2950 content: '""',
2951 position: 'absolute',
2952 userSelect: 'none',
2953 inset: 0,
2954 backgroundColor: 'rgba(0,0,0,0.6)',
2955 borderRadius: 1,
2956 zIndex: 1
2957 },
2958 '&:hover .remove-attachment': {
2959 display: 'flex'
2960 }
2961 }
2962 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2963 className: "remove-attachment",
2964 size: "small",
2965 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2966 disabled: props.disabled,
2967 onClick: function onClick(event) {
2968 event.stopPropagation();
2969 props.onDetach();
2970 },
2971 sx: {
2972 display: 'none',
2973 position: 'absolute',
2974 insetInlineEnd: 4,
2975 insetBlockStart: 4,
2976 backgroundColor: 'secondary.main',
2977 zIndex: 1,
2978 borderRadius: 1,
2979 p: '3px',
2980 '&:hover': {
2981 backgroundColor: 'secondary.dark'
2982 }
2983 }
2984 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2985 sx: {
2986 fontSize: '1.125rem',
2987 color: 'common.white'
2988 }
2989 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2990 disabled: props.disabled,
2991 html: attachment.previewHTML
2992 }));
2993 };
2994 ThumbnailUrl.propTypes = {
2995 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2996 disabled: _propTypes.default.bool,
2997 onDetach: _propTypes.default.func
2998 };
2999 var _default = exports["default"] = ThumbnailUrl;
3000
3001 /***/ }),
3002
3003 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3004 /*!********************************************************************************************!*\
3005 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3006 \********************************************************************************************/
3007 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3008
3009 "use strict";
3010
3011
3012 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3013 Object.defineProperty(exports, "__esModule", ({
3014 value: true
3015 }));
3016 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3017 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3018 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3019 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3020 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3021 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3022 var _templateObject;
3023 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3024 var StyledBody = (0, _ui.styled)('body')(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\thtml, body {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\toverflow: hidden;\n\t}\n\n\tbody > * {\n\t\twidth: 100% !important;\n\t}\n\n\tbody > img {\n\t\theight: 100%;\n\t\tobject-fit: cover;\n\t}\n\n\tbody:has(> img) {\n\t\theight: ", "px\n\t}\n"])), THUMBNAIL_SIZE);
3025 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3026 var _props$html$match, _props$html$match2;
3027 var dataWidth = (_props$html$match = props.html.match('data-width="(?<width>\\d+)"')) === null || _props$html$match === void 0 || (_props$html$match = _props$html$match.groups) === null || _props$html$match === void 0 ? void 0 : _props$html$match.width;
3028 var dataHeight = (_props$html$match2 = props.html.match('data-height="(?<height>\\d+)"')) === null || _props$html$match2 === void 0 || (_props$html$match2 = _props$html$match2.groups) === null || _props$html$match2 === void 0 ? void 0 : _props$html$match2.height;
3029 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3030 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3031 var scaleFactor = Math.min(height, width);
3032 var scale = THUMBNAIL_SIZE / scaleFactor;
3033
3034 // Center the preview
3035 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3036 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3037 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3038 dir: "ltr",
3039 sx: {
3040 position: 'relative',
3041 cursor: 'default',
3042 overflow: 'hidden',
3043 border: '1px solid',
3044 borderColor: 'grey.300',
3045 borderRadius: 1,
3046 boxSizing: 'border-box',
3047 width: THUMBNAIL_SIZE,
3048 height: THUMBNAIL_SIZE,
3049 opacity: props.disabled ? 0.5 : 1
3050 }
3051 }, /*#__PURE__*/_react.default.createElement("iframe", {
3052 title: (0, _i18n.__)('Preview', 'elementor'),
3053 sandbox: "",
3054 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3055 style: {
3056 border: 'none',
3057 overflow: 'hidden',
3058 width: width,
3059 height: height,
3060 transform: "scale(".concat(scale, ")"),
3061 transformOrigin: "".concat(left, "px ").concat(top, "px")
3062 }
3063 }));
3064 };
3065 Thumbnail.propTypes = {
3066 html: _propTypes.default.string.isRequired,
3067 disabled: _propTypes.default.bool
3068 };
3069
3070 /***/ }),
3071
3072 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3073 /*!*********************************************************************************************!*\
3074 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3075 \*********************************************************************************************/
3076 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3077
3078 "use strict";
3079
3080
3081 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3082 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3083 Object.defineProperty(exports, "__esModule", ({
3084 value: true
3085 }));
3086 exports.UrlDialog = void 0;
3087 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3088 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3089 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3090 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3091 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3092 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3093 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3094 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3095 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3096 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3097 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3098 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3099 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3100 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3101 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3102 isTimeout = _useTimeout2[0],
3103 turnOffTimeout = _useTimeout2[1];
3104 var _useUserInfo = (0, _useUserInfo2.default)(),
3105 isLoading = _useUserInfo.isLoading,
3106 initialUsagePercentage = _useUserInfo.usagePercentage;
3107 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3108 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3109 var _useState = (0, _react.useState)(false),
3110 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3111 isInitUsageDone = _useState2[0],
3112 setIsInitUsageDone = _useState2[1];
3113 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3114 remoteConfig = _useRemoteConfig.remoteConfig;
3115 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3116 var urlObject = builderUrl ? new URL(builderUrl) : {};
3117 var iframeOrigin = urlObject.origin;
3118 var isOpen = (0, _react.useRef)(false);
3119 (0, _react.useEffect)(function () {
3120 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3121 updateUsagePercentage(initialUsagePercentage);
3122 setIsInitUsageDone(true);
3123 }
3124 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3125 (0, _react.useEffect)(function () {
3126 if (!isOpen.current) {
3127 try {
3128 window.$e.run('ai-integration/open-choose-element', {
3129 url: props.url
3130 });
3131 isOpen.current = true;
3132 } catch (error) {
3133 // eslint-disable-next-line no-console
3134 console.error(error);
3135 }
3136 }
3137 }, [isOpen.current]);
3138 (0, _react.useEffect)(function () {
3139 var onMessage = function onMessage(event) {
3140 if (event.origin !== iframeOrigin) {
3141 return;
3142 }
3143 var _event$data = event.data,
3144 type = _event$data.type,
3145 html = _event$data.html,
3146 url = _event$data.url;
3147 switch (type) {
3148 case 'element-selector/close':
3149 isOpen.current = false;
3150 props.onClose();
3151 break;
3152 case 'element-selector/loaded':
3153 turnOffTimeout();
3154 isOpen.current = true;
3155 break;
3156 case 'element-selector/attach':
3157 props.onAttach([{
3158 type: 'url',
3159 previewHTML: html,
3160 content: html,
3161 label: url ? new URL(url).href : '',
3162 source: _attachments.USER_URL_SOURCE
3163 }]);
3164 break;
3165 }
3166 };
3167 window.addEventListener('message', onMessage);
3168 return function () {
3169 window.removeEventListener('message', onMessage);
3170 };
3171 }, [iframeOrigin, props, turnOffTimeout]);
3172 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3173 open: true,
3174 maxWidth: "lg"
3175 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3176 sx: {
3177 textAlign: 'center',
3178 padding: 3
3179 }
3180 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3181 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3182 onClose: props.onClose
3183 }));
3184 };
3185 UrlDialog.propTypes = {
3186 onAttach: _propTypes.default.func.isRequired,
3187 onClose: _propTypes.default.func.isRequired,
3188 url: _propTypes.default.string
3189 };
3190
3191 /***/ }),
3192
3193 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3194 /*!************************************************************************************!*\
3195 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3196 \************************************************************************************/
3197 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3198
3199 "use strict";
3200
3201
3202 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3203 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3204 Object.defineProperty(exports, "__esModule", ({
3205 value: true
3206 }));
3207 exports["default"] = void 0;
3208 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3209 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3210 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3211 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3212 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3213 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3214 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3215 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3216 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3217 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3218 var _excluded = ["sx", "PaperProps"];
3219 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3220 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3221 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3222 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3223 return {
3224 '& .MuiDialog-container': {
3225 marginTop: 0,
3226 alignItems: 'flex-end',
3227 paddingBottom: '16vh'
3228 },
3229 '& .MuiPaper-root': {
3230 margin: 0,
3231 maxHeight: '80vh'
3232 }
3233 };
3234 });
3235 var DialogHeader = function DialogHeader(_ref) {
3236 var onClose = _ref.onClose,
3237 children = _ref.children;
3238 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3239 sx: {
3240 fontWeight: 'normal'
3241 },
3242 color: "transparent",
3243 position: "relative"
3244 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3245 variant: "dense"
3246 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3247 sx: {
3248 mr: 1
3249 }
3250 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3251 component: "span",
3252 variant: "subtitle2",
3253 sx: {
3254 fontWeight: 'bold',
3255 textTransform: 'uppercase'
3256 }
3257 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3258 label: (0, _i18n.__)('Beta', 'elementor'),
3259 color: "default",
3260 size: "small",
3261 sx: {
3262 ml: 1
3263 }
3264 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3265 direction: "row",
3266 spacing: 1,
3267 alignItems: "center",
3268 sx: {
3269 ml: 'auto'
3270 }
3271 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3272 size: "small",
3273 "aria-label": "close",
3274 onClick: onClose,
3275 sx: {
3276 '&.MuiButtonBase-root': {
3277 mr: -1
3278 }
3279 }
3280 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3281 };
3282 DialogHeader.propTypes = {
3283 children: _propTypes.default.node,
3284 onClose: _propTypes.default.func.isRequired
3285 };
3286 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3287 return {
3288 '&.MuiDialogContent-root': {
3289 padding: 0
3290 }
3291 };
3292 });
3293 var LayoutDialog = function LayoutDialog(_ref2) {
3294 var _ref2$sx = _ref2.sx,
3295 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3296 _ref2$PaperProps = _ref2.PaperProps,
3297 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3298 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3299 var _useState = (0, _react.useState)({
3300 pointerEvents: 'none'
3301 }),
3302 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3303 sxStyle = _useState2[0],
3304 setSxStyle = _useState2[1];
3305 var timeoutRef = (0, _react.useRef)(null);
3306
3307 /**
3308 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3309 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3310 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3311 */
3312 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3313 maxWidth: "md",
3314 PaperProps: _objectSpread({
3315 sx: {
3316 pointerEvents: 'auto'
3317 },
3318 onMouseEnter: function onMouseEnter() {
3319 clearTimeout(timeoutRef.current);
3320 setSxStyle({
3321 pointerEvents: 'all'
3322 });
3323 },
3324 onMouseLeave: function onMouseLeave() {
3325 clearTimeout(timeoutRef.current);
3326 timeoutRef.current = setTimeout(function () {
3327 setSxStyle({
3328 pointerEvents: 'none'
3329 });
3330 }, 200);
3331 }
3332 }, PaperProps)
3333 }, props, {
3334 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3335 }));
3336 };
3337 LayoutDialog.propTypes = {
3338 sx: _propTypes.default.object,
3339 PaperProps: _propTypes.default.object
3340 };
3341 LayoutDialog.Header = DialogHeader;
3342 LayoutDialog.Content = StyledDialogContent;
3343 var _default = exports["default"] = LayoutDialog;
3344
3345 /***/ }),
3346
3347 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3348 /*!*********************************************************************************************!*\
3349 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3350 \*********************************************************************************************/
3351 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3352
3353 "use strict";
3354
3355
3356 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3357 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3358 Object.defineProperty(exports, "__esModule", ({
3359 value: true
3360 }));
3361 exports.ProTemplateIndicator = void 0;
3362 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3363 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3364 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3365 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3366 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3367 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3368 var popoverId = 'e-pro-upgrade-popover';
3369 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3370 var theme = _ref.theme;
3371 return {
3372 position: 'relative',
3373 padding: theme.spacing(3),
3374 boxShadow: theme.shadows[4],
3375 zIndex: '9999'
3376 };
3377 });
3378 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3379 var theme = _ref2.theme;
3380 return {
3381 position: 'absolute',
3382 width: theme.spacing(5),
3383 height: theme.spacing(5),
3384 overflow: 'hidden',
3385 // Override Popper inline styles.
3386 left: '100% !important',
3387 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3388 '&::after': {
3389 backgroundColor: theme.palette.background.paper,
3390 content: '""',
3391 display: 'block',
3392 position: 'absolute',
3393 width: theme.spacing(2.5),
3394 height: theme.spacing(2.5),
3395 top: '50%',
3396 left: '50%',
3397 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3398 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3399 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3400 }
3401 };
3402 });
3403 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3404 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3405 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3406 var _useState = (0, _react.useState)(false),
3407 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3408 isPopoverOpen = _useState2[0],
3409 setIsPopoverOpen = _useState2[1];
3410 var anchorEl = (0, _react.useRef)(null);
3411 var arrowEl = (0, _react.useRef)(null);
3412 var showPopover = function showPopover() {
3413 return setIsPopoverOpen(true);
3414 };
3415 var hidePopover = function hidePopover() {
3416 return setIsPopoverOpen(false);
3417 };
3418 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3419 flexDirection: "row-reverse",
3420 component: "span",
3421 display: "flex",
3422 onMouseLeave: hidePopover,
3423 alignItems: "center"
3424 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3425 ref: anchorEl,
3426 onMouseEnter: showPopover,
3427 onClick: function onClick(e) {
3428 return e.stopPropagation();
3429 } /* Do nothing */,
3430 "aria-owns": isPopoverOpen ? popoverId : undefined,
3431 "aria-haspopup": "true",
3432 sx: {
3433 m: 1,
3434 '&:hover': {
3435 backgroundColor: 'action.selected'
3436 }
3437 }
3438 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3439 sx: {
3440 color: 'text.primary'
3441 }
3442 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3443 open: isPopoverOpen,
3444 popperOptions: {
3445 placement: 'left-start',
3446 modifiers: [{
3447 name: 'arrow',
3448 enabled: true,
3449 options: {
3450 element: arrowEl.current,
3451 padding: 5
3452 }
3453 }, {
3454 name: 'offset',
3455 options: {
3456 offset: [0, 10]
3457 }
3458 }]
3459 },
3460 anchorEl: anchorEl.current,
3461 sx: {
3462 zIndex: '9999',
3463 maxWidth: 300
3464 }
3465 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3466 ref: arrowEl
3467 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3468 alignItems: "start",
3469 spacing: 2
3470 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3471 color: "promotion",
3472 variant: "outlined",
3473 size: "small",
3474 label: (0, _i18n.__)('Pro', 'elementor'),
3475 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3476 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3477 variant: "body2"
3478 }, (0, _i18n.__)("This result includes an Elementor Pro widget that's not available with your current plan. Upgrade to use all the widgets in this result.", 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
3479 variant: "contained",
3480 color: "promotion",
3481 size: "small",
3482 href: actionUrl,
3483 target: "_blank",
3484 sx: {
3485 alignSelf: 'flex-end'
3486 }
3487 }, actionLabel)))));
3488 };
3489
3490 /***/ }),
3491
3492 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3493 /*!******************************************************************************************!*\
3494 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3495 \******************************************************************************************/
3496 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3497
3498 "use strict";
3499
3500
3501 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3502 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3503 Object.defineProperty(exports, "__esModule", ({
3504 value: true
3505 }));
3506 exports["default"] = void 0;
3507 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3508 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3509 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3510 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3511 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3512 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3513 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3514 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3515 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3516 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3517 var _excluded = ["onSubmit"];
3518 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3519 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3520 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3521 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3522 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3523 // eslint-disable-next-line jsx-a11y/no-autofocus
3524 , (0, _extends2.default)({
3525 autoFocus: true,
3526 multiline: true,
3527 size: "small",
3528 maxRows: 3,
3529 color: "secondary",
3530 variant: "standard"
3531 }, props, {
3532 inputRef: ref,
3533 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3534 type: 'search',
3535 sx: {
3536 pt: 0
3537 }
3538 })
3539 }));
3540 });
3541 TextInput.propTypes = {
3542 InputProps: _propTypes.default.object
3543 };
3544 var PaperComponent = function PaperComponent(props) {
3545 var _useConfig = (0, _config.useConfig)(),
3546 mode = _useConfig.mode;
3547 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3548 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3549 elevation: 8,
3550 sx: {
3551 borderRadius: 2
3552 }
3553 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3554 component: _ui.Box,
3555 color: function color(theme) {
3556 return theme.palette.text.tertiary;
3557 },
3558 variant: "caption",
3559 paddingX: 2,
3560 paddingY: 1
3561 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3562 sx: {
3563 m: 2
3564 }
3565 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3566 libraryLink: libraryLink
3567 })));
3568 };
3569 PaperComponent.propTypes = {
3570 children: _propTypes.default.node
3571 };
3572 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3573 var onSubmit = _ref.onSubmit,
3574 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3575 var _useState = (0, _react.useState)(false),
3576 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3577 showSuggestions = _useState2[0],
3578 setShowSuggestions = _useState2[1];
3579 var theme = (0, _ui.useTheme)();
3580 var itemHeight = parseInt(theme.spacing(4));
3581 var maxItems = 5;
3582 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3583 PaperComponent: PaperComponent,
3584 ListboxProps: {
3585 sx: {
3586 maxHeight: maxItems * itemHeight
3587 }
3588 },
3589 renderOption: function renderOption(optionProps, option) {
3590 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3591 title: option.text,
3592 noWrap: true,
3593 variant: "body2",
3594 component: _ui.Box,
3595 sx: {
3596 '&.MuiAutocomplete-option': {
3597 display: 'block',
3598 minHeight: itemHeight
3599 }
3600 }
3601 }), option.text);
3602 },
3603 freeSolo: true,
3604 fullWidth: true,
3605 disableClearable: true,
3606 open: showSuggestions,
3607 onClose: function onClose(e) {
3608 var _e$relatedTarget;
3609 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3610 },
3611 onKeyDown: function onKeyDown(e) {
3612 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3613 onSubmit(e);
3614 } else if ('/' === e.key && '' === e.target.value) {
3615 e.preventDefault();
3616 setShowSuggestions(true);
3617 }
3618 }
3619 }, props));
3620 };
3621 PromptAutocomplete.propTypes = {
3622 onSubmit: _propTypes.default.func.isRequired
3623 };
3624 PromptAutocomplete.TextInput = TextInput;
3625 var _default = exports["default"] = PromptAutocomplete;
3626
3627 /***/ }),
3628
3629 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3630 /*!**********************************************************************************!*\
3631 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3632 \**********************************************************************************/
3633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3634
3635 "use strict";
3636
3637
3638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3639 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3640 Object.defineProperty(exports, "__esModule", ({
3641 value: true
3642 }));
3643 exports["default"] = void 0;
3644 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3645 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3646 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3647 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3648 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3649 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3650 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3651 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3652 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3653 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3654 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3655 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3656 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3657 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3658 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3659 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3660 var _excluded = ["tooltip"];
3661 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3662 var PROMPT_SUGGESTIONS = Object.freeze([
3663 // Translators: [Topic] is a placeholder for the user - please translate it as well
3664 {
3665 text: (0, _i18n.__)('Hero section on [topic] with heading, text, buttons on the right, and an image on the left', 'elementor.com')
3666 },
3667 // Translators: [Topic] is a placeholder for the user - please translate it as well
3668 {
3669 text: (0, _i18n.__)('About Us section on [topic] with heading, text, and big image below', 'elementor.com')
3670 }, {
3671 text: (0, _i18n.__)('Team section with four image boxes showcasing team members', 'elementor.com')
3672 },
3673 // Translators: [Topic] is a placeholder for the user - please translate it as well
3674 {
3675 text: (0, _i18n.__)('FAQ section with a toggle widget showcasing FAQs about [topic]', 'elementor.com')
3676 }, {
3677 text: (0, _i18n.__)('Gallery section with a carousel displaying three images at once', 'elementor.com')
3678 },
3679 // Translators: [Topic] is a placeholder for the user - please translate it as well
3680 {
3681 text: (0, _i18n.__)('Contact section with a form for [topic]', 'elementor.com')
3682 }, {
3683 text: (0, _i18n.__)('Client section featuring companies\' logos', 'elementor.com')
3684 },
3685 // Translators: [Topic] is a placeholder for the user - please translate it as well
3686 {
3687 text: (0, _i18n.__)('Testimonial section with testimonials, each featuring a star rating and an image', 'elementor.com')
3688 },
3689 // Translators: [Topic] is a placeholder for the user - please translate it as well
3690 {
3691 text: (0, _i18n.__)('Service section about [topic], showcasing four services with buttons', 'elementor.com')
3692 },
3693 // Translators: [Topic] is a placeholder for the user - please translate it as well
3694 {
3695 text: (0, _i18n.__)('Stats section with counters displaying data about [topic]', 'elementor.com')
3696 }, {
3697 text: (0, _i18n.__)('Quote section with colored background, featuring a centered quote', 'elementor.com')
3698 },
3699 // Translators: [Topic] is a placeholder for the user - please translate it as well
3700 {
3701 text: (0, _i18n.__)('Pricing section for [topic] with a pricing list', 'elementor.com')
3702 },
3703 // Translators: [Topic] is a placeholder for the user - please translate it as well
3704 {
3705 text: (0, _i18n.__)('Subscribe section featuring a simple email form, inviting users to stay informed on [topic]', 'elementor.com')
3706 }]);
3707 var IconButtonWithTooltip = function IconButtonWithTooltip(_ref) {
3708 var tooltip = _ref.tooltip,
3709 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3710 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
3711 title: tooltip
3712 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
3713 component: "span",
3714 sx: {
3715 cursor: props.disabled ? 'default' : 'pointer'
3716 }
3717 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, props)));
3718 };
3719 IconButtonWithTooltip.propTypes = {
3720 tooltip: _propTypes.default.string,
3721 disabled: _propTypes.default.bool
3722 };
3723 var BackButton = function BackButton(props) {
3724 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3725 size: "small",
3726 color: "secondary",
3727 tooltip: (0, _i18n.__)('Back to results', 'elementor')
3728 }, props), /*#__PURE__*/_react.default.createElement(_arrowLeftIcon.default, null));
3729 };
3730 var EditButton = function EditButton(props) {
3731 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3732 size: "small",
3733 color: "primary",
3734 tooltip: (0, _i18n.__)('Edit prompt', 'elementor')
3735 }, props), /*#__PURE__*/_react.default.createElement(_editIcon.default, null));
3736 };
3737 var GenerateButton = function GenerateButton(props) {
3738 return /*#__PURE__*/_react.default.createElement(_generateSubmit.default, (0, _extends2.default)({
3739 size: "small",
3740 fullWidth: false
3741 }, props), (0, _i18n.__)('Generate', 'elementor'));
3742 };
3743 var PromptForm = (0, _react.forwardRef)(function (_ref2, ref) {
3744 var _attachments$;
3745 var attachments = _ref2.attachments,
3746 isActive = _ref2.isActive,
3747 isLoading = _ref2.isLoading,
3748 _ref2$showActions = _ref2.showActions,
3749 showActions = _ref2$showActions === void 0 ? false : _ref2$showActions,
3750 onAttach = _ref2.onAttach,
3751 onDetach = _ref2.onDetach,
3752 _onSubmit = _ref2.onSubmit,
3753 onBack = _ref2.onBack,
3754 onEdit = _ref2.onEdit,
3755 _ref2$shouldResetProm = _ref2.shouldResetPrompt,
3756 shouldResetPrompt = _ref2$shouldResetProm === void 0 ? false : _ref2$shouldResetProm;
3757 var _useState = (0, _react.useState)(''),
3758 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3759 prompt = _useState2[0],
3760 setPrompt = _useState2[1];
3761 (0, _react.useEffect)(function () {
3762 if (shouldResetPrompt) {
3763 setPrompt('');
3764 }
3765 }, [shouldResetPrompt]);
3766 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(prompt, 'layout'),
3767 isEnhancing = _usePromptEnhancer.isEnhancing,
3768 enhance = _usePromptEnhancer.enhance;
3769 var previousPrompt = (0, _react.useRef)('');
3770 var _useConfig = (0, _config.useConfig)(),
3771 attachmentsTypes = _useConfig.attachmentsTypes;
3772 var isInputDisabled = isLoading || isEnhancing || !isActive;
3773 var isInputEmpty = '' === prompt && !attachments.length;
3774 var isGenerateDisabled = isInputDisabled || isInputEmpty;
3775 var attachmentsType = ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) || '';
3776 var attachmentsConfig = attachmentsTypes[attachmentsType];
3777 var promptSuggestions = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptSuggestions) || PROMPT_SUGGESTIONS;
3778 var promptPlaceholder = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptPlaceholder) || (0, _i18n.__)("Press '/' for suggested prompts or describe the layout you want to create", 'elementor');
3779 var handleBack = function handleBack() {
3780 setPrompt(previousPrompt.current);
3781 onBack();
3782 };
3783 var handleEdit = function handleEdit() {
3784 previousPrompt.current = prompt;
3785 onEdit();
3786 };
3787 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3788 component: "form",
3789 onSubmit: function onSubmit(e) {
3790 return _onSubmit(e, prompt);
3791 },
3792 direction: "row",
3793 sx: {
3794 p: 3
3795 },
3796 alignItems: "start",
3797 gap: 1
3798 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3799 direction: "row",
3800 alignItems: "start",
3801 flexGrow: 1,
3802 spacing: 2
3803 }, showActions && (isActive ? /*#__PURE__*/_react.default.createElement(BackButton, {
3804 disabled: isLoading || isEnhancing,
3805 onClick: handleBack
3806 }) : /*#__PURE__*/_react.default.createElement(EditButton, {
3807 disabled: isLoading,
3808 onClick: handleEdit
3809 })), /*#__PURE__*/_react.default.createElement(_attachments.default, {
3810 attachments: attachments,
3811 onAttach: onAttach,
3812 onDetach: onDetach,
3813 disabled: isInputDisabled
3814 }), /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default, {
3815 value: prompt,
3816 disabled: isInputDisabled,
3817 onSubmit: function onSubmit(e) {
3818 return _onSubmit(e, prompt);
3819 },
3820 options: promptSuggestions,
3821 onChange: function onChange(_, selectedValue) {
3822 return setPrompt(selectedValue.text + ' ');
3823 },
3824 renderInput: function renderInput(params) {
3825 return /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default.TextInput, (0, _extends2.default)({}, params, {
3826 ref: ref,
3827 onChange: function onChange(e) {
3828 return setPrompt(e.target.value);
3829 },
3830 placeholder: promptPlaceholder
3831 }));
3832 }
3833 })), /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
3834 size: "small",
3835 disabled: isGenerateDisabled || '' === prompt,
3836 isLoading: isEnhancing,
3837 onClick: function onClick() {
3838 return enhance().then(function (_ref3) {
3839 var result = _ref3.result;
3840 return setPrompt(result);
3841 });
3842 }
3843 }), /*#__PURE__*/_react.default.createElement(GenerateButton, {
3844 disabled: isGenerateDisabled
3845 }));
3846 });
3847 PromptForm.propTypes = {
3848 isActive: _propTypes.default.bool,
3849 onAttach: _propTypes.default.func,
3850 onDetach: _propTypes.default.func,
3851 isLoading: _propTypes.default.bool,
3852 showActions: _propTypes.default.bool,
3853 onSubmit: _propTypes.default.func.isRequired,
3854 onBack: _propTypes.default.func.isRequired,
3855 onEdit: _propTypes.default.func.isRequired,
3856 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
3857 shouldResetPrompt: _propTypes.default.bool
3858 };
3859 var _default = exports["default"] = PromptForm;
3860
3861 /***/ }),
3862
3863 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js":
3864 /*!*******************************************************************************************!*\
3865 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js ***!
3866 \*******************************************************************************************/
3867 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3868
3869 "use strict";
3870
3871
3872 Object.defineProperty(exports, "__esModule", ({
3873 value: true
3874 }));
3875 exports["default"] = void 0;
3876 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3877 var ScreenshotContainer = (0, _ui.styled)(_ui.Box, {
3878 shouldForwardProp: function shouldForwardProp(prop) {
3879 return prop !== 'outlineOffset';
3880 }
3881 })(function (_ref) {
3882 var theme = _ref.theme,
3883 selected = _ref.selected,
3884 height = _ref.height,
3885 disabled = _ref.disabled,
3886 _ref$outlineOffset = _ref.outlineOffset,
3887 outlineOffset = _ref$outlineOffset === void 0 ? '0px' : _ref$outlineOffset;
3888 var outlineColor = selected ? theme.palette.text.primary : theme.palette.text.disabled;
3889 var outline = "2px solid ".concat(outlineColor);
3890 return {
3891 height: height,
3892 cursor: disabled ? 'default' : 'pointer',
3893 overflow: 'hidden',
3894 boxSizing: 'border-box',
3895 backgroundPosition: 'top center',
3896 backgroundSize: '100% auto',
3897 backgroundRepeat: 'no-repeat',
3898 backgroundColor: theme.palette.common.white,
3899 borderRadius: theme.shape.borderRadius * 0.5,
3900 outlineOffset: outlineOffset,
3901 outline: outline,
3902 opacity: disabled ? '0.4' : '1',
3903 transition: "all 50ms linear",
3904 '&:hover': disabled ? {} : {
3905 outlineColor: theme.palette.text.primary
3906 }
3907 };
3908 });
3909 var _default = exports["default"] = ScreenshotContainer;
3910
3911 /***/ }),
3912
3913 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js":
3914 /*!*********************************************************************************************!*\
3915 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js ***!
3916 \*********************************************************************************************/
3917 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3918
3919 "use strict";
3920
3921
3922 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3923 Object.defineProperty(exports, "__esModule", ({
3924 value: true
3925 }));
3926 exports["default"] = ScreenshotUnavailable;
3927 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3928 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3929 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3930 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3931 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3932 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3933 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3934 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3935 function ScreenshotUnavailable(props) {
3936 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, (0, _extends2.default)({}, props, {
3937 sx: _objectSpread(_objectSpread({}, props.sx || {}), {}, {
3938 display: 'flex',
3939 alignItems: 'center',
3940 justifyContent: 'center',
3941 backgroundColor: 'background.paper',
3942 color: 'text.tertiary',
3943 fontStyle: 'italic',
3944 fontSize: '12px',
3945 paddingInline: 12,
3946 textAlign: 'center',
3947 lineHeight: 1.5
3948 })
3949 }), (0, _i18n.__)('Preview unavailable', 'elementor'));
3950 }
3951 ScreenshotUnavailable.propTypes = {
3952 sx: _propTypes.default.object
3953 };
3954
3955 /***/ }),
3956
3957 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js":
3958 /*!*********************************************************************************!*\
3959 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js ***!
3960 \*********************************************************************************/
3961 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3962
3963 "use strict";
3964
3965
3966 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3967 Object.defineProperty(exports, "__esModule", ({
3968 value: true
3969 }));
3970 exports["default"] = void 0;
3971 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3972 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3973 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3974 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3975 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3976 var _screenshotUnavailable = _interopRequireDefault(__webpack_require__(/*! ./screenshot-unavailable */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js"));
3977 var _templateBadge = _interopRequireDefault(__webpack_require__(/*! ./template-badge */ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js"));
3978 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3979 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3980 var SCREENSHOT_HEIGHT = '138px';
3981 var Screenshot = function Screenshot(_ref) {
3982 var url = _ref.url,
3983 type = _ref.type,
3984 _ref$isLoading = _ref.isLoading,
3985 isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3986 _ref$isSelected = _ref.isSelected,
3987 isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
3988 isPlaceholder = _ref.isPlaceholder,
3989 disabled = _ref.disabled,
3990 onClick = _ref.onClick,
3991 _ref$sx = _ref.sx,
3992 sx = _ref$sx === void 0 ? {} : _ref$sx,
3993 outlineOffset = _ref.outlineOffset;
3994 if (isPlaceholder) {
3995 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3996 sx: _objectSpread({
3997 height: SCREENSHOT_HEIGHT
3998 }, sx)
3999 });
4000 }
4001 if (isLoading) {
4002 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
4003 width: "100%",
4004 animation: "wave",
4005 variant: "rounded",
4006 height: SCREENSHOT_HEIGHT,
4007 sx: sx
4008 });
4009 }
4010 if (!url) {
4011 return /*#__PURE__*/_react.default.createElement(_screenshotUnavailable.default, {
4012 selected: isSelected,
4013 disabled: disabled,
4014 sx: sx,
4015 onClick: onClick,
4016 height: SCREENSHOT_HEIGHT,
4017 outlineOffset: outlineOffset
4018 });
4019 }
4020 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, {
4021 selected: isSelected,
4022 disabled: disabled,
4023 sx: _objectSpread({
4024 backgroundImage: "url('".concat(url, "')")
4025 }, sx),
4026 onClick: onClick,
4027 height: SCREENSHOT_HEIGHT,
4028 outlineOffset: outlineOffset
4029 }, /*#__PURE__*/_react.default.createElement(_templateBadge.default, {
4030 type: type
4031 }));
4032 };
4033 Screenshot.propTypes = {
4034 isSelected: _propTypes.default.bool,
4035 isLoading: _propTypes.default.bool,
4036 isPlaceholder: _propTypes.default.bool,
4037 disabled: _propTypes.default.bool,
4038 onClick: _propTypes.default.func.isRequired,
4039 url: _propTypes.default.string,
4040 type: _propTypes.default.string,
4041 sx: _propTypes.default.object,
4042 outlineOffset: _propTypes.default.string
4043 };
4044 var _default = exports["default"] = Screenshot;
4045
4046 /***/ }),
4047
4048 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js":
4049 /*!*************************************************************************************!*\
4050 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js ***!
4051 \*************************************************************************************/
4052 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4053
4054 "use strict";
4055
4056
4057 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4058 Object.defineProperty(exports, "__esModule", ({
4059 value: true
4060 }));
4061 exports["default"] = void 0;
4062 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4063 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4064 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4065 var _proTemplateIndicator = __webpack_require__(/*! ./pro-template-indicator */ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js");
4066 var TemplateBadge = function TemplateBadge(props) {
4067 var _useConfig = (0, _config.useConfig)(),
4068 hasPro = _useConfig.hasPro;
4069 if ('Pro' === props.type && !hasPro) {
4070 return /*#__PURE__*/_react.default.createElement(_proTemplateIndicator.ProTemplateIndicator, null);
4071 }
4072 return null;
4073 };
4074 var _default = exports["default"] = TemplateBadge;
4075 TemplateBadge.propTypes = {
4076 type: _propTypes.default.string
4077 };
4078
4079 /***/ }),
4080
4081 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js":
4082 /*!********************************************************************************************!*\
4083 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js ***!
4084 \********************************************************************************************/
4085 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4086
4087 "use strict";
4088
4089
4090 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4091 Object.defineProperty(exports, "__esModule", ({
4092 value: true
4093 }));
4094 exports["default"] = void 0;
4095 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4096 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4097 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4098 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4099 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4100 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4101 var _excluded = ["onClose", "onCancel", "title", "text"];
4102 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
4103 var onClose = _ref.onClose,
4104 onCancel = _ref.onCancel,
4105 title = _ref.title,
4106 text = _ref.text,
4107 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
4108 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
4109 "aria-labelledby": "unsaved-changes-alert-title",
4110 "aria-describedby": "unsaved-changes-alert-description"
4111 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
4112 id: "unsaved-changes-alert-title"
4113 }, title), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
4114 id: "unsaved-changes-alert-description"
4115 }, text)), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
4116 onClick: onCancel,
4117 color: "secondary"
4118 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
4119 onClick: onClose,
4120 color: "error",
4121 variant: "contained"
4122 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
4123 };
4124 UnsavedChangesAlert.propTypes = {
4125 title: _propTypes.default.string,
4126 text: _propTypes.default.string,
4127 onCancel: _propTypes.default.func,
4128 onClose: _propTypes.default.func
4129 };
4130 var _default = exports["default"] = UnsavedChangesAlert;
4131
4132 /***/ }),
4133
4134 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
4135 /*!**************************************************************************!*\
4136 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
4137 \**************************************************************************/
4138 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4139
4140 "use strict";
4141
4142
4143 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4144 Object.defineProperty(exports, "__esModule", ({
4145 value: true
4146 }));
4147 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
4148 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4149 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4150 var MODE_LAYOUT = exports.MODE_LAYOUT = 'layout';
4151 var MODE_VARIATION = exports.MODE_VARIATION = 'variation';
4152 var LAYOUT_APP_MODES = exports.LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
4153 var ConfigContext = _react.default.createContext({});
4154 var useConfig = exports.useConfig = function useConfig() {
4155 return _react.default.useContext(ConfigContext);
4156 };
4157 var ConfigProvider = exports.ConfigProvider = function ConfigProvider(props) {
4158 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
4159 value: {
4160 mode: props.mode,
4161 attachmentsTypes: props.attachmentsTypes,
4162 onClose: props.onClose,
4163 onConnect: props.onConnect,
4164 onData: props.onData,
4165 onInsert: props.onInsert,
4166 onSelect: props.onSelect,
4167 onGenerate: props.onGenerate,
4168 currentContext: props.currentContext,
4169 hasPro: props.hasPro
4170 }
4171 }, props.children);
4172 };
4173 ConfigProvider.propTypes = {
4174 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
4175 children: _propTypes.default.node.isRequired,
4176 attachmentsTypes: _propTypes.default.object.isRequired,
4177 onClose: _propTypes.default.func.isRequired,
4178 onConnect: _propTypes.default.func.isRequired,
4179 onData: _propTypes.default.func.isRequired,
4180 onInsert: _propTypes.default.func.isRequired,
4181 onSelect: _propTypes.default.func.isRequired,
4182 onGenerate: _propTypes.default.func.isRequired,
4183 currentContext: _propTypes.default.object,
4184 hasPro: _propTypes.default.bool
4185 };
4186 var _default = exports["default"] = ConfigContext;
4187
4188 /***/ }),
4189
4190 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js":
4191 /*!*********************************************************************************!*\
4192 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js ***!
4193 \*********************************************************************************/
4194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4195
4196 "use strict";
4197
4198
4199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4200 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4201 Object.defineProperty(exports, "__esModule", ({
4202 value: true
4203 }));
4204 exports.useRemoteConfig = exports.RemoteConfigProvider = exports.CONFIG_KEYS = void 0;
4205 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4206 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4207 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4208 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4209 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4210 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4211 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
4212 var RemoteConfigContext = _react.default.createContext({});
4213 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4214 return _react.default.useContext(RemoteConfigContext);
4215 };
4216 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4217 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4218 AUTH_TOKEN: 'jwt'
4219 };
4220 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4221 var _useState = (0, _react.useState)(false),
4222 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4223 isLoading = _useState2[0],
4224 setIsLoading = _useState2[1];
4225 var _useState3 = (0, _react.useState)(false),
4226 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4227 isLoaded = _useState4[0],
4228 setIsLoaded = _useState4[1];
4229 var _useState5 = (0, _react.useState)(false),
4230 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4231 isError = _useState6[0],
4232 setIsError = _useState6[1];
4233 var _useState7 = (0, _react.useState)({}),
4234 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4235 remoteConfig = _useState8[0],
4236 setRemoteConfig = _useState8[1];
4237 var fetchData = /*#__PURE__*/function () {
4238 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4239 var result, _t;
4240 return _regenerator.default.wrap(function (_context) {
4241 while (1) switch (_context.prev = _context.next) {
4242 case 0:
4243 setIsLoading(true);
4244 setIsError(false);
4245 _context.prev = 1;
4246 _context.next = 2;
4247 return (0, _api.getRemoteConfig)().finally(function () {
4248 setIsLoaded(true);
4249 setIsLoading(false);
4250 });
4251 case 2:
4252 result = _context.sent;
4253 if (result.config) {
4254 _context.next = 3;
4255 break;
4256 }
4257 throw new Error('Invalid remote config');
4258 case 3:
4259 setRemoteConfig(result.config);
4260 _context.next = 5;
4261 break;
4262 case 4:
4263 _context.prev = 4;
4264 _t = _context["catch"](1);
4265 setIsError(true);
4266 setIsLoaded(true);
4267 setIsLoading(false);
4268 case 5:
4269 case "end":
4270 return _context.stop();
4271 }
4272 }, _callee, null, [[1, 4]]);
4273 }));
4274 return function fetchData() {
4275 return _ref.apply(this, arguments);
4276 };
4277 }();
4278 (0, _react.useEffect)(function () {
4279 window.addEventListener('elementor/connect/success', fetchData);
4280 return function () {
4281 window.removeEventListener('elementor/connect/success', fetchData);
4282 };
4283 }, []);
4284 if (!isLoaded && !isLoading) {
4285 fetchData();
4286 }
4287 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4288 value: {
4289 isLoading: isLoading,
4290 isLoaded: isLoaded,
4291 isError: isError,
4292 remoteConfig: remoteConfig
4293 }
4294 }, props.children);
4295 };
4296 RemoteConfigProvider.propTypes = {
4297 children: _propTypes.default.node.isRequired,
4298 onError: _propTypes.default.func.isRequired
4299 };
4300
4301 /***/ }),
4302
4303 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4304 /*!***********************************************************************************!*\
4305 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4306 \***********************************************************************************/
4307 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4308
4309 "use strict";
4310
4311
4312 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4313 Object.defineProperty(exports, "__esModule", ({
4314 value: true
4315 }));
4316 exports["default"] = void 0;
4317 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4318 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4319 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4320 return (0, _usePrompt.default)(function (requestBody, signal) {
4321 requestBody.variationType = type;
4322 return (0, _api.generateLayout)(requestBody, signal);
4323 }, initialValue);
4324 };
4325 var _default = exports["default"] = useLayoutPrompt;
4326
4327 /***/ }),
4328
4329 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4330 /*!********************************************************************************!*\
4331 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4332 \********************************************************************************/
4333 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4334
4335 "use strict";
4336
4337
4338 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4339 Object.defineProperty(exports, "__esModule", ({
4340 value: true
4341 }));
4342 exports["default"] = void 0;
4343 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4344 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4345 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4346 var _react = __webpack_require__(/*! react */ "react");
4347 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4348 var ERROR_INITIAL_VALUE = '';
4349 var useScreenshot = function useScreenshot(type, onData) {
4350 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4351 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4352 error = _useState2[0],
4353 setError = _useState2[1];
4354 var _useState3 = (0, _react.useState)(false),
4355 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4356 isLoading = _useState4[0],
4357 setIsLoading = _useState4[1];
4358 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4359 var generate = function generate(requestBody, signal) {
4360 setIsLoading(true);
4361 setError(ERROR_INITIAL_VALUE);
4362 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4363 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4364 var createdScreenshot;
4365 return _regenerator.default.wrap(function (_context) {
4366 while (1) switch (_context.prev = _context.next) {
4367 case 0:
4368 _context.next = 1;
4369 return onData(data.result);
4370 case 1:
4371 createdScreenshot = _context.sent;
4372 createdScreenshot.sendUsageData = function () {
4373 return layoutData.sendUsageData(data);
4374 };
4375 createdScreenshot.baseTemplateId = data.baseTemplateId;
4376 createdScreenshot.type = data.type;
4377 return _context.abrupt("return", createdScreenshot);
4378 case 2:
4379 case "end":
4380 return _context.stop();
4381 }
4382 }, _callee);
4383 }));
4384 return function (_x) {
4385 return _ref.apply(this, arguments);
4386 };
4387 }()).catch(function (err) {
4388 setError(err.extra_data ? err : err.message || err);
4389 throw err;
4390 }).finally(function () {
4391 return setIsLoading(false);
4392 });
4393 };
4394 return {
4395 generate: generate,
4396 error: error,
4397 isLoading: isLoading
4398 };
4399 };
4400 var _default = exports["default"] = useScreenshot;
4401
4402 /***/ }),
4403
4404 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4405 /*!*********************************************************************************!*\
4406 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4407 \*********************************************************************************/
4408 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4409
4410 "use strict";
4411
4412
4413 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4414 Object.defineProperty(exports, "__esModule", ({
4415 value: true
4416 }));
4417 exports["default"] = void 0;
4418 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4419 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4420 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4421 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4422 var _react = __webpack_require__(/*! react */ "react");
4423 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4424 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4425 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4426 var PENDING_VALUE = {
4427 isPending: true
4428 };
4429 var useScreenshots = function useScreenshots(_ref) {
4430 var onData = _ref.onData;
4431 var _useState = (0, _react.useState)([]),
4432 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4433 screenshots = _useState2[0],
4434 setScreenshots = _useState2[1];
4435
4436 /**
4437 * The ids for each request are:
4438 * - editorSessionId: a unique id for each editor opening
4439 * - sessionId: a unique id for each session. (open the AI builder)
4440 * - generateId: a unique id for each generate request. (prompt change)
4441 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4442 * - requestId: a unique id for each generate request.
4443 */
4444
4445 var _useConfig = (0, _config.useConfig)(),
4446 currentContext = _useConfig.currentContext;
4447 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4448 editorSessionId = _useRequestIds.editorSessionId,
4449 sessionId = _useRequestIds.sessionId,
4450 setRequest = _useRequestIds.setRequest,
4451 setBatch = _useRequestIds.setBatch,
4452 setGenerate = _useRequestIds.setGenerate;
4453 var generateIdRef = (0, _react.useRef)('');
4454 var batchId = setBatch();
4455 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4456 var screenshotsGroupCount = screenshotsData.length;
4457 var error = screenshotsData.every(function (s) {
4458 return s === null || s === void 0 ? void 0 : s.error;
4459 }) ? screenshotsData[0].error : '';
4460 var isLoading = screenshotsData.some(function (s) {
4461 return s === null || s === void 0 ? void 0 : s.isLoading;
4462 });
4463 var abortController = (0, _react.useRef)(null);
4464 var abort = function abort() {
4465 var _abortController$curr;
4466 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4467 };
4468 var createScreenshots = /*#__PURE__*/function () {
4469 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4470 var onGenerate, onError, promises, results, isAllFailed;
4471 return _regenerator.default.wrap(function (_context) {
4472 while (1) switch (_context.prev = _context.next) {
4473 case 0:
4474 abortController.current = new AbortController();
4475 onGenerate = function onGenerate(screenshot) {
4476 setScreenshots(function (prev) {
4477 var updatedData = (0, _toConsumableArray2.default)(prev);
4478 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4479 updatedData[pendingIndex] = screenshot;
4480 return updatedData;
4481 });
4482 return true;
4483 };
4484 onError = function onError() {
4485 setScreenshots(function (prev) {
4486 var updatedData = (0, _toConsumableArray2.default)(prev);
4487 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4488 updatedData[pendingIndex] = {
4489 isError: true
4490 };
4491 return updatedData;
4492 });
4493 return false;
4494 };
4495 promises = screenshotsData.map(function (_ref3) {
4496 var generate = _ref3.generate;
4497 var prevGeneratedIds = screenshots.map(function (screenshot) {
4498 return screenshot.baseTemplateId || '';
4499 });
4500 var requestBody = {
4501 prompt: prompt,
4502 prevGeneratedIds: prevGeneratedIds,
4503 currentContext: currentContext,
4504 ids: {
4505 editorSessionId: editorSessionId.current,
4506 sessionId: sessionId.current,
4507 generateId: generateIdRef.current,
4508 batchId: batchId.current,
4509 requestId: setRequest().current
4510 },
4511 attachments: attachments.map(function (_ref4) {
4512 var type = _ref4.type,
4513 content = _ref4.content,
4514 label = _ref4.label,
4515 source = _ref4.source;
4516 // Send only the data that is needed for the generation.
4517 return {
4518 type: type,
4519 content: content,
4520 label: label,
4521 source: source
4522 };
4523 })
4524 };
4525 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4526 });
4527 _context.next = 1;
4528 return Promise.all(promises);
4529 case 1:
4530 results = _context.sent;
4531 isAllFailed = results.every(function (value) {
4532 return false === value;
4533 });
4534 if (isAllFailed) {
4535 setScreenshots(function (prev) {
4536 var updatedData = (0, _toConsumableArray2.default)(prev);
4537 updatedData.splice(screenshotsGroupCount * -1);
4538 return updatedData;
4539 });
4540 }
4541 case 2:
4542 case "end":
4543 return _context.stop();
4544 }
4545 }, _callee);
4546 }));
4547 return function createScreenshots(_x, _x2) {
4548 return _ref2.apply(this, arguments);
4549 };
4550 }();
4551 var generate = function generate(prompt, attachments) {
4552 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4553 generateIdRef.current = setGenerate().current;
4554 setScreenshots(placeholders);
4555 createScreenshots(prompt, attachments);
4556 };
4557 var regenerate = function regenerate(prompt, attachments) {
4558 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4559 setScreenshots(function (prev) {
4560 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4561 });
4562 createScreenshots(prompt, attachments);
4563 };
4564 return {
4565 generate: generate,
4566 regenerate: regenerate,
4567 screenshots: screenshots,
4568 isLoading: isLoading,
4569 error: error,
4570 abort: abort
4571 };
4572 };
4573 var _default = exports["default"] = useScreenshots;
4574
4575 /***/ }),
4576
4577 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4578 /*!****************************************************************************!*\
4579 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4580 \****************************************************************************/
4581 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4582
4583 "use strict";
4584
4585
4586 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4587 Object.defineProperty(exports, "__esModule", ({
4588 value: true
4589 }));
4590 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4591 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4592 var _react = __webpack_require__(/*! react */ "react");
4593 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4594 var MAX_PAGES = exports.MAX_PAGES = 5;
4595 var useSlider = function useSlider() {
4596 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4597 _ref$slidesCount = _ref.slidesCount,
4598 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4599 _ref$slidesPerPage = _ref.slidesPerPage,
4600 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4601 _ref$gapPercentage = _ref.gapPercentage,
4602 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4603 var _useState = (0, _react.useState)(1),
4604 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4605 currentPage = _useState2[0],
4606 setCurrentPage = _useState2[1];
4607 var gapsCount = slidesPerPage - 1;
4608 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4609 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4610 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4611 (0, _react.useEffect)(function () {
4612 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4613 if (currentPage > 1 && currentPage > pagesCount) {
4614 setCurrentPage(pagesCount);
4615 }
4616 }, [pagesCount]);
4617 return {
4618 currentPage: currentPage,
4619 setCurrentPage: setCurrentPage,
4620 pagesCount: pagesCount,
4621 slidesPerPage: slidesPerPage,
4622 gapPercentage: gapPercentage,
4623 offsetXPercentage: offsetXPercentage,
4624 slideWidthPercentage: slideWidthPercentage
4625 };
4626 };
4627 var _default = exports["default"] = useSlider;
4628
4629 /***/ }),
4630
4631 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4632 /*!*****************************************************************!*\
4633 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4634 \*****************************************************************/
4635 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4636
4637 "use strict";
4638
4639
4640 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4641 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4642 Object.defineProperty(exports, "__esModule", ({
4643 value: true
4644 }));
4645 exports["default"] = void 0;
4646 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4647 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4648 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4649 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4650 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4651 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4652 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4653 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4654 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4655 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4656 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4657 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4658 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4659 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4660 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4661 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4662 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4663 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4664 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4665 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4666 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4667 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4668 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4669 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4670 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4671 var _excluded = ["children"];
4672 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
4673 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4674 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4675
4676 /**
4677 * @typedef {Object} Attachment
4678 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4679 * @property {string} previewHTML - HTML content as a string, representing a preview.
4680 * @property {string} content - Actual content of the attachment as a string.
4681 * @property {string} label - Label for the attachment.
4682 */
4683
4684 var RegenerateButton = function RegenerateButton(props) {
4685 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4686 size: "small",
4687 color: "secondary",
4688 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4689 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4690 };
4691 var UseLayoutButton = function UseLayoutButton(props) {
4692 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4693 size: "small",
4694 variant: "contained"
4695 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4696 };
4697 UseLayoutButton.propTypes = {
4698 sx: _propTypes.default.object
4699 };
4700 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4701 if (isLoading || isPromptFormActive) {
4702 return true;
4703 }
4704 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4705 };
4706 var FormLayout = function FormLayout(_ref) {
4707 var _screenshots$selected, _screenshots$2;
4708 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4709 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4710 _ref$DialogContentPro = _ref.DialogContentProps,
4711 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4712 initialAttachments = _ref.attachments;
4713 var _useConfig = (0, _config.useConfig)(),
4714 attachmentsTypes = _useConfig.attachmentsTypes,
4715 onData = _useConfig.onData,
4716 onInsert = _useConfig.onInsert,
4717 onSelect = _useConfig.onSelect,
4718 onClose = _useConfig.onClose,
4719 onGenerate = _useConfig.onGenerate;
4720 var _useScreenshots = (0, _useScreenshots2.default)({
4721 onData: onData
4722 }),
4723 screenshots = _useScreenshots.screenshots,
4724 generate = _useScreenshots.generate,
4725 regenerate = _useScreenshots.regenerate,
4726 isLoading = _useScreenshots.isLoading,
4727 error = _useScreenshots.error,
4728 abort = _useScreenshots.abort;
4729 var screenshotOutlineOffset = '2px';
4730 var _useSlider = (0, _useSlider2.default)({
4731 slidesCount: screenshots.length
4732 }),
4733 currentPage = _useSlider.currentPage,
4734 setCurrentPage = _useSlider.setCurrentPage,
4735 pagesCount = _useSlider.pagesCount,
4736 gapPercentage = _useSlider.gapPercentage,
4737 slidesPerPage = _useSlider.slidesPerPage,
4738 offsetXPercentage = _useSlider.offsetXPercentage,
4739 slideWidthPercentage = _useSlider.slideWidthPercentage;
4740 var _useState = (0, _react.useState)(-1),
4741 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4742 selectedScreenshotIndex = _useState2[0],
4743 setSelectedScreenshotIndex = _useState2[1];
4744 var _useState3 = (0, _react.useState)(false),
4745 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4746 showUnsavedChangesAlert = _useState4[0],
4747 setShowUnsavedChangesAlert = _useState4[1];
4748 var _useState5 = (0, _react.useState)(true),
4749 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4750 isPromptEditable = _useState6[0],
4751 setIsPromptEditable = _useState6[1];
4752 var _useState7 = (0, _react.useState)([]),
4753 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4754 attachments = _useState8[0],
4755 setAttachments = _useState8[1];
4756 var _useState9 = (0, _react.useState)(false),
4757 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
4758 shouldRenderWebApp = _useState0[0],
4759 setShouldRenderWebApp = _useState0[1];
4760 var _useState1 = (0, _react.useState)(false),
4761 _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
4762 isMinimized = _useState10[0],
4763 setIsMinimized = _useState10[1];
4764 var lastRun = (0, _react.useRef)(function () {});
4765 var promptInputRef = (0, _react.useRef)(null);
4766 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4767 var dialogContentChildren = DialogContentProps.children,
4768 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4769
4770 // When there are no screenshots the prompt field should be editable.
4771 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4772 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4773 var abortAndClose = function abortAndClose() {
4774 abort();
4775 onClose();
4776 };
4777 var onCloseIntent = function onCloseIntent() {
4778 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4779 if (hasUnsavedChanges) {
4780 return setShowUnsavedChangesAlert(true);
4781 }
4782 abortAndClose();
4783 };
4784 var handleGenerate = function handleGenerate(event, prompt) {
4785 event.preventDefault();
4786 if ('' === prompt.trim() && 0 === attachments.length) {
4787 return;
4788 }
4789 if ((0, _isURL.default)(prompt)) {
4790 setShouldRenderWebApp(true);
4791 return;
4792 }
4793 onGenerate();
4794 lastRun.current = function () {
4795 setSelectedScreenshotIndex(-1);
4796 generate(prompt, attachments);
4797 };
4798 lastRun.current();
4799 setIsPromptEditable(false);
4800 setCurrentPage(1);
4801 };
4802 var handleRegenerate = function handleRegenerate() {
4803 lastRun.current = function () {
4804 regenerate(promptInputRef.current.value, attachments);
4805 // Changing the current page to the next page number.
4806 setCurrentPage(pagesCount + 1);
4807 };
4808 lastRun.current();
4809 };
4810 var applyTemplate = function applyTemplate() {
4811 onInsert(selectedTemplate);
4812 screenshots[selectedScreenshotIndex].sendUsageData();
4813 abortAndClose();
4814 };
4815 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4816 return function () {
4817 if (isPromptFormActive) {
4818 return;
4819 }
4820 setSelectedScreenshotIndex(index);
4821 onSelect(template);
4822 };
4823 };
4824
4825 /**
4826 * @param {Attachment[]} items
4827 */
4828 var onAttach = function onAttach(items) {
4829 items.forEach(function (item) {
4830 if (!attachmentsTypes[item.type]) {
4831 throw new Error("Invalid attachment type: ".concat(item.type));
4832 }
4833 var typeConfig = attachmentsTypes[item.type];
4834 if (!item.previewHTML && typeConfig.previewGenerator) {
4835 typeConfig.previewGenerator(item.content).then(function (html) {
4836 item.previewHTML = html;
4837 setAttachments(function (prev) {
4838 // Replace the attachment with the updated one.
4839 return prev.map(function (attachment) {
4840 if (attachment.content === item.content) {
4841 return item;
4842 }
4843 return attachment;
4844 });
4845 });
4846 });
4847 }
4848 });
4849 setAttachments(items);
4850 setShouldRenderWebApp(false);
4851 setIsPromptEditable(true);
4852 };
4853 (0, _react.useEffect)(function () {
4854 var _screenshots$;
4855 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4856 if (isFirstTemplateExist) {
4857 onSelect(screenshots[0].template);
4858 setSelectedScreenshotIndex(0);
4859 }
4860 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4861 (0, _react.useEffect)(function () {
4862 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4863 onAttach(initialAttachments);
4864 }
4865 }, []);
4866 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4867 onClose: onCloseIntent
4868 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4869 onClose: onCloseIntent
4870 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4871 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4872 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4873 size: "small",
4874 "aria-label": "minimize",
4875 onClick: function onClick() {
4876 return setIsMinimized(function (prev) {
4877 return !prev;
4878 });
4879 }
4880 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4881 dividers: true
4882 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4883 in: !isMinimized
4884 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4885 sx: {
4886 pt: 2,
4887 px: 2,
4888 pb: 0
4889 }
4890 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4891 sx: {
4892 pt: 2,
4893 px: 2,
4894 pb: 0
4895 }
4896 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4897 error: error,
4898 onRetry: lastRun.current
4899 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4900 open: showUnsavedChangesAlert,
4901 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4902 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4903 onClose: abortAndClose,
4904 onCancel: function onCancel() {
4905 return setShowUnsavedChangesAlert(false);
4906 }
4907 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4908 type: _attachments.ATTACHMENT_TYPE_URL,
4909 url: promptInputRef.current.value,
4910 onAttach: onAttach,
4911 onClose: function onClose() {
4912 setShouldRenderWebApp(false);
4913 }
4914 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4915 shouldResetPrompt: shouldRenderWebApp,
4916 ref: promptInputRef,
4917 isActive: isPromptFormActive,
4918 isLoading: isLoading,
4919 showActions: screenshots.length > 0 || isLoading,
4920 attachmentsTypes: attachmentsTypes,
4921 attachments: attachments,
4922 onAttach: onAttach,
4923 onDetach: function onDetach(index) {
4924 setAttachments(function (prev) {
4925 var newAttachments = (0, _toConsumableArray2.default)(prev);
4926 newAttachments.splice(index, 1);
4927 return newAttachments;
4928 });
4929 setIsPromptEditable(true);
4930 },
4931 onSubmit: handleGenerate,
4932 onBack: function onBack() {
4933 return setIsPromptEditable(false);
4934 },
4935 onEdit: function onEdit() {
4936 return setIsPromptEditable(true);
4937 }
4938 }), (screenshots.length > 0 || isLoading) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_ui.Box, {
4939 sx: {
4940 p: 1.5
4941 }
4942 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4943 sx: {
4944 overflow: 'hidden',
4945 p: 0.5
4946 }
4947 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4948 sx: {
4949 display: 'flex',
4950 transition: 'all 0.4s ease',
4951 gap: "".concat(gapPercentage, "%"),
4952 transform: "translateX(".concat(offsetXPercentage, "%)")
4953 }
4954 }, screenshots.map(function (_ref2, index) {
4955 var screenshot = _ref2.screenshot,
4956 type = _ref2.type,
4957 template = _ref2.template,
4958 isError = _ref2.isError,
4959 isPending = _ref2.isPending;
4960 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4961 key: index,
4962 url: screenshot,
4963 type: type,
4964 disabled: isPromptFormActive,
4965 isPlaceholder: isError,
4966 isLoading: isPending,
4967 isSelected: selectedScreenshotIndex === index,
4968 onClick: handleScreenshotClick(index, template),
4969 outlineOffset: screenshotOutlineOffset,
4970 sx: {
4971 flex: "0 0 ".concat(slideWidthPercentage, "%")
4972 }
4973 });
4974 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4975 introductionKey: "ai-context-layout-promotion"
4976 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4977 sx: {
4978 pt: 0,
4979 px: 2,
4980 pb: 2
4981 },
4982 display: "grid",
4983 gridTemplateColumns: "repeat(3, 1fr)",
4984 justifyItems: "center"
4985 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4986 onClick: handleRegenerate,
4987 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
4988 sx: {
4989 justifySelf: 'start'
4990 }
4991 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
4992 page: currentPage,
4993 count: pagesCount,
4994 disabled: isPromptFormActive,
4995 onChange: function onChange(_, page) {
4996 return setCurrentPage(page);
4997 }
4998 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
4999 onClick: applyTemplate,
5000 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
5001 sx: {
5002 justifySelf: 'end',
5003 gridColumn: 3
5004 }
5005 }))))));
5006 };
5007 FormLayout.propTypes = {
5008 DialogHeaderProps: _propTypes.default.object,
5009 DialogContentProps: _propTypes.default.object,
5010 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5011 };
5012 var _default = exports["default"] = FormLayout;
5013
5014 /***/ }),
5015
5016 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5017 /*!************************************************************************************!*\
5018 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5019 \************************************************************************************/
5020 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5021
5022 "use strict";
5023
5024
5025 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5026 Object.defineProperty(exports, "__esModule", ({
5027 value: true
5028 }));
5029 exports["default"] = void 0;
5030 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5031 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5032 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5033 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5034 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5035 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5036 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5037 var _excluded = ["isLoading"];
5038 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5039 var EnhanceButton = function EnhanceButton(_ref) {
5040 var isLoading = _ref.isLoading,
5041 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5042 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5043 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5044 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5045 component: "span",
5046 sx: {
5047 cursor: props.disabled ? 'default' : 'pointer'
5048 }
5049 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5050 size: "small",
5051 color: "secondary"
5052 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5053 color: "secondary",
5054 size: 20
5055 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5056 fontSize: "small"
5057 }))));
5058 };
5059 EnhanceButton.propTypes = {
5060 disabled: _propTypes.default.bool,
5061 isLoading: _propTypes.default.bool
5062 };
5063 var _default = exports["default"] = EnhanceButton;
5064
5065 /***/ }),
5066
5067 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5068 /*!*************************************************************************************!*\
5069 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5070 \*************************************************************************************/
5071 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5072
5073 "use strict";
5074
5075
5076 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5077 Object.defineProperty(exports, "__esModule", ({
5078 value: true
5079 }));
5080 exports["default"] = void 0;
5081 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5082 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5083 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5084 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5085 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5086 var GenerateSubmit = function GenerateSubmit(props) {
5087 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5088 fullWidth: true,
5089 size: "medium",
5090 type: "submit",
5091 variant: "contained"
5092 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5093 };
5094 GenerateSubmit.propTypes = {
5095 children: _propTypes.default.node
5096 };
5097 var _default = exports["default"] = GenerateSubmit;
5098
5099 /***/ }),
5100
5101 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5102 /*!*****************************************************************!*\
5103 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5104 \*****************************************************************/
5105 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5106
5107 "use strict";
5108
5109
5110 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5111 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5112 Object.defineProperty(exports, "__esModule", ({
5113 value: true
5114 }));
5115 exports["default"] = void 0;
5116 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5117 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5118 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5119 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5120 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5121 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5122 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5123 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5124 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5125 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
5126 var GetStarted = function GetStarted(_ref) {
5127 var onSuccess = _ref.onSuccess;
5128 var _useState = (0, _react.useState)(false),
5129 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5130 isTermsChecked = _useState2[0],
5131 setIsTermsChecked = _useState2[1];
5132 var onGetStartedClick = /*#__PURE__*/function () {
5133 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5134 return _regenerator.default.wrap(function (_context) {
5135 while (1) switch (_context.prev = _context.next) {
5136 case 0:
5137 _context.next = 1;
5138 return (0, _api.setGetStarted)();
5139 case 1:
5140 onSuccess();
5141 case 2:
5142 case "end":
5143 return _context.stop();
5144 }
5145 }, _callee);
5146 }));
5147 return function onGetStartedClick() {
5148 return _ref2.apply(this, arguments);
5149 };
5150 }();
5151 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5152 alignItems: "center",
5153 gap: 1.5
5154 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5155 sx: {
5156 color: 'text.primary',
5157 fontSize: '60px',
5158 mb: 1
5159 }
5160 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5161 variant: "h4",
5162 sx: {
5163 color: 'text.primary'
5164 }
5165 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5166 variant: "body2"
5167 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5168 direction: "row",
5169 gap: 1.5,
5170 alignItems: "flex-start"
5171 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5172 id: "e-ai-terms-approval",
5173 color: "secondary",
5174 checked: isTermsChecked,
5175 onClick: function onClick() {
5176 return setIsTermsChecked(function (prevState) {
5177 return !prevState;
5178 });
5179 }
5180 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5181 variant: "caption",
5182 sx: {
5183 maxWidth: 520
5184 },
5185 component: "label",
5186 htmlFor: "e-ai-terms-approval"
5187 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5188 href: "https://go.elementor.com/ai-terms/",
5189 target: "_blank",
5190 color: "info.main"
5191 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5192 href: "https://go.elementor.com/ai-privacy-policy/",
5193 target: "_blank",
5194 color: "info.main"
5195 }, (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, {
5196 disabled: !isTermsChecked,
5197 variant: "contained",
5198 onClick: onGetStartedClick,
5199 sx: {
5200 mt: 1,
5201 '&:hover': {
5202 color: 'primary.contrastText'
5203 }
5204 }
5205 }, (0, _i18n.__)('Get Started', 'elementor')));
5206 };
5207 GetStarted.propTypes = {
5208 onSuccess: _propTypes.default.func.isRequired
5209 };
5210 var _default = exports["default"] = GetStarted;
5211
5212 /***/ }),
5213
5214 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5215 /*!**********************************************************!*\
5216 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5217 \**********************************************************/
5218 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5219
5220 "use strict";
5221
5222
5223 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5224 Object.defineProperty(exports, "__esModule", ({
5225 value: true
5226 }));
5227 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5228 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5229 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5230 type: _propTypes.default.string,
5231 previewHTML: _propTypes.default.string,
5232 content: _propTypes.default.string,
5233 label: _propTypes.default.string,
5234 source: _propTypes.default.string
5235 });
5236 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5237 type: _propTypes.default.shape({
5238 promptPlaceholder: _propTypes.default.string,
5239 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5240 text: _propTypes.default.string.isRequired
5241 })),
5242 previewGenerator: _propTypes.default.func
5243 })
5244 });
5245
5246 /***/ }),
5247
5248 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5249 /*!******************************************************************!*\
5250 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5251 \******************************************************************/
5252 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5253
5254 "use strict";
5255
5256
5257 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5258 Object.defineProperty(exports, "__esModule", ({
5259 value: true
5260 }));
5261 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5262 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5263 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5264 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5265 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5266 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5267 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5268 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5269 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5270 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5271 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5272 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5273 var closePanel = exports.closePanel = function closePanel() {
5274 $e.run('panel/close');
5275 $e.components.get('panel').blockUserInteractions();
5276 };
5277 var openPanel = exports.openPanel = function openPanel() {
5278 $e.run('panel/open');
5279 $e.components.get('panel').unblockUserInteractions();
5280 };
5281 var onConnect = exports.onConnect = function onConnect(data) {
5282 elementorCommon.config.library_connect.is_connected = true;
5283 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5284 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5285 elementorCommon.config.library_connect.plan_type = data.plan_type;
5286 };
5287 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5288 var _elementor, _elementor$getPrefere;
5289 var colorScheme = ((_elementor = elementor) === null || _elementor === void 0 || (_elementor$getPrefere = _elementor.getPreferences) === null || _elementor$getPrefere === void 0 ? void 0 : _elementor$getPrefere.call(_elementor, 'ui_theme')) || 'auto';
5290 var isRTL = elementorCommon.config.isRTL;
5291 return {
5292 colorScheme: colorScheme,
5293 isRTL: isRTL
5294 };
5295 };
5296 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5297 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5298 }, {
5299 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5300 }, {
5301 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5302 }, {
5303 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5304 }, {
5305 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5306 }, {
5307 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5308 }, {
5309 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5310 }, {
5311 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5312 }, {
5313 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5314 }];
5315 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5316 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5317 }, {
5318 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5319 }, {
5320 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5321 }, {
5322 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5323 }, {
5324 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5325 }, {
5326 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5327 }];
5328 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5329 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5330 var _options$onRenderApp;
5331 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5332 parentContainer: null,
5333 mode: '',
5334 at: null,
5335 onClose: null,
5336 onGenerate: null,
5337 onInsert: null,
5338 onRenderApp: null,
5339 onSelect: null,
5340 attachments: []
5341 };
5342 closePanel();
5343 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5344 // Create the container at the "drag widget here" area position.
5345 at: options.at
5346 });
5347 var _getUiConfig = getUiConfig(),
5348 colorScheme = _getUiConfig.colorScheme,
5349 isRTL = _getUiConfig.isRTL;
5350 var rootElement = document.createElement('div');
5351 document.body.append(rootElement);
5352 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5353 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5354 isRTL: isRTL,
5355 colorScheme: colorScheme
5356 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5357 mode: options.mode,
5358 currentContext: {
5359 body: {
5360 backgroundColor: bodyStyle.backgroundColor,
5361 backgroundImage: bodyStyle.backgroundImage
5362 }
5363 },
5364 attachmentsTypes: {
5365 json: {
5366 promptSuggestions: VARIATIONS_PROMPTS,
5367 promptPlaceholder: PROMPT_PLACEHOLDER,
5368 previewGenerator: function () {
5369 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5370 var screenshot;
5371 return _regenerator.default.wrap(function (_context) {
5372 while (1) switch (_context.prev = _context.next) {
5373 case 0:
5374 _context.next = 1;
5375 return (0, _screenshot.takeScreenshot)(json);
5376 case 1:
5377 screenshot = _context.sent;
5378 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5379 case 2:
5380 case "end":
5381 return _context.stop();
5382 }
5383 }, _callee);
5384 }));
5385 function previewGenerator(_x) {
5386 return _previewGenerator.apply(this, arguments);
5387 }
5388 return previewGenerator;
5389 }()
5390 },
5391 url: {
5392 promptPlaceholder: PROMPT_PLACEHOLDER,
5393 promptSuggestions: WEB_BASED_PROMPTS
5394 }
5395 },
5396 attachments: options.attachments || [],
5397 onClose: function onClose() {
5398 var _options$onClose;
5399 previewContainer.destroy();
5400 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5401 unmount();
5402 rootElement.remove();
5403 openPanel();
5404 },
5405 onConnect: onConnect,
5406 onGenerate: function onGenerate() {
5407 var _options$onGenerate;
5408 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5409 previewContainer: previewContainer
5410 });
5411 },
5412 onData: (/*#__PURE__*/function () {
5413 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5414 var screenshot;
5415 return _regenerator.default.wrap(function (_context2) {
5416 while (1) switch (_context2.prev = _context2.next) {
5417 case 0:
5418 _context2.next = 1;
5419 return (0, _screenshot.takeScreenshot)(template);
5420 case 1:
5421 screenshot = _context2.sent;
5422 return _context2.abrupt("return", {
5423 screenshot: screenshot,
5424 template: template
5425 });
5426 case 2:
5427 case "end":
5428 return _context2.stop();
5429 }
5430 }, _callee2);
5431 }));
5432 return function (_x2) {
5433 return _ref.apply(this, arguments);
5434 };
5435 }()),
5436 onSelect: function onSelect(template) {
5437 var _options$onSelect;
5438 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5439 previewContainer.setContent(template);
5440 },
5441 onInsert: options.onInsert,
5442 hasPro: elementor.helpers.hasPro()
5443 })), rootElement),
5444 unmount = _ReactUtils$render.unmount;
5445 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5446 previewContainer: previewContainer
5447 });
5448 };
5449 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5450 var parentContainer = _ref2.parentContainer,
5451 at = _ref2.at,
5452 template = _ref2.template,
5453 historyTitle = _ref2.historyTitle,
5454 _ref2$replace = _ref2.replace,
5455 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5456 var endHistoryLog = (0, _history.startHistoryLog)({
5457 type: 'import',
5458 title: historyTitle
5459 });
5460 if (replace) {
5461 $e.run('document/elements/delete', {
5462 container: parentContainer.children.at(at)
5463 });
5464 }
5465 $e.run('document/elements/create', {
5466 container: parentContainer,
5467 model: (0, _requestsIds.generateIds)(template),
5468 options: {
5469 at: at,
5470 edit: true
5471 }
5472 });
5473 endHistoryLog();
5474 };
5475
5476 /***/ }),
5477
5478 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5479 /*!*******************************************************!*\
5480 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5481 \*******************************************************/
5482 /***/ ((__unused_webpack_module, exports) => {
5483
5484 "use strict";
5485
5486
5487 Object.defineProperty(exports, "__esModule", ({
5488 value: true
5489 }));
5490 exports.startHistoryLog = startHistoryLog;
5491 exports.toggleHistory = toggleHistory;
5492 function toggleHistory(isActive) {
5493 elementor.documents.getCurrent().history.setActive(isActive);
5494 }
5495
5496 /**
5497 * @param {Object} options
5498 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5499 * @param { string } options.title
5500 *
5501 * @return {*}
5502 */
5503 function startHistoryLog(_ref) {
5504 var type = _ref.type,
5505 title = _ref.title;
5506 var id = $e.internal('document/history/start-log', {
5507 type: type,
5508 title: title
5509 });
5510 return function () {
5511 return $e.internal('document/history/end-log', {
5512 id: id
5513 });
5514 };
5515 }
5516
5517 /***/ }),
5518
5519 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5520 /*!*****************************************************************!*\
5521 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5522 \*****************************************************************/
5523 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5524
5525 "use strict";
5526
5527
5528 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5529 Object.defineProperty(exports, "__esModule", ({
5530 value: true
5531 }));
5532 exports.createPreviewContainer = createPreviewContainer;
5533 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5534 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5535 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5536 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5537 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5538 /**
5539 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5540 */
5541
5542 var PREFIX = 'e-ai-preview-container';
5543 var CLASS_HIDDEN = PREFIX + '--hidden';
5544 var CLASS_IDLE = PREFIX + '--idle';
5545
5546 /**
5547 * @param {Container} parentContainer
5548 * @param {{}} containerOptions
5549 * @return {{init, setContent, reset, destroy}}
5550 */
5551
5552 function createPreviewContainer(parentContainer) {
5553 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5554 var createdContainers = new Map();
5555 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5556 function init() {
5557 showContainer(idleContainer);
5558 }
5559 function getAllContainers() {
5560 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5561 }
5562 function reset() {
5563 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5564 createdContainers.clear();
5565 showContainer(idleContainer);
5566 }
5567 function setContent(template) {
5568 if (!template) {
5569 return;
5570 }
5571 hideContainers(getAllContainers());
5572 if (!createdContainers.has(template)) {
5573 var newContainer = createContainer(parentContainer, template, containerOptions);
5574 createdContainers.set(template, newContainer);
5575 }
5576 showContainer(createdContainers.get(template));
5577 }
5578 function destroy() {
5579 deleteContainers(getAllContainers());
5580 createdContainers.clear();
5581 }
5582 return {
5583 init: init,
5584 reset: reset,
5585 setContent: setContent,
5586 destroy: destroy
5587 };
5588 }
5589
5590 /**
5591 * @param {Container} parentContainer
5592 * @param {{}} model
5593 * @param {{}} options
5594 * @return {*}
5595 */
5596 function createContainer(parentContainer, model) {
5597 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5598 (0, _history.toggleHistory)(false);
5599 var container = $e.run('document/elements/create', {
5600 container: parentContainer,
5601 model: _objectSpread(_objectSpread({}, model), {}, {
5602 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5603 }),
5604 options: _objectSpread(_objectSpread({}, options), {}, {
5605 edit: false
5606 })
5607 });
5608 (0, _history.toggleHistory)(true);
5609 container.view.$el.addClass(CLASS_HIDDEN);
5610 return container;
5611 }
5612
5613 /**
5614 * @param {Container} parentContainer
5615 * @param {{}} containerOptions
5616 * @return {*}
5617 */
5618 function createIdleContainer(parentContainer) {
5619 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5620 // Create an empty container that'll be used of UI purposes.
5621 var container = createContainer(parentContainer, {
5622 elType: 'container'
5623 }, containerOptions);
5624 container.view.$el.addClass(CLASS_IDLE);
5625 return container;
5626 }
5627 function hideContainers(containers) {
5628 containers.forEach(function (container) {
5629 container.view.$el.addClass(CLASS_HIDDEN);
5630 });
5631 }
5632 function showContainer(container) {
5633 container.view.$el.removeClass(CLASS_HIDDEN);
5634
5635 // Delay the scroll to avoid UI jumps when toggling between containers.
5636 setTimeout(function () {
5637 container.view.$el[0].scrollIntoView({
5638 behavior: 'smooth',
5639 block: 'start'
5640 });
5641 });
5642 }
5643 function deleteContainers(containers) {
5644 (0, _history.toggleHistory)(false);
5645 $e.run('document/elements/delete', {
5646 containers: containers
5647 });
5648 (0, _history.toggleHistory)(true);
5649 }
5650
5651 /***/ }),
5652
5653 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5654 /*!**********************************************************!*\
5655 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5656 \**********************************************************/
5657 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5658
5659 "use strict";
5660
5661
5662 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5663 Object.defineProperty(exports, "__esModule", ({
5664 value: true
5665 }));
5666 exports.takeScreenshot = void 0;
5667 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5668 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5669 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5670 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5671 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5672 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5673 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5674 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5675 var hiddenWrapper, container, screenshot, _t;
5676 return _regenerator.default.wrap(function (_context) {
5677 while (1) switch (_context.prev = _context.next) {
5678 case 0:
5679 if (template) {
5680 _context.next = 1;
5681 break;
5682 }
5683 return _context.abrupt("return", '');
5684 case 1:
5685 // Disable history so the Editor won't show our hidden container as a user action.
5686 (0, _history.toggleHistory)(false);
5687 hiddenWrapper = createHiddenWrapper();
5688 container = createContainer(template);
5689 wrapContainer(container, hiddenWrapper);
5690 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5691
5692 // Wait for the container to render.
5693 _context.next = 2;
5694 return waitForContainer(container.id);
5695 case 2:
5696 if (!template.elements.length) {
5697 _context.next = 3;
5698 break;
5699 }
5700 _context.next = 3;
5701 return Promise.all(template.elements.map(function (child) {
5702 return waitForContainer(child.id);
5703 }));
5704 case 3:
5705 _context.prev = 3;
5706 _context.next = 4;
5707 return screenshotNode(container.view.$el[0]);
5708 case 4:
5709 screenshot = _context.sent;
5710 _context.next = 6;
5711 break;
5712 case 5:
5713 _context.prev = 5;
5714 _t = _context["catch"](3);
5715 // Return an empty image url if the screenshot failed.
5716 screenshot = '';
5717 case 6:
5718 deleteContainer(container);
5719 hiddenWrapper.remove();
5720 (0, _history.toggleHistory)(true);
5721 return _context.abrupt("return", screenshot);
5722 case 7:
5723 case "end":
5724 return _context.stop();
5725 }
5726 }, _callee, null, [[3, 5]]);
5727 }));
5728 return function takeScreenshot(_x) {
5729 return _ref.apply(this, arguments);
5730 };
5731 }();
5732 function screenshotNode(node) {
5733 return toWebp(node, {
5734 quality: 0.01,
5735 // Transparent 1x1 pixel.
5736 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5737 });
5738 }
5739 function toWebp(_x2) {
5740 return _toWebp.apply(this, arguments);
5741 }
5742 function _toWebp() {
5743 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5744 var _options$quality;
5745 var options,
5746 canvas,
5747 _args3 = arguments;
5748 return _regenerator.default.wrap(function (_context3) {
5749 while (1) switch (_context3.prev = _context3.next) {
5750 case 0:
5751 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5752 _context3.next = 1;
5753 return (0, _htmlToImage.toCanvas)(node, options);
5754 case 1:
5755 canvas = _context3.sent;
5756 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5757 case 2:
5758 case "end":
5759 return _context3.stop();
5760 }
5761 }, _callee3);
5762 }));
5763 return _toWebp.apply(this, arguments);
5764 }
5765 function createHiddenWrapper() {
5766 var wrapper = document.createElement('div');
5767 wrapper.style.position = 'fixed';
5768 wrapper.style.opacity = '0';
5769 wrapper.style.inset = '0';
5770 return wrapper;
5771 }
5772 function createContainer(template) {
5773 var model = (0, _requestsIds.generateIds)(template);
5774
5775 // Set a custom ID, so it can be used later on in the backend.
5776 model.id = "e-ai-screenshot-container-".concat(model.id);
5777 return $e.run('document/elements/create', {
5778 container: elementor.getPreviewContainer(),
5779 model: model,
5780 options: {
5781 edit: false
5782 }
5783 });
5784 }
5785 function deleteContainer(container) {
5786 return $e.run('document/elements/delete', {
5787 container: container
5788 });
5789 }
5790 function waitForContainer(id) {
5791 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5792 var timeoutPromise = sleep(timeout);
5793 var waitPromise = new Promise(function (resolve) {
5794 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5795 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5796 var images;
5797 return _regenerator.default.wrap(function (_context2) {
5798 while (1) switch (_context2.prev = _context2.next) {
5799 case 0:
5800 if (!($element.data('id') === id)) {
5801 _context2.next = 2;
5802 break;
5803 }
5804 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5805 _context2.next = 1;
5806 return Promise.all(images.map(waitForImage));
5807 case 1:
5808 resolve();
5809 case 2:
5810 case "end":
5811 return _context2.stop();
5812 }
5813 }, _callee2);
5814 }));
5815 return function (_x3) {
5816 return _ref2.apply(this, arguments);
5817 };
5818 }());
5819 });
5820 return Promise.any([timeoutPromise, waitPromise]);
5821 }
5822 function waitForImage(image) {
5823 if (image.complete) {
5824 return Promise.resolve();
5825 }
5826 return new Promise(function (resolve) {
5827 image.addEventListener('load', resolve);
5828 image.addEventListener('error', function () {
5829 // Remove the image to make sure it won't break the screenshot.
5830 image.remove();
5831 resolve();
5832 });
5833 });
5834 }
5835 function sleep(ms) {
5836 return new Promise(function (resolve) {
5837 return setTimeout(resolve, ms);
5838 });
5839 }
5840 function wrapContainer(container, wrapper) {
5841 var el = container.view.$el[0];
5842 el.parentNode.insertBefore(wrapper, el);
5843 wrapper.appendChild(el);
5844 }
5845
5846 /***/ }),
5847
5848 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
5849 /*!***************************************************************!*\
5850 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
5851 \***************************************************************/
5852 /***/ ((module) => {
5853
5854 function _OverloadYield(e, d) {
5855 this.v = e, this.k = d;
5856 }
5857 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
5858
5859 /***/ }),
5860
5861 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
5862 /*!******************************************************************!*\
5863 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
5864 \******************************************************************/
5865 /***/ ((module) => {
5866
5867 function _arrayLikeToArray(r, a) {
5868 (null == a || a > r.length) && (a = r.length);
5869 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
5870 return n;
5871 }
5872 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
5873
5874 /***/ }),
5875
5876 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
5877 /*!****************************************************************!*\
5878 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
5879 \****************************************************************/
5880 /***/ ((module) => {
5881
5882 function _arrayWithHoles(r) {
5883 if (Array.isArray(r)) return r;
5884 }
5885 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5886
5887 /***/ }),
5888
5889 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
5890 /*!*******************************************************************!*\
5891 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
5892 \*******************************************************************/
5893 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5894
5895 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
5896 function _arrayWithoutHoles(r) {
5897 if (Array.isArray(r)) return arrayLikeToArray(r);
5898 }
5899 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5900
5901 /***/ }),
5902
5903 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
5904 /*!***********************************************************************!*\
5905 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
5906 \***********************************************************************/
5907 /***/ ((module) => {
5908
5909 function _assertThisInitialized(e) {
5910 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5911 return e;
5912 }
5913 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
5914
5915 /***/ }),
5916
5917 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
5918 /*!******************************************************************!*\
5919 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
5920 \******************************************************************/
5921 /***/ ((module) => {
5922
5923 function asyncGeneratorStep(n, t, e, r, o, a, c) {
5924 try {
5925 var i = n[a](c),
5926 u = i.value;
5927 } catch (n) {
5928 return void e(n);
5929 }
5930 i.done ? t(u) : Promise.resolve(u).then(r, o);
5931 }
5932 function _asyncToGenerator(n) {
5933 return function () {
5934 var t = this,
5935 e = arguments;
5936 return new Promise(function (r, o) {
5937 var a = n.apply(t, e);
5938 function _next(n) {
5939 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
5940 }
5941 function _throw(n) {
5942 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
5943 }
5944 _next(void 0);
5945 });
5946 };
5947 }
5948 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
5949
5950 /***/ }),
5951
5952 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
5953 /*!****************************************************************!*\
5954 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
5955 \****************************************************************/
5956 /***/ ((module) => {
5957
5958 function _classCallCheck(a, n) {
5959 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
5960 }
5961 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
5962
5963 /***/ }),
5964
5965 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
5966 /*!*************************************************************!*\
5967 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
5968 \*************************************************************/
5969 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5970
5971 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5972 function _defineProperties(e, r) {
5973 for (var t = 0; t < r.length; t++) {
5974 var o = r[t];
5975 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
5976 }
5977 }
5978 function _createClass(e, r, t) {
5979 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
5980 writable: !1
5981 }), e;
5982 }
5983 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
5984
5985 /***/ }),
5986
5987 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
5988 /*!****************************************************************!*\
5989 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
5990 \****************************************************************/
5991 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5992
5993 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5994 function _defineProperty(e, r, t) {
5995 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5996 value: t,
5997 enumerable: !0,
5998 configurable: !0,
5999 writable: !0
6000 }) : e[r] = t, e;
6001 }
6002 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
6003
6004 /***/ }),
6005
6006 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
6007 /*!*********************************************************!*\
6008 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
6009 \*********************************************************/
6010 /***/ ((module) => {
6011
6012 function _extends() {
6013 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
6014 for (var e = 1; e < arguments.length; e++) {
6015 var t = arguments[e];
6016 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
6017 }
6018 return n;
6019 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
6020 }
6021 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
6022
6023 /***/ }),
6024
6025 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
6026 /*!****************************************************************!*\
6027 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
6028 \****************************************************************/
6029 /***/ ((module) => {
6030
6031 function _getPrototypeOf(t) {
6032 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
6033 return t.__proto__ || Object.getPrototypeOf(t);
6034 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
6035 }
6036 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6037
6038 /***/ }),
6039
6040 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
6041 /*!**********************************************************!*\
6042 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
6043 \**********************************************************/
6044 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6045
6046 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
6047 function _inherits(t, e) {
6048 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
6049 t.prototype = Object.create(e && e.prototype, {
6050 constructor: {
6051 value: t,
6052 writable: !0,
6053 configurable: !0
6054 }
6055 }), Object.defineProperty(t, "prototype", {
6056 writable: !1
6057 }), e && setPrototypeOf(t, e);
6058 }
6059 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
6060
6061 /***/ }),
6062
6063 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
6064 /*!***********************************************************************!*\
6065 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
6066 \***********************************************************************/
6067 /***/ ((module) => {
6068
6069 function _interopRequireDefault(e) {
6070 return e && e.__esModule ? e : {
6071 "default": e
6072 };
6073 }
6074 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
6075
6076 /***/ }),
6077
6078 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
6079 /*!*****************************************************************!*\
6080 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
6081 \*****************************************************************/
6082 /***/ ((module) => {
6083
6084 function _iterableToArray(r) {
6085 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
6086 }
6087 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6088
6089 /***/ }),
6090
6091 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
6092 /*!**********************************************************************!*\
6093 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
6094 \**********************************************************************/
6095 /***/ ((module) => {
6096
6097 function _iterableToArrayLimit(r, l) {
6098 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
6099 if (null != t) {
6100 var e,
6101 n,
6102 i,
6103 u,
6104 a = [],
6105 f = !0,
6106 o = !1;
6107 try {
6108 if (i = (t = t.call(r)).next, 0 === l) {
6109 if (Object(t) !== t) return;
6110 f = !1;
6111 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
6112 } catch (r) {
6113 o = !0, n = r;
6114 } finally {
6115 try {
6116 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
6117 } finally {
6118 if (o) throw n;
6119 }
6120 }
6121 return a;
6122 }
6123 }
6124 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
6125
6126 /***/ }),
6127
6128 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
6129 /*!*****************************************************************!*\
6130 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
6131 \*****************************************************************/
6132 /***/ ((module) => {
6133
6134 function _nonIterableRest() {
6135 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6136 }
6137 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
6138
6139 /***/ }),
6140
6141 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
6142 /*!*******************************************************************!*\
6143 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
6144 \*******************************************************************/
6145 /***/ ((module) => {
6146
6147 function _nonIterableSpread() {
6148 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6149 }
6150 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
6151
6152 /***/ }),
6153
6154 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
6155 /*!*************************************************************************!*\
6156 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
6157 \*************************************************************************/
6158 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6159
6160 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
6161 function _objectWithoutProperties(e, t) {
6162 if (null == e) return {};
6163 var o,
6164 r,
6165 i = objectWithoutPropertiesLoose(e, t);
6166 if (Object.getOwnPropertySymbols) {
6167 var n = Object.getOwnPropertySymbols(e);
6168 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6169 }
6170 return i;
6171 }
6172 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
6173
6174 /***/ }),
6175
6176 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
6177 /*!******************************************************************************!*\
6178 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
6179 \******************************************************************************/
6180 /***/ ((module) => {
6181
6182 function _objectWithoutPropertiesLoose(r, e) {
6183 if (null == r) return {};
6184 var t = {};
6185 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
6186 if (-1 !== e.indexOf(n)) continue;
6187 t[n] = r[n];
6188 }
6189 return t;
6190 }
6191 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
6192
6193 /***/ }),
6194
6195 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
6196 /*!***************************************************************************!*\
6197 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
6198 \***************************************************************************/
6199 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6200
6201 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6202 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
6203 function _possibleConstructorReturn(t, e) {
6204 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
6205 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
6206 return assertThisInitialized(t);
6207 }
6208 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
6209
6210 /***/ }),
6211
6212 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
6213 /*!*************************************************************!*\
6214 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
6215 \*************************************************************/
6216 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6217
6218 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6219 function _regenerator() {
6220 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
6221 var e,
6222 t,
6223 r = "function" == typeof Symbol ? Symbol : {},
6224 n = r.iterator || "@@iterator",
6225 o = r.toStringTag || "@@toStringTag";
6226 function i(r, n, o, i) {
6227 var c = n && n.prototype instanceof Generator ? n : Generator,
6228 u = Object.create(c.prototype);
6229 return regeneratorDefine(u, "_invoke", function (r, n, o) {
6230 var i,
6231 c,
6232 u,
6233 f = 0,
6234 p = o || [],
6235 y = !1,
6236 G = {
6237 p: 0,
6238 n: 0,
6239 v: e,
6240 a: d,
6241 f: d.bind(e, 4),
6242 d: function d(t, r) {
6243 return i = t, c = 0, u = e, G.n = r, a;
6244 }
6245 };
6246 function d(r, n) {
6247 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
6248 var o,
6249 i = p[t],
6250 d = G.p,
6251 l = i[2];
6252 r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
6253 }
6254 if (o || r > 1) return a;
6255 throw y = !0, n;
6256 }
6257 return function (o, p, l) {
6258 if (f > 1) throw TypeError("Generator is already running");
6259 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
6260 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
6261 try {
6262 if (f = 2, i) {
6263 if (c || (o = "next"), t = i[o]) {
6264 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
6265 if (!t.done) return t;
6266 u = t.value, c < 2 && (c = 0);
6267 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
6268 i = e;
6269 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
6270 } catch (t) {
6271 i = e, c = 1, u = t;
6272 } finally {
6273 f = 1;
6274 }
6275 }
6276 return {
6277 value: t,
6278 done: y
6279 };
6280 };
6281 }(r, o, i), !0), u;
6282 }
6283 var a = {};
6284 function Generator() {}
6285 function GeneratorFunction() {}
6286 function GeneratorFunctionPrototype() {}
6287 t = Object.getPrototypeOf;
6288 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
6289 return this;
6290 }), t),
6291 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
6292 function f(e) {
6293 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
6294 }
6295 return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
6296 return this;
6297 }), regeneratorDefine(u, "toString", function () {
6298 return "[object Generator]";
6299 }), (module.exports = _regenerator = function _regenerator() {
6300 return {
6301 w: i,
6302 m: f
6303 };
6304 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6305 }
6306 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6307
6308 /***/ }),
6309
6310 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
6311 /*!******************************************************************!*\
6312 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
6313 \******************************************************************/
6314 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6315
6316 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6317 function _regeneratorAsync(n, e, r, t, o) {
6318 var a = regeneratorAsyncGen(n, e, r, t, o);
6319 return a.next().then(function (n) {
6320 return n.done ? n.value : a.next();
6321 });
6322 }
6323 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
6324
6325 /***/ }),
6326
6327 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
6328 /*!*********************************************************************!*\
6329 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
6330 \*********************************************************************/
6331 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6332
6333 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6334 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6335 function _regeneratorAsyncGen(r, e, t, o, n) {
6336 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
6337 }
6338 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
6339
6340 /***/ }),
6341
6342 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
6343 /*!**************************************************************************!*\
6344 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
6345 \**************************************************************************/
6346 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6347
6348 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6349 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6350 function AsyncIterator(t, e) {
6351 function n(r, o, i, f) {
6352 try {
6353 var c = t[r](o),
6354 u = c.value;
6355 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
6356 n("next", t, i, f);
6357 }, function (t) {
6358 n("throw", t, i, f);
6359 }) : e.resolve(u).then(function (t) {
6360 c.value = t, i(c);
6361 }, function (t) {
6362 return n("throw", t, i, f);
6363 });
6364 } catch (t) {
6365 f(t);
6366 }
6367 }
6368 var r;
6369 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
6370 return this;
6371 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
6372 function f() {
6373 return new e(function (e, r) {
6374 n(t, i, e, r);
6375 });
6376 }
6377 return r = r ? r.then(f, f) : f();
6378 }, !0);
6379 }
6380 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6381
6382 /***/ }),
6383
6384 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
6385 /*!*******************************************************************!*\
6386 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
6387 \*******************************************************************/
6388 /***/ ((module) => {
6389
6390 function _regeneratorDefine(e, r, n, t) {
6391 var i = Object.defineProperty;
6392 try {
6393 i({}, "", {});
6394 } catch (e) {
6395 i = 0;
6396 }
6397 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
6398 function o(r, n) {
6399 _regeneratorDefine(e, r, function (e) {
6400 return this._invoke(r, n, e);
6401 });
6402 }
6403 r ? i ? i(e, r, {
6404 value: n,
6405 enumerable: !t,
6406 configurable: !t,
6407 writable: !t
6408 }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
6409 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
6410 }
6411 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
6412
6413 /***/ }),
6414
6415 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
6416 /*!*****************************************************************!*\
6417 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
6418 \*****************************************************************/
6419 /***/ ((module) => {
6420
6421 function _regeneratorKeys(e) {
6422 var n = Object(e),
6423 r = [];
6424 for (var t in n) r.unshift(t);
6425 return function e() {
6426 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
6427 return e.done = !0, e;
6428 };
6429 }
6430 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
6431
6432 /***/ }),
6433
6434 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
6435 /*!********************************************************************!*\
6436 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
6437 \********************************************************************/
6438 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6439
6440 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6441 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6442 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
6443 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6444 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6445 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
6446 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
6447 function _regeneratorRuntime() {
6448 "use strict";
6449
6450 var r = regenerator(),
6451 e = r.m(_regeneratorRuntime),
6452 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
6453 function n(r) {
6454 var e = "function" == typeof r && r.constructor;
6455 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
6456 }
6457 var o = {
6458 "throw": 1,
6459 "return": 2,
6460 "break": 3,
6461 "continue": 3
6462 };
6463 function a(r) {
6464 var e, t;
6465 return function (n) {
6466 e || (e = {
6467 stop: function stop() {
6468 return t(n.a, 2);
6469 },
6470 "catch": function _catch() {
6471 return n.v;
6472 },
6473 abrupt: function abrupt(r, e) {
6474 return t(n.a, o[r], e);
6475 },
6476 delegateYield: function delegateYield(r, o, a) {
6477 return e.resultName = o, t(n.d, regeneratorValues(r), a);
6478 },
6479 finish: function finish(r) {
6480 return t(n.f, r);
6481 }
6482 }, t = function t(r, _t, o) {
6483 n.p = e.prev, n.n = e.next;
6484 try {
6485 return r(_t, o);
6486 } finally {
6487 e.next = n.n;
6488 }
6489 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
6490 try {
6491 return r.call(this, e);
6492 } finally {
6493 n.p = e.prev, n.n = e.next;
6494 }
6495 };
6496 }
6497 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
6498 return {
6499 wrap: function wrap(e, t, n, o) {
6500 return r.w(a(e), t, n, o && o.reverse());
6501 },
6502 isGeneratorFunction: n,
6503 mark: r.m,
6504 awrap: function awrap(r, e) {
6505 return new OverloadYield(r, e);
6506 },
6507 AsyncIterator: regeneratorAsyncIterator,
6508 async: function async(r, e, t, o, u) {
6509 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
6510 },
6511 keys: regeneratorKeys,
6512 values: regeneratorValues
6513 };
6514 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6515 }
6516 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6517
6518 /***/ }),
6519
6520 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
6521 /*!*******************************************************************!*\
6522 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
6523 \*******************************************************************/
6524 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6525
6526 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6527 function _regeneratorValues(e) {
6528 if (null != e) {
6529 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
6530 r = 0;
6531 if (t) return t.call(e);
6532 if ("function" == typeof e.next) return e;
6533 if (!isNaN(e.length)) return {
6534 next: function next() {
6535 return e && r >= e.length && (e = void 0), {
6536 value: e && e[r++],
6537 done: !e
6538 };
6539 }
6540 };
6541 }
6542 throw new TypeError(_typeof(e) + " is not iterable");
6543 }
6544 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
6545
6546 /***/ }),
6547
6548 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
6549 /*!****************************************************************!*\
6550 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
6551 \****************************************************************/
6552 /***/ ((module) => {
6553
6554 function _setPrototypeOf(t, e) {
6555 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
6556 return t.__proto__ = e, t;
6557 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
6558 }
6559 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6560
6561 /***/ }),
6562
6563 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
6564 /*!***************************************************************!*\
6565 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
6566 \***************************************************************/
6567 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6568
6569 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
6570 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
6571 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6572 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
6573 function _slicedToArray(r, e) {
6574 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
6575 }
6576 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6577
6578 /***/ }),
6579
6580 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
6581 /*!***********************************************************************!*\
6582 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
6583 \***********************************************************************/
6584 /***/ ((module) => {
6585
6586 function _taggedTemplateLiteral(e, t) {
6587 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
6588 raw: {
6589 value: Object.freeze(t)
6590 }
6591 }));
6592 }
6593 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
6594
6595 /***/ }),
6596
6597 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
6598 /*!*******************************************************************!*\
6599 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
6600 \*******************************************************************/
6601 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6602
6603 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
6604 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
6605 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6606 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
6607 function _toConsumableArray(r) {
6608 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
6609 }
6610 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6611
6612 /***/ }),
6613
6614 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
6615 /*!*************************************************************!*\
6616 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
6617 \*************************************************************/
6618 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6619
6620 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6621 function toPrimitive(t, r) {
6622 if ("object" != _typeof(t) || !t) return t;
6623 var e = t[Symbol.toPrimitive];
6624 if (void 0 !== e) {
6625 var i = e.call(t, r || "default");
6626 if ("object" != _typeof(i)) return i;
6627 throw new TypeError("@@toPrimitive must return a primitive value.");
6628 }
6629 return ("string" === r ? String : Number)(t);
6630 }
6631 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
6632
6633 /***/ }),
6634
6635 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
6636 /*!***************************************************************!*\
6637 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
6638 \***************************************************************/
6639 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6640
6641 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6642 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
6643 function toPropertyKey(t) {
6644 var i = toPrimitive(t, "string");
6645 return "symbol" == _typeof(i) ? i : i + "";
6646 }
6647 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
6648
6649 /***/ }),
6650
6651 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
6652 /*!********************************************************!*\
6653 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
6654 \********************************************************/
6655 /***/ ((module) => {
6656
6657 function _typeof(o) {
6658 "@babel/helpers - typeof";
6659
6660 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
6661 return typeof o;
6662 } : function (o) {
6663 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
6664 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
6665 }
6666 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
6667
6668 /***/ }),
6669
6670 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
6671 /*!****************************************************************************!*\
6672 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
6673 \****************************************************************************/
6674 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6675
6676 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
6677 function _unsupportedIterableToArray(r, a) {
6678 if (r) {
6679 if ("string" == typeof r) return arrayLikeToArray(r, a);
6680 var t = {}.toString.call(r).slice(8, -1);
6681 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
6682 }
6683 }
6684 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6685
6686 /***/ }),
6687
6688 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
6689 /*!***********************************************************!*\
6690 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
6691 \***********************************************************/
6692 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6693
6694 // TODO(Babel 8): Remove this file.
6695
6696 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
6697 module.exports = runtime;
6698
6699 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6700 try {
6701 regeneratorRuntime = runtime;
6702 } catch (accidentalStrictMode) {
6703 if (typeof globalThis === "object") {
6704 globalThis.regeneratorRuntime = runtime;
6705 } else {
6706 Function("r", "regeneratorRuntime = r")(runtime);
6707 }
6708 }
6709
6710
6711 /***/ }),
6712
6713 /***/ "../node_modules/html-to-image/es/apply-style.js":
6714 /*!*******************************************************!*\
6715 !*** ../node_modules/html-to-image/es/apply-style.js ***!
6716 \*******************************************************/
6717 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6718
6719 "use strict";
6720 __webpack_require__.r(__webpack_exports__);
6721 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6722 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
6723 /* harmony export */ });
6724 function applyStyle(node, options) {
6725 const { style } = node;
6726 if (options.backgroundColor) {
6727 style.backgroundColor = options.backgroundColor;
6728 }
6729 if (options.width) {
6730 style.width = `${options.width}px`;
6731 }
6732 if (options.height) {
6733 style.height = `${options.height}px`;
6734 }
6735 const manual = options.style;
6736 if (manual != null) {
6737 Object.keys(manual).forEach((key) => {
6738 style[key] = manual[key];
6739 });
6740 }
6741 return node;
6742 }
6743 //# sourceMappingURL=apply-style.js.map
6744
6745 /***/ }),
6746
6747 /***/ "../node_modules/html-to-image/es/clone-node.js":
6748 /*!******************************************************!*\
6749 !*** ../node_modules/html-to-image/es/clone-node.js ***!
6750 \******************************************************/
6751 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6752
6753 "use strict";
6754 __webpack_require__.r(__webpack_exports__);
6755 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6756 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
6757 /* harmony export */ });
6758 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
6759 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6760 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6761 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6762
6763
6764
6765
6766 async function cloneCanvasElement(canvas) {
6767 const dataURL = canvas.toDataURL();
6768 if (dataURL === 'data:,') {
6769 return canvas.cloneNode(false);
6770 }
6771 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6772 }
6773 async function cloneVideoElement(video, options) {
6774 if (video.currentSrc) {
6775 const canvas = document.createElement('canvas');
6776 const ctx = canvas.getContext('2d');
6777 canvas.width = video.clientWidth;
6778 canvas.height = video.clientHeight;
6779 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
6780 const dataURL = canvas.toDataURL();
6781 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6782 }
6783 const poster = video.poster;
6784 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
6785 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
6786 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6787 }
6788 async function cloneIFrameElement(iframe, options) {
6789 var _a;
6790 try {
6791 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
6792 return (await cloneNode(iframe.contentDocument.body, options, true));
6793 }
6794 }
6795 catch (_b) {
6796 // Failed to clone iframe
6797 }
6798 return iframe.cloneNode(false);
6799 }
6800 async function cloneSingleNode(node, options) {
6801 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
6802 return cloneCanvasElement(node);
6803 }
6804 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
6805 return cloneVideoElement(node, options);
6806 }
6807 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
6808 return cloneIFrameElement(node, options);
6809 }
6810 return node.cloneNode(isSVGElement(node));
6811 }
6812 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
6813 const isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';
6814 async function cloneChildren(nativeNode, clonedNode, options) {
6815 var _a, _b;
6816 if (isSVGElement(clonedNode)) {
6817 return clonedNode;
6818 }
6819 let children = [];
6820 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
6821 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
6822 }
6823 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6824 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
6825 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
6826 }
6827 else {
6828 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
6829 }
6830 if (children.length === 0 ||
6831 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
6832 return clonedNode;
6833 }
6834 await children.reduce((deferred, child) => deferred
6835 .then(() => cloneNode(child, options))
6836 .then((clonedChild) => {
6837 if (clonedChild) {
6838 clonedNode.appendChild(clonedChild);
6839 }
6840 }), Promise.resolve());
6841 return clonedNode;
6842 }
6843 function cloneCSSStyle(nativeNode, clonedNode, options) {
6844 const targetStyle = clonedNode.style;
6845 if (!targetStyle) {
6846 return;
6847 }
6848 const sourceStyle = window.getComputedStyle(nativeNode);
6849 if (sourceStyle.cssText) {
6850 targetStyle.cssText = sourceStyle.cssText;
6851 targetStyle.transformOrigin = sourceStyle.transformOrigin;
6852 }
6853 else {
6854 (0,_util__WEBPACK_IMPORTED_MODULE_1__.getStyleProperties)(options).forEach((name) => {
6855 let value = sourceStyle.getPropertyValue(name);
6856 if (name === 'font-size' && value.endsWith('px')) {
6857 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6858 value = `${reducedFont}px`;
6859 }
6860 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6861 name === 'display' &&
6862 value === 'inline') {
6863 value = 'block';
6864 }
6865 if (name === 'd' && clonedNode.getAttribute('d')) {
6866 value = `path(${clonedNode.getAttribute('d')})`;
6867 }
6868 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6869 });
6870 }
6871 }
6872 function cloneInputValue(nativeNode, clonedNode) {
6873 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6874 clonedNode.innerHTML = nativeNode.value;
6875 }
6876 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6877 clonedNode.setAttribute('value', nativeNode.value);
6878 }
6879 }
6880 function cloneSelectValue(nativeNode, clonedNode) {
6881 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6882 const clonedSelect = clonedNode;
6883 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6884 if (selectedOption) {
6885 selectedOption.setAttribute('selected', '');
6886 }
6887 }
6888 }
6889 function decorate(nativeNode, clonedNode, options) {
6890 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6891 cloneCSSStyle(nativeNode, clonedNode, options);
6892 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode, options);
6893 cloneInputValue(nativeNode, clonedNode);
6894 cloneSelectValue(nativeNode, clonedNode);
6895 }
6896 return clonedNode;
6897 }
6898 async function ensureSVGSymbols(clone, options) {
6899 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6900 if (uses.length === 0) {
6901 return clone;
6902 }
6903 const processedDefs = {};
6904 for (let i = 0; i < uses.length; i++) {
6905 const use = uses[i];
6906 const id = use.getAttribute('xlink:href');
6907 if (id) {
6908 const exist = clone.querySelector(id);
6909 const definition = document.querySelector(id);
6910 if (!exist && definition && !processedDefs[id]) {
6911 // eslint-disable-next-line no-await-in-loop
6912 processedDefs[id] = (await cloneNode(definition, options, true));
6913 }
6914 }
6915 }
6916 const nodes = Object.values(processedDefs);
6917 if (nodes.length) {
6918 const ns = 'http://www.w3.org/1999/xhtml';
6919 const svg = document.createElementNS(ns, 'svg');
6920 svg.setAttribute('xmlns', ns);
6921 svg.style.position = 'absolute';
6922 svg.style.width = '0';
6923 svg.style.height = '0';
6924 svg.style.overflow = 'hidden';
6925 svg.style.display = 'none';
6926 const defs = document.createElementNS(ns, 'defs');
6927 svg.appendChild(defs);
6928 for (let i = 0; i < nodes.length; i++) {
6929 defs.appendChild(nodes[i]);
6930 }
6931 clone.appendChild(svg);
6932 }
6933 return clone;
6934 }
6935 async function cloneNode(node, options, isRoot) {
6936 if (!isRoot && options.filter && !options.filter(node)) {
6937 return null;
6938 }
6939 return Promise.resolve(node)
6940 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6941 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6942 .then((clonedNode) => decorate(node, clonedNode, options))
6943 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6944 }
6945 //# sourceMappingURL=clone-node.js.map
6946
6947 /***/ }),
6948
6949 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6950 /*!*********************************************************!*\
6951 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6952 \*********************************************************/
6953 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6954
6955 "use strict";
6956 __webpack_require__.r(__webpack_exports__);
6957 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6958 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6959 /* harmony export */ });
6960 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6961
6962 function formatCSSText(style) {
6963 const content = style.getPropertyValue('content');
6964 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6965 }
6966 function formatCSSProperties(style, options) {
6967 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.getStyleProperties)(options)
6968 .map((name) => {
6969 const value = style.getPropertyValue(name);
6970 const priority = style.getPropertyPriority(name);
6971 return `${name}: ${value}${priority ? ' !important' : ''};`;
6972 })
6973 .join(' ');
6974 }
6975 function getPseudoElementStyle(className, pseudo, style, options) {
6976 const selector = `.${className}:${pseudo}`;
6977 const cssText = style.cssText
6978 ? formatCSSText(style)
6979 : formatCSSProperties(style, options);
6980 return document.createTextNode(`${selector}{${cssText}}`);
6981 }
6982 function clonePseudoElement(nativeNode, clonedNode, pseudo, options) {
6983 const style = window.getComputedStyle(nativeNode, pseudo);
6984 const content = style.getPropertyValue('content');
6985 if (content === '' || content === 'none') {
6986 return;
6987 }
6988 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6989 try {
6990 clonedNode.className = `${clonedNode.className} ${className}`;
6991 }
6992 catch (err) {
6993 return;
6994 }
6995 const styleElement = document.createElement('style');
6996 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));
6997 clonedNode.appendChild(styleElement);
6998 }
6999 function clonePseudoElements(nativeNode, clonedNode, options) {
7000 clonePseudoElement(nativeNode, clonedNode, ':before', options);
7001 clonePseudoElement(nativeNode, clonedNode, ':after', options);
7002 }
7003 //# sourceMappingURL=clone-pseudos.js.map
7004
7005 /***/ }),
7006
7007 /***/ "../node_modules/html-to-image/es/dataurl.js":
7008 /*!***************************************************!*\
7009 !*** ../node_modules/html-to-image/es/dataurl.js ***!
7010 \***************************************************/
7011 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7012
7013 "use strict";
7014 __webpack_require__.r(__webpack_exports__);
7015 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7016 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
7017 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
7018 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
7019 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
7020 /* harmony export */ });
7021 function getContentFromDataUrl(dataURL) {
7022 return dataURL.split(/,/)[1];
7023 }
7024 function isDataUrl(url) {
7025 return url.search(/^(data:)/) !== -1;
7026 }
7027 function makeDataUrl(content, mimeType) {
7028 return `data:${mimeType};base64,${content}`;
7029 }
7030 async function fetchAsDataURL(url, init, process) {
7031 const res = await fetch(url, init);
7032 if (res.status === 404) {
7033 throw new Error(`Resource "${res.url}" not found`);
7034 }
7035 const blob = await res.blob();
7036 return new Promise((resolve, reject) => {
7037 const reader = new FileReader();
7038 reader.onerror = reject;
7039 reader.onloadend = () => {
7040 try {
7041 resolve(process({ res, result: reader.result }));
7042 }
7043 catch (error) {
7044 reject(error);
7045 }
7046 };
7047 reader.readAsDataURL(blob);
7048 });
7049 }
7050 const cache = {};
7051 function getCacheKey(url, contentType, includeQueryParams) {
7052 let key = url.replace(/\?.*/, '');
7053 if (includeQueryParams) {
7054 key = url;
7055 }
7056 // font resource
7057 if (/ttf|otf|eot|woff2?/i.test(key)) {
7058 key = key.replace(/.*\//, '');
7059 }
7060 return contentType ? `[${contentType}]${key}` : key;
7061 }
7062 async function resourceToDataURL(resourceUrl, contentType, options) {
7063 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
7064 if (cache[cacheKey] != null) {
7065 return cache[cacheKey];
7066 }
7067 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
7068 if (options.cacheBust) {
7069 // eslint-disable-next-line no-param-reassign
7070 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
7071 }
7072 let dataURL;
7073 try {
7074 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
7075 if (!contentType) {
7076 // eslint-disable-next-line no-param-reassign
7077 contentType = res.headers.get('Content-Type') || '';
7078 }
7079 return getContentFromDataUrl(result);
7080 });
7081 dataURL = makeDataUrl(content, contentType);
7082 }
7083 catch (error) {
7084 dataURL = options.imagePlaceholder || '';
7085 let msg = `Failed to fetch resource: ${resourceUrl}`;
7086 if (error) {
7087 msg = typeof error === 'string' ? error : error.message;
7088 }
7089 if (msg) {
7090 console.warn(msg);
7091 }
7092 }
7093 cache[cacheKey] = dataURL;
7094 return dataURL;
7095 }
7096 //# sourceMappingURL=dataurl.js.map
7097
7098 /***/ }),
7099
7100 /***/ "../node_modules/html-to-image/es/embed-images.js":
7101 /*!********************************************************!*\
7102 !*** ../node_modules/html-to-image/es/embed-images.js ***!
7103 \********************************************************/
7104 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7105
7106 "use strict";
7107 __webpack_require__.r(__webpack_exports__);
7108 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7109 /* harmony export */ embedImages: () => (/* binding */ embedImages)
7110 /* harmony export */ });
7111 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7112 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7113 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7114 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7115
7116
7117
7118
7119 async function embedProp(propName, node, options) {
7120 var _a;
7121 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
7122 if (propValue) {
7123 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
7124 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
7125 return true;
7126 }
7127 return false;
7128 }
7129 async function embedBackground(clonedNode, options) {
7130 ;
7131 (await embedProp('background', clonedNode, options)) ||
7132 (await embedProp('background-image', clonedNode, options));
7133 (await embedProp('mask', clonedNode, options)) ||
7134 (await embedProp('-webkit-mask', clonedNode, options)) ||
7135 (await embedProp('mask-image', clonedNode, options)) ||
7136 (await embedProp('-webkit-mask-image', clonedNode, options));
7137 }
7138 async function embedImageNode(clonedNode, options) {
7139 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
7140 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
7141 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
7142 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
7143 return;
7144 }
7145 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
7146 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
7147 await new Promise((resolve, reject) => {
7148 clonedNode.onload = resolve;
7149 clonedNode.onerror = options.onImageErrorHandler
7150 ? (...attributes) => {
7151 try {
7152 resolve(options.onImageErrorHandler(...attributes));
7153 }
7154 catch (error) {
7155 reject(error);
7156 }
7157 }
7158 : reject;
7159 const image = clonedNode;
7160 if (image.decode) {
7161 image.decode = resolve;
7162 }
7163 if (image.loading === 'lazy') {
7164 image.loading = 'eager';
7165 }
7166 if (isImageElement) {
7167 clonedNode.srcset = '';
7168 clonedNode.src = dataURL;
7169 }
7170 else {
7171 clonedNode.href.baseVal = dataURL;
7172 }
7173 });
7174 }
7175 async function embedChildren(clonedNode, options) {
7176 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
7177 const deferreds = children.map((child) => embedImages(child, options));
7178 await Promise.all(deferreds).then(() => clonedNode);
7179 }
7180 async function embedImages(clonedNode, options) {
7181 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
7182 await embedBackground(clonedNode, options);
7183 await embedImageNode(clonedNode, options);
7184 await embedChildren(clonedNode, options);
7185 }
7186 }
7187 //# sourceMappingURL=embed-images.js.map
7188
7189 /***/ }),
7190
7191 /***/ "../node_modules/html-to-image/es/embed-resources.js":
7192 /*!***********************************************************!*\
7193 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
7194 \***********************************************************/
7195 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7196
7197 "use strict";
7198 __webpack_require__.r(__webpack_exports__);
7199 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7200 /* harmony export */ embed: () => (/* binding */ embed),
7201 /* harmony export */ embedResources: () => (/* binding */ embedResources),
7202 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
7203 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
7204 /* harmony export */ });
7205 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7206 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7207 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7208
7209
7210
7211 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
7212 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
7213 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
7214 function toRegex(url) {
7215 // eslint-disable-next-line no-useless-escape
7216 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
7217 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
7218 }
7219 function parseURLs(cssText) {
7220 const urls = [];
7221 cssText.replace(URL_REGEX, (raw, quotation, url) => {
7222 urls.push(url);
7223 return raw;
7224 });
7225 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
7226 }
7227 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
7228 try {
7229 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
7230 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
7231 let dataURL;
7232 if (getContentFromUrl) {
7233 const content = await getContentFromUrl(resolvedURL);
7234 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
7235 }
7236 else {
7237 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
7238 }
7239 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
7240 }
7241 catch (error) {
7242 // pass
7243 }
7244 return cssText;
7245 }
7246 function filterPreferredFontFormat(str, { preferredFontFormat }) {
7247 return !preferredFontFormat
7248 ? str
7249 : str.replace(FONT_SRC_REGEX, (match) => {
7250 // eslint-disable-next-line no-constant-condition
7251 while (true) {
7252 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
7253 if (!format) {
7254 return '';
7255 }
7256 if (format === preferredFontFormat) {
7257 return `src: ${src};`;
7258 }
7259 }
7260 });
7261 }
7262 function shouldEmbed(url) {
7263 return url.search(URL_REGEX) !== -1;
7264 }
7265 async function embedResources(cssText, baseUrl, options) {
7266 if (!shouldEmbed(cssText)) {
7267 return cssText;
7268 }
7269 const filteredCSSText = filterPreferredFontFormat(cssText, options);
7270 const urls = parseURLs(filteredCSSText);
7271 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
7272 }
7273 //# sourceMappingURL=embed-resources.js.map
7274
7275 /***/ }),
7276
7277 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
7278 /*!**********************************************************!*\
7279 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
7280 \**********************************************************/
7281 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7282
7283 "use strict";
7284 __webpack_require__.r(__webpack_exports__);
7285 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7286 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
7287 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
7288 /* harmony export */ });
7289 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7290 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7291 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7292
7293
7294
7295 const cssFetchCache = {};
7296 async function fetchCSS(url) {
7297 let cache = cssFetchCache[url];
7298 if (cache != null) {
7299 return cache;
7300 }
7301 const res = await fetch(url);
7302 const cssText = await res.text();
7303 cache = { url, cssText };
7304 cssFetchCache[url] = cache;
7305 return cache;
7306 }
7307 async function embedFonts(data, options) {
7308 let cssText = data.cssText;
7309 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
7310 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
7311 const loadFonts = fontLocs.map(async (loc) => {
7312 let url = loc.replace(regexUrl, '$1');
7313 if (!url.startsWith('https://')) {
7314 url = new URL(url, data.url).href;
7315 }
7316 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
7317 cssText = cssText.replace(loc, `url(${result})`);
7318 return [loc, result];
7319 });
7320 });
7321 return Promise.all(loadFonts).then(() => cssText);
7322 }
7323 function parseCSS(source) {
7324 if (source == null) {
7325 return [];
7326 }
7327 const result = [];
7328 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
7329 // strip out comments
7330 let cssText = source.replace(commentsRegex, '');
7331 // eslint-disable-next-line prefer-regex-literals
7332 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
7333 // eslint-disable-next-line no-constant-condition
7334 while (true) {
7335 const matches = keyframesRegex.exec(cssText);
7336 if (matches === null) {
7337 break;
7338 }
7339 result.push(matches[0]);
7340 }
7341 cssText = cssText.replace(keyframesRegex, '');
7342 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
7343 // to match css & media queries together
7344 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
7345 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
7346 // unified regex
7347 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
7348 // eslint-disable-next-line no-constant-condition
7349 while (true) {
7350 let matches = importRegex.exec(cssText);
7351 if (matches === null) {
7352 matches = unifiedRegex.exec(cssText);
7353 if (matches === null) {
7354 break;
7355 }
7356 else {
7357 importRegex.lastIndex = unifiedRegex.lastIndex;
7358 }
7359 }
7360 else {
7361 unifiedRegex.lastIndex = importRegex.lastIndex;
7362 }
7363 result.push(matches[0]);
7364 }
7365 return result;
7366 }
7367 async function getCSSRules(styleSheets, options) {
7368 const ret = [];
7369 const deferreds = [];
7370 // First loop inlines imports
7371 styleSheets.forEach((sheet) => {
7372 if ('cssRules' in sheet) {
7373 try {
7374 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
7375 if (item.type === CSSRule.IMPORT_RULE) {
7376 let importIndex = index + 1;
7377 const url = item.href;
7378 const deferred = fetchCSS(url)
7379 .then((metadata) => embedFonts(metadata, options))
7380 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7381 try {
7382 sheet.insertRule(rule, rule.startsWith('@import')
7383 ? (importIndex += 1)
7384 : sheet.cssRules.length);
7385 }
7386 catch (error) {
7387 console.error('Error inserting rule from remote css', {
7388 rule,
7389 error,
7390 });
7391 }
7392 }))
7393 .catch((e) => {
7394 console.error('Error loading remote css', e.toString());
7395 });
7396 deferreds.push(deferred);
7397 }
7398 });
7399 }
7400 catch (e) {
7401 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
7402 if (sheet.href != null) {
7403 deferreds.push(fetchCSS(sheet.href)
7404 .then((metadata) => embedFonts(metadata, options))
7405 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7406 inline.insertRule(rule, inline.cssRules.length);
7407 }))
7408 .catch((err) => {
7409 console.error('Error loading remote stylesheet', err);
7410 }));
7411 }
7412 console.error('Error inlining remote css file', e);
7413 }
7414 }
7415 });
7416 return Promise.all(deferreds).then(() => {
7417 // Second loop parses rules
7418 styleSheets.forEach((sheet) => {
7419 if ('cssRules' in sheet) {
7420 try {
7421 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
7422 ret.push(item);
7423 });
7424 }
7425 catch (e) {
7426 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
7427 }
7428 }
7429 });
7430 return ret;
7431 });
7432 }
7433 function getWebFontRules(cssRules) {
7434 return cssRules
7435 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
7436 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
7437 }
7438 async function parseWebFontRules(node, options) {
7439 if (node.ownerDocument == null) {
7440 throw new Error('Provided element is not within a Document');
7441 }
7442 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
7443 const cssRules = await getCSSRules(styleSheets, options);
7444 return getWebFontRules(cssRules);
7445 }
7446 function normalizeFontFamily(font) {
7447 return font.trim().replace(/["']/g, '');
7448 }
7449 function getUsedFonts(node) {
7450 const fonts = new Set();
7451 function traverse(node) {
7452 const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;
7453 fontFamily.split(',').forEach((font) => {
7454 fonts.add(normalizeFontFamily(font));
7455 });
7456 Array.from(node.children).forEach((child) => {
7457 if (child instanceof HTMLElement) {
7458 traverse(child);
7459 }
7460 });
7461 }
7462 traverse(node);
7463 return fonts;
7464 }
7465 async function getWebFontCSS(node, options) {
7466 const rules = await parseWebFontRules(node, options);
7467 const usedFonts = getUsedFonts(node);
7468 const cssTexts = await Promise.all(rules
7469 .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))
7470 .map((rule) => {
7471 const baseUrl = rule.parentStyleSheet
7472 ? rule.parentStyleSheet.href
7473 : null;
7474 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
7475 }));
7476 return cssTexts.join('\n');
7477 }
7478 async function embedWebFonts(clonedNode, options) {
7479 const cssText = options.fontEmbedCSS != null
7480 ? options.fontEmbedCSS
7481 : options.skipFonts
7482 ? null
7483 : await getWebFontCSS(clonedNode, options);
7484 if (cssText) {
7485 const styleNode = document.createElement('style');
7486 const sytleContent = document.createTextNode(cssText);
7487 styleNode.appendChild(sytleContent);
7488 if (clonedNode.firstChild) {
7489 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
7490 }
7491 else {
7492 clonedNode.appendChild(styleNode);
7493 }
7494 }
7495 }
7496 //# sourceMappingURL=embed-webfonts.js.map
7497
7498 /***/ }),
7499
7500 /***/ "../node_modules/html-to-image/es/index.js":
7501 /*!*************************************************!*\
7502 !*** ../node_modules/html-to-image/es/index.js ***!
7503 \*************************************************/
7504 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7505
7506 "use strict";
7507 __webpack_require__.r(__webpack_exports__);
7508 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7509 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
7510 /* harmony export */ toBlob: () => (/* binding */ toBlob),
7511 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
7512 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
7513 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
7514 /* harmony export */ toPng: () => (/* binding */ toPng),
7515 /* harmony export */ toSvg: () => (/* binding */ toSvg)
7516 /* harmony export */ });
7517 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
7518 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
7519 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
7520 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
7521 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7522
7523
7524
7525
7526
7527 async function toSvg(node, options = {}) {
7528 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7529 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
7530 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
7531 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
7532 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
7533 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
7534 return datauri;
7535 }
7536 async function toCanvas(node, options = {}) {
7537 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7538 const svg = await toSvg(node, options);
7539 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
7540 const canvas = document.createElement('canvas');
7541 const context = canvas.getContext('2d');
7542 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
7543 const canvasWidth = options.canvasWidth || width;
7544 const canvasHeight = options.canvasHeight || height;
7545 canvas.width = canvasWidth * ratio;
7546 canvas.height = canvasHeight * ratio;
7547 if (!options.skipAutoScale) {
7548 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
7549 }
7550 canvas.style.width = `${canvasWidth}`;
7551 canvas.style.height = `${canvasHeight}`;
7552 if (options.backgroundColor) {
7553 context.fillStyle = options.backgroundColor;
7554 context.fillRect(0, 0, canvas.width, canvas.height);
7555 }
7556 context.drawImage(img, 0, 0, canvas.width, canvas.height);
7557 return canvas;
7558 }
7559 async function toPixelData(node, options = {}) {
7560 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7561 const canvas = await toCanvas(node, options);
7562 const ctx = canvas.getContext('2d');
7563 return ctx.getImageData(0, 0, width, height).data;
7564 }
7565 async function toPng(node, options = {}) {
7566 const canvas = await toCanvas(node, options);
7567 return canvas.toDataURL();
7568 }
7569 async function toJpeg(node, options = {}) {
7570 const canvas = await toCanvas(node, options);
7571 return canvas.toDataURL('image/jpeg', options.quality || 1);
7572 }
7573 async function toBlob(node, options = {}) {
7574 const canvas = await toCanvas(node, options);
7575 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
7576 return blob;
7577 }
7578 async function getFontEmbedCSS(node, options = {}) {
7579 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
7580 }
7581 //# sourceMappingURL=index.js.map
7582
7583 /***/ }),
7584
7585 /***/ "../node_modules/html-to-image/es/mimes.js":
7586 /*!*************************************************!*\
7587 !*** ../node_modules/html-to-image/es/mimes.js ***!
7588 \*************************************************/
7589 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7590
7591 "use strict";
7592 __webpack_require__.r(__webpack_exports__);
7593 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7594 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
7595 /* harmony export */ });
7596 const WOFF = 'application/font-woff';
7597 const JPEG = 'image/jpeg';
7598 const mimes = {
7599 woff: WOFF,
7600 woff2: WOFF,
7601 ttf: 'application/font-truetype',
7602 eot: 'application/vnd.ms-fontobject',
7603 png: 'image/png',
7604 jpg: JPEG,
7605 jpeg: JPEG,
7606 gif: 'image/gif',
7607 tiff: 'image/tiff',
7608 svg: 'image/svg+xml',
7609 webp: 'image/webp',
7610 };
7611 function getExtension(url) {
7612 const match = /\.([^./]*?)$/g.exec(url);
7613 return match ? match[1] : '';
7614 }
7615 function getMimeType(url) {
7616 const extension = getExtension(url).toLowerCase();
7617 return mimes[extension] || '';
7618 }
7619 //# sourceMappingURL=mimes.js.map
7620
7621 /***/ }),
7622
7623 /***/ "../node_modules/html-to-image/es/util.js":
7624 /*!************************************************!*\
7625 !*** ../node_modules/html-to-image/es/util.js ***!
7626 \************************************************/
7627 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7628
7629 "use strict";
7630 __webpack_require__.r(__webpack_exports__);
7631 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7632 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
7633 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
7634 /* harmony export */ createImage: () => (/* binding */ createImage),
7635 /* harmony export */ delay: () => (/* binding */ delay),
7636 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
7637 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
7638 /* harmony export */ getStyleProperties: () => (/* binding */ getStyleProperties),
7639 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
7640 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
7641 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
7642 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
7643 /* harmony export */ toArray: () => (/* binding */ toArray),
7644 /* harmony export */ uuid: () => (/* binding */ uuid)
7645 /* harmony export */ });
7646 function resolveUrl(url, baseUrl) {
7647 // url is absolute already
7648 if (url.match(/^[a-z]+:\/\//i)) {
7649 return url;
7650 }
7651 // url is absolute already, without protocol
7652 if (url.match(/^\/\//)) {
7653 return window.location.protocol + url;
7654 }
7655 // dataURI, mailto:, tel:, etc.
7656 if (url.match(/^[a-z]+:/i)) {
7657 return url;
7658 }
7659 const doc = document.implementation.createHTMLDocument();
7660 const base = doc.createElement('base');
7661 const a = doc.createElement('a');
7662 doc.head.appendChild(base);
7663 doc.body.appendChild(a);
7664 if (baseUrl) {
7665 base.href = baseUrl;
7666 }
7667 a.href = url;
7668 return a.href;
7669 }
7670 const uuid = (() => {
7671 // generate uuid for className of pseudo elements.
7672 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
7673 let counter = 0;
7674 // ref: http://stackoverflow.com/a/6248722/2519373
7675 const random = () =>
7676 // eslint-disable-next-line no-bitwise
7677 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
7678 return () => {
7679 counter += 1;
7680 return `u${random()}${counter}`;
7681 };
7682 })();
7683 function delay(ms) {
7684 return (args) => new Promise((resolve) => {
7685 setTimeout(() => resolve(args), ms);
7686 });
7687 }
7688 function toArray(arrayLike) {
7689 const arr = [];
7690 for (let i = 0, l = arrayLike.length; i < l; i++) {
7691 arr.push(arrayLike[i]);
7692 }
7693 return arr;
7694 }
7695 let styleProps = null;
7696 function getStyleProperties(options = {}) {
7697 if (styleProps) {
7698 return styleProps;
7699 }
7700 if (options.includeStyleProperties) {
7701 styleProps = options.includeStyleProperties;
7702 return styleProps;
7703 }
7704 styleProps = toArray(window.getComputedStyle(document.documentElement));
7705 return styleProps;
7706 }
7707 function px(node, styleProperty) {
7708 const win = node.ownerDocument.defaultView || window;
7709 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
7710 return val ? parseFloat(val.replace('px', '')) : 0;
7711 }
7712 function getNodeWidth(node) {
7713 const leftBorder = px(node, 'border-left-width');
7714 const rightBorder = px(node, 'border-right-width');
7715 return node.clientWidth + leftBorder + rightBorder;
7716 }
7717 function getNodeHeight(node) {
7718 const topBorder = px(node, 'border-top-width');
7719 const bottomBorder = px(node, 'border-bottom-width');
7720 return node.clientHeight + topBorder + bottomBorder;
7721 }
7722 function getImageSize(targetNode, options = {}) {
7723 const width = options.width || getNodeWidth(targetNode);
7724 const height = options.height || getNodeHeight(targetNode);
7725 return { width, height };
7726 }
7727 function getPixelRatio() {
7728 let ratio;
7729 let FINAL_PROCESS;
7730 try {
7731 FINAL_PROCESS = process;
7732 }
7733 catch (e) {
7734 // pass
7735 }
7736 const val = FINAL_PROCESS && FINAL_PROCESS.env
7737 ? FINAL_PROCESS.env.devicePixelRatio
7738 : null;
7739 if (val) {
7740 ratio = parseInt(val, 10);
7741 if (Number.isNaN(ratio)) {
7742 ratio = 1;
7743 }
7744 }
7745 return ratio || window.devicePixelRatio || 1;
7746 }
7747 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
7748 const canvasDimensionLimit = 16384;
7749 function checkCanvasDimensions(canvas) {
7750 if (canvas.width > canvasDimensionLimit ||
7751 canvas.height > canvasDimensionLimit) {
7752 if (canvas.width > canvasDimensionLimit &&
7753 canvas.height > canvasDimensionLimit) {
7754 if (canvas.width > canvas.height) {
7755 canvas.height *= canvasDimensionLimit / canvas.width;
7756 canvas.width = canvasDimensionLimit;
7757 }
7758 else {
7759 canvas.width *= canvasDimensionLimit / canvas.height;
7760 canvas.height = canvasDimensionLimit;
7761 }
7762 }
7763 else if (canvas.width > canvasDimensionLimit) {
7764 canvas.height *= canvasDimensionLimit / canvas.width;
7765 canvas.width = canvasDimensionLimit;
7766 }
7767 else {
7768 canvas.width *= canvasDimensionLimit / canvas.height;
7769 canvas.height = canvasDimensionLimit;
7770 }
7771 }
7772 }
7773 function canvasToBlob(canvas, options = {}) {
7774 if (canvas.toBlob) {
7775 return new Promise((resolve) => {
7776 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
7777 });
7778 }
7779 return new Promise((resolve) => {
7780 const binaryString = window.atob(canvas
7781 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
7782 .split(',')[1]);
7783 const len = binaryString.length;
7784 const binaryArray = new Uint8Array(len);
7785 for (let i = 0; i < len; i += 1) {
7786 binaryArray[i] = binaryString.charCodeAt(i);
7787 }
7788 resolve(new Blob([binaryArray], {
7789 type: options.type ? options.type : 'image/png',
7790 }));
7791 });
7792 }
7793 function createImage(url) {
7794 return new Promise((resolve, reject) => {
7795 const img = new Image();
7796 img.onload = () => {
7797 img.decode().then(() => {
7798 requestAnimationFrame(() => resolve(img));
7799 });
7800 };
7801 img.onerror = reject;
7802 img.crossOrigin = 'anonymous';
7803 img.decoding = 'async';
7804 img.src = url;
7805 });
7806 }
7807 async function svgToDataURL(svg) {
7808 return Promise.resolve()
7809 .then(() => new XMLSerializer().serializeToString(svg))
7810 .then(encodeURIComponent)
7811 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
7812 }
7813 async function nodeToDataURL(node, width, height) {
7814 const xmlns = 'http://www.w3.org/2000/svg';
7815 const svg = document.createElementNS(xmlns, 'svg');
7816 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
7817 svg.setAttribute('width', `${width}`);
7818 svg.setAttribute('height', `${height}`);
7819 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
7820 foreignObject.setAttribute('width', '100%');
7821 foreignObject.setAttribute('height', '100%');
7822 foreignObject.setAttribute('x', '0');
7823 foreignObject.setAttribute('y', '0');
7824 foreignObject.setAttribute('externalResourcesRequired', 'true');
7825 svg.appendChild(foreignObject);
7826 foreignObject.appendChild(node);
7827 return svgToDataURL(svg);
7828 }
7829 const isInstanceOfElement = (node, instance) => {
7830 if (node instanceof instance)
7831 return true;
7832 const nodePrototype = Object.getPrototypeOf(node);
7833 if (nodePrototype === null)
7834 return false;
7835 return (nodePrototype.constructor.name === instance.name ||
7836 isInstanceOfElement(nodePrototype, instance));
7837 };
7838 //# sourceMappingURL=util.js.map
7839
7840 /***/ }),
7841
7842 /***/ "../node_modules/object-assign/index.js":
7843 /*!**********************************************!*\
7844 !*** ../node_modules/object-assign/index.js ***!
7845 \**********************************************/
7846 /***/ ((module) => {
7847
7848 "use strict";
7849 /*
7850 object-assign
7851 (c) Sindre Sorhus
7852 @license MIT
7853 */
7854
7855
7856 /* eslint-disable no-unused-vars */
7857 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7858 var hasOwnProperty = Object.prototype.hasOwnProperty;
7859 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7860
7861 function toObject(val) {
7862 if (val === null || val === undefined) {
7863 throw new TypeError('Object.assign cannot be called with null or undefined');
7864 }
7865
7866 return Object(val);
7867 }
7868
7869 function shouldUseNative() {
7870 try {
7871 if (!Object.assign) {
7872 return false;
7873 }
7874
7875 // Detect buggy property enumeration order in older V8 versions.
7876
7877 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7878 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7879 test1[5] = 'de';
7880 if (Object.getOwnPropertyNames(test1)[0] === '5') {
7881 return false;
7882 }
7883
7884 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7885 var test2 = {};
7886 for (var i = 0; i < 10; i++) {
7887 test2['_' + String.fromCharCode(i)] = i;
7888 }
7889 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7890 return test2[n];
7891 });
7892 if (order2.join('') !== '0123456789') {
7893 return false;
7894 }
7895
7896 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7897 var test3 = {};
7898 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7899 test3[letter] = letter;
7900 });
7901 if (Object.keys(Object.assign({}, test3)).join('') !==
7902 'abcdefghijklmnopqrst') {
7903 return false;
7904 }
7905
7906 return true;
7907 } catch (err) {
7908 // We don't expect any of the above to throw, but better to be safe.
7909 return false;
7910 }
7911 }
7912
7913 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7914 var from;
7915 var to = toObject(target);
7916 var symbols;
7917
7918 for (var s = 1; s < arguments.length; s++) {
7919 from = Object(arguments[s]);
7920
7921 for (var key in from) {
7922 if (hasOwnProperty.call(from, key)) {
7923 to[key] = from[key];
7924 }
7925 }
7926
7927 if (getOwnPropertySymbols) {
7928 symbols = getOwnPropertySymbols(from);
7929 for (var i = 0; i < symbols.length; i++) {
7930 if (propIsEnumerable.call(from, symbols[i])) {
7931 to[symbols[i]] = from[symbols[i]];
7932 }
7933 }
7934 }
7935 }
7936
7937 return to;
7938 };
7939
7940
7941 /***/ }),
7942
7943 /***/ "../node_modules/prop-types/checkPropTypes.js":
7944 /*!****************************************************!*\
7945 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7946 \****************************************************/
7947 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7948
7949 "use strict";
7950 /**
7951 * Copyright (c) 2013-present, Facebook, Inc.
7952 *
7953 * This source code is licensed under the MIT license found in the
7954 * LICENSE file in the root directory of this source tree.
7955 */
7956
7957
7958
7959 var printWarning = function() {};
7960
7961 if (true) {
7962 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7963 var loggedTypeFailures = {};
7964 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7965
7966 printWarning = function(text) {
7967 var message = 'Warning: ' + text;
7968 if (typeof console !== 'undefined') {
7969 console.error(message);
7970 }
7971 try {
7972 // --- Welcome to debugging React ---
7973 // This error was thrown as a convenience so that you can use this stack
7974 // to find the callsite that caused this warning to fire.
7975 throw new Error(message);
7976 } catch (x) { /**/ }
7977 };
7978 }
7979
7980 /**
7981 * Assert that the values match with the type specs.
7982 * Error messages are memorized and will only be shown once.
7983 *
7984 * @param {object} typeSpecs Map of name to a ReactPropType
7985 * @param {object} values Runtime values that need to be type-checked
7986 * @param {string} location e.g. "prop", "context", "child context"
7987 * @param {string} componentName Name of the component for error messages.
7988 * @param {?Function} getStack Returns the component stack.
7989 * @private
7990 */
7991 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7992 if (true) {
7993 for (var typeSpecName in typeSpecs) {
7994 if (has(typeSpecs, typeSpecName)) {
7995 var error;
7996 // Prop type validation may throw. In case they do, we don't want to
7997 // fail the render phase where it didn't fail before. So we log it.
7998 // After these have been cleaned up, we'll let them throw.
7999 try {
8000 // This is intentionally an invariant that gets caught. It's the same
8001 // behavior as without this statement except with a better message.
8002 if (typeof typeSpecs[typeSpecName] !== 'function') {
8003 var err = Error(
8004 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
8005 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
8006 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
8007 );
8008 err.name = 'Invariant Violation';
8009 throw err;
8010 }
8011 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8012 } catch (ex) {
8013 error = ex;
8014 }
8015 if (error && !(error instanceof Error)) {
8016 printWarning(
8017 (componentName || 'React class') + ': type specification of ' +
8018 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
8019 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
8020 'You may have forgotten to pass an argument to the type checker ' +
8021 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
8022 'shape all require an argument).'
8023 );
8024 }
8025 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8026 // Only monitor this failure once because there tends to be a lot of the
8027 // same error.
8028 loggedTypeFailures[error.message] = true;
8029
8030 var stack = getStack ? getStack() : '';
8031
8032 printWarning(
8033 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8034 );
8035 }
8036 }
8037 }
8038 }
8039 }
8040
8041 /**
8042 * Resets warning cache when testing.
8043 *
8044 * @private
8045 */
8046 checkPropTypes.resetWarningCache = function() {
8047 if (true) {
8048 loggedTypeFailures = {};
8049 }
8050 }
8051
8052 module.exports = checkPropTypes;
8053
8054
8055 /***/ }),
8056
8057 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
8058 /*!*************************************************************!*\
8059 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
8060 \*************************************************************/
8061 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8062
8063 "use strict";
8064 /**
8065 * Copyright (c) 2013-present, Facebook, Inc.
8066 *
8067 * This source code is licensed under the MIT license found in the
8068 * LICENSE file in the root directory of this source tree.
8069 */
8070
8071
8072
8073 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8074 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
8075
8076 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
8077 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
8078 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
8079
8080 var printWarning = function() {};
8081
8082 if (true) {
8083 printWarning = function(text) {
8084 var message = 'Warning: ' + text;
8085 if (typeof console !== 'undefined') {
8086 console.error(message);
8087 }
8088 try {
8089 // --- Welcome to debugging React ---
8090 // This error was thrown as a convenience so that you can use this stack
8091 // to find the callsite that caused this warning to fire.
8092 throw new Error(message);
8093 } catch (x) {}
8094 };
8095 }
8096
8097 function emptyFunctionThatReturnsNull() {
8098 return null;
8099 }
8100
8101 module.exports = function(isValidElement, throwOnDirectAccess) {
8102 /* global Symbol */
8103 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8104 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8105
8106 /**
8107 * Returns the iterator method function contained on the iterable object.
8108 *
8109 * Be sure to invoke the function with the iterable as context:
8110 *
8111 * var iteratorFn = getIteratorFn(myIterable);
8112 * if (iteratorFn) {
8113 * var iterator = iteratorFn.call(myIterable);
8114 * ...
8115 * }
8116 *
8117 * @param {?object} maybeIterable
8118 * @return {?function}
8119 */
8120 function getIteratorFn(maybeIterable) {
8121 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8122 if (typeof iteratorFn === 'function') {
8123 return iteratorFn;
8124 }
8125 }
8126
8127 /**
8128 * Collection of methods that allow declaration and validation of props that are
8129 * supplied to React components. Example usage:
8130 *
8131 * var Props = require('ReactPropTypes');
8132 * var MyArticle = React.createClass({
8133 * propTypes: {
8134 * // An optional string prop named "description".
8135 * description: Props.string,
8136 *
8137 * // A required enum prop named "category".
8138 * category: Props.oneOf(['News','Photos']).isRequired,
8139 *
8140 * // A prop named "dialog" that requires an instance of Dialog.
8141 * dialog: Props.instanceOf(Dialog).isRequired
8142 * },
8143 * render: function() { ... }
8144 * });
8145 *
8146 * A more formal specification of how these methods are used:
8147 *
8148 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8149 * decl := ReactPropTypes.{type}(.isRequired)?
8150 *
8151 * Each and every declaration produces a function with the same signature. This
8152 * allows the creation of custom validation functions. For example:
8153 *
8154 * var MyLink = React.createClass({
8155 * propTypes: {
8156 * // An optional string or URI prop named "href".
8157 * href: function(props, propName, componentName) {
8158 * var propValue = props[propName];
8159 * if (propValue != null && typeof propValue !== 'string' &&
8160 * !(propValue instanceof URI)) {
8161 * return new Error(
8162 * 'Expected a string or an URI for ' + propName + ' in ' +
8163 * componentName
8164 * );
8165 * }
8166 * }
8167 * },
8168 * render: function() {...}
8169 * });
8170 *
8171 * @internal
8172 */
8173
8174 var ANONYMOUS = '<<anonymous>>';
8175
8176 // Important!
8177 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8178 var ReactPropTypes = {
8179 array: createPrimitiveTypeChecker('array'),
8180 bigint: createPrimitiveTypeChecker('bigint'),
8181 bool: createPrimitiveTypeChecker('boolean'),
8182 func: createPrimitiveTypeChecker('function'),
8183 number: createPrimitiveTypeChecker('number'),
8184 object: createPrimitiveTypeChecker('object'),
8185 string: createPrimitiveTypeChecker('string'),
8186 symbol: createPrimitiveTypeChecker('symbol'),
8187
8188 any: createAnyTypeChecker(),
8189 arrayOf: createArrayOfTypeChecker,
8190 element: createElementTypeChecker(),
8191 elementType: createElementTypeTypeChecker(),
8192 instanceOf: createInstanceTypeChecker,
8193 node: createNodeChecker(),
8194 objectOf: createObjectOfTypeChecker,
8195 oneOf: createEnumTypeChecker,
8196 oneOfType: createUnionTypeChecker,
8197 shape: createShapeTypeChecker,
8198 exact: createStrictShapeTypeChecker,
8199 };
8200
8201 /**
8202 * inlined Object.is polyfill to avoid requiring consumers ship their own
8203 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8204 */
8205 /*eslint-disable no-self-compare*/
8206 function is(x, y) {
8207 // SameValue algorithm
8208 if (x === y) {
8209 // Steps 1-5, 7-10
8210 // Steps 6.b-6.e: +0 != -0
8211 return x !== 0 || 1 / x === 1 / y;
8212 } else {
8213 // Step 6.a: NaN == NaN
8214 return x !== x && y !== y;
8215 }
8216 }
8217 /*eslint-enable no-self-compare*/
8218
8219 /**
8220 * We use an Error-like object for backward compatibility as people may call
8221 * PropTypes directly and inspect their output. However, we don't use real
8222 * Errors anymore. We don't inspect their stack anyway, and creating them
8223 * is prohibitively expensive if they are created too often, such as what
8224 * happens in oneOfType() for any type before the one that matched.
8225 */
8226 function PropTypeError(message, data) {
8227 this.message = message;
8228 this.data = data && typeof data === 'object' ? data: {};
8229 this.stack = '';
8230 }
8231 // Make `instanceof Error` still work for returned errors.
8232 PropTypeError.prototype = Error.prototype;
8233
8234 function createChainableTypeChecker(validate) {
8235 if (true) {
8236 var manualPropTypeCallCache = {};
8237 var manualPropTypeWarningCount = 0;
8238 }
8239 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8240 componentName = componentName || ANONYMOUS;
8241 propFullName = propFullName || propName;
8242
8243 if (secret !== ReactPropTypesSecret) {
8244 if (throwOnDirectAccess) {
8245 // New behavior only for users of `prop-types` package
8246 var err = new Error(
8247 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8248 'Use `PropTypes.checkPropTypes()` to call them. ' +
8249 'Read more at http://fb.me/use-check-prop-types'
8250 );
8251 err.name = 'Invariant Violation';
8252 throw err;
8253 } else if ( true && typeof console !== 'undefined') {
8254 // Old behavior for people using React.PropTypes
8255 var cacheKey = componentName + ':' + propName;
8256 if (
8257 !manualPropTypeCallCache[cacheKey] &&
8258 // Avoid spamming the console because they are often not actionable except for lib authors
8259 manualPropTypeWarningCount < 3
8260 ) {
8261 printWarning(
8262 'You are manually calling a React.PropTypes validation ' +
8263 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8264 'and will throw in the standalone `prop-types` package. ' +
8265 'You may be seeing this warning due to a third-party PropTypes ' +
8266 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8267 );
8268 manualPropTypeCallCache[cacheKey] = true;
8269 manualPropTypeWarningCount++;
8270 }
8271 }
8272 }
8273 if (props[propName] == null) {
8274 if (isRequired) {
8275 if (props[propName] === null) {
8276 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8277 }
8278 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8279 }
8280 return null;
8281 } else {
8282 return validate(props, propName, componentName, location, propFullName);
8283 }
8284 }
8285
8286 var chainedCheckType = checkType.bind(null, false);
8287 chainedCheckType.isRequired = checkType.bind(null, true);
8288
8289 return chainedCheckType;
8290 }
8291
8292 function createPrimitiveTypeChecker(expectedType) {
8293 function validate(props, propName, componentName, location, propFullName, secret) {
8294 var propValue = props[propName];
8295 var propType = getPropType(propValue);
8296 if (propType !== expectedType) {
8297 // `propValue` being instance of, say, date/regexp, pass the 'object'
8298 // check, but we can offer a more precise error message here rather than
8299 // 'of type `object`'.
8300 var preciseType = getPreciseType(propValue);
8301
8302 return new PropTypeError(
8303 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8304 {expectedType: expectedType}
8305 );
8306 }
8307 return null;
8308 }
8309 return createChainableTypeChecker(validate);
8310 }
8311
8312 function createAnyTypeChecker() {
8313 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8314 }
8315
8316 function createArrayOfTypeChecker(typeChecker) {
8317 function validate(props, propName, componentName, location, propFullName) {
8318 if (typeof typeChecker !== 'function') {
8319 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8320 }
8321 var propValue = props[propName];
8322 if (!Array.isArray(propValue)) {
8323 var propType = getPropType(propValue);
8324 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8325 }
8326 for (var i = 0; i < propValue.length; i++) {
8327 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8328 if (error instanceof Error) {
8329 return error;
8330 }
8331 }
8332 return null;
8333 }
8334 return createChainableTypeChecker(validate);
8335 }
8336
8337 function createElementTypeChecker() {
8338 function validate(props, propName, componentName, location, propFullName) {
8339 var propValue = props[propName];
8340 if (!isValidElement(propValue)) {
8341 var propType = getPropType(propValue);
8342 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8343 }
8344 return null;
8345 }
8346 return createChainableTypeChecker(validate);
8347 }
8348
8349 function createElementTypeTypeChecker() {
8350 function validate(props, propName, componentName, location, propFullName) {
8351 var propValue = props[propName];
8352 if (!ReactIs.isValidElementType(propValue)) {
8353 var propType = getPropType(propValue);
8354 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8355 }
8356 return null;
8357 }
8358 return createChainableTypeChecker(validate);
8359 }
8360
8361 function createInstanceTypeChecker(expectedClass) {
8362 function validate(props, propName, componentName, location, propFullName) {
8363 if (!(props[propName] instanceof expectedClass)) {
8364 var expectedClassName = expectedClass.name || ANONYMOUS;
8365 var actualClassName = getClassName(props[propName]);
8366 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8367 }
8368 return null;
8369 }
8370 return createChainableTypeChecker(validate);
8371 }
8372
8373 function createEnumTypeChecker(expectedValues) {
8374 if (!Array.isArray(expectedValues)) {
8375 if (true) {
8376 if (arguments.length > 1) {
8377 printWarning(
8378 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8379 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8380 );
8381 } else {
8382 printWarning('Invalid argument supplied to oneOf, expected an array.');
8383 }
8384 }
8385 return emptyFunctionThatReturnsNull;
8386 }
8387
8388 function validate(props, propName, componentName, location, propFullName) {
8389 var propValue = props[propName];
8390 for (var i = 0; i < expectedValues.length; i++) {
8391 if (is(propValue, expectedValues[i])) {
8392 return null;
8393 }
8394 }
8395
8396 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8397 var type = getPreciseType(value);
8398 if (type === 'symbol') {
8399 return String(value);
8400 }
8401 return value;
8402 });
8403 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8404 }
8405 return createChainableTypeChecker(validate);
8406 }
8407
8408 function createObjectOfTypeChecker(typeChecker) {
8409 function validate(props, propName, componentName, location, propFullName) {
8410 if (typeof typeChecker !== 'function') {
8411 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8412 }
8413 var propValue = props[propName];
8414 var propType = getPropType(propValue);
8415 if (propType !== 'object') {
8416 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8417 }
8418 for (var key in propValue) {
8419 if (has(propValue, key)) {
8420 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8421 if (error instanceof Error) {
8422 return error;
8423 }
8424 }
8425 }
8426 return null;
8427 }
8428 return createChainableTypeChecker(validate);
8429 }
8430
8431 function createUnionTypeChecker(arrayOfTypeCheckers) {
8432 if (!Array.isArray(arrayOfTypeCheckers)) {
8433 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
8434 return emptyFunctionThatReturnsNull;
8435 }
8436
8437 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8438 var checker = arrayOfTypeCheckers[i];
8439 if (typeof checker !== 'function') {
8440 printWarning(
8441 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8442 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8443 );
8444 return emptyFunctionThatReturnsNull;
8445 }
8446 }
8447
8448 function validate(props, propName, componentName, location, propFullName) {
8449 var expectedTypes = [];
8450 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8451 var checker = arrayOfTypeCheckers[i];
8452 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
8453 if (checkerResult == null) {
8454 return null;
8455 }
8456 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
8457 expectedTypes.push(checkerResult.data.expectedType);
8458 }
8459 }
8460 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8461 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8462 }
8463 return createChainableTypeChecker(validate);
8464 }
8465
8466 function createNodeChecker() {
8467 function validate(props, propName, componentName, location, propFullName) {
8468 if (!isNode(props[propName])) {
8469 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8470 }
8471 return null;
8472 }
8473 return createChainableTypeChecker(validate);
8474 }
8475
8476 function invalidValidatorError(componentName, location, propFullName, key, type) {
8477 return new PropTypeError(
8478 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8479 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8480 );
8481 }
8482
8483 function createShapeTypeChecker(shapeTypes) {
8484 function validate(props, propName, componentName, location, propFullName) {
8485 var propValue = props[propName];
8486 var propType = getPropType(propValue);
8487 if (propType !== 'object') {
8488 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8489 }
8490 for (var key in shapeTypes) {
8491 var checker = shapeTypes[key];
8492 if (typeof checker !== 'function') {
8493 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8494 }
8495 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8496 if (error) {
8497 return error;
8498 }
8499 }
8500 return null;
8501 }
8502 return createChainableTypeChecker(validate);
8503 }
8504
8505 function createStrictShapeTypeChecker(shapeTypes) {
8506 function validate(props, propName, componentName, location, propFullName) {
8507 var propValue = props[propName];
8508 var propType = getPropType(propValue);
8509 if (propType !== 'object') {
8510 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8511 }
8512 // We need to check all keys in case some are required but missing from props.
8513 var allKeys = assign({}, props[propName], shapeTypes);
8514 for (var key in allKeys) {
8515 var checker = shapeTypes[key];
8516 if (has(shapeTypes, key) && typeof checker !== 'function') {
8517 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8518 }
8519 if (!checker) {
8520 return new PropTypeError(
8521 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8522 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8523 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8524 );
8525 }
8526 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8527 if (error) {
8528 return error;
8529 }
8530 }
8531 return null;
8532 }
8533
8534 return createChainableTypeChecker(validate);
8535 }
8536
8537 function isNode(propValue) {
8538 switch (typeof propValue) {
8539 case 'number':
8540 case 'string':
8541 case 'undefined':
8542 return true;
8543 case 'boolean':
8544 return !propValue;
8545 case 'object':
8546 if (Array.isArray(propValue)) {
8547 return propValue.every(isNode);
8548 }
8549 if (propValue === null || isValidElement(propValue)) {
8550 return true;
8551 }
8552
8553 var iteratorFn = getIteratorFn(propValue);
8554 if (iteratorFn) {
8555 var iterator = iteratorFn.call(propValue);
8556 var step;
8557 if (iteratorFn !== propValue.entries) {
8558 while (!(step = iterator.next()).done) {
8559 if (!isNode(step.value)) {
8560 return false;
8561 }
8562 }
8563 } else {
8564 // Iterator will provide entry [k,v] tuples rather than values.
8565 while (!(step = iterator.next()).done) {
8566 var entry = step.value;
8567 if (entry) {
8568 if (!isNode(entry[1])) {
8569 return false;
8570 }
8571 }
8572 }
8573 }
8574 } else {
8575 return false;
8576 }
8577
8578 return true;
8579 default:
8580 return false;
8581 }
8582 }
8583
8584 function isSymbol(propType, propValue) {
8585 // Native Symbol.
8586 if (propType === 'symbol') {
8587 return true;
8588 }
8589
8590 // falsy value can't be a Symbol
8591 if (!propValue) {
8592 return false;
8593 }
8594
8595 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8596 if (propValue['@@toStringTag'] === 'Symbol') {
8597 return true;
8598 }
8599
8600 // Fallback for non-spec compliant Symbols which are polyfilled.
8601 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8602 return true;
8603 }
8604
8605 return false;
8606 }
8607
8608 // Equivalent of `typeof` but with special handling for array and regexp.
8609 function getPropType(propValue) {
8610 var propType = typeof propValue;
8611 if (Array.isArray(propValue)) {
8612 return 'array';
8613 }
8614 if (propValue instanceof RegExp) {
8615 // Old webkits (at least until Android 4.0) return 'function' rather than
8616 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8617 // passes PropTypes.object.
8618 return 'object';
8619 }
8620 if (isSymbol(propType, propValue)) {
8621 return 'symbol';
8622 }
8623 return propType;
8624 }
8625
8626 // This handles more types than `getPropType`. Only used for error messages.
8627 // See `createPrimitiveTypeChecker`.
8628 function getPreciseType(propValue) {
8629 if (typeof propValue === 'undefined' || propValue === null) {
8630 return '' + propValue;
8631 }
8632 var propType = getPropType(propValue);
8633 if (propType === 'object') {
8634 if (propValue instanceof Date) {
8635 return 'date';
8636 } else if (propValue instanceof RegExp) {
8637 return 'regexp';
8638 }
8639 }
8640 return propType;
8641 }
8642
8643 // Returns a string that is postfixed to a warning about an invalid type.
8644 // For example, "undefined" or "of type array"
8645 function getPostfixForTypeWarning(value) {
8646 var type = getPreciseType(value);
8647 switch (type) {
8648 case 'array':
8649 case 'object':
8650 return 'an ' + type;
8651 case 'boolean':
8652 case 'date':
8653 case 'regexp':
8654 return 'a ' + type;
8655 default:
8656 return type;
8657 }
8658 }
8659
8660 // Returns class name of the object, if any.
8661 function getClassName(propValue) {
8662 if (!propValue.constructor || !propValue.constructor.name) {
8663 return ANONYMOUS;
8664 }
8665 return propValue.constructor.name;
8666 }
8667
8668 ReactPropTypes.checkPropTypes = checkPropTypes;
8669 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8670 ReactPropTypes.PropTypes = ReactPropTypes;
8671
8672 return ReactPropTypes;
8673 };
8674
8675
8676 /***/ }),
8677
8678 /***/ "../node_modules/prop-types/index.js":
8679 /*!*******************************************!*\
8680 !*** ../node_modules/prop-types/index.js ***!
8681 \*******************************************/
8682 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8683
8684 /**
8685 * Copyright (c) 2013-present, Facebook, Inc.
8686 *
8687 * This source code is licensed under the MIT license found in the
8688 * LICENSE file in the root directory of this source tree.
8689 */
8690
8691 if (true) {
8692 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8693
8694 // By explicitly using `prop-types` you are opting into new development behavior.
8695 // http://fb.me/prop-types-in-prod
8696 var throwOnDirectAccess = true;
8697 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
8698 } else // removed by dead control flow
8699 {}
8700
8701
8702 /***/ }),
8703
8704 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
8705 /*!**************************************************************!*\
8706 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8707 \**************************************************************/
8708 /***/ ((module) => {
8709
8710 "use strict";
8711 /**
8712 * Copyright (c) 2013-present, Facebook, Inc.
8713 *
8714 * This source code is licensed under the MIT license found in the
8715 * LICENSE file in the root directory of this source tree.
8716 */
8717
8718
8719
8720 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8721
8722 module.exports = ReactPropTypesSecret;
8723
8724
8725 /***/ }),
8726
8727 /***/ "../node_modules/prop-types/lib/has.js":
8728 /*!*********************************************!*\
8729 !*** ../node_modules/prop-types/lib/has.js ***!
8730 \*********************************************/
8731 /***/ ((module) => {
8732
8733 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
8734
8735
8736 /***/ }),
8737
8738 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
8739 /*!************************************************************************************!*\
8740 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
8741 \************************************************************************************/
8742 /***/ ((__unused_webpack_module, exports) => {
8743
8744 "use strict";
8745 /** @license React v16.13.1
8746 * react-is.development.js
8747 *
8748 * Copyright (c) Facebook, Inc. and its affiliates.
8749 *
8750 * This source code is licensed under the MIT license found in the
8751 * LICENSE file in the root directory of this source tree.
8752 */
8753
8754
8755
8756
8757
8758 if (true) {
8759 (function() {
8760 'use strict';
8761
8762 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
8763 // nor polyfill, then a plain number is used for performance.
8764 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
8765 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
8766 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
8767 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
8768 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
8769 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
8770 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
8771 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
8772 // (unstable) APIs that have been removed. Can we remove the symbols?
8773
8774 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
8775 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
8776 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
8777 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
8778 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
8779 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
8780 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
8781 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
8782 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
8783 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
8784 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
8785
8786 function isValidElementType(type) {
8787 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
8788 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);
8789 }
8790
8791 function typeOf(object) {
8792 if (typeof object === 'object' && object !== null) {
8793 var $$typeof = object.$$typeof;
8794
8795 switch ($$typeof) {
8796 case REACT_ELEMENT_TYPE:
8797 var type = object.type;
8798
8799 switch (type) {
8800 case REACT_ASYNC_MODE_TYPE:
8801 case REACT_CONCURRENT_MODE_TYPE:
8802 case REACT_FRAGMENT_TYPE:
8803 case REACT_PROFILER_TYPE:
8804 case REACT_STRICT_MODE_TYPE:
8805 case REACT_SUSPENSE_TYPE:
8806 return type;
8807
8808 default:
8809 var $$typeofType = type && type.$$typeof;
8810
8811 switch ($$typeofType) {
8812 case REACT_CONTEXT_TYPE:
8813 case REACT_FORWARD_REF_TYPE:
8814 case REACT_LAZY_TYPE:
8815 case REACT_MEMO_TYPE:
8816 case REACT_PROVIDER_TYPE:
8817 return $$typeofType;
8818
8819 default:
8820 return $$typeof;
8821 }
8822
8823 }
8824
8825 case REACT_PORTAL_TYPE:
8826 return $$typeof;
8827 }
8828 }
8829
8830 return undefined;
8831 } // AsyncMode is deprecated along with isAsyncMode
8832
8833 var AsyncMode = REACT_ASYNC_MODE_TYPE;
8834 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
8835 var ContextConsumer = REACT_CONTEXT_TYPE;
8836 var ContextProvider = REACT_PROVIDER_TYPE;
8837 var Element = REACT_ELEMENT_TYPE;
8838 var ForwardRef = REACT_FORWARD_REF_TYPE;
8839 var Fragment = REACT_FRAGMENT_TYPE;
8840 var Lazy = REACT_LAZY_TYPE;
8841 var Memo = REACT_MEMO_TYPE;
8842 var Portal = REACT_PORTAL_TYPE;
8843 var Profiler = REACT_PROFILER_TYPE;
8844 var StrictMode = REACT_STRICT_MODE_TYPE;
8845 var Suspense = REACT_SUSPENSE_TYPE;
8846 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
8847
8848 function isAsyncMode(object) {
8849 {
8850 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
8851 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
8852
8853 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.');
8854 }
8855 }
8856
8857 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
8858 }
8859 function isConcurrentMode(object) {
8860 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
8861 }
8862 function isContextConsumer(object) {
8863 return typeOf(object) === REACT_CONTEXT_TYPE;
8864 }
8865 function isContextProvider(object) {
8866 return typeOf(object) === REACT_PROVIDER_TYPE;
8867 }
8868 function isElement(object) {
8869 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8870 }
8871 function isForwardRef(object) {
8872 return typeOf(object) === REACT_FORWARD_REF_TYPE;
8873 }
8874 function isFragment(object) {
8875 return typeOf(object) === REACT_FRAGMENT_TYPE;
8876 }
8877 function isLazy(object) {
8878 return typeOf(object) === REACT_LAZY_TYPE;
8879 }
8880 function isMemo(object) {
8881 return typeOf(object) === REACT_MEMO_TYPE;
8882 }
8883 function isPortal(object) {
8884 return typeOf(object) === REACT_PORTAL_TYPE;
8885 }
8886 function isProfiler(object) {
8887 return typeOf(object) === REACT_PROFILER_TYPE;
8888 }
8889 function isStrictMode(object) {
8890 return typeOf(object) === REACT_STRICT_MODE_TYPE;
8891 }
8892 function isSuspense(object) {
8893 return typeOf(object) === REACT_SUSPENSE_TYPE;
8894 }
8895
8896 exports.AsyncMode = AsyncMode;
8897 exports.ConcurrentMode = ConcurrentMode;
8898 exports.ContextConsumer = ContextConsumer;
8899 exports.ContextProvider = ContextProvider;
8900 exports.Element = Element;
8901 exports.ForwardRef = ForwardRef;
8902 exports.Fragment = Fragment;
8903 exports.Lazy = Lazy;
8904 exports.Memo = Memo;
8905 exports.Portal = Portal;
8906 exports.Profiler = Profiler;
8907 exports.StrictMode = StrictMode;
8908 exports.Suspense = Suspense;
8909 exports.isAsyncMode = isAsyncMode;
8910 exports.isConcurrentMode = isConcurrentMode;
8911 exports.isContextConsumer = isContextConsumer;
8912 exports.isContextProvider = isContextProvider;
8913 exports.isElement = isElement;
8914 exports.isForwardRef = isForwardRef;
8915 exports.isFragment = isFragment;
8916 exports.isLazy = isLazy;
8917 exports.isMemo = isMemo;
8918 exports.isPortal = isPortal;
8919 exports.isProfiler = isProfiler;
8920 exports.isStrictMode = isStrictMode;
8921 exports.isSuspense = isSuspense;
8922 exports.isValidElementType = isValidElementType;
8923 exports.typeOf = typeOf;
8924 })();
8925 }
8926
8927
8928 /***/ }),
8929
8930 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8931 /*!*****************************************************************!*\
8932 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8933 \*****************************************************************/
8934 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8935
8936 "use strict";
8937
8938
8939 if (false) // removed by dead control flow
8940 {} else {
8941 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8942 }
8943
8944
8945 /***/ }),
8946
8947 /***/ "../node_modules/react-dom/client.js":
8948 /*!*******************************************!*\
8949 !*** ../node_modules/react-dom/client.js ***!
8950 \*******************************************/
8951 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8952
8953 "use strict";
8954
8955
8956 var m = __webpack_require__(/*! react-dom */ "react-dom");
8957 if (false) // removed by dead control flow
8958 {} else {
8959 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8960 exports.createRoot = function(c, o) {
8961 i.usingClientEntryPoint = true;
8962 try {
8963 return m.createRoot(c, o);
8964 } finally {
8965 i.usingClientEntryPoint = false;
8966 }
8967 };
8968 exports.hydrateRoot = function(c, h, o) {
8969 i.usingClientEntryPoint = true;
8970 try {
8971 return m.hydrateRoot(c, h, o);
8972 } finally {
8973 i.usingClientEntryPoint = false;
8974 }
8975 };
8976 }
8977
8978
8979 /***/ }),
8980
8981 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8982 /*!**************************************************************!*\
8983 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8984 \**************************************************************/
8985 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8986
8987 "use strict";
8988
8989
8990 Object.defineProperty(exports, "__esModule", ({
8991 value: true
8992 }));
8993 Object.defineProperty(exports, "DraggableCore", ({
8994 enumerable: true,
8995 get: function () {
8996 return _DraggableCore.default;
8997 }
8998 }));
8999 exports["default"] = void 0;
9000 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9001 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9002 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9003 var _clsx = __webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.js");
9004 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9005 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9006 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9007 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
9008 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9009 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9010 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9011 function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
9012 function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9013 function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9014 function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/
9015 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
9016 /*:: import type {Element as ReactElement} from 'react';*/
9017 /*:: type DraggableState = {
9018 dragging: boolean,
9019 dragged: boolean,
9020 x: number, y: number,
9021 slackX: number, slackY: number,
9022 isElementSVG: boolean,
9023 prevPropsPosition: ?ControlPosition,
9024 };*/
9025 /*:: export type DraggableDefaultProps = {
9026 ...DraggableCoreDefaultProps,
9027 axis: 'both' | 'x' | 'y' | 'none',
9028 bounds: Bounds | string | false,
9029 defaultClassName: string,
9030 defaultClassNameDragging: string,
9031 defaultClassNameDragged: string,
9032 defaultPosition: ControlPosition,
9033 scale: number,
9034 };*/
9035 /*:: export type DraggableProps = {
9036 ...DraggableCoreProps,
9037 ...DraggableDefaultProps,
9038 positionOffset: PositionOffsetControlPosition,
9039 position: ControlPosition,
9040 };*/
9041 //
9042 // Define <Draggable>
9043 //
9044 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
9045 // React 16.3+
9046 // Arity (props, state)
9047 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
9048 let {
9049 position
9050 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
9051 let {
9052 prevPropsPosition
9053 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
9054 // Set x/y if a new position is provided in props that is different than the previous.
9055 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
9056 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
9057 position,
9058 prevPropsPosition
9059 });
9060 return {
9061 x: position.x,
9062 y: position.y,
9063 prevPropsPosition: {
9064 ...position
9065 }
9066 };
9067 }
9068 return null;
9069 }
9070 constructor(props /*: DraggableProps*/) {
9071 super(props);
9072 _defineProperty(this, "onDragStart", (e, coreData) => {
9073 (0, _log.default)('Draggable: onDragStart: %j', coreData);
9074
9075 // Short-circuit if user's callback killed it.
9076 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
9077 // Kills start event on core as well, so move handlers are never bound.
9078 if (shouldStart === false) return false;
9079 this.setState({
9080 dragging: true,
9081 dragged: true
9082 });
9083 });
9084 _defineProperty(this, "onDrag", (e, coreData) => {
9085 if (!this.state.dragging) return false;
9086 (0, _log.default)('Draggable: onDrag: %j', coreData);
9087 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
9088 const newState = {
9089 x: uiData.x,
9090 y: uiData.y,
9091 slackX: 0,
9092 slackY: 0
9093 };
9094
9095 // Keep within bounds.
9096 if (this.props.bounds) {
9097 // Save original x and y.
9098 const {
9099 x,
9100 y
9101 } = newState;
9102
9103 // Add slack to the values used to calculate bound position. This will ensure that if
9104 // we start removing slack, the element won't react to it right away until it's been
9105 // completely removed.
9106 newState.x += this.state.slackX;
9107 newState.y += this.state.slackY;
9108
9109 // Get bound position. This will ceil/floor the x and y within the boundaries.
9110 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
9111 newState.x = newStateX;
9112 newState.y = newStateY;
9113
9114 // Recalculate slack by noting how much was shaved by the boundPosition handler.
9115 newState.slackX = this.state.slackX + (x - newState.x);
9116 newState.slackY = this.state.slackY + (y - newState.y);
9117
9118 // Update the event we fire to reflect what really happened after bounds took effect.
9119 uiData.x = newState.x;
9120 uiData.y = newState.y;
9121 uiData.deltaX = newState.x - this.state.x;
9122 uiData.deltaY = newState.y - this.state.y;
9123 }
9124
9125 // Short-circuit if user's callback killed it.
9126 const shouldUpdate = this.props.onDrag(e, uiData);
9127 if (shouldUpdate === false) return false;
9128 this.setState(newState);
9129 });
9130 _defineProperty(this, "onDragStop", (e, coreData) => {
9131 if (!this.state.dragging) return false;
9132
9133 // Short-circuit if user's callback killed it.
9134 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
9135 if (shouldContinue === false) return false;
9136 (0, _log.default)('Draggable: onDragStop: %j', coreData);
9137 const newState /*: Partial<DraggableState>*/ = {
9138 dragging: false,
9139 slackX: 0,
9140 slackY: 0
9141 };
9142
9143 // If this is a controlled component, the result of this operation will be to
9144 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
9145 const controlled = Boolean(this.props.position);
9146 if (controlled) {
9147 const {
9148 x,
9149 y
9150 } = this.props.position;
9151 newState.x = x;
9152 newState.y = y;
9153 }
9154 this.setState(newState);
9155 });
9156 this.state = {
9157 // Whether or not we are currently dragging.
9158 dragging: false,
9159 // Whether or not we have been dragged before.
9160 dragged: false,
9161 // Current transform x and y.
9162 x: props.position ? props.position.x : props.defaultPosition.x,
9163 y: props.position ? props.position.y : props.defaultPosition.y,
9164 prevPropsPosition: {
9165 ...props.position
9166 },
9167 // Used for compensating for out-of-bounds drags
9168 slackX: 0,
9169 slackY: 0,
9170 // Can only determine if SVG after mounting
9171 isElementSVG: false
9172 };
9173 if (props.position && !(props.onDrag || props.onStop)) {
9174 // eslint-disable-next-line no-console
9175 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.');
9176 }
9177 }
9178 componentDidMount() {
9179 // Check to see if the element passed is an instanceof SVGElement
9180 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
9181 this.setState({
9182 isElementSVG: true
9183 });
9184 }
9185 }
9186 componentWillUnmount() {
9187 if (this.state.dragging) {
9188 this.setState({
9189 dragging: false
9190 }); // prevents invariant if unmounted while dragging
9191 }
9192 }
9193
9194 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9195 // the underlying DOM node ourselves. See the README for more information.
9196 findDOMNode() /*: ?HTMLElement*/{
9197 return this.props?.nodeRef?.current ?? _reactDom.default.findDOMNode(this);
9198 }
9199 render() /*: ReactElement<any>*/{
9200 const {
9201 axis,
9202 bounds,
9203 children,
9204 defaultPosition,
9205 defaultClassName,
9206 defaultClassNameDragging,
9207 defaultClassNameDragged,
9208 position,
9209 positionOffset,
9210 scale,
9211 ...draggableCoreProps
9212 } = this.props;
9213 let style = {};
9214 let svgTransform = null;
9215
9216 // If this is controlled, we don't want to move it - unless it's dragging.
9217 const controlled = Boolean(position);
9218 const draggable = !controlled || this.state.dragging;
9219 const validPosition = position || defaultPosition;
9220 const transformOpts = {
9221 // Set left if horizontal drag is enabled
9222 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
9223 // Set top if vertical drag is enabled
9224 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
9225 };
9226
9227 // If this element was SVG, we use the `transform` attribute.
9228 if (this.state.isElementSVG) {
9229 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
9230 } else {
9231 // Add a CSS transform to move the element around. This allows us to move the element around
9232 // without worrying about whether or not it is relatively or absolutely positioned.
9233 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
9234 // has a clean slate.
9235 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
9236 }
9237
9238 // Mark with class while dragging
9239 const className = (0, _clsx.clsx)(children.props.className || '', defaultClassName, {
9240 [defaultClassNameDragging]: this.state.dragging,
9241 [defaultClassNameDragged]: this.state.dragged
9242 });
9243
9244 // Reuse the child provided
9245 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9246 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
9247 onStart: this.onDragStart,
9248 onDrag: this.onDrag,
9249 onStop: this.onDragStop
9250 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
9251 className: className,
9252 style: {
9253 ...children.props.style,
9254 ...style
9255 },
9256 transform: svgTransform
9257 }));
9258 }
9259 }
9260 exports["default"] = Draggable;
9261 _defineProperty(Draggable, "displayName", 'Draggable');
9262 _defineProperty(Draggable, "propTypes", {
9263 // Accepts all props <DraggableCore> accepts.
9264 ..._DraggableCore.default.propTypes,
9265 /**
9266 * `axis` determines which axis the draggable can move.
9267 *
9268 * Note that all callbacks will still return data as normal. This only
9269 * controls flushing to the DOM.
9270 *
9271 * 'both' allows movement horizontally and vertically.
9272 * 'x' limits movement to horizontal axis.
9273 * 'y' limits movement to vertical axis.
9274 * 'none' limits all movement.
9275 *
9276 * Defaults to 'both'.
9277 */
9278 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
9279 /**
9280 * `bounds` determines the range of movement available to the element.
9281 * Available values are:
9282 *
9283 * 'parent' restricts movement within the Draggable's parent node.
9284 *
9285 * Alternatively, pass an object with the following properties, all of which are optional:
9286 *
9287 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
9288 *
9289 * All values are in px.
9290 *
9291 * Example:
9292 *
9293 * ```jsx
9294 * let App = React.createClass({
9295 * render: function () {
9296 * return (
9297 * <Draggable bounds={{right: 300, bottom: 300}}>
9298 * <div>Content</div>
9299 * </Draggable>
9300 * );
9301 * }
9302 * });
9303 * ```
9304 */
9305 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
9306 left: _propTypes.default.number,
9307 right: _propTypes.default.number,
9308 top: _propTypes.default.number,
9309 bottom: _propTypes.default.number
9310 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
9311 defaultClassName: _propTypes.default.string,
9312 defaultClassNameDragging: _propTypes.default.string,
9313 defaultClassNameDragged: _propTypes.default.string,
9314 /**
9315 * `defaultPosition` specifies the x and y that the dragged item should start at
9316 *
9317 * Example:
9318 *
9319 * ```jsx
9320 * let App = React.createClass({
9321 * render: function () {
9322 * return (
9323 * <Draggable defaultPosition={{x: 25, y: 25}}>
9324 * <div>I start with transformX: 25px and transformY: 25px;</div>
9325 * </Draggable>
9326 * );
9327 * }
9328 * });
9329 * ```
9330 */
9331 defaultPosition: _propTypes.default.shape({
9332 x: _propTypes.default.number,
9333 y: _propTypes.default.number
9334 }),
9335 positionOffset: _propTypes.default.shape({
9336 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
9337 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
9338 }),
9339 /**
9340 * `position`, if present, defines the current position of the element.
9341 *
9342 * This is similar to how form elements in React work - if no `position` is supplied, the component
9343 * is uncontrolled.
9344 *
9345 * Example:
9346 *
9347 * ```jsx
9348 * let App = React.createClass({
9349 * render: function () {
9350 * return (
9351 * <Draggable position={{x: 25, y: 25}}>
9352 * <div>I start with transformX: 25px and transformY: 25px;</div>
9353 * </Draggable>
9354 * );
9355 * }
9356 * });
9357 * ```
9358 */
9359 position: _propTypes.default.shape({
9360 x: _propTypes.default.number,
9361 y: _propTypes.default.number
9362 }),
9363 /**
9364 * These properties should be defined on the child, not here.
9365 */
9366 className: _shims.dontSetMe,
9367 style: _shims.dontSetMe,
9368 transform: _shims.dontSetMe
9369 });
9370 _defineProperty(Draggable, "defaultProps", {
9371 ..._DraggableCore.default.defaultProps,
9372 axis: 'both',
9373 bounds: false,
9374 defaultClassName: 'react-draggable',
9375 defaultClassNameDragging: 'react-draggable-dragging',
9376 defaultClassNameDragged: 'react-draggable-dragged',
9377 defaultPosition: {
9378 x: 0,
9379 y: 0
9380 },
9381 scale: 1
9382 });
9383
9384 /***/ }),
9385
9386 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
9387 /*!******************************************************************!*\
9388 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
9389 \******************************************************************/
9390 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9391
9392 "use strict";
9393
9394
9395 Object.defineProperty(exports, "__esModule", ({
9396 value: true
9397 }));
9398 exports["default"] = void 0;
9399 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9400 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9401 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9402 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9403 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9404 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9405 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9406 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9407 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9408 function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9409 function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9410 function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9411 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
9412 /*:: import type {Element as ReactElement} from 'react';*/
9413 // Simple abstraction for dragging events names.
9414 const eventsFor = {
9415 touch: {
9416 start: 'touchstart',
9417 move: 'touchmove',
9418 stop: 'touchend'
9419 },
9420 mouse: {
9421 start: 'mousedown',
9422 move: 'mousemove',
9423 stop: 'mouseup'
9424 }
9425 };
9426
9427 // Default to mouse events.
9428 let dragEventFor = eventsFor.mouse;
9429 /*:: export type DraggableData = {
9430 node: HTMLElement,
9431 x: number, y: number,
9432 deltaX: number, deltaY: number,
9433 lastX: number, lastY: number,
9434 };*/
9435 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
9436 /*:: export type ControlPosition = {x: number, y: number};*/
9437 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
9438 /*:: export type DraggableCoreDefaultProps = {
9439 allowAnyClick: boolean,
9440 allowMobileScroll: boolean,
9441 disabled: boolean,
9442 enableUserSelectHack: boolean,
9443 onStart: DraggableEventHandler,
9444 onDrag: DraggableEventHandler,
9445 onStop: DraggableEventHandler,
9446 onMouseDown: (e: MouseEvent) => void,
9447 scale: number,
9448 };*/
9449 /*:: export type DraggableCoreProps = {
9450 ...DraggableCoreDefaultProps,
9451 cancel: string,
9452 children: ReactElement<any>,
9453 offsetParent: HTMLElement,
9454 grid: [number, number],
9455 handle: string,
9456 nodeRef?: ?React.ElementRef<any>,
9457 };*/
9458 //
9459 // Define <DraggableCore>.
9460 //
9461 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
9462 // work well with libraries that require more control over the element.
9463 //
9464
9465 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
9466 constructor() {
9467 super(...arguments);
9468 _defineProperty(this, "dragging", false);
9469 // Used while dragging to determine deltas.
9470 _defineProperty(this, "lastX", NaN);
9471 _defineProperty(this, "lastY", NaN);
9472 _defineProperty(this, "touchIdentifier", null);
9473 _defineProperty(this, "mounted", false);
9474 _defineProperty(this, "handleDragStart", e => {
9475 // Make it possible to attach event handlers on top of this one.
9476 this.props.onMouseDown(e);
9477
9478 // Only accept left-clicks.
9479 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
9480
9481 // Get nodes. Be sure to grab relative document (could be iframed)
9482 const thisNode = this.findDOMNode();
9483 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
9484 throw new Error('<DraggableCore> not mounted on DragStart!');
9485 }
9486 const {
9487 ownerDocument
9488 } = thisNode;
9489
9490 // Short circuit if handle or cancel prop was provided and selector doesn't match.
9491 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)) {
9492 return;
9493 }
9494
9495 // Prevent scrolling on mobile devices, like ipad/iphone.
9496 // Important that this is after handle/cancel.
9497 if (e.type === 'touchstart' && !this.props.allowMobileScroll) e.preventDefault();
9498
9499 // Set touch identifier in component state if this is a touch event. This allows us to
9500 // distinguish between individual touches on multitouch screens by identifying which
9501 // touchpoint was set to this element.
9502 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
9503 this.touchIdentifier = touchIdentifier;
9504
9505 // Get the current drag point from the event. This is used as the offset.
9506 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
9507 if (position == null) return; // not possible but satisfies flow
9508 const {
9509 x,
9510 y
9511 } = position;
9512
9513 // Create an event object with all the data parents need to make a decision here.
9514 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9515 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
9516
9517 // Call event handler. If it returns explicit false, cancel.
9518 (0, _log.default)('calling', this.props.onStart);
9519 const shouldUpdate = this.props.onStart(e, coreEvent);
9520 if (shouldUpdate === false || this.mounted === false) return;
9521
9522 // Add a style to the body to disable user-select. This prevents text from
9523 // being selected all over the page.
9524 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
9525
9526 // Initiate dragging. Set the current x and y as offsets
9527 // so we know how much we've moved during the drag. This allows us
9528 // to drag elements around even if they have been moved, without issue.
9529 this.dragging = true;
9530 this.lastX = x;
9531 this.lastY = y;
9532
9533 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
9534 // this element. We use different events depending on whether or not we have detected that this
9535 // is a touch-capable device.
9536 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
9537 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
9538 });
9539 _defineProperty(this, "handleDrag", e => {
9540 // Get the current drag point from the event. This is used as the offset.
9541 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9542 if (position == null) return;
9543 let {
9544 x,
9545 y
9546 } = position;
9547
9548 // Snap to grid if prop has been provided
9549 if (Array.isArray(this.props.grid)) {
9550 let deltaX = x - this.lastX,
9551 deltaY = y - this.lastY;
9552 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9553 if (!deltaX && !deltaY) return; // skip useless drag
9554 x = this.lastX + deltaX, y = this.lastY + deltaY;
9555 }
9556 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9557 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
9558
9559 // Call event handler. If it returns explicit false, trigger end.
9560 const shouldUpdate = this.props.onDrag(e, coreEvent);
9561 if (shouldUpdate === false || this.mounted === false) {
9562 try {
9563 // $FlowIgnore
9564 this.handleDragStop(new MouseEvent('mouseup'));
9565 } catch (err) {
9566 // Old browsers
9567 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
9568 // I see why this insanity was deprecated
9569 // $FlowIgnore
9570 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
9571 this.handleDragStop(event);
9572 }
9573 return;
9574 }
9575 this.lastX = x;
9576 this.lastY = y;
9577 });
9578 _defineProperty(this, "handleDragStop", e => {
9579 if (!this.dragging) return;
9580 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9581 if (position == null) return;
9582 let {
9583 x,
9584 y
9585 } = position;
9586
9587 // Snap to grid if prop has been provided
9588 if (Array.isArray(this.props.grid)) {
9589 let deltaX = x - this.lastX || 0;
9590 let deltaY = y - this.lastY || 0;
9591 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9592 x = this.lastX + deltaX, y = this.lastY + deltaY;
9593 }
9594 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9595
9596 // Call event handler
9597 const shouldContinue = this.props.onStop(e, coreEvent);
9598 if (shouldContinue === false || this.mounted === false) return false;
9599 const thisNode = this.findDOMNode();
9600 if (thisNode) {
9601 // Remove user-select hack
9602 if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(thisNode.ownerDocument);
9603 }
9604 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
9605
9606 // Reset the el.
9607 this.dragging = false;
9608 this.lastX = NaN;
9609 this.lastY = NaN;
9610 if (thisNode) {
9611 // Remove event handlers
9612 (0, _log.default)('DraggableCore: Removing handlers');
9613 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
9614 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
9615 }
9616 });
9617 _defineProperty(this, "onMouseDown", e => {
9618 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
9619
9620 return this.handleDragStart(e);
9621 });
9622 _defineProperty(this, "onMouseUp", e => {
9623 dragEventFor = eventsFor.mouse;
9624 return this.handleDragStop(e);
9625 });
9626 // Same as onMouseDown (start drag), but now consider this a touch device.
9627 _defineProperty(this, "onTouchStart", e => {
9628 // We're on a touch device now, so change the event handlers
9629 dragEventFor = eventsFor.touch;
9630 return this.handleDragStart(e);
9631 });
9632 _defineProperty(this, "onTouchEnd", e => {
9633 // We're on a touch device now, so change the event handlers
9634 dragEventFor = eventsFor.touch;
9635 return this.handleDragStop(e);
9636 });
9637 }
9638 componentDidMount() {
9639 this.mounted = true;
9640 // Touch handlers must be added with {passive: false} to be cancelable.
9641 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9642 const thisNode = this.findDOMNode();
9643 if (thisNode) {
9644 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9645 passive: false
9646 });
9647 }
9648 }
9649 componentWillUnmount() {
9650 this.mounted = false;
9651 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
9652 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
9653 const thisNode = this.findDOMNode();
9654 if (thisNode) {
9655 const {
9656 ownerDocument
9657 } = thisNode;
9658 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
9659 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
9660 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
9661 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
9662 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9663 passive: false
9664 });
9665 if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(ownerDocument);
9666 }
9667 }
9668
9669 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9670 // the underlying DOM node ourselves. See the README for more information.
9671 findDOMNode() /*: ?HTMLElement*/{
9672 return this.props?.nodeRef ? this.props?.nodeRef?.current : _reactDom.default.findDOMNode(this);
9673 }
9674 render() /*: React.Element<any>*/{
9675 // Reuse the child provided
9676 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9677 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
9678 // Note: mouseMove handler is attached to document so it will still function
9679 // when the user drags quickly and leaves the bounds of the element.
9680 onMouseDown: this.onMouseDown,
9681 onMouseUp: this.onMouseUp,
9682 // onTouchStart is added on `componentDidMount` so they can be added with
9683 // {passive: false}, which allows it to cancel. See
9684 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9685 onTouchEnd: this.onTouchEnd
9686 });
9687 }
9688 }
9689 exports["default"] = DraggableCore;
9690 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
9691 _defineProperty(DraggableCore, "propTypes", {
9692 /**
9693 * `allowAnyClick` allows dragging using any mouse button.
9694 * By default, we only accept the left button.
9695 *
9696 * Defaults to `false`.
9697 */
9698 allowAnyClick: _propTypes.default.bool,
9699 /**
9700 * `allowMobileScroll` turns off cancellation of the 'touchstart' event
9701 * on mobile devices. Only enable this if you are having trouble with click
9702 * events. Prefer using 'handle' / 'cancel' instead.
9703 *
9704 * Defaults to `false`.
9705 */
9706 allowMobileScroll: _propTypes.default.bool,
9707 children: _propTypes.default.node.isRequired,
9708 /**
9709 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
9710 * with the exception of `onMouseDown`, will not fire.
9711 */
9712 disabled: _propTypes.default.bool,
9713 /**
9714 * By default, we add 'user-select:none' attributes to the document body
9715 * to prevent ugly text selection during drag. If this is causing problems
9716 * for your app, set this to `false`.
9717 */
9718 enableUserSelectHack: _propTypes.default.bool,
9719 /**
9720 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
9721 * instead of using the parent node.
9722 */
9723 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
9724 if (props[propName] && props[propName].nodeType !== 1) {
9725 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
9726 }
9727 },
9728 /**
9729 * `grid` specifies the x and y that dragging should snap to.
9730 */
9731 grid: _propTypes.default.arrayOf(_propTypes.default.number),
9732 /**
9733 * `handle` specifies a selector to be used as the handle that initiates drag.
9734 *
9735 * Example:
9736 *
9737 * ```jsx
9738 * let App = React.createClass({
9739 * render: function () {
9740 * return (
9741 * <Draggable handle=".handle">
9742 * <div>
9743 * <div className="handle">Click me to drag</div>
9744 * <div>This is some other content</div>
9745 * </div>
9746 * </Draggable>
9747 * );
9748 * }
9749 * });
9750 * ```
9751 */
9752 handle: _propTypes.default.string,
9753 /**
9754 * `cancel` specifies a selector to be used to prevent drag initialization.
9755 *
9756 * Example:
9757 *
9758 * ```jsx
9759 * let App = React.createClass({
9760 * render: function () {
9761 * return(
9762 * <Draggable cancel=".cancel">
9763 * <div>
9764 * <div className="cancel">You can't drag from here</div>
9765 * <div>Dragging here works fine</div>
9766 * </div>
9767 * </Draggable>
9768 * );
9769 * }
9770 * });
9771 * ```
9772 */
9773 cancel: _propTypes.default.string,
9774 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
9775 * Unfortunately, in order for <Draggable> to work properly, we need raw access
9776 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
9777 * as in this example:
9778 *
9779 * function MyComponent() {
9780 * const nodeRef = React.useRef(null);
9781 * return (
9782 * <Draggable nodeRef={nodeRef}>
9783 * <div ref={nodeRef}>Example Target</div>
9784 * </Draggable>
9785 * );
9786 * }
9787 *
9788 * This can be used for arbitrarily nested components, so long as the ref ends up
9789 * pointing to the actual child DOM node and not a custom component.
9790 */
9791 nodeRef: _propTypes.default.object,
9792 /**
9793 * Called when dragging starts.
9794 * If this function returns the boolean false, dragging will be canceled.
9795 */
9796 onStart: _propTypes.default.func,
9797 /**
9798 * Called while dragging.
9799 * If this function returns the boolean false, dragging will be canceled.
9800 */
9801 onDrag: _propTypes.default.func,
9802 /**
9803 * Called when dragging stops.
9804 * If this function returns the boolean false, the drag will remain active.
9805 */
9806 onStop: _propTypes.default.func,
9807 /**
9808 * A workaround option which can be passed if onMouseDown needs to be accessed,
9809 * since it'll always be blocked (as there is internal use of onMouseDown)
9810 */
9811 onMouseDown: _propTypes.default.func,
9812 /**
9813 * `scale`, if set, applies scaling while dragging an element
9814 */
9815 scale: _propTypes.default.number,
9816 /**
9817 * These properties should be defined on the child, not here.
9818 */
9819 className: _shims.dontSetMe,
9820 style: _shims.dontSetMe,
9821 transform: _shims.dontSetMe
9822 });
9823 _defineProperty(DraggableCore, "defaultProps", {
9824 allowAnyClick: false,
9825 // by default only accept left click
9826 allowMobileScroll: false,
9827 disabled: false,
9828 enableUserSelectHack: true,
9829 onStart: function () {},
9830 onDrag: function () {},
9831 onStop: function () {},
9832 onMouseDown: function () {},
9833 scale: 1
9834 });
9835
9836 /***/ }),
9837
9838 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
9839 /*!********************************************************!*\
9840 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
9841 \********************************************************/
9842 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9843
9844 "use strict";
9845
9846
9847 const {
9848 default: Draggable,
9849 DraggableCore
9850 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
9851
9852 // 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'.
9853 // See https://github.com/mzabriskie/react-draggable/pull/254
9854 // and https://github.com/mzabriskie/react-draggable/issues/266
9855 module.exports = Draggable;
9856 module.exports["default"] = Draggable;
9857 module.exports.DraggableCore = DraggableCore;
9858
9859 /***/ }),
9860
9861 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
9862 /*!*****************************************************************!*\
9863 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
9864 \*****************************************************************/
9865 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9866
9867 "use strict";
9868
9869
9870 Object.defineProperty(exports, "__esModule", ({
9871 value: true
9872 }));
9873 exports.addClassName = addClassName;
9874 exports.addEvent = addEvent;
9875 exports.addUserSelectStyles = addUserSelectStyles;
9876 exports.createCSSTransform = createCSSTransform;
9877 exports.createSVGTransform = createSVGTransform;
9878 exports.getTouch = getTouch;
9879 exports.getTouchIdentifier = getTouchIdentifier;
9880 exports.getTranslation = getTranslation;
9881 exports.innerHeight = innerHeight;
9882 exports.innerWidth = innerWidth;
9883 exports.matchesSelector = matchesSelector;
9884 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
9885 exports.offsetXYFromParent = offsetXYFromParent;
9886 exports.outerHeight = outerHeight;
9887 exports.outerWidth = outerWidth;
9888 exports.removeClassName = removeClassName;
9889 exports.removeEvent = removeEvent;
9890 exports.scheduleRemoveUserSelectStyles = scheduleRemoveUserSelectStyles;
9891 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9892 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
9893 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9894 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
9895 let matchesSelectorFunc = '';
9896 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
9897 if (!matchesSelectorFunc) {
9898 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
9899 // $FlowIgnore: Doesn't think elements are indexable
9900 return (0, _shims.isFunction)(el[method]);
9901 });
9902 }
9903
9904 // Might not be found entirely (not an Element?) - in that case, bail
9905 // $FlowIgnore: Doesn't think elements are indexable
9906 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
9907
9908 // $FlowIgnore: Doesn't think elements are indexable
9909 return el[matchesSelectorFunc](selector);
9910 }
9911
9912 // Works up the tree to the draggable itself attempting to match selector.
9913 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
9914 let node = el;
9915 do {
9916 if (matchesSelector(node, selector)) return true;
9917 if (node === baseNode) return false;
9918 // $FlowIgnore[incompatible-type]
9919 node = node.parentNode;
9920 } while (node);
9921 return false;
9922 }
9923 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9924 if (!el) return;
9925 const options = {
9926 capture: true,
9927 ...inputOptions
9928 };
9929 // $FlowIgnore[method-unbinding]
9930 if (el.addEventListener) {
9931 el.addEventListener(event, handler, options);
9932 } else if (el.attachEvent) {
9933 el.attachEvent('on' + event, handler);
9934 } else {
9935 // $FlowIgnore: Doesn't think elements are indexable
9936 el['on' + event] = handler;
9937 }
9938 }
9939 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9940 if (!el) return;
9941 const options = {
9942 capture: true,
9943 ...inputOptions
9944 };
9945 // $FlowIgnore[method-unbinding]
9946 if (el.removeEventListener) {
9947 el.removeEventListener(event, handler, options);
9948 } else if (el.detachEvent) {
9949 el.detachEvent('on' + event, handler);
9950 } else {
9951 // $FlowIgnore: Doesn't think elements are indexable
9952 el['on' + event] = null;
9953 }
9954 }
9955 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9956 // This is deliberately excluding margin for our calculations, since we are using
9957 // offsetTop which is including margin. See getBoundPosition
9958 let height = node.clientHeight;
9959 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9960 height += (0, _shims.int)(computedStyle.borderTopWidth);
9961 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9962 return height;
9963 }
9964 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9965 // This is deliberately excluding margin for our calculations, since we are using
9966 // offsetLeft which is including margin. See getBoundPosition
9967 let width = node.clientWidth;
9968 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9969 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9970 width += (0, _shims.int)(computedStyle.borderRightWidth);
9971 return width;
9972 }
9973 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9974 let height = node.clientHeight;
9975 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9976 height -= (0, _shims.int)(computedStyle.paddingTop);
9977 height -= (0, _shims.int)(computedStyle.paddingBottom);
9978 return height;
9979 }
9980 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9981 let width = node.clientWidth;
9982 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9983 width -= (0, _shims.int)(computedStyle.paddingLeft);
9984 width -= (0, _shims.int)(computedStyle.paddingRight);
9985 return width;
9986 }
9987 /*:: interface EventWithOffset {
9988 clientX: number, clientY: number
9989 }*/
9990 // Get from offsetParent
9991 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9992 const isBody = offsetParent === offsetParent.ownerDocument.body;
9993 const offsetParentRect = isBody ? {
9994 left: 0,
9995 top: 0
9996 } : offsetParent.getBoundingClientRect();
9997 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9998 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9999 return {
10000 x,
10001 y
10002 };
10003 }
10004 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
10005 const translation = getTranslation(controlPos, positionOffset, 'px');
10006 return {
10007 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
10008 };
10009 }
10010 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
10011 const translation = getTranslation(controlPos, positionOffset, '');
10012 return translation;
10013 }
10014 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
10015 let {
10016 x,
10017 y
10018 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
10019 let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;
10020 if (positionOffset) {
10021 const defaultX = `${typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix}`;
10022 const defaultY = `${typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix}`;
10023 translation = `translate(${defaultX}, ${defaultY})` + translation;
10024 }
10025 return translation;
10026 }
10027 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
10028 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
10029 }
10030 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
10031 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
10032 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
10033 }
10034
10035 // User-select Hacks:
10036 //
10037 // Useful for preventing blue highlights all over everything when dragging.
10038
10039 // Note we're passing `document` b/c we could be iframed
10040 function addUserSelectStyles(doc /*: ?Document*/) {
10041 if (!doc) return;
10042 let styleEl = doc.getElementById('react-draggable-style-el');
10043 if (!styleEl) {
10044 styleEl = doc.createElement('style');
10045 styleEl.type = 'text/css';
10046 styleEl.id = 'react-draggable-style-el';
10047 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
10048 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
10049 doc.getElementsByTagName('head')[0].appendChild(styleEl);
10050 }
10051 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
10052 }
10053 function scheduleRemoveUserSelectStyles(doc /*: ?Document*/) {
10054 // Prevent a possible "forced reflow"
10055 if (window.requestAnimationFrame) {
10056 window.requestAnimationFrame(() => {
10057 removeUserSelectStyles(doc);
10058 });
10059 } else {
10060 removeUserSelectStyles(doc);
10061 }
10062 }
10063 function removeUserSelectStyles(doc /*: ?Document*/) {
10064 if (!doc) return;
10065 try {
10066 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
10067 // $FlowIgnore: IE
10068 if (doc.selection) {
10069 // $FlowIgnore: IE
10070 doc.selection.empty();
10071 } else {
10072 // Remove selection caused by scroll, unless it's a focused input
10073 // (we use doc.defaultView in case we're in an iframe)
10074 const selection = (doc.defaultView || window).getSelection();
10075 if (selection && selection.type !== 'Caret') {
10076 selection.removeAllRanges();
10077 }
10078 }
10079 } catch (e) {
10080 // probably IE
10081 }
10082 }
10083 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
10084 if (el.classList) {
10085 el.classList.add(className);
10086 } else {
10087 if (!el.className.match(new RegExp(`(?:^|\\s)${className}(?!\\S)`))) {
10088 el.className += ` ${className}`;
10089 }
10090 }
10091 }
10092 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
10093 if (el.classList) {
10094 el.classList.remove(className);
10095 } else {
10096 el.className = el.className.replace(new RegExp(`(?:^|\\s)${className}(?!\\S)`, 'g'), '');
10097 }
10098 }
10099
10100 /***/ }),
10101
10102 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
10103 /*!********************************************************************!*\
10104 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
10105 \********************************************************************/
10106 /***/ ((__unused_webpack_module, exports) => {
10107
10108 "use strict";
10109
10110
10111 Object.defineProperty(exports, "__esModule", ({
10112 value: true
10113 }));
10114 exports.browserPrefixToKey = browserPrefixToKey;
10115 exports.browserPrefixToStyle = browserPrefixToStyle;
10116 exports["default"] = void 0;
10117 exports.getPrefix = getPrefix;
10118 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
10119 function getPrefix() /*: string*/{
10120 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
10121 // Ensure we're running in an environment where there is actually a global
10122 // `window` obj
10123 if (typeof window === 'undefined') return '';
10124
10125 // If we're in a pseudo-browser server-side environment, this access
10126 // path may not exist, so bail out if it doesn't.
10127 const style = window.document?.documentElement?.style;
10128 if (!style) return '';
10129 if (prop in style) return '';
10130 for (let i = 0; i < prefixes.length; i++) {
10131 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
10132 }
10133 return '';
10134 }
10135 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
10136 return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;
10137 }
10138 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
10139 return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;
10140 }
10141 function kebabToTitleCase(str /*: string*/) /*: string*/{
10142 let out = '';
10143 let shouldCapitalize = true;
10144 for (let i = 0; i < str.length; i++) {
10145 if (shouldCapitalize) {
10146 out += str[i].toUpperCase();
10147 shouldCapitalize = false;
10148 } else if (str[i] === '-') {
10149 shouldCapitalize = true;
10150 } else {
10151 out += str[i];
10152 }
10153 }
10154 return out;
10155 }
10156
10157 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
10158 // Note that you may have to re-test for certain things; for instance, Chrome 50
10159 // can handle unprefixed `transform`, but not unprefixed `user-select`
10160 var _default = exports["default"] = (getPrefix() /*: string*/);
10161
10162 /***/ }),
10163
10164 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
10165 /*!**************************************************************!*\
10166 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
10167 \**************************************************************/
10168 /***/ ((__unused_webpack_module, exports) => {
10169
10170 "use strict";
10171
10172
10173 Object.defineProperty(exports, "__esModule", ({
10174 value: true
10175 }));
10176 exports["default"] = log;
10177 /*eslint no-console:0*/
10178 function log() {
10179 if (false) // removed by dead control flow
10180 {}
10181 }
10182
10183 /***/ }),
10184
10185 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
10186 /*!**********************************************************************!*\
10187 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
10188 \**********************************************************************/
10189 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10190
10191 "use strict";
10192
10193
10194 Object.defineProperty(exports, "__esModule", ({
10195 value: true
10196 }));
10197 exports.canDragX = canDragX;
10198 exports.canDragY = canDragY;
10199 exports.createCoreData = createCoreData;
10200 exports.createDraggableData = createDraggableData;
10201 exports.getBoundPosition = getBoundPosition;
10202 exports.getControlPosition = getControlPosition;
10203 exports.snapToGrid = snapToGrid;
10204 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
10205 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
10206 /*:: import type Draggable from '../Draggable';*/
10207 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
10208 /*:: import type DraggableCore from '../DraggableCore';*/
10209 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
10210 // If no bounds, short-circuit and move on
10211 if (!draggable.props.bounds) return [x, y];
10212
10213 // Clone new bounds
10214 let {
10215 bounds
10216 } = draggable.props;
10217 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
10218 const node = findDOMNode(draggable);
10219 if (typeof bounds === 'string') {
10220 const {
10221 ownerDocument
10222 } = node;
10223 const ownerWindow = ownerDocument.defaultView;
10224 let boundNode;
10225 if (bounds === 'parent') {
10226 boundNode = node.parentNode;
10227 } else {
10228 // Flow assigns the wrong return type (Node) for getRootNode(),
10229 // so we cast it to one of the correct types (Element).
10230 // The others are Document and ShadowRoot.
10231 // All three implement querySelector() so it's safe to call.
10232 const rootNode = ((node.getRootNode() /*: any*/) /*: Element*/);
10233 boundNode = rootNode.querySelector(bounds);
10234 }
10235 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
10236 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
10237 }
10238 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
10239 const nodeStyle = ownerWindow.getComputedStyle(node);
10240 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
10241 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
10242 bounds = {
10243 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
10244 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
10245 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
10246 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
10247 };
10248 }
10249
10250 // Keep x and y below right and bottom limits...
10251 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
10252 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
10253
10254 // But above left and top limits.
10255 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
10256 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
10257 return [x, y];
10258 }
10259 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
10260 const x = Math.round(pendingX / grid[0]) * grid[0];
10261 const y = Math.round(pendingY / grid[1]) * grid[1];
10262 return [x, y];
10263 }
10264 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
10265 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
10266 }
10267 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
10268 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
10269 }
10270
10271 // Get {x, y} positions from event.
10272 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
10273 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
10274 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
10275 const node = findDOMNode(draggableCore);
10276 // User can provide an offsetParent if desired.
10277 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
10278 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
10279 }
10280
10281 // Create an data object exposed by <DraggableCore>'s events
10282 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
10283 const isStart = !(0, _shims.isNum)(draggable.lastX);
10284 const node = findDOMNode(draggable);
10285 if (isStart) {
10286 // If this is our first move, use the x and y as last coords.
10287 return {
10288 node,
10289 deltaX: 0,
10290 deltaY: 0,
10291 lastX: x,
10292 lastY: y,
10293 x,
10294 y
10295 };
10296 } else {
10297 // Otherwise calculate proper values.
10298 return {
10299 node,
10300 deltaX: x - draggable.lastX,
10301 deltaY: y - draggable.lastY,
10302 lastX: draggable.lastX,
10303 lastY: draggable.lastY,
10304 x,
10305 y
10306 };
10307 }
10308 }
10309
10310 // Create an data exposed by <Draggable>'s events
10311 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
10312 const scale = draggable.props.scale;
10313 return {
10314 node: coreData.node,
10315 x: draggable.state.x + coreData.deltaX / scale,
10316 y: draggable.state.y + coreData.deltaY / scale,
10317 deltaX: coreData.deltaX / scale,
10318 deltaY: coreData.deltaY / scale,
10319 lastX: draggable.state.x,
10320 lastY: draggable.state.y
10321 };
10322 }
10323
10324 // A lot faster than stringify/parse
10325 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
10326 return {
10327 left: bounds.left,
10328 top: bounds.top,
10329 right: bounds.right,
10330 bottom: bounds.bottom
10331 };
10332 }
10333 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
10334 const node = draggable.findDOMNode();
10335 if (!node) {
10336 throw new Error('<DraggableCore>: Unmounted during event!');
10337 }
10338 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
10339 return node;
10340 }
10341
10342 /***/ }),
10343
10344 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
10345 /*!****************************************************************!*\
10346 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
10347 \****************************************************************/
10348 /***/ ((__unused_webpack_module, exports) => {
10349
10350 "use strict";
10351
10352
10353 Object.defineProperty(exports, "__esModule", ({
10354 value: true
10355 }));
10356 exports.dontSetMe = dontSetMe;
10357 exports.findInArray = findInArray;
10358 exports.int = int;
10359 exports.isFunction = isFunction;
10360 exports.isNum = isNum;
10361 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
10362 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
10363 for (let i = 0, length = array.length; i < length; i++) {
10364 if (callback.apply(callback, [array[i], i, array])) return array[i];
10365 }
10366 }
10367 function isFunction(func /*: any*/) /*: boolean %checks*/{
10368 // $FlowIgnore[method-unbinding]
10369 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
10370 }
10371 function isNum(num /*: any*/) /*: boolean %checks*/{
10372 return typeof num === 'number' && !isNaN(num);
10373 }
10374 function int(a /*: string*/) /*: number*/{
10375 return parseInt(a, 10);
10376 }
10377 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
10378 if (props[propName]) {
10379 return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);
10380 }
10381 }
10382
10383 /***/ }),
10384
10385 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.js":
10386 /*!**********************************************************************!*\
10387 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.js ***!
10388 \**********************************************************************/
10389 /***/ ((module) => {
10390
10391 function r(e){var o,t,f="";if("string"==typeof e||"number"==typeof e)f+=e;else if("object"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=r(e[o]))&&(f&&(f+=" "),f+=t)}else for(t in e)e[t]&&(f&&(f+=" "),f+=t);return f}function e(){for(var e,o,t=0,f="",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=r(e))&&(f&&(f+=" "),f+=o);return f}module.exports=e,module.exports.clsx=e;
10392
10393 /***/ }),
10394
10395 /***/ "../node_modules/validator/lib/isFQDN.js":
10396 /*!***********************************************!*\
10397 !*** ../node_modules/validator/lib/isFQDN.js ***!
10398 \***********************************************/
10399 /***/ ((module, exports, __webpack_require__) => {
10400
10401 "use strict";
10402
10403
10404 Object.defineProperty(exports, "__esModule", ({
10405 value: true
10406 }));
10407 exports["default"] = isFQDN;
10408 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10409 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10410 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10411 var default_fqdn_options = {
10412 require_tld: true,
10413 allow_underscores: false,
10414 allow_trailing_dot: false,
10415 allow_numeric_tld: false,
10416 allow_wildcard: false,
10417 ignore_max_length: false
10418 };
10419 function isFQDN(str, options) {
10420 (0, _assertString.default)(str);
10421 options = (0, _merge.default)(options, default_fqdn_options);
10422
10423 /* Remove the optional trailing dot before checking validity */
10424 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
10425 str = str.substring(0, str.length - 1);
10426 }
10427
10428 /* Remove the optional wildcard before checking validity */
10429 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
10430 str = str.substring(2);
10431 }
10432 var parts = str.split('.');
10433 var tld = parts[parts.length - 1];
10434 if (options.require_tld) {
10435 // disallow fqdns without tld
10436 if (parts.length < 2) {
10437 return false;
10438 }
10439 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
10440 return false;
10441 }
10442
10443 // disallow spaces
10444 if (/\s/.test(tld)) {
10445 return false;
10446 }
10447 }
10448
10449 // reject numeric TLDs
10450 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
10451 return false;
10452 }
10453 return parts.every(function (part) {
10454 if (part.length > 63 && !options.ignore_max_length) {
10455 return false;
10456 }
10457 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
10458 return false;
10459 }
10460
10461 // disallow full-width chars
10462 if (/[\uff01-\uff5e]/.test(part)) {
10463 return false;
10464 }
10465
10466 // disallow parts starting or ending with hyphen
10467 if (/^-|-$/.test(part)) {
10468 return false;
10469 }
10470 if (!options.allow_underscores && /_/.test(part)) {
10471 return false;
10472 }
10473 return true;
10474 });
10475 }
10476 module.exports = exports.default;
10477 module.exports["default"] = exports.default;
10478
10479 /***/ }),
10480
10481 /***/ "../node_modules/validator/lib/isIP.js":
10482 /*!*********************************************!*\
10483 !*** ../node_modules/validator/lib/isIP.js ***!
10484 \*********************************************/
10485 /***/ ((module, exports, __webpack_require__) => {
10486
10487 "use strict";
10488
10489
10490 Object.defineProperty(exports, "__esModule", ({
10491 value: true
10492 }));
10493 exports["default"] = isIP;
10494 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10495 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10496 function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10497 /**
10498 11.3. Examples
10499
10500 The following addresses
10501
10502 fe80::1234 (on the 1st link of the node)
10503 ff02::5678 (on the 5th link of the node)
10504 ff08::9abc (on the 10th organization of the node)
10505
10506 would be represented as follows:
10507
10508 fe80::1234%1
10509 ff02::5678%5
10510 ff08::9abc%10
10511
10512 (Here we assume a natural translation from a zone index to the
10513 <zone_id> part, where the Nth zone of any scope is translated into
10514 "N".)
10515
10516 If we use interface names as <zone_id>, those addresses could also be
10517 represented as follows:
10518
10519 fe80::1234%ne0
10520 ff02::5678%pvc1.3
10521 ff08::9abc%interface10
10522
10523 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
10524 to the 5th link, and "interface10" belongs to the 10th organization.
10525 * * */
10526 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
10527 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
10528 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
10529 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
10530 var IPv6AddressRegExp = new RegExp('^(' + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ')(%[0-9a-zA-Z.]{1,})?$');
10531 function isIP(ipAddress) {
10532 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10533 (0, _assertString.default)(ipAddress);
10534
10535 // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])
10536 // eslint-disable-next-line prefer-rest-params
10537 var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';
10538 if (!version) {
10539 return isIP(ipAddress, {
10540 version: 4
10541 }) || isIP(ipAddress, {
10542 version: 6
10543 });
10544 }
10545 if (version.toString() === '4') {
10546 return IPv4AddressRegExp.test(ipAddress);
10547 }
10548 if (version.toString() === '6') {
10549 return IPv6AddressRegExp.test(ipAddress);
10550 }
10551 return false;
10552 }
10553 module.exports = exports.default;
10554 module.exports["default"] = exports.default;
10555
10556 /***/ }),
10557
10558 /***/ "../node_modules/validator/lib/isURL.js":
10559 /*!**********************************************!*\
10560 !*** ../node_modules/validator/lib/isURL.js ***!
10561 \**********************************************/
10562 /***/ ((module, exports, __webpack_require__) => {
10563
10564 "use strict";
10565
10566
10567 Object.defineProperty(exports, "__esModule", ({
10568 value: true
10569 }));
10570 exports["default"] = isURL;
10571 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10572 var _checkHost = _interopRequireDefault(__webpack_require__(/*! ./util/checkHost */ "../node_modules/validator/lib/util/checkHost.js"));
10573 var _includesString = _interopRequireDefault(__webpack_require__(/*! ./util/includesString */ "../node_modules/validator/lib/util/includesString.js"));
10574 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
10575 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
10576 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10577 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10578 function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10579 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."); }
10580 function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
10581 function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10582 function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10583 function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
10584 /*
10585 options for isURL method
10586
10587 protocols - valid protocols can be modified with this option.
10588 require_tld - If set to false isURL will not check if the URL's host includes a top-level domain.
10589 require_protocol - if set to true isURL will return false if protocol is not present in the URL.
10590 require_host - if set to false isURL will not check if host is present in the URL.
10591 require_port - if set to true isURL will check if port is present in the URL.
10592 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.
10593 allow_underscores - if set to true, the validator will allow underscores in the URL.
10594 host_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings
10595 defined in it, the validation fails.
10596 host_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings
10597 defined in it, the validation fails.
10598 allow_trailing_dot - if set to true, the validator will allow the domain to end with
10599 a `.` character.
10600 allow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.
10601 allow_fragments - if set to false isURL will return false if fragments are present.
10602 allow_query_components - if set to false isURL will return false if query components are present.
10603 disallow_auth - if set to true, the validator will fail if the URL contains an authentication
10604 component, e.g. `http://username:password@example.com`
10605 validate_length - if set to false isURL will skip string length validation. `max_allowed_length`
10606 will be ignored if this is set as `false`.
10607 max_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is
10608 2084 that IE maximum URL length).
10609
10610 */
10611
10612 var default_url_options = {
10613 protocols: ['http', 'https', 'ftp'],
10614 require_tld: true,
10615 require_protocol: false,
10616 require_host: true,
10617 require_port: false,
10618 require_valid_protocol: true,
10619 allow_underscores: false,
10620 allow_trailing_dot: false,
10621 allow_protocol_relative_urls: false,
10622 allow_fragments: true,
10623 allow_query_components: true,
10624 validate_length: true,
10625 max_allowed_length: 2084
10626 };
10627 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
10628 function isURL(url, options) {
10629 (0, _assertString.default)(url);
10630 if (!url || /[\s<>]/.test(url)) {
10631 return false;
10632 }
10633 if (url.indexOf('mailto:') === 0) {
10634 return false;
10635 }
10636 options = (0, _merge.default)(options, default_url_options);
10637 if (options.validate_length && url.length > options.max_allowed_length) {
10638 return false;
10639 }
10640 if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {
10641 return false;
10642 }
10643 if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {
10644 return false;
10645 }
10646 var protocol, auth, host, hostname, port, port_str, split, ipv6;
10647 split = url.split('#');
10648 url = split.shift();
10649 split = url.split('?');
10650 url = split.shift();
10651
10652 // Replaced the 'split("://")' logic with a regex to match the protocol.
10653 // This correctly identifies schemes like `javascript:` which don't use `//`.
10654 // However, we need to be careful not to confuse authentication credentials (user:password@host)
10655 // with protocols. A colon before an @ symbol might be part of auth, not a protocol separator.
10656 var protocol_match = url.match(/^([a-z][a-z0-9+\-.]*):/i);
10657 var had_explicit_protocol = false;
10658 var cleanUpProtocol = function cleanUpProtocol(potential_protocol) {
10659 had_explicit_protocol = true;
10660 protocol = potential_protocol.toLowerCase();
10661 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
10662 // The identified protocol is not in the allowed list.
10663 return false;
10664 }
10665
10666 // Remove the protocol from the URL string.
10667 return url.substring(protocol_match[0].length);
10668 };
10669 if (protocol_match) {
10670 var potential_protocol = protocol_match[1];
10671 var after_colon = url.substring(protocol_match[0].length);
10672
10673 // Check if what follows looks like authentication credentials (user:password@host)
10674 // rather than a protocol. This happens when:
10675 // 1. There's no `//` after the colon (protocols like `http://` have this)
10676 // 2. There's an `@` symbol before any `/`
10677 // 3. The part before `@` contains only valid auth characters (alphanumeric, -, _, ., %, :)
10678 var starts_with_slashes = after_colon.slice(0, 2) === '//';
10679 if (!starts_with_slashes) {
10680 var first_slash_position = after_colon.indexOf('/');
10681 var before_slash = first_slash_position === -1 ? after_colon : after_colon.substring(0, first_slash_position);
10682 var at_position = before_slash.indexOf('@');
10683 if (at_position !== -1) {
10684 var before_at = before_slash.substring(0, at_position);
10685 var valid_auth_regex = /^[a-zA-Z0-9\-_.%:]*$/;
10686 var is_valid_auth = valid_auth_regex.test(before_at);
10687 if (is_valid_auth) {
10688 // This looks like authentication (e.g., user:password@host), not a protocol
10689 if (options.require_protocol) {
10690 return false;
10691 }
10692
10693 // Don't consume the colon; let the auth parsing handle it later
10694 } else {
10695 // This looks like a malicious protocol (e.g., javascript:alert();@host)
10696 url = cleanUpProtocol(potential_protocol);
10697 if (url === false) {
10698 return false;
10699 }
10700 }
10701 } else {
10702 // No @ symbol found. Check if this could be a port number instead of a protocol.
10703 // If what's after the colon is numeric (or starts with a digit and contains only
10704 // valid port characters until a path separator), it's likely hostname:port, not a protocol.
10705 var looks_like_port = /^[0-9]/.test(after_colon);
10706 if (looks_like_port) {
10707 // This looks like hostname:port, not a protocol
10708 if (options.require_protocol) {
10709 return false;
10710 }
10711 // Don't consume anything; let it be parsed as hostname:port
10712 } else {
10713 // This is definitely a protocol
10714 url = cleanUpProtocol(potential_protocol);
10715 if (url === false) {
10716 return false;
10717 }
10718 }
10719 }
10720 } else {
10721 // Starts with '//', this is definitely a protocol like http://
10722 url = cleanUpProtocol(potential_protocol);
10723 if (url === false) {
10724 return false;
10725 }
10726 }
10727 } else if (options.require_protocol) {
10728 return false;
10729 }
10730
10731 // Handle leading '//' only as protocol-relative when there was NO explicit protocol.
10732 // If there was an explicit protocol, '//' is the normal separator
10733 // and should be stripped unconditionally.
10734 if (url.slice(0, 2) === '//') {
10735 if (!had_explicit_protocol && !options.allow_protocol_relative_urls) {
10736 return false;
10737 }
10738 url = url.slice(2);
10739 }
10740 if (url === '') {
10741 return false;
10742 }
10743 split = url.split('/');
10744 url = split.shift();
10745 if (url === '' && !options.require_host) {
10746 return true;
10747 }
10748 split = url.split('@');
10749 if (split.length > 1) {
10750 if (options.disallow_auth) {
10751 return false;
10752 }
10753 if (split[0] === '') {
10754 return false;
10755 }
10756 auth = split.shift();
10757 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
10758 return false;
10759 }
10760 var _auth$split = auth.split(':'),
10761 _auth$split2 = _slicedToArray(_auth$split, 2),
10762 user = _auth$split2[0],
10763 password = _auth$split2[1];
10764 if (user === '' && password === '') {
10765 return false;
10766 }
10767 }
10768 hostname = split.join('@');
10769 port_str = null;
10770 ipv6 = null;
10771 var ipv6_match = hostname.match(wrapped_ipv6);
10772 if (ipv6_match) {
10773 host = '';
10774 ipv6 = ipv6_match[1];
10775 port_str = ipv6_match[2] || null;
10776 } else {
10777 split = hostname.split(':');
10778 host = split.shift();
10779 if (split.length) {
10780 port_str = split.join(':');
10781 }
10782 }
10783 if (port_str !== null && port_str.length > 0) {
10784 port = parseInt(port_str, 10);
10785 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
10786 return false;
10787 }
10788 } else if (options.require_port) {
10789 return false;
10790 }
10791 if (options.host_whitelist) {
10792 return (0, _checkHost.default)(host, options.host_whitelist);
10793 }
10794 if (host === '' && !options.require_host) {
10795 return true;
10796 }
10797 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
10798 return false;
10799 }
10800 host = host || ipv6;
10801 if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
10802 return false;
10803 }
10804 return true;
10805 }
10806 module.exports = exports.default;
10807 module.exports["default"] = exports.default;
10808
10809 /***/ }),
10810
10811 /***/ "../node_modules/validator/lib/util/assertString.js":
10812 /*!**********************************************************!*\
10813 !*** ../node_modules/validator/lib/util/assertString.js ***!
10814 \**********************************************************/
10815 /***/ ((module, exports) => {
10816
10817 "use strict";
10818
10819
10820 Object.defineProperty(exports, "__esModule", ({
10821 value: true
10822 }));
10823 exports["default"] = assertString;
10824 function assertString(input) {
10825 if (input === undefined || input === null) throw new TypeError("Expected a string but received a ".concat(input));
10826 if (input.constructor.name !== 'String') throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
10827 }
10828 module.exports = exports.default;
10829 module.exports["default"] = exports.default;
10830
10831 /***/ }),
10832
10833 /***/ "../node_modules/validator/lib/util/checkHost.js":
10834 /*!*******************************************************!*\
10835 !*** ../node_modules/validator/lib/util/checkHost.js ***!
10836 \*******************************************************/
10837 /***/ ((module, exports) => {
10838
10839 "use strict";
10840
10841
10842 Object.defineProperty(exports, "__esModule", ({
10843 value: true
10844 }));
10845 exports["default"] = checkHost;
10846 function isRegExp(obj) {
10847 return Object.prototype.toString.call(obj) === '[object RegExp]';
10848 }
10849 function checkHost(host, matches) {
10850 for (var i = 0; i < matches.length; i++) {
10851 var match = matches[i];
10852 if (host === match || isRegExp(match) && match.test(host)) {
10853 return true;
10854 }
10855 }
10856 return false;
10857 }
10858 module.exports = exports.default;
10859 module.exports["default"] = exports.default;
10860
10861 /***/ }),
10862
10863 /***/ "../node_modules/validator/lib/util/includesString.js":
10864 /*!************************************************************!*\
10865 !*** ../node_modules/validator/lib/util/includesString.js ***!
10866 \************************************************************/
10867 /***/ ((module, exports) => {
10868
10869 "use strict";
10870
10871
10872 Object.defineProperty(exports, "__esModule", ({
10873 value: true
10874 }));
10875 exports["default"] = void 0;
10876 var includes = function includes(str, val) {
10877 return str.indexOf(val) !== -1;
10878 };
10879 var _default = exports["default"] = includes;
10880 module.exports = exports.default;
10881 module.exports["default"] = exports.default;
10882
10883 /***/ }),
10884
10885 /***/ "../node_modules/validator/lib/util/merge.js":
10886 /*!***************************************************!*\
10887 !*** ../node_modules/validator/lib/util/merge.js ***!
10888 \***************************************************/
10889 /***/ ((module, exports) => {
10890
10891 "use strict";
10892
10893
10894 Object.defineProperty(exports, "__esModule", ({
10895 value: true
10896 }));
10897 exports["default"] = merge;
10898 function merge() {
10899 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10900 var defaults = arguments.length > 1 ? arguments[1] : undefined;
10901 for (var key in defaults) {
10902 if (typeof obj[key] === 'undefined') {
10903 obj[key] = defaults[key];
10904 }
10905 }
10906 return obj;
10907 }
10908 module.exports = exports.default;
10909 module.exports["default"] = exports.default;
10910
10911 /***/ }),
10912
10913 /***/ "@elementor/icons":
10914 /*!************************************!*\
10915 !*** external "elementorV2.icons" ***!
10916 \************************************/
10917 /***/ ((module) => {
10918
10919 "use strict";
10920 module.exports = elementorV2.icons;
10921
10922 /***/ }),
10923
10924 /***/ "@elementor/ui":
10925 /*!*********************************!*\
10926 !*** external "elementorV2.ui" ***!
10927 \*********************************/
10928 /***/ ((module) => {
10929
10930 "use strict";
10931 module.exports = elementorV2.ui;
10932
10933 /***/ }),
10934
10935 /***/ "@wordpress/i18n":
10936 /*!**************************!*\
10937 !*** external "wp.i18n" ***!
10938 \**************************/
10939 /***/ ((module) => {
10940
10941 "use strict";
10942 module.exports = wp.i18n;
10943
10944 /***/ }),
10945
10946 /***/ "react":
10947 /*!************************!*\
10948 !*** external "React" ***!
10949 \************************/
10950 /***/ ((module) => {
10951
10952 "use strict";
10953 module.exports = React;
10954
10955 /***/ }),
10956
10957 /***/ "react-dom":
10958 /*!***************************!*\
10959 !*** external "ReactDOM" ***!
10960 \***************************/
10961 /***/ ((module) => {
10962
10963 "use strict";
10964 module.exports = ReactDOM;
10965
10966 /***/ })
10967
10968 /******/ });
10969 /************************************************************************/
10970 /******/ // The module cache
10971 /******/ var __webpack_module_cache__ = {};
10972 /******/
10973 /******/ // The require function
10974 /******/ function __webpack_require__(moduleId) {
10975 /******/ // Check if module is in cache
10976 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10977 /******/ if (cachedModule !== undefined) {
10978 /******/ return cachedModule.exports;
10979 /******/ }
10980 /******/ // Create a new module (and put it into the cache)
10981 /******/ var module = __webpack_module_cache__[moduleId] = {
10982 /******/ // no module.id needed
10983 /******/ // no module.loaded needed
10984 /******/ exports: {}
10985 /******/ };
10986 /******/
10987 /******/ // Execute the module function
10988 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10989 /******/
10990 /******/ // Return the exports of the module
10991 /******/ return module.exports;
10992 /******/ }
10993 /******/
10994 /************************************************************************/
10995 /******/ /* webpack/runtime/define property getters */
10996 /******/ (() => {
10997 /******/ // define getter functions for harmony exports
10998 /******/ __webpack_require__.d = (exports, definition) => {
10999 /******/ for(var key in definition) {
11000 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
11001 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
11002 /******/ }
11003 /******/ }
11004 /******/ };
11005 /******/ })();
11006 /******/
11007 /******/ /* webpack/runtime/hasOwnProperty shorthand */
11008 /******/ (() => {
11009 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
11010 /******/ })();
11011 /******/
11012 /******/ /* webpack/runtime/make namespace object */
11013 /******/ (() => {
11014 /******/ // define __esModule on exports
11015 /******/ __webpack_require__.r = (exports) => {
11016 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
11017 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
11018 /******/ }
11019 /******/ Object.defineProperty(exports, '__esModule', { value: true });
11020 /******/ };
11021 /******/ })();
11022 /******/
11023 /************************************************************************/
11024 var __webpack_exports__ = {};
11025 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
11026 (() => {
11027 "use strict";
11028 var exports = __webpack_exports__;
11029 /*!*******************************************************!*\
11030 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
11031 \*******************************************************/
11032
11033
11034 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
11035 Object.defineProperty(exports, "__esModule", ({
11036 value: true
11037 }));
11038 exports["default"] = exports.AI_ATTACHMENT = void 0;
11039 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
11040 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
11041 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
11042 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
11043 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
11044 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
11045 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
11046 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
11047 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
11048 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
11049 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
11050 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
11051 var _applyTemplateForAiBehavior = _interopRequireDefault(__webpack_require__(/*! ./integration/library/apply-template-for-ai-behavior */ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js"));
11052 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
11053 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
11054 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11055 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
11056 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
11057 function Module() {
11058 var _this;
11059 (0, _classCallCheck2.default)(this, Module);
11060 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
11061 args[_key] = arguments[_key];
11062 }
11063 _this = _callSuper(this, Module, [].concat(args));
11064 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
11065 var saveGroup = groups.find(function (group) {
11066 return 'save' === group.name;
11067 });
11068 if (!saveGroup) {
11069 return groups;
11070 }
11071 var contextMenu = {
11072 name: 'ai',
11073 icon: 'eicon-ai',
11074 isEnabled: function isEnabled() {
11075 return 0 !== currentElement.getContainer().children.length;
11076 },
11077 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
11078 callback: function () {
11079 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
11080 var container, json, attachments;
11081 return _regenerator.default.wrap(function (_context) {
11082 while (1) switch (_context.prev = _context.next) {
11083 case 0:
11084 container = currentElement.getContainer();
11085 json = container.model.toJSON({
11086 remove: ['default']
11087 });
11088 attachments = [{
11089 type: 'json',
11090 previewHTML: '',
11091 content: json,
11092 label: container.model.get('title'),
11093 source: _attachments.USER_VARIATION_SOURCE
11094 }];
11095 (0, _editorIntegration.renderLayoutApp)({
11096 parentContainer: container.parent,
11097 mode: _config.MODE_VARIATION,
11098 at: container.view._index,
11099 attachments: attachments,
11100 onSelect: function onSelect() {
11101 container.view.$el.hide();
11102 },
11103 onClose: function onClose() {
11104 container.view.$el.show();
11105 },
11106 onInsert: function onInsert(template) {
11107 (0, _editorIntegration.importToEditor)({
11108 parentContainer: container.parent,
11109 at: container.view._index,
11110 template: template,
11111 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
11112 replace: true
11113 });
11114 }
11115 });
11116 case 1:
11117 case "end":
11118 return _context.stop();
11119 }
11120 }, _callee);
11121 }));
11122 function callback() {
11123 return _callback.apply(this, arguments);
11124 }
11125 return callback;
11126 }()
11127 };
11128
11129 // Add on top of save group actions
11130 saveGroup.actions.unshift(contextMenu);
11131 return groups;
11132 });
11133 return _this;
11134 }
11135 (0, _inherits2.default)(Module, _elementorModules$edi);
11136 return (0, _createClass2.default)(Module, [{
11137 key: "onElementorInit",
11138 value: function onElementorInit() {
11139 var _this2 = this;
11140 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
11141 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
11142 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
11143 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
11144 $e.commands.register('library', 'generate-ai-variation', function (args) {
11145 return _this2.applyTemplate(args);
11146 });
11147 }
11148 }, {
11149 key: "applyTemplate",
11150 value: function applyTemplate(args) {
11151 window.postMessage({
11152 type: 'library/attach:start'
11153 });
11154 $e.components.get('library').downloadTemplate(args, function (data) {
11155 var model = args.model;
11156 window.postMessage({
11157 type: 'library/attach',
11158 json: data.content[0],
11159 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
11160 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
11161 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
11162 }, window.location.origin);
11163 });
11164 }
11165 }, {
11166 key: "registerLibraryActionButtonBehavior",
11167 value: function registerLibraryActionButtonBehavior(behaviors) {
11168 behaviors.applyAiTemplate = {
11169 behaviorClass: _applyTemplateForAiBehavior.default
11170 };
11171 return behaviors;
11172 }
11173 }, {
11174 key: "registerAiLayoutBehavior",
11175 value: function registerAiLayoutBehavior(behaviors) {
11176 behaviors.ai = {
11177 behaviorClass: _aiLayoutBehavior.default,
11178 context: {
11179 documentType: window.elementor.documents.getCurrent().config.type
11180 }
11181 };
11182 return behaviors;
11183 }
11184 }, {
11185 key: "filterLibraryActionButtonTemplate",
11186 value: function filterLibraryActionButtonTemplate(viewId) {
11187 var modalConfig = $e.components.get('library').manager.modalConfig;
11188 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
11189 if (originalCoreViewId !== viewId) {
11190 return viewId;
11191 }
11192 if ($e.routes.current.library !== 'library/templates/blocks') {
11193 return viewId;
11194 }
11195 if (AI_ATTACHMENT === modalConfig.mode) {
11196 viewId = '#tmpl-elementor-template-library-apply-ai-button';
11197 } else {
11198 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
11199 }
11200 return viewId;
11201 }
11202 }]);
11203 }(elementorModules.editor.utils.Module);
11204 new Module();
11205 })();
11206
11207 /******/ })()
11208 ;
11209 //# sourceMappingURL=ai-layout.js.map