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

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

11,122 lines 490.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.31.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 };
5287 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5288 var _elementor, _elementor$getPrefere;
5289 var colorScheme = ((_elementor = elementor) === null || _elementor === void 0 || (_elementor$getPrefere = _elementor.getPreferences) === null || _elementor$getPrefere === void 0 ? void 0 : _elementor$getPrefere.call(_elementor, 'ui_theme')) || 'auto';
5290 var isRTL = elementorCommon.config.isRTL;
5291 return {
5292 colorScheme: colorScheme,
5293 isRTL: isRTL
5294 };
5295 };
5296 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5297 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5298 }, {
5299 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5300 }, {
5301 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5302 }, {
5303 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5304 }, {
5305 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5306 }, {
5307 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5308 }, {
5309 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5310 }, {
5311 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5312 }, {
5313 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5314 }];
5315 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5316 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5317 }, {
5318 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5319 }, {
5320 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5321 }, {
5322 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5323 }, {
5324 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5325 }, {
5326 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5327 }];
5328 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5329 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5330 var _options$onRenderApp;
5331 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5332 parentContainer: null,
5333 mode: '',
5334 at: null,
5335 onClose: null,
5336 onGenerate: null,
5337 onInsert: null,
5338 onRenderApp: null,
5339 onSelect: null,
5340 attachments: []
5341 };
5342 closePanel();
5343 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5344 // Create the container at the "drag widget here" area position.
5345 at: options.at
5346 });
5347 var _getUiConfig = getUiConfig(),
5348 colorScheme = _getUiConfig.colorScheme,
5349 isRTL = _getUiConfig.isRTL;
5350 var rootElement = document.createElement('div');
5351 document.body.append(rootElement);
5352 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5353 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5354 isRTL: isRTL,
5355 colorScheme: colorScheme
5356 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5357 mode: options.mode,
5358 currentContext: {
5359 body: {
5360 backgroundColor: bodyStyle.backgroundColor,
5361 backgroundImage: bodyStyle.backgroundImage
5362 }
5363 },
5364 attachmentsTypes: {
5365 json: {
5366 promptSuggestions: VARIATIONS_PROMPTS,
5367 promptPlaceholder: PROMPT_PLACEHOLDER,
5368 previewGenerator: function () {
5369 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5370 var screenshot;
5371 return _regenerator.default.wrap(function (_context) {
5372 while (1) switch (_context.prev = _context.next) {
5373 case 0:
5374 _context.next = 1;
5375 return (0, _screenshot.takeScreenshot)(json);
5376 case 1:
5377 screenshot = _context.sent;
5378 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5379 case 2:
5380 case "end":
5381 return _context.stop();
5382 }
5383 }, _callee);
5384 }));
5385 function previewGenerator(_x) {
5386 return _previewGenerator.apply(this, arguments);
5387 }
5388 return previewGenerator;
5389 }()
5390 },
5391 url: {
5392 promptPlaceholder: PROMPT_PLACEHOLDER,
5393 promptSuggestions: WEB_BASED_PROMPTS
5394 }
5395 },
5396 attachments: options.attachments || [],
5397 onClose: function onClose() {
5398 var _options$onClose;
5399 previewContainer.destroy();
5400 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5401 unmount();
5402 rootElement.remove();
5403 openPanel();
5404 },
5405 onConnect: onConnect,
5406 onGenerate: function onGenerate() {
5407 var _options$onGenerate;
5408 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5409 previewContainer: previewContainer
5410 });
5411 },
5412 onData: (/*#__PURE__*/function () {
5413 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5414 var screenshot;
5415 return _regenerator.default.wrap(function (_context2) {
5416 while (1) switch (_context2.prev = _context2.next) {
5417 case 0:
5418 _context2.next = 1;
5419 return (0, _screenshot.takeScreenshot)(template);
5420 case 1:
5421 screenshot = _context2.sent;
5422 return _context2.abrupt("return", {
5423 screenshot: screenshot,
5424 template: template
5425 });
5426 case 2:
5427 case "end":
5428 return _context2.stop();
5429 }
5430 }, _callee2);
5431 }));
5432 return function (_x2) {
5433 return _ref.apply(this, arguments);
5434 };
5435 }()),
5436 onSelect: function onSelect(template) {
5437 var _options$onSelect;
5438 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5439 previewContainer.setContent(template);
5440 },
5441 onInsert: options.onInsert,
5442 hasPro: elementor.helpers.hasPro()
5443 })), rootElement),
5444 unmount = _ReactUtils$render.unmount;
5445 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5446 previewContainer: previewContainer
5447 });
5448 };
5449 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5450 var parentContainer = _ref2.parentContainer,
5451 at = _ref2.at,
5452 template = _ref2.template,
5453 historyTitle = _ref2.historyTitle,
5454 _ref2$replace = _ref2.replace,
5455 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5456 var endHistoryLog = (0, _history.startHistoryLog)({
5457 type: 'import',
5458 title: historyTitle
5459 });
5460 if (replace) {
5461 $e.run('document/elements/delete', {
5462 container: parentContainer.children.at(at)
5463 });
5464 }
5465 $e.run('document/elements/create', {
5466 container: parentContainer,
5467 model: (0, _requestsIds.generateIds)(template),
5468 options: {
5469 at: at,
5470 edit: true
5471 }
5472 });
5473 endHistoryLog();
5474 };
5475
5476 /***/ }),
5477
5478 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5479 /*!*******************************************************!*\
5480 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5481 \*******************************************************/
5482 /***/ ((__unused_webpack_module, exports) => {
5483
5484 "use strict";
5485
5486
5487 Object.defineProperty(exports, "__esModule", ({
5488 value: true
5489 }));
5490 exports.startHistoryLog = startHistoryLog;
5491 exports.toggleHistory = toggleHistory;
5492 function toggleHistory(isActive) {
5493 elementor.documents.getCurrent().history.setActive(isActive);
5494 }
5495
5496 /**
5497 * @param {Object} options
5498 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5499 * @param { string } options.title
5500 *
5501 * @return {*}
5502 */
5503 function startHistoryLog(_ref) {
5504 var type = _ref.type,
5505 title = _ref.title;
5506 var id = $e.internal('document/history/start-log', {
5507 type: type,
5508 title: title
5509 });
5510 return function () {
5511 return $e.internal('document/history/end-log', {
5512 id: id
5513 });
5514 };
5515 }
5516
5517 /***/ }),
5518
5519 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5520 /*!*****************************************************************!*\
5521 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5522 \*****************************************************************/
5523 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5524
5525 "use strict";
5526
5527
5528 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5529 Object.defineProperty(exports, "__esModule", ({
5530 value: true
5531 }));
5532 exports.createPreviewContainer = createPreviewContainer;
5533 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5534 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5535 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5536 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5537 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5538 /**
5539 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5540 */
5541
5542 var PREFIX = 'e-ai-preview-container';
5543 var CLASS_HIDDEN = PREFIX + '--hidden';
5544 var CLASS_IDLE = PREFIX + '--idle';
5545
5546 /**
5547 * @param {Container} parentContainer
5548 * @param {{}} containerOptions
5549 * @return {{init, setContent, reset, destroy}}
5550 */
5551
5552 function createPreviewContainer(parentContainer) {
5553 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5554 var createdContainers = new Map();
5555 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5556 function init() {
5557 showContainer(idleContainer);
5558 }
5559 function getAllContainers() {
5560 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5561 }
5562 function reset() {
5563 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5564 createdContainers.clear();
5565 showContainer(idleContainer);
5566 }
5567 function setContent(template) {
5568 if (!template) {
5569 return;
5570 }
5571 hideContainers(getAllContainers());
5572 if (!createdContainers.has(template)) {
5573 var newContainer = createContainer(parentContainer, template, containerOptions);
5574 createdContainers.set(template, newContainer);
5575 }
5576 showContainer(createdContainers.get(template));
5577 }
5578 function destroy() {
5579 deleteContainers(getAllContainers());
5580 createdContainers.clear();
5581 }
5582 return {
5583 init: init,
5584 reset: reset,
5585 setContent: setContent,
5586 destroy: destroy
5587 };
5588 }
5589
5590 /**
5591 * @param {Container} parentContainer
5592 * @param {{}} model
5593 * @param {{}} options
5594 * @return {*}
5595 */
5596 function createContainer(parentContainer, model) {
5597 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5598 (0, _history.toggleHistory)(false);
5599 var container = $e.run('document/elements/create', {
5600 container: parentContainer,
5601 model: _objectSpread(_objectSpread({}, model), {}, {
5602 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5603 }),
5604 options: _objectSpread(_objectSpread({}, options), {}, {
5605 edit: false
5606 })
5607 });
5608 (0, _history.toggleHistory)(true);
5609 container.view.$el.addClass(CLASS_HIDDEN);
5610 return container;
5611 }
5612
5613 /**
5614 * @param {Container} parentContainer
5615 * @param {{}} containerOptions
5616 * @return {*}
5617 */
5618 function createIdleContainer(parentContainer) {
5619 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5620 // Create an empty container that'll be used of UI purposes.
5621 var container = createContainer(parentContainer, {
5622 elType: 'container'
5623 }, containerOptions);
5624 container.view.$el.addClass(CLASS_IDLE);
5625 return container;
5626 }
5627 function hideContainers(containers) {
5628 containers.forEach(function (container) {
5629 container.view.$el.addClass(CLASS_HIDDEN);
5630 });
5631 }
5632 function showContainer(container) {
5633 container.view.$el.removeClass(CLASS_HIDDEN);
5634
5635 // Delay the scroll to avoid UI jumps when toggling between containers.
5636 setTimeout(function () {
5637 container.view.$el[0].scrollIntoView({
5638 behavior: 'smooth',
5639 block: 'start'
5640 });
5641 });
5642 }
5643 function deleteContainers(containers) {
5644 (0, _history.toggleHistory)(false);
5645 $e.run('document/elements/delete', {
5646 containers: containers
5647 });
5648 (0, _history.toggleHistory)(true);
5649 }
5650
5651 /***/ }),
5652
5653 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5654 /*!**********************************************************!*\
5655 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5656 \**********************************************************/
5657 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5658
5659 "use strict";
5660
5661
5662 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5663 Object.defineProperty(exports, "__esModule", ({
5664 value: true
5665 }));
5666 exports.takeScreenshot = void 0;
5667 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5668 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5669 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5670 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5671 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5672 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5673 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5674 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5675 var hiddenWrapper, container, screenshot, _t;
5676 return _regenerator.default.wrap(function (_context) {
5677 while (1) switch (_context.prev = _context.next) {
5678 case 0:
5679 if (template) {
5680 _context.next = 1;
5681 break;
5682 }
5683 return _context.abrupt("return", '');
5684 case 1:
5685 // Disable history so the Editor won't show our hidden container as a user action.
5686 (0, _history.toggleHistory)(false);
5687 hiddenWrapper = createHiddenWrapper();
5688 container = createContainer(template);
5689 wrapContainer(container, hiddenWrapper);
5690 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5691
5692 // Wait for the container to render.
5693 _context.next = 2;
5694 return waitForContainer(container.id);
5695 case 2:
5696 if (!template.elements.length) {
5697 _context.next = 3;
5698 break;
5699 }
5700 _context.next = 3;
5701 return Promise.all(template.elements.map(function (child) {
5702 return waitForContainer(child.id);
5703 }));
5704 case 3:
5705 _context.prev = 3;
5706 _context.next = 4;
5707 return screenshotNode(container.view.$el[0]);
5708 case 4:
5709 screenshot = _context.sent;
5710 _context.next = 6;
5711 break;
5712 case 5:
5713 _context.prev = 5;
5714 _t = _context["catch"](3);
5715 // Return an empty image url if the screenshot failed.
5716 screenshot = '';
5717 case 6:
5718 deleteContainer(container);
5719 hiddenWrapper.remove();
5720 (0, _history.toggleHistory)(true);
5721 return _context.abrupt("return", screenshot);
5722 case 7:
5723 case "end":
5724 return _context.stop();
5725 }
5726 }, _callee, null, [[3, 5]]);
5727 }));
5728 return function takeScreenshot(_x) {
5729 return _ref.apply(this, arguments);
5730 };
5731 }();
5732 function screenshotNode(node) {
5733 return toWebp(node, {
5734 quality: 0.01,
5735 // Transparent 1x1 pixel.
5736 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5737 });
5738 }
5739 function toWebp(_x2) {
5740 return _toWebp.apply(this, arguments);
5741 }
5742 function _toWebp() {
5743 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5744 var _options$quality;
5745 var options,
5746 canvas,
5747 _args3 = arguments;
5748 return _regenerator.default.wrap(function (_context3) {
5749 while (1) switch (_context3.prev = _context3.next) {
5750 case 0:
5751 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5752 _context3.next = 1;
5753 return (0, _htmlToImage.toCanvas)(node, options);
5754 case 1:
5755 canvas = _context3.sent;
5756 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5757 case 2:
5758 case "end":
5759 return _context3.stop();
5760 }
5761 }, _callee3);
5762 }));
5763 return _toWebp.apply(this, arguments);
5764 }
5765 function createHiddenWrapper() {
5766 var wrapper = document.createElement('div');
5767 wrapper.style.position = 'fixed';
5768 wrapper.style.opacity = '0';
5769 wrapper.style.inset = '0';
5770 return wrapper;
5771 }
5772 function createContainer(template) {
5773 var model = (0, _requestsIds.generateIds)(template);
5774
5775 // Set a custom ID, so it can be used later on in the backend.
5776 model.id = "e-ai-screenshot-container-".concat(model.id);
5777 return $e.run('document/elements/create', {
5778 container: elementor.getPreviewContainer(),
5779 model: model,
5780 options: {
5781 edit: false
5782 }
5783 });
5784 }
5785 function deleteContainer(container) {
5786 return $e.run('document/elements/delete', {
5787 container: container
5788 });
5789 }
5790 function waitForContainer(id) {
5791 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5792 var timeoutPromise = sleep(timeout);
5793 var waitPromise = new Promise(function (resolve) {
5794 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5795 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5796 var images;
5797 return _regenerator.default.wrap(function (_context2) {
5798 while (1) switch (_context2.prev = _context2.next) {
5799 case 0:
5800 if (!($element.data('id') === id)) {
5801 _context2.next = 2;
5802 break;
5803 }
5804 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5805 _context2.next = 1;
5806 return Promise.all(images.map(waitForImage));
5807 case 1:
5808 resolve();
5809 case 2:
5810 case "end":
5811 return _context2.stop();
5812 }
5813 }, _callee2);
5814 }));
5815 return function (_x3) {
5816 return _ref2.apply(this, arguments);
5817 };
5818 }());
5819 });
5820 return Promise.any([timeoutPromise, waitPromise]);
5821 }
5822 function waitForImage(image) {
5823 if (image.complete) {
5824 return Promise.resolve();
5825 }
5826 return new Promise(function (resolve) {
5827 image.addEventListener('load', resolve);
5828 image.addEventListener('error', function () {
5829 // Remove the image to make sure it won't break the screenshot.
5830 image.remove();
5831 resolve();
5832 });
5833 });
5834 }
5835 function sleep(ms) {
5836 return new Promise(function (resolve) {
5837 return setTimeout(resolve, ms);
5838 });
5839 }
5840 function wrapContainer(container, wrapper) {
5841 var el = container.view.$el[0];
5842 el.parentNode.insertBefore(wrapper, el);
5843 wrapper.appendChild(el);
5844 }
5845
5846 /***/ }),
5847
5848 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
5849 /*!***************************************************************!*\
5850 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
5851 \***************************************************************/
5852 /***/ ((module) => {
5853
5854 function _OverloadYield(e, d) {
5855 this.v = e, this.k = d;
5856 }
5857 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
5858
5859 /***/ }),
5860
5861 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
5862 /*!******************************************************************!*\
5863 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
5864 \******************************************************************/
5865 /***/ ((module) => {
5866
5867 function _arrayLikeToArray(r, a) {
5868 (null == a || a > r.length) && (a = r.length);
5869 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
5870 return n;
5871 }
5872 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
5873
5874 /***/ }),
5875
5876 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
5877 /*!****************************************************************!*\
5878 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
5879 \****************************************************************/
5880 /***/ ((module) => {
5881
5882 function _arrayWithHoles(r) {
5883 if (Array.isArray(r)) return r;
5884 }
5885 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5886
5887 /***/ }),
5888
5889 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
5890 /*!*******************************************************************!*\
5891 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
5892 \*******************************************************************/
5893 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5894
5895 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
5896 function _arrayWithoutHoles(r) {
5897 if (Array.isArray(r)) return arrayLikeToArray(r);
5898 }
5899 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5900
5901 /***/ }),
5902
5903 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
5904 /*!***********************************************************************!*\
5905 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
5906 \***********************************************************************/
5907 /***/ ((module) => {
5908
5909 function _assertThisInitialized(e) {
5910 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5911 return e;
5912 }
5913 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
5914
5915 /***/ }),
5916
5917 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
5918 /*!******************************************************************!*\
5919 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
5920 \******************************************************************/
5921 /***/ ((module) => {
5922
5923 function asyncGeneratorStep(n, t, e, r, o, a, c) {
5924 try {
5925 var i = n[a](c),
5926 u = i.value;
5927 } catch (n) {
5928 return void e(n);
5929 }
5930 i.done ? t(u) : Promise.resolve(u).then(r, o);
5931 }
5932 function _asyncToGenerator(n) {
5933 return function () {
5934 var t = this,
5935 e = arguments;
5936 return new Promise(function (r, o) {
5937 var a = n.apply(t, e);
5938 function _next(n) {
5939 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
5940 }
5941 function _throw(n) {
5942 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
5943 }
5944 _next(void 0);
5945 });
5946 };
5947 }
5948 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
5949
5950 /***/ }),
5951
5952 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
5953 /*!****************************************************************!*\
5954 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
5955 \****************************************************************/
5956 /***/ ((module) => {
5957
5958 function _classCallCheck(a, n) {
5959 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
5960 }
5961 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
5962
5963 /***/ }),
5964
5965 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
5966 /*!*************************************************************!*\
5967 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
5968 \*************************************************************/
5969 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5970
5971 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5972 function _defineProperties(e, r) {
5973 for (var t = 0; t < r.length; t++) {
5974 var o = r[t];
5975 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
5976 }
5977 }
5978 function _createClass(e, r, t) {
5979 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
5980 writable: !1
5981 }), e;
5982 }
5983 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
5984
5985 /***/ }),
5986
5987 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
5988 /*!****************************************************************!*\
5989 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
5990 \****************************************************************/
5991 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5992
5993 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5994 function _defineProperty(e, r, t) {
5995 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5996 value: t,
5997 enumerable: !0,
5998 configurable: !0,
5999 writable: !0
6000 }) : e[r] = t, e;
6001 }
6002 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
6003
6004 /***/ }),
6005
6006 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
6007 /*!*********************************************************!*\
6008 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
6009 \*********************************************************/
6010 /***/ ((module) => {
6011
6012 function _extends() {
6013 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
6014 for (var e = 1; e < arguments.length; e++) {
6015 var t = arguments[e];
6016 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
6017 }
6018 return n;
6019 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
6020 }
6021 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
6022
6023 /***/ }),
6024
6025 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
6026 /*!****************************************************************!*\
6027 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
6028 \****************************************************************/
6029 /***/ ((module) => {
6030
6031 function _getPrototypeOf(t) {
6032 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
6033 return t.__proto__ || Object.getPrototypeOf(t);
6034 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
6035 }
6036 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6037
6038 /***/ }),
6039
6040 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
6041 /*!**********************************************************!*\
6042 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
6043 \**********************************************************/
6044 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6045
6046 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
6047 function _inherits(t, e) {
6048 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
6049 t.prototype = Object.create(e && e.prototype, {
6050 constructor: {
6051 value: t,
6052 writable: !0,
6053 configurable: !0
6054 }
6055 }), Object.defineProperty(t, "prototype", {
6056 writable: !1
6057 }), e && setPrototypeOf(t, e);
6058 }
6059 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
6060
6061 /***/ }),
6062
6063 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
6064 /*!***********************************************************************!*\
6065 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
6066 \***********************************************************************/
6067 /***/ ((module) => {
6068
6069 function _interopRequireDefault(e) {
6070 return e && e.__esModule ? e : {
6071 "default": e
6072 };
6073 }
6074 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
6075
6076 /***/ }),
6077
6078 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
6079 /*!*****************************************************************!*\
6080 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
6081 \*****************************************************************/
6082 /***/ ((module) => {
6083
6084 function _iterableToArray(r) {
6085 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
6086 }
6087 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6088
6089 /***/ }),
6090
6091 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
6092 /*!**********************************************************************!*\
6093 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
6094 \**********************************************************************/
6095 /***/ ((module) => {
6096
6097 function _iterableToArrayLimit(r, l) {
6098 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
6099 if (null != t) {
6100 var e,
6101 n,
6102 i,
6103 u,
6104 a = [],
6105 f = !0,
6106 o = !1;
6107 try {
6108 if (i = (t = t.call(r)).next, 0 === l) {
6109 if (Object(t) !== t) return;
6110 f = !1;
6111 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
6112 } catch (r) {
6113 o = !0, n = r;
6114 } finally {
6115 try {
6116 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
6117 } finally {
6118 if (o) throw n;
6119 }
6120 }
6121 return a;
6122 }
6123 }
6124 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
6125
6126 /***/ }),
6127
6128 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
6129 /*!*****************************************************************!*\
6130 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
6131 \*****************************************************************/
6132 /***/ ((module) => {
6133
6134 function _nonIterableRest() {
6135 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6136 }
6137 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
6138
6139 /***/ }),
6140
6141 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
6142 /*!*******************************************************************!*\
6143 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
6144 \*******************************************************************/
6145 /***/ ((module) => {
6146
6147 function _nonIterableSpread() {
6148 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6149 }
6150 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
6151
6152 /***/ }),
6153
6154 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
6155 /*!*************************************************************************!*\
6156 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
6157 \*************************************************************************/
6158 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6159
6160 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
6161 function _objectWithoutProperties(e, t) {
6162 if (null == e) return {};
6163 var o,
6164 r,
6165 i = objectWithoutPropertiesLoose(e, t);
6166 if (Object.getOwnPropertySymbols) {
6167 var n = Object.getOwnPropertySymbols(e);
6168 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6169 }
6170 return i;
6171 }
6172 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
6173
6174 /***/ }),
6175
6176 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
6177 /*!******************************************************************************!*\
6178 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
6179 \******************************************************************************/
6180 /***/ ((module) => {
6181
6182 function _objectWithoutPropertiesLoose(r, e) {
6183 if (null == r) return {};
6184 var t = {};
6185 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
6186 if (-1 !== e.indexOf(n)) continue;
6187 t[n] = r[n];
6188 }
6189 return t;
6190 }
6191 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
6192
6193 /***/ }),
6194
6195 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
6196 /*!***************************************************************************!*\
6197 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
6198 \***************************************************************************/
6199 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6200
6201 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6202 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
6203 function _possibleConstructorReturn(t, e) {
6204 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
6205 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
6206 return assertThisInitialized(t);
6207 }
6208 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
6209
6210 /***/ }),
6211
6212 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
6213 /*!*************************************************************!*\
6214 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
6215 \*************************************************************/
6216 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6217
6218 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6219 function _regenerator() {
6220 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
6221 var e,
6222 t,
6223 r = "function" == typeof Symbol ? Symbol : {},
6224 n = r.iterator || "@@iterator",
6225 o = r.toStringTag || "@@toStringTag";
6226 function i(r, n, o, i) {
6227 var c = n && n.prototype instanceof Generator ? n : Generator,
6228 u = Object.create(c.prototype);
6229 return regeneratorDefine(u, "_invoke", function (r, n, o) {
6230 var i,
6231 c,
6232 u,
6233 f = 0,
6234 p = o || [],
6235 y = !1,
6236 G = {
6237 p: 0,
6238 n: 0,
6239 v: e,
6240 a: d,
6241 f: d.bind(e, 4),
6242 d: function d(t, r) {
6243 return i = t, c = 0, u = e, G.n = r, a;
6244 }
6245 };
6246 function d(r, n) {
6247 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
6248 var o,
6249 i = p[t],
6250 d = G.p,
6251 l = i[2];
6252 r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
6253 }
6254 if (o || r > 1) return a;
6255 throw y = !0, n;
6256 }
6257 return function (o, p, l) {
6258 if (f > 1) throw TypeError("Generator is already running");
6259 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
6260 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
6261 try {
6262 if (f = 2, i) {
6263 if (c || (o = "next"), t = i[o]) {
6264 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
6265 if (!t.done) return t;
6266 u = t.value, c < 2 && (c = 0);
6267 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
6268 i = e;
6269 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
6270 } catch (t) {
6271 i = e, c = 1, u = t;
6272 } finally {
6273 f = 1;
6274 }
6275 }
6276 return {
6277 value: t,
6278 done: y
6279 };
6280 };
6281 }(r, o, i), !0), u;
6282 }
6283 var a = {};
6284 function Generator() {}
6285 function GeneratorFunction() {}
6286 function GeneratorFunctionPrototype() {}
6287 t = Object.getPrototypeOf;
6288 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
6289 return this;
6290 }), t),
6291 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
6292 function f(e) {
6293 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
6294 }
6295 return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
6296 return this;
6297 }), regeneratorDefine(u, "toString", function () {
6298 return "[object Generator]";
6299 }), (module.exports = _regenerator = function _regenerator() {
6300 return {
6301 w: i,
6302 m: f
6303 };
6304 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6305 }
6306 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6307
6308 /***/ }),
6309
6310 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
6311 /*!******************************************************************!*\
6312 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
6313 \******************************************************************/
6314 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6315
6316 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6317 function _regeneratorAsync(n, e, r, t, o) {
6318 var a = regeneratorAsyncGen(n, e, r, t, o);
6319 return a.next().then(function (n) {
6320 return n.done ? n.value : a.next();
6321 });
6322 }
6323 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
6324
6325 /***/ }),
6326
6327 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
6328 /*!*********************************************************************!*\
6329 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
6330 \*********************************************************************/
6331 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6332
6333 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6334 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6335 function _regeneratorAsyncGen(r, e, t, o, n) {
6336 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
6337 }
6338 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
6339
6340 /***/ }),
6341
6342 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
6343 /*!**************************************************************************!*\
6344 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
6345 \**************************************************************************/
6346 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6347
6348 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6349 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6350 function AsyncIterator(t, e) {
6351 function n(r, o, i, f) {
6352 try {
6353 var c = t[r](o),
6354 u = c.value;
6355 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
6356 n("next", t, i, f);
6357 }, function (t) {
6358 n("throw", t, i, f);
6359 }) : e.resolve(u).then(function (t) {
6360 c.value = t, i(c);
6361 }, function (t) {
6362 return n("throw", t, i, f);
6363 });
6364 } catch (t) {
6365 f(t);
6366 }
6367 }
6368 var r;
6369 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
6370 return this;
6371 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
6372 function f() {
6373 return new e(function (e, r) {
6374 n(t, i, e, r);
6375 });
6376 }
6377 return r = r ? r.then(f, f) : f();
6378 }, !0);
6379 }
6380 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6381
6382 /***/ }),
6383
6384 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
6385 /*!*******************************************************************!*\
6386 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
6387 \*******************************************************************/
6388 /***/ ((module) => {
6389
6390 function _regeneratorDefine(e, r, n, t) {
6391 var i = Object.defineProperty;
6392 try {
6393 i({}, "", {});
6394 } catch (e) {
6395 i = 0;
6396 }
6397 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
6398 if (r) i ? i(e, r, {
6399 value: n,
6400 enumerable: !t,
6401 configurable: !t,
6402 writable: !t
6403 }) : e[r] = n;else {
6404 var o = function o(r, n) {
6405 _regeneratorDefine(e, r, function (e) {
6406 return this._invoke(r, n, e);
6407 });
6408 };
6409 o("next", 0), o("throw", 1), o("return", 2);
6410 }
6411 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
6412 }
6413 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
6414
6415 /***/ }),
6416
6417 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
6418 /*!*****************************************************************!*\
6419 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
6420 \*****************************************************************/
6421 /***/ ((module) => {
6422
6423 function _regeneratorKeys(e) {
6424 var n = Object(e),
6425 r = [];
6426 for (var t in n) r.unshift(t);
6427 return function e() {
6428 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
6429 return e.done = !0, e;
6430 };
6431 }
6432 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
6433
6434 /***/ }),
6435
6436 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
6437 /*!********************************************************************!*\
6438 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
6439 \********************************************************************/
6440 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6441
6442 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6443 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6444 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
6445 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6446 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6447 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
6448 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
6449 function _regeneratorRuntime() {
6450 "use strict";
6451
6452 var r = regenerator(),
6453 e = r.m(_regeneratorRuntime),
6454 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
6455 function n(r) {
6456 var e = "function" == typeof r && r.constructor;
6457 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
6458 }
6459 var o = {
6460 "throw": 1,
6461 "return": 2,
6462 "break": 3,
6463 "continue": 3
6464 };
6465 function a(r) {
6466 var e, t;
6467 return function (n) {
6468 e || (e = {
6469 stop: function stop() {
6470 return t(n.a, 2);
6471 },
6472 "catch": function _catch() {
6473 return n.v;
6474 },
6475 abrupt: function abrupt(r, e) {
6476 return t(n.a, o[r], e);
6477 },
6478 delegateYield: function delegateYield(r, o, a) {
6479 return e.resultName = o, t(n.d, regeneratorValues(r), a);
6480 },
6481 finish: function finish(r) {
6482 return t(n.f, r);
6483 }
6484 }, t = function t(r, _t, o) {
6485 n.p = e.prev, n.n = e.next;
6486 try {
6487 return r(_t, o);
6488 } finally {
6489 e.next = n.n;
6490 }
6491 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
6492 try {
6493 return r.call(this, e);
6494 } finally {
6495 n.p = e.prev, n.n = e.next;
6496 }
6497 };
6498 }
6499 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
6500 return {
6501 wrap: function wrap(e, t, n, o) {
6502 return r.w(a(e), t, n, o && o.reverse());
6503 },
6504 isGeneratorFunction: n,
6505 mark: r.m,
6506 awrap: function awrap(r, e) {
6507 return new OverloadYield(r, e);
6508 },
6509 AsyncIterator: regeneratorAsyncIterator,
6510 async: function async(r, e, t, o, u) {
6511 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
6512 },
6513 keys: regeneratorKeys,
6514 values: regeneratorValues
6515 };
6516 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6517 }
6518 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6519
6520 /***/ }),
6521
6522 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
6523 /*!*******************************************************************!*\
6524 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
6525 \*******************************************************************/
6526 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6527
6528 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6529 function _regeneratorValues(e) {
6530 if (null != e) {
6531 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
6532 r = 0;
6533 if (t) return t.call(e);
6534 if ("function" == typeof e.next) return e;
6535 if (!isNaN(e.length)) return {
6536 next: function next() {
6537 return e && r >= e.length && (e = void 0), {
6538 value: e && e[r++],
6539 done: !e
6540 };
6541 }
6542 };
6543 }
6544 throw new TypeError(_typeof(e) + " is not iterable");
6545 }
6546 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
6547
6548 /***/ }),
6549
6550 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
6551 /*!****************************************************************!*\
6552 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
6553 \****************************************************************/
6554 /***/ ((module) => {
6555
6556 function _setPrototypeOf(t, e) {
6557 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
6558 return t.__proto__ = e, t;
6559 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
6560 }
6561 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6562
6563 /***/ }),
6564
6565 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
6566 /*!***************************************************************!*\
6567 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
6568 \***************************************************************/
6569 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6570
6571 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
6572 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
6573 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6574 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
6575 function _slicedToArray(r, e) {
6576 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
6577 }
6578 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6579
6580 /***/ }),
6581
6582 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
6583 /*!***********************************************************************!*\
6584 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
6585 \***********************************************************************/
6586 /***/ ((module) => {
6587
6588 function _taggedTemplateLiteral(e, t) {
6589 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
6590 raw: {
6591 value: Object.freeze(t)
6592 }
6593 }));
6594 }
6595 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
6596
6597 /***/ }),
6598
6599 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
6600 /*!*******************************************************************!*\
6601 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
6602 \*******************************************************************/
6603 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6604
6605 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
6606 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
6607 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6608 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
6609 function _toConsumableArray(r) {
6610 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
6611 }
6612 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6613
6614 /***/ }),
6615
6616 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
6617 /*!*************************************************************!*\
6618 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
6619 \*************************************************************/
6620 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6621
6622 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6623 function toPrimitive(t, r) {
6624 if ("object" != _typeof(t) || !t) return t;
6625 var e = t[Symbol.toPrimitive];
6626 if (void 0 !== e) {
6627 var i = e.call(t, r || "default");
6628 if ("object" != _typeof(i)) return i;
6629 throw new TypeError("@@toPrimitive must return a primitive value.");
6630 }
6631 return ("string" === r ? String : Number)(t);
6632 }
6633 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
6634
6635 /***/ }),
6636
6637 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
6638 /*!***************************************************************!*\
6639 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
6640 \***************************************************************/
6641 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6642
6643 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6644 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
6645 function toPropertyKey(t) {
6646 var i = toPrimitive(t, "string");
6647 return "symbol" == _typeof(i) ? i : i + "";
6648 }
6649 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
6650
6651 /***/ }),
6652
6653 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
6654 /*!********************************************************!*\
6655 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
6656 \********************************************************/
6657 /***/ ((module) => {
6658
6659 function _typeof(o) {
6660 "@babel/helpers - typeof";
6661
6662 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
6663 return typeof o;
6664 } : function (o) {
6665 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
6666 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
6667 }
6668 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
6669
6670 /***/ }),
6671
6672 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
6673 /*!****************************************************************************!*\
6674 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
6675 \****************************************************************************/
6676 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6677
6678 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
6679 function _unsupportedIterableToArray(r, a) {
6680 if (r) {
6681 if ("string" == typeof r) return arrayLikeToArray(r, a);
6682 var t = {}.toString.call(r).slice(8, -1);
6683 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;
6684 }
6685 }
6686 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6687
6688 /***/ }),
6689
6690 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
6691 /*!***********************************************************!*\
6692 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
6693 \***********************************************************/
6694 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6695
6696 // TODO(Babel 8): Remove this file.
6697
6698 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
6699 module.exports = runtime;
6700
6701 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6702 try {
6703 regeneratorRuntime = runtime;
6704 } catch (accidentalStrictMode) {
6705 if (typeof globalThis === "object") {
6706 globalThis.regeneratorRuntime = runtime;
6707 } else {
6708 Function("r", "regeneratorRuntime = r")(runtime);
6709 }
6710 }
6711
6712
6713 /***/ }),
6714
6715 /***/ "../node_modules/html-to-image/es/apply-style.js":
6716 /*!*******************************************************!*\
6717 !*** ../node_modules/html-to-image/es/apply-style.js ***!
6718 \*******************************************************/
6719 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6720
6721 "use strict";
6722 __webpack_require__.r(__webpack_exports__);
6723 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6724 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
6725 /* harmony export */ });
6726 function applyStyle(node, options) {
6727 const { style } = node;
6728 if (options.backgroundColor) {
6729 style.backgroundColor = options.backgroundColor;
6730 }
6731 if (options.width) {
6732 style.width = `${options.width}px`;
6733 }
6734 if (options.height) {
6735 style.height = `${options.height}px`;
6736 }
6737 const manual = options.style;
6738 if (manual != null) {
6739 Object.keys(manual).forEach((key) => {
6740 style[key] = manual[key];
6741 });
6742 }
6743 return node;
6744 }
6745 //# sourceMappingURL=apply-style.js.map
6746
6747 /***/ }),
6748
6749 /***/ "../node_modules/html-to-image/es/clone-node.js":
6750 /*!******************************************************!*\
6751 !*** ../node_modules/html-to-image/es/clone-node.js ***!
6752 \******************************************************/
6753 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6754
6755 "use strict";
6756 __webpack_require__.r(__webpack_exports__);
6757 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6758 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
6759 /* harmony export */ });
6760 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
6761 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6762 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6763 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6764
6765
6766
6767
6768 async function cloneCanvasElement(canvas) {
6769 const dataURL = canvas.toDataURL();
6770 if (dataURL === 'data:,') {
6771 return canvas.cloneNode(false);
6772 }
6773 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6774 }
6775 async function cloneVideoElement(video, options) {
6776 if (video.currentSrc) {
6777 const canvas = document.createElement('canvas');
6778 const ctx = canvas.getContext('2d');
6779 canvas.width = video.clientWidth;
6780 canvas.height = video.clientHeight;
6781 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
6782 const dataURL = canvas.toDataURL();
6783 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6784 }
6785 const poster = video.poster;
6786 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
6787 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
6788 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6789 }
6790 async function cloneIFrameElement(iframe, options) {
6791 var _a;
6792 try {
6793 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
6794 return (await cloneNode(iframe.contentDocument.body, options, true));
6795 }
6796 }
6797 catch (_b) {
6798 // Failed to clone iframe
6799 }
6800 return iframe.cloneNode(false);
6801 }
6802 async function cloneSingleNode(node, options) {
6803 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
6804 return cloneCanvasElement(node);
6805 }
6806 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
6807 return cloneVideoElement(node, options);
6808 }
6809 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
6810 return cloneIFrameElement(node, options);
6811 }
6812 return node.cloneNode(isSVGElement(node));
6813 }
6814 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
6815 const isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';
6816 async function cloneChildren(nativeNode, clonedNode, options) {
6817 var _a, _b;
6818 if (isSVGElement(clonedNode)) {
6819 return clonedNode;
6820 }
6821 let children = [];
6822 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
6823 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
6824 }
6825 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6826 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
6827 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
6828 }
6829 else {
6830 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
6831 }
6832 if (children.length === 0 ||
6833 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
6834 return clonedNode;
6835 }
6836 await children.reduce((deferred, child) => deferred
6837 .then(() => cloneNode(child, options))
6838 .then((clonedChild) => {
6839 if (clonedChild) {
6840 clonedNode.appendChild(clonedChild);
6841 }
6842 }), Promise.resolve());
6843 return clonedNode;
6844 }
6845 function cloneCSSStyle(nativeNode, clonedNode, options) {
6846 const targetStyle = clonedNode.style;
6847 if (!targetStyle) {
6848 return;
6849 }
6850 const sourceStyle = window.getComputedStyle(nativeNode);
6851 if (sourceStyle.cssText) {
6852 targetStyle.cssText = sourceStyle.cssText;
6853 targetStyle.transformOrigin = sourceStyle.transformOrigin;
6854 }
6855 else {
6856 (0,_util__WEBPACK_IMPORTED_MODULE_1__.getStyleProperties)(options).forEach((name) => {
6857 let value = sourceStyle.getPropertyValue(name);
6858 if (name === 'font-size' && value.endsWith('px')) {
6859 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6860 value = `${reducedFont}px`;
6861 }
6862 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6863 name === 'display' &&
6864 value === 'inline') {
6865 value = 'block';
6866 }
6867 if (name === 'd' && clonedNode.getAttribute('d')) {
6868 value = `path(${clonedNode.getAttribute('d')})`;
6869 }
6870 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6871 });
6872 }
6873 }
6874 function cloneInputValue(nativeNode, clonedNode) {
6875 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6876 clonedNode.innerHTML = nativeNode.value;
6877 }
6878 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6879 clonedNode.setAttribute('value', nativeNode.value);
6880 }
6881 }
6882 function cloneSelectValue(nativeNode, clonedNode) {
6883 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6884 const clonedSelect = clonedNode;
6885 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6886 if (selectedOption) {
6887 selectedOption.setAttribute('selected', '');
6888 }
6889 }
6890 }
6891 function decorate(nativeNode, clonedNode, options) {
6892 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6893 cloneCSSStyle(nativeNode, clonedNode, options);
6894 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode, options);
6895 cloneInputValue(nativeNode, clonedNode);
6896 cloneSelectValue(nativeNode, clonedNode);
6897 }
6898 return clonedNode;
6899 }
6900 async function ensureSVGSymbols(clone, options) {
6901 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6902 if (uses.length === 0) {
6903 return clone;
6904 }
6905 const processedDefs = {};
6906 for (let i = 0; i < uses.length; i++) {
6907 const use = uses[i];
6908 const id = use.getAttribute('xlink:href');
6909 if (id) {
6910 const exist = clone.querySelector(id);
6911 const definition = document.querySelector(id);
6912 if (!exist && definition && !processedDefs[id]) {
6913 // eslint-disable-next-line no-await-in-loop
6914 processedDefs[id] = (await cloneNode(definition, options, true));
6915 }
6916 }
6917 }
6918 const nodes = Object.values(processedDefs);
6919 if (nodes.length) {
6920 const ns = 'http://www.w3.org/1999/xhtml';
6921 const svg = document.createElementNS(ns, 'svg');
6922 svg.setAttribute('xmlns', ns);
6923 svg.style.position = 'absolute';
6924 svg.style.width = '0';
6925 svg.style.height = '0';
6926 svg.style.overflow = 'hidden';
6927 svg.style.display = 'none';
6928 const defs = document.createElementNS(ns, 'defs');
6929 svg.appendChild(defs);
6930 for (let i = 0; i < nodes.length; i++) {
6931 defs.appendChild(nodes[i]);
6932 }
6933 clone.appendChild(svg);
6934 }
6935 return clone;
6936 }
6937 async function cloneNode(node, options, isRoot) {
6938 if (!isRoot && options.filter && !options.filter(node)) {
6939 return null;
6940 }
6941 return Promise.resolve(node)
6942 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6943 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6944 .then((clonedNode) => decorate(node, clonedNode, options))
6945 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6946 }
6947 //# sourceMappingURL=clone-node.js.map
6948
6949 /***/ }),
6950
6951 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6952 /*!*********************************************************!*\
6953 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6954 \*********************************************************/
6955 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6956
6957 "use strict";
6958 __webpack_require__.r(__webpack_exports__);
6959 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6960 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6961 /* harmony export */ });
6962 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6963
6964 function formatCSSText(style) {
6965 const content = style.getPropertyValue('content');
6966 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6967 }
6968 function formatCSSProperties(style, options) {
6969 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.getStyleProperties)(options)
6970 .map((name) => {
6971 const value = style.getPropertyValue(name);
6972 const priority = style.getPropertyPriority(name);
6973 return `${name}: ${value}${priority ? ' !important' : ''};`;
6974 })
6975 .join(' ');
6976 }
6977 function getPseudoElementStyle(className, pseudo, style, options) {
6978 const selector = `.${className}:${pseudo}`;
6979 const cssText = style.cssText
6980 ? formatCSSText(style)
6981 : formatCSSProperties(style, options);
6982 return document.createTextNode(`${selector}{${cssText}}`);
6983 }
6984 function clonePseudoElement(nativeNode, clonedNode, pseudo, options) {
6985 const style = window.getComputedStyle(nativeNode, pseudo);
6986 const content = style.getPropertyValue('content');
6987 if (content === '' || content === 'none') {
6988 return;
6989 }
6990 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6991 try {
6992 clonedNode.className = `${clonedNode.className} ${className}`;
6993 }
6994 catch (err) {
6995 return;
6996 }
6997 const styleElement = document.createElement('style');
6998 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));
6999 clonedNode.appendChild(styleElement);
7000 }
7001 function clonePseudoElements(nativeNode, clonedNode, options) {
7002 clonePseudoElement(nativeNode, clonedNode, ':before', options);
7003 clonePseudoElement(nativeNode, clonedNode, ':after', options);
7004 }
7005 //# sourceMappingURL=clone-pseudos.js.map
7006
7007 /***/ }),
7008
7009 /***/ "../node_modules/html-to-image/es/dataurl.js":
7010 /*!***************************************************!*\
7011 !*** ../node_modules/html-to-image/es/dataurl.js ***!
7012 \***************************************************/
7013 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7014
7015 "use strict";
7016 __webpack_require__.r(__webpack_exports__);
7017 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7018 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
7019 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
7020 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
7021 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
7022 /* harmony export */ });
7023 function getContentFromDataUrl(dataURL) {
7024 return dataURL.split(/,/)[1];
7025 }
7026 function isDataUrl(url) {
7027 return url.search(/^(data:)/) !== -1;
7028 }
7029 function makeDataUrl(content, mimeType) {
7030 return `data:${mimeType};base64,${content}`;
7031 }
7032 async function fetchAsDataURL(url, init, process) {
7033 const res = await fetch(url, init);
7034 if (res.status === 404) {
7035 throw new Error(`Resource "${res.url}" not found`);
7036 }
7037 const blob = await res.blob();
7038 return new Promise((resolve, reject) => {
7039 const reader = new FileReader();
7040 reader.onerror = reject;
7041 reader.onloadend = () => {
7042 try {
7043 resolve(process({ res, result: reader.result }));
7044 }
7045 catch (error) {
7046 reject(error);
7047 }
7048 };
7049 reader.readAsDataURL(blob);
7050 });
7051 }
7052 const cache = {};
7053 function getCacheKey(url, contentType, includeQueryParams) {
7054 let key = url.replace(/\?.*/, '');
7055 if (includeQueryParams) {
7056 key = url;
7057 }
7058 // font resource
7059 if (/ttf|otf|eot|woff2?/i.test(key)) {
7060 key = key.replace(/.*\//, '');
7061 }
7062 return contentType ? `[${contentType}]${key}` : key;
7063 }
7064 async function resourceToDataURL(resourceUrl, contentType, options) {
7065 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
7066 if (cache[cacheKey] != null) {
7067 return cache[cacheKey];
7068 }
7069 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
7070 if (options.cacheBust) {
7071 // eslint-disable-next-line no-param-reassign
7072 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
7073 }
7074 let dataURL;
7075 try {
7076 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
7077 if (!contentType) {
7078 // eslint-disable-next-line no-param-reassign
7079 contentType = res.headers.get('Content-Type') || '';
7080 }
7081 return getContentFromDataUrl(result);
7082 });
7083 dataURL = makeDataUrl(content, contentType);
7084 }
7085 catch (error) {
7086 dataURL = options.imagePlaceholder || '';
7087 let msg = `Failed to fetch resource: ${resourceUrl}`;
7088 if (error) {
7089 msg = typeof error === 'string' ? error : error.message;
7090 }
7091 if (msg) {
7092 console.warn(msg);
7093 }
7094 }
7095 cache[cacheKey] = dataURL;
7096 return dataURL;
7097 }
7098 //# sourceMappingURL=dataurl.js.map
7099
7100 /***/ }),
7101
7102 /***/ "../node_modules/html-to-image/es/embed-images.js":
7103 /*!********************************************************!*\
7104 !*** ../node_modules/html-to-image/es/embed-images.js ***!
7105 \********************************************************/
7106 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7107
7108 "use strict";
7109 __webpack_require__.r(__webpack_exports__);
7110 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7111 /* harmony export */ embedImages: () => (/* binding */ embedImages)
7112 /* harmony export */ });
7113 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7114 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7115 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7116 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7117
7118
7119
7120
7121 async function embedProp(propName, node, options) {
7122 var _a;
7123 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
7124 if (propValue) {
7125 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
7126 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
7127 return true;
7128 }
7129 return false;
7130 }
7131 async function embedBackground(clonedNode, options) {
7132 ;
7133 (await embedProp('background', clonedNode, options)) ||
7134 (await embedProp('background-image', clonedNode, options));
7135 (await embedProp('mask', clonedNode, options)) ||
7136 (await embedProp('-webkit-mask', clonedNode, options)) ||
7137 (await embedProp('mask-image', clonedNode, options)) ||
7138 (await embedProp('-webkit-mask-image', clonedNode, options));
7139 }
7140 async function embedImageNode(clonedNode, options) {
7141 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
7142 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
7143 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
7144 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
7145 return;
7146 }
7147 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
7148 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
7149 await new Promise((resolve, reject) => {
7150 clonedNode.onload = resolve;
7151 clonedNode.onerror = options.onImageErrorHandler
7152 ? (...attributes) => {
7153 try {
7154 resolve(options.onImageErrorHandler(...attributes));
7155 }
7156 catch (error) {
7157 reject(error);
7158 }
7159 }
7160 : reject;
7161 const image = clonedNode;
7162 if (image.decode) {
7163 image.decode = resolve;
7164 }
7165 if (image.loading === 'lazy') {
7166 image.loading = 'eager';
7167 }
7168 if (isImageElement) {
7169 clonedNode.srcset = '';
7170 clonedNode.src = dataURL;
7171 }
7172 else {
7173 clonedNode.href.baseVal = dataURL;
7174 }
7175 });
7176 }
7177 async function embedChildren(clonedNode, options) {
7178 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
7179 const deferreds = children.map((child) => embedImages(child, options));
7180 await Promise.all(deferreds).then(() => clonedNode);
7181 }
7182 async function embedImages(clonedNode, options) {
7183 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
7184 await embedBackground(clonedNode, options);
7185 await embedImageNode(clonedNode, options);
7186 await embedChildren(clonedNode, options);
7187 }
7188 }
7189 //# sourceMappingURL=embed-images.js.map
7190
7191 /***/ }),
7192
7193 /***/ "../node_modules/html-to-image/es/embed-resources.js":
7194 /*!***********************************************************!*\
7195 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
7196 \***********************************************************/
7197 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7198
7199 "use strict";
7200 __webpack_require__.r(__webpack_exports__);
7201 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7202 /* harmony export */ embed: () => (/* binding */ embed),
7203 /* harmony export */ embedResources: () => (/* binding */ embedResources),
7204 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
7205 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
7206 /* harmony export */ });
7207 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7208 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7209 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7210
7211
7212
7213 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
7214 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
7215 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
7216 function toRegex(url) {
7217 // eslint-disable-next-line no-useless-escape
7218 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
7219 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
7220 }
7221 function parseURLs(cssText) {
7222 const urls = [];
7223 cssText.replace(URL_REGEX, (raw, quotation, url) => {
7224 urls.push(url);
7225 return raw;
7226 });
7227 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
7228 }
7229 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
7230 try {
7231 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
7232 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
7233 let dataURL;
7234 if (getContentFromUrl) {
7235 const content = await getContentFromUrl(resolvedURL);
7236 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
7237 }
7238 else {
7239 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
7240 }
7241 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
7242 }
7243 catch (error) {
7244 // pass
7245 }
7246 return cssText;
7247 }
7248 function filterPreferredFontFormat(str, { preferredFontFormat }) {
7249 return !preferredFontFormat
7250 ? str
7251 : str.replace(FONT_SRC_REGEX, (match) => {
7252 // eslint-disable-next-line no-constant-condition
7253 while (true) {
7254 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
7255 if (!format) {
7256 return '';
7257 }
7258 if (format === preferredFontFormat) {
7259 return `src: ${src};`;
7260 }
7261 }
7262 });
7263 }
7264 function shouldEmbed(url) {
7265 return url.search(URL_REGEX) !== -1;
7266 }
7267 async function embedResources(cssText, baseUrl, options) {
7268 if (!shouldEmbed(cssText)) {
7269 return cssText;
7270 }
7271 const filteredCSSText = filterPreferredFontFormat(cssText, options);
7272 const urls = parseURLs(filteredCSSText);
7273 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
7274 }
7275 //# sourceMappingURL=embed-resources.js.map
7276
7277 /***/ }),
7278
7279 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
7280 /*!**********************************************************!*\
7281 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
7282 \**********************************************************/
7283 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7284
7285 "use strict";
7286 __webpack_require__.r(__webpack_exports__);
7287 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7288 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
7289 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
7290 /* harmony export */ });
7291 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7292 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7293 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7294
7295
7296
7297 const cssFetchCache = {};
7298 async function fetchCSS(url) {
7299 let cache = cssFetchCache[url];
7300 if (cache != null) {
7301 return cache;
7302 }
7303 const res = await fetch(url);
7304 const cssText = await res.text();
7305 cache = { url, cssText };
7306 cssFetchCache[url] = cache;
7307 return cache;
7308 }
7309 async function embedFonts(data, options) {
7310 let cssText = data.cssText;
7311 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
7312 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
7313 const loadFonts = fontLocs.map(async (loc) => {
7314 let url = loc.replace(regexUrl, '$1');
7315 if (!url.startsWith('https://')) {
7316 url = new URL(url, data.url).href;
7317 }
7318 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
7319 cssText = cssText.replace(loc, `url(${result})`);
7320 return [loc, result];
7321 });
7322 });
7323 return Promise.all(loadFonts).then(() => cssText);
7324 }
7325 function parseCSS(source) {
7326 if (source == null) {
7327 return [];
7328 }
7329 const result = [];
7330 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
7331 // strip out comments
7332 let cssText = source.replace(commentsRegex, '');
7333 // eslint-disable-next-line prefer-regex-literals
7334 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
7335 // eslint-disable-next-line no-constant-condition
7336 while (true) {
7337 const matches = keyframesRegex.exec(cssText);
7338 if (matches === null) {
7339 break;
7340 }
7341 result.push(matches[0]);
7342 }
7343 cssText = cssText.replace(keyframesRegex, '');
7344 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
7345 // to match css & media queries together
7346 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
7347 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
7348 // unified regex
7349 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
7350 // eslint-disable-next-line no-constant-condition
7351 while (true) {
7352 let matches = importRegex.exec(cssText);
7353 if (matches === null) {
7354 matches = unifiedRegex.exec(cssText);
7355 if (matches === null) {
7356 break;
7357 }
7358 else {
7359 importRegex.lastIndex = unifiedRegex.lastIndex;
7360 }
7361 }
7362 else {
7363 unifiedRegex.lastIndex = importRegex.lastIndex;
7364 }
7365 result.push(matches[0]);
7366 }
7367 return result;
7368 }
7369 async function getCSSRules(styleSheets, options) {
7370 const ret = [];
7371 const deferreds = [];
7372 // First loop inlines imports
7373 styleSheets.forEach((sheet) => {
7374 if ('cssRules' in sheet) {
7375 try {
7376 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
7377 if (item.type === CSSRule.IMPORT_RULE) {
7378 let importIndex = index + 1;
7379 const url = item.href;
7380 const deferred = fetchCSS(url)
7381 .then((metadata) => embedFonts(metadata, options))
7382 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7383 try {
7384 sheet.insertRule(rule, rule.startsWith('@import')
7385 ? (importIndex += 1)
7386 : sheet.cssRules.length);
7387 }
7388 catch (error) {
7389 console.error('Error inserting rule from remote css', {
7390 rule,
7391 error,
7392 });
7393 }
7394 }))
7395 .catch((e) => {
7396 console.error('Error loading remote css', e.toString());
7397 });
7398 deferreds.push(deferred);
7399 }
7400 });
7401 }
7402 catch (e) {
7403 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
7404 if (sheet.href != null) {
7405 deferreds.push(fetchCSS(sheet.href)
7406 .then((metadata) => embedFonts(metadata, options))
7407 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7408 inline.insertRule(rule, inline.cssRules.length);
7409 }))
7410 .catch((err) => {
7411 console.error('Error loading remote stylesheet', err);
7412 }));
7413 }
7414 console.error('Error inlining remote css file', e);
7415 }
7416 }
7417 });
7418 return Promise.all(deferreds).then(() => {
7419 // Second loop parses rules
7420 styleSheets.forEach((sheet) => {
7421 if ('cssRules' in sheet) {
7422 try {
7423 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
7424 ret.push(item);
7425 });
7426 }
7427 catch (e) {
7428 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
7429 }
7430 }
7431 });
7432 return ret;
7433 });
7434 }
7435 function getWebFontRules(cssRules) {
7436 return cssRules
7437 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
7438 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
7439 }
7440 async function parseWebFontRules(node, options) {
7441 if (node.ownerDocument == null) {
7442 throw new Error('Provided element is not within a Document');
7443 }
7444 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
7445 const cssRules = await getCSSRules(styleSheets, options);
7446 return getWebFontRules(cssRules);
7447 }
7448 function normalizeFontFamily(font) {
7449 return font.trim().replace(/["']/g, '');
7450 }
7451 function getUsedFonts(node) {
7452 const fonts = new Set();
7453 function traverse(node) {
7454 const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;
7455 fontFamily.split(',').forEach((font) => {
7456 fonts.add(normalizeFontFamily(font));
7457 });
7458 Array.from(node.children).forEach((child) => {
7459 if (child instanceof HTMLElement) {
7460 traverse(child);
7461 }
7462 });
7463 }
7464 traverse(node);
7465 return fonts;
7466 }
7467 async function getWebFontCSS(node, options) {
7468 const rules = await parseWebFontRules(node, options);
7469 const usedFonts = getUsedFonts(node);
7470 const cssTexts = await Promise.all(rules
7471 .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))
7472 .map((rule) => {
7473 const baseUrl = rule.parentStyleSheet
7474 ? rule.parentStyleSheet.href
7475 : null;
7476 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
7477 }));
7478 return cssTexts.join('\n');
7479 }
7480 async function embedWebFonts(clonedNode, options) {
7481 const cssText = options.fontEmbedCSS != null
7482 ? options.fontEmbedCSS
7483 : options.skipFonts
7484 ? null
7485 : await getWebFontCSS(clonedNode, options);
7486 if (cssText) {
7487 const styleNode = document.createElement('style');
7488 const sytleContent = document.createTextNode(cssText);
7489 styleNode.appendChild(sytleContent);
7490 if (clonedNode.firstChild) {
7491 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
7492 }
7493 else {
7494 clonedNode.appendChild(styleNode);
7495 }
7496 }
7497 }
7498 //# sourceMappingURL=embed-webfonts.js.map
7499
7500 /***/ }),
7501
7502 /***/ "../node_modules/html-to-image/es/index.js":
7503 /*!*************************************************!*\
7504 !*** ../node_modules/html-to-image/es/index.js ***!
7505 \*************************************************/
7506 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7507
7508 "use strict";
7509 __webpack_require__.r(__webpack_exports__);
7510 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7511 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
7512 /* harmony export */ toBlob: () => (/* binding */ toBlob),
7513 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
7514 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
7515 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
7516 /* harmony export */ toPng: () => (/* binding */ toPng),
7517 /* harmony export */ toSvg: () => (/* binding */ toSvg)
7518 /* harmony export */ });
7519 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
7520 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
7521 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
7522 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
7523 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7524
7525
7526
7527
7528
7529 async function toSvg(node, options = {}) {
7530 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7531 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
7532 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
7533 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
7534 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
7535 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
7536 return datauri;
7537 }
7538 async function toCanvas(node, options = {}) {
7539 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7540 const svg = await toSvg(node, options);
7541 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
7542 const canvas = document.createElement('canvas');
7543 const context = canvas.getContext('2d');
7544 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
7545 const canvasWidth = options.canvasWidth || width;
7546 const canvasHeight = options.canvasHeight || height;
7547 canvas.width = canvasWidth * ratio;
7548 canvas.height = canvasHeight * ratio;
7549 if (!options.skipAutoScale) {
7550 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
7551 }
7552 canvas.style.width = `${canvasWidth}`;
7553 canvas.style.height = `${canvasHeight}`;
7554 if (options.backgroundColor) {
7555 context.fillStyle = options.backgroundColor;
7556 context.fillRect(0, 0, canvas.width, canvas.height);
7557 }
7558 context.drawImage(img, 0, 0, canvas.width, canvas.height);
7559 return canvas;
7560 }
7561 async function toPixelData(node, options = {}) {
7562 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7563 const canvas = await toCanvas(node, options);
7564 const ctx = canvas.getContext('2d');
7565 return ctx.getImageData(0, 0, width, height).data;
7566 }
7567 async function toPng(node, options = {}) {
7568 const canvas = await toCanvas(node, options);
7569 return canvas.toDataURL();
7570 }
7571 async function toJpeg(node, options = {}) {
7572 const canvas = await toCanvas(node, options);
7573 return canvas.toDataURL('image/jpeg', options.quality || 1);
7574 }
7575 async function toBlob(node, options = {}) {
7576 const canvas = await toCanvas(node, options);
7577 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
7578 return blob;
7579 }
7580 async function getFontEmbedCSS(node, options = {}) {
7581 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
7582 }
7583 //# sourceMappingURL=index.js.map
7584
7585 /***/ }),
7586
7587 /***/ "../node_modules/html-to-image/es/mimes.js":
7588 /*!*************************************************!*\
7589 !*** ../node_modules/html-to-image/es/mimes.js ***!
7590 \*************************************************/
7591 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7592
7593 "use strict";
7594 __webpack_require__.r(__webpack_exports__);
7595 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7596 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
7597 /* harmony export */ });
7598 const WOFF = 'application/font-woff';
7599 const JPEG = 'image/jpeg';
7600 const mimes = {
7601 woff: WOFF,
7602 woff2: WOFF,
7603 ttf: 'application/font-truetype',
7604 eot: 'application/vnd.ms-fontobject',
7605 png: 'image/png',
7606 jpg: JPEG,
7607 jpeg: JPEG,
7608 gif: 'image/gif',
7609 tiff: 'image/tiff',
7610 svg: 'image/svg+xml',
7611 webp: 'image/webp',
7612 };
7613 function getExtension(url) {
7614 const match = /\.([^./]*?)$/g.exec(url);
7615 return match ? match[1] : '';
7616 }
7617 function getMimeType(url) {
7618 const extension = getExtension(url).toLowerCase();
7619 return mimes[extension] || '';
7620 }
7621 //# sourceMappingURL=mimes.js.map
7622
7623 /***/ }),
7624
7625 /***/ "../node_modules/html-to-image/es/util.js":
7626 /*!************************************************!*\
7627 !*** ../node_modules/html-to-image/es/util.js ***!
7628 \************************************************/
7629 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7630
7631 "use strict";
7632 __webpack_require__.r(__webpack_exports__);
7633 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7634 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
7635 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
7636 /* harmony export */ createImage: () => (/* binding */ createImage),
7637 /* harmony export */ delay: () => (/* binding */ delay),
7638 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
7639 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
7640 /* harmony export */ getStyleProperties: () => (/* binding */ getStyleProperties),
7641 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
7642 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
7643 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
7644 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
7645 /* harmony export */ toArray: () => (/* binding */ toArray),
7646 /* harmony export */ uuid: () => (/* binding */ uuid)
7647 /* harmony export */ });
7648 function resolveUrl(url, baseUrl) {
7649 // url is absolute already
7650 if (url.match(/^[a-z]+:\/\//i)) {
7651 return url;
7652 }
7653 // url is absolute already, without protocol
7654 if (url.match(/^\/\//)) {
7655 return window.location.protocol + url;
7656 }
7657 // dataURI, mailto:, tel:, etc.
7658 if (url.match(/^[a-z]+:/i)) {
7659 return url;
7660 }
7661 const doc = document.implementation.createHTMLDocument();
7662 const base = doc.createElement('base');
7663 const a = doc.createElement('a');
7664 doc.head.appendChild(base);
7665 doc.body.appendChild(a);
7666 if (baseUrl) {
7667 base.href = baseUrl;
7668 }
7669 a.href = url;
7670 return a.href;
7671 }
7672 const uuid = (() => {
7673 // generate uuid for className of pseudo elements.
7674 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
7675 let counter = 0;
7676 // ref: http://stackoverflow.com/a/6248722/2519373
7677 const random = () =>
7678 // eslint-disable-next-line no-bitwise
7679 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
7680 return () => {
7681 counter += 1;
7682 return `u${random()}${counter}`;
7683 };
7684 })();
7685 function delay(ms) {
7686 return (args) => new Promise((resolve) => {
7687 setTimeout(() => resolve(args), ms);
7688 });
7689 }
7690 function toArray(arrayLike) {
7691 const arr = [];
7692 for (let i = 0, l = arrayLike.length; i < l; i++) {
7693 arr.push(arrayLike[i]);
7694 }
7695 return arr;
7696 }
7697 let styleProps = null;
7698 function getStyleProperties(options = {}) {
7699 if (styleProps) {
7700 return styleProps;
7701 }
7702 if (options.includeStyleProperties) {
7703 styleProps = options.includeStyleProperties;
7704 return styleProps;
7705 }
7706 styleProps = toArray(window.getComputedStyle(document.documentElement));
7707 return styleProps;
7708 }
7709 function px(node, styleProperty) {
7710 const win = node.ownerDocument.defaultView || window;
7711 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
7712 return val ? parseFloat(val.replace('px', '')) : 0;
7713 }
7714 function getNodeWidth(node) {
7715 const leftBorder = px(node, 'border-left-width');
7716 const rightBorder = px(node, 'border-right-width');
7717 return node.clientWidth + leftBorder + rightBorder;
7718 }
7719 function getNodeHeight(node) {
7720 const topBorder = px(node, 'border-top-width');
7721 const bottomBorder = px(node, 'border-bottom-width');
7722 return node.clientHeight + topBorder + bottomBorder;
7723 }
7724 function getImageSize(targetNode, options = {}) {
7725 const width = options.width || getNodeWidth(targetNode);
7726 const height = options.height || getNodeHeight(targetNode);
7727 return { width, height };
7728 }
7729 function getPixelRatio() {
7730 let ratio;
7731 let FINAL_PROCESS;
7732 try {
7733 FINAL_PROCESS = process;
7734 }
7735 catch (e) {
7736 // pass
7737 }
7738 const val = FINAL_PROCESS && FINAL_PROCESS.env
7739 ? FINAL_PROCESS.env.devicePixelRatio
7740 : null;
7741 if (val) {
7742 ratio = parseInt(val, 10);
7743 if (Number.isNaN(ratio)) {
7744 ratio = 1;
7745 }
7746 }
7747 return ratio || window.devicePixelRatio || 1;
7748 }
7749 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
7750 const canvasDimensionLimit = 16384;
7751 function checkCanvasDimensions(canvas) {
7752 if (canvas.width > canvasDimensionLimit ||
7753 canvas.height > canvasDimensionLimit) {
7754 if (canvas.width > canvasDimensionLimit &&
7755 canvas.height > canvasDimensionLimit) {
7756 if (canvas.width > canvas.height) {
7757 canvas.height *= canvasDimensionLimit / canvas.width;
7758 canvas.width = canvasDimensionLimit;
7759 }
7760 else {
7761 canvas.width *= canvasDimensionLimit / canvas.height;
7762 canvas.height = canvasDimensionLimit;
7763 }
7764 }
7765 else if (canvas.width > canvasDimensionLimit) {
7766 canvas.height *= canvasDimensionLimit / canvas.width;
7767 canvas.width = canvasDimensionLimit;
7768 }
7769 else {
7770 canvas.width *= canvasDimensionLimit / canvas.height;
7771 canvas.height = canvasDimensionLimit;
7772 }
7773 }
7774 }
7775 function canvasToBlob(canvas, options = {}) {
7776 if (canvas.toBlob) {
7777 return new Promise((resolve) => {
7778 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
7779 });
7780 }
7781 return new Promise((resolve) => {
7782 const binaryString = window.atob(canvas
7783 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
7784 .split(',')[1]);
7785 const len = binaryString.length;
7786 const binaryArray = new Uint8Array(len);
7787 for (let i = 0; i < len; i += 1) {
7788 binaryArray[i] = binaryString.charCodeAt(i);
7789 }
7790 resolve(new Blob([binaryArray], {
7791 type: options.type ? options.type : 'image/png',
7792 }));
7793 });
7794 }
7795 function createImage(url) {
7796 return new Promise((resolve, reject) => {
7797 const img = new Image();
7798 img.onload = () => {
7799 img.decode().then(() => {
7800 requestAnimationFrame(() => resolve(img));
7801 });
7802 };
7803 img.onerror = reject;
7804 img.crossOrigin = 'anonymous';
7805 img.decoding = 'async';
7806 img.src = url;
7807 });
7808 }
7809 async function svgToDataURL(svg) {
7810 return Promise.resolve()
7811 .then(() => new XMLSerializer().serializeToString(svg))
7812 .then(encodeURIComponent)
7813 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
7814 }
7815 async function nodeToDataURL(node, width, height) {
7816 const xmlns = 'http://www.w3.org/2000/svg';
7817 const svg = document.createElementNS(xmlns, 'svg');
7818 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
7819 svg.setAttribute('width', `${width}`);
7820 svg.setAttribute('height', `${height}`);
7821 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
7822 foreignObject.setAttribute('width', '100%');
7823 foreignObject.setAttribute('height', '100%');
7824 foreignObject.setAttribute('x', '0');
7825 foreignObject.setAttribute('y', '0');
7826 foreignObject.setAttribute('externalResourcesRequired', 'true');
7827 svg.appendChild(foreignObject);
7828 foreignObject.appendChild(node);
7829 return svgToDataURL(svg);
7830 }
7831 const isInstanceOfElement = (node, instance) => {
7832 if (node instanceof instance)
7833 return true;
7834 const nodePrototype = Object.getPrototypeOf(node);
7835 if (nodePrototype === null)
7836 return false;
7837 return (nodePrototype.constructor.name === instance.name ||
7838 isInstanceOfElement(nodePrototype, instance));
7839 };
7840 //# sourceMappingURL=util.js.map
7841
7842 /***/ }),
7843
7844 /***/ "../node_modules/object-assign/index.js":
7845 /*!**********************************************!*\
7846 !*** ../node_modules/object-assign/index.js ***!
7847 \**********************************************/
7848 /***/ ((module) => {
7849
7850 "use strict";
7851 /*
7852 object-assign
7853 (c) Sindre Sorhus
7854 @license MIT
7855 */
7856
7857
7858 /* eslint-disable no-unused-vars */
7859 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7860 var hasOwnProperty = Object.prototype.hasOwnProperty;
7861 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7862
7863 function toObject(val) {
7864 if (val === null || val === undefined) {
7865 throw new TypeError('Object.assign cannot be called with null or undefined');
7866 }
7867
7868 return Object(val);
7869 }
7870
7871 function shouldUseNative() {
7872 try {
7873 if (!Object.assign) {
7874 return false;
7875 }
7876
7877 // Detect buggy property enumeration order in older V8 versions.
7878
7879 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7880 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7881 test1[5] = 'de';
7882 if (Object.getOwnPropertyNames(test1)[0] === '5') {
7883 return false;
7884 }
7885
7886 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7887 var test2 = {};
7888 for (var i = 0; i < 10; i++) {
7889 test2['_' + String.fromCharCode(i)] = i;
7890 }
7891 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7892 return test2[n];
7893 });
7894 if (order2.join('') !== '0123456789') {
7895 return false;
7896 }
7897
7898 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7899 var test3 = {};
7900 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7901 test3[letter] = letter;
7902 });
7903 if (Object.keys(Object.assign({}, test3)).join('') !==
7904 'abcdefghijklmnopqrst') {
7905 return false;
7906 }
7907
7908 return true;
7909 } catch (err) {
7910 // We don't expect any of the above to throw, but better to be safe.
7911 return false;
7912 }
7913 }
7914
7915 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7916 var from;
7917 var to = toObject(target);
7918 var symbols;
7919
7920 for (var s = 1; s < arguments.length; s++) {
7921 from = Object(arguments[s]);
7922
7923 for (var key in from) {
7924 if (hasOwnProperty.call(from, key)) {
7925 to[key] = from[key];
7926 }
7927 }
7928
7929 if (getOwnPropertySymbols) {
7930 symbols = getOwnPropertySymbols(from);
7931 for (var i = 0; i < symbols.length; i++) {
7932 if (propIsEnumerable.call(from, symbols[i])) {
7933 to[symbols[i]] = from[symbols[i]];
7934 }
7935 }
7936 }
7937 }
7938
7939 return to;
7940 };
7941
7942
7943 /***/ }),
7944
7945 /***/ "../node_modules/prop-types/checkPropTypes.js":
7946 /*!****************************************************!*\
7947 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7948 \****************************************************/
7949 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7950
7951 "use strict";
7952 /**
7953 * Copyright (c) 2013-present, Facebook, Inc.
7954 *
7955 * This source code is licensed under the MIT license found in the
7956 * LICENSE file in the root directory of this source tree.
7957 */
7958
7959
7960
7961 var printWarning = function() {};
7962
7963 if (true) {
7964 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7965 var loggedTypeFailures = {};
7966 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7967
7968 printWarning = function(text) {
7969 var message = 'Warning: ' + text;
7970 if (typeof console !== 'undefined') {
7971 console.error(message);
7972 }
7973 try {
7974 // --- Welcome to debugging React ---
7975 // This error was thrown as a convenience so that you can use this stack
7976 // to find the callsite that caused this warning to fire.
7977 throw new Error(message);
7978 } catch (x) { /**/ }
7979 };
7980 }
7981
7982 /**
7983 * Assert that the values match with the type specs.
7984 * Error messages are memorized and will only be shown once.
7985 *
7986 * @param {object} typeSpecs Map of name to a ReactPropType
7987 * @param {object} values Runtime values that need to be type-checked
7988 * @param {string} location e.g. "prop", "context", "child context"
7989 * @param {string} componentName Name of the component for error messages.
7990 * @param {?Function} getStack Returns the component stack.
7991 * @private
7992 */
7993 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7994 if (true) {
7995 for (var typeSpecName in typeSpecs) {
7996 if (has(typeSpecs, typeSpecName)) {
7997 var error;
7998 // Prop type validation may throw. In case they do, we don't want to
7999 // fail the render phase where it didn't fail before. So we log it.
8000 // After these have been cleaned up, we'll let them throw.
8001 try {
8002 // This is intentionally an invariant that gets caught. It's the same
8003 // behavior as without this statement except with a better message.
8004 if (typeof typeSpecs[typeSpecName] !== 'function') {
8005 var err = Error(
8006 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
8007 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
8008 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
8009 );
8010 err.name = 'Invariant Violation';
8011 throw err;
8012 }
8013 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8014 } catch (ex) {
8015 error = ex;
8016 }
8017 if (error && !(error instanceof Error)) {
8018 printWarning(
8019 (componentName || 'React class') + ': type specification of ' +
8020 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
8021 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
8022 'You may have forgotten to pass an argument to the type checker ' +
8023 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
8024 'shape all require an argument).'
8025 );
8026 }
8027 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8028 // Only monitor this failure once because there tends to be a lot of the
8029 // same error.
8030 loggedTypeFailures[error.message] = true;
8031
8032 var stack = getStack ? getStack() : '';
8033
8034 printWarning(
8035 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8036 );
8037 }
8038 }
8039 }
8040 }
8041 }
8042
8043 /**
8044 * Resets warning cache when testing.
8045 *
8046 * @private
8047 */
8048 checkPropTypes.resetWarningCache = function() {
8049 if (true) {
8050 loggedTypeFailures = {};
8051 }
8052 }
8053
8054 module.exports = checkPropTypes;
8055
8056
8057 /***/ }),
8058
8059 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
8060 /*!*************************************************************!*\
8061 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
8062 \*************************************************************/
8063 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8064
8065 "use strict";
8066 /**
8067 * Copyright (c) 2013-present, Facebook, Inc.
8068 *
8069 * This source code is licensed under the MIT license found in the
8070 * LICENSE file in the root directory of this source tree.
8071 */
8072
8073
8074
8075 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8076 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
8077
8078 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
8079 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
8080 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
8081
8082 var printWarning = function() {};
8083
8084 if (true) {
8085 printWarning = function(text) {
8086 var message = 'Warning: ' + text;
8087 if (typeof console !== 'undefined') {
8088 console.error(message);
8089 }
8090 try {
8091 // --- Welcome to debugging React ---
8092 // This error was thrown as a convenience so that you can use this stack
8093 // to find the callsite that caused this warning to fire.
8094 throw new Error(message);
8095 } catch (x) {}
8096 };
8097 }
8098
8099 function emptyFunctionThatReturnsNull() {
8100 return null;
8101 }
8102
8103 module.exports = function(isValidElement, throwOnDirectAccess) {
8104 /* global Symbol */
8105 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8106 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8107
8108 /**
8109 * Returns the iterator method function contained on the iterable object.
8110 *
8111 * Be sure to invoke the function with the iterable as context:
8112 *
8113 * var iteratorFn = getIteratorFn(myIterable);
8114 * if (iteratorFn) {
8115 * var iterator = iteratorFn.call(myIterable);
8116 * ...
8117 * }
8118 *
8119 * @param {?object} maybeIterable
8120 * @return {?function}
8121 */
8122 function getIteratorFn(maybeIterable) {
8123 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8124 if (typeof iteratorFn === 'function') {
8125 return iteratorFn;
8126 }
8127 }
8128
8129 /**
8130 * Collection of methods that allow declaration and validation of props that are
8131 * supplied to React components. Example usage:
8132 *
8133 * var Props = require('ReactPropTypes');
8134 * var MyArticle = React.createClass({
8135 * propTypes: {
8136 * // An optional string prop named "description".
8137 * description: Props.string,
8138 *
8139 * // A required enum prop named "category".
8140 * category: Props.oneOf(['News','Photos']).isRequired,
8141 *
8142 * // A prop named "dialog" that requires an instance of Dialog.
8143 * dialog: Props.instanceOf(Dialog).isRequired
8144 * },
8145 * render: function() { ... }
8146 * });
8147 *
8148 * A more formal specification of how these methods are used:
8149 *
8150 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8151 * decl := ReactPropTypes.{type}(.isRequired)?
8152 *
8153 * Each and every declaration produces a function with the same signature. This
8154 * allows the creation of custom validation functions. For example:
8155 *
8156 * var MyLink = React.createClass({
8157 * propTypes: {
8158 * // An optional string or URI prop named "href".
8159 * href: function(props, propName, componentName) {
8160 * var propValue = props[propName];
8161 * if (propValue != null && typeof propValue !== 'string' &&
8162 * !(propValue instanceof URI)) {
8163 * return new Error(
8164 * 'Expected a string or an URI for ' + propName + ' in ' +
8165 * componentName
8166 * );
8167 * }
8168 * }
8169 * },
8170 * render: function() {...}
8171 * });
8172 *
8173 * @internal
8174 */
8175
8176 var ANONYMOUS = '<<anonymous>>';
8177
8178 // Important!
8179 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8180 var ReactPropTypes = {
8181 array: createPrimitiveTypeChecker('array'),
8182 bigint: createPrimitiveTypeChecker('bigint'),
8183 bool: createPrimitiveTypeChecker('boolean'),
8184 func: createPrimitiveTypeChecker('function'),
8185 number: createPrimitiveTypeChecker('number'),
8186 object: createPrimitiveTypeChecker('object'),
8187 string: createPrimitiveTypeChecker('string'),
8188 symbol: createPrimitiveTypeChecker('symbol'),
8189
8190 any: createAnyTypeChecker(),
8191 arrayOf: createArrayOfTypeChecker,
8192 element: createElementTypeChecker(),
8193 elementType: createElementTypeTypeChecker(),
8194 instanceOf: createInstanceTypeChecker,
8195 node: createNodeChecker(),
8196 objectOf: createObjectOfTypeChecker,
8197 oneOf: createEnumTypeChecker,
8198 oneOfType: createUnionTypeChecker,
8199 shape: createShapeTypeChecker,
8200 exact: createStrictShapeTypeChecker,
8201 };
8202
8203 /**
8204 * inlined Object.is polyfill to avoid requiring consumers ship their own
8205 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8206 */
8207 /*eslint-disable no-self-compare*/
8208 function is(x, y) {
8209 // SameValue algorithm
8210 if (x === y) {
8211 // Steps 1-5, 7-10
8212 // Steps 6.b-6.e: +0 != -0
8213 return x !== 0 || 1 / x === 1 / y;
8214 } else {
8215 // Step 6.a: NaN == NaN
8216 return x !== x && y !== y;
8217 }
8218 }
8219 /*eslint-enable no-self-compare*/
8220
8221 /**
8222 * We use an Error-like object for backward compatibility as people may call
8223 * PropTypes directly and inspect their output. However, we don't use real
8224 * Errors anymore. We don't inspect their stack anyway, and creating them
8225 * is prohibitively expensive if they are created too often, such as what
8226 * happens in oneOfType() for any type before the one that matched.
8227 */
8228 function PropTypeError(message, data) {
8229 this.message = message;
8230 this.data = data && typeof data === 'object' ? data: {};
8231 this.stack = '';
8232 }
8233 // Make `instanceof Error` still work for returned errors.
8234 PropTypeError.prototype = Error.prototype;
8235
8236 function createChainableTypeChecker(validate) {
8237 if (true) {
8238 var manualPropTypeCallCache = {};
8239 var manualPropTypeWarningCount = 0;
8240 }
8241 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8242 componentName = componentName || ANONYMOUS;
8243 propFullName = propFullName || propName;
8244
8245 if (secret !== ReactPropTypesSecret) {
8246 if (throwOnDirectAccess) {
8247 // New behavior only for users of `prop-types` package
8248 var err = new Error(
8249 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8250 'Use `PropTypes.checkPropTypes()` to call them. ' +
8251 'Read more at http://fb.me/use-check-prop-types'
8252 );
8253 err.name = 'Invariant Violation';
8254 throw err;
8255 } else if ( true && typeof console !== 'undefined') {
8256 // Old behavior for people using React.PropTypes
8257 var cacheKey = componentName + ':' + propName;
8258 if (
8259 !manualPropTypeCallCache[cacheKey] &&
8260 // Avoid spamming the console because they are often not actionable except for lib authors
8261 manualPropTypeWarningCount < 3
8262 ) {
8263 printWarning(
8264 'You are manually calling a React.PropTypes validation ' +
8265 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8266 'and will throw in the standalone `prop-types` package. ' +
8267 'You may be seeing this warning due to a third-party PropTypes ' +
8268 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8269 );
8270 manualPropTypeCallCache[cacheKey] = true;
8271 manualPropTypeWarningCount++;
8272 }
8273 }
8274 }
8275 if (props[propName] == null) {
8276 if (isRequired) {
8277 if (props[propName] === null) {
8278 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8279 }
8280 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8281 }
8282 return null;
8283 } else {
8284 return validate(props, propName, componentName, location, propFullName);
8285 }
8286 }
8287
8288 var chainedCheckType = checkType.bind(null, false);
8289 chainedCheckType.isRequired = checkType.bind(null, true);
8290
8291 return chainedCheckType;
8292 }
8293
8294 function createPrimitiveTypeChecker(expectedType) {
8295 function validate(props, propName, componentName, location, propFullName, secret) {
8296 var propValue = props[propName];
8297 var propType = getPropType(propValue);
8298 if (propType !== expectedType) {
8299 // `propValue` being instance of, say, date/regexp, pass the 'object'
8300 // check, but we can offer a more precise error message here rather than
8301 // 'of type `object`'.
8302 var preciseType = getPreciseType(propValue);
8303
8304 return new PropTypeError(
8305 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8306 {expectedType: expectedType}
8307 );
8308 }
8309 return null;
8310 }
8311 return createChainableTypeChecker(validate);
8312 }
8313
8314 function createAnyTypeChecker() {
8315 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8316 }
8317
8318 function createArrayOfTypeChecker(typeChecker) {
8319 function validate(props, propName, componentName, location, propFullName) {
8320 if (typeof typeChecker !== 'function') {
8321 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8322 }
8323 var propValue = props[propName];
8324 if (!Array.isArray(propValue)) {
8325 var propType = getPropType(propValue);
8326 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8327 }
8328 for (var i = 0; i < propValue.length; i++) {
8329 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8330 if (error instanceof Error) {
8331 return error;
8332 }
8333 }
8334 return null;
8335 }
8336 return createChainableTypeChecker(validate);
8337 }
8338
8339 function createElementTypeChecker() {
8340 function validate(props, propName, componentName, location, propFullName) {
8341 var propValue = props[propName];
8342 if (!isValidElement(propValue)) {
8343 var propType = getPropType(propValue);
8344 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8345 }
8346 return null;
8347 }
8348 return createChainableTypeChecker(validate);
8349 }
8350
8351 function createElementTypeTypeChecker() {
8352 function validate(props, propName, componentName, location, propFullName) {
8353 var propValue = props[propName];
8354 if (!ReactIs.isValidElementType(propValue)) {
8355 var propType = getPropType(propValue);
8356 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8357 }
8358 return null;
8359 }
8360 return createChainableTypeChecker(validate);
8361 }
8362
8363 function createInstanceTypeChecker(expectedClass) {
8364 function validate(props, propName, componentName, location, propFullName) {
8365 if (!(props[propName] instanceof expectedClass)) {
8366 var expectedClassName = expectedClass.name || ANONYMOUS;
8367 var actualClassName = getClassName(props[propName]);
8368 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8369 }
8370 return null;
8371 }
8372 return createChainableTypeChecker(validate);
8373 }
8374
8375 function createEnumTypeChecker(expectedValues) {
8376 if (!Array.isArray(expectedValues)) {
8377 if (true) {
8378 if (arguments.length > 1) {
8379 printWarning(
8380 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8381 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8382 );
8383 } else {
8384 printWarning('Invalid argument supplied to oneOf, expected an array.');
8385 }
8386 }
8387 return emptyFunctionThatReturnsNull;
8388 }
8389
8390 function validate(props, propName, componentName, location, propFullName) {
8391 var propValue = props[propName];
8392 for (var i = 0; i < expectedValues.length; i++) {
8393 if (is(propValue, expectedValues[i])) {
8394 return null;
8395 }
8396 }
8397
8398 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8399 var type = getPreciseType(value);
8400 if (type === 'symbol') {
8401 return String(value);
8402 }
8403 return value;
8404 });
8405 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8406 }
8407 return createChainableTypeChecker(validate);
8408 }
8409
8410 function createObjectOfTypeChecker(typeChecker) {
8411 function validate(props, propName, componentName, location, propFullName) {
8412 if (typeof typeChecker !== 'function') {
8413 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8414 }
8415 var propValue = props[propName];
8416 var propType = getPropType(propValue);
8417 if (propType !== 'object') {
8418 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8419 }
8420 for (var key in propValue) {
8421 if (has(propValue, key)) {
8422 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8423 if (error instanceof Error) {
8424 return error;
8425 }
8426 }
8427 }
8428 return null;
8429 }
8430 return createChainableTypeChecker(validate);
8431 }
8432
8433 function createUnionTypeChecker(arrayOfTypeCheckers) {
8434 if (!Array.isArray(arrayOfTypeCheckers)) {
8435 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
8436 return emptyFunctionThatReturnsNull;
8437 }
8438
8439 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8440 var checker = arrayOfTypeCheckers[i];
8441 if (typeof checker !== 'function') {
8442 printWarning(
8443 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8444 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8445 );
8446 return emptyFunctionThatReturnsNull;
8447 }
8448 }
8449
8450 function validate(props, propName, componentName, location, propFullName) {
8451 var expectedTypes = [];
8452 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8453 var checker = arrayOfTypeCheckers[i];
8454 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
8455 if (checkerResult == null) {
8456 return null;
8457 }
8458 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
8459 expectedTypes.push(checkerResult.data.expectedType);
8460 }
8461 }
8462 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8463 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8464 }
8465 return createChainableTypeChecker(validate);
8466 }
8467
8468 function createNodeChecker() {
8469 function validate(props, propName, componentName, location, propFullName) {
8470 if (!isNode(props[propName])) {
8471 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8472 }
8473 return null;
8474 }
8475 return createChainableTypeChecker(validate);
8476 }
8477
8478 function invalidValidatorError(componentName, location, propFullName, key, type) {
8479 return new PropTypeError(
8480 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8481 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8482 );
8483 }
8484
8485 function createShapeTypeChecker(shapeTypes) {
8486 function validate(props, propName, componentName, location, propFullName) {
8487 var propValue = props[propName];
8488 var propType = getPropType(propValue);
8489 if (propType !== 'object') {
8490 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8491 }
8492 for (var key in shapeTypes) {
8493 var checker = shapeTypes[key];
8494 if (typeof checker !== 'function') {
8495 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8496 }
8497 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8498 if (error) {
8499 return error;
8500 }
8501 }
8502 return null;
8503 }
8504 return createChainableTypeChecker(validate);
8505 }
8506
8507 function createStrictShapeTypeChecker(shapeTypes) {
8508 function validate(props, propName, componentName, location, propFullName) {
8509 var propValue = props[propName];
8510 var propType = getPropType(propValue);
8511 if (propType !== 'object') {
8512 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8513 }
8514 // We need to check all keys in case some are required but missing from props.
8515 var allKeys = assign({}, props[propName], shapeTypes);
8516 for (var key in allKeys) {
8517 var checker = shapeTypes[key];
8518 if (has(shapeTypes, key) && typeof checker !== 'function') {
8519 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8520 }
8521 if (!checker) {
8522 return new PropTypeError(
8523 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8524 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8525 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8526 );
8527 }
8528 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8529 if (error) {
8530 return error;
8531 }
8532 }
8533 return null;
8534 }
8535
8536 return createChainableTypeChecker(validate);
8537 }
8538
8539 function isNode(propValue) {
8540 switch (typeof propValue) {
8541 case 'number':
8542 case 'string':
8543 case 'undefined':
8544 return true;
8545 case 'boolean':
8546 return !propValue;
8547 case 'object':
8548 if (Array.isArray(propValue)) {
8549 return propValue.every(isNode);
8550 }
8551 if (propValue === null || isValidElement(propValue)) {
8552 return true;
8553 }
8554
8555 var iteratorFn = getIteratorFn(propValue);
8556 if (iteratorFn) {
8557 var iterator = iteratorFn.call(propValue);
8558 var step;
8559 if (iteratorFn !== propValue.entries) {
8560 while (!(step = iterator.next()).done) {
8561 if (!isNode(step.value)) {
8562 return false;
8563 }
8564 }
8565 } else {
8566 // Iterator will provide entry [k,v] tuples rather than values.
8567 while (!(step = iterator.next()).done) {
8568 var entry = step.value;
8569 if (entry) {
8570 if (!isNode(entry[1])) {
8571 return false;
8572 }
8573 }
8574 }
8575 }
8576 } else {
8577 return false;
8578 }
8579
8580 return true;
8581 default:
8582 return false;
8583 }
8584 }
8585
8586 function isSymbol(propType, propValue) {
8587 // Native Symbol.
8588 if (propType === 'symbol') {
8589 return true;
8590 }
8591
8592 // falsy value can't be a Symbol
8593 if (!propValue) {
8594 return false;
8595 }
8596
8597 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8598 if (propValue['@@toStringTag'] === 'Symbol') {
8599 return true;
8600 }
8601
8602 // Fallback for non-spec compliant Symbols which are polyfilled.
8603 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8604 return true;
8605 }
8606
8607 return false;
8608 }
8609
8610 // Equivalent of `typeof` but with special handling for array and regexp.
8611 function getPropType(propValue) {
8612 var propType = typeof propValue;
8613 if (Array.isArray(propValue)) {
8614 return 'array';
8615 }
8616 if (propValue instanceof RegExp) {
8617 // Old webkits (at least until Android 4.0) return 'function' rather than
8618 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8619 // passes PropTypes.object.
8620 return 'object';
8621 }
8622 if (isSymbol(propType, propValue)) {
8623 return 'symbol';
8624 }
8625 return propType;
8626 }
8627
8628 // This handles more types than `getPropType`. Only used for error messages.
8629 // See `createPrimitiveTypeChecker`.
8630 function getPreciseType(propValue) {
8631 if (typeof propValue === 'undefined' || propValue === null) {
8632 return '' + propValue;
8633 }
8634 var propType = getPropType(propValue);
8635 if (propType === 'object') {
8636 if (propValue instanceof Date) {
8637 return 'date';
8638 } else if (propValue instanceof RegExp) {
8639 return 'regexp';
8640 }
8641 }
8642 return propType;
8643 }
8644
8645 // Returns a string that is postfixed to a warning about an invalid type.
8646 // For example, "undefined" or "of type array"
8647 function getPostfixForTypeWarning(value) {
8648 var type = getPreciseType(value);
8649 switch (type) {
8650 case 'array':
8651 case 'object':
8652 return 'an ' + type;
8653 case 'boolean':
8654 case 'date':
8655 case 'regexp':
8656 return 'a ' + type;
8657 default:
8658 return type;
8659 }
8660 }
8661
8662 // Returns class name of the object, if any.
8663 function getClassName(propValue) {
8664 if (!propValue.constructor || !propValue.constructor.name) {
8665 return ANONYMOUS;
8666 }
8667 return propValue.constructor.name;
8668 }
8669
8670 ReactPropTypes.checkPropTypes = checkPropTypes;
8671 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8672 ReactPropTypes.PropTypes = ReactPropTypes;
8673
8674 return ReactPropTypes;
8675 };
8676
8677
8678 /***/ }),
8679
8680 /***/ "../node_modules/prop-types/index.js":
8681 /*!*******************************************!*\
8682 !*** ../node_modules/prop-types/index.js ***!
8683 \*******************************************/
8684 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8685
8686 /**
8687 * Copyright (c) 2013-present, Facebook, Inc.
8688 *
8689 * This source code is licensed under the MIT license found in the
8690 * LICENSE file in the root directory of this source tree.
8691 */
8692
8693 if (true) {
8694 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8695
8696 // By explicitly using `prop-types` you are opting into new development behavior.
8697 // http://fb.me/prop-types-in-prod
8698 var throwOnDirectAccess = true;
8699 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
8700 } else // removed by dead control flow
8701 {}
8702
8703
8704 /***/ }),
8705
8706 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
8707 /*!**************************************************************!*\
8708 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8709 \**************************************************************/
8710 /***/ ((module) => {
8711
8712 "use strict";
8713 /**
8714 * Copyright (c) 2013-present, Facebook, Inc.
8715 *
8716 * This source code is licensed under the MIT license found in the
8717 * LICENSE file in the root directory of this source tree.
8718 */
8719
8720
8721
8722 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8723
8724 module.exports = ReactPropTypesSecret;
8725
8726
8727 /***/ }),
8728
8729 /***/ "../node_modules/prop-types/lib/has.js":
8730 /*!*********************************************!*\
8731 !*** ../node_modules/prop-types/lib/has.js ***!
8732 \*********************************************/
8733 /***/ ((module) => {
8734
8735 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
8736
8737
8738 /***/ }),
8739
8740 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
8741 /*!************************************************************************************!*\
8742 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
8743 \************************************************************************************/
8744 /***/ ((__unused_webpack_module, exports) => {
8745
8746 "use strict";
8747 /** @license React v16.13.1
8748 * react-is.development.js
8749 *
8750 * Copyright (c) Facebook, Inc. and its affiliates.
8751 *
8752 * This source code is licensed under the MIT license found in the
8753 * LICENSE file in the root directory of this source tree.
8754 */
8755
8756
8757
8758
8759
8760 if (true) {
8761 (function() {
8762 'use strict';
8763
8764 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
8765 // nor polyfill, then a plain number is used for performance.
8766 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
8767 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
8768 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
8769 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
8770 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
8771 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
8772 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
8773 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
8774 // (unstable) APIs that have been removed. Can we remove the symbols?
8775
8776 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
8777 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
8778 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
8779 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
8780 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
8781 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
8782 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
8783 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
8784 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
8785 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
8786 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
8787
8788 function isValidElementType(type) {
8789 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
8790 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);
8791 }
8792
8793 function typeOf(object) {
8794 if (typeof object === 'object' && object !== null) {
8795 var $$typeof = object.$$typeof;
8796
8797 switch ($$typeof) {
8798 case REACT_ELEMENT_TYPE:
8799 var type = object.type;
8800
8801 switch (type) {
8802 case REACT_ASYNC_MODE_TYPE:
8803 case REACT_CONCURRENT_MODE_TYPE:
8804 case REACT_FRAGMENT_TYPE:
8805 case REACT_PROFILER_TYPE:
8806 case REACT_STRICT_MODE_TYPE:
8807 case REACT_SUSPENSE_TYPE:
8808 return type;
8809
8810 default:
8811 var $$typeofType = type && type.$$typeof;
8812
8813 switch ($$typeofType) {
8814 case REACT_CONTEXT_TYPE:
8815 case REACT_FORWARD_REF_TYPE:
8816 case REACT_LAZY_TYPE:
8817 case REACT_MEMO_TYPE:
8818 case REACT_PROVIDER_TYPE:
8819 return $$typeofType;
8820
8821 default:
8822 return $$typeof;
8823 }
8824
8825 }
8826
8827 case REACT_PORTAL_TYPE:
8828 return $$typeof;
8829 }
8830 }
8831
8832 return undefined;
8833 } // AsyncMode is deprecated along with isAsyncMode
8834
8835 var AsyncMode = REACT_ASYNC_MODE_TYPE;
8836 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
8837 var ContextConsumer = REACT_CONTEXT_TYPE;
8838 var ContextProvider = REACT_PROVIDER_TYPE;
8839 var Element = REACT_ELEMENT_TYPE;
8840 var ForwardRef = REACT_FORWARD_REF_TYPE;
8841 var Fragment = REACT_FRAGMENT_TYPE;
8842 var Lazy = REACT_LAZY_TYPE;
8843 var Memo = REACT_MEMO_TYPE;
8844 var Portal = REACT_PORTAL_TYPE;
8845 var Profiler = REACT_PROFILER_TYPE;
8846 var StrictMode = REACT_STRICT_MODE_TYPE;
8847 var Suspense = REACT_SUSPENSE_TYPE;
8848 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
8849
8850 function isAsyncMode(object) {
8851 {
8852 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
8853 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
8854
8855 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.');
8856 }
8857 }
8858
8859 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
8860 }
8861 function isConcurrentMode(object) {
8862 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
8863 }
8864 function isContextConsumer(object) {
8865 return typeOf(object) === REACT_CONTEXT_TYPE;
8866 }
8867 function isContextProvider(object) {
8868 return typeOf(object) === REACT_PROVIDER_TYPE;
8869 }
8870 function isElement(object) {
8871 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8872 }
8873 function isForwardRef(object) {
8874 return typeOf(object) === REACT_FORWARD_REF_TYPE;
8875 }
8876 function isFragment(object) {
8877 return typeOf(object) === REACT_FRAGMENT_TYPE;
8878 }
8879 function isLazy(object) {
8880 return typeOf(object) === REACT_LAZY_TYPE;
8881 }
8882 function isMemo(object) {
8883 return typeOf(object) === REACT_MEMO_TYPE;
8884 }
8885 function isPortal(object) {
8886 return typeOf(object) === REACT_PORTAL_TYPE;
8887 }
8888 function isProfiler(object) {
8889 return typeOf(object) === REACT_PROFILER_TYPE;
8890 }
8891 function isStrictMode(object) {
8892 return typeOf(object) === REACT_STRICT_MODE_TYPE;
8893 }
8894 function isSuspense(object) {
8895 return typeOf(object) === REACT_SUSPENSE_TYPE;
8896 }
8897
8898 exports.AsyncMode = AsyncMode;
8899 exports.ConcurrentMode = ConcurrentMode;
8900 exports.ContextConsumer = ContextConsumer;
8901 exports.ContextProvider = ContextProvider;
8902 exports.Element = Element;
8903 exports.ForwardRef = ForwardRef;
8904 exports.Fragment = Fragment;
8905 exports.Lazy = Lazy;
8906 exports.Memo = Memo;
8907 exports.Portal = Portal;
8908 exports.Profiler = Profiler;
8909 exports.StrictMode = StrictMode;
8910 exports.Suspense = Suspense;
8911 exports.isAsyncMode = isAsyncMode;
8912 exports.isConcurrentMode = isConcurrentMode;
8913 exports.isContextConsumer = isContextConsumer;
8914 exports.isContextProvider = isContextProvider;
8915 exports.isElement = isElement;
8916 exports.isForwardRef = isForwardRef;
8917 exports.isFragment = isFragment;
8918 exports.isLazy = isLazy;
8919 exports.isMemo = isMemo;
8920 exports.isPortal = isPortal;
8921 exports.isProfiler = isProfiler;
8922 exports.isStrictMode = isStrictMode;
8923 exports.isSuspense = isSuspense;
8924 exports.isValidElementType = isValidElementType;
8925 exports.typeOf = typeOf;
8926 })();
8927 }
8928
8929
8930 /***/ }),
8931
8932 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8933 /*!*****************************************************************!*\
8934 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8935 \*****************************************************************/
8936 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8937
8938 "use strict";
8939
8940
8941 if (false) // removed by dead control flow
8942 {} else {
8943 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8944 }
8945
8946
8947 /***/ }),
8948
8949 /***/ "../node_modules/react-dom/client.js":
8950 /*!*******************************************!*\
8951 !*** ../node_modules/react-dom/client.js ***!
8952 \*******************************************/
8953 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8954
8955 "use strict";
8956
8957
8958 var m = __webpack_require__(/*! react-dom */ "react-dom");
8959 if (false) // removed by dead control flow
8960 {} else {
8961 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8962 exports.createRoot = function(c, o) {
8963 i.usingClientEntryPoint = true;
8964 try {
8965 return m.createRoot(c, o);
8966 } finally {
8967 i.usingClientEntryPoint = false;
8968 }
8969 };
8970 exports.hydrateRoot = function(c, h, o) {
8971 i.usingClientEntryPoint = true;
8972 try {
8973 return m.hydrateRoot(c, h, o);
8974 } finally {
8975 i.usingClientEntryPoint = false;
8976 }
8977 };
8978 }
8979
8980
8981 /***/ }),
8982
8983 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8984 /*!**************************************************************!*\
8985 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8986 \**************************************************************/
8987 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8988
8989 "use strict";
8990
8991
8992 Object.defineProperty(exports, "__esModule", ({
8993 value: true
8994 }));
8995 Object.defineProperty(exports, "DraggableCore", ({
8996 enumerable: true,
8997 get: function () {
8998 return _DraggableCore.default;
8999 }
9000 }));
9001 exports["default"] = void 0;
9002 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9003 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9004 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9005 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
9006 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9007 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9008 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9009 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
9010 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9011 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9012 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); }
9013 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; }
9014 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); }
9015 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; }
9016 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9017 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';*/
9018 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
9019 /*:: import type {Element as ReactElement} from 'react';*/
9020 /*:: type DraggableState = {
9021 dragging: boolean,
9022 dragged: boolean,
9023 x: number, y: number,
9024 slackX: number, slackY: number,
9025 isElementSVG: boolean,
9026 prevPropsPosition: ?ControlPosition,
9027 };*/
9028 /*:: export type DraggableDefaultProps = {
9029 ...DraggableCoreDefaultProps,
9030 axis: 'both' | 'x' | 'y' | 'none',
9031 bounds: Bounds | string | false,
9032 defaultClassName: string,
9033 defaultClassNameDragging: string,
9034 defaultClassNameDragged: string,
9035 defaultPosition: ControlPosition,
9036 scale: number,
9037 };*/
9038 /*:: export type DraggableProps = {
9039 ...DraggableCoreProps,
9040 ...DraggableDefaultProps,
9041 positionOffset: PositionOffsetControlPosition,
9042 position: ControlPosition,
9043 };*/
9044 //
9045 // Define <Draggable>
9046 //
9047 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
9048 // React 16.3+
9049 // Arity (props, state)
9050 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
9051 let {
9052 position
9053 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
9054 let {
9055 prevPropsPosition
9056 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
9057 // Set x/y if a new position is provided in props that is different than the previous.
9058 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
9059 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
9060 position,
9061 prevPropsPosition
9062 });
9063 return {
9064 x: position.x,
9065 y: position.y,
9066 prevPropsPosition: {
9067 ...position
9068 }
9069 };
9070 }
9071 return null;
9072 }
9073 constructor(props /*: DraggableProps*/) {
9074 super(props);
9075 _defineProperty(this, "onDragStart", (e, coreData) => {
9076 (0, _log.default)('Draggable: onDragStart: %j', coreData);
9077
9078 // Short-circuit if user's callback killed it.
9079 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
9080 // Kills start event on core as well, so move handlers are never bound.
9081 if (shouldStart === false) return false;
9082 this.setState({
9083 dragging: true,
9084 dragged: true
9085 });
9086 });
9087 _defineProperty(this, "onDrag", (e, coreData) => {
9088 if (!this.state.dragging) return false;
9089 (0, _log.default)('Draggable: onDrag: %j', coreData);
9090 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
9091 const newState = {
9092 x: uiData.x,
9093 y: uiData.y,
9094 slackX: 0,
9095 slackY: 0
9096 };
9097
9098 // Keep within bounds.
9099 if (this.props.bounds) {
9100 // Save original x and y.
9101 const {
9102 x,
9103 y
9104 } = newState;
9105
9106 // Add slack to the values used to calculate bound position. This will ensure that if
9107 // we start removing slack, the element won't react to it right away until it's been
9108 // completely removed.
9109 newState.x += this.state.slackX;
9110 newState.y += this.state.slackY;
9111
9112 // Get bound position. This will ceil/floor the x and y within the boundaries.
9113 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
9114 newState.x = newStateX;
9115 newState.y = newStateY;
9116
9117 // Recalculate slack by noting how much was shaved by the boundPosition handler.
9118 newState.slackX = this.state.slackX + (x - newState.x);
9119 newState.slackY = this.state.slackY + (y - newState.y);
9120
9121 // Update the event we fire to reflect what really happened after bounds took effect.
9122 uiData.x = newState.x;
9123 uiData.y = newState.y;
9124 uiData.deltaX = newState.x - this.state.x;
9125 uiData.deltaY = newState.y - this.state.y;
9126 }
9127
9128 // Short-circuit if user's callback killed it.
9129 const shouldUpdate = this.props.onDrag(e, uiData);
9130 if (shouldUpdate === false) return false;
9131 this.setState(newState);
9132 });
9133 _defineProperty(this, "onDragStop", (e, coreData) => {
9134 if (!this.state.dragging) return false;
9135
9136 // Short-circuit if user's callback killed it.
9137 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
9138 if (shouldContinue === false) return false;
9139 (0, _log.default)('Draggable: onDragStop: %j', coreData);
9140 const newState /*: Partial<DraggableState>*/ = {
9141 dragging: false,
9142 slackX: 0,
9143 slackY: 0
9144 };
9145
9146 // If this is a controlled component, the result of this operation will be to
9147 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
9148 const controlled = Boolean(this.props.position);
9149 if (controlled) {
9150 const {
9151 x,
9152 y
9153 } = this.props.position;
9154 newState.x = x;
9155 newState.y = y;
9156 }
9157 this.setState(newState);
9158 });
9159 this.state = {
9160 // Whether or not we are currently dragging.
9161 dragging: false,
9162 // Whether or not we have been dragged before.
9163 dragged: false,
9164 // Current transform x and y.
9165 x: props.position ? props.position.x : props.defaultPosition.x,
9166 y: props.position ? props.position.y : props.defaultPosition.y,
9167 prevPropsPosition: {
9168 ...props.position
9169 },
9170 // Used for compensating for out-of-bounds drags
9171 slackX: 0,
9172 slackY: 0,
9173 // Can only determine if SVG after mounting
9174 isElementSVG: false
9175 };
9176 if (props.position && !(props.onDrag || props.onStop)) {
9177 // eslint-disable-next-line no-console
9178 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.');
9179 }
9180 }
9181 componentDidMount() {
9182 // Check to see if the element passed is an instanceof SVGElement
9183 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
9184 this.setState({
9185 isElementSVG: true
9186 });
9187 }
9188 }
9189 componentWillUnmount() {
9190 this.setState({
9191 dragging: false
9192 }); // prevents invariant if unmounted while dragging
9193 }
9194
9195 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9196 // the underlying DOM node ourselves. See the README for more information.
9197 findDOMNode() /*: ?HTMLElement*/{
9198 var _this$props$nodeRef$c, _this$props;
9199 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);
9200 }
9201 render() /*: ReactElement<any>*/{
9202 const {
9203 axis,
9204 bounds,
9205 children,
9206 defaultPosition,
9207 defaultClassName,
9208 defaultClassNameDragging,
9209 defaultClassNameDragged,
9210 position,
9211 positionOffset,
9212 scale,
9213 ...draggableCoreProps
9214 } = this.props;
9215 let style = {};
9216 let svgTransform = null;
9217
9218 // If this is controlled, we don't want to move it - unless it's dragging.
9219 const controlled = Boolean(position);
9220 const draggable = !controlled || this.state.dragging;
9221 const validPosition = position || defaultPosition;
9222 const transformOpts = {
9223 // Set left if horizontal drag is enabled
9224 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
9225 // Set top if vertical drag is enabled
9226 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
9227 };
9228
9229 // If this element was SVG, we use the `transform` attribute.
9230 if (this.state.isElementSVG) {
9231 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
9232 } else {
9233 // Add a CSS transform to move the element around. This allows us to move the element around
9234 // without worrying about whether or not it is relatively or absolutely positioned.
9235 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
9236 // has a clean slate.
9237 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
9238 }
9239
9240 // Mark with class while dragging
9241 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
9242 [defaultClassNameDragging]: this.state.dragging,
9243 [defaultClassNameDragged]: this.state.dragged
9244 });
9245
9246 // Reuse the child provided
9247 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9248 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
9249 onStart: this.onDragStart,
9250 onDrag: this.onDrag,
9251 onStop: this.onDragStop
9252 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
9253 className: className,
9254 style: {
9255 ...children.props.style,
9256 ...style
9257 },
9258 transform: svgTransform
9259 }));
9260 }
9261 }
9262 exports["default"] = Draggable;
9263 _defineProperty(Draggable, "displayName", 'Draggable');
9264 _defineProperty(Draggable, "propTypes", {
9265 // Accepts all props <DraggableCore> accepts.
9266 ..._DraggableCore.default.propTypes,
9267 /**
9268 * `axis` determines which axis the draggable can move.
9269 *
9270 * Note that all callbacks will still return data as normal. This only
9271 * controls flushing to the DOM.
9272 *
9273 * 'both' allows movement horizontally and vertically.
9274 * 'x' limits movement to horizontal axis.
9275 * 'y' limits movement to vertical axis.
9276 * 'none' limits all movement.
9277 *
9278 * Defaults to 'both'.
9279 */
9280 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
9281 /**
9282 * `bounds` determines the range of movement available to the element.
9283 * Available values are:
9284 *
9285 * 'parent' restricts movement within the Draggable's parent node.
9286 *
9287 * Alternatively, pass an object with the following properties, all of which are optional:
9288 *
9289 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
9290 *
9291 * All values are in px.
9292 *
9293 * Example:
9294 *
9295 * ```jsx
9296 * let App = React.createClass({
9297 * render: function () {
9298 * return (
9299 * <Draggable bounds={{right: 300, bottom: 300}}>
9300 * <div>Content</div>
9301 * </Draggable>
9302 * );
9303 * }
9304 * });
9305 * ```
9306 */
9307 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
9308 left: _propTypes.default.number,
9309 right: _propTypes.default.number,
9310 top: _propTypes.default.number,
9311 bottom: _propTypes.default.number
9312 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
9313 defaultClassName: _propTypes.default.string,
9314 defaultClassNameDragging: _propTypes.default.string,
9315 defaultClassNameDragged: _propTypes.default.string,
9316 /**
9317 * `defaultPosition` specifies the x and y that the dragged item should start at
9318 *
9319 * Example:
9320 *
9321 * ```jsx
9322 * let App = React.createClass({
9323 * render: function () {
9324 * return (
9325 * <Draggable defaultPosition={{x: 25, y: 25}}>
9326 * <div>I start with transformX: 25px and transformY: 25px;</div>
9327 * </Draggable>
9328 * );
9329 * }
9330 * });
9331 * ```
9332 */
9333 defaultPosition: _propTypes.default.shape({
9334 x: _propTypes.default.number,
9335 y: _propTypes.default.number
9336 }),
9337 positionOffset: _propTypes.default.shape({
9338 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
9339 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
9340 }),
9341 /**
9342 * `position`, if present, defines the current position of the element.
9343 *
9344 * This is similar to how form elements in React work - if no `position` is supplied, the component
9345 * is uncontrolled.
9346 *
9347 * Example:
9348 *
9349 * ```jsx
9350 * let App = React.createClass({
9351 * render: function () {
9352 * return (
9353 * <Draggable position={{x: 25, y: 25}}>
9354 * <div>I start with transformX: 25px and transformY: 25px;</div>
9355 * </Draggable>
9356 * );
9357 * }
9358 * });
9359 * ```
9360 */
9361 position: _propTypes.default.shape({
9362 x: _propTypes.default.number,
9363 y: _propTypes.default.number
9364 }),
9365 /**
9366 * These properties should be defined on the child, not here.
9367 */
9368 className: _shims.dontSetMe,
9369 style: _shims.dontSetMe,
9370 transform: _shims.dontSetMe
9371 });
9372 _defineProperty(Draggable, "defaultProps", {
9373 ..._DraggableCore.default.defaultProps,
9374 axis: 'both',
9375 bounds: false,
9376 defaultClassName: 'react-draggable',
9377 defaultClassNameDragging: 'react-draggable-dragging',
9378 defaultClassNameDragged: 'react-draggable-dragged',
9379 defaultPosition: {
9380 x: 0,
9381 y: 0
9382 },
9383 scale: 1
9384 });
9385
9386 /***/ }),
9387
9388 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
9389 /*!******************************************************************!*\
9390 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
9391 \******************************************************************/
9392 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9393
9394 "use strict";
9395
9396
9397 Object.defineProperty(exports, "__esModule", ({
9398 value: true
9399 }));
9400 exports["default"] = void 0;
9401 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9402 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9403 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9404 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9405 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9406 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9407 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9408 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9409 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); }
9410 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; }
9411 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; }
9412 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9413 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); }
9414 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
9415 /*:: import type {Element as ReactElement} from 'react';*/
9416 // Simple abstraction for dragging events names.
9417 const eventsFor = {
9418 touch: {
9419 start: 'touchstart',
9420 move: 'touchmove',
9421 stop: 'touchend'
9422 },
9423 mouse: {
9424 start: 'mousedown',
9425 move: 'mousemove',
9426 stop: 'mouseup'
9427 }
9428 };
9429
9430 // Default to mouse events.
9431 let dragEventFor = eventsFor.mouse;
9432 /*:: export type DraggableData = {
9433 node: HTMLElement,
9434 x: number, y: number,
9435 deltaX: number, deltaY: number,
9436 lastX: number, lastY: number,
9437 };*/
9438 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
9439 /*:: export type ControlPosition = {x: number, y: number};*/
9440 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
9441 /*:: export type DraggableCoreDefaultProps = {
9442 allowAnyClick: boolean,
9443 disabled: boolean,
9444 enableUserSelectHack: boolean,
9445 onStart: DraggableEventHandler,
9446 onDrag: DraggableEventHandler,
9447 onStop: DraggableEventHandler,
9448 onMouseDown: (e: MouseEvent) => void,
9449 scale: number,
9450 };*/
9451 /*:: export type DraggableCoreProps = {
9452 ...DraggableCoreDefaultProps,
9453 cancel: string,
9454 children: ReactElement<any>,
9455 offsetParent: HTMLElement,
9456 grid: [number, number],
9457 handle: string,
9458 nodeRef?: ?React.ElementRef<any>,
9459 };*/
9460 //
9461 // Define <DraggableCore>.
9462 //
9463 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
9464 // work well with libraries that require more control over the element.
9465 //
9466
9467 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
9468 constructor() {
9469 super(...arguments);
9470 _defineProperty(this, "dragging", false);
9471 // Used while dragging to determine deltas.
9472 _defineProperty(this, "lastX", NaN);
9473 _defineProperty(this, "lastY", NaN);
9474 _defineProperty(this, "touchIdentifier", null);
9475 _defineProperty(this, "mounted", false);
9476 _defineProperty(this, "handleDragStart", e => {
9477 // Make it possible to attach event handlers on top of this one.
9478 this.props.onMouseDown(e);
9479
9480 // Only accept left-clicks.
9481 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
9482
9483 // Get nodes. Be sure to grab relative document (could be iframed)
9484 const thisNode = this.findDOMNode();
9485 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
9486 throw new Error('<DraggableCore> not mounted on DragStart!');
9487 }
9488 const {
9489 ownerDocument
9490 } = thisNode;
9491
9492 // Short circuit if handle or cancel prop was provided and selector doesn't match.
9493 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)) {
9494 return;
9495 }
9496
9497 // Prevent scrolling on mobile devices, like ipad/iphone.
9498 // Important that this is after handle/cancel.
9499 if (e.type === 'touchstart') e.preventDefault();
9500
9501 // Set touch identifier in component state if this is a touch event. This allows us to
9502 // distinguish between individual touches on multitouch screens by identifying which
9503 // touchpoint was set to this element.
9504 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
9505 this.touchIdentifier = touchIdentifier;
9506
9507 // Get the current drag point from the event. This is used as the offset.
9508 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
9509 if (position == null) return; // not possible but satisfies flow
9510 const {
9511 x,
9512 y
9513 } = position;
9514
9515 // Create an event object with all the data parents need to make a decision here.
9516 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9517 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
9518
9519 // Call event handler. If it returns explicit false, cancel.
9520 (0, _log.default)('calling', this.props.onStart);
9521 const shouldUpdate = this.props.onStart(e, coreEvent);
9522 if (shouldUpdate === false || this.mounted === false) return;
9523
9524 // Add a style to the body to disable user-select. This prevents text from
9525 // being selected all over the page.
9526 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
9527
9528 // Initiate dragging. Set the current x and y as offsets
9529 // so we know how much we've moved during the drag. This allows us
9530 // to drag elements around even if they have been moved, without issue.
9531 this.dragging = true;
9532 this.lastX = x;
9533 this.lastY = y;
9534
9535 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
9536 // this element. We use different events depending on whether or not we have detected that this
9537 // is a touch-capable device.
9538 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
9539 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
9540 });
9541 _defineProperty(this, "handleDrag", e => {
9542 // Get the current drag point from the event. This is used as the offset.
9543 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9544 if (position == null) return;
9545 let {
9546 x,
9547 y
9548 } = position;
9549
9550 // Snap to grid if prop has been provided
9551 if (Array.isArray(this.props.grid)) {
9552 let deltaX = x - this.lastX,
9553 deltaY = y - this.lastY;
9554 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9555 if (!deltaX && !deltaY) return; // skip useless drag
9556 x = this.lastX + deltaX, y = this.lastY + deltaY;
9557 }
9558 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9559 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
9560
9561 // Call event handler. If it returns explicit false, trigger end.
9562 const shouldUpdate = this.props.onDrag(e, coreEvent);
9563 if (shouldUpdate === false || this.mounted === false) {
9564 try {
9565 // $FlowIgnore
9566 this.handleDragStop(new MouseEvent('mouseup'));
9567 } catch (err) {
9568 // Old browsers
9569 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
9570 // I see why this insanity was deprecated
9571 // $FlowIgnore
9572 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
9573 this.handleDragStop(event);
9574 }
9575 return;
9576 }
9577 this.lastX = x;
9578 this.lastY = y;
9579 });
9580 _defineProperty(this, "handleDragStop", e => {
9581 if (!this.dragging) return;
9582 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9583 if (position == null) return;
9584 let {
9585 x,
9586 y
9587 } = position;
9588
9589 // Snap to grid if prop has been provided
9590 if (Array.isArray(this.props.grid)) {
9591 let deltaX = x - this.lastX || 0;
9592 let deltaY = y - this.lastY || 0;
9593 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9594 x = this.lastX + deltaX, y = this.lastY + deltaY;
9595 }
9596 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9597
9598 // Call event handler
9599 const shouldContinue = this.props.onStop(e, coreEvent);
9600 if (shouldContinue === false || this.mounted === false) return false;
9601 const thisNode = this.findDOMNode();
9602 if (thisNode) {
9603 // Remove user-select hack
9604 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
9605 }
9606 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
9607
9608 // Reset the el.
9609 this.dragging = false;
9610 this.lastX = NaN;
9611 this.lastY = NaN;
9612 if (thisNode) {
9613 // Remove event handlers
9614 (0, _log.default)('DraggableCore: Removing handlers');
9615 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
9616 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
9617 }
9618 });
9619 _defineProperty(this, "onMouseDown", e => {
9620 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
9621
9622 return this.handleDragStart(e);
9623 });
9624 _defineProperty(this, "onMouseUp", e => {
9625 dragEventFor = eventsFor.mouse;
9626 return this.handleDragStop(e);
9627 });
9628 // Same as onMouseDown (start drag), but now consider this a touch device.
9629 _defineProperty(this, "onTouchStart", e => {
9630 // We're on a touch device now, so change the event handlers
9631 dragEventFor = eventsFor.touch;
9632 return this.handleDragStart(e);
9633 });
9634 _defineProperty(this, "onTouchEnd", e => {
9635 // We're on a touch device now, so change the event handlers
9636 dragEventFor = eventsFor.touch;
9637 return this.handleDragStop(e);
9638 });
9639 }
9640 componentDidMount() {
9641 this.mounted = true;
9642 // Touch handlers must be added with {passive: false} to be cancelable.
9643 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9644 const thisNode = this.findDOMNode();
9645 if (thisNode) {
9646 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9647 passive: false
9648 });
9649 }
9650 }
9651 componentWillUnmount() {
9652 this.mounted = false;
9653 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
9654 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
9655 const thisNode = this.findDOMNode();
9656 if (thisNode) {
9657 const {
9658 ownerDocument
9659 } = thisNode;
9660 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
9661 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
9662 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
9663 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
9664 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9665 passive: false
9666 });
9667 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
9668 }
9669 }
9670
9671 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9672 // the underlying DOM node ourselves. See the README for more information.
9673 findDOMNode() /*: ?HTMLElement*/{
9674 var _this$props, _this$props2;
9675 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);
9676 }
9677 render() /*: React.Element<any>*/{
9678 // Reuse the child provided
9679 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9680 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
9681 // Note: mouseMove handler is attached to document so it will still function
9682 // when the user drags quickly and leaves the bounds of the element.
9683 onMouseDown: this.onMouseDown,
9684 onMouseUp: this.onMouseUp,
9685 // onTouchStart is added on `componentDidMount` so they can be added with
9686 // {passive: false}, which allows it to cancel. See
9687 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9688 onTouchEnd: this.onTouchEnd
9689 });
9690 }
9691 }
9692 exports["default"] = DraggableCore;
9693 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
9694 _defineProperty(DraggableCore, "propTypes", {
9695 /**
9696 * `allowAnyClick` allows dragging using any mouse button.
9697 * By default, we only accept the left button.
9698 *
9699 * Defaults to `false`.
9700 */
9701 allowAnyClick: _propTypes.default.bool,
9702 children: _propTypes.default.node.isRequired,
9703 /**
9704 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
9705 * with the exception of `onMouseDown`, will not fire.
9706 */
9707 disabled: _propTypes.default.bool,
9708 /**
9709 * By default, we add 'user-select:none' attributes to the document body
9710 * to prevent ugly text selection during drag. If this is causing problems
9711 * for your app, set this to `false`.
9712 */
9713 enableUserSelectHack: _propTypes.default.bool,
9714 /**
9715 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
9716 * instead of using the parent node.
9717 */
9718 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
9719 if (props[propName] && props[propName].nodeType !== 1) {
9720 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
9721 }
9722 },
9723 /**
9724 * `grid` specifies the x and y that dragging should snap to.
9725 */
9726 grid: _propTypes.default.arrayOf(_propTypes.default.number),
9727 /**
9728 * `handle` specifies a selector to be used as the handle that initiates drag.
9729 *
9730 * Example:
9731 *
9732 * ```jsx
9733 * let App = React.createClass({
9734 * render: function () {
9735 * return (
9736 * <Draggable handle=".handle">
9737 * <div>
9738 * <div className="handle">Click me to drag</div>
9739 * <div>This is some other content</div>
9740 * </div>
9741 * </Draggable>
9742 * );
9743 * }
9744 * });
9745 * ```
9746 */
9747 handle: _propTypes.default.string,
9748 /**
9749 * `cancel` specifies a selector to be used to prevent drag initialization.
9750 *
9751 * Example:
9752 *
9753 * ```jsx
9754 * let App = React.createClass({
9755 * render: function () {
9756 * return(
9757 * <Draggable cancel=".cancel">
9758 * <div>
9759 * <div className="cancel">You can't drag from here</div>
9760 * <div>Dragging here works fine</div>
9761 * </div>
9762 * </Draggable>
9763 * );
9764 * }
9765 * });
9766 * ```
9767 */
9768 cancel: _propTypes.default.string,
9769 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
9770 * Unfortunately, in order for <Draggable> to work properly, we need raw access
9771 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
9772 * as in this example:
9773 *
9774 * function MyComponent() {
9775 * const nodeRef = React.useRef(null);
9776 * return (
9777 * <Draggable nodeRef={nodeRef}>
9778 * <div ref={nodeRef}>Example Target</div>
9779 * </Draggable>
9780 * );
9781 * }
9782 *
9783 * This can be used for arbitrarily nested components, so long as the ref ends up
9784 * pointing to the actual child DOM node and not a custom component.
9785 */
9786 nodeRef: _propTypes.default.object,
9787 /**
9788 * Called when dragging starts.
9789 * If this function returns the boolean false, dragging will be canceled.
9790 */
9791 onStart: _propTypes.default.func,
9792 /**
9793 * Called while dragging.
9794 * If this function returns the boolean false, dragging will be canceled.
9795 */
9796 onDrag: _propTypes.default.func,
9797 /**
9798 * Called when dragging stops.
9799 * If this function returns the boolean false, the drag will remain active.
9800 */
9801 onStop: _propTypes.default.func,
9802 /**
9803 * A workaround option which can be passed if onMouseDown needs to be accessed,
9804 * since it'll always be blocked (as there is internal use of onMouseDown)
9805 */
9806 onMouseDown: _propTypes.default.func,
9807 /**
9808 * `scale`, if set, applies scaling while dragging an element
9809 */
9810 scale: _propTypes.default.number,
9811 /**
9812 * These properties should be defined on the child, not here.
9813 */
9814 className: _shims.dontSetMe,
9815 style: _shims.dontSetMe,
9816 transform: _shims.dontSetMe
9817 });
9818 _defineProperty(DraggableCore, "defaultProps", {
9819 allowAnyClick: false,
9820 // by default only accept left click
9821 disabled: false,
9822 enableUserSelectHack: true,
9823 onStart: function () {},
9824 onDrag: function () {},
9825 onStop: function () {},
9826 onMouseDown: function () {},
9827 scale: 1
9828 });
9829
9830 /***/ }),
9831
9832 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
9833 /*!********************************************************!*\
9834 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
9835 \********************************************************/
9836 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9837
9838 "use strict";
9839
9840
9841 const {
9842 default: Draggable,
9843 DraggableCore
9844 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
9845
9846 // 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'.
9847 // See https://github.com/mzabriskie/react-draggable/pull/254
9848 // and https://github.com/mzabriskie/react-draggable/issues/266
9849 module.exports = Draggable;
9850 module.exports["default"] = Draggable;
9851 module.exports.DraggableCore = DraggableCore;
9852
9853 /***/ }),
9854
9855 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
9856 /*!*****************************************************************!*\
9857 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
9858 \*****************************************************************/
9859 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9860
9861 "use strict";
9862
9863
9864 Object.defineProperty(exports, "__esModule", ({
9865 value: true
9866 }));
9867 exports.addClassName = addClassName;
9868 exports.addEvent = addEvent;
9869 exports.addUserSelectStyles = addUserSelectStyles;
9870 exports.createCSSTransform = createCSSTransform;
9871 exports.createSVGTransform = createSVGTransform;
9872 exports.getTouch = getTouch;
9873 exports.getTouchIdentifier = getTouchIdentifier;
9874 exports.getTranslation = getTranslation;
9875 exports.innerHeight = innerHeight;
9876 exports.innerWidth = innerWidth;
9877 exports.matchesSelector = matchesSelector;
9878 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
9879 exports.offsetXYFromParent = offsetXYFromParent;
9880 exports.outerHeight = outerHeight;
9881 exports.outerWidth = outerWidth;
9882 exports.removeClassName = removeClassName;
9883 exports.removeEvent = removeEvent;
9884 exports.removeUserSelectStyles = removeUserSelectStyles;
9885 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9886 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
9887 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); }
9888 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; }
9889 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
9890 let matchesSelectorFunc = '';
9891 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
9892 if (!matchesSelectorFunc) {
9893 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
9894 // $FlowIgnore: Doesn't think elements are indexable
9895 return (0, _shims.isFunction)(el[method]);
9896 });
9897 }
9898
9899 // Might not be found entirely (not an Element?) - in that case, bail
9900 // $FlowIgnore: Doesn't think elements are indexable
9901 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
9902
9903 // $FlowIgnore: Doesn't think elements are indexable
9904 return el[matchesSelectorFunc](selector);
9905 }
9906
9907 // Works up the tree to the draggable itself attempting to match selector.
9908 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
9909 let node = el;
9910 do {
9911 if (matchesSelector(node, selector)) return true;
9912 if (node === baseNode) return false;
9913 // $FlowIgnore[incompatible-type]
9914 node = node.parentNode;
9915 } while (node);
9916 return false;
9917 }
9918 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9919 if (!el) return;
9920 const options = {
9921 capture: true,
9922 ...inputOptions
9923 };
9924 // $FlowIgnore[method-unbinding]
9925 if (el.addEventListener) {
9926 el.addEventListener(event, handler, options);
9927 } else if (el.attachEvent) {
9928 el.attachEvent('on' + event, handler);
9929 } else {
9930 // $FlowIgnore: Doesn't think elements are indexable
9931 el['on' + event] = handler;
9932 }
9933 }
9934 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9935 if (!el) return;
9936 const options = {
9937 capture: true,
9938 ...inputOptions
9939 };
9940 // $FlowIgnore[method-unbinding]
9941 if (el.removeEventListener) {
9942 el.removeEventListener(event, handler, options);
9943 } else if (el.detachEvent) {
9944 el.detachEvent('on' + event, handler);
9945 } else {
9946 // $FlowIgnore: Doesn't think elements are indexable
9947 el['on' + event] = null;
9948 }
9949 }
9950 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9951 // This is deliberately excluding margin for our calculations, since we are using
9952 // offsetTop which is including margin. See getBoundPosition
9953 let height = node.clientHeight;
9954 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9955 height += (0, _shims.int)(computedStyle.borderTopWidth);
9956 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9957 return height;
9958 }
9959 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9960 // This is deliberately excluding margin for our calculations, since we are using
9961 // offsetLeft which is including margin. See getBoundPosition
9962 let width = node.clientWidth;
9963 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9964 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9965 width += (0, _shims.int)(computedStyle.borderRightWidth);
9966 return width;
9967 }
9968 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9969 let height = node.clientHeight;
9970 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9971 height -= (0, _shims.int)(computedStyle.paddingTop);
9972 height -= (0, _shims.int)(computedStyle.paddingBottom);
9973 return height;
9974 }
9975 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9976 let width = node.clientWidth;
9977 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9978 width -= (0, _shims.int)(computedStyle.paddingLeft);
9979 width -= (0, _shims.int)(computedStyle.paddingRight);
9980 return width;
9981 }
9982 /*:: interface EventWithOffset {
9983 clientX: number, clientY: number
9984 }*/
9985 // Get from offsetParent
9986 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9987 const isBody = offsetParent === offsetParent.ownerDocument.body;
9988 const offsetParentRect = isBody ? {
9989 left: 0,
9990 top: 0
9991 } : offsetParent.getBoundingClientRect();
9992 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9993 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9994 return {
9995 x,
9996 y
9997 };
9998 }
9999 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
10000 const translation = getTranslation(controlPos, positionOffset, 'px');
10001 return {
10002 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
10003 };
10004 }
10005 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
10006 const translation = getTranslation(controlPos, positionOffset, '');
10007 return translation;
10008 }
10009 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
10010 let {
10011 x,
10012 y
10013 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
10014 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
10015 if (positionOffset) {
10016 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
10017 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
10018 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
10019 }
10020 return translation;
10021 }
10022 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
10023 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
10024 }
10025 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
10026 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
10027 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
10028 }
10029
10030 // User-select Hacks:
10031 //
10032 // Useful for preventing blue highlights all over everything when dragging.
10033
10034 // Note we're passing `document` b/c we could be iframed
10035 function addUserSelectStyles(doc /*: ?Document*/) {
10036 if (!doc) return;
10037 let styleEl = doc.getElementById('react-draggable-style-el');
10038 if (!styleEl) {
10039 styleEl = doc.createElement('style');
10040 styleEl.type = 'text/css';
10041 styleEl.id = 'react-draggable-style-el';
10042 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
10043 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
10044 doc.getElementsByTagName('head')[0].appendChild(styleEl);
10045 }
10046 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
10047 }
10048 function removeUserSelectStyles(doc /*: ?Document*/) {
10049 if (!doc) return;
10050 try {
10051 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
10052 // $FlowIgnore: IE
10053 if (doc.selection) {
10054 // $FlowIgnore: IE
10055 doc.selection.empty();
10056 } else {
10057 // Remove selection caused by scroll, unless it's a focused input
10058 // (we use doc.defaultView in case we're in an iframe)
10059 const selection = (doc.defaultView || window).getSelection();
10060 if (selection && selection.type !== 'Caret') {
10061 selection.removeAllRanges();
10062 }
10063 }
10064 } catch (e) {
10065 // probably IE
10066 }
10067 }
10068 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
10069 if (el.classList) {
10070 el.classList.add(className);
10071 } else {
10072 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
10073 el.className += " ".concat(className);
10074 }
10075 }
10076 }
10077 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
10078 if (el.classList) {
10079 el.classList.remove(className);
10080 } else {
10081 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
10082 }
10083 }
10084
10085 /***/ }),
10086
10087 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
10088 /*!********************************************************************!*\
10089 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
10090 \********************************************************************/
10091 /***/ ((__unused_webpack_module, exports) => {
10092
10093 "use strict";
10094
10095
10096 Object.defineProperty(exports, "__esModule", ({
10097 value: true
10098 }));
10099 exports.browserPrefixToKey = browserPrefixToKey;
10100 exports.browserPrefixToStyle = browserPrefixToStyle;
10101 exports["default"] = void 0;
10102 exports.getPrefix = getPrefix;
10103 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
10104 function getPrefix() /*: string*/{
10105 var _window$document;
10106 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
10107 // Ensure we're running in an environment where there is actually a global
10108 // `window` obj
10109 if (typeof window === 'undefined') return '';
10110
10111 // If we're in a pseudo-browser server-side environment, this access
10112 // path may not exist, so bail out if it doesn't.
10113 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;
10114 if (!style) return '';
10115 if (prop in style) return '';
10116 for (let i = 0; i < prefixes.length; i++) {
10117 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
10118 }
10119 return '';
10120 }
10121 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
10122 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
10123 }
10124 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
10125 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
10126 }
10127 function kebabToTitleCase(str /*: string*/) /*: string*/{
10128 let out = '';
10129 let shouldCapitalize = true;
10130 for (let i = 0; i < str.length; i++) {
10131 if (shouldCapitalize) {
10132 out += str[i].toUpperCase();
10133 shouldCapitalize = false;
10134 } else if (str[i] === '-') {
10135 shouldCapitalize = true;
10136 } else {
10137 out += str[i];
10138 }
10139 }
10140 return out;
10141 }
10142
10143 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
10144 // Note that you may have to re-test for certain things; for instance, Chrome 50
10145 // can handle unprefixed `transform`, but not unprefixed `user-select`
10146 var _default = exports["default"] = (getPrefix() /*: string*/);
10147
10148 /***/ }),
10149
10150 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
10151 /*!**************************************************************!*\
10152 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
10153 \**************************************************************/
10154 /***/ ((__unused_webpack_module, exports) => {
10155
10156 "use strict";
10157
10158
10159 Object.defineProperty(exports, "__esModule", ({
10160 value: true
10161 }));
10162 exports["default"] = log;
10163 /*eslint no-console:0*/
10164 function log() {
10165 if (false) // removed by dead control flow
10166 {}
10167 }
10168
10169 /***/ }),
10170
10171 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
10172 /*!**********************************************************************!*\
10173 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
10174 \**********************************************************************/
10175 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10176
10177 "use strict";
10178
10179
10180 Object.defineProperty(exports, "__esModule", ({
10181 value: true
10182 }));
10183 exports.canDragX = canDragX;
10184 exports.canDragY = canDragY;
10185 exports.createCoreData = createCoreData;
10186 exports.createDraggableData = createDraggableData;
10187 exports.getBoundPosition = getBoundPosition;
10188 exports.getControlPosition = getControlPosition;
10189 exports.snapToGrid = snapToGrid;
10190 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
10191 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
10192 /*:: import type Draggable from '../Draggable';*/
10193 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
10194 /*:: import type DraggableCore from '../DraggableCore';*/
10195 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
10196 // If no bounds, short-circuit and move on
10197 if (!draggable.props.bounds) return [x, y];
10198
10199 // Clone new bounds
10200 let {
10201 bounds
10202 } = draggable.props;
10203 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
10204 const node = findDOMNode(draggable);
10205 if (typeof bounds === 'string') {
10206 const {
10207 ownerDocument
10208 } = node;
10209 const ownerWindow = ownerDocument.defaultView;
10210 let boundNode;
10211 if (bounds === 'parent') {
10212 boundNode = node.parentNode;
10213 } else {
10214 boundNode = ownerDocument.querySelector(bounds);
10215 }
10216 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
10217 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
10218 }
10219 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
10220 const nodeStyle = ownerWindow.getComputedStyle(node);
10221 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
10222 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
10223 bounds = {
10224 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
10225 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
10226 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
10227 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
10228 };
10229 }
10230
10231 // Keep x and y below right and bottom limits...
10232 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
10233 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
10234
10235 // But above left and top limits.
10236 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
10237 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
10238 return [x, y];
10239 }
10240 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
10241 const x = Math.round(pendingX / grid[0]) * grid[0];
10242 const y = Math.round(pendingY / grid[1]) * grid[1];
10243 return [x, y];
10244 }
10245 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
10246 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
10247 }
10248 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
10249 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
10250 }
10251
10252 // Get {x, y} positions from event.
10253 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
10254 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
10255 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
10256 const node = findDOMNode(draggableCore);
10257 // User can provide an offsetParent if desired.
10258 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
10259 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
10260 }
10261
10262 // Create an data object exposed by <DraggableCore>'s events
10263 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
10264 const isStart = !(0, _shims.isNum)(draggable.lastX);
10265 const node = findDOMNode(draggable);
10266 if (isStart) {
10267 // If this is our first move, use the x and y as last coords.
10268 return {
10269 node,
10270 deltaX: 0,
10271 deltaY: 0,
10272 lastX: x,
10273 lastY: y,
10274 x,
10275 y
10276 };
10277 } else {
10278 // Otherwise calculate proper values.
10279 return {
10280 node,
10281 deltaX: x - draggable.lastX,
10282 deltaY: y - draggable.lastY,
10283 lastX: draggable.lastX,
10284 lastY: draggable.lastY,
10285 x,
10286 y
10287 };
10288 }
10289 }
10290
10291 // Create an data exposed by <Draggable>'s events
10292 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
10293 const scale = draggable.props.scale;
10294 return {
10295 node: coreData.node,
10296 x: draggable.state.x + coreData.deltaX / scale,
10297 y: draggable.state.y + coreData.deltaY / scale,
10298 deltaX: coreData.deltaX / scale,
10299 deltaY: coreData.deltaY / scale,
10300 lastX: draggable.state.x,
10301 lastY: draggable.state.y
10302 };
10303 }
10304
10305 // A lot faster than stringify/parse
10306 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
10307 return {
10308 left: bounds.left,
10309 top: bounds.top,
10310 right: bounds.right,
10311 bottom: bounds.bottom
10312 };
10313 }
10314 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
10315 const node = draggable.findDOMNode();
10316 if (!node) {
10317 throw new Error('<DraggableCore>: Unmounted during event!');
10318 }
10319 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
10320 return node;
10321 }
10322
10323 /***/ }),
10324
10325 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
10326 /*!****************************************************************!*\
10327 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
10328 \****************************************************************/
10329 /***/ ((__unused_webpack_module, exports) => {
10330
10331 "use strict";
10332
10333
10334 Object.defineProperty(exports, "__esModule", ({
10335 value: true
10336 }));
10337 exports.dontSetMe = dontSetMe;
10338 exports.findInArray = findInArray;
10339 exports.int = int;
10340 exports.isFunction = isFunction;
10341 exports.isNum = isNum;
10342 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
10343 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
10344 for (let i = 0, length = array.length; i < length; i++) {
10345 if (callback.apply(callback, [array[i], i, array])) return array[i];
10346 }
10347 }
10348 function isFunction(func /*: any*/) /*: boolean %checks*/{
10349 // $FlowIgnore[method-unbinding]
10350 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
10351 }
10352 function isNum(num /*: any*/) /*: boolean %checks*/{
10353 return typeof num === 'number' && !isNaN(num);
10354 }
10355 function int(a /*: string*/) /*: number*/{
10356 return parseInt(a, 10);
10357 }
10358 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
10359 if (props[propName]) {
10360 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
10361 }
10362 }
10363
10364 /***/ }),
10365
10366 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
10367 /*!************************************************************************!*\
10368 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
10369 \************************************************************************/
10370 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10371
10372 "use strict";
10373 __webpack_require__.r(__webpack_exports__);
10374 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10375 /* harmony export */ clsx: () => (/* binding */ clsx),
10376 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10377 /* harmony export */ });
10378 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);
10379
10380 /***/ }),
10381
10382 /***/ "../node_modules/validator/lib/isFQDN.js":
10383 /*!***********************************************!*\
10384 !*** ../node_modules/validator/lib/isFQDN.js ***!
10385 \***********************************************/
10386 /***/ ((module, exports, __webpack_require__) => {
10387
10388 "use strict";
10389
10390
10391 Object.defineProperty(exports, "__esModule", ({
10392 value: true
10393 }));
10394 exports["default"] = isFQDN;
10395 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10396 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10397 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10398 var default_fqdn_options = {
10399 require_tld: true,
10400 allow_underscores: false,
10401 allow_trailing_dot: false,
10402 allow_numeric_tld: false,
10403 allow_wildcard: false,
10404 ignore_max_length: false
10405 };
10406 function isFQDN(str, options) {
10407 (0, _assertString.default)(str);
10408 options = (0, _merge.default)(options, default_fqdn_options);
10409
10410 /* Remove the optional trailing dot before checking validity */
10411 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
10412 str = str.substring(0, str.length - 1);
10413 }
10414
10415 /* Remove the optional wildcard before checking validity */
10416 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
10417 str = str.substring(2);
10418 }
10419 var parts = str.split('.');
10420 var tld = parts[parts.length - 1];
10421 if (options.require_tld) {
10422 // disallow fqdns without tld
10423 if (parts.length < 2) {
10424 return false;
10425 }
10426 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
10427 return false;
10428 }
10429
10430 // disallow spaces
10431 if (/\s/.test(tld)) {
10432 return false;
10433 }
10434 }
10435
10436 // reject numeric TLDs
10437 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
10438 return false;
10439 }
10440 return parts.every(function (part) {
10441 if (part.length > 63 && !options.ignore_max_length) {
10442 return false;
10443 }
10444 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
10445 return false;
10446 }
10447
10448 // disallow full-width chars
10449 if (/[\uff01-\uff5e]/.test(part)) {
10450 return false;
10451 }
10452
10453 // disallow parts starting or ending with hyphen
10454 if (/^-|-$/.test(part)) {
10455 return false;
10456 }
10457 if (!options.allow_underscores && /_/.test(part)) {
10458 return false;
10459 }
10460 return true;
10461 });
10462 }
10463 module.exports = exports.default;
10464 module.exports["default"] = exports.default;
10465
10466 /***/ }),
10467
10468 /***/ "../node_modules/validator/lib/isIP.js":
10469 /*!*********************************************!*\
10470 !*** ../node_modules/validator/lib/isIP.js ***!
10471 \*********************************************/
10472 /***/ ((module, exports, __webpack_require__) => {
10473
10474 "use strict";
10475
10476
10477 Object.defineProperty(exports, "__esModule", ({
10478 value: true
10479 }));
10480 exports["default"] = isIP;
10481 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10482 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10483 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); }
10484 /**
10485 11.3. Examples
10486
10487 The following addresses
10488
10489 fe80::1234 (on the 1st link of the node)
10490 ff02::5678 (on the 5th link of the node)
10491 ff08::9abc (on the 10th organization of the node)
10492
10493 would be represented as follows:
10494
10495 fe80::1234%1
10496 ff02::5678%5
10497 ff08::9abc%10
10498
10499 (Here we assume a natural translation from a zone index to the
10500 <zone_id> part, where the Nth zone of any scope is translated into
10501 "N".)
10502
10503 If we use interface names as <zone_id>, those addresses could also be
10504 represented as follows:
10505
10506 fe80::1234%ne0
10507 ff02::5678%pvc1.3
10508 ff08::9abc%interface10
10509
10510 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
10511 to the 5th link, and "interface10" belongs to the 10th organization.
10512 * * */
10513 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
10514 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
10515 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
10516 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
10517 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,})?$');
10518 function isIP(ipAddress) {
10519 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10520 (0, _assertString.default)(ipAddress);
10521
10522 // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])
10523 // eslint-disable-next-line prefer-rest-params
10524 var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';
10525 if (!version) {
10526 return isIP(ipAddress, {
10527 version: 4
10528 }) || isIP(ipAddress, {
10529 version: 6
10530 });
10531 }
10532 if (version.toString() === '4') {
10533 return IPv4AddressRegExp.test(ipAddress);
10534 }
10535 if (version.toString() === '6') {
10536 return IPv6AddressRegExp.test(ipAddress);
10537 }
10538 return false;
10539 }
10540 module.exports = exports.default;
10541 module.exports["default"] = exports.default;
10542
10543 /***/ }),
10544
10545 /***/ "../node_modules/validator/lib/isURL.js":
10546 /*!**********************************************!*\
10547 !*** ../node_modules/validator/lib/isURL.js ***!
10548 \**********************************************/
10549 /***/ ((module, exports, __webpack_require__) => {
10550
10551 "use strict";
10552
10553
10554 Object.defineProperty(exports, "__esModule", ({
10555 value: true
10556 }));
10557 exports["default"] = isURL;
10558 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10559 var _checkHost = _interopRequireDefault(__webpack_require__(/*! ./util/checkHost */ "../node_modules/validator/lib/util/checkHost.js"));
10560 var _includesString = _interopRequireDefault(__webpack_require__(/*! ./util/includesString */ "../node_modules/validator/lib/util/includesString.js"));
10561 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
10562 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
10563 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10564 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10565 function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10566 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."); }
10567 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; } }
10568 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; }
10569 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; } }
10570 function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
10571 /*
10572 options for isURL method
10573
10574 protocols - valid protocols can be modified with this option.
10575 require_tld - If set to false isURL will not check if the URL's host includes a top-level domain.
10576 require_protocol - if set to true isURL will return false if protocol is not present in the URL.
10577 require_host - if set to false isURL will not check if host is present in the URL.
10578 require_port - if set to true isURL will check if port is present in the URL.
10579 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.
10580 allow_underscores - if set to true, the validator will allow underscores in the URL.
10581 host_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings
10582 defined in it, the validation fails.
10583 host_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings
10584 defined in it, the validation fails.
10585 allow_trailing_dot - if set to true, the validator will allow the domain to end with
10586 a `.` character.
10587 allow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.
10588 allow_fragments - if set to false isURL will return false if fragments are present.
10589 allow_query_components - if set to false isURL will return false if query components are present.
10590 disallow_auth - if set to true, the validator will fail if the URL contains an authentication
10591 component, e.g. `http://username:password@example.com`
10592 validate_length - if set to false isURL will skip string length validation. `max_allowed_length`
10593 will be ignored if this is set as `false`.
10594 max_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is
10595 2084 that IE maximum URL length).
10596
10597 */
10598
10599 var default_url_options = {
10600 protocols: ['http', 'https', 'ftp'],
10601 require_tld: true,
10602 require_protocol: false,
10603 require_host: true,
10604 require_port: false,
10605 require_valid_protocol: true,
10606 allow_underscores: false,
10607 allow_trailing_dot: false,
10608 allow_protocol_relative_urls: false,
10609 allow_fragments: true,
10610 allow_query_components: true,
10611 validate_length: true,
10612 max_allowed_length: 2084
10613 };
10614 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
10615 function isURL(url, options) {
10616 (0, _assertString.default)(url);
10617 if (!url || /[\s<>]/.test(url)) {
10618 return false;
10619 }
10620 if (url.indexOf('mailto:') === 0) {
10621 return false;
10622 }
10623 options = (0, _merge.default)(options, default_url_options);
10624 if (options.validate_length && url.length > options.max_allowed_length) {
10625 return false;
10626 }
10627 if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {
10628 return false;
10629 }
10630 if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {
10631 return false;
10632 }
10633 var protocol, auth, host, hostname, port, port_str, split, ipv6;
10634 split = url.split('#');
10635 url = split.shift();
10636 split = url.split('?');
10637 url = split.shift();
10638 split = url.split('://');
10639 if (split.length > 1) {
10640 protocol = split.shift().toLowerCase();
10641 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
10642 return false;
10643 }
10644 } else if (options.require_protocol) {
10645 return false;
10646 } else if (url.slice(0, 2) === '//') {
10647 if (!options.allow_protocol_relative_urls) {
10648 return false;
10649 }
10650 split[0] = url.slice(2);
10651 }
10652 url = split.join('://');
10653 if (url === '') {
10654 return false;
10655 }
10656 split = url.split('/');
10657 url = split.shift();
10658 if (url === '' && !options.require_host) {
10659 return true;
10660 }
10661 split = url.split('@');
10662 if (split.length > 1) {
10663 if (options.disallow_auth) {
10664 return false;
10665 }
10666 if (split[0] === '') {
10667 return false;
10668 }
10669 auth = split.shift();
10670 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
10671 return false;
10672 }
10673 var _auth$split = auth.split(':'),
10674 _auth$split2 = _slicedToArray(_auth$split, 2),
10675 user = _auth$split2[0],
10676 password = _auth$split2[1];
10677 if (user === '' && password === '') {
10678 return false;
10679 }
10680 }
10681 hostname = split.join('@');
10682 port_str = null;
10683 ipv6 = null;
10684 var ipv6_match = hostname.match(wrapped_ipv6);
10685 if (ipv6_match) {
10686 host = '';
10687 ipv6 = ipv6_match[1];
10688 port_str = ipv6_match[2] || null;
10689 } else {
10690 split = hostname.split(':');
10691 host = split.shift();
10692 if (split.length) {
10693 port_str = split.join(':');
10694 }
10695 }
10696 if (port_str !== null && port_str.length > 0) {
10697 port = parseInt(port_str, 10);
10698 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
10699 return false;
10700 }
10701 } else if (options.require_port) {
10702 return false;
10703 }
10704 if (options.host_whitelist) {
10705 return (0, _checkHost.default)(host, options.host_whitelist);
10706 }
10707 if (host === '' && !options.require_host) {
10708 return true;
10709 }
10710 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
10711 return false;
10712 }
10713 host = host || ipv6;
10714 if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
10715 return false;
10716 }
10717 return true;
10718 }
10719 module.exports = exports.default;
10720 module.exports["default"] = exports.default;
10721
10722 /***/ }),
10723
10724 /***/ "../node_modules/validator/lib/util/assertString.js":
10725 /*!**********************************************************!*\
10726 !*** ../node_modules/validator/lib/util/assertString.js ***!
10727 \**********************************************************/
10728 /***/ ((module, exports) => {
10729
10730 "use strict";
10731
10732
10733 Object.defineProperty(exports, "__esModule", ({
10734 value: true
10735 }));
10736 exports["default"] = assertString;
10737 function assertString(input) {
10738 if (input === undefined || input === null) throw new TypeError("Expected a string but received a ".concat(input));
10739 if (input.constructor.name !== 'String') throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
10740 }
10741 module.exports = exports.default;
10742 module.exports["default"] = exports.default;
10743
10744 /***/ }),
10745
10746 /***/ "../node_modules/validator/lib/util/checkHost.js":
10747 /*!*******************************************************!*\
10748 !*** ../node_modules/validator/lib/util/checkHost.js ***!
10749 \*******************************************************/
10750 /***/ ((module, exports) => {
10751
10752 "use strict";
10753
10754
10755 Object.defineProperty(exports, "__esModule", ({
10756 value: true
10757 }));
10758 exports["default"] = checkHost;
10759 function isRegExp(obj) {
10760 return Object.prototype.toString.call(obj) === '[object RegExp]';
10761 }
10762 function checkHost(host, matches) {
10763 for (var i = 0; i < matches.length; i++) {
10764 var match = matches[i];
10765 if (host === match || isRegExp(match) && match.test(host)) {
10766 return true;
10767 }
10768 }
10769 return false;
10770 }
10771 module.exports = exports.default;
10772 module.exports["default"] = exports.default;
10773
10774 /***/ }),
10775
10776 /***/ "../node_modules/validator/lib/util/includesString.js":
10777 /*!************************************************************!*\
10778 !*** ../node_modules/validator/lib/util/includesString.js ***!
10779 \************************************************************/
10780 /***/ ((module, exports) => {
10781
10782 "use strict";
10783
10784
10785 Object.defineProperty(exports, "__esModule", ({
10786 value: true
10787 }));
10788 exports["default"] = void 0;
10789 var includes = function includes(str, val) {
10790 return str.indexOf(val) !== -1;
10791 };
10792 var _default = exports["default"] = includes;
10793 module.exports = exports.default;
10794 module.exports["default"] = exports.default;
10795
10796 /***/ }),
10797
10798 /***/ "../node_modules/validator/lib/util/merge.js":
10799 /*!***************************************************!*\
10800 !*** ../node_modules/validator/lib/util/merge.js ***!
10801 \***************************************************/
10802 /***/ ((module, exports) => {
10803
10804 "use strict";
10805
10806
10807 Object.defineProperty(exports, "__esModule", ({
10808 value: true
10809 }));
10810 exports["default"] = merge;
10811 function merge() {
10812 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10813 var defaults = arguments.length > 1 ? arguments[1] : undefined;
10814 for (var key in defaults) {
10815 if (typeof obj[key] === 'undefined') {
10816 obj[key] = defaults[key];
10817 }
10818 }
10819 return obj;
10820 }
10821 module.exports = exports.default;
10822 module.exports["default"] = exports.default;
10823
10824 /***/ }),
10825
10826 /***/ "@elementor/icons":
10827 /*!************************************!*\
10828 !*** external "elementorV2.icons" ***!
10829 \************************************/
10830 /***/ ((module) => {
10831
10832 "use strict";
10833 module.exports = elementorV2.icons;
10834
10835 /***/ }),
10836
10837 /***/ "@elementor/ui":
10838 /*!*********************************!*\
10839 !*** external "elementorV2.ui" ***!
10840 \*********************************/
10841 /***/ ((module) => {
10842
10843 "use strict";
10844 module.exports = elementorV2.ui;
10845
10846 /***/ }),
10847
10848 /***/ "@wordpress/i18n":
10849 /*!**************************!*\
10850 !*** external "wp.i18n" ***!
10851 \**************************/
10852 /***/ ((module) => {
10853
10854 "use strict";
10855 module.exports = wp.i18n;
10856
10857 /***/ }),
10858
10859 /***/ "react":
10860 /*!************************!*\
10861 !*** external "React" ***!
10862 \************************/
10863 /***/ ((module) => {
10864
10865 "use strict";
10866 module.exports = React;
10867
10868 /***/ }),
10869
10870 /***/ "react-dom":
10871 /*!***************************!*\
10872 !*** external "ReactDOM" ***!
10873 \***************************/
10874 /***/ ((module) => {
10875
10876 "use strict";
10877 module.exports = ReactDOM;
10878
10879 /***/ })
10880
10881 /******/ });
10882 /************************************************************************/
10883 /******/ // The module cache
10884 /******/ var __webpack_module_cache__ = {};
10885 /******/
10886 /******/ // The require function
10887 /******/ function __webpack_require__(moduleId) {
10888 /******/ // Check if module is in cache
10889 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10890 /******/ if (cachedModule !== undefined) {
10891 /******/ return cachedModule.exports;
10892 /******/ }
10893 /******/ // Create a new module (and put it into the cache)
10894 /******/ var module = __webpack_module_cache__[moduleId] = {
10895 /******/ // no module.id needed
10896 /******/ // no module.loaded needed
10897 /******/ exports: {}
10898 /******/ };
10899 /******/
10900 /******/ // Execute the module function
10901 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10902 /******/
10903 /******/ // Return the exports of the module
10904 /******/ return module.exports;
10905 /******/ }
10906 /******/
10907 /************************************************************************/
10908 /******/ /* webpack/runtime/define property getters */
10909 /******/ (() => {
10910 /******/ // define getter functions for harmony exports
10911 /******/ __webpack_require__.d = (exports, definition) => {
10912 /******/ for(var key in definition) {
10913 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10914 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10915 /******/ }
10916 /******/ }
10917 /******/ };
10918 /******/ })();
10919 /******/
10920 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10921 /******/ (() => {
10922 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10923 /******/ })();
10924 /******/
10925 /******/ /* webpack/runtime/make namespace object */
10926 /******/ (() => {
10927 /******/ // define __esModule on exports
10928 /******/ __webpack_require__.r = (exports) => {
10929 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10930 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10931 /******/ }
10932 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10933 /******/ };
10934 /******/ })();
10935 /******/
10936 /************************************************************************/
10937 var __webpack_exports__ = {};
10938 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10939 (() => {
10940 "use strict";
10941 var exports = __webpack_exports__;
10942 /*!*******************************************************!*\
10943 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10944 \*******************************************************/
10945
10946
10947 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10948 Object.defineProperty(exports, "__esModule", ({
10949 value: true
10950 }));
10951 exports["default"] = exports.AI_ATTACHMENT = void 0;
10952 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10953 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10954 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10955 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10956 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10957 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10958 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10959 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10960 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10961 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10962 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10963 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10964 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"));
10965 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10966 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)); }
10967 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10968 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10969 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10970 function Module() {
10971 var _this;
10972 (0, _classCallCheck2.default)(this, Module);
10973 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10974 args[_key] = arguments[_key];
10975 }
10976 _this = _callSuper(this, Module, [].concat(args));
10977 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10978 var saveGroup = groups.find(function (group) {
10979 return 'save' === group.name;
10980 });
10981 if (!saveGroup) {
10982 return groups;
10983 }
10984 var contextMenu = {
10985 name: 'ai',
10986 icon: 'eicon-ai',
10987 isEnabled: function isEnabled() {
10988 return 0 !== currentElement.getContainer().children.length;
10989 },
10990 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10991 callback: function () {
10992 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10993 var container, json, attachments;
10994 return _regenerator.default.wrap(function (_context) {
10995 while (1) switch (_context.prev = _context.next) {
10996 case 0:
10997 container = currentElement.getContainer();
10998 json = container.model.toJSON({
10999 remove: ['default']
11000 });
11001 attachments = [{
11002 type: 'json',
11003 previewHTML: '',
11004 content: json,
11005 label: container.model.get('title'),
11006 source: _attachments.USER_VARIATION_SOURCE
11007 }];
11008 (0, _editorIntegration.renderLayoutApp)({
11009 parentContainer: container.parent,
11010 mode: _config.MODE_VARIATION,
11011 at: container.view._index,
11012 attachments: attachments,
11013 onSelect: function onSelect() {
11014 container.view.$el.hide();
11015 },
11016 onClose: function onClose() {
11017 container.view.$el.show();
11018 },
11019 onInsert: function onInsert(template) {
11020 (0, _editorIntegration.importToEditor)({
11021 parentContainer: container.parent,
11022 at: container.view._index,
11023 template: template,
11024 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
11025 replace: true
11026 });
11027 }
11028 });
11029 case 1:
11030 case "end":
11031 return _context.stop();
11032 }
11033 }, _callee);
11034 }));
11035 function callback() {
11036 return _callback.apply(this, arguments);
11037 }
11038 return callback;
11039 }()
11040 };
11041
11042 // Add on top of save group actions
11043 saveGroup.actions.unshift(contextMenu);
11044 return groups;
11045 });
11046 return _this;
11047 }
11048 (0, _inherits2.default)(Module, _elementorModules$edi);
11049 return (0, _createClass2.default)(Module, [{
11050 key: "onElementorInit",
11051 value: function onElementorInit() {
11052 var _this2 = this;
11053 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
11054 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
11055 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
11056 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
11057 $e.commands.register('library', 'generate-ai-variation', function (args) {
11058 return _this2.applyTemplate(args);
11059 });
11060 }
11061 }, {
11062 key: "applyTemplate",
11063 value: function applyTemplate(args) {
11064 window.postMessage({
11065 type: 'library/attach:start'
11066 });
11067 $e.components.get('library').downloadTemplate(args, function (data) {
11068 var model = args.model;
11069 window.postMessage({
11070 type: 'library/attach',
11071 json: data.content[0],
11072 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
11073 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
11074 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
11075 }, window.location.origin);
11076 });
11077 }
11078 }, {
11079 key: "registerLibraryActionButtonBehavior",
11080 value: function registerLibraryActionButtonBehavior(behaviors) {
11081 behaviors.applyAiTemplate = {
11082 behaviorClass: _applyTemplateForAiBehavior.default
11083 };
11084 return behaviors;
11085 }
11086 }, {
11087 key: "registerAiLayoutBehavior",
11088 value: function registerAiLayoutBehavior(behaviors) {
11089 behaviors.ai = {
11090 behaviorClass: _aiLayoutBehavior.default,
11091 context: {
11092 documentType: window.elementor.documents.getCurrent().config.type
11093 }
11094 };
11095 return behaviors;
11096 }
11097 }, {
11098 key: "filterLibraryActionButtonTemplate",
11099 value: function filterLibraryActionButtonTemplate(viewId) {
11100 var modalConfig = $e.components.get('library').manager.modalConfig;
11101 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
11102 if (originalCoreViewId !== viewId) {
11103 return viewId;
11104 }
11105 if ($e.routes.current.library !== 'library/templates/blocks') {
11106 return viewId;
11107 }
11108 if (AI_ATTACHMENT === modalConfig.mode) {
11109 viewId = '#tmpl-elementor-template-library-apply-ai-button';
11110 } else {
11111 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
11112 }
11113 return viewId;
11114 }
11115 }]);
11116 }(elementorModules.editor.utils.Module);
11117 new Module();
11118 })();
11119
11120 /******/ })()
11121 ;
11122 //# sourceMappingURL=ai-layout.js.map