PluginProbe
Elementor Website Builder – more than just a page builder / 3.32.0-dev3
Elementor Website Builder – more than just a page builder v3.32.0-dev3
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.32.0-dev3, at assets/js/ai-layout.js

11,123 lines 490.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.32.0 - 08-09-2025 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../assets/dev/js/utils/react.js":
6 /*!***************************************!*\
7 !*** ../assets/dev/js/utils/react.js ***!
8 \***************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 "use strict";
12
13
14 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
15 Object.defineProperty(exports, "__esModule", ({
16 value: true
17 }));
18 exports["default"] = void 0;
19 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
20 var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
21 var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
22 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); }
23 /**
24 * Support conditional rendering of a React App to the DOM, based on the React version.
25 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
26 *
27 * @param { React.ReactElement } app The app to render.
28 * @param { HTMLElement } domElement The DOM element to render the app into.
29 *
30 * @return {{ unmount: () => void }} The unmount function.
31 */
32 function render(app, domElement) {
33 var unmountFunction;
34 try {
35 var root = (0, _client.createRoot)(domElement);
36 root.render(app);
37 unmountFunction = function unmountFunction() {
38 root.unmount();
39 };
40 } catch (e) {
41 // eslint-disable-next-line react/no-deprecated
42 ReactDOM.render(app, domElement);
43 unmountFunction = function unmountFunction() {
44 // eslint-disable-next-line react/no-deprecated
45 ReactDOM.unmountComponentAtNode(domElement);
46 };
47 }
48 return {
49 unmount: unmountFunction
50 };
51 }
52 var _default = exports["default"] = {
53 render: render
54 };
55
56 /***/ }),
57
58 /***/ "../modules/ai/assets/js/editor/ai-layout-behavior.js":
59 /*!************************************************************!*\
60 !*** ../modules/ai/assets/js/editor/ai-layout-behavior.js ***!
61 \************************************************************/
62 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
63
64 "use strict";
65
66
67 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
68 Object.defineProperty(exports, "__esModule", ({
69 value: true
70 }));
71 exports["default"] = void 0;
72 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
73 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
74 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
75 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
76 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
77 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
78 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
79 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
80 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
81 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)); }
82 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
83 var AiLayoutBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
84 function AiLayoutBehavior() {
85 var _this;
86 (0, _classCallCheck2.default)(this, AiLayoutBehavior);
87 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
88 args[_key] = arguments[_key];
89 }
90 _this = _callSuper(this, AiLayoutBehavior, [].concat(args));
91 (0, _defineProperty2.default)(_this, "previewContainer", null);
92 return _this;
93 }
94 (0, _inherits2.default)(AiLayoutBehavior, _Marionette$Behavior);
95 return (0, _createClass2.default)(AiLayoutBehavior, [{
96 key: "ui",
97 value: function ui() {
98 return {
99 aiButton: '.e-ai-layout-button',
100 addTemplateButton: '.elementor-add-template-button'
101 };
102 }
103 }, {
104 key: "events",
105 value: function events() {
106 return {
107 'click @ui.aiButton': 'onAiButtonClick'
108 };
109 }
110 }, {
111 key: "onAiButtonClick",
112 value: function onAiButtonClick(e) {
113 e.stopPropagation();
114 window.elementorAiCurrentContext = this.getOption('context');
115 (0, _editorIntegration.renderLayoutApp)({
116 parentContainer: elementor.getPreviewContainer(),
117 mode: _config.MODE_LAYOUT,
118 at: this.view.getOption('at'),
119 onInsert: this.onInsert.bind(this),
120 onRenderApp: function onRenderApp(args) {
121 args.previewContainer.init();
122 },
123 onGenerate: function onGenerate(args) {
124 args.previewContainer.reset();
125 }
126 });
127 }
128 }, {
129 key: "hideDropArea",
130 value: function hideDropArea() {
131 this.view.onCloseButtonClick();
132 }
133 }, {
134 key: "onInsert",
135 value: function onInsert(template) {
136 this.hideDropArea();
137 (0, _editorIntegration.importToEditor)({
138 parentContainer: elementor.getPreviewContainer(),
139 at: this.view.getOption('at'),
140 template: template,
141 historyTitle: (0, _i18n.__)('AI Layout', 'elementor')
142 });
143 }
144 }, {
145 key: "onRender",
146 value: function onRender() {
147 var $button = jQuery('<button>', {
148 type: 'button',
149 class: 'e-ai-layout-button elementor-add-section-area-button e-button-primary',
150 title: (0, _i18n.__)('Build with AI', 'elementor'),
151 'aria-label': (0, _i18n.__)('Build with AI', 'elementor')
152 });
153 $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");
154 this.ui.addTemplateButton.after($button);
155 }
156 }]);
157 }(Marionette.Behavior);
158
159 /***/ }),
160
161 /***/ "../modules/ai/assets/js/editor/api/index.js":
162 /*!***************************************************!*\
163 !*** ../modules/ai/assets/js/editor/api/index.js ***!
164 \***************************************************/
165 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
166
167 "use strict";
168
169
170 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
171 Object.defineProperty(exports, "__esModule", ({
172 value: true
173 }));
174 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;
175 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
176 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; }
177 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; }
178 var request = function request(endpoint) {
179 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
180 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
181 var signal = arguments.length > 3 ? arguments[3] : undefined;
182 if (Object.keys(data).length) {
183 if (window.elementorAiCurrentContext) {
184 data.context = window.elementorAiCurrentContext;
185 } else {
186 data.context = window.elementorWpAiCurrentContext;
187 }
188 }
189 return new Promise(function (resolve, reject) {
190 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
191 success: resolve,
192 error: reject,
193 data: data,
194 unique_id: data.unique_id
195 }, immediately);
196 if (signal && ajaxData.jqXhr) {
197 signal.addEventListener('abort', ajaxData.jqXhr.abort);
198 }
199 });
200 };
201 var getUserInformation = exports.getUserInformation = function getUserInformation(immediately) {
202 return request('ai_get_user_information', undefined, immediately);
203 };
204 var getRemoteConfig = exports.getRemoteConfig = function getRemoteConfig() {
205 return request('ai_get_remote_config');
206 };
207 var getRemoteFrontendConfig = exports.getRemoteFrontendConfig = function getRemoteFrontendConfig(payload, immediately) {
208 return request('ai_get_remote_frontend_config', {
209 payload: payload
210 }, immediately);
211 };
212 var getCompletionText = exports.getCompletionText = function getCompletionText(payload) {
213 return request('ai_get_completion_text', {
214 payload: payload
215 });
216 };
217 var getExcerpt = exports.getExcerpt = function getExcerpt(payload) {
218 return request('ai_get_excerpt', {
219 payload: payload
220 });
221 };
222 var getFeaturedImage = exports.getFeaturedImage = function getFeaturedImage(payload) {
223 return request('ai_get_featured_image', {
224 payload: payload
225 });
226 };
227 var getEditText = exports.getEditText = function getEditText(payload) {
228 return request('ai_get_edit_text', {
229 payload: payload
230 });
231 };
232 var getCustomCode = exports.getCustomCode = function getCustomCode(payload) {
233 return request('ai_get_custom_code', {
234 payload: payload
235 });
236 };
237 var getCustomCSS = exports.getCustomCSS = function getCustomCSS(payload) {
238 return request('ai_get_custom_css', {
239 payload: payload
240 });
241 };
242 var setGetStarted = exports.setGetStarted = function setGetStarted() {
243 return request('ai_set_get_started');
244 };
245 var setStatusFeedback = exports.setStatusFeedback = function setStatusFeedback(responseId) {
246 return request('ai_set_status_feedback', {
247 response_id: responseId
248 }, true);
249 };
250 var getTextToImageGeneration = exports.getTextToImageGeneration = function getTextToImageGeneration(payload) {
251 return request('ai_get_text_to_image', {
252 payload: payload
253 });
254 };
255 var getImageToImageGeneration = exports.getImageToImageGeneration = function getImageToImageGeneration(payload) {
256 return request('ai_get_image_to_image', {
257 payload: payload
258 });
259 };
260 var getImageToImageMaskCleanup = exports.getImageToImageMaskCleanup = function getImageToImageMaskCleanup(payload) {
261 return request('ai_get_image_to_image_mask_cleanup', {
262 payload: payload
263 });
264 };
265 var getImageToImageMaskGeneration = exports.getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
266 return request('ai_get_image_to_image_mask', {
267 payload: payload
268 });
269 };
270 var getImageToImageOutPainting = exports.getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
271 return request('ai_get_image_to_image_outpainting', {
272 payload: payload
273 });
274 };
275 var getImageToImageUpscale = exports.getImageToImageUpscale = function getImageToImageUpscale(payload) {
276 return request('ai_get_image_to_image_upscale', {
277 payload: payload
278 });
279 };
280 var getImageToImageRemoveBackground = exports.getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
281 return request('ai_get_image_to_image_remove_background', {
282 payload: payload
283 });
284 };
285 var getImageToImageIsolateObjects = exports.getImageToImageIsolateObjects = function getImageToImageIsolateObjects(payload) {
286 return request('ai_get_image_to_image_isolate_objects', {
287 payload: payload
288 });
289 };
290 var getImageToImageReplaceBackground = exports.getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
291 return request('ai_get_image_to_image_replace_background', {
292 payload: payload
293 });
294 };
295 var getImageToImageRemoveText = exports.getImageToImageRemoveText = function getImageToImageRemoveText(image) {
296 return request('ai_get_image_to_image_remove_text', {
297 image: image
298 });
299 };
300 var getImagePromptEnhanced = exports.getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
301 return request('ai_get_image_prompt_enhancer', {
302 prompt: prompt
303 });
304 };
305 var getProductImageUnification = exports.getProductImageUnification = function getProductImageUnification(payload, immediately) {
306 return request('ai_get_product_image_unification', {
307 payload: payload
308 }, immediately);
309 };
310 var getAnimation = exports.getAnimation = function getAnimation(payload) {
311 return request('ai_get_animation', {
312 payload: payload
313 });
314 };
315 var uploadImage = exports.uploadImage = function uploadImage(image) {
316 return request('ai_upload_image', _objectSpread(_objectSpread({}, image), {}, {
317 editor_post_id: image.image.editor_post_id,
318 unique_id: image.image.unique_id
319 }));
320 };
321
322 /**
323 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
324 * @typedef {Object} requestBody
325 * @property {string} prompt - Prompt to generate the layout from.
326 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
327 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
328 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
329 */
330
331 /**
332 * @param {requestBody} requestBody
333 * @param {AbortSignal} [signal]
334 */
335 var generateLayout = exports.generateLayout = function generateLayout(requestBody, signal) {
336 return request('ai_generate_layout', requestBody, true, signal);
337 };
338 var getLayoutPromptEnhanced = exports.getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
339 return request('ai_get_layout_prompt_enhancer', {
340 prompt: prompt,
341 enhance_type: enhanceType
342 });
343 };
344 var getHistory = exports.getHistory = function getHistory(type, page, limit) {
345 return request('ai_get_history', {
346 type: type,
347 page: page,
348 limit: limit
349 });
350 };
351 var deleteHistoryItem = exports.deleteHistoryItem = function deleteHistoryItem(id) {
352 return request('ai_delete_history_item', {
353 id: id
354 });
355 };
356 var toggleFavoriteHistoryItem = exports.toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
357 return request('ai_toggle_favorite_history_item', {
358 id: id
359 });
360 };
361
362 /***/ }),
363
364 /***/ "../modules/ai/assets/js/editor/components/alert-dialog.js":
365 /*!*****************************************************************!*\
366 !*** ../modules/ai/assets/js/editor/components/alert-dialog.js ***!
367 \*****************************************************************/
368 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
369
370 "use strict";
371
372
373 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
374 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
375 Object.defineProperty(exports, "__esModule", ({
376 value: true
377 }));
378 exports.AlertDialog = void 0;
379 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
380 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
381 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
382 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
383 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
384 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); }
385 var AlertDialog = exports.AlertDialog = function AlertDialog(props) {
386 var _useState = (0, _react.useState)(true),
387 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
388 isShown = _useState2[0],
389 setIsShown = _useState2[1];
390 if (!isShown) {
391 return null;
392 }
393 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
394 open: true,
395 maxWidth: "lg"
396 }, /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
397 sx: {
398 padding: 0
399 }
400 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
401 sx: {
402 textAlign: 'center',
403 padding: 3
404 }
405 }, props.message), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
406 alignItems: "center",
407 spacing: 2,
408 marginBottom: 2
409 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
410 variant: "contained",
411 type: "button",
412 color: "primary",
413 onClick: function onClick() {
414 var _props$onClose;
415 setIsShown(false);
416 (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
417 }
418 }, (0, _i18n.__)('Close', 'elementor')))));
419 };
420 AlertDialog.propTypes = {
421 message: _propTypes.default.string.isRequired,
422 onClose: _propTypes.default.func
423 };
424
425 /***/ }),
426
427 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
428 /*!******************************************************************!*\
429 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
430 \******************************************************************/
431 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
432
433 "use strict";
434
435
436 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
437 Object.defineProperty(exports, "__esModule", ({
438 value: true
439 }));
440 exports["default"] = void 0;
441 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
442 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
443 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
444 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
445 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
446 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
447 var ElementorLogo = function ElementorLogo(props) {
448 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
449 viewBox: "0 0 32 32"
450 }, props), /*#__PURE__*/_react.default.createElement("path", {
451 fillRule: "evenodd",
452 clipRule: "evenodd",
453 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"
454 }));
455 };
456 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
457 var theme = _ref.theme;
458 return {
459 width: theme.spacing(3),
460 height: theme.spacing(3),
461 '& path': {
462 fill: theme.palette.text.primary
463 }
464 };
465 });
466 var DialogHeader = function DialogHeader(props) {
467 var hideAiBetaLogo = props.hideAiBetaLogo,
468 onClose = props.onClose,
469 children = props.children;
470 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
471 sx: {
472 fontWeight: 'normal'
473 },
474 color: "transparent",
475 position: "relative"
476 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
477 variant: "dense"
478 }, !hideAiBetaLogo && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
479 sx: {
480 mr: 1
481 }
482 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
483 component: "span",
484 variant: "subtitle2",
485 sx: {
486 fontWeight: 'bold',
487 textTransform: 'uppercase'
488 }
489 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
490 label: (0, _i18n.__)('Beta', 'elementor'),
491 color: "default",
492 size: "small",
493 sx: {
494 ml: 1
495 }
496 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
497 direction: "row",
498 spacing: 1,
499 alignItems: "center",
500 sx: {
501 ml: hideAiBetaLogo ? 0 : 'auto'
502 }
503 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
504 size: "small",
505 "aria-label": "close",
506 onClick: onClose,
507 sx: {
508 '&.MuiButtonBase-root': {
509 mr: -1
510 }
511 }
512 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
513 };
514 DialogHeader.propTypes = {
515 onClose: _propTypes.default.func.isRequired,
516 hideAiBetaLogo: _propTypes.default.bool,
517 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
518 };
519 var _default = exports["default"] = DialogHeader;
520
521 /***/ }),
522
523 /***/ "../modules/ai/assets/js/editor/components/loader.js":
524 /*!***********************************************************!*\
525 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
526 \***********************************************************/
527 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
528
529 "use strict";
530
531
532 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
533 Object.defineProperty(exports, "__esModule", ({
534 value: true
535 }));
536 exports["default"] = void 0;
537 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
538 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
539 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
540 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
541 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
542 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
543 var _excluded = ["sx", "BoxProps"];
544 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; }
545 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; }
546 var Loader = function Loader(_ref) {
547 var _ref$sx = _ref.sx,
548 sx = _ref$sx === void 0 ? {} : _ref$sx,
549 _ref$BoxProps = _ref.BoxProps,
550 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
551 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
552 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
553 width: "100%",
554 display: "flex",
555 alignItems: "center"
556 }, BoxProps, {
557 sx: _objectSpread({
558 px: 1.5,
559 minHeight: function minHeight(theme) {
560 return theme.spacing(5);
561 }
562 }, BoxProps.sx || {})
563 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
564 color: "secondary"
565 }, props, {
566 sx: _objectSpread({
567 width: '100%'
568 }, sx)
569 })));
570 };
571 Loader.propTypes = {
572 sx: _propTypes.default.object,
573 BoxProps: _propTypes.default.object
574 };
575 var _default = exports["default"] = Loader;
576
577 /***/ }),
578
579 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
580 /*!******************************************************************!*\
581 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
582 \******************************************************************/
583 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
584
585 "use strict";
586
587
588 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
589 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
590 Object.defineProperty(exports, "__esModule", ({
591 value: true
592 }));
593 exports["default"] = void 0;
594 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
595 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
596 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
597 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
598 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
599 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
600 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
601 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
602 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); }
603 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; }
604 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; }
605 var DraggablePaper = function DraggablePaper(props) {
606 var _useState = (0, _react.useState)({
607 x: 0,
608 y: 0
609 }),
610 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
611 position = _useState2[0],
612 setPosition = _useState2[1];
613 var paperRef = (0, _react.useRef)(null);
614 var timeout = (0, _react.useRef)(null);
615 var onDrag = function onDrag(_e, _ref) {
616 var x = _ref.x,
617 y = _ref.y;
618 return setPosition({
619 x: x,
620 y: y
621 });
622 };
623 var handlePositionBoundaries = function handlePositionBoundaries() {
624 clearTimeout(timeout.current);
625
626 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
627 timeout.current = setTimeout(function () {
628 var _paperRef$current;
629 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
630 if (dialogTop < 0) {
631 setPosition(function (prev) {
632 return _objectSpread(_objectSpread({}, prev), {}, {
633 y: prev.y - dialogTop
634 });
635 });
636 }
637 }, 50);
638 };
639 (0, _react.useEffect)(function () {
640 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
641 resizeObserver.observe(paperRef.current);
642 return function () {
643 resizeObserver.disconnect();
644 };
645 }, []);
646 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
647 position: position,
648 onDrag: onDrag,
649 handle: ".MuiAppBar-root",
650 cancel: '[class*="MuiDialogContent-root"]',
651 bounds: "parent"
652 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
653 ref: paperRef
654 })));
655 };
656 var PromptDialog = function PromptDialog(props) {
657 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
658 scroll: "paper",
659 open: true,
660 fullWidth: true,
661 hideBackdrop: true,
662 PaperComponent: DraggablePaper,
663 disableScrollLock: true,
664 sx: {
665 '& .MuiDialog-container': {
666 alignItems: 'flex-start',
667 mt: '18vh'
668 }
669 },
670 PaperProps: {
671 sx: {
672 m: 0,
673 maxHeight: '76vh'
674 }
675 }
676 }, props), props.children);
677 };
678 PromptDialog.propTypes = {
679 onClose: _propTypes.default.func.isRequired,
680 children: _propTypes.default.node,
681 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
682 };
683 PromptDialog.Header = _dialogHeader.default;
684 PromptDialog.Content = _ui.DialogContent;
685 var _default = exports["default"] = PromptDialog;
686
687 /***/ }),
688
689 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
690 /*!*************************************************************************!*\
691 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
692 \*************************************************************************/
693 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
694
695 "use strict";
696 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
697
698
699 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
700 Object.defineProperty(exports, "__esModule", ({
701 value: true
702 }));
703 exports["default"] = void 0;
704 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
705 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
706 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
707 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
708 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
709 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
710 var _excluded = ["error", "onRetry", "actionPosition"];
711 var PromptErrorMessage = function PromptErrorMessage(_ref) {
712 var error = _ref.error,
713 _ref$onRetry = _ref.onRetry,
714 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
715 _ref$actionPosition = _ref.actionPosition,
716 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
717 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
718 function getQuotaReachedTrailMessage(featureName) {
719 if (!featureName) {
720 return {
721 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
722 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
723 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
724 buttonAction: function buttonAction() {
725 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
726 }
727 };
728 }
729 return {
730 // Translators: %s is the feature name.
731 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
732 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
733 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
734 buttonAction: function buttonAction() {
735 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
736 }
737 };
738 }
739 function getErrorMessage() {
740 var _error$extra_data;
741 var errMsg = error.message || error;
742 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
743 var messages = {
744 default: {
745 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
746 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
747 buttonText: (0, _i18n.__)('Try again', 'elementor'),
748 buttonAction: onRetry
749 },
750 service_outage_internal: {
751 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
752 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
753 buttonText: (0, _i18n.__)('Try again', 'elementor'),
754 buttonAction: onRetry
755 },
756 invalid_connect_data: {
757 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
758 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
759 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
760 target: "_blank",
761 rel: "noreferrer"
762 }, (0, _i18n.__)('Show me how', 'elementor'))),
763 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
764 buttonAction: function buttonAction() {
765 return window.open(window.ElementorAiConfig.connect_url);
766 }
767 },
768 not_connected: {
769 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
770 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
771 buttonText: (0, _i18n.__)('Connect', 'elementor'),
772 buttonAction: function buttonAction() {
773 return window.open(window.ElementorAiConfig.connect_url);
774 }
775 },
776 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
777 quota_reached_subscription: {
778 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
779 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
780 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
781 buttonAction: function buttonAction() {
782 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
783 }
784 },
785 rate_limit_network: {
786 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
787 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
788 },
789 invalid_prompts: {
790 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
791 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
792 },
793 service_unavailable: {
794 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
795 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
796 buttonText: (0, _i18n.__)('Try again', 'elementor'),
797 buttonAction: onRetry
798 },
799 request_timeout_error: {
800 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
801 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
802 buttonText: (0, _i18n.__)('Try again', 'elementor'),
803 buttonAction: onRetry
804 },
805 invalid_token: {
806 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
807 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
808 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
809 buttonAction: onRetry
810 },
811 file_too_large: {
812 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
813 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
814 },
815 image_resolution_maximum_exceeded: {
816 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The image resolution exceeds the maximum allowed size.', 'elementor')),
817 description: (0, _i18n.__)('Please upload a file with dimensions less than 2048x2048 pixels.', 'elementor')
818 },
819 external_service_unavailable: {
820 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Temporary external service issue', 'elementor')),
821 description: (0, _i18n.__)('It seems that one of our partner services is temporarily unavailable. Please try again in a few minutes.', 'elementor'),
822 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
823 buttonAction: onRetry
824 }
825 };
826 return messages[errMsg] || messages.default;
827 }
828 var message = getErrorMessage();
829 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
830 color: "inherit",
831 size: "small",
832 variant: "outlined",
833 onClick: message.buttonAction
834 }, message.buttonText);
835 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
836 severity: message.severity || 'error',
837 action: 'default' === actionPosition && action
838 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
839 sx: {
840 mt: 1
841 }
842 }, action));
843 };
844 PromptErrorMessage.propTypes = {
845 error: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
846 onRetry: _propTypes.default.func,
847 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
848 };
849 var _default = exports["default"] = PromptErrorMessage;
850
851 /***/ }),
852
853 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
854 /*!************************************************************************!*\
855 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
856 \************************************************************************/
857 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
858
859 "use strict";
860
861
862 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
863 Object.defineProperty(exports, "__esModule", ({
864 value: true
865 }));
866 exports["default"] = void 0;
867 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
868 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
869 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
870 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
871 var PromptLibraryLink = function PromptLibraryLink(props) {
872 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
873 variant: "body2",
874 color: "text.secondary"
875 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
876 href: props.libraryLink,
877 className: "elementor-clickable",
878 target: "_blank"
879 }, (0, _i18n.__)('prompt library')));
880 };
881 PromptLibraryLink.propTypes = {
882 libraryLink: _propTypes.default.string
883 };
884 var _default = exports["default"] = PromptLibraryLink;
885
886 /***/ }),
887
888 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
889 /*!*****************************************************************!*\
890 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
891 \*****************************************************************/
892 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
893
894 "use strict";
895
896
897 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
898 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
899 Object.defineProperty(exports, "__esModule", ({
900 value: true
901 }));
902 exports["default"] = void 0;
903 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
904 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
905 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
906 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
907 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
908 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
909 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); }
910 var popoverId = 'e-ai-upgrade-popover';
911 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
912 var theme = _ref.theme;
913 return {
914 position: 'relative',
915 '[data-popper-placement="top"] &': {
916 marginBottom: theme.spacing(2.5)
917 },
918 '[data-popper-placement="bottom"] &': {
919 marginTop: theme.spacing(2.5)
920 },
921 padding: theme.spacing(3),
922 boxShadow: theme.shadows[4],
923 zIndex: '9999'
924 };
925 });
926 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
927 var theme = _ref2.theme;
928 return {
929 width: theme.spacing(5),
930 height: theme.spacing(2.5),
931 position: 'absolute',
932 overflow: 'hidden',
933 // Override Popper inline styles.
934 left: '50% !important',
935 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
936 '[data-popper-placement="top"] &': {
937 top: '100%'
938 },
939 '[data-popper-placement="bottom"] &': {
940 '--rotate': '180deg',
941 top: "calc(".concat(theme.spacing(2.5), " * -1)")
942 },
943 '&::after': {
944 backgroundColor: theme.palette.background.paper,
945 content: '""',
946 display: 'block',
947 position: 'absolute',
948 width: theme.spacing(2.5),
949 height: theme.spacing(2.5),
950 top: 0,
951 left: '50%',
952 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
953 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
954 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
955 }
956 };
957 });
958 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')];
959 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
960 return {
961 '& .MuiChip-label': {
962 lineHeight: 1.5
963 },
964 '& .MuiSvgIcon-root.MuiChip-icon': {
965 fontSize: '1.25rem'
966 }
967 };
968 });
969 var UpgradeChip = function UpgradeChip(_ref3) {
970 var _ref3$hasSubscription = _ref3.hasSubscription,
971 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
972 _ref3$usagePercentage = _ref3.usagePercentage,
973 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
974 var _useState = (0, _react.useState)(false),
975 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
976 isPopoverOpen = _useState2[0],
977 setIsPopoverOpen = _useState2[1];
978 var anchorEl = (0, _react.useRef)(null);
979 var arrowEl = (0, _react.useRef)(null);
980 var showPopover = function showPopover() {
981 return setIsPopoverOpen(true);
982 };
983 var hidePopover = function hidePopover() {
984 return setIsPopoverOpen(false);
985 };
986 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
987 if (hasSubscription) {
988 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
989 }
990 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
991 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
992 component: "span",
993 "aria-owns": isPopoverOpen ? popoverId : undefined,
994 "aria-haspopup": "true",
995 onMouseEnter: showPopover,
996 onMouseLeave: hidePopover,
997 ref: anchorEl,
998 display: "flex",
999 alignItems: "center"
1000 }, /*#__PURE__*/_react.default.createElement(Chip, {
1001 color: "promotion",
1002 label: (0, _i18n.__)('Upgrade', 'elementor'),
1003 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1004 size: "small"
1005 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
1006 open: isPopoverOpen,
1007 anchorEl: anchorEl.current,
1008 sx: {
1009 zIndex: '170001',
1010 maxWidth: 300
1011 },
1012 modifiers: [{
1013 name: 'arrow',
1014 enabled: true,
1015 options: {
1016 element: arrowEl.current
1017 }
1018 }]
1019 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
1020 ref: arrowEl
1021 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1022 variant: "h5",
1023 color: "text.primary"
1024 }, (0, _i18n.__)('Unlimited access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
1025 sx: {
1026 mb: 1
1027 }
1028 }, upgradeBullets.map(function (bullet, index) {
1029 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
1030 key: index,
1031 disableGutters: true,
1032 sx: {
1033 alignItems: 'flex-start'
1034 }
1035 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
1036 sx: {
1037 m: 0
1038 }
1039 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1040 variant: "body2"
1041 }, bullet)));
1042 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
1043 variant: "contained",
1044 color: "promotion",
1045 size: "small",
1046 href: actionUrl,
1047 target: "_blank",
1048 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1049 sx: {
1050 '&:hover': {
1051 color: 'promotion.contrastText'
1052 }
1053 }
1054 }, actionLabel))));
1055 };
1056 var _default = exports["default"] = UpgradeChip;
1057 UpgradeChip.propTypes = {
1058 hasSubscription: _propTypes.default.bool,
1059 usagePercentage: _propTypes.default.number
1060 };
1061
1062 /***/ }),
1063
1064 /***/ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js":
1065 /*!**************************************************************************!*\
1066 !*** ../modules/ai/assets/js/editor/components/voice-promotion-alert.js ***!
1067 \**************************************************************************/
1068 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1069
1070 "use strict";
1071
1072
1073 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1074 Object.defineProperty(exports, "__esModule", ({
1075 value: true
1076 }));
1077 exports["default"] = exports.VoicePromotionAlert = void 0;
1078 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1079 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1080 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1081 var _bulbIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/bulb-icon */ "../modules/ai/assets/js/editor/icons/bulb-icon.js"));
1082 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
1083 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1084 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1085 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; }
1086 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; }
1087 var VoicePromotionAlert = exports.VoicePromotionAlert = function VoicePromotionAlert(props) {
1088 var _useIntroduction = (0, _useIntroduction2.default)(props.introductionKey),
1089 isViewed = _useIntroduction.isViewed,
1090 markAsViewed = _useIntroduction.markAsViewed;
1091 if (isViewed) {
1092 return null;
1093 }
1094 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
1095 sx: _objectSpread({
1096 mt: 2
1097 }, props.sx),
1098 alignItems: "top"
1099 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
1100 severity: "info",
1101 variant: "standard",
1102 icon: /*#__PURE__*/_react.default.createElement(_bulbIcon.default, {
1103 sx: {
1104 alignSelf: 'flex-start'
1105 }
1106 }),
1107 onClose: markAsViewed
1108 }, (0, _i18n.__)('Get improved results from AI by adding personal context.', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
1109 onClick: function onClick() {
1110 return $e.route('panel/global/menu');
1111 },
1112 className: "elementor-clickable",
1113 style: {
1114 textDecoration: 'none'
1115 },
1116 color: "info.main",
1117 href: "#"
1118 }, (0, _i18n.__)('Let’s do it', 'elementor'))));
1119 };
1120 VoicePromotionAlert.propTypes = {
1121 sx: _propTypes.default.object,
1122 introductionKey: _propTypes.default.string
1123 };
1124 var _default = exports["default"] = VoicePromotionAlert;
1125
1126 /***/ }),
1127
1128 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
1129 /*!******************************************************************!*\
1130 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
1131 \******************************************************************/
1132 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1133
1134 "use strict";
1135
1136
1137 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1138 Object.defineProperty(exports, "__esModule", ({
1139 value: true
1140 }));
1141 exports["default"] = void 0;
1142 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1143 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1144 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1145 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1146 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1147 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1148 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
1149 var _excluded = ["sx"];
1150 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; }
1151 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; }
1152 var WizardDialog = function WizardDialog(props) {
1153 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
1154 open: true,
1155 onClose: props.onClose,
1156 fullWidth: true,
1157 hideBackdrop: true,
1158 maxWidth: "lg",
1159 PaperProps: {
1160 sx: {
1161 height: '88vh'
1162 }
1163 },
1164 sx: {
1165 zIndex: 9999
1166 }
1167 }, props.children);
1168 };
1169 WizardDialog.propTypes = {
1170 onClose: _propTypes.default.func.isRequired,
1171 children: _propTypes.default.node.isRequired
1172 };
1173 var WizardDialogContent = function WizardDialogContent(_ref) {
1174 var _ref$sx = _ref.sx,
1175 sx = _ref$sx === void 0 ? {} : _ref$sx,
1176 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1177 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
1178 sx: _objectSpread({
1179 display: 'flex',
1180 flexDirection: 'column',
1181 justifyContent: 'center'
1182 }, sx)
1183 }));
1184 };
1185 WizardDialogContent.propTypes = {
1186 sx: _propTypes.default.object
1187 };
1188 WizardDialog.Header = _dialogHeader.default;
1189 WizardDialog.Content = WizardDialogContent;
1190 var _default = exports["default"] = WizardDialog;
1191
1192 /***/ }),
1193
1194 /***/ "../modules/ai/assets/js/editor/context/requests-ids.js":
1195 /*!**************************************************************!*\
1196 !*** ../modules/ai/assets/js/editor/context/requests-ids.js ***!
1197 \**************************************************************/
1198 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1199
1200 "use strict";
1201
1202
1203 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1204 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1205 Object.defineProperty(exports, "__esModule", ({
1206 value: true
1207 }));
1208 exports["default"] = exports.RequestIdsProvider = void 0;
1209 exports.generateIds = generateIds;
1210 exports.useRequestIds = exports.getUniqueId = void 0;
1211 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1212 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1213 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1214 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); }
1215 var Context = (0, _react.createContext)({});
1216 var useRequestIds = exports.useRequestIds = function useRequestIds() {
1217 var context = (0, _react.useContext)(Context);
1218 if (!context) {
1219 throw new Error('useRequestIds must be used within a RequestIdsProvider');
1220 }
1221 return context;
1222 };
1223 var getUniqueId = exports.getUniqueId = function getUniqueId(prefix) {
1224 return prefix + '-' + Math.random().toString(16).substr(2, 7);
1225 };
1226 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
1227 function generateIds(template) {
1228 var _template$elements;
1229 template.id = getUniqueId().toString();
1230 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
1231 template.elements.map(function (child) {
1232 return generateIds(child);
1233 });
1234 }
1235 return template;
1236 }
1237 var RequestIdsProvider = exports.RequestIdsProvider = function RequestIdsProvider(props) {
1238 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
1239 var sessionId = (0, _react.useRef)('');
1240 var generateId = (0, _react.useRef)('');
1241 var batchId = (0, _react.useRef)('');
1242 var requestId = (0, _react.useRef)('');
1243 sessionId.current = getUniqueId('session');
1244 var setGenerate = function setGenerate() {
1245 generateId.current = getUniqueId('generate');
1246 return generateId;
1247 };
1248 var setBatch = function setBatch() {
1249 batchId.current = getUniqueId('batch');
1250 return batchId;
1251 };
1252 var setRequest = function setRequest() {
1253 requestId.current = getUniqueId('request');
1254 return requestId;
1255 };
1256 var _useState = (0, _react.useState)(0),
1257 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1258 usagePercentage = _useState2[0],
1259 setUsagePercentage = _useState2[1];
1260 var updateUsagePercentage = function updateUsagePercentage(newPercentage) {
1261 setUsagePercentage(newPercentage);
1262 };
1263 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
1264 value: {
1265 editorSessionId: editorSessionId,
1266 sessionId: sessionId,
1267 generateId: generateId,
1268 batchId: batchId,
1269 requestId: requestId,
1270 setGenerate: setGenerate,
1271 setBatch: setBatch,
1272 setRequest: setRequest,
1273 usagePercentage: usagePercentage,
1274 updateUsagePercentage: updateUsagePercentage
1275 }
1276 }, props.children);
1277 };
1278 RequestIdsProvider.propTypes = {
1279 children: _propTypes.default.node.isRequired
1280 };
1281 var _default = exports["default"] = Context;
1282
1283 /***/ }),
1284
1285 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
1286 /*!****************************************************************!*\
1287 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
1288 \****************************************************************/
1289 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1290
1291 "use strict";
1292
1293
1294 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1295 Object.defineProperty(exports, "__esModule", ({
1296 value: true
1297 }));
1298 exports["default"] = useIntroduction;
1299 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1300 var _react = __webpack_require__(/*! react */ "react");
1301 function useIntroduction(key) {
1302 var _window$elementor$con, _window$elementorAdmi, _globalConfig$introdu;
1303 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;
1304 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
1305 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1306 isViewed = _useState2[0],
1307 setIsViewed = _useState2[1];
1308 function markAsViewed() {
1309 if (!key) {
1310 return Promise.reject();
1311 }
1312 return new Promise(function (resolve, reject) {
1313 if (isViewed) {
1314 reject();
1315 }
1316 setIsViewed(true);
1317 elementorCommon.ajax.addRequest('introduction_viewed', {
1318 data: {
1319 introductionKey: key
1320 },
1321 error: function error() {
1322 setIsViewed(false);
1323 reject();
1324 },
1325 success: function success() {
1326 setIsViewed(true);
1327 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
1328 globalConfig.introduction[key] = true;
1329 }
1330 resolve();
1331 }
1332 });
1333 });
1334 }
1335 return {
1336 isViewed: isViewed,
1337 markAsViewed: markAsViewed
1338 };
1339 }
1340
1341 /***/ }),
1342
1343 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
1344 /*!*******************************************************************!*\
1345 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
1346 \*******************************************************************/
1347 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1348
1349 "use strict";
1350
1351
1352 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1353 Object.defineProperty(exports, "__esModule", ({
1354 value: true
1355 }));
1356 exports["default"] = void 0;
1357 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1358 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
1359 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
1360 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
1361 var getResult = function getResult(prompt, type, enhanceType) {
1362 if (!enhancePromptMap.has(type)) {
1363 throw new Error("Invalid prompt type: ".concat(type));
1364 }
1365 return enhancePromptMap.get(type)(prompt, enhanceType);
1366 };
1367
1368 /**
1369 * Hook to enhance a prompt.
1370 *
1371 * @param {string} prompt
1372 * @param {'media' | 'layout'} type
1373 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
1374 */
1375 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
1376 var _useConfig = (0, _config.useConfig)(),
1377 mode = _useConfig.mode;
1378 var _usePrompt = (0, _usePrompt2.default)(function () {
1379 return getResult(prompt, type, mode);
1380 }, prompt),
1381 enhancedData = _usePrompt.data,
1382 isEnhancing = _usePrompt.isLoading,
1383 enhance = _usePrompt.send;
1384 return {
1385 enhance: enhance,
1386 isEnhancing: isEnhancing,
1387 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
1388 };
1389 };
1390 var _default = exports["default"] = usePromptEnhancer;
1391
1392 /***/ }),
1393
1394 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
1395 /*!**********************************************************!*\
1396 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
1397 \**********************************************************/
1398 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1399
1400 "use strict";
1401
1402
1403 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1404 Object.defineProperty(exports, "__esModule", ({
1405 value: true
1406 }));
1407 exports["default"] = void 0;
1408 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1409 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1410 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1411 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1412 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1413 var _react = __webpack_require__(/*! react */ "react");
1414 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1415 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
1416 var _excluded = ["text", "response_id", "usage", "images"];
1417 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; }
1418 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; }
1419 var normalizeResponse = function normalizeResponse(_ref) {
1420 var text = _ref.text,
1421 responseId = _ref.response_id,
1422 usage = _ref.usage,
1423 images = _ref.images,
1424 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1425 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
1426 var credits = Math.max(creditsData, 0);
1427 var result = text || images;
1428 var normalized = {
1429 result: result,
1430 responseId: responseId,
1431 credits: credits,
1432 usagePercentage: usage === null || usage === void 0 ? void 0 : usage.usagePercentage
1433 };
1434 if (optional.base_template_id) {
1435 normalized.baseTemplateId = optional.base_template_id;
1436 }
1437 normalized.type = optional.template_type;
1438 return normalized;
1439 };
1440 var usePrompt = function usePrompt(fetchData, initialState) {
1441 var _useState = (0, _react.useState)(false),
1442 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1443 isLoading = _useState2[0],
1444 setIsLoading = _useState2[1];
1445 var _useState3 = (0, _react.useState)(''),
1446 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1447 error = _useState4[0],
1448 setError = _useState4[1];
1449 var _useState5 = (0, _react.useState)(initialState),
1450 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1451 data = _useState6[0],
1452 setData = _useState6[1];
1453 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
1454 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
1455 usagePercentage = _useRequestIds.usagePercentage;
1456 var send = (0, _react.useRef)(/*#__PURE__*/function () {
1457 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
1458 return _regenerator.default.wrap(function (_context) {
1459 while (1) switch (_context.prev = _context.next) {
1460 case 0:
1461 return _context.abrupt("return", payload);
1462 case 1:
1463 case "end":
1464 return _context.stop();
1465 }
1466 }, _callee);
1467 }));
1468 return function (_x) {
1469 return _ref2.apply(this, arguments);
1470 };
1471 }());
1472 var sendUsageData = (0, _react.useRef)(function () {});
1473 (0, _react.useEffect)(function () {
1474 var newUsageValue = data === null || data === void 0 ? void 0 : data.usagePercentage;
1475 if (newUsageValue && newUsageValue !== usagePercentage) {
1476 updateUsagePercentage(newUsageValue);
1477 }
1478 }, [data, usagePercentage, updateUsagePercentage]);
1479 var _useRequestIds2 = (0, _requestsIds.useRequestIds)(),
1480 setRequest = _useRequestIds2.setRequest,
1481 editorSessionId = _useRequestIds2.editorSessionId,
1482 sessionId = _useRequestIds2.sessionId,
1483 generateId = _useRequestIds2.generateId,
1484 batchId = _useRequestIds2.batchId;
1485 send.current = (0, _react.useCallback)(/*#__PURE__*/function () {
1486 var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(payload) {
1487 return _regenerator.default.wrap(function (_context2) {
1488 while (1) switch (_context2.prev = _context2.next) {
1489 case 0:
1490 return _context2.abrupt("return", new Promise(function (resolve, reject) {
1491 setError('');
1492 setIsLoading(true);
1493 var requestId = setRequest();
1494 var requestIds = {
1495 editorSessionId: editorSessionId.current,
1496 sessionId: sessionId.current,
1497 generateId: generateId.current,
1498 batchId: batchId.current,
1499 requestId: requestId.current
1500 };
1501 payload = _objectSpread(_objectSpread({}, payload), {}, {
1502 requestIds: requestIds
1503 });
1504 fetchData(payload).then(function (result) {
1505 var normalizedData = normalizeResponse(result);
1506 setData(normalizedData);
1507 resolve(normalizedData);
1508 }).catch(function (err) {
1509 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
1510 setError(finalError);
1511 reject(finalError);
1512 }).finally(function () {
1513 return setIsLoading(false);
1514 });
1515 }));
1516 case 1:
1517 case "end":
1518 return _context2.stop();
1519 }
1520 }, _callee2);
1521 }));
1522 return function (_x2) {
1523 return _ref3.apply(this, arguments);
1524 };
1525 }(), [batchId, editorSessionId, fetchData, generateId, sessionId, setRequest]);
1526 sendUsageData.current = (0, _react.useCallback)(function () {
1527 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
1528 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
1529 }, [data]);
1530 var reset = function reset() {
1531 setData(function (_ref4) {
1532 var credits = _ref4.credits;
1533 return {
1534 credits: credits,
1535 result: '',
1536 responseId: ''
1537 };
1538 });
1539 setError('');
1540 setIsLoading(false);
1541 };
1542 var setResult = function setResult(result) {
1543 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1544 var updatedResult = _objectSpread({}, data);
1545 updatedResult.result = result;
1546 if (responseId) {
1547 updatedResult.responseId = responseId;
1548 }
1549 setData(updatedResult);
1550 };
1551 return {
1552 isLoading: isLoading,
1553 error: error,
1554 data: data,
1555 setResult: setResult,
1556 reset: reset,
1557 send: send.current,
1558 sendUsageData: sendUsageData.current
1559 };
1560 };
1561 var _default = exports["default"] = usePrompt;
1562
1563 /***/ }),
1564
1565 /***/ "../modules/ai/assets/js/editor/hooks/use-timeout.js":
1566 /*!***********************************************************!*\
1567 !*** ../modules/ai/assets/js/editor/hooks/use-timeout.js ***!
1568 \***********************************************************/
1569 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1570
1571 "use strict";
1572
1573
1574 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1575 Object.defineProperty(exports, "__esModule", ({
1576 value: true
1577 }));
1578 exports.useTimeout = void 0;
1579 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1580 var _react = __webpack_require__(/*! react */ "react");
1581 var useTimeout = exports.useTimeout = function useTimeout(delay) {
1582 var _useState = (0, _react.useState)(false),
1583 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1584 isTimeout = _useState2[0],
1585 setIsTimeout = _useState2[1];
1586 var timeoutIdRef = (0, _react.useRef)(null);
1587 var turnOffTimeout = function turnOffTimeout() {
1588 clearTimeout(timeoutIdRef.current);
1589 setIsTimeout(false);
1590 };
1591 (0, _react.useEffect)(function () {
1592 timeoutIdRef.current = setTimeout(function () {
1593 setIsTimeout(true);
1594 }, delay);
1595 return function () {
1596 clearTimeout(timeoutIdRef.current);
1597 };
1598 }, [delay]);
1599 return [isTimeout, turnOffTimeout];
1600 };
1601
1602 /***/ }),
1603
1604 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
1605 /*!*************************************************************!*\
1606 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
1607 \*************************************************************/
1608 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1609
1610 "use strict";
1611
1612
1613 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1614 Object.defineProperty(exports, "__esModule", ({
1615 value: true
1616 }));
1617 exports["default"] = void 0;
1618 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1619 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1620 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1621 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1622 var _react = __webpack_require__(/*! react */ "react");
1623 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1624 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1625 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; }
1626 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; }
1627 var useUserInfo = function useUserInfo() {
1628 var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1629 var _useState = (0, _react.useState)(false),
1630 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1631 isLoaded = _useState2[0],
1632 setIsLoaded = _useState2[1];
1633 var _useState3 = (0, _react.useState)(false),
1634 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1635 isLoading = _useState4[0],
1636 setIsLoading = _useState4[1];
1637 var _useState5 = (0, _react.useState)({
1638 is_connected: false,
1639 is_get_started: false,
1640 connect_url: '',
1641 usage: {
1642 hasAiSubscription: false,
1643 quota: 0,
1644 usedQuota: 0
1645 }
1646 }),
1647 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1648 userInfo = _useState6[0],
1649 setUserInfo = _useState6[1];
1650 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
1651 var usagePercentage = userInfo.usage.quota ? userInfo.usage.usedQuota / userInfo.usage.quota * 100 : 0;
1652 var fetchData = /*#__PURE__*/function () {
1653 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1654 var userInfoResult;
1655 return _regenerator.default.wrap(function (_context) {
1656 while (1) switch (_context.prev = _context.next) {
1657 case 0:
1658 setIsLoading(true);
1659 _context.next = 1;
1660 return (0, _api.getUserInformation)(immediately);
1661 case 1:
1662 userInfoResult = _context.sent;
1663 setUserInfo(function (prevState) {
1664 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
1665 });
1666 setIsLoaded(true);
1667 setIsLoading(false);
1668 case 2:
1669 case "end":
1670 return _context.stop();
1671 }
1672 }, _callee);
1673 }));
1674 return function fetchData() {
1675 return _ref.apply(this, arguments);
1676 };
1677 }();
1678 if (!isLoaded && !isLoading) {
1679 fetchData();
1680 }
1681 return {
1682 isLoading: isLoading,
1683 isLoaded: isLoaded,
1684 isConnected: userInfo.is_connected,
1685 isGetStarted: userInfo.is_get_started,
1686 connectUrl: userInfo.connect_url,
1687 builderUrl: userInfo.usage.builderUrl,
1688 hasSubscription: userInfo.usage.hasAiSubscription,
1689 credits: credits < 0 ? 0 : credits,
1690 usagePercentage: Math.round(usagePercentage),
1691 fetchData: fetchData
1692 };
1693 };
1694 useUserInfo.propTypes = {
1695 immediately: _propTypes.default.bool
1696 };
1697 var _default = exports["default"] = useUserInfo;
1698
1699 /***/ }),
1700
1701 /***/ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js":
1702 /*!***************************************************************!*\
1703 !*** ../modules/ai/assets/js/editor/icons/arrow-left-icon.js ***!
1704 \***************************************************************/
1705 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1706
1707 "use strict";
1708
1709
1710 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1711 Object.defineProperty(exports, "__esModule", ({
1712 value: true
1713 }));
1714 exports["default"] = void 0;
1715 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1716 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1717 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1718 var ArrowLeftIcon = _react.default.forwardRef(function (props, ref) {
1719 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1720 viewBox: "0 0 24 24"
1721 }, props, {
1722 ref: ref
1723 }), /*#__PURE__*/_react.default.createElement("path", {
1724 fillRule: "evenodd",
1725 clipRule: "evenodd",
1726 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"
1727 }));
1728 });
1729 var _default = exports["default"] = ArrowLeftIcon;
1730
1731 /***/ }),
1732
1733 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
1734 /*!*********************************************************!*\
1735 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
1736 \*********************************************************/
1737 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1738
1739 "use strict";
1740
1741
1742 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1743 Object.defineProperty(exports, "__esModule", ({
1744 value: true
1745 }));
1746 exports["default"] = void 0;
1747 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1748 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1749 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1750 var BulbIcon = _react.default.forwardRef(function (props, ref) {
1751 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
1752 ref: ref
1753 }), /*#__PURE__*/_react.default.createElement("svg", {
1754 width: "22",
1755 height: "22",
1756 viewBox: "0 0 22 22",
1757 fill: "none",
1758 xmlns: "http://www.w3.org/2000/svg"
1759 }, /*#__PURE__*/_react.default.createElement("g", {
1760 clipPath: "url(#clip0_10743_8902)"
1761 }, /*#__PURE__*/_react.default.createElement("path", {
1762 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",
1763 stroke: "#2563EB",
1764 strokeWidth: "1.5",
1765 strokeLinecap: "round",
1766 strokeLinejoin: "round"
1767 }), /*#__PURE__*/_react.default.createElement("path", {
1768 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",
1769 stroke: "#2563EB",
1770 strokeWidth: "1.5",
1771 strokeLinecap: "round",
1772 strokeLinejoin: "round"
1773 }), /*#__PURE__*/_react.default.createElement("path", {
1774 d: "M10.0833 16.5H11.9166",
1775 stroke: "#2563EB",
1776 strokeWidth: "1.5",
1777 strokeLinecap: "round",
1778 strokeLinejoin: "round"
1779 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
1780 id: "clip0_10743_8902"
1781 }, /*#__PURE__*/_react.default.createElement("rect", {
1782 width: "22",
1783 height: "22",
1784 fill: "white"
1785 })))));
1786 });
1787 var _default = exports["default"] = BulbIcon;
1788
1789 /***/ }),
1790
1791 /***/ "../modules/ai/assets/js/editor/icons/copy-page-icon.js":
1792 /*!**************************************************************!*\
1793 !*** ../modules/ai/assets/js/editor/icons/copy-page-icon.js ***!
1794 \**************************************************************/
1795 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1796
1797 "use strict";
1798
1799
1800 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1801 Object.defineProperty(exports, "__esModule", ({
1802 value: true
1803 }));
1804 exports["default"] = void 0;
1805 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1806 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1807 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1808 var CopyPageIcon = _react.default.forwardRef(function (props, ref) {
1809 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1810 viewBox: "0 0 24 24"
1811 }, props, {
1812 ref: ref
1813 }), /*#__PURE__*/_react.default.createElement("path", {
1814 fillRule: "evenodd",
1815 clipRule: "evenodd",
1816 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"
1817 }));
1818 });
1819 var _default = exports["default"] = CopyPageIcon;
1820
1821 /***/ }),
1822
1823 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
1824 /*!*********************************************************!*\
1825 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
1826 \*********************************************************/
1827 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1828
1829 "use strict";
1830
1831
1832 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1833 Object.defineProperty(exports, "__esModule", ({
1834 value: true
1835 }));
1836 exports["default"] = void 0;
1837 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1838 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1839 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1840 var EditIcon = _react.default.forwardRef(function (props, ref) {
1841 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1842 viewBox: "0 0 24 24"
1843 }, props, {
1844 ref: ref
1845 }), /*#__PURE__*/_react.default.createElement("path", {
1846 fillRule: "evenodd",
1847 clipRule: "evenodd",
1848 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"
1849 }), /*#__PURE__*/_react.default.createElement("path", {
1850 fillRule: "evenodd",
1851 clipRule: "evenodd",
1852 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"
1853 }));
1854 });
1855 var _default = exports["default"] = EditIcon;
1856
1857 /***/ }),
1858
1859 /***/ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js":
1860 /*!********************************************************************!*\
1861 !*** ../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js ***!
1862 \********************************************************************/
1863 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1864
1865 "use strict";
1866
1867
1868 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1869 Object.defineProperty(exports, "__esModule", ({
1870 value: true
1871 }));
1872 exports["default"] = void 0;
1873 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1874 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1875 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1876 var ExpandDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1877 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1878 viewBox: "0 0 24 24"
1879 }, props, {
1880 ref: ref
1881 }), /*#__PURE__*/_react.default.createElement("path", {
1882 fillRule: "evenodd",
1883 clipRule: "evenodd",
1884 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"
1885 }));
1886 });
1887 var _default = exports["default"] = ExpandDiagonalIcon;
1888
1889 /***/ }),
1890
1891 /***/ "../modules/ai/assets/js/editor/icons/lock-icon.js":
1892 /*!*********************************************************!*\
1893 !*** ../modules/ai/assets/js/editor/icons/lock-icon.js ***!
1894 \*********************************************************/
1895 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1896
1897 "use strict";
1898
1899
1900 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1901 Object.defineProperty(exports, "__esModule", ({
1902 value: true
1903 }));
1904 exports["default"] = void 0;
1905 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1906 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1907 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1908 var LockIcon = _react.default.forwardRef(function (props, ref) {
1909 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1910 viewBox: "0 0 24 24"
1911 }, props, {
1912 ref: ref
1913 }), /*#__PURE__*/_react.default.createElement("path", {
1914 fillRule: "evenodd",
1915 clipRule: "evenodd",
1916 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"
1917 }), /*#__PURE__*/_react.default.createElement("path", {
1918 fillRule: "evenodd",
1919 clipRule: "evenodd",
1920 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"
1921 }), /*#__PURE__*/_react.default.createElement("path", {
1922 d: "M6 12H19V20H6V12Z"
1923 }));
1924 });
1925 var _default = exports["default"] = LockIcon;
1926
1927 /***/ }),
1928
1929 /***/ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js":
1930 /*!**********************************************************************!*\
1931 !*** ../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js ***!
1932 \**********************************************************************/
1933 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1934
1935 "use strict";
1936
1937
1938 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1939 Object.defineProperty(exports, "__esModule", ({
1940 value: true
1941 }));
1942 exports["default"] = void 0;
1943 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1944 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1945 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1946 var MinimizeDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1947 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1948 viewBox: "0 0 24 24"
1949 }, props, {
1950 ref: ref
1951 }), /*#__PURE__*/_react.default.createElement("path", {
1952 fillRule: "evenodd",
1953 clipRule: "evenodd",
1954 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"
1955 }));
1956 });
1957 var _default = exports["default"] = MinimizeDiagonalIcon;
1958
1959 /***/ }),
1960
1961 /***/ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js":
1962 /*!****************************************************************!*\
1963 !*** ../modules/ai/assets/js/editor/icons/plus-circle-icon.js ***!
1964 \****************************************************************/
1965 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1966
1967 "use strict";
1968
1969
1970 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1971 Object.defineProperty(exports, "__esModule", ({
1972 value: true
1973 }));
1974 exports["default"] = void 0;
1975 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1976 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1977 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1978 var PlusCircleIcon = _react.default.forwardRef(function (props, ref) {
1979 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1980 viewBox: "0 0 24 24"
1981 }, props, {
1982 ref: ref
1983 }), /*#__PURE__*/_react.default.createElement("path", {
1984 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"
1985 }));
1986 });
1987 var _default = exports["default"] = PlusCircleIcon;
1988
1989 /***/ }),
1990
1991 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
1992 /*!************************************************************!*\
1993 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
1994 \************************************************************/
1995 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1996
1997 "use strict";
1998
1999
2000 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2001 Object.defineProperty(exports, "__esModule", ({
2002 value: true
2003 }));
2004 exports["default"] = void 0;
2005 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2006 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2007 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2008 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
2009 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2010 viewBox: "0 0 24 24"
2011 }, props, {
2012 ref: ref
2013 }), /*#__PURE__*/_react.default.createElement("path", {
2014 fillRule: "evenodd",
2015 clipRule: "evenodd",
2016 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"
2017 }), /*#__PURE__*/_react.default.createElement("path", {
2018 fillRule: "evenodd",
2019 clipRule: "evenodd",
2020 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"
2021 }));
2022 });
2023 var _default = exports["default"] = RefreshIcon;
2024
2025 /***/ }),
2026
2027 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
2028 /*!*********************************************************!*\
2029 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
2030 \*********************************************************/
2031 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2032
2033 "use strict";
2034
2035
2036 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2037 Object.defineProperty(exports, "__esModule", ({
2038 value: true
2039 }));
2040 exports["default"] = void 0;
2041 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2042 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2043 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2044 var WandIcon = _react.default.forwardRef(function (props, ref) {
2045 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2046 viewBox: "0 0 24 24"
2047 }, props, {
2048 ref: ref
2049 }), /*#__PURE__*/_react.default.createElement("path", {
2050 fillRule: "evenodd",
2051 clipRule: "evenodd",
2052 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"
2053 }), /*#__PURE__*/_react.default.createElement("path", {
2054 fillRule: "evenodd",
2055 clipRule: "evenodd",
2056 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"
2057 }), /*#__PURE__*/_react.default.createElement("path", {
2058 fillRule: "evenodd",
2059 clipRule: "evenodd",
2060 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"
2061 }));
2062 });
2063 var _default = exports["default"] = WandIcon;
2064
2065 /***/ }),
2066
2067 /***/ "../modules/ai/assets/js/editor/icons/website-icon.js":
2068 /*!************************************************************!*\
2069 !*** ../modules/ai/assets/js/editor/icons/website-icon.js ***!
2070 \************************************************************/
2071 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2072
2073 "use strict";
2074
2075
2076 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2077 Object.defineProperty(exports, "__esModule", ({
2078 value: true
2079 }));
2080 exports["default"] = void 0;
2081 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2082 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2083 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2084 var WebsiteIcon = _react.default.forwardRef(function (props, ref) {
2085 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2086 viewBox: "0 0 24 24"
2087 }, props, {
2088 ref: ref
2089 }), /*#__PURE__*/_react.default.createElement("path", {
2090 fillRule: "evenodd",
2091 clipRule: "evenodd",
2092 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"
2093 }));
2094 });
2095 var _default = exports["default"] = WebsiteIcon;
2096
2097 /***/ }),
2098
2099 /***/ "../modules/ai/assets/js/editor/icons/x-circle-icon.js":
2100 /*!*************************************************************!*\
2101 !*** ../modules/ai/assets/js/editor/icons/x-circle-icon.js ***!
2102 \*************************************************************/
2103 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2104
2105 "use strict";
2106
2107
2108 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2109 Object.defineProperty(exports, "__esModule", ({
2110 value: true
2111 }));
2112 exports["default"] = void 0;
2113 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2114 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2115 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2116 var XCircleIcon = _react.default.forwardRef(function (props, ref) {
2117 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2118 viewBox: "0 0 24 24"
2119 }, props, {
2120 ref: ref
2121 }), /*#__PURE__*/_react.default.createElement("path", {
2122 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"
2123 }));
2124 });
2125 var _default = exports["default"] = XCircleIcon;
2126
2127 /***/ }),
2128
2129 /***/ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js":
2130 /*!********************************************************************************************!*\
2131 !*** ../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js ***!
2132 \********************************************************************************************/
2133 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2134
2135 "use strict";
2136
2137
2138 var _require = __webpack_require__(/*! ../../utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js"),
2139 renderLayoutApp = _require.renderLayoutApp,
2140 importToEditor = _require.importToEditor;
2141 var _require2 = __webpack_require__(/*! ../../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js"),
2142 MODE_VARIATION = _require2.MODE_VARIATION;
2143 var _require3 = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"),
2144 __ = _require3.__;
2145 var _require4 = __webpack_require__(/*! ../../pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"),
2146 ATTACHMENT_TYPE_JSON = _require4.ATTACHMENT_TYPE_JSON,
2147 ELEMENTOR_LIBRARY_SOURCE = _require4.ELEMENTOR_LIBRARY_SOURCE;
2148 var ApplyTemplateForAiBehavior;
2149 ApplyTemplateForAiBehavior = Marionette.Behavior.extend({
2150 ui: {
2151 applyButton: '.elementor-template-library-template-apply-ai',
2152 generateVariation: '.elementor-template-library-template-generate-variation'
2153 },
2154 events: {
2155 'click @ui.applyButton': 'onApplyButtonClick',
2156 'click @ui.generateVariation': 'onGenerateVariationClick'
2157 },
2158 onGenerateVariationClick: function onGenerateVariationClick() {
2159 var _libraryComponent$man;
2160 var args = {
2161 model: this.view.model
2162 };
2163 var libraryComponent = $e.components.get('library');
2164 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;
2165 libraryComponent.downloadTemplate(args, function (data) {
2166 var model = args.model;
2167 var attachment = {
2168 type: ATTACHMENT_TYPE_JSON,
2169 previewHTML: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
2170 content: data.content[0],
2171 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
2172 source: ELEMENTOR_LIBRARY_SOURCE
2173 };
2174 renderLayoutApp({
2175 parentContainer: elementor.getPreviewContainer(),
2176 mode: MODE_VARIATION,
2177 at: at,
2178 attachments: [attachment],
2179 onInsert: function onInsert(template) {
2180 importToEditor({
2181 parentContainer: elementor.getPreviewContainer(),
2182 at: at,
2183 template: template,
2184 historyTitle: __('AI Variation from library', 'elementor')
2185 });
2186 }
2187 });
2188 $e.run('library/close');
2189 });
2190 },
2191 onApplyButtonClick: function onApplyButtonClick() {
2192 var args = {
2193 model: this.view.model
2194 };
2195 this.ui.applyButton.addClass('elementor-disabled');
2196 var activeSource = args.model.get('source');
2197
2198 /**
2199 * Filter template source.
2200 *
2201 * @param bool isRemote - If `true` the source is a remote source.
2202 * @param string activeSource - The current template source.
2203 */
2204 var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
2205 if (isRemote && !elementor.config.library_connect.is_connected) {
2206 $e.route('library/connect', args);
2207 return;
2208 }
2209 $e.run('library/generate-ai-variation', args);
2210 }
2211 });
2212 module.exports = ApplyTemplateForAiBehavior;
2213
2214 /***/ }),
2215
2216 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2217 /*!************************************************************!*\
2218 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2219 \************************************************************/
2220 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2221
2222 "use strict";
2223
2224
2225 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2226 Object.defineProperty(exports, "__esModule", ({
2227 value: true
2228 }));
2229 exports["default"] = void 0;
2230 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2231 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2232 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2233 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2234 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2235 rtl: props.isRTL
2236 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2237 colorScheme: props.colorScheme
2238 }, props.children));
2239 };
2240 LayoutAppWrapper.propTypes = {
2241 children: _propTypes.default.node,
2242 isRTL: _propTypes.default.bool,
2243 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2244 };
2245 var _default = exports["default"] = LayoutAppWrapper;
2246
2247 /***/ }),
2248
2249 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2250 /*!****************************************************!*\
2251 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2252 \****************************************************/
2253 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2254
2255 "use strict";
2256
2257
2258 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2259 Object.defineProperty(exports, "__esModule", ({
2260 value: true
2261 }));
2262 exports["default"] = void 0;
2263 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2264 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2265 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2266 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2267 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2268 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2269 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2270 var LayoutApp = function LayoutApp(props) {
2271 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2272 onError: props.onClose
2273 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2274 mode: props.mode,
2275 attachmentsTypes: props.attachmentsTypes,
2276 onClose: props.onClose,
2277 onConnect: props.onConnect,
2278 onData: props.onData,
2279 onInsert: props.onInsert,
2280 onSelect: props.onSelect,
2281 onGenerate: props.onGenerate,
2282 currentContext: props.currentContext,
2283 hasPro: props.hasPro
2284 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2285 attachments: props.attachments
2286 }))));
2287 };
2288 LayoutApp.propTypes = {
2289 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2290 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2291 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2292 onClose: _propTypes.default.func.isRequired,
2293 onConnect: _propTypes.default.func.isRequired,
2294 onData: _propTypes.default.func.isRequired,
2295 onInsert: _propTypes.default.func.isRequired,
2296 onSelect: _propTypes.default.func.isRequired,
2297 onGenerate: _propTypes.default.func.isRequired,
2298 currentContext: _propTypes.default.object,
2299 hasPro: _propTypes.default.bool
2300 };
2301 var _default = exports["default"] = LayoutApp;
2302
2303 /***/ }),
2304
2305 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2306 /*!********************************************************!*\
2307 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2308 \********************************************************/
2309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2310
2311 "use strict";
2312
2313
2314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2315 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2316 Object.defineProperty(exports, "__esModule", ({
2317 value: true
2318 }));
2319 exports["default"] = void 0;
2320 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2321 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2322 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2323 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2324 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2325 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2326 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2327 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2328 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2329 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2330 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2331 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2332 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2333 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2334 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); }
2335 var LayoutContent = function LayoutContent(props) {
2336 var _useUserInfo = (0, _useUserInfo2.default)(),
2337 isLoading = _useUserInfo.isLoading,
2338 isConnected = _useUserInfo.isConnected,
2339 isGetStarted = _useUserInfo.isGetStarted,
2340 connectUrl = _useUserInfo.connectUrl,
2341 fetchData = _useUserInfo.fetchData,
2342 hasSubscription = _useUserInfo.hasSubscription,
2343 initialUsagePercentage = _useUserInfo.usagePercentage;
2344 var _useConfig = (0, _config.useConfig)(),
2345 onClose = _useConfig.onClose,
2346 onConnect = _useConfig.onConnect;
2347 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2348 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2349 usagePercentage = _useRequestIds.usagePercentage;
2350 var _useState = (0, _react.useState)(false),
2351 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2352 isInitUsageDone = _useState2[0],
2353 setIsInitUsageDone = _useState2[1];
2354 (0, _react.useEffect)(function () {
2355 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2356 updateUsagePercentage(initialUsagePercentage);
2357 setIsInitUsageDone(true);
2358 }
2359 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2360 if (isLoading || !isInitUsageDone) {
2361 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2362 onClose: onClose
2363 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2364 onClose: onClose
2365 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2366 dividers: true
2367 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2368 BoxProps: {
2369 sx: {
2370 px: 3
2371 }
2372 }
2373 })));
2374 }
2375 if (!isConnected) {
2376 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2377 onClose: onClose
2378 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2379 onClose: onClose
2380 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2381 dividers: true
2382 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2383 connectUrl: connectUrl,
2384 onSuccess: function onSuccess(data) {
2385 onConnect(data);
2386 fetchData();
2387 }
2388 })));
2389 }
2390 if (!isGetStarted) {
2391 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2392 onClose: onClose
2393 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2394 onClose: onClose
2395 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2396 dividers: true
2397 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2398 onSuccess: fetchData
2399 })));
2400 }
2401 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2402 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2403 attachments: props.attachments,
2404 DialogHeaderProps: {
2405 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2406 hasSubscription: hasSubscription,
2407 usagePercentage: usagePercentage
2408 })
2409 }
2410 });
2411 };
2412 LayoutContent.propTypes = {
2413 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2414 };
2415 var _default = exports["default"] = LayoutContent;
2416
2417 /***/ }),
2418
2419 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2420 /*!*************************************************************!*\
2421 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2422 \*************************************************************/
2423 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2424
2425 "use strict";
2426
2427
2428 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2429 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2430 Object.defineProperty(exports, "__esModule", ({
2431 value: true
2432 }));
2433 exports["default"] = void 0;
2434 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2435 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2436 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2437 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2438 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2439 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); }
2440 var Connect = function Connect(_ref) {
2441 var connectUrl = _ref.connectUrl,
2442 onSuccess = _ref.onSuccess;
2443 var approveButtonRef = (0, _react.useRef)();
2444 (0, _react.useEffect)(function () {
2445 // On local dev (as a standalone app), the connect lib is not loaded.
2446 if (!jQuery.fn.elementorConnect) {
2447 return;
2448 }
2449 jQuery(approveButtonRef.current).elementorConnect({
2450 success: function success(_, data) {
2451 return onSuccess(data);
2452 },
2453 error: function error() {
2454 throw new Error('Elementor AI: Failed to connect.');
2455 }
2456 });
2457 }, []);
2458 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2459 alignItems: "center",
2460 gap: 2
2461 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2462 sx: {
2463 color: 'text.primary',
2464 fontSize: '60px',
2465 mb: 1
2466 }
2467 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2468 variant: "h4",
2469 sx: {
2470 color: 'text.primary'
2471 }
2472 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2473 variant: "body2"
2474 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2475 variant: "caption",
2476 sx: {
2477 maxWidth: 520,
2478 textAlign: 'center'
2479 }
2480 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2481 href: "https://go.elementor.com/ai-terms/",
2482 target: "_blank",
2483 color: "info.main"
2484 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2485 href: "https://go.elementor.com/ai-privacy-policy/",
2486 target: "_blank",
2487 color: "info.main"
2488 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2489 ref: approveButtonRef,
2490 href: connectUrl,
2491 variant: "contained",
2492 sx: {
2493 mt: 1,
2494 '&:hover': {
2495 color: 'primary.contrastText'
2496 }
2497 }
2498 }, (0, _i18n.__)('Connect', 'elementor')));
2499 };
2500 Connect.propTypes = {
2501 connectUrl: _propTypes.default.string.isRequired,
2502 onSuccess: _propTypes.default.func.isRequired
2503 };
2504 var _default = exports["default"] = Connect;
2505
2506 /***/ }),
2507
2508 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2509 /*!**********************************************************************************!*\
2510 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2511 \**********************************************************************************/
2512 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2513
2514 "use strict";
2515
2516
2517 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2518 Object.defineProperty(exports, "__esModule", ({
2519 value: true
2520 }));
2521 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;
2522 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2523 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2524 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2525 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2526 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2527 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2528 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2529 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2530 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2531 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2532 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2533 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2534 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2535 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2536 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2537 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2538 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2539 var Attachments = function Attachments(props) {
2540 if (!props.attachments.length) {
2541 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2542 disabled: props.disabled,
2543 onAttach: props.onAttach,
2544 items: [{
2545 title: (0, _i18n.__)('Reference a website', 'elementor'),
2546 icon: _websiteIcon.default,
2547 type: ATTACHMENT_TYPE_URL
2548 }, {
2549 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2550 icon: _copyPageIcon.default,
2551 type: MENU_TYPE_LIBRARY
2552 }]
2553 });
2554 }
2555 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2556 direction: "row",
2557 spacing: 1
2558 }, props.attachments.map(function (attachment, index) {
2559 switch (attachment.type) {
2560 case ATTACHMENT_TYPE_JSON:
2561 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2562 key: index
2563 }, props));
2564 case ATTACHMENT_TYPE_URL:
2565 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2566 key: index
2567 }, props));
2568 default:
2569 return null;
2570 }
2571 }));
2572 };
2573 Attachments.propTypes = {
2574 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2575 onAttach: _propTypes.default.func.isRequired,
2576 onDetach: _propTypes.default.func,
2577 disabled: _propTypes.default.bool
2578 };
2579 var _default = exports["default"] = Attachments;
2580
2581 /***/ }),
2582
2583 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2584 /*!************************************************************************************************!*\
2585 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2586 \************************************************************************************************/
2587 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2588
2589 "use strict";
2590
2591
2592 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2593 Object.defineProperty(exports, "__esModule", ({
2594 value: true
2595 }));
2596 exports["default"] = exports.AttachDialog = void 0;
2597 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2598 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2599 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2600 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2601 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2602 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2603 var type = props.type;
2604 var url = props.url;
2605 switch (type) {
2606 case _attachments.ATTACHMENT_TYPE_URL:
2607 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2608 url: url,
2609 onAttach: props.onAttach,
2610 onClose: props.onClose
2611 });
2612 case _attachments.MENU_TYPE_LIBRARY:
2613 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2614 onAttach: props.onAttach,
2615 onClose: props.onClose
2616 });
2617 }
2618 return null;
2619 };
2620 AttachDialog.propTypes = {
2621 type: _propTypes.default.string,
2622 onAttach: _propTypes.default.func,
2623 onClose: _propTypes.default.func,
2624 url: _propTypes.default.string
2625 };
2626 var _default = exports["default"] = AttachDialog;
2627
2628 /***/ }),
2629
2630 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2631 /*!*************************************************************************************************!*\
2632 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2633 \*************************************************************************************************/
2634 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2635
2636 "use strict";
2637
2638
2639 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2640 Object.defineProperty(exports, "__esModule", ({
2641 value: true
2642 }));
2643 exports.LibraryDialog = void 0;
2644 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2645 var _react = __webpack_require__(/*! react */ "react");
2646 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2647 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2648 var isApplyingTemplate = (0, _react.useRef)(false);
2649 (0, _react.useEffect)(function () {
2650 var onLibraryHide = function onLibraryHide() {
2651 if (isApplyingTemplate.current) {
2652 return;
2653 }
2654 props.onClose();
2655 };
2656 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2657 return function () {
2658 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2659 };
2660 }, [props]);
2661 (0, _react.useEffect)(function () {
2662 var onMessage = function onMessage(event) {
2663 var _event$data = event.data,
2664 type = _event$data.type,
2665 json = _event$data.json,
2666 html = _event$data.html,
2667 label = _event$data.label,
2668 source = _event$data.source;
2669 switch (type) {
2670 case 'library/attach:start':
2671 isApplyingTemplate.current = true;
2672 break;
2673 case 'library/attach':
2674 props.onAttach([{
2675 type: _attachments.ATTACHMENT_TYPE_JSON,
2676 previewHTML: html,
2677 content: json,
2678 label: label,
2679 source: source
2680 }]);
2681 isApplyingTemplate.current = false;
2682 props.onClose();
2683 break;
2684 }
2685 };
2686 window.addEventListener('message', onMessage);
2687 return function () {
2688 window.removeEventListener('message', onMessage);
2689 };
2690 });
2691 $e.run('library/open', {
2692 toDefault: true,
2693 mode: 'ai-attachment'
2694 });
2695 isApplyingTemplate.current = false;
2696 return null;
2697 };
2698 LibraryDialog.propTypes = {
2699 onAttach: _propTypes.default.func.isRequired,
2700 onClose: _propTypes.default.func.isRequired
2701 };
2702
2703 /***/ }),
2704
2705 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2706 /*!***************************************************************************************!*\
2707 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2708 \***************************************************************************************/
2709 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2710
2711 "use strict";
2712
2713
2714 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2715 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2716 Object.defineProperty(exports, "__esModule", ({
2717 value: true
2718 }));
2719 exports.Menu = void 0;
2720 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2721 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2722 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2723 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2724 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2725 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2726 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2727 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2728 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); }
2729 var Menu = exports.Menu = function Menu(props) {
2730 var _useState = (0, _react.useState)(false),
2731 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2732 isOpen = _useState2[0],
2733 setIsOpen = _useState2[1];
2734 var _useState3 = (0, _react.useState)(null),
2735 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2736 selectedType = _useState4[0],
2737 setSelectedType = _useState4[1];
2738 var _useTheme = (0, _ui.useTheme)(),
2739 direction = _useTheme.direction;
2740 var anchorRef = (0, _react.useRef)(null);
2741 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2742 isViewed = _useIntroduction.isViewed,
2743 markAsViewed = _useIntroduction.markAsViewed;
2744 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2745 size: "small",
2746 ref: anchorRef,
2747 disabled: props.disabled,
2748 onClick: function onClick() {
2749 setIsOpen(true);
2750 if (!isViewed) {
2751 markAsViewed();
2752 }
2753 },
2754 color: "secondary"
2755 }, function () {
2756 if (isOpen) {
2757 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2758 fontSize: "small"
2759 });
2760 } else if (isViewed) {
2761 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2762 fontSize: "small"
2763 });
2764 }
2765 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2766 color: "primary",
2767 badgeContent: " ",
2768 variant: "dot"
2769 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2770 fontSize: "small"
2771 }));
2772 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2773 open: isOpen,
2774 anchorEl: anchorRef.current,
2775 onClose: function onClose() {
2776 return setIsOpen(false);
2777 },
2778 anchorOrigin: {
2779 vertical: 'bottom',
2780 horizontal: 'rtl' === direction ? 'right' : 'left'
2781 },
2782 transformOrigin: {
2783 vertical: 'top',
2784 horizontal: 'rtl' === direction ? 'right' : 'left'
2785 }
2786 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2787 sx: {
2788 width: 440
2789 }
2790 }, props.items.map(function (item) {
2791 var IconComponent = item.icon;
2792 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2793 key: item.type,
2794 onClick: function onClick() {
2795 setSelectedType(item.type);
2796 setIsOpen(false);
2797 }
2798 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2799 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2800 type: selectedType,
2801 onAttach: props.onAttach,
2802 onClose: function onClose() {
2803 setIsOpen(false);
2804 setSelectedType(null);
2805 }
2806 }));
2807 };
2808 Menu.propTypes = {
2809 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2810 title: _propTypes.default.string.isRequired,
2811 type: _propTypes.default.string.isRequired,
2812 icon: _propTypes.default.elementType
2813 })).isRequired,
2814 onAttach: _propTypes.default.func.isRequired,
2815 disabled: _propTypes.default.bool
2816 };
2817
2818 /***/ }),
2819
2820 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2821 /*!******************************************************************************************************!*\
2822 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2823 \******************************************************************************************************/
2824 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2825
2826 "use strict";
2827
2828
2829 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2830 Object.defineProperty(exports, "__esModule", ({
2831 value: true
2832 }));
2833 exports.PromptPowerNotice = void 0;
2834 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2835 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2836 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2837 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2838 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2839 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2840 isViewed = _useIntroduction.isViewed,
2841 markAsViewed = _useIntroduction.markAsViewed;
2842 if (isViewed) {
2843 return null;
2844 }
2845 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2846 sx: {
2847 pt: 2,
2848 px: 2,
2849 pb: 0
2850 }
2851 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2852 severity: "info",
2853 onClose: function onClose() {
2854 return markAsViewed();
2855 }
2856 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2857 variant: "body2",
2858 display: "inline-block",
2859 sx: {
2860 paddingInlineEnd: 1
2861 }
2862 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2863 variant: "body2",
2864 display: "inline-block"
2865 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2866 };
2867
2868 /***/ }),
2869
2870 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2871 /*!*************************************************************************************************!*\
2872 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2873 \*************************************************************************************************/
2874 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2875
2876 "use strict";
2877
2878
2879 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2880 Object.defineProperty(exports, "__esModule", ({
2881 value: true
2882 }));
2883 exports["default"] = exports.ThumbnailJson = void 0;
2884 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2885 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2886 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2887 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2888 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2889 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2890 var _props$attachments;
2891 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2892 return 'json' === item.type;
2893 });
2894 if (!attachment) {
2895 return null;
2896 }
2897 if (!attachment.previewHTML) {
2898 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2899 animation: "wave",
2900 variant: "rounded",
2901 width: 60,
2902 height: 60
2903 });
2904 }
2905 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2906 html: attachment.previewHTML,
2907 disabled: props.disabled
2908 });
2909 };
2910 ThumbnailJson.propTypes = {
2911 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2912 disabled: _propTypes.default.bool
2913 };
2914 var _default = exports["default"] = ThumbnailJson;
2915
2916 /***/ }),
2917
2918 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2919 /*!************************************************************************************************!*\
2920 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2921 \************************************************************************************************/
2922 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2923
2924 "use strict";
2925
2926
2927 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2928 Object.defineProperty(exports, "__esModule", ({
2929 value: true
2930 }));
2931 exports["default"] = exports.ThumbnailUrl = void 0;
2932 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2933 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2934 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2935 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2936 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2937 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2938 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2939 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2940 var _props$attachments;
2941 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2942 return 'url' === item.type;
2943 });
2944 if (!attachment) {
2945 return null;
2946 }
2947 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2948 sx: {
2949 position: 'relative',
2950 '&:hover::before': {
2951 content: '""',
2952 position: 'absolute',
2953 userSelect: 'none',
2954 inset: 0,
2955 backgroundColor: 'rgba(0,0,0,0.6)',
2956 borderRadius: 1,
2957 zIndex: 1
2958 },
2959 '&:hover .remove-attachment': {
2960 display: 'flex'
2961 }
2962 }
2963 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2964 className: "remove-attachment",
2965 size: "small",
2966 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2967 disabled: props.disabled,
2968 onClick: function onClick(event) {
2969 event.stopPropagation();
2970 props.onDetach();
2971 },
2972 sx: {
2973 display: 'none',
2974 position: 'absolute',
2975 insetInlineEnd: 4,
2976 insetBlockStart: 4,
2977 backgroundColor: 'secondary.main',
2978 zIndex: 1,
2979 borderRadius: 1,
2980 p: '3px',
2981 '&:hover': {
2982 backgroundColor: 'secondary.dark'
2983 }
2984 }
2985 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2986 sx: {
2987 fontSize: '1.125rem',
2988 color: 'common.white'
2989 }
2990 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2991 disabled: props.disabled,
2992 html: attachment.previewHTML
2993 }));
2994 };
2995 ThumbnailUrl.propTypes = {
2996 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2997 disabled: _propTypes.default.bool,
2998 onDetach: _propTypes.default.func
2999 };
3000 var _default = exports["default"] = ThumbnailUrl;
3001
3002 /***/ }),
3003
3004 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3005 /*!********************************************************************************************!*\
3006 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3007 \********************************************************************************************/
3008 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3009
3010 "use strict";
3011
3012
3013 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3014 Object.defineProperty(exports, "__esModule", ({
3015 value: true
3016 }));
3017 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3018 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3019 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3020 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3021 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3022 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3023 var _templateObject;
3024 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3025 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);
3026 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3027 var _props$html$match, _props$html$match2;
3028 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;
3029 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;
3030 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3031 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3032 var scaleFactor = Math.min(height, width);
3033 var scale = THUMBNAIL_SIZE / scaleFactor;
3034
3035 // Center the preview
3036 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3037 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3038 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3039 dir: "ltr",
3040 sx: {
3041 position: 'relative',
3042 cursor: 'default',
3043 overflow: 'hidden',
3044 border: '1px solid',
3045 borderColor: 'grey.300',
3046 borderRadius: 1,
3047 boxSizing: 'border-box',
3048 width: THUMBNAIL_SIZE,
3049 height: THUMBNAIL_SIZE,
3050 opacity: props.disabled ? 0.5 : 1
3051 }
3052 }, /*#__PURE__*/_react.default.createElement("iframe", {
3053 title: (0, _i18n.__)('Preview', 'elementor'),
3054 sandbox: "",
3055 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3056 style: {
3057 border: 'none',
3058 overflow: 'hidden',
3059 width: width,
3060 height: height,
3061 transform: "scale(".concat(scale, ")"),
3062 transformOrigin: "".concat(left, "px ").concat(top, "px")
3063 }
3064 }));
3065 };
3066 Thumbnail.propTypes = {
3067 html: _propTypes.default.string.isRequired,
3068 disabled: _propTypes.default.bool
3069 };
3070
3071 /***/ }),
3072
3073 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3074 /*!*********************************************************************************************!*\
3075 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3076 \*********************************************************************************************/
3077 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3078
3079 "use strict";
3080
3081
3082 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3083 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3084 Object.defineProperty(exports, "__esModule", ({
3085 value: true
3086 }));
3087 exports.UrlDialog = void 0;
3088 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3089 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3090 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3091 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3092 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3093 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3094 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3095 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3096 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3097 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3098 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3099 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); }
3100 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3101 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3102 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3103 isTimeout = _useTimeout2[0],
3104 turnOffTimeout = _useTimeout2[1];
3105 var _useUserInfo = (0, _useUserInfo2.default)(),
3106 isLoading = _useUserInfo.isLoading,
3107 initialUsagePercentage = _useUserInfo.usagePercentage;
3108 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3109 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3110 var _useState = (0, _react.useState)(false),
3111 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3112 isInitUsageDone = _useState2[0],
3113 setIsInitUsageDone = _useState2[1];
3114 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3115 remoteConfig = _useRemoteConfig.remoteConfig;
3116 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3117 var urlObject = builderUrl ? new URL(builderUrl) : {};
3118 var iframeOrigin = urlObject.origin;
3119 var isOpen = (0, _react.useRef)(false);
3120 (0, _react.useEffect)(function () {
3121 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3122 updateUsagePercentage(initialUsagePercentage);
3123 setIsInitUsageDone(true);
3124 }
3125 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3126 (0, _react.useEffect)(function () {
3127 if (!isOpen.current) {
3128 try {
3129 window.$e.run('ai-integration/open-choose-element', {
3130 url: props.url
3131 });
3132 isOpen.current = true;
3133 } catch (error) {
3134 // eslint-disable-next-line no-console
3135 console.error(error);
3136 }
3137 }
3138 }, [isOpen.current]);
3139 (0, _react.useEffect)(function () {
3140 var onMessage = function onMessage(event) {
3141 if (event.origin !== iframeOrigin) {
3142 return;
3143 }
3144 var _event$data = event.data,
3145 type = _event$data.type,
3146 html = _event$data.html,
3147 url = _event$data.url;
3148 switch (type) {
3149 case 'element-selector/close':
3150 isOpen.current = false;
3151 props.onClose();
3152 break;
3153 case 'element-selector/loaded':
3154 turnOffTimeout();
3155 isOpen.current = true;
3156 break;
3157 case 'element-selector/attach':
3158 props.onAttach([{
3159 type: 'url',
3160 previewHTML: html,
3161 content: html,
3162 label: url ? new URL(url).href : '',
3163 source: _attachments.USER_URL_SOURCE
3164 }]);
3165 break;
3166 }
3167 };
3168 window.addEventListener('message', onMessage);
3169 return function () {
3170 window.removeEventListener('message', onMessage);
3171 };
3172 }, [iframeOrigin, props, turnOffTimeout]);
3173 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3174 open: true,
3175 maxWidth: "lg"
3176 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3177 sx: {
3178 textAlign: 'center',
3179 padding: 3
3180 }
3181 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3182 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3183 onClose: props.onClose
3184 }));
3185 };
3186 UrlDialog.propTypes = {
3187 onAttach: _propTypes.default.func.isRequired,
3188 onClose: _propTypes.default.func.isRequired,
3189 url: _propTypes.default.string
3190 };
3191
3192 /***/ }),
3193
3194 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3195 /*!************************************************************************************!*\
3196 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3197 \************************************************************************************/
3198 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3199
3200 "use strict";
3201
3202
3203 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3204 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3205 Object.defineProperty(exports, "__esModule", ({
3206 value: true
3207 }));
3208 exports["default"] = void 0;
3209 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3210 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3211 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3212 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3213 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3214 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3215 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3216 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3217 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3218 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3219 var _excluded = ["sx", "PaperProps"];
3220 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); }
3221 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; }
3222 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; }
3223 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3224 return {
3225 '& .MuiDialog-container': {
3226 marginTop: 0,
3227 alignItems: 'flex-end',
3228 paddingBottom: '16vh'
3229 },
3230 '& .MuiPaper-root': {
3231 margin: 0,
3232 maxHeight: '80vh'
3233 }
3234 };
3235 });
3236 var DialogHeader = function DialogHeader(_ref) {
3237 var onClose = _ref.onClose,
3238 children = _ref.children;
3239 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3240 sx: {
3241 fontWeight: 'normal'
3242 },
3243 color: "transparent",
3244 position: "relative"
3245 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3246 variant: "dense"
3247 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3248 sx: {
3249 mr: 1
3250 }
3251 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3252 component: "span",
3253 variant: "subtitle2",
3254 sx: {
3255 fontWeight: 'bold',
3256 textTransform: 'uppercase'
3257 }
3258 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3259 label: (0, _i18n.__)('Beta', 'elementor'),
3260 color: "default",
3261 size: "small",
3262 sx: {
3263 ml: 1
3264 }
3265 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3266 direction: "row",
3267 spacing: 1,
3268 alignItems: "center",
3269 sx: {
3270 ml: 'auto'
3271 }
3272 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3273 size: "small",
3274 "aria-label": "close",
3275 onClick: onClose,
3276 sx: {
3277 '&.MuiButtonBase-root': {
3278 mr: -1
3279 }
3280 }
3281 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3282 };
3283 DialogHeader.propTypes = {
3284 children: _propTypes.default.node,
3285 onClose: _propTypes.default.func.isRequired
3286 };
3287 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3288 return {
3289 '&.MuiDialogContent-root': {
3290 padding: 0
3291 }
3292 };
3293 });
3294 var LayoutDialog = function LayoutDialog(_ref2) {
3295 var _ref2$sx = _ref2.sx,
3296 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3297 _ref2$PaperProps = _ref2.PaperProps,
3298 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3299 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3300 var _useState = (0, _react.useState)({
3301 pointerEvents: 'none'
3302 }),
3303 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3304 sxStyle = _useState2[0],
3305 setSxStyle = _useState2[1];
3306 var timeoutRef = (0, _react.useRef)(null);
3307
3308 /**
3309 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3310 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3311 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3312 */
3313 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3314 maxWidth: "md",
3315 PaperProps: _objectSpread({
3316 sx: {
3317 pointerEvents: 'auto'
3318 },
3319 onMouseEnter: function onMouseEnter() {
3320 clearTimeout(timeoutRef.current);
3321 setSxStyle({
3322 pointerEvents: 'all'
3323 });
3324 },
3325 onMouseLeave: function onMouseLeave() {
3326 clearTimeout(timeoutRef.current);
3327 timeoutRef.current = setTimeout(function () {
3328 setSxStyle({
3329 pointerEvents: 'none'
3330 });
3331 }, 200);
3332 }
3333 }, PaperProps)
3334 }, props, {
3335 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3336 }));
3337 };
3338 LayoutDialog.propTypes = {
3339 sx: _propTypes.default.object,
3340 PaperProps: _propTypes.default.object
3341 };
3342 LayoutDialog.Header = DialogHeader;
3343 LayoutDialog.Content = StyledDialogContent;
3344 var _default = exports["default"] = LayoutDialog;
3345
3346 /***/ }),
3347
3348 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3349 /*!*********************************************************************************************!*\
3350 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3351 \*********************************************************************************************/
3352 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3353
3354 "use strict";
3355
3356
3357 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3358 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3359 Object.defineProperty(exports, "__esModule", ({
3360 value: true
3361 }));
3362 exports.ProTemplateIndicator = void 0;
3363 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3364 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3365 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3366 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3367 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3368 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); }
3369 var popoverId = 'e-pro-upgrade-popover';
3370 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3371 var theme = _ref.theme;
3372 return {
3373 position: 'relative',
3374 padding: theme.spacing(3),
3375 boxShadow: theme.shadows[4],
3376 zIndex: '9999'
3377 };
3378 });
3379 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3380 var theme = _ref2.theme;
3381 return {
3382 position: 'absolute',
3383 width: theme.spacing(5),
3384 height: theme.spacing(5),
3385 overflow: 'hidden',
3386 // Override Popper inline styles.
3387 left: '100% !important',
3388 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3389 '&::after': {
3390 backgroundColor: theme.palette.background.paper,
3391 content: '""',
3392 display: 'block',
3393 position: 'absolute',
3394 width: theme.spacing(2.5),
3395 height: theme.spacing(2.5),
3396 top: '50%',
3397 left: '50%',
3398 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3399 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3400 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3401 }
3402 };
3403 });
3404 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3405 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3406 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3407 var _useState = (0, _react.useState)(false),
3408 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3409 isPopoverOpen = _useState2[0],
3410 setIsPopoverOpen = _useState2[1];
3411 var anchorEl = (0, _react.useRef)(null);
3412 var arrowEl = (0, _react.useRef)(null);
3413 var showPopover = function showPopover() {
3414 return setIsPopoverOpen(true);
3415 };
3416 var hidePopover = function hidePopover() {
3417 return setIsPopoverOpen(false);
3418 };
3419 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3420 flexDirection: "row-reverse",
3421 component: "span",
3422 display: "flex",
3423 onMouseLeave: hidePopover,
3424 alignItems: "center"
3425 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3426 ref: anchorEl,
3427 onMouseEnter: showPopover,
3428 onClick: function onClick(e) {
3429 return e.stopPropagation();
3430 } /* Do nothing */,
3431 "aria-owns": isPopoverOpen ? popoverId : undefined,
3432 "aria-haspopup": "true",
3433 sx: {
3434 m: 1,
3435 '&:hover': {
3436 backgroundColor: 'action.selected'
3437 }
3438 }
3439 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3440 sx: {
3441 color: 'text.primary'
3442 }
3443 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3444 open: isPopoverOpen,
3445 popperOptions: {
3446 placement: 'left-start',
3447 modifiers: [{
3448 name: 'arrow',
3449 enabled: true,
3450 options: {
3451 element: arrowEl.current,
3452 padding: 5
3453 }
3454 }, {
3455 name: 'offset',
3456 options: {
3457 offset: [0, 10]
3458 }
3459 }]
3460 },
3461 anchorEl: anchorEl.current,
3462 sx: {
3463 zIndex: '9999',
3464 maxWidth: 300
3465 }
3466 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3467 ref: arrowEl
3468 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3469 alignItems: "start",
3470 spacing: 2
3471 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3472 color: "promotion",
3473 variant: "outlined",
3474 size: "small",
3475 label: (0, _i18n.__)('Pro', 'elementor'),
3476 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3477 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3478 variant: "body2"
3479 }, (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, {
3480 variant: "contained",
3481 color: "promotion",
3482 size: "small",
3483 href: actionUrl,
3484 target: "_blank",
3485 sx: {
3486 alignSelf: 'flex-end'
3487 }
3488 }, actionLabel)))));
3489 };
3490
3491 /***/ }),
3492
3493 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3494 /*!******************************************************************************************!*\
3495 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3496 \******************************************************************************************/
3497 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3498
3499 "use strict";
3500
3501
3502 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3503 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3504 Object.defineProperty(exports, "__esModule", ({
3505 value: true
3506 }));
3507 exports["default"] = void 0;
3508 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3509 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3510 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3511 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3512 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3513 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3514 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3515 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3516 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3517 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3518 var _excluded = ["onSubmit"];
3519 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); }
3520 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; }
3521 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; }
3522 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3523 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3524 // eslint-disable-next-line jsx-a11y/no-autofocus
3525 , (0, _extends2.default)({
3526 autoFocus: true,
3527 multiline: true,
3528 size: "small",
3529 maxRows: 3,
3530 color: "secondary",
3531 variant: "standard"
3532 }, props, {
3533 inputRef: ref,
3534 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3535 type: 'search',
3536 sx: {
3537 pt: 0
3538 }
3539 })
3540 }));
3541 });
3542 TextInput.propTypes = {
3543 InputProps: _propTypes.default.object
3544 };
3545 var PaperComponent = function PaperComponent(props) {
3546 var _useConfig = (0, _config.useConfig)(),
3547 mode = _useConfig.mode;
3548 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3549 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3550 elevation: 8,
3551 sx: {
3552 borderRadius: 2
3553 }
3554 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3555 component: _ui.Box,
3556 color: function color(theme) {
3557 return theme.palette.text.tertiary;
3558 },
3559 variant: "caption",
3560 paddingX: 2,
3561 paddingY: 1
3562 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3563 sx: {
3564 m: 2
3565 }
3566 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3567 libraryLink: libraryLink
3568 })));
3569 };
3570 PaperComponent.propTypes = {
3571 children: _propTypes.default.node
3572 };
3573 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3574 var onSubmit = _ref.onSubmit,
3575 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3576 var _useState = (0, _react.useState)(false),
3577 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3578 showSuggestions = _useState2[0],
3579 setShowSuggestions = _useState2[1];
3580 var theme = (0, _ui.useTheme)();
3581 var itemHeight = parseInt(theme.spacing(4));
3582 var maxItems = 5;
3583 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3584 PaperComponent: PaperComponent,
3585 ListboxProps: {
3586 sx: {
3587 maxHeight: maxItems * itemHeight
3588 }
3589 },
3590 renderOption: function renderOption(optionProps, option) {
3591 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3592 title: option.text,
3593 noWrap: true,
3594 variant: "body2",
3595 component: _ui.Box,
3596 sx: {
3597 '&.MuiAutocomplete-option': {
3598 display: 'block',
3599 minHeight: itemHeight
3600 }
3601 }
3602 }), option.text);
3603 },
3604 freeSolo: true,
3605 fullWidth: true,
3606 disableClearable: true,
3607 open: showSuggestions,
3608 onClose: function onClose(e) {
3609 var _e$relatedTarget;
3610 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3611 },
3612 onKeyDown: function onKeyDown(e) {
3613 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3614 onSubmit(e);
3615 } else if ('/' === e.key && '' === e.target.value) {
3616 e.preventDefault();
3617 setShowSuggestions(true);
3618 }
3619 }
3620 }, props));
3621 };
3622 PromptAutocomplete.propTypes = {
3623 onSubmit: _propTypes.default.func.isRequired
3624 };
3625 PromptAutocomplete.TextInput = TextInput;
3626 var _default = exports["default"] = PromptAutocomplete;
3627
3628 /***/ }),
3629
3630 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3631 /*!**********************************************************************************!*\
3632 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3633 \**********************************************************************************/
3634 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3635
3636 "use strict";
3637
3638
3639 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3640 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3641 Object.defineProperty(exports, "__esModule", ({
3642 value: true
3643 }));
3644 exports["default"] = void 0;
3645 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3646 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3647 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3648 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3649 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3650 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3651 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3652 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3653 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3654 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3655 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3656 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3657 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3658 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3659 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3660 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3661 var _excluded = ["tooltip"];
3662 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); }
3663 var PROMPT_SUGGESTIONS = Object.freeze([
3664 // Translators: [Topic] is a placeholder for the user - please translate it as well
3665 {
3666 text: (0, _i18n.__)('Hero section on [topic] with heading, text, buttons on the right, and an image on the left', 'elementor.com')
3667 },
3668 // Translators: [Topic] is a placeholder for the user - please translate it as well
3669 {
3670 text: (0, _i18n.__)('About Us section on [topic] with heading, text, and big image below', 'elementor.com')
3671 }, {
3672 text: (0, _i18n.__)('Team section with four image boxes showcasing team members', 'elementor.com')
3673 },
3674 // Translators: [Topic] is a placeholder for the user - please translate it as well
3675 {
3676 text: (0, _i18n.__)('FAQ section with a toggle widget showcasing FAQs about [topic]', 'elementor.com')
3677 }, {
3678 text: (0, _i18n.__)('Gallery section with a carousel displaying three images at once', 'elementor.com')
3679 },
3680 // Translators: [Topic] is a placeholder for the user - please translate it as well
3681 {
3682 text: (0, _i18n.__)('Contact section with a form for [topic]', 'elementor.com')
3683 }, {
3684 text: (0, _i18n.__)('Client section featuring companies\' logos', 'elementor.com')
3685 },
3686 // Translators: [Topic] is a placeholder for the user - please translate it as well
3687 {
3688 text: (0, _i18n.__)('Testimonial section with testimonials, each featuring a star rating and an image', 'elementor.com')
3689 },
3690 // Translators: [Topic] is a placeholder for the user - please translate it as well
3691 {
3692 text: (0, _i18n.__)('Service section about [topic], showcasing four services with buttons', 'elementor.com')
3693 },
3694 // Translators: [Topic] is a placeholder for the user - please translate it as well
3695 {
3696 text: (0, _i18n.__)('Stats section with counters displaying data about [topic]', 'elementor.com')
3697 }, {
3698 text: (0, _i18n.__)('Quote section with colored background, featuring a centered quote', 'elementor.com')
3699 },
3700 // Translators: [Topic] is a placeholder for the user - please translate it as well
3701 {
3702 text: (0, _i18n.__)('Pricing section for [topic] with a pricing list', 'elementor.com')
3703 },
3704 // Translators: [Topic] is a placeholder for the user - please translate it as well
3705 {
3706 text: (0, _i18n.__)('Subscribe section featuring a simple email form, inviting users to stay informed on [topic]', 'elementor.com')
3707 }]);
3708 var IconButtonWithTooltip = function IconButtonWithTooltip(_ref) {
3709 var tooltip = _ref.tooltip,
3710 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3711 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
3712 title: tooltip
3713 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
3714 component: "span",
3715 sx: {
3716 cursor: props.disabled ? 'default' : 'pointer'
3717 }
3718 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, props)));
3719 };
3720 IconButtonWithTooltip.propTypes = {
3721 tooltip: _propTypes.default.string,
3722 disabled: _propTypes.default.bool
3723 };
3724 var BackButton = function BackButton(props) {
3725 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3726 size: "small",
3727 color: "secondary",
3728 tooltip: (0, _i18n.__)('Back to results', 'elementor')
3729 }, props), /*#__PURE__*/_react.default.createElement(_arrowLeftIcon.default, null));
3730 };
3731 var EditButton = function EditButton(props) {
3732 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3733 size: "small",
3734 color: "primary",
3735 tooltip: (0, _i18n.__)('Edit prompt', 'elementor')
3736 }, props), /*#__PURE__*/_react.default.createElement(_editIcon.default, null));
3737 };
3738 var GenerateButton = function GenerateButton(props) {
3739 return /*#__PURE__*/_react.default.createElement(_generateSubmit.default, (0, _extends2.default)({
3740 size: "small",
3741 fullWidth: false
3742 }, props), (0, _i18n.__)('Generate', 'elementor'));
3743 };
3744 var PromptForm = (0, _react.forwardRef)(function (_ref2, ref) {
3745 var _attachments$;
3746 var attachments = _ref2.attachments,
3747 isActive = _ref2.isActive,
3748 isLoading = _ref2.isLoading,
3749 _ref2$showActions = _ref2.showActions,
3750 showActions = _ref2$showActions === void 0 ? false : _ref2$showActions,
3751 onAttach = _ref2.onAttach,
3752 onDetach = _ref2.onDetach,
3753 _onSubmit = _ref2.onSubmit,
3754 onBack = _ref2.onBack,
3755 onEdit = _ref2.onEdit,
3756 _ref2$shouldResetProm = _ref2.shouldResetPrompt,
3757 shouldResetPrompt = _ref2$shouldResetProm === void 0 ? false : _ref2$shouldResetProm;
3758 var _useState = (0, _react.useState)(''),
3759 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3760 prompt = _useState2[0],
3761 setPrompt = _useState2[1];
3762 (0, _react.useEffect)(function () {
3763 if (shouldResetPrompt) {
3764 setPrompt('');
3765 }
3766 }, [shouldResetPrompt]);
3767 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(prompt, 'layout'),
3768 isEnhancing = _usePromptEnhancer.isEnhancing,
3769 enhance = _usePromptEnhancer.enhance;
3770 var previousPrompt = (0, _react.useRef)('');
3771 var _useConfig = (0, _config.useConfig)(),
3772 attachmentsTypes = _useConfig.attachmentsTypes;
3773 var isInputDisabled = isLoading || isEnhancing || !isActive;
3774 var isInputEmpty = '' === prompt && !attachments.length;
3775 var isGenerateDisabled = isInputDisabled || isInputEmpty;
3776 var attachmentsType = ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) || '';
3777 var attachmentsConfig = attachmentsTypes[attachmentsType];
3778 var promptSuggestions = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptSuggestions) || PROMPT_SUGGESTIONS;
3779 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');
3780 var handleBack = function handleBack() {
3781 setPrompt(previousPrompt.current);
3782 onBack();
3783 };
3784 var handleEdit = function handleEdit() {
3785 previousPrompt.current = prompt;
3786 onEdit();
3787 };
3788 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3789 component: "form",
3790 onSubmit: function onSubmit(e) {
3791 return _onSubmit(e, prompt);
3792 },
3793 direction: "row",
3794 sx: {
3795 p: 3
3796 },
3797 alignItems: "start",
3798 gap: 1
3799 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3800 direction: "row",
3801 alignItems: "start",
3802 flexGrow: 1,
3803 spacing: 2
3804 }, showActions && (isActive ? /*#__PURE__*/_react.default.createElement(BackButton, {
3805 disabled: isLoading || isEnhancing,
3806 onClick: handleBack
3807 }) : /*#__PURE__*/_react.default.createElement(EditButton, {
3808 disabled: isLoading,
3809 onClick: handleEdit
3810 })), /*#__PURE__*/_react.default.createElement(_attachments.default, {
3811 attachments: attachments,
3812 onAttach: onAttach,
3813 onDetach: onDetach,
3814 disabled: isInputDisabled
3815 }), /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default, {
3816 value: prompt,
3817 disabled: isInputDisabled,
3818 onSubmit: function onSubmit(e) {
3819 return _onSubmit(e, prompt);
3820 },
3821 options: promptSuggestions,
3822 onChange: function onChange(_, selectedValue) {
3823 return setPrompt(selectedValue.text + ' ');
3824 },
3825 renderInput: function renderInput(params) {
3826 return /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default.TextInput, (0, _extends2.default)({}, params, {
3827 ref: ref,
3828 onChange: function onChange(e) {
3829 return setPrompt(e.target.value);
3830 },
3831 placeholder: promptPlaceholder
3832 }));
3833 }
3834 })), /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
3835 size: "small",
3836 disabled: isGenerateDisabled || '' === prompt,
3837 isLoading: isEnhancing,
3838 onClick: function onClick() {
3839 return enhance().then(function (_ref3) {
3840 var result = _ref3.result;
3841 return setPrompt(result);
3842 });
3843 }
3844 }), /*#__PURE__*/_react.default.createElement(GenerateButton, {
3845 disabled: isGenerateDisabled
3846 }));
3847 });
3848 PromptForm.propTypes = {
3849 isActive: _propTypes.default.bool,
3850 onAttach: _propTypes.default.func,
3851 onDetach: _propTypes.default.func,
3852 isLoading: _propTypes.default.bool,
3853 showActions: _propTypes.default.bool,
3854 onSubmit: _propTypes.default.func.isRequired,
3855 onBack: _propTypes.default.func.isRequired,
3856 onEdit: _propTypes.default.func.isRequired,
3857 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
3858 shouldResetPrompt: _propTypes.default.bool
3859 };
3860 var _default = exports["default"] = PromptForm;
3861
3862 /***/ }),
3863
3864 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js":
3865 /*!*******************************************************************************************!*\
3866 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js ***!
3867 \*******************************************************************************************/
3868 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3869
3870 "use strict";
3871
3872
3873 Object.defineProperty(exports, "__esModule", ({
3874 value: true
3875 }));
3876 exports["default"] = void 0;
3877 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3878 var ScreenshotContainer = (0, _ui.styled)(_ui.Box, {
3879 shouldForwardProp: function shouldForwardProp(prop) {
3880 return prop !== 'outlineOffset';
3881 }
3882 })(function (_ref) {
3883 var theme = _ref.theme,
3884 selected = _ref.selected,
3885 height = _ref.height,
3886 disabled = _ref.disabled,
3887 _ref$outlineOffset = _ref.outlineOffset,
3888 outlineOffset = _ref$outlineOffset === void 0 ? '0px' : _ref$outlineOffset;
3889 var outlineColor = selected ? theme.palette.text.primary : theme.palette.text.disabled;
3890 var outline = "2px solid ".concat(outlineColor);
3891 return {
3892 height: height,
3893 cursor: disabled ? 'default' : 'pointer',
3894 overflow: 'hidden',
3895 boxSizing: 'border-box',
3896 backgroundPosition: 'top center',
3897 backgroundSize: '100% auto',
3898 backgroundRepeat: 'no-repeat',
3899 backgroundColor: theme.palette.common.white,
3900 borderRadius: theme.shape.borderRadius * 0.5,
3901 outlineOffset: outlineOffset,
3902 outline: outline,
3903 opacity: disabled ? '0.4' : '1',
3904 transition: "all 50ms linear",
3905 '&:hover': disabled ? {} : {
3906 outlineColor: theme.palette.text.primary
3907 }
3908 };
3909 });
3910 var _default = exports["default"] = ScreenshotContainer;
3911
3912 /***/ }),
3913
3914 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js":
3915 /*!*********************************************************************************************!*\
3916 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js ***!
3917 \*********************************************************************************************/
3918 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3919
3920 "use strict";
3921
3922
3923 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3924 Object.defineProperty(exports, "__esModule", ({
3925 value: true
3926 }));
3927 exports["default"] = ScreenshotUnavailable;
3928 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3929 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3930 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3931 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3932 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3933 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3934 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; }
3935 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; }
3936 function ScreenshotUnavailable(props) {
3937 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, (0, _extends2.default)({}, props, {
3938 sx: _objectSpread(_objectSpread({}, props.sx || {}), {}, {
3939 display: 'flex',
3940 alignItems: 'center',
3941 justifyContent: 'center',
3942 backgroundColor: 'background.paper',
3943 color: 'text.tertiary',
3944 fontStyle: 'italic',
3945 fontSize: '12px',
3946 paddingInline: 12,
3947 textAlign: 'center',
3948 lineHeight: 1.5
3949 })
3950 }), (0, _i18n.__)('Preview unavailable', 'elementor'));
3951 }
3952 ScreenshotUnavailable.propTypes = {
3953 sx: _propTypes.default.object
3954 };
3955
3956 /***/ }),
3957
3958 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js":
3959 /*!*********************************************************************************!*\
3960 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js ***!
3961 \*********************************************************************************/
3962 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3963
3964 "use strict";
3965
3966
3967 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3968 Object.defineProperty(exports, "__esModule", ({
3969 value: true
3970 }));
3971 exports["default"] = void 0;
3972 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3973 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3974 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3975 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3976 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3977 var _screenshotUnavailable = _interopRequireDefault(__webpack_require__(/*! ./screenshot-unavailable */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js"));
3978 var _templateBadge = _interopRequireDefault(__webpack_require__(/*! ./template-badge */ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js"));
3979 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; }
3980 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; }
3981 var SCREENSHOT_HEIGHT = '138px';
3982 var Screenshot = function Screenshot(_ref) {
3983 var url = _ref.url,
3984 type = _ref.type,
3985 _ref$isLoading = _ref.isLoading,
3986 isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3987 _ref$isSelected = _ref.isSelected,
3988 isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
3989 isPlaceholder = _ref.isPlaceholder,
3990 disabled = _ref.disabled,
3991 onClick = _ref.onClick,
3992 _ref$sx = _ref.sx,
3993 sx = _ref$sx === void 0 ? {} : _ref$sx,
3994 outlineOffset = _ref.outlineOffset;
3995 if (isPlaceholder) {
3996 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3997 sx: _objectSpread({
3998 height: SCREENSHOT_HEIGHT
3999 }, sx)
4000 });
4001 }
4002 if (isLoading) {
4003 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
4004 width: "100%",
4005 animation: "wave",
4006 variant: "rounded",
4007 height: SCREENSHOT_HEIGHT,
4008 sx: sx
4009 });
4010 }
4011 if (!url) {
4012 return /*#__PURE__*/_react.default.createElement(_screenshotUnavailable.default, {
4013 selected: isSelected,
4014 disabled: disabled,
4015 sx: sx,
4016 onClick: onClick,
4017 height: SCREENSHOT_HEIGHT,
4018 outlineOffset: outlineOffset
4019 });
4020 }
4021 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, {
4022 selected: isSelected,
4023 disabled: disabled,
4024 sx: _objectSpread({
4025 backgroundImage: "url('".concat(url, "')")
4026 }, sx),
4027 onClick: onClick,
4028 height: SCREENSHOT_HEIGHT,
4029 outlineOffset: outlineOffset
4030 }, /*#__PURE__*/_react.default.createElement(_templateBadge.default, {
4031 type: type
4032 }));
4033 };
4034 Screenshot.propTypes = {
4035 isSelected: _propTypes.default.bool,
4036 isLoading: _propTypes.default.bool,
4037 isPlaceholder: _propTypes.default.bool,
4038 disabled: _propTypes.default.bool,
4039 onClick: _propTypes.default.func.isRequired,
4040 url: _propTypes.default.string,
4041 type: _propTypes.default.string,
4042 sx: _propTypes.default.object,
4043 outlineOffset: _propTypes.default.string
4044 };
4045 var _default = exports["default"] = Screenshot;
4046
4047 /***/ }),
4048
4049 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js":
4050 /*!*************************************************************************************!*\
4051 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js ***!
4052 \*************************************************************************************/
4053 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4054
4055 "use strict";
4056
4057
4058 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4059 Object.defineProperty(exports, "__esModule", ({
4060 value: true
4061 }));
4062 exports["default"] = void 0;
4063 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4064 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4065 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4066 var _proTemplateIndicator = __webpack_require__(/*! ./pro-template-indicator */ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js");
4067 var TemplateBadge = function TemplateBadge(props) {
4068 var _useConfig = (0, _config.useConfig)(),
4069 hasPro = _useConfig.hasPro;
4070 if ('Pro' === props.type && !hasPro) {
4071 return /*#__PURE__*/_react.default.createElement(_proTemplateIndicator.ProTemplateIndicator, null);
4072 }
4073 return null;
4074 };
4075 var _default = exports["default"] = TemplateBadge;
4076 TemplateBadge.propTypes = {
4077 type: _propTypes.default.string
4078 };
4079
4080 /***/ }),
4081
4082 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js":
4083 /*!********************************************************************************************!*\
4084 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js ***!
4085 \********************************************************************************************/
4086 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4087
4088 "use strict";
4089
4090
4091 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4092 Object.defineProperty(exports, "__esModule", ({
4093 value: true
4094 }));
4095 exports["default"] = void 0;
4096 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4097 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4098 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4099 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4100 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4101 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4102 var _excluded = ["onClose", "onCancel", "title", "text"];
4103 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
4104 var onClose = _ref.onClose,
4105 onCancel = _ref.onCancel,
4106 title = _ref.title,
4107 text = _ref.text,
4108 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
4109 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
4110 "aria-labelledby": "unsaved-changes-alert-title",
4111 "aria-describedby": "unsaved-changes-alert-description"
4112 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
4113 id: "unsaved-changes-alert-title"
4114 }, title), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
4115 id: "unsaved-changes-alert-description"
4116 }, text)), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
4117 onClick: onCancel,
4118 color: "secondary"
4119 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
4120 onClick: onClose,
4121 color: "error",
4122 variant: "contained"
4123 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
4124 };
4125 UnsavedChangesAlert.propTypes = {
4126 title: _propTypes.default.string,
4127 text: _propTypes.default.string,
4128 onCancel: _propTypes.default.func,
4129 onClose: _propTypes.default.func
4130 };
4131 var _default = exports["default"] = UnsavedChangesAlert;
4132
4133 /***/ }),
4134
4135 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
4136 /*!**************************************************************************!*\
4137 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
4138 \**************************************************************************/
4139 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4140
4141 "use strict";
4142
4143
4144 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4145 Object.defineProperty(exports, "__esModule", ({
4146 value: true
4147 }));
4148 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
4149 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4150 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4151 var MODE_LAYOUT = exports.MODE_LAYOUT = 'layout';
4152 var MODE_VARIATION = exports.MODE_VARIATION = 'variation';
4153 var LAYOUT_APP_MODES = exports.LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
4154 var ConfigContext = _react.default.createContext({});
4155 var useConfig = exports.useConfig = function useConfig() {
4156 return _react.default.useContext(ConfigContext);
4157 };
4158 var ConfigProvider = exports.ConfigProvider = function ConfigProvider(props) {
4159 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
4160 value: {
4161 mode: props.mode,
4162 attachmentsTypes: props.attachmentsTypes,
4163 onClose: props.onClose,
4164 onConnect: props.onConnect,
4165 onData: props.onData,
4166 onInsert: props.onInsert,
4167 onSelect: props.onSelect,
4168 onGenerate: props.onGenerate,
4169 currentContext: props.currentContext,
4170 hasPro: props.hasPro
4171 }
4172 }, props.children);
4173 };
4174 ConfigProvider.propTypes = {
4175 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
4176 children: _propTypes.default.node.isRequired,
4177 attachmentsTypes: _propTypes.default.object.isRequired,
4178 onClose: _propTypes.default.func.isRequired,
4179 onConnect: _propTypes.default.func.isRequired,
4180 onData: _propTypes.default.func.isRequired,
4181 onInsert: _propTypes.default.func.isRequired,
4182 onSelect: _propTypes.default.func.isRequired,
4183 onGenerate: _propTypes.default.func.isRequired,
4184 currentContext: _propTypes.default.object,
4185 hasPro: _propTypes.default.bool
4186 };
4187 var _default = exports["default"] = ConfigContext;
4188
4189 /***/ }),
4190
4191 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js":
4192 /*!*********************************************************************************!*\
4193 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js ***!
4194 \*********************************************************************************/
4195 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4196
4197 "use strict";
4198
4199
4200 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4201 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4202 Object.defineProperty(exports, "__esModule", ({
4203 value: true
4204 }));
4205 exports.useRemoteConfig = exports.RemoteConfigProvider = exports.CONFIG_KEYS = void 0;
4206 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4207 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4208 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4209 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4210 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4211 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4212 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); }
4213 var RemoteConfigContext = _react.default.createContext({});
4214 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4215 return _react.default.useContext(RemoteConfigContext);
4216 };
4217 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4218 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4219 AUTH_TOKEN: 'jwt'
4220 };
4221 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4222 var _useState = (0, _react.useState)(false),
4223 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4224 isLoading = _useState2[0],
4225 setIsLoading = _useState2[1];
4226 var _useState3 = (0, _react.useState)(false),
4227 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4228 isLoaded = _useState4[0],
4229 setIsLoaded = _useState4[1];
4230 var _useState5 = (0, _react.useState)(false),
4231 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4232 isError = _useState6[0],
4233 setIsError = _useState6[1];
4234 var _useState7 = (0, _react.useState)({}),
4235 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4236 remoteConfig = _useState8[0],
4237 setRemoteConfig = _useState8[1];
4238 var fetchData = /*#__PURE__*/function () {
4239 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4240 var result, _t;
4241 return _regenerator.default.wrap(function (_context) {
4242 while (1) switch (_context.prev = _context.next) {
4243 case 0:
4244 setIsLoading(true);
4245 setIsError(false);
4246 _context.prev = 1;
4247 _context.next = 2;
4248 return (0, _api.getRemoteConfig)().finally(function () {
4249 setIsLoaded(true);
4250 setIsLoading(false);
4251 });
4252 case 2:
4253 result = _context.sent;
4254 if (result.config) {
4255 _context.next = 3;
4256 break;
4257 }
4258 throw new Error('Invalid remote config');
4259 case 3:
4260 setRemoteConfig(result.config);
4261 _context.next = 5;
4262 break;
4263 case 4:
4264 _context.prev = 4;
4265 _t = _context["catch"](1);
4266 setIsError(true);
4267 setIsLoaded(true);
4268 setIsLoading(false);
4269 case 5:
4270 case "end":
4271 return _context.stop();
4272 }
4273 }, _callee, null, [[1, 4]]);
4274 }));
4275 return function fetchData() {
4276 return _ref.apply(this, arguments);
4277 };
4278 }();
4279 (0, _react.useEffect)(function () {
4280 window.addEventListener('elementor/connect/success', fetchData);
4281 return function () {
4282 window.removeEventListener('elementor/connect/success', fetchData);
4283 };
4284 }, []);
4285 if (!isLoaded && !isLoading) {
4286 fetchData();
4287 }
4288 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4289 value: {
4290 isLoading: isLoading,
4291 isLoaded: isLoaded,
4292 isError: isError,
4293 remoteConfig: remoteConfig
4294 }
4295 }, props.children);
4296 };
4297 RemoteConfigProvider.propTypes = {
4298 children: _propTypes.default.node.isRequired,
4299 onError: _propTypes.default.func.isRequired
4300 };
4301
4302 /***/ }),
4303
4304 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4305 /*!***********************************************************************************!*\
4306 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4307 \***********************************************************************************/
4308 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4309
4310 "use strict";
4311
4312
4313 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4314 Object.defineProperty(exports, "__esModule", ({
4315 value: true
4316 }));
4317 exports["default"] = void 0;
4318 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4319 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4320 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4321 return (0, _usePrompt.default)(function (requestBody, signal) {
4322 requestBody.variationType = type;
4323 return (0, _api.generateLayout)(requestBody, signal);
4324 }, initialValue);
4325 };
4326 var _default = exports["default"] = useLayoutPrompt;
4327
4328 /***/ }),
4329
4330 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4331 /*!********************************************************************************!*\
4332 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4333 \********************************************************************************/
4334 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4335
4336 "use strict";
4337
4338
4339 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4340 Object.defineProperty(exports, "__esModule", ({
4341 value: true
4342 }));
4343 exports["default"] = void 0;
4344 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4345 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4346 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4347 var _react = __webpack_require__(/*! react */ "react");
4348 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4349 var ERROR_INITIAL_VALUE = '';
4350 var useScreenshot = function useScreenshot(type, onData) {
4351 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4352 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4353 error = _useState2[0],
4354 setError = _useState2[1];
4355 var _useState3 = (0, _react.useState)(false),
4356 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4357 isLoading = _useState4[0],
4358 setIsLoading = _useState4[1];
4359 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4360 var generate = function generate(requestBody, signal) {
4361 setIsLoading(true);
4362 setError(ERROR_INITIAL_VALUE);
4363 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4364 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4365 var createdScreenshot;
4366 return _regenerator.default.wrap(function (_context) {
4367 while (1) switch (_context.prev = _context.next) {
4368 case 0:
4369 _context.next = 1;
4370 return onData(data.result);
4371 case 1:
4372 createdScreenshot = _context.sent;
4373 createdScreenshot.sendUsageData = function () {
4374 return layoutData.sendUsageData(data);
4375 };
4376 createdScreenshot.baseTemplateId = data.baseTemplateId;
4377 createdScreenshot.type = data.type;
4378 return _context.abrupt("return", createdScreenshot);
4379 case 2:
4380 case "end":
4381 return _context.stop();
4382 }
4383 }, _callee);
4384 }));
4385 return function (_x) {
4386 return _ref.apply(this, arguments);
4387 };
4388 }()).catch(function (err) {
4389 setError(err.extra_data ? err : err.message || err);
4390 throw err;
4391 }).finally(function () {
4392 return setIsLoading(false);
4393 });
4394 };
4395 return {
4396 generate: generate,
4397 error: error,
4398 isLoading: isLoading
4399 };
4400 };
4401 var _default = exports["default"] = useScreenshot;
4402
4403 /***/ }),
4404
4405 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4406 /*!*********************************************************************************!*\
4407 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4408 \*********************************************************************************/
4409 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4410
4411 "use strict";
4412
4413
4414 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4415 Object.defineProperty(exports, "__esModule", ({
4416 value: true
4417 }));
4418 exports["default"] = void 0;
4419 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4420 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4421 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4422 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4423 var _react = __webpack_require__(/*! react */ "react");
4424 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4425 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4426 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4427 var PENDING_VALUE = {
4428 isPending: true
4429 };
4430 var useScreenshots = function useScreenshots(_ref) {
4431 var onData = _ref.onData;
4432 var _useState = (0, _react.useState)([]),
4433 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4434 screenshots = _useState2[0],
4435 setScreenshots = _useState2[1];
4436
4437 /**
4438 * The ids for each request are:
4439 * - editorSessionId: a unique id for each editor opening
4440 * - sessionId: a unique id for each session. (open the AI builder)
4441 * - generateId: a unique id for each generate request. (prompt change)
4442 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4443 * - requestId: a unique id for each generate request.
4444 */
4445
4446 var _useConfig = (0, _config.useConfig)(),
4447 currentContext = _useConfig.currentContext;
4448 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4449 editorSessionId = _useRequestIds.editorSessionId,
4450 sessionId = _useRequestIds.sessionId,
4451 setRequest = _useRequestIds.setRequest,
4452 setBatch = _useRequestIds.setBatch,
4453 setGenerate = _useRequestIds.setGenerate;
4454 var generateIdRef = (0, _react.useRef)('');
4455 var batchId = setBatch();
4456 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4457 var screenshotsGroupCount = screenshotsData.length;
4458 var error = screenshotsData.every(function (s) {
4459 return s === null || s === void 0 ? void 0 : s.error;
4460 }) ? screenshotsData[0].error : '';
4461 var isLoading = screenshotsData.some(function (s) {
4462 return s === null || s === void 0 ? void 0 : s.isLoading;
4463 });
4464 var abortController = (0, _react.useRef)(null);
4465 var abort = function abort() {
4466 var _abortController$curr;
4467 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4468 };
4469 var createScreenshots = /*#__PURE__*/function () {
4470 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4471 var onGenerate, onError, promises, results, isAllFailed;
4472 return _regenerator.default.wrap(function (_context) {
4473 while (1) switch (_context.prev = _context.next) {
4474 case 0:
4475 abortController.current = new AbortController();
4476 onGenerate = function onGenerate(screenshot) {
4477 setScreenshots(function (prev) {
4478 var updatedData = (0, _toConsumableArray2.default)(prev);
4479 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4480 updatedData[pendingIndex] = screenshot;
4481 return updatedData;
4482 });
4483 return true;
4484 };
4485 onError = function onError() {
4486 setScreenshots(function (prev) {
4487 var updatedData = (0, _toConsumableArray2.default)(prev);
4488 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4489 updatedData[pendingIndex] = {
4490 isError: true
4491 };
4492 return updatedData;
4493 });
4494 return false;
4495 };
4496 promises = screenshotsData.map(function (_ref3) {
4497 var generate = _ref3.generate;
4498 var prevGeneratedIds = screenshots.map(function (screenshot) {
4499 return screenshot.baseTemplateId || '';
4500 });
4501 var requestBody = {
4502 prompt: prompt,
4503 prevGeneratedIds: prevGeneratedIds,
4504 currentContext: currentContext,
4505 ids: {
4506 editorSessionId: editorSessionId.current,
4507 sessionId: sessionId.current,
4508 generateId: generateIdRef.current,
4509 batchId: batchId.current,
4510 requestId: setRequest().current
4511 },
4512 attachments: attachments.map(function (_ref4) {
4513 var type = _ref4.type,
4514 content = _ref4.content,
4515 label = _ref4.label,
4516 source = _ref4.source;
4517 // Send only the data that is needed for the generation.
4518 return {
4519 type: type,
4520 content: content,
4521 label: label,
4522 source: source
4523 };
4524 })
4525 };
4526 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4527 });
4528 _context.next = 1;
4529 return Promise.all(promises);
4530 case 1:
4531 results = _context.sent;
4532 isAllFailed = results.every(function (value) {
4533 return false === value;
4534 });
4535 if (isAllFailed) {
4536 setScreenshots(function (prev) {
4537 var updatedData = (0, _toConsumableArray2.default)(prev);
4538 updatedData.splice(screenshotsGroupCount * -1);
4539 return updatedData;
4540 });
4541 }
4542 case 2:
4543 case "end":
4544 return _context.stop();
4545 }
4546 }, _callee);
4547 }));
4548 return function createScreenshots(_x, _x2) {
4549 return _ref2.apply(this, arguments);
4550 };
4551 }();
4552 var generate = function generate(prompt, attachments) {
4553 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4554 generateIdRef.current = setGenerate().current;
4555 setScreenshots(placeholders);
4556 createScreenshots(prompt, attachments);
4557 };
4558 var regenerate = function regenerate(prompt, attachments) {
4559 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4560 setScreenshots(function (prev) {
4561 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4562 });
4563 createScreenshots(prompt, attachments);
4564 };
4565 return {
4566 generate: generate,
4567 regenerate: regenerate,
4568 screenshots: screenshots,
4569 isLoading: isLoading,
4570 error: error,
4571 abort: abort
4572 };
4573 };
4574 var _default = exports["default"] = useScreenshots;
4575
4576 /***/ }),
4577
4578 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4579 /*!****************************************************************************!*\
4580 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4581 \****************************************************************************/
4582 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4583
4584 "use strict";
4585
4586
4587 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4588 Object.defineProperty(exports, "__esModule", ({
4589 value: true
4590 }));
4591 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4592 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4593 var _react = __webpack_require__(/*! react */ "react");
4594 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4595 var MAX_PAGES = exports.MAX_PAGES = 5;
4596 var useSlider = function useSlider() {
4597 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4598 _ref$slidesCount = _ref.slidesCount,
4599 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4600 _ref$slidesPerPage = _ref.slidesPerPage,
4601 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4602 _ref$gapPercentage = _ref.gapPercentage,
4603 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4604 var _useState = (0, _react.useState)(1),
4605 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4606 currentPage = _useState2[0],
4607 setCurrentPage = _useState2[1];
4608 var gapsCount = slidesPerPage - 1;
4609 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4610 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4611 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4612 (0, _react.useEffect)(function () {
4613 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4614 if (currentPage > 1 && currentPage > pagesCount) {
4615 setCurrentPage(pagesCount);
4616 }
4617 }, [pagesCount]);
4618 return {
4619 currentPage: currentPage,
4620 setCurrentPage: setCurrentPage,
4621 pagesCount: pagesCount,
4622 slidesPerPage: slidesPerPage,
4623 gapPercentage: gapPercentage,
4624 offsetXPercentage: offsetXPercentage,
4625 slideWidthPercentage: slideWidthPercentage
4626 };
4627 };
4628 var _default = exports["default"] = useSlider;
4629
4630 /***/ }),
4631
4632 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4633 /*!*****************************************************************!*\
4634 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4635 \*****************************************************************/
4636 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4637
4638 "use strict";
4639
4640
4641 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4642 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4643 Object.defineProperty(exports, "__esModule", ({
4644 value: true
4645 }));
4646 exports["default"] = void 0;
4647 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4648 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4649 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4650 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4651 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4652 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4653 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4654 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4655 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4656 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4657 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4658 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4659 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4660 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4661 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4662 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4663 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4664 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4665 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4666 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4667 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4668 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4669 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4670 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4671 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4672 var _excluded = ["children"];
4673 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); }
4674 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4675 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4676
4677 /**
4678 * @typedef {Object} Attachment
4679 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4680 * @property {string} previewHTML - HTML content as a string, representing a preview.
4681 * @property {string} content - Actual content of the attachment as a string.
4682 * @property {string} label - Label for the attachment.
4683 */
4684
4685 var RegenerateButton = function RegenerateButton(props) {
4686 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4687 size: "small",
4688 color: "secondary",
4689 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4690 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4691 };
4692 var UseLayoutButton = function UseLayoutButton(props) {
4693 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4694 size: "small",
4695 variant: "contained"
4696 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4697 };
4698 UseLayoutButton.propTypes = {
4699 sx: _propTypes.default.object
4700 };
4701 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4702 if (isLoading || isPromptFormActive) {
4703 return true;
4704 }
4705 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4706 };
4707 var FormLayout = function FormLayout(_ref) {
4708 var _screenshots$selected, _screenshots$2;
4709 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4710 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4711 _ref$DialogContentPro = _ref.DialogContentProps,
4712 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4713 initialAttachments = _ref.attachments;
4714 var _useConfig = (0, _config.useConfig)(),
4715 attachmentsTypes = _useConfig.attachmentsTypes,
4716 onData = _useConfig.onData,
4717 onInsert = _useConfig.onInsert,
4718 onSelect = _useConfig.onSelect,
4719 onClose = _useConfig.onClose,
4720 onGenerate = _useConfig.onGenerate;
4721 var _useScreenshots = (0, _useScreenshots2.default)({
4722 onData: onData
4723 }),
4724 screenshots = _useScreenshots.screenshots,
4725 generate = _useScreenshots.generate,
4726 regenerate = _useScreenshots.regenerate,
4727 isLoading = _useScreenshots.isLoading,
4728 error = _useScreenshots.error,
4729 abort = _useScreenshots.abort;
4730 var screenshotOutlineOffset = '2px';
4731 var _useSlider = (0, _useSlider2.default)({
4732 slidesCount: screenshots.length
4733 }),
4734 currentPage = _useSlider.currentPage,
4735 setCurrentPage = _useSlider.setCurrentPage,
4736 pagesCount = _useSlider.pagesCount,
4737 gapPercentage = _useSlider.gapPercentage,
4738 slidesPerPage = _useSlider.slidesPerPage,
4739 offsetXPercentage = _useSlider.offsetXPercentage,
4740 slideWidthPercentage = _useSlider.slideWidthPercentage;
4741 var _useState = (0, _react.useState)(-1),
4742 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4743 selectedScreenshotIndex = _useState2[0],
4744 setSelectedScreenshotIndex = _useState2[1];
4745 var _useState3 = (0, _react.useState)(false),
4746 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4747 showUnsavedChangesAlert = _useState4[0],
4748 setShowUnsavedChangesAlert = _useState4[1];
4749 var _useState5 = (0, _react.useState)(true),
4750 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4751 isPromptEditable = _useState6[0],
4752 setIsPromptEditable = _useState6[1];
4753 var _useState7 = (0, _react.useState)([]),
4754 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4755 attachments = _useState8[0],
4756 setAttachments = _useState8[1];
4757 var _useState9 = (0, _react.useState)(false),
4758 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
4759 shouldRenderWebApp = _useState0[0],
4760 setShouldRenderWebApp = _useState0[1];
4761 var _useState1 = (0, _react.useState)(false),
4762 _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
4763 isMinimized = _useState10[0],
4764 setIsMinimized = _useState10[1];
4765 var lastRun = (0, _react.useRef)(function () {});
4766 var promptInputRef = (0, _react.useRef)(null);
4767 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4768 var dialogContentChildren = DialogContentProps.children,
4769 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4770
4771 // When there are no screenshots the prompt field should be editable.
4772 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4773 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4774 var abortAndClose = function abortAndClose() {
4775 abort();
4776 onClose();
4777 };
4778 var onCloseIntent = function onCloseIntent() {
4779 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4780 if (hasUnsavedChanges) {
4781 return setShowUnsavedChangesAlert(true);
4782 }
4783 abortAndClose();
4784 };
4785 var handleGenerate = function handleGenerate(event, prompt) {
4786 event.preventDefault();
4787 if ('' === prompt.trim() && 0 === attachments.length) {
4788 return;
4789 }
4790 if ((0, _isURL.default)(prompt)) {
4791 setShouldRenderWebApp(true);
4792 return;
4793 }
4794 onGenerate();
4795 lastRun.current = function () {
4796 setSelectedScreenshotIndex(-1);
4797 generate(prompt, attachments);
4798 };
4799 lastRun.current();
4800 setIsPromptEditable(false);
4801 setCurrentPage(1);
4802 };
4803 var handleRegenerate = function handleRegenerate() {
4804 lastRun.current = function () {
4805 regenerate(promptInputRef.current.value, attachments);
4806 // Changing the current page to the next page number.
4807 setCurrentPage(pagesCount + 1);
4808 };
4809 lastRun.current();
4810 };
4811 var applyTemplate = function applyTemplate() {
4812 onInsert(selectedTemplate);
4813 screenshots[selectedScreenshotIndex].sendUsageData();
4814 abortAndClose();
4815 };
4816 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4817 return function () {
4818 if (isPromptFormActive) {
4819 return;
4820 }
4821 setSelectedScreenshotIndex(index);
4822 onSelect(template);
4823 };
4824 };
4825
4826 /**
4827 * @param {Attachment[]} items
4828 */
4829 var onAttach = function onAttach(items) {
4830 items.forEach(function (item) {
4831 if (!attachmentsTypes[item.type]) {
4832 throw new Error("Invalid attachment type: ".concat(item.type));
4833 }
4834 var typeConfig = attachmentsTypes[item.type];
4835 if (!item.previewHTML && typeConfig.previewGenerator) {
4836 typeConfig.previewGenerator(item.content).then(function (html) {
4837 item.previewHTML = html;
4838 setAttachments(function (prev) {
4839 // Replace the attachment with the updated one.
4840 return prev.map(function (attachment) {
4841 if (attachment.content === item.content) {
4842 return item;
4843 }
4844 return attachment;
4845 });
4846 });
4847 });
4848 }
4849 });
4850 setAttachments(items);
4851 setShouldRenderWebApp(false);
4852 setIsPromptEditable(true);
4853 };
4854 (0, _react.useEffect)(function () {
4855 var _screenshots$;
4856 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4857 if (isFirstTemplateExist) {
4858 onSelect(screenshots[0].template);
4859 setSelectedScreenshotIndex(0);
4860 }
4861 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4862 (0, _react.useEffect)(function () {
4863 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4864 onAttach(initialAttachments);
4865 }
4866 }, []);
4867 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4868 onClose: onCloseIntent
4869 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4870 onClose: onCloseIntent
4871 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4872 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4873 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4874 size: "small",
4875 "aria-label": "minimize",
4876 onClick: function onClick() {
4877 return setIsMinimized(function (prev) {
4878 return !prev;
4879 });
4880 }
4881 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4882 dividers: true
4883 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4884 in: !isMinimized
4885 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4886 sx: {
4887 pt: 2,
4888 px: 2,
4889 pb: 0
4890 }
4891 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4892 sx: {
4893 pt: 2,
4894 px: 2,
4895 pb: 0
4896 }
4897 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4898 error: error,
4899 onRetry: lastRun.current
4900 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4901 open: showUnsavedChangesAlert,
4902 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4903 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4904 onClose: abortAndClose,
4905 onCancel: function onCancel() {
4906 return setShowUnsavedChangesAlert(false);
4907 }
4908 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4909 type: _attachments.ATTACHMENT_TYPE_URL,
4910 url: promptInputRef.current.value,
4911 onAttach: onAttach,
4912 onClose: function onClose() {
4913 setShouldRenderWebApp(false);
4914 }
4915 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4916 shouldResetPrompt: shouldRenderWebApp,
4917 ref: promptInputRef,
4918 isActive: isPromptFormActive,
4919 isLoading: isLoading,
4920 showActions: screenshots.length > 0 || isLoading,
4921 attachmentsTypes: attachmentsTypes,
4922 attachments: attachments,
4923 onAttach: onAttach,
4924 onDetach: function onDetach(index) {
4925 setAttachments(function (prev) {
4926 var newAttachments = (0, _toConsumableArray2.default)(prev);
4927 newAttachments.splice(index, 1);
4928 return newAttachments;
4929 });
4930 setIsPromptEditable(true);
4931 },
4932 onSubmit: handleGenerate,
4933 onBack: function onBack() {
4934 return setIsPromptEditable(false);
4935 },
4936 onEdit: function onEdit() {
4937 return setIsPromptEditable(true);
4938 }
4939 }), (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, {
4940 sx: {
4941 p: 1.5
4942 }
4943 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4944 sx: {
4945 overflow: 'hidden',
4946 p: 0.5
4947 }
4948 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4949 sx: {
4950 display: 'flex',
4951 transition: 'all 0.4s ease',
4952 gap: "".concat(gapPercentage, "%"),
4953 transform: "translateX(".concat(offsetXPercentage, "%)")
4954 }
4955 }, screenshots.map(function (_ref2, index) {
4956 var screenshot = _ref2.screenshot,
4957 type = _ref2.type,
4958 template = _ref2.template,
4959 isError = _ref2.isError,
4960 isPending = _ref2.isPending;
4961 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4962 key: index,
4963 url: screenshot,
4964 type: type,
4965 disabled: isPromptFormActive,
4966 isPlaceholder: isError,
4967 isLoading: isPending,
4968 isSelected: selectedScreenshotIndex === index,
4969 onClick: handleScreenshotClick(index, template),
4970 outlineOffset: screenshotOutlineOffset,
4971 sx: {
4972 flex: "0 0 ".concat(slideWidthPercentage, "%")
4973 }
4974 });
4975 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4976 introductionKey: "ai-context-layout-promotion"
4977 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4978 sx: {
4979 pt: 0,
4980 px: 2,
4981 pb: 2
4982 },
4983 display: "grid",
4984 gridTemplateColumns: "repeat(3, 1fr)",
4985 justifyItems: "center"
4986 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4987 onClick: handleRegenerate,
4988 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
4989 sx: {
4990 justifySelf: 'start'
4991 }
4992 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
4993 page: currentPage,
4994 count: pagesCount,
4995 disabled: isPromptFormActive,
4996 onChange: function onChange(_, page) {
4997 return setCurrentPage(page);
4998 }
4999 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
5000 onClick: applyTemplate,
5001 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
5002 sx: {
5003 justifySelf: 'end',
5004 gridColumn: 3
5005 }
5006 }))))));
5007 };
5008 FormLayout.propTypes = {
5009 DialogHeaderProps: _propTypes.default.object,
5010 DialogContentProps: _propTypes.default.object,
5011 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5012 };
5013 var _default = exports["default"] = FormLayout;
5014
5015 /***/ }),
5016
5017 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5018 /*!************************************************************************************!*\
5019 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5020 \************************************************************************************/
5021 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5022
5023 "use strict";
5024
5025
5026 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5027 Object.defineProperty(exports, "__esModule", ({
5028 value: true
5029 }));
5030 exports["default"] = void 0;
5031 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5032 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5033 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5034 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5035 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5036 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5037 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5038 var _excluded = ["isLoading"];
5039 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5040 var EnhanceButton = function EnhanceButton(_ref) {
5041 var isLoading = _ref.isLoading,
5042 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5043 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5044 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5045 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5046 component: "span",
5047 sx: {
5048 cursor: props.disabled ? 'default' : 'pointer'
5049 }
5050 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5051 size: "small",
5052 color: "secondary"
5053 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5054 color: "secondary",
5055 size: 20
5056 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5057 fontSize: "small"
5058 }))));
5059 };
5060 EnhanceButton.propTypes = {
5061 disabled: _propTypes.default.bool,
5062 isLoading: _propTypes.default.bool
5063 };
5064 var _default = exports["default"] = EnhanceButton;
5065
5066 /***/ }),
5067
5068 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5069 /*!*************************************************************************************!*\
5070 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5071 \*************************************************************************************/
5072 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5073
5074 "use strict";
5075
5076
5077 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5078 Object.defineProperty(exports, "__esModule", ({
5079 value: true
5080 }));
5081 exports["default"] = void 0;
5082 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5083 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5084 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5085 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5086 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5087 var GenerateSubmit = function GenerateSubmit(props) {
5088 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5089 fullWidth: true,
5090 size: "medium",
5091 type: "submit",
5092 variant: "contained"
5093 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5094 };
5095 GenerateSubmit.propTypes = {
5096 children: _propTypes.default.node
5097 };
5098 var _default = exports["default"] = GenerateSubmit;
5099
5100 /***/ }),
5101
5102 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5103 /*!*****************************************************************!*\
5104 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5105 \*****************************************************************/
5106 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5107
5108 "use strict";
5109
5110
5111 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5112 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5113 Object.defineProperty(exports, "__esModule", ({
5114 value: true
5115 }));
5116 exports["default"] = void 0;
5117 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5118 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5119 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5120 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5121 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5122 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5123 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5124 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5125 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5126 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); }
5127 var GetStarted = function GetStarted(_ref) {
5128 var onSuccess = _ref.onSuccess;
5129 var _useState = (0, _react.useState)(false),
5130 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5131 isTermsChecked = _useState2[0],
5132 setIsTermsChecked = _useState2[1];
5133 var onGetStartedClick = /*#__PURE__*/function () {
5134 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5135 return _regenerator.default.wrap(function (_context) {
5136 while (1) switch (_context.prev = _context.next) {
5137 case 0:
5138 _context.next = 1;
5139 return (0, _api.setGetStarted)();
5140 case 1:
5141 onSuccess();
5142 case 2:
5143 case "end":
5144 return _context.stop();
5145 }
5146 }, _callee);
5147 }));
5148 return function onGetStartedClick() {
5149 return _ref2.apply(this, arguments);
5150 };
5151 }();
5152 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5153 alignItems: "center",
5154 gap: 1.5
5155 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5156 sx: {
5157 color: 'text.primary',
5158 fontSize: '60px',
5159 mb: 1
5160 }
5161 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5162 variant: "h4",
5163 sx: {
5164 color: 'text.primary'
5165 }
5166 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5167 variant: "body2"
5168 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5169 direction: "row",
5170 gap: 1.5,
5171 alignItems: "flex-start"
5172 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5173 id: "e-ai-terms-approval",
5174 color: "secondary",
5175 checked: isTermsChecked,
5176 onClick: function onClick() {
5177 return setIsTermsChecked(function (prevState) {
5178 return !prevState;
5179 });
5180 }
5181 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5182 variant: "caption",
5183 sx: {
5184 maxWidth: 520
5185 },
5186 component: "label",
5187 htmlFor: "e-ai-terms-approval"
5188 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5189 href: "https://go.elementor.com/ai-terms/",
5190 target: "_blank",
5191 color: "info.main"
5192 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5193 href: "https://go.elementor.com/ai-privacy-policy/",
5194 target: "_blank",
5195 color: "info.main"
5196 }, (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, {
5197 disabled: !isTermsChecked,
5198 variant: "contained",
5199 onClick: onGetStartedClick,
5200 sx: {
5201 mt: 1,
5202 '&:hover': {
5203 color: 'primary.contrastText'
5204 }
5205 }
5206 }, (0, _i18n.__)('Get Started', 'elementor')));
5207 };
5208 GetStarted.propTypes = {
5209 onSuccess: _propTypes.default.func.isRequired
5210 };
5211 var _default = exports["default"] = GetStarted;
5212
5213 /***/ }),
5214
5215 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5216 /*!**********************************************************!*\
5217 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5218 \**********************************************************/
5219 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5220
5221 "use strict";
5222
5223
5224 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5225 Object.defineProperty(exports, "__esModule", ({
5226 value: true
5227 }));
5228 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5229 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5230 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5231 type: _propTypes.default.string,
5232 previewHTML: _propTypes.default.string,
5233 content: _propTypes.default.string,
5234 label: _propTypes.default.string,
5235 source: _propTypes.default.string
5236 });
5237 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5238 type: _propTypes.default.shape({
5239 promptPlaceholder: _propTypes.default.string,
5240 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5241 text: _propTypes.default.string.isRequired
5242 })),
5243 previewGenerator: _propTypes.default.func
5244 })
5245 });
5246
5247 /***/ }),
5248
5249 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5250 /*!******************************************************************!*\
5251 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5252 \******************************************************************/
5253 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5254
5255 "use strict";
5256
5257
5258 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5259 Object.defineProperty(exports, "__esModule", ({
5260 value: true
5261 }));
5262 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5263 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5264 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5265 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5266 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5267 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5268 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5269 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5270 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5271 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5272 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5273 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5274 var closePanel = exports.closePanel = function closePanel() {
5275 $e.run('panel/close');
5276 $e.components.get('panel').blockUserInteractions();
5277 };
5278 var openPanel = exports.openPanel = function openPanel() {
5279 $e.run('panel/open');
5280 $e.components.get('panel').unblockUserInteractions();
5281 };
5282 var onConnect = exports.onConnect = function onConnect(data) {
5283 elementorCommon.config.library_connect.is_connected = true;
5284 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5285 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5286 elementorCommon.config.library_connect.plan_type = data.plan_type;
5287 };
5288 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5289 var _elementor, _elementor$getPrefere;
5290 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';
5291 var isRTL = elementorCommon.config.isRTL;
5292 return {
5293 colorScheme: colorScheme,
5294 isRTL: isRTL
5295 };
5296 };
5297 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5298 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5299 }, {
5300 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5301 }, {
5302 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5303 }, {
5304 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5305 }, {
5306 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5307 }, {
5308 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5309 }, {
5310 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5311 }, {
5312 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5313 }, {
5314 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5315 }];
5316 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5317 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5318 }, {
5319 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5320 }, {
5321 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5322 }, {
5323 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5324 }, {
5325 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5326 }, {
5327 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5328 }];
5329 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5330 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5331 var _options$onRenderApp;
5332 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5333 parentContainer: null,
5334 mode: '',
5335 at: null,
5336 onClose: null,
5337 onGenerate: null,
5338 onInsert: null,
5339 onRenderApp: null,
5340 onSelect: null,
5341 attachments: []
5342 };
5343 closePanel();
5344 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5345 // Create the container at the "drag widget here" area position.
5346 at: options.at
5347 });
5348 var _getUiConfig = getUiConfig(),
5349 colorScheme = _getUiConfig.colorScheme,
5350 isRTL = _getUiConfig.isRTL;
5351 var rootElement = document.createElement('div');
5352 document.body.append(rootElement);
5353 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5354 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5355 isRTL: isRTL,
5356 colorScheme: colorScheme
5357 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5358 mode: options.mode,
5359 currentContext: {
5360 body: {
5361 backgroundColor: bodyStyle.backgroundColor,
5362 backgroundImage: bodyStyle.backgroundImage
5363 }
5364 },
5365 attachmentsTypes: {
5366 json: {
5367 promptSuggestions: VARIATIONS_PROMPTS,
5368 promptPlaceholder: PROMPT_PLACEHOLDER,
5369 previewGenerator: function () {
5370 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5371 var screenshot;
5372 return _regenerator.default.wrap(function (_context) {
5373 while (1) switch (_context.prev = _context.next) {
5374 case 0:
5375 _context.next = 1;
5376 return (0, _screenshot.takeScreenshot)(json);
5377 case 1:
5378 screenshot = _context.sent;
5379 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5380 case 2:
5381 case "end":
5382 return _context.stop();
5383 }
5384 }, _callee);
5385 }));
5386 function previewGenerator(_x) {
5387 return _previewGenerator.apply(this, arguments);
5388 }
5389 return previewGenerator;
5390 }()
5391 },
5392 url: {
5393 promptPlaceholder: PROMPT_PLACEHOLDER,
5394 promptSuggestions: WEB_BASED_PROMPTS
5395 }
5396 },
5397 attachments: options.attachments || [],
5398 onClose: function onClose() {
5399 var _options$onClose;
5400 previewContainer.destroy();
5401 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5402 unmount();
5403 rootElement.remove();
5404 openPanel();
5405 },
5406 onConnect: onConnect,
5407 onGenerate: function onGenerate() {
5408 var _options$onGenerate;
5409 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5410 previewContainer: previewContainer
5411 });
5412 },
5413 onData: (/*#__PURE__*/function () {
5414 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5415 var screenshot;
5416 return _regenerator.default.wrap(function (_context2) {
5417 while (1) switch (_context2.prev = _context2.next) {
5418 case 0:
5419 _context2.next = 1;
5420 return (0, _screenshot.takeScreenshot)(template);
5421 case 1:
5422 screenshot = _context2.sent;
5423 return _context2.abrupt("return", {
5424 screenshot: screenshot,
5425 template: template
5426 });
5427 case 2:
5428 case "end":
5429 return _context2.stop();
5430 }
5431 }, _callee2);
5432 }));
5433 return function (_x2) {
5434 return _ref.apply(this, arguments);
5435 };
5436 }()),
5437 onSelect: function onSelect(template) {
5438 var _options$onSelect;
5439 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5440 previewContainer.setContent(template);
5441 },
5442 onInsert: options.onInsert,
5443 hasPro: elementor.helpers.hasPro()
5444 })), rootElement),
5445 unmount = _ReactUtils$render.unmount;
5446 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5447 previewContainer: previewContainer
5448 });
5449 };
5450 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5451 var parentContainer = _ref2.parentContainer,
5452 at = _ref2.at,
5453 template = _ref2.template,
5454 historyTitle = _ref2.historyTitle,
5455 _ref2$replace = _ref2.replace,
5456 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5457 var endHistoryLog = (0, _history.startHistoryLog)({
5458 type: 'import',
5459 title: historyTitle
5460 });
5461 if (replace) {
5462 $e.run('document/elements/delete', {
5463 container: parentContainer.children.at(at)
5464 });
5465 }
5466 $e.run('document/elements/create', {
5467 container: parentContainer,
5468 model: (0, _requestsIds.generateIds)(template),
5469 options: {
5470 at: at,
5471 edit: true
5472 }
5473 });
5474 endHistoryLog();
5475 };
5476
5477 /***/ }),
5478
5479 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5480 /*!*******************************************************!*\
5481 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5482 \*******************************************************/
5483 /***/ ((__unused_webpack_module, exports) => {
5484
5485 "use strict";
5486
5487
5488 Object.defineProperty(exports, "__esModule", ({
5489 value: true
5490 }));
5491 exports.startHistoryLog = startHistoryLog;
5492 exports.toggleHistory = toggleHistory;
5493 function toggleHistory(isActive) {
5494 elementor.documents.getCurrent().history.setActive(isActive);
5495 }
5496
5497 /**
5498 * @param {Object} options
5499 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5500 * @param { string } options.title
5501 *
5502 * @return {*}
5503 */
5504 function startHistoryLog(_ref) {
5505 var type = _ref.type,
5506 title = _ref.title;
5507 var id = $e.internal('document/history/start-log', {
5508 type: type,
5509 title: title
5510 });
5511 return function () {
5512 return $e.internal('document/history/end-log', {
5513 id: id
5514 });
5515 };
5516 }
5517
5518 /***/ }),
5519
5520 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5521 /*!*****************************************************************!*\
5522 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5523 \*****************************************************************/
5524 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5525
5526 "use strict";
5527
5528
5529 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5530 Object.defineProperty(exports, "__esModule", ({
5531 value: true
5532 }));
5533 exports.createPreviewContainer = createPreviewContainer;
5534 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5535 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5536 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5537 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; }
5538 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; }
5539 /**
5540 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5541 */
5542
5543 var PREFIX = 'e-ai-preview-container';
5544 var CLASS_HIDDEN = PREFIX + '--hidden';
5545 var CLASS_IDLE = PREFIX + '--idle';
5546
5547 /**
5548 * @param {Container} parentContainer
5549 * @param {{}} containerOptions
5550 * @return {{init, setContent, reset, destroy}}
5551 */
5552
5553 function createPreviewContainer(parentContainer) {
5554 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5555 var createdContainers = new Map();
5556 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5557 function init() {
5558 showContainer(idleContainer);
5559 }
5560 function getAllContainers() {
5561 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5562 }
5563 function reset() {
5564 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5565 createdContainers.clear();
5566 showContainer(idleContainer);
5567 }
5568 function setContent(template) {
5569 if (!template) {
5570 return;
5571 }
5572 hideContainers(getAllContainers());
5573 if (!createdContainers.has(template)) {
5574 var newContainer = createContainer(parentContainer, template, containerOptions);
5575 createdContainers.set(template, newContainer);
5576 }
5577 showContainer(createdContainers.get(template));
5578 }
5579 function destroy() {
5580 deleteContainers(getAllContainers());
5581 createdContainers.clear();
5582 }
5583 return {
5584 init: init,
5585 reset: reset,
5586 setContent: setContent,
5587 destroy: destroy
5588 };
5589 }
5590
5591 /**
5592 * @param {Container} parentContainer
5593 * @param {{}} model
5594 * @param {{}} options
5595 * @return {*}
5596 */
5597 function createContainer(parentContainer, model) {
5598 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5599 (0, _history.toggleHistory)(false);
5600 var container = $e.run('document/elements/create', {
5601 container: parentContainer,
5602 model: _objectSpread(_objectSpread({}, model), {}, {
5603 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5604 }),
5605 options: _objectSpread(_objectSpread({}, options), {}, {
5606 edit: false
5607 })
5608 });
5609 (0, _history.toggleHistory)(true);
5610 container.view.$el.addClass(CLASS_HIDDEN);
5611 return container;
5612 }
5613
5614 /**
5615 * @param {Container} parentContainer
5616 * @param {{}} containerOptions
5617 * @return {*}
5618 */
5619 function createIdleContainer(parentContainer) {
5620 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5621 // Create an empty container that'll be used of UI purposes.
5622 var container = createContainer(parentContainer, {
5623 elType: 'container'
5624 }, containerOptions);
5625 container.view.$el.addClass(CLASS_IDLE);
5626 return container;
5627 }
5628 function hideContainers(containers) {
5629 containers.forEach(function (container) {
5630 container.view.$el.addClass(CLASS_HIDDEN);
5631 });
5632 }
5633 function showContainer(container) {
5634 container.view.$el.removeClass(CLASS_HIDDEN);
5635
5636 // Delay the scroll to avoid UI jumps when toggling between containers.
5637 setTimeout(function () {
5638 container.view.$el[0].scrollIntoView({
5639 behavior: 'smooth',
5640 block: 'start'
5641 });
5642 });
5643 }
5644 function deleteContainers(containers) {
5645 (0, _history.toggleHistory)(false);
5646 $e.run('document/elements/delete', {
5647 containers: containers
5648 });
5649 (0, _history.toggleHistory)(true);
5650 }
5651
5652 /***/ }),
5653
5654 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5655 /*!**********************************************************!*\
5656 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5657 \**********************************************************/
5658 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5659
5660 "use strict";
5661
5662
5663 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5664 Object.defineProperty(exports, "__esModule", ({
5665 value: true
5666 }));
5667 exports.takeScreenshot = void 0;
5668 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5669 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5670 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5671 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5672 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5673 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5674 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5675 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5676 var hiddenWrapper, container, screenshot, _t;
5677 return _regenerator.default.wrap(function (_context) {
5678 while (1) switch (_context.prev = _context.next) {
5679 case 0:
5680 if (template) {
5681 _context.next = 1;
5682 break;
5683 }
5684 return _context.abrupt("return", '');
5685 case 1:
5686 // Disable history so the Editor won't show our hidden container as a user action.
5687 (0, _history.toggleHistory)(false);
5688 hiddenWrapper = createHiddenWrapper();
5689 container = createContainer(template);
5690 wrapContainer(container, hiddenWrapper);
5691 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5692
5693 // Wait for the container to render.
5694 _context.next = 2;
5695 return waitForContainer(container.id);
5696 case 2:
5697 if (!template.elements.length) {
5698 _context.next = 3;
5699 break;
5700 }
5701 _context.next = 3;
5702 return Promise.all(template.elements.map(function (child) {
5703 return waitForContainer(child.id);
5704 }));
5705 case 3:
5706 _context.prev = 3;
5707 _context.next = 4;
5708 return screenshotNode(container.view.$el[0]);
5709 case 4:
5710 screenshot = _context.sent;
5711 _context.next = 6;
5712 break;
5713 case 5:
5714 _context.prev = 5;
5715 _t = _context["catch"](3);
5716 // Return an empty image url if the screenshot failed.
5717 screenshot = '';
5718 case 6:
5719 deleteContainer(container);
5720 hiddenWrapper.remove();
5721 (0, _history.toggleHistory)(true);
5722 return _context.abrupt("return", screenshot);
5723 case 7:
5724 case "end":
5725 return _context.stop();
5726 }
5727 }, _callee, null, [[3, 5]]);
5728 }));
5729 return function takeScreenshot(_x) {
5730 return _ref.apply(this, arguments);
5731 };
5732 }();
5733 function screenshotNode(node) {
5734 return toWebp(node, {
5735 quality: 0.01,
5736 // Transparent 1x1 pixel.
5737 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5738 });
5739 }
5740 function toWebp(_x2) {
5741 return _toWebp.apply(this, arguments);
5742 }
5743 function _toWebp() {
5744 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5745 var _options$quality;
5746 var options,
5747 canvas,
5748 _args3 = arguments;
5749 return _regenerator.default.wrap(function (_context3) {
5750 while (1) switch (_context3.prev = _context3.next) {
5751 case 0:
5752 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5753 _context3.next = 1;
5754 return (0, _htmlToImage.toCanvas)(node, options);
5755 case 1:
5756 canvas = _context3.sent;
5757 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5758 case 2:
5759 case "end":
5760 return _context3.stop();
5761 }
5762 }, _callee3);
5763 }));
5764 return _toWebp.apply(this, arguments);
5765 }
5766 function createHiddenWrapper() {
5767 var wrapper = document.createElement('div');
5768 wrapper.style.position = 'fixed';
5769 wrapper.style.opacity = '0';
5770 wrapper.style.inset = '0';
5771 return wrapper;
5772 }
5773 function createContainer(template) {
5774 var model = (0, _requestsIds.generateIds)(template);
5775
5776 // Set a custom ID, so it can be used later on in the backend.
5777 model.id = "e-ai-screenshot-container-".concat(model.id);
5778 return $e.run('document/elements/create', {
5779 container: elementor.getPreviewContainer(),
5780 model: model,
5781 options: {
5782 edit: false
5783 }
5784 });
5785 }
5786 function deleteContainer(container) {
5787 return $e.run('document/elements/delete', {
5788 container: container
5789 });
5790 }
5791 function waitForContainer(id) {
5792 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5793 var timeoutPromise = sleep(timeout);
5794 var waitPromise = new Promise(function (resolve) {
5795 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5796 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5797 var images;
5798 return _regenerator.default.wrap(function (_context2) {
5799 while (1) switch (_context2.prev = _context2.next) {
5800 case 0:
5801 if (!($element.data('id') === id)) {
5802 _context2.next = 2;
5803 break;
5804 }
5805 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5806 _context2.next = 1;
5807 return Promise.all(images.map(waitForImage));
5808 case 1:
5809 resolve();
5810 case 2:
5811 case "end":
5812 return _context2.stop();
5813 }
5814 }, _callee2);
5815 }));
5816 return function (_x3) {
5817 return _ref2.apply(this, arguments);
5818 };
5819 }());
5820 });
5821 return Promise.any([timeoutPromise, waitPromise]);
5822 }
5823 function waitForImage(image) {
5824 if (image.complete) {
5825 return Promise.resolve();
5826 }
5827 return new Promise(function (resolve) {
5828 image.addEventListener('load', resolve);
5829 image.addEventListener('error', function () {
5830 // Remove the image to make sure it won't break the screenshot.
5831 image.remove();
5832 resolve();
5833 });
5834 });
5835 }
5836 function sleep(ms) {
5837 return new Promise(function (resolve) {
5838 return setTimeout(resolve, ms);
5839 });
5840 }
5841 function wrapContainer(container, wrapper) {
5842 var el = container.view.$el[0];
5843 el.parentNode.insertBefore(wrapper, el);
5844 wrapper.appendChild(el);
5845 }
5846
5847 /***/ }),
5848
5849 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
5850 /*!***************************************************************!*\
5851 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
5852 \***************************************************************/
5853 /***/ ((module) => {
5854
5855 function _OverloadYield(e, d) {
5856 this.v = e, this.k = d;
5857 }
5858 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
5859
5860 /***/ }),
5861
5862 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
5863 /*!******************************************************************!*\
5864 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
5865 \******************************************************************/
5866 /***/ ((module) => {
5867
5868 function _arrayLikeToArray(r, a) {
5869 (null == a || a > r.length) && (a = r.length);
5870 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
5871 return n;
5872 }
5873 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
5874
5875 /***/ }),
5876
5877 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
5878 /*!****************************************************************!*\
5879 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
5880 \****************************************************************/
5881 /***/ ((module) => {
5882
5883 function _arrayWithHoles(r) {
5884 if (Array.isArray(r)) return r;
5885 }
5886 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5887
5888 /***/ }),
5889
5890 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
5891 /*!*******************************************************************!*\
5892 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
5893 \*******************************************************************/
5894 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5895
5896 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
5897 function _arrayWithoutHoles(r) {
5898 if (Array.isArray(r)) return arrayLikeToArray(r);
5899 }
5900 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5901
5902 /***/ }),
5903
5904 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
5905 /*!***********************************************************************!*\
5906 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
5907 \***********************************************************************/
5908 /***/ ((module) => {
5909
5910 function _assertThisInitialized(e) {
5911 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5912 return e;
5913 }
5914 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
5915
5916 /***/ }),
5917
5918 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
5919 /*!******************************************************************!*\
5920 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
5921 \******************************************************************/
5922 /***/ ((module) => {
5923
5924 function asyncGeneratorStep(n, t, e, r, o, a, c) {
5925 try {
5926 var i = n[a](c),
5927 u = i.value;
5928 } catch (n) {
5929 return void e(n);
5930 }
5931 i.done ? t(u) : Promise.resolve(u).then(r, o);
5932 }
5933 function _asyncToGenerator(n) {
5934 return function () {
5935 var t = this,
5936 e = arguments;
5937 return new Promise(function (r, o) {
5938 var a = n.apply(t, e);
5939 function _next(n) {
5940 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
5941 }
5942 function _throw(n) {
5943 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
5944 }
5945 _next(void 0);
5946 });
5947 };
5948 }
5949 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
5950
5951 /***/ }),
5952
5953 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
5954 /*!****************************************************************!*\
5955 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
5956 \****************************************************************/
5957 /***/ ((module) => {
5958
5959 function _classCallCheck(a, n) {
5960 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
5961 }
5962 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
5963
5964 /***/ }),
5965
5966 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
5967 /*!*************************************************************!*\
5968 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
5969 \*************************************************************/
5970 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5971
5972 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5973 function _defineProperties(e, r) {
5974 for (var t = 0; t < r.length; t++) {
5975 var o = r[t];
5976 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
5977 }
5978 }
5979 function _createClass(e, r, t) {
5980 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
5981 writable: !1
5982 }), e;
5983 }
5984 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
5985
5986 /***/ }),
5987
5988 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
5989 /*!****************************************************************!*\
5990 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
5991 \****************************************************************/
5992 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5993
5994 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5995 function _defineProperty(e, r, t) {
5996 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5997 value: t,
5998 enumerable: !0,
5999 configurable: !0,
6000 writable: !0
6001 }) : e[r] = t, e;
6002 }
6003 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
6004
6005 /***/ }),
6006
6007 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
6008 /*!*********************************************************!*\
6009 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
6010 \*********************************************************/
6011 /***/ ((module) => {
6012
6013 function _extends() {
6014 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
6015 for (var e = 1; e < arguments.length; e++) {
6016 var t = arguments[e];
6017 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
6018 }
6019 return n;
6020 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
6021 }
6022 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
6023
6024 /***/ }),
6025
6026 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
6027 /*!****************************************************************!*\
6028 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
6029 \****************************************************************/
6030 /***/ ((module) => {
6031
6032 function _getPrototypeOf(t) {
6033 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
6034 return t.__proto__ || Object.getPrototypeOf(t);
6035 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
6036 }
6037 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6038
6039 /***/ }),
6040
6041 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
6042 /*!**********************************************************!*\
6043 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
6044 \**********************************************************/
6045 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6046
6047 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
6048 function _inherits(t, e) {
6049 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
6050 t.prototype = Object.create(e && e.prototype, {
6051 constructor: {
6052 value: t,
6053 writable: !0,
6054 configurable: !0
6055 }
6056 }), Object.defineProperty(t, "prototype", {
6057 writable: !1
6058 }), e && setPrototypeOf(t, e);
6059 }
6060 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
6061
6062 /***/ }),
6063
6064 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
6065 /*!***********************************************************************!*\
6066 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
6067 \***********************************************************************/
6068 /***/ ((module) => {
6069
6070 function _interopRequireDefault(e) {
6071 return e && e.__esModule ? e : {
6072 "default": e
6073 };
6074 }
6075 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
6076
6077 /***/ }),
6078
6079 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
6080 /*!*****************************************************************!*\
6081 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
6082 \*****************************************************************/
6083 /***/ ((module) => {
6084
6085 function _iterableToArray(r) {
6086 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
6087 }
6088 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6089
6090 /***/ }),
6091
6092 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
6093 /*!**********************************************************************!*\
6094 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
6095 \**********************************************************************/
6096 /***/ ((module) => {
6097
6098 function _iterableToArrayLimit(r, l) {
6099 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
6100 if (null != t) {
6101 var e,
6102 n,
6103 i,
6104 u,
6105 a = [],
6106 f = !0,
6107 o = !1;
6108 try {
6109 if (i = (t = t.call(r)).next, 0 === l) {
6110 if (Object(t) !== t) return;
6111 f = !1;
6112 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
6113 } catch (r) {
6114 o = !0, n = r;
6115 } finally {
6116 try {
6117 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
6118 } finally {
6119 if (o) throw n;
6120 }
6121 }
6122 return a;
6123 }
6124 }
6125 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
6126
6127 /***/ }),
6128
6129 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
6130 /*!*****************************************************************!*\
6131 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
6132 \*****************************************************************/
6133 /***/ ((module) => {
6134
6135 function _nonIterableRest() {
6136 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6137 }
6138 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
6139
6140 /***/ }),
6141
6142 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
6143 /*!*******************************************************************!*\
6144 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
6145 \*******************************************************************/
6146 /***/ ((module) => {
6147
6148 function _nonIterableSpread() {
6149 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6150 }
6151 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
6152
6153 /***/ }),
6154
6155 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
6156 /*!*************************************************************************!*\
6157 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
6158 \*************************************************************************/
6159 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6160
6161 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
6162 function _objectWithoutProperties(e, t) {
6163 if (null == e) return {};
6164 var o,
6165 r,
6166 i = objectWithoutPropertiesLoose(e, t);
6167 if (Object.getOwnPropertySymbols) {
6168 var n = Object.getOwnPropertySymbols(e);
6169 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6170 }
6171 return i;
6172 }
6173 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
6174
6175 /***/ }),
6176
6177 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
6178 /*!******************************************************************************!*\
6179 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
6180 \******************************************************************************/
6181 /***/ ((module) => {
6182
6183 function _objectWithoutPropertiesLoose(r, e) {
6184 if (null == r) return {};
6185 var t = {};
6186 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
6187 if (-1 !== e.indexOf(n)) continue;
6188 t[n] = r[n];
6189 }
6190 return t;
6191 }
6192 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
6193
6194 /***/ }),
6195
6196 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
6197 /*!***************************************************************************!*\
6198 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
6199 \***************************************************************************/
6200 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6201
6202 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6203 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
6204 function _possibleConstructorReturn(t, e) {
6205 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
6206 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
6207 return assertThisInitialized(t);
6208 }
6209 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
6210
6211 /***/ }),
6212
6213 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
6214 /*!*************************************************************!*\
6215 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
6216 \*************************************************************/
6217 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6218
6219 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6220 function _regenerator() {
6221 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
6222 var e,
6223 t,
6224 r = "function" == typeof Symbol ? Symbol : {},
6225 n = r.iterator || "@@iterator",
6226 o = r.toStringTag || "@@toStringTag";
6227 function i(r, n, o, i) {
6228 var c = n && n.prototype instanceof Generator ? n : Generator,
6229 u = Object.create(c.prototype);
6230 return regeneratorDefine(u, "_invoke", function (r, n, o) {
6231 var i,
6232 c,
6233 u,
6234 f = 0,
6235 p = o || [],
6236 y = !1,
6237 G = {
6238 p: 0,
6239 n: 0,
6240 v: e,
6241 a: d,
6242 f: d.bind(e, 4),
6243 d: function d(t, r) {
6244 return i = t, c = 0, u = e, G.n = r, a;
6245 }
6246 };
6247 function d(r, n) {
6248 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
6249 var o,
6250 i = p[t],
6251 d = G.p,
6252 l = i[2];
6253 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));
6254 }
6255 if (o || r > 1) return a;
6256 throw y = !0, n;
6257 }
6258 return function (o, p, l) {
6259 if (f > 1) throw TypeError("Generator is already running");
6260 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
6261 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
6262 try {
6263 if (f = 2, i) {
6264 if (c || (o = "next"), t = i[o]) {
6265 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
6266 if (!t.done) return t;
6267 u = t.value, c < 2 && (c = 0);
6268 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
6269 i = e;
6270 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
6271 } catch (t) {
6272 i = e, c = 1, u = t;
6273 } finally {
6274 f = 1;
6275 }
6276 }
6277 return {
6278 value: t,
6279 done: y
6280 };
6281 };
6282 }(r, o, i), !0), u;
6283 }
6284 var a = {};
6285 function Generator() {}
6286 function GeneratorFunction() {}
6287 function GeneratorFunctionPrototype() {}
6288 t = Object.getPrototypeOf;
6289 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
6290 return this;
6291 }), t),
6292 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
6293 function f(e) {
6294 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
6295 }
6296 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 () {
6297 return this;
6298 }), regeneratorDefine(u, "toString", function () {
6299 return "[object Generator]";
6300 }), (module.exports = _regenerator = function _regenerator() {
6301 return {
6302 w: i,
6303 m: f
6304 };
6305 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6306 }
6307 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6308
6309 /***/ }),
6310
6311 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
6312 /*!******************************************************************!*\
6313 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
6314 \******************************************************************/
6315 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6316
6317 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6318 function _regeneratorAsync(n, e, r, t, o) {
6319 var a = regeneratorAsyncGen(n, e, r, t, o);
6320 return a.next().then(function (n) {
6321 return n.done ? n.value : a.next();
6322 });
6323 }
6324 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
6325
6326 /***/ }),
6327
6328 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
6329 /*!*********************************************************************!*\
6330 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
6331 \*********************************************************************/
6332 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6333
6334 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6335 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6336 function _regeneratorAsyncGen(r, e, t, o, n) {
6337 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
6338 }
6339 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
6340
6341 /***/ }),
6342
6343 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
6344 /*!**************************************************************************!*\
6345 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
6346 \**************************************************************************/
6347 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6348
6349 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6350 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6351 function AsyncIterator(t, e) {
6352 function n(r, o, i, f) {
6353 try {
6354 var c = t[r](o),
6355 u = c.value;
6356 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
6357 n("next", t, i, f);
6358 }, function (t) {
6359 n("throw", t, i, f);
6360 }) : e.resolve(u).then(function (t) {
6361 c.value = t, i(c);
6362 }, function (t) {
6363 return n("throw", t, i, f);
6364 });
6365 } catch (t) {
6366 f(t);
6367 }
6368 }
6369 var r;
6370 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
6371 return this;
6372 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
6373 function f() {
6374 return new e(function (e, r) {
6375 n(t, i, e, r);
6376 });
6377 }
6378 return r = r ? r.then(f, f) : f();
6379 }, !0);
6380 }
6381 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6382
6383 /***/ }),
6384
6385 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
6386 /*!*******************************************************************!*\
6387 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
6388 \*******************************************************************/
6389 /***/ ((module) => {
6390
6391 function _regeneratorDefine(e, r, n, t) {
6392 var i = Object.defineProperty;
6393 try {
6394 i({}, "", {});
6395 } catch (e) {
6396 i = 0;
6397 }
6398 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
6399 if (r) i ? i(e, r, {
6400 value: n,
6401 enumerable: !t,
6402 configurable: !t,
6403 writable: !t
6404 }) : e[r] = n;else {
6405 var o = function o(r, n) {
6406 _regeneratorDefine(e, r, function (e) {
6407 return this._invoke(r, n, e);
6408 });
6409 };
6410 o("next", 0), o("throw", 1), o("return", 2);
6411 }
6412 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
6413 }
6414 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
6415
6416 /***/ }),
6417
6418 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
6419 /*!*****************************************************************!*\
6420 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
6421 \*****************************************************************/
6422 /***/ ((module) => {
6423
6424 function _regeneratorKeys(e) {
6425 var n = Object(e),
6426 r = [];
6427 for (var t in n) r.unshift(t);
6428 return function e() {
6429 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
6430 return e.done = !0, e;
6431 };
6432 }
6433 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
6434
6435 /***/ }),
6436
6437 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
6438 /*!********************************************************************!*\
6439 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
6440 \********************************************************************/
6441 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6442
6443 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6444 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6445 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
6446 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6447 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6448 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
6449 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
6450 function _regeneratorRuntime() {
6451 "use strict";
6452
6453 var r = regenerator(),
6454 e = r.m(_regeneratorRuntime),
6455 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
6456 function n(r) {
6457 var e = "function" == typeof r && r.constructor;
6458 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
6459 }
6460 var o = {
6461 "throw": 1,
6462 "return": 2,
6463 "break": 3,
6464 "continue": 3
6465 };
6466 function a(r) {
6467 var e, t;
6468 return function (n) {
6469 e || (e = {
6470 stop: function stop() {
6471 return t(n.a, 2);
6472 },
6473 "catch": function _catch() {
6474 return n.v;
6475 },
6476 abrupt: function abrupt(r, e) {
6477 return t(n.a, o[r], e);
6478 },
6479 delegateYield: function delegateYield(r, o, a) {
6480 return e.resultName = o, t(n.d, regeneratorValues(r), a);
6481 },
6482 finish: function finish(r) {
6483 return t(n.f, r);
6484 }
6485 }, t = function t(r, _t, o) {
6486 n.p = e.prev, n.n = e.next;
6487 try {
6488 return r(_t, o);
6489 } finally {
6490 e.next = n.n;
6491 }
6492 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
6493 try {
6494 return r.call(this, e);
6495 } finally {
6496 n.p = e.prev, n.n = e.next;
6497 }
6498 };
6499 }
6500 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
6501 return {
6502 wrap: function wrap(e, t, n, o) {
6503 return r.w(a(e), t, n, o && o.reverse());
6504 },
6505 isGeneratorFunction: n,
6506 mark: r.m,
6507 awrap: function awrap(r, e) {
6508 return new OverloadYield(r, e);
6509 },
6510 AsyncIterator: regeneratorAsyncIterator,
6511 async: function async(r, e, t, o, u) {
6512 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
6513 },
6514 keys: regeneratorKeys,
6515 values: regeneratorValues
6516 };
6517 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6518 }
6519 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6520
6521 /***/ }),
6522
6523 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
6524 /*!*******************************************************************!*\
6525 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
6526 \*******************************************************************/
6527 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6528
6529 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6530 function _regeneratorValues(e) {
6531 if (null != e) {
6532 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
6533 r = 0;
6534 if (t) return t.call(e);
6535 if ("function" == typeof e.next) return e;
6536 if (!isNaN(e.length)) return {
6537 next: function next() {
6538 return e && r >= e.length && (e = void 0), {
6539 value: e && e[r++],
6540 done: !e
6541 };
6542 }
6543 };
6544 }
6545 throw new TypeError(_typeof(e) + " is not iterable");
6546 }
6547 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
6548
6549 /***/ }),
6550
6551 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
6552 /*!****************************************************************!*\
6553 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
6554 \****************************************************************/
6555 /***/ ((module) => {
6556
6557 function _setPrototypeOf(t, e) {
6558 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
6559 return t.__proto__ = e, t;
6560 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
6561 }
6562 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6563
6564 /***/ }),
6565
6566 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
6567 /*!***************************************************************!*\
6568 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
6569 \***************************************************************/
6570 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6571
6572 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
6573 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
6574 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6575 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
6576 function _slicedToArray(r, e) {
6577 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
6578 }
6579 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6580
6581 /***/ }),
6582
6583 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
6584 /*!***********************************************************************!*\
6585 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
6586 \***********************************************************************/
6587 /***/ ((module) => {
6588
6589 function _taggedTemplateLiteral(e, t) {
6590 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
6591 raw: {
6592 value: Object.freeze(t)
6593 }
6594 }));
6595 }
6596 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
6597
6598 /***/ }),
6599
6600 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
6601 /*!*******************************************************************!*\
6602 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
6603 \*******************************************************************/
6604 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6605
6606 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
6607 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
6608 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6609 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
6610 function _toConsumableArray(r) {
6611 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
6612 }
6613 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6614
6615 /***/ }),
6616
6617 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
6618 /*!*************************************************************!*\
6619 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
6620 \*************************************************************/
6621 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6622
6623 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6624 function toPrimitive(t, r) {
6625 if ("object" != _typeof(t) || !t) return t;
6626 var e = t[Symbol.toPrimitive];
6627 if (void 0 !== e) {
6628 var i = e.call(t, r || "default");
6629 if ("object" != _typeof(i)) return i;
6630 throw new TypeError("@@toPrimitive must return a primitive value.");
6631 }
6632 return ("string" === r ? String : Number)(t);
6633 }
6634 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
6635
6636 /***/ }),
6637
6638 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
6639 /*!***************************************************************!*\
6640 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
6641 \***************************************************************/
6642 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6643
6644 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6645 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
6646 function toPropertyKey(t) {
6647 var i = toPrimitive(t, "string");
6648 return "symbol" == _typeof(i) ? i : i + "";
6649 }
6650 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
6651
6652 /***/ }),
6653
6654 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
6655 /*!********************************************************!*\
6656 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
6657 \********************************************************/
6658 /***/ ((module) => {
6659
6660 function _typeof(o) {
6661 "@babel/helpers - typeof";
6662
6663 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
6664 return typeof o;
6665 } : function (o) {
6666 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
6667 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
6668 }
6669 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
6670
6671 /***/ }),
6672
6673 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
6674 /*!****************************************************************************!*\
6675 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
6676 \****************************************************************************/
6677 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6678
6679 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
6680 function _unsupportedIterableToArray(r, a) {
6681 if (r) {
6682 if ("string" == typeof r) return arrayLikeToArray(r, a);
6683 var t = {}.toString.call(r).slice(8, -1);
6684 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;
6685 }
6686 }
6687 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6688
6689 /***/ }),
6690
6691 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
6692 /*!***********************************************************!*\
6693 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
6694 \***********************************************************/
6695 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6696
6697 // TODO(Babel 8): Remove this file.
6698
6699 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
6700 module.exports = runtime;
6701
6702 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6703 try {
6704 regeneratorRuntime = runtime;
6705 } catch (accidentalStrictMode) {
6706 if (typeof globalThis === "object") {
6707 globalThis.regeneratorRuntime = runtime;
6708 } else {
6709 Function("r", "regeneratorRuntime = r")(runtime);
6710 }
6711 }
6712
6713
6714 /***/ }),
6715
6716 /***/ "../node_modules/html-to-image/es/apply-style.js":
6717 /*!*******************************************************!*\
6718 !*** ../node_modules/html-to-image/es/apply-style.js ***!
6719 \*******************************************************/
6720 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6721
6722 "use strict";
6723 __webpack_require__.r(__webpack_exports__);
6724 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6725 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
6726 /* harmony export */ });
6727 function applyStyle(node, options) {
6728 const { style } = node;
6729 if (options.backgroundColor) {
6730 style.backgroundColor = options.backgroundColor;
6731 }
6732 if (options.width) {
6733 style.width = `${options.width}px`;
6734 }
6735 if (options.height) {
6736 style.height = `${options.height}px`;
6737 }
6738 const manual = options.style;
6739 if (manual != null) {
6740 Object.keys(manual).forEach((key) => {
6741 style[key] = manual[key];
6742 });
6743 }
6744 return node;
6745 }
6746 //# sourceMappingURL=apply-style.js.map
6747
6748 /***/ }),
6749
6750 /***/ "../node_modules/html-to-image/es/clone-node.js":
6751 /*!******************************************************!*\
6752 !*** ../node_modules/html-to-image/es/clone-node.js ***!
6753 \******************************************************/
6754 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6755
6756 "use strict";
6757 __webpack_require__.r(__webpack_exports__);
6758 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6759 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
6760 /* harmony export */ });
6761 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
6762 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6763 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6764 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6765
6766
6767
6768
6769 async function cloneCanvasElement(canvas) {
6770 const dataURL = canvas.toDataURL();
6771 if (dataURL === 'data:,') {
6772 return canvas.cloneNode(false);
6773 }
6774 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6775 }
6776 async function cloneVideoElement(video, options) {
6777 if (video.currentSrc) {
6778 const canvas = document.createElement('canvas');
6779 const ctx = canvas.getContext('2d');
6780 canvas.width = video.clientWidth;
6781 canvas.height = video.clientHeight;
6782 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
6783 const dataURL = canvas.toDataURL();
6784 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6785 }
6786 const poster = video.poster;
6787 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
6788 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
6789 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6790 }
6791 async function cloneIFrameElement(iframe, options) {
6792 var _a;
6793 try {
6794 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
6795 return (await cloneNode(iframe.contentDocument.body, options, true));
6796 }
6797 }
6798 catch (_b) {
6799 // Failed to clone iframe
6800 }
6801 return iframe.cloneNode(false);
6802 }
6803 async function cloneSingleNode(node, options) {
6804 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
6805 return cloneCanvasElement(node);
6806 }
6807 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
6808 return cloneVideoElement(node, options);
6809 }
6810 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
6811 return cloneIFrameElement(node, options);
6812 }
6813 return node.cloneNode(isSVGElement(node));
6814 }
6815 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
6816 const isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';
6817 async function cloneChildren(nativeNode, clonedNode, options) {
6818 var _a, _b;
6819 if (isSVGElement(clonedNode)) {
6820 return clonedNode;
6821 }
6822 let children = [];
6823 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
6824 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
6825 }
6826 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6827 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
6828 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
6829 }
6830 else {
6831 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
6832 }
6833 if (children.length === 0 ||
6834 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
6835 return clonedNode;
6836 }
6837 await children.reduce((deferred, child) => deferred
6838 .then(() => cloneNode(child, options))
6839 .then((clonedChild) => {
6840 if (clonedChild) {
6841 clonedNode.appendChild(clonedChild);
6842 }
6843 }), Promise.resolve());
6844 return clonedNode;
6845 }
6846 function cloneCSSStyle(nativeNode, clonedNode, options) {
6847 const targetStyle = clonedNode.style;
6848 if (!targetStyle) {
6849 return;
6850 }
6851 const sourceStyle = window.getComputedStyle(nativeNode);
6852 if (sourceStyle.cssText) {
6853 targetStyle.cssText = sourceStyle.cssText;
6854 targetStyle.transformOrigin = sourceStyle.transformOrigin;
6855 }
6856 else {
6857 (0,_util__WEBPACK_IMPORTED_MODULE_1__.getStyleProperties)(options).forEach((name) => {
6858 let value = sourceStyle.getPropertyValue(name);
6859 if (name === 'font-size' && value.endsWith('px')) {
6860 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6861 value = `${reducedFont}px`;
6862 }
6863 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6864 name === 'display' &&
6865 value === 'inline') {
6866 value = 'block';
6867 }
6868 if (name === 'd' && clonedNode.getAttribute('d')) {
6869 value = `path(${clonedNode.getAttribute('d')})`;
6870 }
6871 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6872 });
6873 }
6874 }
6875 function cloneInputValue(nativeNode, clonedNode) {
6876 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6877 clonedNode.innerHTML = nativeNode.value;
6878 }
6879 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6880 clonedNode.setAttribute('value', nativeNode.value);
6881 }
6882 }
6883 function cloneSelectValue(nativeNode, clonedNode) {
6884 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6885 const clonedSelect = clonedNode;
6886 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6887 if (selectedOption) {
6888 selectedOption.setAttribute('selected', '');
6889 }
6890 }
6891 }
6892 function decorate(nativeNode, clonedNode, options) {
6893 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6894 cloneCSSStyle(nativeNode, clonedNode, options);
6895 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode, options);
6896 cloneInputValue(nativeNode, clonedNode);
6897 cloneSelectValue(nativeNode, clonedNode);
6898 }
6899 return clonedNode;
6900 }
6901 async function ensureSVGSymbols(clone, options) {
6902 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6903 if (uses.length === 0) {
6904 return clone;
6905 }
6906 const processedDefs = {};
6907 for (let i = 0; i < uses.length; i++) {
6908 const use = uses[i];
6909 const id = use.getAttribute('xlink:href');
6910 if (id) {
6911 const exist = clone.querySelector(id);
6912 const definition = document.querySelector(id);
6913 if (!exist && definition && !processedDefs[id]) {
6914 // eslint-disable-next-line no-await-in-loop
6915 processedDefs[id] = (await cloneNode(definition, options, true));
6916 }
6917 }
6918 }
6919 const nodes = Object.values(processedDefs);
6920 if (nodes.length) {
6921 const ns = 'http://www.w3.org/1999/xhtml';
6922 const svg = document.createElementNS(ns, 'svg');
6923 svg.setAttribute('xmlns', ns);
6924 svg.style.position = 'absolute';
6925 svg.style.width = '0';
6926 svg.style.height = '0';
6927 svg.style.overflow = 'hidden';
6928 svg.style.display = 'none';
6929 const defs = document.createElementNS(ns, 'defs');
6930 svg.appendChild(defs);
6931 for (let i = 0; i < nodes.length; i++) {
6932 defs.appendChild(nodes[i]);
6933 }
6934 clone.appendChild(svg);
6935 }
6936 return clone;
6937 }
6938 async function cloneNode(node, options, isRoot) {
6939 if (!isRoot && options.filter && !options.filter(node)) {
6940 return null;
6941 }
6942 return Promise.resolve(node)
6943 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6944 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6945 .then((clonedNode) => decorate(node, clonedNode, options))
6946 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6947 }
6948 //# sourceMappingURL=clone-node.js.map
6949
6950 /***/ }),
6951
6952 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6953 /*!*********************************************************!*\
6954 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6955 \*********************************************************/
6956 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6957
6958 "use strict";
6959 __webpack_require__.r(__webpack_exports__);
6960 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6961 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6962 /* harmony export */ });
6963 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6964
6965 function formatCSSText(style) {
6966 const content = style.getPropertyValue('content');
6967 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6968 }
6969 function formatCSSProperties(style, options) {
6970 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.getStyleProperties)(options)
6971 .map((name) => {
6972 const value = style.getPropertyValue(name);
6973 const priority = style.getPropertyPriority(name);
6974 return `${name}: ${value}${priority ? ' !important' : ''};`;
6975 })
6976 .join(' ');
6977 }
6978 function getPseudoElementStyle(className, pseudo, style, options) {
6979 const selector = `.${className}:${pseudo}`;
6980 const cssText = style.cssText
6981 ? formatCSSText(style)
6982 : formatCSSProperties(style, options);
6983 return document.createTextNode(`${selector}{${cssText}}`);
6984 }
6985 function clonePseudoElement(nativeNode, clonedNode, pseudo, options) {
6986 const style = window.getComputedStyle(nativeNode, pseudo);
6987 const content = style.getPropertyValue('content');
6988 if (content === '' || content === 'none') {
6989 return;
6990 }
6991 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6992 try {
6993 clonedNode.className = `${clonedNode.className} ${className}`;
6994 }
6995 catch (err) {
6996 return;
6997 }
6998 const styleElement = document.createElement('style');
6999 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));
7000 clonedNode.appendChild(styleElement);
7001 }
7002 function clonePseudoElements(nativeNode, clonedNode, options) {
7003 clonePseudoElement(nativeNode, clonedNode, ':before', options);
7004 clonePseudoElement(nativeNode, clonedNode, ':after', options);
7005 }
7006 //# sourceMappingURL=clone-pseudos.js.map
7007
7008 /***/ }),
7009
7010 /***/ "../node_modules/html-to-image/es/dataurl.js":
7011 /*!***************************************************!*\
7012 !*** ../node_modules/html-to-image/es/dataurl.js ***!
7013 \***************************************************/
7014 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7015
7016 "use strict";
7017 __webpack_require__.r(__webpack_exports__);
7018 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7019 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
7020 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
7021 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
7022 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
7023 /* harmony export */ });
7024 function getContentFromDataUrl(dataURL) {
7025 return dataURL.split(/,/)[1];
7026 }
7027 function isDataUrl(url) {
7028 return url.search(/^(data:)/) !== -1;
7029 }
7030 function makeDataUrl(content, mimeType) {
7031 return `data:${mimeType};base64,${content}`;
7032 }
7033 async function fetchAsDataURL(url, init, process) {
7034 const res = await fetch(url, init);
7035 if (res.status === 404) {
7036 throw new Error(`Resource "${res.url}" not found`);
7037 }
7038 const blob = await res.blob();
7039 return new Promise((resolve, reject) => {
7040 const reader = new FileReader();
7041 reader.onerror = reject;
7042 reader.onloadend = () => {
7043 try {
7044 resolve(process({ res, result: reader.result }));
7045 }
7046 catch (error) {
7047 reject(error);
7048 }
7049 };
7050 reader.readAsDataURL(blob);
7051 });
7052 }
7053 const cache = {};
7054 function getCacheKey(url, contentType, includeQueryParams) {
7055 let key = url.replace(/\?.*/, '');
7056 if (includeQueryParams) {
7057 key = url;
7058 }
7059 // font resource
7060 if (/ttf|otf|eot|woff2?/i.test(key)) {
7061 key = key.replace(/.*\//, '');
7062 }
7063 return contentType ? `[${contentType}]${key}` : key;
7064 }
7065 async function resourceToDataURL(resourceUrl, contentType, options) {
7066 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
7067 if (cache[cacheKey] != null) {
7068 return cache[cacheKey];
7069 }
7070 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
7071 if (options.cacheBust) {
7072 // eslint-disable-next-line no-param-reassign
7073 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
7074 }
7075 let dataURL;
7076 try {
7077 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
7078 if (!contentType) {
7079 // eslint-disable-next-line no-param-reassign
7080 contentType = res.headers.get('Content-Type') || '';
7081 }
7082 return getContentFromDataUrl(result);
7083 });
7084 dataURL = makeDataUrl(content, contentType);
7085 }
7086 catch (error) {
7087 dataURL = options.imagePlaceholder || '';
7088 let msg = `Failed to fetch resource: ${resourceUrl}`;
7089 if (error) {
7090 msg = typeof error === 'string' ? error : error.message;
7091 }
7092 if (msg) {
7093 console.warn(msg);
7094 }
7095 }
7096 cache[cacheKey] = dataURL;
7097 return dataURL;
7098 }
7099 //# sourceMappingURL=dataurl.js.map
7100
7101 /***/ }),
7102
7103 /***/ "../node_modules/html-to-image/es/embed-images.js":
7104 /*!********************************************************!*\
7105 !*** ../node_modules/html-to-image/es/embed-images.js ***!
7106 \********************************************************/
7107 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7108
7109 "use strict";
7110 __webpack_require__.r(__webpack_exports__);
7111 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7112 /* harmony export */ embedImages: () => (/* binding */ embedImages)
7113 /* harmony export */ });
7114 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7115 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7116 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7117 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7118
7119
7120
7121
7122 async function embedProp(propName, node, options) {
7123 var _a;
7124 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
7125 if (propValue) {
7126 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
7127 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
7128 return true;
7129 }
7130 return false;
7131 }
7132 async function embedBackground(clonedNode, options) {
7133 ;
7134 (await embedProp('background', clonedNode, options)) ||
7135 (await embedProp('background-image', clonedNode, options));
7136 (await embedProp('mask', clonedNode, options)) ||
7137 (await embedProp('-webkit-mask', clonedNode, options)) ||
7138 (await embedProp('mask-image', clonedNode, options)) ||
7139 (await embedProp('-webkit-mask-image', clonedNode, options));
7140 }
7141 async function embedImageNode(clonedNode, options) {
7142 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
7143 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
7144 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
7145 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
7146 return;
7147 }
7148 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
7149 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
7150 await new Promise((resolve, reject) => {
7151 clonedNode.onload = resolve;
7152 clonedNode.onerror = options.onImageErrorHandler
7153 ? (...attributes) => {
7154 try {
7155 resolve(options.onImageErrorHandler(...attributes));
7156 }
7157 catch (error) {
7158 reject(error);
7159 }
7160 }
7161 : reject;
7162 const image = clonedNode;
7163 if (image.decode) {
7164 image.decode = resolve;
7165 }
7166 if (image.loading === 'lazy') {
7167 image.loading = 'eager';
7168 }
7169 if (isImageElement) {
7170 clonedNode.srcset = '';
7171 clonedNode.src = dataURL;
7172 }
7173 else {
7174 clonedNode.href.baseVal = dataURL;
7175 }
7176 });
7177 }
7178 async function embedChildren(clonedNode, options) {
7179 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
7180 const deferreds = children.map((child) => embedImages(child, options));
7181 await Promise.all(deferreds).then(() => clonedNode);
7182 }
7183 async function embedImages(clonedNode, options) {
7184 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
7185 await embedBackground(clonedNode, options);
7186 await embedImageNode(clonedNode, options);
7187 await embedChildren(clonedNode, options);
7188 }
7189 }
7190 //# sourceMappingURL=embed-images.js.map
7191
7192 /***/ }),
7193
7194 /***/ "../node_modules/html-to-image/es/embed-resources.js":
7195 /*!***********************************************************!*\
7196 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
7197 \***********************************************************/
7198 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7199
7200 "use strict";
7201 __webpack_require__.r(__webpack_exports__);
7202 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7203 /* harmony export */ embed: () => (/* binding */ embed),
7204 /* harmony export */ embedResources: () => (/* binding */ embedResources),
7205 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
7206 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
7207 /* harmony export */ });
7208 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7209 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7210 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7211
7212
7213
7214 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
7215 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
7216 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
7217 function toRegex(url) {
7218 // eslint-disable-next-line no-useless-escape
7219 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
7220 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
7221 }
7222 function parseURLs(cssText) {
7223 const urls = [];
7224 cssText.replace(URL_REGEX, (raw, quotation, url) => {
7225 urls.push(url);
7226 return raw;
7227 });
7228 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
7229 }
7230 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
7231 try {
7232 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
7233 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
7234 let dataURL;
7235 if (getContentFromUrl) {
7236 const content = await getContentFromUrl(resolvedURL);
7237 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
7238 }
7239 else {
7240 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
7241 }
7242 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
7243 }
7244 catch (error) {
7245 // pass
7246 }
7247 return cssText;
7248 }
7249 function filterPreferredFontFormat(str, { preferredFontFormat }) {
7250 return !preferredFontFormat
7251 ? str
7252 : str.replace(FONT_SRC_REGEX, (match) => {
7253 // eslint-disable-next-line no-constant-condition
7254 while (true) {
7255 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
7256 if (!format) {
7257 return '';
7258 }
7259 if (format === preferredFontFormat) {
7260 return `src: ${src};`;
7261 }
7262 }
7263 });
7264 }
7265 function shouldEmbed(url) {
7266 return url.search(URL_REGEX) !== -1;
7267 }
7268 async function embedResources(cssText, baseUrl, options) {
7269 if (!shouldEmbed(cssText)) {
7270 return cssText;
7271 }
7272 const filteredCSSText = filterPreferredFontFormat(cssText, options);
7273 const urls = parseURLs(filteredCSSText);
7274 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
7275 }
7276 //# sourceMappingURL=embed-resources.js.map
7277
7278 /***/ }),
7279
7280 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
7281 /*!**********************************************************!*\
7282 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
7283 \**********************************************************/
7284 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7285
7286 "use strict";
7287 __webpack_require__.r(__webpack_exports__);
7288 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7289 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
7290 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
7291 /* harmony export */ });
7292 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7293 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7294 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7295
7296
7297
7298 const cssFetchCache = {};
7299 async function fetchCSS(url) {
7300 let cache = cssFetchCache[url];
7301 if (cache != null) {
7302 return cache;
7303 }
7304 const res = await fetch(url);
7305 const cssText = await res.text();
7306 cache = { url, cssText };
7307 cssFetchCache[url] = cache;
7308 return cache;
7309 }
7310 async function embedFonts(data, options) {
7311 let cssText = data.cssText;
7312 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
7313 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
7314 const loadFonts = fontLocs.map(async (loc) => {
7315 let url = loc.replace(regexUrl, '$1');
7316 if (!url.startsWith('https://')) {
7317 url = new URL(url, data.url).href;
7318 }
7319 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
7320 cssText = cssText.replace(loc, `url(${result})`);
7321 return [loc, result];
7322 });
7323 });
7324 return Promise.all(loadFonts).then(() => cssText);
7325 }
7326 function parseCSS(source) {
7327 if (source == null) {
7328 return [];
7329 }
7330 const result = [];
7331 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
7332 // strip out comments
7333 let cssText = source.replace(commentsRegex, '');
7334 // eslint-disable-next-line prefer-regex-literals
7335 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
7336 // eslint-disable-next-line no-constant-condition
7337 while (true) {
7338 const matches = keyframesRegex.exec(cssText);
7339 if (matches === null) {
7340 break;
7341 }
7342 result.push(matches[0]);
7343 }
7344 cssText = cssText.replace(keyframesRegex, '');
7345 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
7346 // to match css & media queries together
7347 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
7348 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
7349 // unified regex
7350 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
7351 // eslint-disable-next-line no-constant-condition
7352 while (true) {
7353 let matches = importRegex.exec(cssText);
7354 if (matches === null) {
7355 matches = unifiedRegex.exec(cssText);
7356 if (matches === null) {
7357 break;
7358 }
7359 else {
7360 importRegex.lastIndex = unifiedRegex.lastIndex;
7361 }
7362 }
7363 else {
7364 unifiedRegex.lastIndex = importRegex.lastIndex;
7365 }
7366 result.push(matches[0]);
7367 }
7368 return result;
7369 }
7370 async function getCSSRules(styleSheets, options) {
7371 const ret = [];
7372 const deferreds = [];
7373 // First loop inlines imports
7374 styleSheets.forEach((sheet) => {
7375 if ('cssRules' in sheet) {
7376 try {
7377 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
7378 if (item.type === CSSRule.IMPORT_RULE) {
7379 let importIndex = index + 1;
7380 const url = item.href;
7381 const deferred = fetchCSS(url)
7382 .then((metadata) => embedFonts(metadata, options))
7383 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7384 try {
7385 sheet.insertRule(rule, rule.startsWith('@import')
7386 ? (importIndex += 1)
7387 : sheet.cssRules.length);
7388 }
7389 catch (error) {
7390 console.error('Error inserting rule from remote css', {
7391 rule,
7392 error,
7393 });
7394 }
7395 }))
7396 .catch((e) => {
7397 console.error('Error loading remote css', e.toString());
7398 });
7399 deferreds.push(deferred);
7400 }
7401 });
7402 }
7403 catch (e) {
7404 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
7405 if (sheet.href != null) {
7406 deferreds.push(fetchCSS(sheet.href)
7407 .then((metadata) => embedFonts(metadata, options))
7408 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7409 inline.insertRule(rule, inline.cssRules.length);
7410 }))
7411 .catch((err) => {
7412 console.error('Error loading remote stylesheet', err);
7413 }));
7414 }
7415 console.error('Error inlining remote css file', e);
7416 }
7417 }
7418 });
7419 return Promise.all(deferreds).then(() => {
7420 // Second loop parses rules
7421 styleSheets.forEach((sheet) => {
7422 if ('cssRules' in sheet) {
7423 try {
7424 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
7425 ret.push(item);
7426 });
7427 }
7428 catch (e) {
7429 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
7430 }
7431 }
7432 });
7433 return ret;
7434 });
7435 }
7436 function getWebFontRules(cssRules) {
7437 return cssRules
7438 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
7439 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
7440 }
7441 async function parseWebFontRules(node, options) {
7442 if (node.ownerDocument == null) {
7443 throw new Error('Provided element is not within a Document');
7444 }
7445 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
7446 const cssRules = await getCSSRules(styleSheets, options);
7447 return getWebFontRules(cssRules);
7448 }
7449 function normalizeFontFamily(font) {
7450 return font.trim().replace(/["']/g, '');
7451 }
7452 function getUsedFonts(node) {
7453 const fonts = new Set();
7454 function traverse(node) {
7455 const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;
7456 fontFamily.split(',').forEach((font) => {
7457 fonts.add(normalizeFontFamily(font));
7458 });
7459 Array.from(node.children).forEach((child) => {
7460 if (child instanceof HTMLElement) {
7461 traverse(child);
7462 }
7463 });
7464 }
7465 traverse(node);
7466 return fonts;
7467 }
7468 async function getWebFontCSS(node, options) {
7469 const rules = await parseWebFontRules(node, options);
7470 const usedFonts = getUsedFonts(node);
7471 const cssTexts = await Promise.all(rules
7472 .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))
7473 .map((rule) => {
7474 const baseUrl = rule.parentStyleSheet
7475 ? rule.parentStyleSheet.href
7476 : null;
7477 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
7478 }));
7479 return cssTexts.join('\n');
7480 }
7481 async function embedWebFonts(clonedNode, options) {
7482 const cssText = options.fontEmbedCSS != null
7483 ? options.fontEmbedCSS
7484 : options.skipFonts
7485 ? null
7486 : await getWebFontCSS(clonedNode, options);
7487 if (cssText) {
7488 const styleNode = document.createElement('style');
7489 const sytleContent = document.createTextNode(cssText);
7490 styleNode.appendChild(sytleContent);
7491 if (clonedNode.firstChild) {
7492 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
7493 }
7494 else {
7495 clonedNode.appendChild(styleNode);
7496 }
7497 }
7498 }
7499 //# sourceMappingURL=embed-webfonts.js.map
7500
7501 /***/ }),
7502
7503 /***/ "../node_modules/html-to-image/es/index.js":
7504 /*!*************************************************!*\
7505 !*** ../node_modules/html-to-image/es/index.js ***!
7506 \*************************************************/
7507 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7508
7509 "use strict";
7510 __webpack_require__.r(__webpack_exports__);
7511 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7512 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
7513 /* harmony export */ toBlob: () => (/* binding */ toBlob),
7514 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
7515 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
7516 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
7517 /* harmony export */ toPng: () => (/* binding */ toPng),
7518 /* harmony export */ toSvg: () => (/* binding */ toSvg)
7519 /* harmony export */ });
7520 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
7521 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
7522 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
7523 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
7524 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7525
7526
7527
7528
7529
7530 async function toSvg(node, options = {}) {
7531 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7532 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
7533 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
7534 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
7535 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
7536 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
7537 return datauri;
7538 }
7539 async function toCanvas(node, options = {}) {
7540 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7541 const svg = await toSvg(node, options);
7542 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
7543 const canvas = document.createElement('canvas');
7544 const context = canvas.getContext('2d');
7545 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
7546 const canvasWidth = options.canvasWidth || width;
7547 const canvasHeight = options.canvasHeight || height;
7548 canvas.width = canvasWidth * ratio;
7549 canvas.height = canvasHeight * ratio;
7550 if (!options.skipAutoScale) {
7551 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
7552 }
7553 canvas.style.width = `${canvasWidth}`;
7554 canvas.style.height = `${canvasHeight}`;
7555 if (options.backgroundColor) {
7556 context.fillStyle = options.backgroundColor;
7557 context.fillRect(0, 0, canvas.width, canvas.height);
7558 }
7559 context.drawImage(img, 0, 0, canvas.width, canvas.height);
7560 return canvas;
7561 }
7562 async function toPixelData(node, options = {}) {
7563 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7564 const canvas = await toCanvas(node, options);
7565 const ctx = canvas.getContext('2d');
7566 return ctx.getImageData(0, 0, width, height).data;
7567 }
7568 async function toPng(node, options = {}) {
7569 const canvas = await toCanvas(node, options);
7570 return canvas.toDataURL();
7571 }
7572 async function toJpeg(node, options = {}) {
7573 const canvas = await toCanvas(node, options);
7574 return canvas.toDataURL('image/jpeg', options.quality || 1);
7575 }
7576 async function toBlob(node, options = {}) {
7577 const canvas = await toCanvas(node, options);
7578 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
7579 return blob;
7580 }
7581 async function getFontEmbedCSS(node, options = {}) {
7582 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
7583 }
7584 //# sourceMappingURL=index.js.map
7585
7586 /***/ }),
7587
7588 /***/ "../node_modules/html-to-image/es/mimes.js":
7589 /*!*************************************************!*\
7590 !*** ../node_modules/html-to-image/es/mimes.js ***!
7591 \*************************************************/
7592 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7593
7594 "use strict";
7595 __webpack_require__.r(__webpack_exports__);
7596 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7597 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
7598 /* harmony export */ });
7599 const WOFF = 'application/font-woff';
7600 const JPEG = 'image/jpeg';
7601 const mimes = {
7602 woff: WOFF,
7603 woff2: WOFF,
7604 ttf: 'application/font-truetype',
7605 eot: 'application/vnd.ms-fontobject',
7606 png: 'image/png',
7607 jpg: JPEG,
7608 jpeg: JPEG,
7609 gif: 'image/gif',
7610 tiff: 'image/tiff',
7611 svg: 'image/svg+xml',
7612 webp: 'image/webp',
7613 };
7614 function getExtension(url) {
7615 const match = /\.([^./]*?)$/g.exec(url);
7616 return match ? match[1] : '';
7617 }
7618 function getMimeType(url) {
7619 const extension = getExtension(url).toLowerCase();
7620 return mimes[extension] || '';
7621 }
7622 //# sourceMappingURL=mimes.js.map
7623
7624 /***/ }),
7625
7626 /***/ "../node_modules/html-to-image/es/util.js":
7627 /*!************************************************!*\
7628 !*** ../node_modules/html-to-image/es/util.js ***!
7629 \************************************************/
7630 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7631
7632 "use strict";
7633 __webpack_require__.r(__webpack_exports__);
7634 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7635 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
7636 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
7637 /* harmony export */ createImage: () => (/* binding */ createImage),
7638 /* harmony export */ delay: () => (/* binding */ delay),
7639 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
7640 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
7641 /* harmony export */ getStyleProperties: () => (/* binding */ getStyleProperties),
7642 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
7643 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
7644 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
7645 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
7646 /* harmony export */ toArray: () => (/* binding */ toArray),
7647 /* harmony export */ uuid: () => (/* binding */ uuid)
7648 /* harmony export */ });
7649 function resolveUrl(url, baseUrl) {
7650 // url is absolute already
7651 if (url.match(/^[a-z]+:\/\//i)) {
7652 return url;
7653 }
7654 // url is absolute already, without protocol
7655 if (url.match(/^\/\//)) {
7656 return window.location.protocol + url;
7657 }
7658 // dataURI, mailto:, tel:, etc.
7659 if (url.match(/^[a-z]+:/i)) {
7660 return url;
7661 }
7662 const doc = document.implementation.createHTMLDocument();
7663 const base = doc.createElement('base');
7664 const a = doc.createElement('a');
7665 doc.head.appendChild(base);
7666 doc.body.appendChild(a);
7667 if (baseUrl) {
7668 base.href = baseUrl;
7669 }
7670 a.href = url;
7671 return a.href;
7672 }
7673 const uuid = (() => {
7674 // generate uuid for className of pseudo elements.
7675 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
7676 let counter = 0;
7677 // ref: http://stackoverflow.com/a/6248722/2519373
7678 const random = () =>
7679 // eslint-disable-next-line no-bitwise
7680 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
7681 return () => {
7682 counter += 1;
7683 return `u${random()}${counter}`;
7684 };
7685 })();
7686 function delay(ms) {
7687 return (args) => new Promise((resolve) => {
7688 setTimeout(() => resolve(args), ms);
7689 });
7690 }
7691 function toArray(arrayLike) {
7692 const arr = [];
7693 for (let i = 0, l = arrayLike.length; i < l; i++) {
7694 arr.push(arrayLike[i]);
7695 }
7696 return arr;
7697 }
7698 let styleProps = null;
7699 function getStyleProperties(options = {}) {
7700 if (styleProps) {
7701 return styleProps;
7702 }
7703 if (options.includeStyleProperties) {
7704 styleProps = options.includeStyleProperties;
7705 return styleProps;
7706 }
7707 styleProps = toArray(window.getComputedStyle(document.documentElement));
7708 return styleProps;
7709 }
7710 function px(node, styleProperty) {
7711 const win = node.ownerDocument.defaultView || window;
7712 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
7713 return val ? parseFloat(val.replace('px', '')) : 0;
7714 }
7715 function getNodeWidth(node) {
7716 const leftBorder = px(node, 'border-left-width');
7717 const rightBorder = px(node, 'border-right-width');
7718 return node.clientWidth + leftBorder + rightBorder;
7719 }
7720 function getNodeHeight(node) {
7721 const topBorder = px(node, 'border-top-width');
7722 const bottomBorder = px(node, 'border-bottom-width');
7723 return node.clientHeight + topBorder + bottomBorder;
7724 }
7725 function getImageSize(targetNode, options = {}) {
7726 const width = options.width || getNodeWidth(targetNode);
7727 const height = options.height || getNodeHeight(targetNode);
7728 return { width, height };
7729 }
7730 function getPixelRatio() {
7731 let ratio;
7732 let FINAL_PROCESS;
7733 try {
7734 FINAL_PROCESS = process;
7735 }
7736 catch (e) {
7737 // pass
7738 }
7739 const val = FINAL_PROCESS && FINAL_PROCESS.env
7740 ? FINAL_PROCESS.env.devicePixelRatio
7741 : null;
7742 if (val) {
7743 ratio = parseInt(val, 10);
7744 if (Number.isNaN(ratio)) {
7745 ratio = 1;
7746 }
7747 }
7748 return ratio || window.devicePixelRatio || 1;
7749 }
7750 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
7751 const canvasDimensionLimit = 16384;
7752 function checkCanvasDimensions(canvas) {
7753 if (canvas.width > canvasDimensionLimit ||
7754 canvas.height > canvasDimensionLimit) {
7755 if (canvas.width > canvasDimensionLimit &&
7756 canvas.height > canvasDimensionLimit) {
7757 if (canvas.width > canvas.height) {
7758 canvas.height *= canvasDimensionLimit / canvas.width;
7759 canvas.width = canvasDimensionLimit;
7760 }
7761 else {
7762 canvas.width *= canvasDimensionLimit / canvas.height;
7763 canvas.height = canvasDimensionLimit;
7764 }
7765 }
7766 else if (canvas.width > canvasDimensionLimit) {
7767 canvas.height *= canvasDimensionLimit / canvas.width;
7768 canvas.width = canvasDimensionLimit;
7769 }
7770 else {
7771 canvas.width *= canvasDimensionLimit / canvas.height;
7772 canvas.height = canvasDimensionLimit;
7773 }
7774 }
7775 }
7776 function canvasToBlob(canvas, options = {}) {
7777 if (canvas.toBlob) {
7778 return new Promise((resolve) => {
7779 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
7780 });
7781 }
7782 return new Promise((resolve) => {
7783 const binaryString = window.atob(canvas
7784 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
7785 .split(',')[1]);
7786 const len = binaryString.length;
7787 const binaryArray = new Uint8Array(len);
7788 for (let i = 0; i < len; i += 1) {
7789 binaryArray[i] = binaryString.charCodeAt(i);
7790 }
7791 resolve(new Blob([binaryArray], {
7792 type: options.type ? options.type : 'image/png',
7793 }));
7794 });
7795 }
7796 function createImage(url) {
7797 return new Promise((resolve, reject) => {
7798 const img = new Image();
7799 img.onload = () => {
7800 img.decode().then(() => {
7801 requestAnimationFrame(() => resolve(img));
7802 });
7803 };
7804 img.onerror = reject;
7805 img.crossOrigin = 'anonymous';
7806 img.decoding = 'async';
7807 img.src = url;
7808 });
7809 }
7810 async function svgToDataURL(svg) {
7811 return Promise.resolve()
7812 .then(() => new XMLSerializer().serializeToString(svg))
7813 .then(encodeURIComponent)
7814 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
7815 }
7816 async function nodeToDataURL(node, width, height) {
7817 const xmlns = 'http://www.w3.org/2000/svg';
7818 const svg = document.createElementNS(xmlns, 'svg');
7819 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
7820 svg.setAttribute('width', `${width}`);
7821 svg.setAttribute('height', `${height}`);
7822 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
7823 foreignObject.setAttribute('width', '100%');
7824 foreignObject.setAttribute('height', '100%');
7825 foreignObject.setAttribute('x', '0');
7826 foreignObject.setAttribute('y', '0');
7827 foreignObject.setAttribute('externalResourcesRequired', 'true');
7828 svg.appendChild(foreignObject);
7829 foreignObject.appendChild(node);
7830 return svgToDataURL(svg);
7831 }
7832 const isInstanceOfElement = (node, instance) => {
7833 if (node instanceof instance)
7834 return true;
7835 const nodePrototype = Object.getPrototypeOf(node);
7836 if (nodePrototype === null)
7837 return false;
7838 return (nodePrototype.constructor.name === instance.name ||
7839 isInstanceOfElement(nodePrototype, instance));
7840 };
7841 //# sourceMappingURL=util.js.map
7842
7843 /***/ }),
7844
7845 /***/ "../node_modules/object-assign/index.js":
7846 /*!**********************************************!*\
7847 !*** ../node_modules/object-assign/index.js ***!
7848 \**********************************************/
7849 /***/ ((module) => {
7850
7851 "use strict";
7852 /*
7853 object-assign
7854 (c) Sindre Sorhus
7855 @license MIT
7856 */
7857
7858
7859 /* eslint-disable no-unused-vars */
7860 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7861 var hasOwnProperty = Object.prototype.hasOwnProperty;
7862 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7863
7864 function toObject(val) {
7865 if (val === null || val === undefined) {
7866 throw new TypeError('Object.assign cannot be called with null or undefined');
7867 }
7868
7869 return Object(val);
7870 }
7871
7872 function shouldUseNative() {
7873 try {
7874 if (!Object.assign) {
7875 return false;
7876 }
7877
7878 // Detect buggy property enumeration order in older V8 versions.
7879
7880 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7881 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7882 test1[5] = 'de';
7883 if (Object.getOwnPropertyNames(test1)[0] === '5') {
7884 return false;
7885 }
7886
7887 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7888 var test2 = {};
7889 for (var i = 0; i < 10; i++) {
7890 test2['_' + String.fromCharCode(i)] = i;
7891 }
7892 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7893 return test2[n];
7894 });
7895 if (order2.join('') !== '0123456789') {
7896 return false;
7897 }
7898
7899 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7900 var test3 = {};
7901 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7902 test3[letter] = letter;
7903 });
7904 if (Object.keys(Object.assign({}, test3)).join('') !==
7905 'abcdefghijklmnopqrst') {
7906 return false;
7907 }
7908
7909 return true;
7910 } catch (err) {
7911 // We don't expect any of the above to throw, but better to be safe.
7912 return false;
7913 }
7914 }
7915
7916 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7917 var from;
7918 var to = toObject(target);
7919 var symbols;
7920
7921 for (var s = 1; s < arguments.length; s++) {
7922 from = Object(arguments[s]);
7923
7924 for (var key in from) {
7925 if (hasOwnProperty.call(from, key)) {
7926 to[key] = from[key];
7927 }
7928 }
7929
7930 if (getOwnPropertySymbols) {
7931 symbols = getOwnPropertySymbols(from);
7932 for (var i = 0; i < symbols.length; i++) {
7933 if (propIsEnumerable.call(from, symbols[i])) {
7934 to[symbols[i]] = from[symbols[i]];
7935 }
7936 }
7937 }
7938 }
7939
7940 return to;
7941 };
7942
7943
7944 /***/ }),
7945
7946 /***/ "../node_modules/prop-types/checkPropTypes.js":
7947 /*!****************************************************!*\
7948 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7949 \****************************************************/
7950 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7951
7952 "use strict";
7953 /**
7954 * Copyright (c) 2013-present, Facebook, Inc.
7955 *
7956 * This source code is licensed under the MIT license found in the
7957 * LICENSE file in the root directory of this source tree.
7958 */
7959
7960
7961
7962 var printWarning = function() {};
7963
7964 if (true) {
7965 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7966 var loggedTypeFailures = {};
7967 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7968
7969 printWarning = function(text) {
7970 var message = 'Warning: ' + text;
7971 if (typeof console !== 'undefined') {
7972 console.error(message);
7973 }
7974 try {
7975 // --- Welcome to debugging React ---
7976 // This error was thrown as a convenience so that you can use this stack
7977 // to find the callsite that caused this warning to fire.
7978 throw new Error(message);
7979 } catch (x) { /**/ }
7980 };
7981 }
7982
7983 /**
7984 * Assert that the values match with the type specs.
7985 * Error messages are memorized and will only be shown once.
7986 *
7987 * @param {object} typeSpecs Map of name to a ReactPropType
7988 * @param {object} values Runtime values that need to be type-checked
7989 * @param {string} location e.g. "prop", "context", "child context"
7990 * @param {string} componentName Name of the component for error messages.
7991 * @param {?Function} getStack Returns the component stack.
7992 * @private
7993 */
7994 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7995 if (true) {
7996 for (var typeSpecName in typeSpecs) {
7997 if (has(typeSpecs, typeSpecName)) {
7998 var error;
7999 // Prop type validation may throw. In case they do, we don't want to
8000 // fail the render phase where it didn't fail before. So we log it.
8001 // After these have been cleaned up, we'll let them throw.
8002 try {
8003 // This is intentionally an invariant that gets caught. It's the same
8004 // behavior as without this statement except with a better message.
8005 if (typeof typeSpecs[typeSpecName] !== 'function') {
8006 var err = Error(
8007 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
8008 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
8009 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
8010 );
8011 err.name = 'Invariant Violation';
8012 throw err;
8013 }
8014 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8015 } catch (ex) {
8016 error = ex;
8017 }
8018 if (error && !(error instanceof Error)) {
8019 printWarning(
8020 (componentName || 'React class') + ': type specification of ' +
8021 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
8022 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
8023 'You may have forgotten to pass an argument to the type checker ' +
8024 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
8025 'shape all require an argument).'
8026 );
8027 }
8028 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8029 // Only monitor this failure once because there tends to be a lot of the
8030 // same error.
8031 loggedTypeFailures[error.message] = true;
8032
8033 var stack = getStack ? getStack() : '';
8034
8035 printWarning(
8036 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8037 );
8038 }
8039 }
8040 }
8041 }
8042 }
8043
8044 /**
8045 * Resets warning cache when testing.
8046 *
8047 * @private
8048 */
8049 checkPropTypes.resetWarningCache = function() {
8050 if (true) {
8051 loggedTypeFailures = {};
8052 }
8053 }
8054
8055 module.exports = checkPropTypes;
8056
8057
8058 /***/ }),
8059
8060 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
8061 /*!*************************************************************!*\
8062 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
8063 \*************************************************************/
8064 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8065
8066 "use strict";
8067 /**
8068 * Copyright (c) 2013-present, Facebook, Inc.
8069 *
8070 * This source code is licensed under the MIT license found in the
8071 * LICENSE file in the root directory of this source tree.
8072 */
8073
8074
8075
8076 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8077 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
8078
8079 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
8080 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
8081 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
8082
8083 var printWarning = function() {};
8084
8085 if (true) {
8086 printWarning = function(text) {
8087 var message = 'Warning: ' + text;
8088 if (typeof console !== 'undefined') {
8089 console.error(message);
8090 }
8091 try {
8092 // --- Welcome to debugging React ---
8093 // This error was thrown as a convenience so that you can use this stack
8094 // to find the callsite that caused this warning to fire.
8095 throw new Error(message);
8096 } catch (x) {}
8097 };
8098 }
8099
8100 function emptyFunctionThatReturnsNull() {
8101 return null;
8102 }
8103
8104 module.exports = function(isValidElement, throwOnDirectAccess) {
8105 /* global Symbol */
8106 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8107 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8108
8109 /**
8110 * Returns the iterator method function contained on the iterable object.
8111 *
8112 * Be sure to invoke the function with the iterable as context:
8113 *
8114 * var iteratorFn = getIteratorFn(myIterable);
8115 * if (iteratorFn) {
8116 * var iterator = iteratorFn.call(myIterable);
8117 * ...
8118 * }
8119 *
8120 * @param {?object} maybeIterable
8121 * @return {?function}
8122 */
8123 function getIteratorFn(maybeIterable) {
8124 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8125 if (typeof iteratorFn === 'function') {
8126 return iteratorFn;
8127 }
8128 }
8129
8130 /**
8131 * Collection of methods that allow declaration and validation of props that are
8132 * supplied to React components. Example usage:
8133 *
8134 * var Props = require('ReactPropTypes');
8135 * var MyArticle = React.createClass({
8136 * propTypes: {
8137 * // An optional string prop named "description".
8138 * description: Props.string,
8139 *
8140 * // A required enum prop named "category".
8141 * category: Props.oneOf(['News','Photos']).isRequired,
8142 *
8143 * // A prop named "dialog" that requires an instance of Dialog.
8144 * dialog: Props.instanceOf(Dialog).isRequired
8145 * },
8146 * render: function() { ... }
8147 * });
8148 *
8149 * A more formal specification of how these methods are used:
8150 *
8151 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8152 * decl := ReactPropTypes.{type}(.isRequired)?
8153 *
8154 * Each and every declaration produces a function with the same signature. This
8155 * allows the creation of custom validation functions. For example:
8156 *
8157 * var MyLink = React.createClass({
8158 * propTypes: {
8159 * // An optional string or URI prop named "href".
8160 * href: function(props, propName, componentName) {
8161 * var propValue = props[propName];
8162 * if (propValue != null && typeof propValue !== 'string' &&
8163 * !(propValue instanceof URI)) {
8164 * return new Error(
8165 * 'Expected a string or an URI for ' + propName + ' in ' +
8166 * componentName
8167 * );
8168 * }
8169 * }
8170 * },
8171 * render: function() {...}
8172 * });
8173 *
8174 * @internal
8175 */
8176
8177 var ANONYMOUS = '<<anonymous>>';
8178
8179 // Important!
8180 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8181 var ReactPropTypes = {
8182 array: createPrimitiveTypeChecker('array'),
8183 bigint: createPrimitiveTypeChecker('bigint'),
8184 bool: createPrimitiveTypeChecker('boolean'),
8185 func: createPrimitiveTypeChecker('function'),
8186 number: createPrimitiveTypeChecker('number'),
8187 object: createPrimitiveTypeChecker('object'),
8188 string: createPrimitiveTypeChecker('string'),
8189 symbol: createPrimitiveTypeChecker('symbol'),
8190
8191 any: createAnyTypeChecker(),
8192 arrayOf: createArrayOfTypeChecker,
8193 element: createElementTypeChecker(),
8194 elementType: createElementTypeTypeChecker(),
8195 instanceOf: createInstanceTypeChecker,
8196 node: createNodeChecker(),
8197 objectOf: createObjectOfTypeChecker,
8198 oneOf: createEnumTypeChecker,
8199 oneOfType: createUnionTypeChecker,
8200 shape: createShapeTypeChecker,
8201 exact: createStrictShapeTypeChecker,
8202 };
8203
8204 /**
8205 * inlined Object.is polyfill to avoid requiring consumers ship their own
8206 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8207 */
8208 /*eslint-disable no-self-compare*/
8209 function is(x, y) {
8210 // SameValue algorithm
8211 if (x === y) {
8212 // Steps 1-5, 7-10
8213 // Steps 6.b-6.e: +0 != -0
8214 return x !== 0 || 1 / x === 1 / y;
8215 } else {
8216 // Step 6.a: NaN == NaN
8217 return x !== x && y !== y;
8218 }
8219 }
8220 /*eslint-enable no-self-compare*/
8221
8222 /**
8223 * We use an Error-like object for backward compatibility as people may call
8224 * PropTypes directly and inspect their output. However, we don't use real
8225 * Errors anymore. We don't inspect their stack anyway, and creating them
8226 * is prohibitively expensive if they are created too often, such as what
8227 * happens in oneOfType() for any type before the one that matched.
8228 */
8229 function PropTypeError(message, data) {
8230 this.message = message;
8231 this.data = data && typeof data === 'object' ? data: {};
8232 this.stack = '';
8233 }
8234 // Make `instanceof Error` still work for returned errors.
8235 PropTypeError.prototype = Error.prototype;
8236
8237 function createChainableTypeChecker(validate) {
8238 if (true) {
8239 var manualPropTypeCallCache = {};
8240 var manualPropTypeWarningCount = 0;
8241 }
8242 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8243 componentName = componentName || ANONYMOUS;
8244 propFullName = propFullName || propName;
8245
8246 if (secret !== ReactPropTypesSecret) {
8247 if (throwOnDirectAccess) {
8248 // New behavior only for users of `prop-types` package
8249 var err = new Error(
8250 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8251 'Use `PropTypes.checkPropTypes()` to call them. ' +
8252 'Read more at http://fb.me/use-check-prop-types'
8253 );
8254 err.name = 'Invariant Violation';
8255 throw err;
8256 } else if ( true && typeof console !== 'undefined') {
8257 // Old behavior for people using React.PropTypes
8258 var cacheKey = componentName + ':' + propName;
8259 if (
8260 !manualPropTypeCallCache[cacheKey] &&
8261 // Avoid spamming the console because they are often not actionable except for lib authors
8262 manualPropTypeWarningCount < 3
8263 ) {
8264 printWarning(
8265 'You are manually calling a React.PropTypes validation ' +
8266 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8267 'and will throw in the standalone `prop-types` package. ' +
8268 'You may be seeing this warning due to a third-party PropTypes ' +
8269 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8270 );
8271 manualPropTypeCallCache[cacheKey] = true;
8272 manualPropTypeWarningCount++;
8273 }
8274 }
8275 }
8276 if (props[propName] == null) {
8277 if (isRequired) {
8278 if (props[propName] === null) {
8279 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8280 }
8281 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8282 }
8283 return null;
8284 } else {
8285 return validate(props, propName, componentName, location, propFullName);
8286 }
8287 }
8288
8289 var chainedCheckType = checkType.bind(null, false);
8290 chainedCheckType.isRequired = checkType.bind(null, true);
8291
8292 return chainedCheckType;
8293 }
8294
8295 function createPrimitiveTypeChecker(expectedType) {
8296 function validate(props, propName, componentName, location, propFullName, secret) {
8297 var propValue = props[propName];
8298 var propType = getPropType(propValue);
8299 if (propType !== expectedType) {
8300 // `propValue` being instance of, say, date/regexp, pass the 'object'
8301 // check, but we can offer a more precise error message here rather than
8302 // 'of type `object`'.
8303 var preciseType = getPreciseType(propValue);
8304
8305 return new PropTypeError(
8306 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8307 {expectedType: expectedType}
8308 );
8309 }
8310 return null;
8311 }
8312 return createChainableTypeChecker(validate);
8313 }
8314
8315 function createAnyTypeChecker() {
8316 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8317 }
8318
8319 function createArrayOfTypeChecker(typeChecker) {
8320 function validate(props, propName, componentName, location, propFullName) {
8321 if (typeof typeChecker !== 'function') {
8322 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8323 }
8324 var propValue = props[propName];
8325 if (!Array.isArray(propValue)) {
8326 var propType = getPropType(propValue);
8327 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8328 }
8329 for (var i = 0; i < propValue.length; i++) {
8330 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8331 if (error instanceof Error) {
8332 return error;
8333 }
8334 }
8335 return null;
8336 }
8337 return createChainableTypeChecker(validate);
8338 }
8339
8340 function createElementTypeChecker() {
8341 function validate(props, propName, componentName, location, propFullName) {
8342 var propValue = props[propName];
8343 if (!isValidElement(propValue)) {
8344 var propType = getPropType(propValue);
8345 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8346 }
8347 return null;
8348 }
8349 return createChainableTypeChecker(validate);
8350 }
8351
8352 function createElementTypeTypeChecker() {
8353 function validate(props, propName, componentName, location, propFullName) {
8354 var propValue = props[propName];
8355 if (!ReactIs.isValidElementType(propValue)) {
8356 var propType = getPropType(propValue);
8357 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8358 }
8359 return null;
8360 }
8361 return createChainableTypeChecker(validate);
8362 }
8363
8364 function createInstanceTypeChecker(expectedClass) {
8365 function validate(props, propName, componentName, location, propFullName) {
8366 if (!(props[propName] instanceof expectedClass)) {
8367 var expectedClassName = expectedClass.name || ANONYMOUS;
8368 var actualClassName = getClassName(props[propName]);
8369 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8370 }
8371 return null;
8372 }
8373 return createChainableTypeChecker(validate);
8374 }
8375
8376 function createEnumTypeChecker(expectedValues) {
8377 if (!Array.isArray(expectedValues)) {
8378 if (true) {
8379 if (arguments.length > 1) {
8380 printWarning(
8381 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8382 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8383 );
8384 } else {
8385 printWarning('Invalid argument supplied to oneOf, expected an array.');
8386 }
8387 }
8388 return emptyFunctionThatReturnsNull;
8389 }
8390
8391 function validate(props, propName, componentName, location, propFullName) {
8392 var propValue = props[propName];
8393 for (var i = 0; i < expectedValues.length; i++) {
8394 if (is(propValue, expectedValues[i])) {
8395 return null;
8396 }
8397 }
8398
8399 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8400 var type = getPreciseType(value);
8401 if (type === 'symbol') {
8402 return String(value);
8403 }
8404 return value;
8405 });
8406 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8407 }
8408 return createChainableTypeChecker(validate);
8409 }
8410
8411 function createObjectOfTypeChecker(typeChecker) {
8412 function validate(props, propName, componentName, location, propFullName) {
8413 if (typeof typeChecker !== 'function') {
8414 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8415 }
8416 var propValue = props[propName];
8417 var propType = getPropType(propValue);
8418 if (propType !== 'object') {
8419 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8420 }
8421 for (var key in propValue) {
8422 if (has(propValue, key)) {
8423 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8424 if (error instanceof Error) {
8425 return error;
8426 }
8427 }
8428 }
8429 return null;
8430 }
8431 return createChainableTypeChecker(validate);
8432 }
8433
8434 function createUnionTypeChecker(arrayOfTypeCheckers) {
8435 if (!Array.isArray(arrayOfTypeCheckers)) {
8436 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
8437 return emptyFunctionThatReturnsNull;
8438 }
8439
8440 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8441 var checker = arrayOfTypeCheckers[i];
8442 if (typeof checker !== 'function') {
8443 printWarning(
8444 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8445 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8446 );
8447 return emptyFunctionThatReturnsNull;
8448 }
8449 }
8450
8451 function validate(props, propName, componentName, location, propFullName) {
8452 var expectedTypes = [];
8453 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8454 var checker = arrayOfTypeCheckers[i];
8455 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
8456 if (checkerResult == null) {
8457 return null;
8458 }
8459 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
8460 expectedTypes.push(checkerResult.data.expectedType);
8461 }
8462 }
8463 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8464 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8465 }
8466 return createChainableTypeChecker(validate);
8467 }
8468
8469 function createNodeChecker() {
8470 function validate(props, propName, componentName, location, propFullName) {
8471 if (!isNode(props[propName])) {
8472 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8473 }
8474 return null;
8475 }
8476 return createChainableTypeChecker(validate);
8477 }
8478
8479 function invalidValidatorError(componentName, location, propFullName, key, type) {
8480 return new PropTypeError(
8481 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8482 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8483 );
8484 }
8485
8486 function createShapeTypeChecker(shapeTypes) {
8487 function validate(props, propName, componentName, location, propFullName) {
8488 var propValue = props[propName];
8489 var propType = getPropType(propValue);
8490 if (propType !== 'object') {
8491 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8492 }
8493 for (var key in shapeTypes) {
8494 var checker = shapeTypes[key];
8495 if (typeof checker !== 'function') {
8496 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8497 }
8498 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8499 if (error) {
8500 return error;
8501 }
8502 }
8503 return null;
8504 }
8505 return createChainableTypeChecker(validate);
8506 }
8507
8508 function createStrictShapeTypeChecker(shapeTypes) {
8509 function validate(props, propName, componentName, location, propFullName) {
8510 var propValue = props[propName];
8511 var propType = getPropType(propValue);
8512 if (propType !== 'object') {
8513 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8514 }
8515 // We need to check all keys in case some are required but missing from props.
8516 var allKeys = assign({}, props[propName], shapeTypes);
8517 for (var key in allKeys) {
8518 var checker = shapeTypes[key];
8519 if (has(shapeTypes, key) && typeof checker !== 'function') {
8520 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8521 }
8522 if (!checker) {
8523 return new PropTypeError(
8524 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8525 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8526 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8527 );
8528 }
8529 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8530 if (error) {
8531 return error;
8532 }
8533 }
8534 return null;
8535 }
8536
8537 return createChainableTypeChecker(validate);
8538 }
8539
8540 function isNode(propValue) {
8541 switch (typeof propValue) {
8542 case 'number':
8543 case 'string':
8544 case 'undefined':
8545 return true;
8546 case 'boolean':
8547 return !propValue;
8548 case 'object':
8549 if (Array.isArray(propValue)) {
8550 return propValue.every(isNode);
8551 }
8552 if (propValue === null || isValidElement(propValue)) {
8553 return true;
8554 }
8555
8556 var iteratorFn = getIteratorFn(propValue);
8557 if (iteratorFn) {
8558 var iterator = iteratorFn.call(propValue);
8559 var step;
8560 if (iteratorFn !== propValue.entries) {
8561 while (!(step = iterator.next()).done) {
8562 if (!isNode(step.value)) {
8563 return false;
8564 }
8565 }
8566 } else {
8567 // Iterator will provide entry [k,v] tuples rather than values.
8568 while (!(step = iterator.next()).done) {
8569 var entry = step.value;
8570 if (entry) {
8571 if (!isNode(entry[1])) {
8572 return false;
8573 }
8574 }
8575 }
8576 }
8577 } else {
8578 return false;
8579 }
8580
8581 return true;
8582 default:
8583 return false;
8584 }
8585 }
8586
8587 function isSymbol(propType, propValue) {
8588 // Native Symbol.
8589 if (propType === 'symbol') {
8590 return true;
8591 }
8592
8593 // falsy value can't be a Symbol
8594 if (!propValue) {
8595 return false;
8596 }
8597
8598 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8599 if (propValue['@@toStringTag'] === 'Symbol') {
8600 return true;
8601 }
8602
8603 // Fallback for non-spec compliant Symbols which are polyfilled.
8604 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8605 return true;
8606 }
8607
8608 return false;
8609 }
8610
8611 // Equivalent of `typeof` but with special handling for array and regexp.
8612 function getPropType(propValue) {
8613 var propType = typeof propValue;
8614 if (Array.isArray(propValue)) {
8615 return 'array';
8616 }
8617 if (propValue instanceof RegExp) {
8618 // Old webkits (at least until Android 4.0) return 'function' rather than
8619 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8620 // passes PropTypes.object.
8621 return 'object';
8622 }
8623 if (isSymbol(propType, propValue)) {
8624 return 'symbol';
8625 }
8626 return propType;
8627 }
8628
8629 // This handles more types than `getPropType`. Only used for error messages.
8630 // See `createPrimitiveTypeChecker`.
8631 function getPreciseType(propValue) {
8632 if (typeof propValue === 'undefined' || propValue === null) {
8633 return '' + propValue;
8634 }
8635 var propType = getPropType(propValue);
8636 if (propType === 'object') {
8637 if (propValue instanceof Date) {
8638 return 'date';
8639 } else if (propValue instanceof RegExp) {
8640 return 'regexp';
8641 }
8642 }
8643 return propType;
8644 }
8645
8646 // Returns a string that is postfixed to a warning about an invalid type.
8647 // For example, "undefined" or "of type array"
8648 function getPostfixForTypeWarning(value) {
8649 var type = getPreciseType(value);
8650 switch (type) {
8651 case 'array':
8652 case 'object':
8653 return 'an ' + type;
8654 case 'boolean':
8655 case 'date':
8656 case 'regexp':
8657 return 'a ' + type;
8658 default:
8659 return type;
8660 }
8661 }
8662
8663 // Returns class name of the object, if any.
8664 function getClassName(propValue) {
8665 if (!propValue.constructor || !propValue.constructor.name) {
8666 return ANONYMOUS;
8667 }
8668 return propValue.constructor.name;
8669 }
8670
8671 ReactPropTypes.checkPropTypes = checkPropTypes;
8672 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8673 ReactPropTypes.PropTypes = ReactPropTypes;
8674
8675 return ReactPropTypes;
8676 };
8677
8678
8679 /***/ }),
8680
8681 /***/ "../node_modules/prop-types/index.js":
8682 /*!*******************************************!*\
8683 !*** ../node_modules/prop-types/index.js ***!
8684 \*******************************************/
8685 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8686
8687 /**
8688 * Copyright (c) 2013-present, Facebook, Inc.
8689 *
8690 * This source code is licensed under the MIT license found in the
8691 * LICENSE file in the root directory of this source tree.
8692 */
8693
8694 if (true) {
8695 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8696
8697 // By explicitly using `prop-types` you are opting into new development behavior.
8698 // http://fb.me/prop-types-in-prod
8699 var throwOnDirectAccess = true;
8700 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
8701 } else // removed by dead control flow
8702 {}
8703
8704
8705 /***/ }),
8706
8707 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
8708 /*!**************************************************************!*\
8709 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8710 \**************************************************************/
8711 /***/ ((module) => {
8712
8713 "use strict";
8714 /**
8715 * Copyright (c) 2013-present, Facebook, Inc.
8716 *
8717 * This source code is licensed under the MIT license found in the
8718 * LICENSE file in the root directory of this source tree.
8719 */
8720
8721
8722
8723 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8724
8725 module.exports = ReactPropTypesSecret;
8726
8727
8728 /***/ }),
8729
8730 /***/ "../node_modules/prop-types/lib/has.js":
8731 /*!*********************************************!*\
8732 !*** ../node_modules/prop-types/lib/has.js ***!
8733 \*********************************************/
8734 /***/ ((module) => {
8735
8736 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
8737
8738
8739 /***/ }),
8740
8741 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
8742 /*!************************************************************************************!*\
8743 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
8744 \************************************************************************************/
8745 /***/ ((__unused_webpack_module, exports) => {
8746
8747 "use strict";
8748 /** @license React v16.13.1
8749 * react-is.development.js
8750 *
8751 * Copyright (c) Facebook, Inc. and its affiliates.
8752 *
8753 * This source code is licensed under the MIT license found in the
8754 * LICENSE file in the root directory of this source tree.
8755 */
8756
8757
8758
8759
8760
8761 if (true) {
8762 (function() {
8763 'use strict';
8764
8765 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
8766 // nor polyfill, then a plain number is used for performance.
8767 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
8768 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
8769 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
8770 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
8771 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
8772 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
8773 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
8774 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
8775 // (unstable) APIs that have been removed. Can we remove the symbols?
8776
8777 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
8778 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
8779 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
8780 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
8781 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
8782 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
8783 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
8784 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
8785 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
8786 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
8787 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
8788
8789 function isValidElementType(type) {
8790 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
8791 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);
8792 }
8793
8794 function typeOf(object) {
8795 if (typeof object === 'object' && object !== null) {
8796 var $$typeof = object.$$typeof;
8797
8798 switch ($$typeof) {
8799 case REACT_ELEMENT_TYPE:
8800 var type = object.type;
8801
8802 switch (type) {
8803 case REACT_ASYNC_MODE_TYPE:
8804 case REACT_CONCURRENT_MODE_TYPE:
8805 case REACT_FRAGMENT_TYPE:
8806 case REACT_PROFILER_TYPE:
8807 case REACT_STRICT_MODE_TYPE:
8808 case REACT_SUSPENSE_TYPE:
8809 return type;
8810
8811 default:
8812 var $$typeofType = type && type.$$typeof;
8813
8814 switch ($$typeofType) {
8815 case REACT_CONTEXT_TYPE:
8816 case REACT_FORWARD_REF_TYPE:
8817 case REACT_LAZY_TYPE:
8818 case REACT_MEMO_TYPE:
8819 case REACT_PROVIDER_TYPE:
8820 return $$typeofType;
8821
8822 default:
8823 return $$typeof;
8824 }
8825
8826 }
8827
8828 case REACT_PORTAL_TYPE:
8829 return $$typeof;
8830 }
8831 }
8832
8833 return undefined;
8834 } // AsyncMode is deprecated along with isAsyncMode
8835
8836 var AsyncMode = REACT_ASYNC_MODE_TYPE;
8837 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
8838 var ContextConsumer = REACT_CONTEXT_TYPE;
8839 var ContextProvider = REACT_PROVIDER_TYPE;
8840 var Element = REACT_ELEMENT_TYPE;
8841 var ForwardRef = REACT_FORWARD_REF_TYPE;
8842 var Fragment = REACT_FRAGMENT_TYPE;
8843 var Lazy = REACT_LAZY_TYPE;
8844 var Memo = REACT_MEMO_TYPE;
8845 var Portal = REACT_PORTAL_TYPE;
8846 var Profiler = REACT_PROFILER_TYPE;
8847 var StrictMode = REACT_STRICT_MODE_TYPE;
8848 var Suspense = REACT_SUSPENSE_TYPE;
8849 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
8850
8851 function isAsyncMode(object) {
8852 {
8853 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
8854 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
8855
8856 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.');
8857 }
8858 }
8859
8860 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
8861 }
8862 function isConcurrentMode(object) {
8863 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
8864 }
8865 function isContextConsumer(object) {
8866 return typeOf(object) === REACT_CONTEXT_TYPE;
8867 }
8868 function isContextProvider(object) {
8869 return typeOf(object) === REACT_PROVIDER_TYPE;
8870 }
8871 function isElement(object) {
8872 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8873 }
8874 function isForwardRef(object) {
8875 return typeOf(object) === REACT_FORWARD_REF_TYPE;
8876 }
8877 function isFragment(object) {
8878 return typeOf(object) === REACT_FRAGMENT_TYPE;
8879 }
8880 function isLazy(object) {
8881 return typeOf(object) === REACT_LAZY_TYPE;
8882 }
8883 function isMemo(object) {
8884 return typeOf(object) === REACT_MEMO_TYPE;
8885 }
8886 function isPortal(object) {
8887 return typeOf(object) === REACT_PORTAL_TYPE;
8888 }
8889 function isProfiler(object) {
8890 return typeOf(object) === REACT_PROFILER_TYPE;
8891 }
8892 function isStrictMode(object) {
8893 return typeOf(object) === REACT_STRICT_MODE_TYPE;
8894 }
8895 function isSuspense(object) {
8896 return typeOf(object) === REACT_SUSPENSE_TYPE;
8897 }
8898
8899 exports.AsyncMode = AsyncMode;
8900 exports.ConcurrentMode = ConcurrentMode;
8901 exports.ContextConsumer = ContextConsumer;
8902 exports.ContextProvider = ContextProvider;
8903 exports.Element = Element;
8904 exports.ForwardRef = ForwardRef;
8905 exports.Fragment = Fragment;
8906 exports.Lazy = Lazy;
8907 exports.Memo = Memo;
8908 exports.Portal = Portal;
8909 exports.Profiler = Profiler;
8910 exports.StrictMode = StrictMode;
8911 exports.Suspense = Suspense;
8912 exports.isAsyncMode = isAsyncMode;
8913 exports.isConcurrentMode = isConcurrentMode;
8914 exports.isContextConsumer = isContextConsumer;
8915 exports.isContextProvider = isContextProvider;
8916 exports.isElement = isElement;
8917 exports.isForwardRef = isForwardRef;
8918 exports.isFragment = isFragment;
8919 exports.isLazy = isLazy;
8920 exports.isMemo = isMemo;
8921 exports.isPortal = isPortal;
8922 exports.isProfiler = isProfiler;
8923 exports.isStrictMode = isStrictMode;
8924 exports.isSuspense = isSuspense;
8925 exports.isValidElementType = isValidElementType;
8926 exports.typeOf = typeOf;
8927 })();
8928 }
8929
8930
8931 /***/ }),
8932
8933 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8934 /*!*****************************************************************!*\
8935 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8936 \*****************************************************************/
8937 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8938
8939 "use strict";
8940
8941
8942 if (false) // removed by dead control flow
8943 {} else {
8944 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8945 }
8946
8947
8948 /***/ }),
8949
8950 /***/ "../node_modules/react-dom/client.js":
8951 /*!*******************************************!*\
8952 !*** ../node_modules/react-dom/client.js ***!
8953 \*******************************************/
8954 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8955
8956 "use strict";
8957
8958
8959 var m = __webpack_require__(/*! react-dom */ "react-dom");
8960 if (false) // removed by dead control flow
8961 {} else {
8962 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8963 exports.createRoot = function(c, o) {
8964 i.usingClientEntryPoint = true;
8965 try {
8966 return m.createRoot(c, o);
8967 } finally {
8968 i.usingClientEntryPoint = false;
8969 }
8970 };
8971 exports.hydrateRoot = function(c, h, o) {
8972 i.usingClientEntryPoint = true;
8973 try {
8974 return m.hydrateRoot(c, h, o);
8975 } finally {
8976 i.usingClientEntryPoint = false;
8977 }
8978 };
8979 }
8980
8981
8982 /***/ }),
8983
8984 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8985 /*!**************************************************************!*\
8986 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8987 \**************************************************************/
8988 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8989
8990 "use strict";
8991
8992
8993 Object.defineProperty(exports, "__esModule", ({
8994 value: true
8995 }));
8996 Object.defineProperty(exports, "DraggableCore", ({
8997 enumerable: true,
8998 get: function () {
8999 return _DraggableCore.default;
9000 }
9001 }));
9002 exports["default"] = void 0;
9003 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9004 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9005 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9006 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
9007 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9008 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9009 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9010 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
9011 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9012 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9013 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9014 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9015 function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9016 function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9017 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9018 function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/
9019 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
9020 /*:: import type {Element as ReactElement} from 'react';*/
9021 /*:: type DraggableState = {
9022 dragging: boolean,
9023 dragged: boolean,
9024 x: number, y: number,
9025 slackX: number, slackY: number,
9026 isElementSVG: boolean,
9027 prevPropsPosition: ?ControlPosition,
9028 };*/
9029 /*:: export type DraggableDefaultProps = {
9030 ...DraggableCoreDefaultProps,
9031 axis: 'both' | 'x' | 'y' | 'none',
9032 bounds: Bounds | string | false,
9033 defaultClassName: string,
9034 defaultClassNameDragging: string,
9035 defaultClassNameDragged: string,
9036 defaultPosition: ControlPosition,
9037 scale: number,
9038 };*/
9039 /*:: export type DraggableProps = {
9040 ...DraggableCoreProps,
9041 ...DraggableDefaultProps,
9042 positionOffset: PositionOffsetControlPosition,
9043 position: ControlPosition,
9044 };*/
9045 //
9046 // Define <Draggable>
9047 //
9048 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
9049 // React 16.3+
9050 // Arity (props, state)
9051 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
9052 let {
9053 position
9054 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
9055 let {
9056 prevPropsPosition
9057 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
9058 // Set x/y if a new position is provided in props that is different than the previous.
9059 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
9060 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
9061 position,
9062 prevPropsPosition
9063 });
9064 return {
9065 x: position.x,
9066 y: position.y,
9067 prevPropsPosition: {
9068 ...position
9069 }
9070 };
9071 }
9072 return null;
9073 }
9074 constructor(props /*: DraggableProps*/) {
9075 super(props);
9076 _defineProperty(this, "onDragStart", (e, coreData) => {
9077 (0, _log.default)('Draggable: onDragStart: %j', coreData);
9078
9079 // Short-circuit if user's callback killed it.
9080 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
9081 // Kills start event on core as well, so move handlers are never bound.
9082 if (shouldStart === false) return false;
9083 this.setState({
9084 dragging: true,
9085 dragged: true
9086 });
9087 });
9088 _defineProperty(this, "onDrag", (e, coreData) => {
9089 if (!this.state.dragging) return false;
9090 (0, _log.default)('Draggable: onDrag: %j', coreData);
9091 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
9092 const newState = {
9093 x: uiData.x,
9094 y: uiData.y,
9095 slackX: 0,
9096 slackY: 0
9097 };
9098
9099 // Keep within bounds.
9100 if (this.props.bounds) {
9101 // Save original x and y.
9102 const {
9103 x,
9104 y
9105 } = newState;
9106
9107 // Add slack to the values used to calculate bound position. This will ensure that if
9108 // we start removing slack, the element won't react to it right away until it's been
9109 // completely removed.
9110 newState.x += this.state.slackX;
9111 newState.y += this.state.slackY;
9112
9113 // Get bound position. This will ceil/floor the x and y within the boundaries.
9114 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
9115 newState.x = newStateX;
9116 newState.y = newStateY;
9117
9118 // Recalculate slack by noting how much was shaved by the boundPosition handler.
9119 newState.slackX = this.state.slackX + (x - newState.x);
9120 newState.slackY = this.state.slackY + (y - newState.y);
9121
9122 // Update the event we fire to reflect what really happened after bounds took effect.
9123 uiData.x = newState.x;
9124 uiData.y = newState.y;
9125 uiData.deltaX = newState.x - this.state.x;
9126 uiData.deltaY = newState.y - this.state.y;
9127 }
9128
9129 // Short-circuit if user's callback killed it.
9130 const shouldUpdate = this.props.onDrag(e, uiData);
9131 if (shouldUpdate === false) return false;
9132 this.setState(newState);
9133 });
9134 _defineProperty(this, "onDragStop", (e, coreData) => {
9135 if (!this.state.dragging) return false;
9136
9137 // Short-circuit if user's callback killed it.
9138 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
9139 if (shouldContinue === false) return false;
9140 (0, _log.default)('Draggable: onDragStop: %j', coreData);
9141 const newState /*: Partial<DraggableState>*/ = {
9142 dragging: false,
9143 slackX: 0,
9144 slackY: 0
9145 };
9146
9147 // If this is a controlled component, the result of this operation will be to
9148 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
9149 const controlled = Boolean(this.props.position);
9150 if (controlled) {
9151 const {
9152 x,
9153 y
9154 } = this.props.position;
9155 newState.x = x;
9156 newState.y = y;
9157 }
9158 this.setState(newState);
9159 });
9160 this.state = {
9161 // Whether or not we are currently dragging.
9162 dragging: false,
9163 // Whether or not we have been dragged before.
9164 dragged: false,
9165 // Current transform x and y.
9166 x: props.position ? props.position.x : props.defaultPosition.x,
9167 y: props.position ? props.position.y : props.defaultPosition.y,
9168 prevPropsPosition: {
9169 ...props.position
9170 },
9171 // Used for compensating for out-of-bounds drags
9172 slackX: 0,
9173 slackY: 0,
9174 // Can only determine if SVG after mounting
9175 isElementSVG: false
9176 };
9177 if (props.position && !(props.onDrag || props.onStop)) {
9178 // eslint-disable-next-line no-console
9179 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.');
9180 }
9181 }
9182 componentDidMount() {
9183 // Check to see if the element passed is an instanceof SVGElement
9184 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
9185 this.setState({
9186 isElementSVG: true
9187 });
9188 }
9189 }
9190 componentWillUnmount() {
9191 this.setState({
9192 dragging: false
9193 }); // prevents invariant if unmounted while dragging
9194 }
9195
9196 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9197 // the underlying DOM node ourselves. See the README for more information.
9198 findDOMNode() /*: ?HTMLElement*/{
9199 var _this$props$nodeRef$c, _this$props;
9200 return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 || (_this$props = _this$props.nodeRef) === null || _this$props === void 0 ? void 0 : _this$props.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);
9201 }
9202 render() /*: ReactElement<any>*/{
9203 const {
9204 axis,
9205 bounds,
9206 children,
9207 defaultPosition,
9208 defaultClassName,
9209 defaultClassNameDragging,
9210 defaultClassNameDragged,
9211 position,
9212 positionOffset,
9213 scale,
9214 ...draggableCoreProps
9215 } = this.props;
9216 let style = {};
9217 let svgTransform = null;
9218
9219 // If this is controlled, we don't want to move it - unless it's dragging.
9220 const controlled = Boolean(position);
9221 const draggable = !controlled || this.state.dragging;
9222 const validPosition = position || defaultPosition;
9223 const transformOpts = {
9224 // Set left if horizontal drag is enabled
9225 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
9226 // Set top if vertical drag is enabled
9227 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
9228 };
9229
9230 // If this element was SVG, we use the `transform` attribute.
9231 if (this.state.isElementSVG) {
9232 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
9233 } else {
9234 // Add a CSS transform to move the element around. This allows us to move the element around
9235 // without worrying about whether or not it is relatively or absolutely positioned.
9236 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
9237 // has a clean slate.
9238 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
9239 }
9240
9241 // Mark with class while dragging
9242 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
9243 [defaultClassNameDragging]: this.state.dragging,
9244 [defaultClassNameDragged]: this.state.dragged
9245 });
9246
9247 // Reuse the child provided
9248 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9249 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
9250 onStart: this.onDragStart,
9251 onDrag: this.onDrag,
9252 onStop: this.onDragStop
9253 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
9254 className: className,
9255 style: {
9256 ...children.props.style,
9257 ...style
9258 },
9259 transform: svgTransform
9260 }));
9261 }
9262 }
9263 exports["default"] = Draggable;
9264 _defineProperty(Draggable, "displayName", 'Draggable');
9265 _defineProperty(Draggable, "propTypes", {
9266 // Accepts all props <DraggableCore> accepts.
9267 ..._DraggableCore.default.propTypes,
9268 /**
9269 * `axis` determines which axis the draggable can move.
9270 *
9271 * Note that all callbacks will still return data as normal. This only
9272 * controls flushing to the DOM.
9273 *
9274 * 'both' allows movement horizontally and vertically.
9275 * 'x' limits movement to horizontal axis.
9276 * 'y' limits movement to vertical axis.
9277 * 'none' limits all movement.
9278 *
9279 * Defaults to 'both'.
9280 */
9281 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
9282 /**
9283 * `bounds` determines the range of movement available to the element.
9284 * Available values are:
9285 *
9286 * 'parent' restricts movement within the Draggable's parent node.
9287 *
9288 * Alternatively, pass an object with the following properties, all of which are optional:
9289 *
9290 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
9291 *
9292 * All values are in px.
9293 *
9294 * Example:
9295 *
9296 * ```jsx
9297 * let App = React.createClass({
9298 * render: function () {
9299 * return (
9300 * <Draggable bounds={{right: 300, bottom: 300}}>
9301 * <div>Content</div>
9302 * </Draggable>
9303 * );
9304 * }
9305 * });
9306 * ```
9307 */
9308 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
9309 left: _propTypes.default.number,
9310 right: _propTypes.default.number,
9311 top: _propTypes.default.number,
9312 bottom: _propTypes.default.number
9313 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
9314 defaultClassName: _propTypes.default.string,
9315 defaultClassNameDragging: _propTypes.default.string,
9316 defaultClassNameDragged: _propTypes.default.string,
9317 /**
9318 * `defaultPosition` specifies the x and y that the dragged item should start at
9319 *
9320 * Example:
9321 *
9322 * ```jsx
9323 * let App = React.createClass({
9324 * render: function () {
9325 * return (
9326 * <Draggable defaultPosition={{x: 25, y: 25}}>
9327 * <div>I start with transformX: 25px and transformY: 25px;</div>
9328 * </Draggable>
9329 * );
9330 * }
9331 * });
9332 * ```
9333 */
9334 defaultPosition: _propTypes.default.shape({
9335 x: _propTypes.default.number,
9336 y: _propTypes.default.number
9337 }),
9338 positionOffset: _propTypes.default.shape({
9339 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
9340 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
9341 }),
9342 /**
9343 * `position`, if present, defines the current position of the element.
9344 *
9345 * This is similar to how form elements in React work - if no `position` is supplied, the component
9346 * is uncontrolled.
9347 *
9348 * Example:
9349 *
9350 * ```jsx
9351 * let App = React.createClass({
9352 * render: function () {
9353 * return (
9354 * <Draggable position={{x: 25, y: 25}}>
9355 * <div>I start with transformX: 25px and transformY: 25px;</div>
9356 * </Draggable>
9357 * );
9358 * }
9359 * });
9360 * ```
9361 */
9362 position: _propTypes.default.shape({
9363 x: _propTypes.default.number,
9364 y: _propTypes.default.number
9365 }),
9366 /**
9367 * These properties should be defined on the child, not here.
9368 */
9369 className: _shims.dontSetMe,
9370 style: _shims.dontSetMe,
9371 transform: _shims.dontSetMe
9372 });
9373 _defineProperty(Draggable, "defaultProps", {
9374 ..._DraggableCore.default.defaultProps,
9375 axis: 'both',
9376 bounds: false,
9377 defaultClassName: 'react-draggable',
9378 defaultClassNameDragging: 'react-draggable-dragging',
9379 defaultClassNameDragged: 'react-draggable-dragged',
9380 defaultPosition: {
9381 x: 0,
9382 y: 0
9383 },
9384 scale: 1
9385 });
9386
9387 /***/ }),
9388
9389 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
9390 /*!******************************************************************!*\
9391 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
9392 \******************************************************************/
9393 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9394
9395 "use strict";
9396
9397
9398 Object.defineProperty(exports, "__esModule", ({
9399 value: true
9400 }));
9401 exports["default"] = void 0;
9402 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9403 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9404 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9405 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9406 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9407 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9408 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9409 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9410 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9411 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9412 function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9413 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9414 function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9415 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
9416 /*:: import type {Element as ReactElement} from 'react';*/
9417 // Simple abstraction for dragging events names.
9418 const eventsFor = {
9419 touch: {
9420 start: 'touchstart',
9421 move: 'touchmove',
9422 stop: 'touchend'
9423 },
9424 mouse: {
9425 start: 'mousedown',
9426 move: 'mousemove',
9427 stop: 'mouseup'
9428 }
9429 };
9430
9431 // Default to mouse events.
9432 let dragEventFor = eventsFor.mouse;
9433 /*:: export type DraggableData = {
9434 node: HTMLElement,
9435 x: number, y: number,
9436 deltaX: number, deltaY: number,
9437 lastX: number, lastY: number,
9438 };*/
9439 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
9440 /*:: export type ControlPosition = {x: number, y: number};*/
9441 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
9442 /*:: export type DraggableCoreDefaultProps = {
9443 allowAnyClick: boolean,
9444 disabled: boolean,
9445 enableUserSelectHack: boolean,
9446 onStart: DraggableEventHandler,
9447 onDrag: DraggableEventHandler,
9448 onStop: DraggableEventHandler,
9449 onMouseDown: (e: MouseEvent) => void,
9450 scale: number,
9451 };*/
9452 /*:: export type DraggableCoreProps = {
9453 ...DraggableCoreDefaultProps,
9454 cancel: string,
9455 children: ReactElement<any>,
9456 offsetParent: HTMLElement,
9457 grid: [number, number],
9458 handle: string,
9459 nodeRef?: ?React.ElementRef<any>,
9460 };*/
9461 //
9462 // Define <DraggableCore>.
9463 //
9464 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
9465 // work well with libraries that require more control over the element.
9466 //
9467
9468 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
9469 constructor() {
9470 super(...arguments);
9471 _defineProperty(this, "dragging", false);
9472 // Used while dragging to determine deltas.
9473 _defineProperty(this, "lastX", NaN);
9474 _defineProperty(this, "lastY", NaN);
9475 _defineProperty(this, "touchIdentifier", null);
9476 _defineProperty(this, "mounted", false);
9477 _defineProperty(this, "handleDragStart", e => {
9478 // Make it possible to attach event handlers on top of this one.
9479 this.props.onMouseDown(e);
9480
9481 // Only accept left-clicks.
9482 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
9483
9484 // Get nodes. Be sure to grab relative document (could be iframed)
9485 const thisNode = this.findDOMNode();
9486 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
9487 throw new Error('<DraggableCore> not mounted on DragStart!');
9488 }
9489 const {
9490 ownerDocument
9491 } = thisNode;
9492
9493 // Short circuit if handle or cancel prop was provided and selector doesn't match.
9494 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)) {
9495 return;
9496 }
9497
9498 // Prevent scrolling on mobile devices, like ipad/iphone.
9499 // Important that this is after handle/cancel.
9500 if (e.type === 'touchstart') e.preventDefault();
9501
9502 // Set touch identifier in component state if this is a touch event. This allows us to
9503 // distinguish between individual touches on multitouch screens by identifying which
9504 // touchpoint was set to this element.
9505 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
9506 this.touchIdentifier = touchIdentifier;
9507
9508 // Get the current drag point from the event. This is used as the offset.
9509 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
9510 if (position == null) return; // not possible but satisfies flow
9511 const {
9512 x,
9513 y
9514 } = position;
9515
9516 // Create an event object with all the data parents need to make a decision here.
9517 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9518 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
9519
9520 // Call event handler. If it returns explicit false, cancel.
9521 (0, _log.default)('calling', this.props.onStart);
9522 const shouldUpdate = this.props.onStart(e, coreEvent);
9523 if (shouldUpdate === false || this.mounted === false) return;
9524
9525 // Add a style to the body to disable user-select. This prevents text from
9526 // being selected all over the page.
9527 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
9528
9529 // Initiate dragging. Set the current x and y as offsets
9530 // so we know how much we've moved during the drag. This allows us
9531 // to drag elements around even if they have been moved, without issue.
9532 this.dragging = true;
9533 this.lastX = x;
9534 this.lastY = y;
9535
9536 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
9537 // this element. We use different events depending on whether or not we have detected that this
9538 // is a touch-capable device.
9539 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
9540 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
9541 });
9542 _defineProperty(this, "handleDrag", e => {
9543 // Get the current drag point from the event. This is used as the offset.
9544 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9545 if (position == null) return;
9546 let {
9547 x,
9548 y
9549 } = position;
9550
9551 // Snap to grid if prop has been provided
9552 if (Array.isArray(this.props.grid)) {
9553 let deltaX = x - this.lastX,
9554 deltaY = y - this.lastY;
9555 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9556 if (!deltaX && !deltaY) return; // skip useless drag
9557 x = this.lastX + deltaX, y = this.lastY + deltaY;
9558 }
9559 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9560 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
9561
9562 // Call event handler. If it returns explicit false, trigger end.
9563 const shouldUpdate = this.props.onDrag(e, coreEvent);
9564 if (shouldUpdate === false || this.mounted === false) {
9565 try {
9566 // $FlowIgnore
9567 this.handleDragStop(new MouseEvent('mouseup'));
9568 } catch (err) {
9569 // Old browsers
9570 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
9571 // I see why this insanity was deprecated
9572 // $FlowIgnore
9573 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
9574 this.handleDragStop(event);
9575 }
9576 return;
9577 }
9578 this.lastX = x;
9579 this.lastY = y;
9580 });
9581 _defineProperty(this, "handleDragStop", e => {
9582 if (!this.dragging) return;
9583 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9584 if (position == null) return;
9585 let {
9586 x,
9587 y
9588 } = position;
9589
9590 // Snap to grid if prop has been provided
9591 if (Array.isArray(this.props.grid)) {
9592 let deltaX = x - this.lastX || 0;
9593 let deltaY = y - this.lastY || 0;
9594 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9595 x = this.lastX + deltaX, y = this.lastY + deltaY;
9596 }
9597 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9598
9599 // Call event handler
9600 const shouldContinue = this.props.onStop(e, coreEvent);
9601 if (shouldContinue === false || this.mounted === false) return false;
9602 const thisNode = this.findDOMNode();
9603 if (thisNode) {
9604 // Remove user-select hack
9605 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
9606 }
9607 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
9608
9609 // Reset the el.
9610 this.dragging = false;
9611 this.lastX = NaN;
9612 this.lastY = NaN;
9613 if (thisNode) {
9614 // Remove event handlers
9615 (0, _log.default)('DraggableCore: Removing handlers');
9616 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
9617 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
9618 }
9619 });
9620 _defineProperty(this, "onMouseDown", e => {
9621 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
9622
9623 return this.handleDragStart(e);
9624 });
9625 _defineProperty(this, "onMouseUp", e => {
9626 dragEventFor = eventsFor.mouse;
9627 return this.handleDragStop(e);
9628 });
9629 // Same as onMouseDown (start drag), but now consider this a touch device.
9630 _defineProperty(this, "onTouchStart", e => {
9631 // We're on a touch device now, so change the event handlers
9632 dragEventFor = eventsFor.touch;
9633 return this.handleDragStart(e);
9634 });
9635 _defineProperty(this, "onTouchEnd", e => {
9636 // We're on a touch device now, so change the event handlers
9637 dragEventFor = eventsFor.touch;
9638 return this.handleDragStop(e);
9639 });
9640 }
9641 componentDidMount() {
9642 this.mounted = true;
9643 // Touch handlers must be added with {passive: false} to be cancelable.
9644 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9645 const thisNode = this.findDOMNode();
9646 if (thisNode) {
9647 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9648 passive: false
9649 });
9650 }
9651 }
9652 componentWillUnmount() {
9653 this.mounted = false;
9654 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
9655 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
9656 const thisNode = this.findDOMNode();
9657 if (thisNode) {
9658 const {
9659 ownerDocument
9660 } = thisNode;
9661 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
9662 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
9663 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
9664 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
9665 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9666 passive: false
9667 });
9668 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
9669 }
9670 }
9671
9672 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9673 // the underlying DOM node ourselves. See the README for more information.
9674 findDOMNode() /*: ?HTMLElement*/{
9675 var _this$props, _this$props2;
9676 return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);
9677 }
9678 render() /*: React.Element<any>*/{
9679 // Reuse the child provided
9680 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9681 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
9682 // Note: mouseMove handler is attached to document so it will still function
9683 // when the user drags quickly and leaves the bounds of the element.
9684 onMouseDown: this.onMouseDown,
9685 onMouseUp: this.onMouseUp,
9686 // onTouchStart is added on `componentDidMount` so they can be added with
9687 // {passive: false}, which allows it to cancel. See
9688 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9689 onTouchEnd: this.onTouchEnd
9690 });
9691 }
9692 }
9693 exports["default"] = DraggableCore;
9694 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
9695 _defineProperty(DraggableCore, "propTypes", {
9696 /**
9697 * `allowAnyClick` allows dragging using any mouse button.
9698 * By default, we only accept the left button.
9699 *
9700 * Defaults to `false`.
9701 */
9702 allowAnyClick: _propTypes.default.bool,
9703 children: _propTypes.default.node.isRequired,
9704 /**
9705 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
9706 * with the exception of `onMouseDown`, will not fire.
9707 */
9708 disabled: _propTypes.default.bool,
9709 /**
9710 * By default, we add 'user-select:none' attributes to the document body
9711 * to prevent ugly text selection during drag. If this is causing problems
9712 * for your app, set this to `false`.
9713 */
9714 enableUserSelectHack: _propTypes.default.bool,
9715 /**
9716 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
9717 * instead of using the parent node.
9718 */
9719 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
9720 if (props[propName] && props[propName].nodeType !== 1) {
9721 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
9722 }
9723 },
9724 /**
9725 * `grid` specifies the x and y that dragging should snap to.
9726 */
9727 grid: _propTypes.default.arrayOf(_propTypes.default.number),
9728 /**
9729 * `handle` specifies a selector to be used as the handle that initiates drag.
9730 *
9731 * Example:
9732 *
9733 * ```jsx
9734 * let App = React.createClass({
9735 * render: function () {
9736 * return (
9737 * <Draggable handle=".handle">
9738 * <div>
9739 * <div className="handle">Click me to drag</div>
9740 * <div>This is some other content</div>
9741 * </div>
9742 * </Draggable>
9743 * );
9744 * }
9745 * });
9746 * ```
9747 */
9748 handle: _propTypes.default.string,
9749 /**
9750 * `cancel` specifies a selector to be used to prevent drag initialization.
9751 *
9752 * Example:
9753 *
9754 * ```jsx
9755 * let App = React.createClass({
9756 * render: function () {
9757 * return(
9758 * <Draggable cancel=".cancel">
9759 * <div>
9760 * <div className="cancel">You can't drag from here</div>
9761 * <div>Dragging here works fine</div>
9762 * </div>
9763 * </Draggable>
9764 * );
9765 * }
9766 * });
9767 * ```
9768 */
9769 cancel: _propTypes.default.string,
9770 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
9771 * Unfortunately, in order for <Draggable> to work properly, we need raw access
9772 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
9773 * as in this example:
9774 *
9775 * function MyComponent() {
9776 * const nodeRef = React.useRef(null);
9777 * return (
9778 * <Draggable nodeRef={nodeRef}>
9779 * <div ref={nodeRef}>Example Target</div>
9780 * </Draggable>
9781 * );
9782 * }
9783 *
9784 * This can be used for arbitrarily nested components, so long as the ref ends up
9785 * pointing to the actual child DOM node and not a custom component.
9786 */
9787 nodeRef: _propTypes.default.object,
9788 /**
9789 * Called when dragging starts.
9790 * If this function returns the boolean false, dragging will be canceled.
9791 */
9792 onStart: _propTypes.default.func,
9793 /**
9794 * Called while dragging.
9795 * If this function returns the boolean false, dragging will be canceled.
9796 */
9797 onDrag: _propTypes.default.func,
9798 /**
9799 * Called when dragging stops.
9800 * If this function returns the boolean false, the drag will remain active.
9801 */
9802 onStop: _propTypes.default.func,
9803 /**
9804 * A workaround option which can be passed if onMouseDown needs to be accessed,
9805 * since it'll always be blocked (as there is internal use of onMouseDown)
9806 */
9807 onMouseDown: _propTypes.default.func,
9808 /**
9809 * `scale`, if set, applies scaling while dragging an element
9810 */
9811 scale: _propTypes.default.number,
9812 /**
9813 * These properties should be defined on the child, not here.
9814 */
9815 className: _shims.dontSetMe,
9816 style: _shims.dontSetMe,
9817 transform: _shims.dontSetMe
9818 });
9819 _defineProperty(DraggableCore, "defaultProps", {
9820 allowAnyClick: false,
9821 // by default only accept left click
9822 disabled: false,
9823 enableUserSelectHack: true,
9824 onStart: function () {},
9825 onDrag: function () {},
9826 onStop: function () {},
9827 onMouseDown: function () {},
9828 scale: 1
9829 });
9830
9831 /***/ }),
9832
9833 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
9834 /*!********************************************************!*\
9835 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
9836 \********************************************************/
9837 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9838
9839 "use strict";
9840
9841
9842 const {
9843 default: Draggable,
9844 DraggableCore
9845 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
9846
9847 // 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'.
9848 // See https://github.com/mzabriskie/react-draggable/pull/254
9849 // and https://github.com/mzabriskie/react-draggable/issues/266
9850 module.exports = Draggable;
9851 module.exports["default"] = Draggable;
9852 module.exports.DraggableCore = DraggableCore;
9853
9854 /***/ }),
9855
9856 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
9857 /*!*****************************************************************!*\
9858 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
9859 \*****************************************************************/
9860 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9861
9862 "use strict";
9863
9864
9865 Object.defineProperty(exports, "__esModule", ({
9866 value: true
9867 }));
9868 exports.addClassName = addClassName;
9869 exports.addEvent = addEvent;
9870 exports.addUserSelectStyles = addUserSelectStyles;
9871 exports.createCSSTransform = createCSSTransform;
9872 exports.createSVGTransform = createSVGTransform;
9873 exports.getTouch = getTouch;
9874 exports.getTouchIdentifier = getTouchIdentifier;
9875 exports.getTranslation = getTranslation;
9876 exports.innerHeight = innerHeight;
9877 exports.innerWidth = innerWidth;
9878 exports.matchesSelector = matchesSelector;
9879 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
9880 exports.offsetXYFromParent = offsetXYFromParent;
9881 exports.outerHeight = outerHeight;
9882 exports.outerWidth = outerWidth;
9883 exports.removeClassName = removeClassName;
9884 exports.removeEvent = removeEvent;
9885 exports.removeUserSelectStyles = removeUserSelectStyles;
9886 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9887 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
9888 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9889 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9890 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
9891 let matchesSelectorFunc = '';
9892 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
9893 if (!matchesSelectorFunc) {
9894 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
9895 // $FlowIgnore: Doesn't think elements are indexable
9896 return (0, _shims.isFunction)(el[method]);
9897 });
9898 }
9899
9900 // Might not be found entirely (not an Element?) - in that case, bail
9901 // $FlowIgnore: Doesn't think elements are indexable
9902 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
9903
9904 // $FlowIgnore: Doesn't think elements are indexable
9905 return el[matchesSelectorFunc](selector);
9906 }
9907
9908 // Works up the tree to the draggable itself attempting to match selector.
9909 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
9910 let node = el;
9911 do {
9912 if (matchesSelector(node, selector)) return true;
9913 if (node === baseNode) return false;
9914 // $FlowIgnore[incompatible-type]
9915 node = node.parentNode;
9916 } while (node);
9917 return false;
9918 }
9919 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9920 if (!el) return;
9921 const options = {
9922 capture: true,
9923 ...inputOptions
9924 };
9925 // $FlowIgnore[method-unbinding]
9926 if (el.addEventListener) {
9927 el.addEventListener(event, handler, options);
9928 } else if (el.attachEvent) {
9929 el.attachEvent('on' + event, handler);
9930 } else {
9931 // $FlowIgnore: Doesn't think elements are indexable
9932 el['on' + event] = handler;
9933 }
9934 }
9935 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9936 if (!el) return;
9937 const options = {
9938 capture: true,
9939 ...inputOptions
9940 };
9941 // $FlowIgnore[method-unbinding]
9942 if (el.removeEventListener) {
9943 el.removeEventListener(event, handler, options);
9944 } else if (el.detachEvent) {
9945 el.detachEvent('on' + event, handler);
9946 } else {
9947 // $FlowIgnore: Doesn't think elements are indexable
9948 el['on' + event] = null;
9949 }
9950 }
9951 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9952 // This is deliberately excluding margin for our calculations, since we are using
9953 // offsetTop which is including margin. See getBoundPosition
9954 let height = node.clientHeight;
9955 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9956 height += (0, _shims.int)(computedStyle.borderTopWidth);
9957 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9958 return height;
9959 }
9960 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9961 // This is deliberately excluding margin for our calculations, since we are using
9962 // offsetLeft which is including margin. See getBoundPosition
9963 let width = node.clientWidth;
9964 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9965 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9966 width += (0, _shims.int)(computedStyle.borderRightWidth);
9967 return width;
9968 }
9969 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9970 let height = node.clientHeight;
9971 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9972 height -= (0, _shims.int)(computedStyle.paddingTop);
9973 height -= (0, _shims.int)(computedStyle.paddingBottom);
9974 return height;
9975 }
9976 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9977 let width = node.clientWidth;
9978 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9979 width -= (0, _shims.int)(computedStyle.paddingLeft);
9980 width -= (0, _shims.int)(computedStyle.paddingRight);
9981 return width;
9982 }
9983 /*:: interface EventWithOffset {
9984 clientX: number, clientY: number
9985 }*/
9986 // Get from offsetParent
9987 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9988 const isBody = offsetParent === offsetParent.ownerDocument.body;
9989 const offsetParentRect = isBody ? {
9990 left: 0,
9991 top: 0
9992 } : offsetParent.getBoundingClientRect();
9993 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9994 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9995 return {
9996 x,
9997 y
9998 };
9999 }
10000 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
10001 const translation = getTranslation(controlPos, positionOffset, 'px');
10002 return {
10003 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
10004 };
10005 }
10006 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
10007 const translation = getTranslation(controlPos, positionOffset, '');
10008 return translation;
10009 }
10010 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
10011 let {
10012 x,
10013 y
10014 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
10015 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
10016 if (positionOffset) {
10017 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
10018 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
10019 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
10020 }
10021 return translation;
10022 }
10023 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
10024 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
10025 }
10026 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
10027 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
10028 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
10029 }
10030
10031 // User-select Hacks:
10032 //
10033 // Useful for preventing blue highlights all over everything when dragging.
10034
10035 // Note we're passing `document` b/c we could be iframed
10036 function addUserSelectStyles(doc /*: ?Document*/) {
10037 if (!doc) return;
10038 let styleEl = doc.getElementById('react-draggable-style-el');
10039 if (!styleEl) {
10040 styleEl = doc.createElement('style');
10041 styleEl.type = 'text/css';
10042 styleEl.id = 'react-draggable-style-el';
10043 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
10044 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
10045 doc.getElementsByTagName('head')[0].appendChild(styleEl);
10046 }
10047 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
10048 }
10049 function removeUserSelectStyles(doc /*: ?Document*/) {
10050 if (!doc) return;
10051 try {
10052 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
10053 // $FlowIgnore: IE
10054 if (doc.selection) {
10055 // $FlowIgnore: IE
10056 doc.selection.empty();
10057 } else {
10058 // Remove selection caused by scroll, unless it's a focused input
10059 // (we use doc.defaultView in case we're in an iframe)
10060 const selection = (doc.defaultView || window).getSelection();
10061 if (selection && selection.type !== 'Caret') {
10062 selection.removeAllRanges();
10063 }
10064 }
10065 } catch (e) {
10066 // probably IE
10067 }
10068 }
10069 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
10070 if (el.classList) {
10071 el.classList.add(className);
10072 } else {
10073 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
10074 el.className += " ".concat(className);
10075 }
10076 }
10077 }
10078 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
10079 if (el.classList) {
10080 el.classList.remove(className);
10081 } else {
10082 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
10083 }
10084 }
10085
10086 /***/ }),
10087
10088 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
10089 /*!********************************************************************!*\
10090 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
10091 \********************************************************************/
10092 /***/ ((__unused_webpack_module, exports) => {
10093
10094 "use strict";
10095
10096
10097 Object.defineProperty(exports, "__esModule", ({
10098 value: true
10099 }));
10100 exports.browserPrefixToKey = browserPrefixToKey;
10101 exports.browserPrefixToStyle = browserPrefixToStyle;
10102 exports["default"] = void 0;
10103 exports.getPrefix = getPrefix;
10104 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
10105 function getPrefix() /*: string*/{
10106 var _window$document;
10107 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
10108 // Ensure we're running in an environment where there is actually a global
10109 // `window` obj
10110 if (typeof window === 'undefined') return '';
10111
10112 // If we're in a pseudo-browser server-side environment, this access
10113 // path may not exist, so bail out if it doesn't.
10114 const style = (_window$document = window.document) === null || _window$document === void 0 || (_window$document = _window$document.documentElement) === null || _window$document === void 0 ? void 0 : _window$document.style;
10115 if (!style) return '';
10116 if (prop in style) return '';
10117 for (let i = 0; i < prefixes.length; i++) {
10118 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
10119 }
10120 return '';
10121 }
10122 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
10123 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
10124 }
10125 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
10126 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
10127 }
10128 function kebabToTitleCase(str /*: string*/) /*: string*/{
10129 let out = '';
10130 let shouldCapitalize = true;
10131 for (let i = 0; i < str.length; i++) {
10132 if (shouldCapitalize) {
10133 out += str[i].toUpperCase();
10134 shouldCapitalize = false;
10135 } else if (str[i] === '-') {
10136 shouldCapitalize = true;
10137 } else {
10138 out += str[i];
10139 }
10140 }
10141 return out;
10142 }
10143
10144 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
10145 // Note that you may have to re-test for certain things; for instance, Chrome 50
10146 // can handle unprefixed `transform`, but not unprefixed `user-select`
10147 var _default = exports["default"] = (getPrefix() /*: string*/);
10148
10149 /***/ }),
10150
10151 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
10152 /*!**************************************************************!*\
10153 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
10154 \**************************************************************/
10155 /***/ ((__unused_webpack_module, exports) => {
10156
10157 "use strict";
10158
10159
10160 Object.defineProperty(exports, "__esModule", ({
10161 value: true
10162 }));
10163 exports["default"] = log;
10164 /*eslint no-console:0*/
10165 function log() {
10166 if (false) // removed by dead control flow
10167 {}
10168 }
10169
10170 /***/ }),
10171
10172 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
10173 /*!**********************************************************************!*\
10174 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
10175 \**********************************************************************/
10176 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10177
10178 "use strict";
10179
10180
10181 Object.defineProperty(exports, "__esModule", ({
10182 value: true
10183 }));
10184 exports.canDragX = canDragX;
10185 exports.canDragY = canDragY;
10186 exports.createCoreData = createCoreData;
10187 exports.createDraggableData = createDraggableData;
10188 exports.getBoundPosition = getBoundPosition;
10189 exports.getControlPosition = getControlPosition;
10190 exports.snapToGrid = snapToGrid;
10191 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
10192 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
10193 /*:: import type Draggable from '../Draggable';*/
10194 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
10195 /*:: import type DraggableCore from '../DraggableCore';*/
10196 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
10197 // If no bounds, short-circuit and move on
10198 if (!draggable.props.bounds) return [x, y];
10199
10200 // Clone new bounds
10201 let {
10202 bounds
10203 } = draggable.props;
10204 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
10205 const node = findDOMNode(draggable);
10206 if (typeof bounds === 'string') {
10207 const {
10208 ownerDocument
10209 } = node;
10210 const ownerWindow = ownerDocument.defaultView;
10211 let boundNode;
10212 if (bounds === 'parent') {
10213 boundNode = node.parentNode;
10214 } else {
10215 boundNode = ownerDocument.querySelector(bounds);
10216 }
10217 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
10218 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
10219 }
10220 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
10221 const nodeStyle = ownerWindow.getComputedStyle(node);
10222 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
10223 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
10224 bounds = {
10225 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
10226 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
10227 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
10228 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
10229 };
10230 }
10231
10232 // Keep x and y below right and bottom limits...
10233 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
10234 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
10235
10236 // But above left and top limits.
10237 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
10238 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
10239 return [x, y];
10240 }
10241 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
10242 const x = Math.round(pendingX / grid[0]) * grid[0];
10243 const y = Math.round(pendingY / grid[1]) * grid[1];
10244 return [x, y];
10245 }
10246 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
10247 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
10248 }
10249 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
10250 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
10251 }
10252
10253 // Get {x, y} positions from event.
10254 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
10255 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
10256 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
10257 const node = findDOMNode(draggableCore);
10258 // User can provide an offsetParent if desired.
10259 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
10260 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
10261 }
10262
10263 // Create an data object exposed by <DraggableCore>'s events
10264 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
10265 const isStart = !(0, _shims.isNum)(draggable.lastX);
10266 const node = findDOMNode(draggable);
10267 if (isStart) {
10268 // If this is our first move, use the x and y as last coords.
10269 return {
10270 node,
10271 deltaX: 0,
10272 deltaY: 0,
10273 lastX: x,
10274 lastY: y,
10275 x,
10276 y
10277 };
10278 } else {
10279 // Otherwise calculate proper values.
10280 return {
10281 node,
10282 deltaX: x - draggable.lastX,
10283 deltaY: y - draggable.lastY,
10284 lastX: draggable.lastX,
10285 lastY: draggable.lastY,
10286 x,
10287 y
10288 };
10289 }
10290 }
10291
10292 // Create an data exposed by <Draggable>'s events
10293 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
10294 const scale = draggable.props.scale;
10295 return {
10296 node: coreData.node,
10297 x: draggable.state.x + coreData.deltaX / scale,
10298 y: draggable.state.y + coreData.deltaY / scale,
10299 deltaX: coreData.deltaX / scale,
10300 deltaY: coreData.deltaY / scale,
10301 lastX: draggable.state.x,
10302 lastY: draggable.state.y
10303 };
10304 }
10305
10306 // A lot faster than stringify/parse
10307 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
10308 return {
10309 left: bounds.left,
10310 top: bounds.top,
10311 right: bounds.right,
10312 bottom: bounds.bottom
10313 };
10314 }
10315 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
10316 const node = draggable.findDOMNode();
10317 if (!node) {
10318 throw new Error('<DraggableCore>: Unmounted during event!');
10319 }
10320 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
10321 return node;
10322 }
10323
10324 /***/ }),
10325
10326 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
10327 /*!****************************************************************!*\
10328 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
10329 \****************************************************************/
10330 /***/ ((__unused_webpack_module, exports) => {
10331
10332 "use strict";
10333
10334
10335 Object.defineProperty(exports, "__esModule", ({
10336 value: true
10337 }));
10338 exports.dontSetMe = dontSetMe;
10339 exports.findInArray = findInArray;
10340 exports.int = int;
10341 exports.isFunction = isFunction;
10342 exports.isNum = isNum;
10343 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
10344 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
10345 for (let i = 0, length = array.length; i < length; i++) {
10346 if (callback.apply(callback, [array[i], i, array])) return array[i];
10347 }
10348 }
10349 function isFunction(func /*: any*/) /*: boolean %checks*/{
10350 // $FlowIgnore[method-unbinding]
10351 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
10352 }
10353 function isNum(num /*: any*/) /*: boolean %checks*/{
10354 return typeof num === 'number' && !isNaN(num);
10355 }
10356 function int(a /*: string*/) /*: number*/{
10357 return parseInt(a, 10);
10358 }
10359 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
10360 if (props[propName]) {
10361 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
10362 }
10363 }
10364
10365 /***/ }),
10366
10367 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
10368 /*!************************************************************************!*\
10369 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
10370 \************************************************************************/
10371 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10372
10373 "use strict";
10374 __webpack_require__.r(__webpack_exports__);
10375 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10376 /* harmony export */ clsx: () => (/* binding */ clsx),
10377 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10378 /* harmony export */ });
10379 function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);
10380
10381 /***/ }),
10382
10383 /***/ "../node_modules/validator/lib/isFQDN.js":
10384 /*!***********************************************!*\
10385 !*** ../node_modules/validator/lib/isFQDN.js ***!
10386 \***********************************************/
10387 /***/ ((module, exports, __webpack_require__) => {
10388
10389 "use strict";
10390
10391
10392 Object.defineProperty(exports, "__esModule", ({
10393 value: true
10394 }));
10395 exports["default"] = isFQDN;
10396 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10397 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10398 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10399 var default_fqdn_options = {
10400 require_tld: true,
10401 allow_underscores: false,
10402 allow_trailing_dot: false,
10403 allow_numeric_tld: false,
10404 allow_wildcard: false,
10405 ignore_max_length: false
10406 };
10407 function isFQDN(str, options) {
10408 (0, _assertString.default)(str);
10409 options = (0, _merge.default)(options, default_fqdn_options);
10410
10411 /* Remove the optional trailing dot before checking validity */
10412 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
10413 str = str.substring(0, str.length - 1);
10414 }
10415
10416 /* Remove the optional wildcard before checking validity */
10417 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
10418 str = str.substring(2);
10419 }
10420 var parts = str.split('.');
10421 var tld = parts[parts.length - 1];
10422 if (options.require_tld) {
10423 // disallow fqdns without tld
10424 if (parts.length < 2) {
10425 return false;
10426 }
10427 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
10428 return false;
10429 }
10430
10431 // disallow spaces
10432 if (/\s/.test(tld)) {
10433 return false;
10434 }
10435 }
10436
10437 // reject numeric TLDs
10438 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
10439 return false;
10440 }
10441 return parts.every(function (part) {
10442 if (part.length > 63 && !options.ignore_max_length) {
10443 return false;
10444 }
10445 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
10446 return false;
10447 }
10448
10449 // disallow full-width chars
10450 if (/[\uff01-\uff5e]/.test(part)) {
10451 return false;
10452 }
10453
10454 // disallow parts starting or ending with hyphen
10455 if (/^-|-$/.test(part)) {
10456 return false;
10457 }
10458 if (!options.allow_underscores && /_/.test(part)) {
10459 return false;
10460 }
10461 return true;
10462 });
10463 }
10464 module.exports = exports.default;
10465 module.exports["default"] = exports.default;
10466
10467 /***/ }),
10468
10469 /***/ "../node_modules/validator/lib/isIP.js":
10470 /*!*********************************************!*\
10471 !*** ../node_modules/validator/lib/isIP.js ***!
10472 \*********************************************/
10473 /***/ ((module, exports, __webpack_require__) => {
10474
10475 "use strict";
10476
10477
10478 Object.defineProperty(exports, "__esModule", ({
10479 value: true
10480 }));
10481 exports["default"] = isIP;
10482 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10483 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10484 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); }
10485 /**
10486 11.3. Examples
10487
10488 The following addresses
10489
10490 fe80::1234 (on the 1st link of the node)
10491 ff02::5678 (on the 5th link of the node)
10492 ff08::9abc (on the 10th organization of the node)
10493
10494 would be represented as follows:
10495
10496 fe80::1234%1
10497 ff02::5678%5
10498 ff08::9abc%10
10499
10500 (Here we assume a natural translation from a zone index to the
10501 <zone_id> part, where the Nth zone of any scope is translated into
10502 "N".)
10503
10504 If we use interface names as <zone_id>, those addresses could also be
10505 represented as follows:
10506
10507 fe80::1234%ne0
10508 ff02::5678%pvc1.3
10509 ff08::9abc%interface10
10510
10511 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
10512 to the 5th link, and "interface10" belongs to the 10th organization.
10513 * * */
10514 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
10515 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
10516 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
10517 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
10518 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,})?$');
10519 function isIP(ipAddress) {
10520 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10521 (0, _assertString.default)(ipAddress);
10522
10523 // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])
10524 // eslint-disable-next-line prefer-rest-params
10525 var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';
10526 if (!version) {
10527 return isIP(ipAddress, {
10528 version: 4
10529 }) || isIP(ipAddress, {
10530 version: 6
10531 });
10532 }
10533 if (version.toString() === '4') {
10534 return IPv4AddressRegExp.test(ipAddress);
10535 }
10536 if (version.toString() === '6') {
10537 return IPv6AddressRegExp.test(ipAddress);
10538 }
10539 return false;
10540 }
10541 module.exports = exports.default;
10542 module.exports["default"] = exports.default;
10543
10544 /***/ }),
10545
10546 /***/ "../node_modules/validator/lib/isURL.js":
10547 /*!**********************************************!*\
10548 !*** ../node_modules/validator/lib/isURL.js ***!
10549 \**********************************************/
10550 /***/ ((module, exports, __webpack_require__) => {
10551
10552 "use strict";
10553
10554
10555 Object.defineProperty(exports, "__esModule", ({
10556 value: true
10557 }));
10558 exports["default"] = isURL;
10559 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10560 var _checkHost = _interopRequireDefault(__webpack_require__(/*! ./util/checkHost */ "../node_modules/validator/lib/util/checkHost.js"));
10561 var _includesString = _interopRequireDefault(__webpack_require__(/*! ./util/includesString */ "../node_modules/validator/lib/util/includesString.js"));
10562 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
10563 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
10564 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10565 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10566 function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10567 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."); }
10568 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; } }
10569 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; }
10570 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; } }
10571 function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
10572 /*
10573 options for isURL method
10574
10575 protocols - valid protocols can be modified with this option.
10576 require_tld - If set to false isURL will not check if the URL's host includes a top-level domain.
10577 require_protocol - if set to true isURL will return false if protocol is not present in the URL.
10578 require_host - if set to false isURL will not check if host is present in the URL.
10579 require_port - if set to true isURL will check if port is present in the URL.
10580 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.
10581 allow_underscores - if set to true, the validator will allow underscores in the URL.
10582 host_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings
10583 defined in it, the validation fails.
10584 host_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings
10585 defined in it, the validation fails.
10586 allow_trailing_dot - if set to true, the validator will allow the domain to end with
10587 a `.` character.
10588 allow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.
10589 allow_fragments - if set to false isURL will return false if fragments are present.
10590 allow_query_components - if set to false isURL will return false if query components are present.
10591 disallow_auth - if set to true, the validator will fail if the URL contains an authentication
10592 component, e.g. `http://username:password@example.com`
10593 validate_length - if set to false isURL will skip string length validation. `max_allowed_length`
10594 will be ignored if this is set as `false`.
10595 max_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is
10596 2084 that IE maximum URL length).
10597
10598 */
10599
10600 var default_url_options = {
10601 protocols: ['http', 'https', 'ftp'],
10602 require_tld: true,
10603 require_protocol: false,
10604 require_host: true,
10605 require_port: false,
10606 require_valid_protocol: true,
10607 allow_underscores: false,
10608 allow_trailing_dot: false,
10609 allow_protocol_relative_urls: false,
10610 allow_fragments: true,
10611 allow_query_components: true,
10612 validate_length: true,
10613 max_allowed_length: 2084
10614 };
10615 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
10616 function isURL(url, options) {
10617 (0, _assertString.default)(url);
10618 if (!url || /[\s<>]/.test(url)) {
10619 return false;
10620 }
10621 if (url.indexOf('mailto:') === 0) {
10622 return false;
10623 }
10624 options = (0, _merge.default)(options, default_url_options);
10625 if (options.validate_length && url.length > options.max_allowed_length) {
10626 return false;
10627 }
10628 if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {
10629 return false;
10630 }
10631 if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {
10632 return false;
10633 }
10634 var protocol, auth, host, hostname, port, port_str, split, ipv6;
10635 split = url.split('#');
10636 url = split.shift();
10637 split = url.split('?');
10638 url = split.shift();
10639 split = url.split('://');
10640 if (split.length > 1) {
10641 protocol = split.shift().toLowerCase();
10642 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
10643 return false;
10644 }
10645 } else if (options.require_protocol) {
10646 return false;
10647 } else if (url.slice(0, 2) === '//') {
10648 if (!options.allow_protocol_relative_urls) {
10649 return false;
10650 }
10651 split[0] = url.slice(2);
10652 }
10653 url = split.join('://');
10654 if (url === '') {
10655 return false;
10656 }
10657 split = url.split('/');
10658 url = split.shift();
10659 if (url === '' && !options.require_host) {
10660 return true;
10661 }
10662 split = url.split('@');
10663 if (split.length > 1) {
10664 if (options.disallow_auth) {
10665 return false;
10666 }
10667 if (split[0] === '') {
10668 return false;
10669 }
10670 auth = split.shift();
10671 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
10672 return false;
10673 }
10674 var _auth$split = auth.split(':'),
10675 _auth$split2 = _slicedToArray(_auth$split, 2),
10676 user = _auth$split2[0],
10677 password = _auth$split2[1];
10678 if (user === '' && password === '') {
10679 return false;
10680 }
10681 }
10682 hostname = split.join('@');
10683 port_str = null;
10684 ipv6 = null;
10685 var ipv6_match = hostname.match(wrapped_ipv6);
10686 if (ipv6_match) {
10687 host = '';
10688 ipv6 = ipv6_match[1];
10689 port_str = ipv6_match[2] || null;
10690 } else {
10691 split = hostname.split(':');
10692 host = split.shift();
10693 if (split.length) {
10694 port_str = split.join(':');
10695 }
10696 }
10697 if (port_str !== null && port_str.length > 0) {
10698 port = parseInt(port_str, 10);
10699 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
10700 return false;
10701 }
10702 } else if (options.require_port) {
10703 return false;
10704 }
10705 if (options.host_whitelist) {
10706 return (0, _checkHost.default)(host, options.host_whitelist);
10707 }
10708 if (host === '' && !options.require_host) {
10709 return true;
10710 }
10711 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
10712 return false;
10713 }
10714 host = host || ipv6;
10715 if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
10716 return false;
10717 }
10718 return true;
10719 }
10720 module.exports = exports.default;
10721 module.exports["default"] = exports.default;
10722
10723 /***/ }),
10724
10725 /***/ "../node_modules/validator/lib/util/assertString.js":
10726 /*!**********************************************************!*\
10727 !*** ../node_modules/validator/lib/util/assertString.js ***!
10728 \**********************************************************/
10729 /***/ ((module, exports) => {
10730
10731 "use strict";
10732
10733
10734 Object.defineProperty(exports, "__esModule", ({
10735 value: true
10736 }));
10737 exports["default"] = assertString;
10738 function assertString(input) {
10739 if (input === undefined || input === null) throw new TypeError("Expected a string but received a ".concat(input));
10740 if (input.constructor.name !== 'String') throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
10741 }
10742 module.exports = exports.default;
10743 module.exports["default"] = exports.default;
10744
10745 /***/ }),
10746
10747 /***/ "../node_modules/validator/lib/util/checkHost.js":
10748 /*!*******************************************************!*\
10749 !*** ../node_modules/validator/lib/util/checkHost.js ***!
10750 \*******************************************************/
10751 /***/ ((module, exports) => {
10752
10753 "use strict";
10754
10755
10756 Object.defineProperty(exports, "__esModule", ({
10757 value: true
10758 }));
10759 exports["default"] = checkHost;
10760 function isRegExp(obj) {
10761 return Object.prototype.toString.call(obj) === '[object RegExp]';
10762 }
10763 function checkHost(host, matches) {
10764 for (var i = 0; i < matches.length; i++) {
10765 var match = matches[i];
10766 if (host === match || isRegExp(match) && match.test(host)) {
10767 return true;
10768 }
10769 }
10770 return false;
10771 }
10772 module.exports = exports.default;
10773 module.exports["default"] = exports.default;
10774
10775 /***/ }),
10776
10777 /***/ "../node_modules/validator/lib/util/includesString.js":
10778 /*!************************************************************!*\
10779 !*** ../node_modules/validator/lib/util/includesString.js ***!
10780 \************************************************************/
10781 /***/ ((module, exports) => {
10782
10783 "use strict";
10784
10785
10786 Object.defineProperty(exports, "__esModule", ({
10787 value: true
10788 }));
10789 exports["default"] = void 0;
10790 var includes = function includes(str, val) {
10791 return str.indexOf(val) !== -1;
10792 };
10793 var _default = exports["default"] = includes;
10794 module.exports = exports.default;
10795 module.exports["default"] = exports.default;
10796
10797 /***/ }),
10798
10799 /***/ "../node_modules/validator/lib/util/merge.js":
10800 /*!***************************************************!*\
10801 !*** ../node_modules/validator/lib/util/merge.js ***!
10802 \***************************************************/
10803 /***/ ((module, exports) => {
10804
10805 "use strict";
10806
10807
10808 Object.defineProperty(exports, "__esModule", ({
10809 value: true
10810 }));
10811 exports["default"] = merge;
10812 function merge() {
10813 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10814 var defaults = arguments.length > 1 ? arguments[1] : undefined;
10815 for (var key in defaults) {
10816 if (typeof obj[key] === 'undefined') {
10817 obj[key] = defaults[key];
10818 }
10819 }
10820 return obj;
10821 }
10822 module.exports = exports.default;
10823 module.exports["default"] = exports.default;
10824
10825 /***/ }),
10826
10827 /***/ "@elementor/icons":
10828 /*!************************************!*\
10829 !*** external "elementorV2.icons" ***!
10830 \************************************/
10831 /***/ ((module) => {
10832
10833 "use strict";
10834 module.exports = elementorV2.icons;
10835
10836 /***/ }),
10837
10838 /***/ "@elementor/ui":
10839 /*!*********************************!*\
10840 !*** external "elementorV2.ui" ***!
10841 \*********************************/
10842 /***/ ((module) => {
10843
10844 "use strict";
10845 module.exports = elementorV2.ui;
10846
10847 /***/ }),
10848
10849 /***/ "@wordpress/i18n":
10850 /*!**************************!*\
10851 !*** external "wp.i18n" ***!
10852 \**************************/
10853 /***/ ((module) => {
10854
10855 "use strict";
10856 module.exports = wp.i18n;
10857
10858 /***/ }),
10859
10860 /***/ "react":
10861 /*!************************!*\
10862 !*** external "React" ***!
10863 \************************/
10864 /***/ ((module) => {
10865
10866 "use strict";
10867 module.exports = React;
10868
10869 /***/ }),
10870
10871 /***/ "react-dom":
10872 /*!***************************!*\
10873 !*** external "ReactDOM" ***!
10874 \***************************/
10875 /***/ ((module) => {
10876
10877 "use strict";
10878 module.exports = ReactDOM;
10879
10880 /***/ })
10881
10882 /******/ });
10883 /************************************************************************/
10884 /******/ // The module cache
10885 /******/ var __webpack_module_cache__ = {};
10886 /******/
10887 /******/ // The require function
10888 /******/ function __webpack_require__(moduleId) {
10889 /******/ // Check if module is in cache
10890 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10891 /******/ if (cachedModule !== undefined) {
10892 /******/ return cachedModule.exports;
10893 /******/ }
10894 /******/ // Create a new module (and put it into the cache)
10895 /******/ var module = __webpack_module_cache__[moduleId] = {
10896 /******/ // no module.id needed
10897 /******/ // no module.loaded needed
10898 /******/ exports: {}
10899 /******/ };
10900 /******/
10901 /******/ // Execute the module function
10902 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10903 /******/
10904 /******/ // Return the exports of the module
10905 /******/ return module.exports;
10906 /******/ }
10907 /******/
10908 /************************************************************************/
10909 /******/ /* webpack/runtime/define property getters */
10910 /******/ (() => {
10911 /******/ // define getter functions for harmony exports
10912 /******/ __webpack_require__.d = (exports, definition) => {
10913 /******/ for(var key in definition) {
10914 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10915 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10916 /******/ }
10917 /******/ }
10918 /******/ };
10919 /******/ })();
10920 /******/
10921 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10922 /******/ (() => {
10923 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10924 /******/ })();
10925 /******/
10926 /******/ /* webpack/runtime/make namespace object */
10927 /******/ (() => {
10928 /******/ // define __esModule on exports
10929 /******/ __webpack_require__.r = (exports) => {
10930 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10931 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10932 /******/ }
10933 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10934 /******/ };
10935 /******/ })();
10936 /******/
10937 /************************************************************************/
10938 var __webpack_exports__ = {};
10939 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10940 (() => {
10941 "use strict";
10942 var exports = __webpack_exports__;
10943 /*!*******************************************************!*\
10944 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10945 \*******************************************************/
10946
10947
10948 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10949 Object.defineProperty(exports, "__esModule", ({
10950 value: true
10951 }));
10952 exports["default"] = exports.AI_ATTACHMENT = void 0;
10953 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10954 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10955 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10956 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10957 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10958 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10959 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10960 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10961 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10962 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10963 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10964 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10965 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"));
10966 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10967 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)); }
10968 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10969 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10970 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10971 function Module() {
10972 var _this;
10973 (0, _classCallCheck2.default)(this, Module);
10974 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10975 args[_key] = arguments[_key];
10976 }
10977 _this = _callSuper(this, Module, [].concat(args));
10978 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10979 var saveGroup = groups.find(function (group) {
10980 return 'save' === group.name;
10981 });
10982 if (!saveGroup) {
10983 return groups;
10984 }
10985 var contextMenu = {
10986 name: 'ai',
10987 icon: 'eicon-ai',
10988 isEnabled: function isEnabled() {
10989 return 0 !== currentElement.getContainer().children.length;
10990 },
10991 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10992 callback: function () {
10993 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10994 var container, json, attachments;
10995 return _regenerator.default.wrap(function (_context) {
10996 while (1) switch (_context.prev = _context.next) {
10997 case 0:
10998 container = currentElement.getContainer();
10999 json = container.model.toJSON({
11000 remove: ['default']
11001 });
11002 attachments = [{
11003 type: 'json',
11004 previewHTML: '',
11005 content: json,
11006 label: container.model.get('title'),
11007 source: _attachments.USER_VARIATION_SOURCE
11008 }];
11009 (0, _editorIntegration.renderLayoutApp)({
11010 parentContainer: container.parent,
11011 mode: _config.MODE_VARIATION,
11012 at: container.view._index,
11013 attachments: attachments,
11014 onSelect: function onSelect() {
11015 container.view.$el.hide();
11016 },
11017 onClose: function onClose() {
11018 container.view.$el.show();
11019 },
11020 onInsert: function onInsert(template) {
11021 (0, _editorIntegration.importToEditor)({
11022 parentContainer: container.parent,
11023 at: container.view._index,
11024 template: template,
11025 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
11026 replace: true
11027 });
11028 }
11029 });
11030 case 1:
11031 case "end":
11032 return _context.stop();
11033 }
11034 }, _callee);
11035 }));
11036 function callback() {
11037 return _callback.apply(this, arguments);
11038 }
11039 return callback;
11040 }()
11041 };
11042
11043 // Add on top of save group actions
11044 saveGroup.actions.unshift(contextMenu);
11045 return groups;
11046 });
11047 return _this;
11048 }
11049 (0, _inherits2.default)(Module, _elementorModules$edi);
11050 return (0, _createClass2.default)(Module, [{
11051 key: "onElementorInit",
11052 value: function onElementorInit() {
11053 var _this2 = this;
11054 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
11055 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
11056 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
11057 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
11058 $e.commands.register('library', 'generate-ai-variation', function (args) {
11059 return _this2.applyTemplate(args);
11060 });
11061 }
11062 }, {
11063 key: "applyTemplate",
11064 value: function applyTemplate(args) {
11065 window.postMessage({
11066 type: 'library/attach:start'
11067 });
11068 $e.components.get('library').downloadTemplate(args, function (data) {
11069 var model = args.model;
11070 window.postMessage({
11071 type: 'library/attach',
11072 json: data.content[0],
11073 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
11074 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
11075 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
11076 }, window.location.origin);
11077 });
11078 }
11079 }, {
11080 key: "registerLibraryActionButtonBehavior",
11081 value: function registerLibraryActionButtonBehavior(behaviors) {
11082 behaviors.applyAiTemplate = {
11083 behaviorClass: _applyTemplateForAiBehavior.default
11084 };
11085 return behaviors;
11086 }
11087 }, {
11088 key: "registerAiLayoutBehavior",
11089 value: function registerAiLayoutBehavior(behaviors) {
11090 behaviors.ai = {
11091 behaviorClass: _aiLayoutBehavior.default,
11092 context: {
11093 documentType: window.elementor.documents.getCurrent().config.type
11094 }
11095 };
11096 return behaviors;
11097 }
11098 }, {
11099 key: "filterLibraryActionButtonTemplate",
11100 value: function filterLibraryActionButtonTemplate(viewId) {
11101 var modalConfig = $e.components.get('library').manager.modalConfig;
11102 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
11103 if (originalCoreViewId !== viewId) {
11104 return viewId;
11105 }
11106 if ($e.routes.current.library !== 'library/templates/blocks') {
11107 return viewId;
11108 }
11109 if (AI_ATTACHMENT === modalConfig.mode) {
11110 viewId = '#tmpl-elementor-template-library-apply-ai-button';
11111 } else {
11112 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
11113 }
11114 return viewId;
11115 }
11116 }]);
11117 }(elementorModules.editor.utils.Module);
11118 new Module();
11119 })();
11120
11121 /******/ })()
11122 ;
11123 //# sourceMappingURL=ai-layout.js.map