PluginProbe
Elementor Website Builder – more than just a page builder / 3.29.1
Elementor Website Builder – more than just a page builder v3.29.1
4.3.1 4.3.0 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 All 454 releases
elementor / assets / js / ai-layout.js

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

10,968 lines 484.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.29.0 - 28-05-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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24 /**
25 * Support conditional rendering of a React App to the DOM, based on the React version.
26 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
27 *
28 * @param { React.ReactElement } app The app to render.
29 * @param { HTMLElement } domElement The DOM element to render the app into.
30 *
31 * @return {{ unmount: () => void }} The unmount function.
32 */
33 function render(app, domElement) {
34 var unmountFunction;
35 try {
36 var root = (0, _client.createRoot)(domElement);
37 root.render(app);
38 unmountFunction = function unmountFunction() {
39 root.unmount();
40 };
41 } catch (e) {
42 // eslint-disable-next-line react/no-deprecated
43 ReactDOM.render(app, domElement);
44 unmountFunction = function unmountFunction() {
45 // eslint-disable-next-line react/no-deprecated
46 ReactDOM.unmountComponentAtNode(domElement);
47 };
48 }
49 return {
50 unmount: unmountFunction
51 };
52 }
53 var _default = exports["default"] = {
54 render: render
55 };
56
57 /***/ }),
58
59 /***/ "../modules/ai/assets/js/editor/ai-layout-behavior.js":
60 /*!************************************************************!*\
61 !*** ../modules/ai/assets/js/editor/ai-layout-behavior.js ***!
62 \************************************************************/
63 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
64
65 "use strict";
66
67
68 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
69 Object.defineProperty(exports, "__esModule", ({
70 value: true
71 }));
72 exports["default"] = void 0;
73 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
74 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
75 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
76 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
77 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
78 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
79 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
80 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
81 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
82 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)); }
83 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
84 var AiLayoutBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
85 function AiLayoutBehavior() {
86 var _this;
87 (0, _classCallCheck2.default)(this, AiLayoutBehavior);
88 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
89 args[_key] = arguments[_key];
90 }
91 _this = _callSuper(this, AiLayoutBehavior, [].concat(args));
92 (0, _defineProperty2.default)(_this, "previewContainer", null);
93 return _this;
94 }
95 (0, _inherits2.default)(AiLayoutBehavior, _Marionette$Behavior);
96 return (0, _createClass2.default)(AiLayoutBehavior, [{
97 key: "ui",
98 value: function ui() {
99 return {
100 aiButton: '.e-ai-layout-button',
101 addTemplateButton: '.elementor-add-template-button'
102 };
103 }
104 }, {
105 key: "events",
106 value: function events() {
107 return {
108 'click @ui.aiButton': 'onAiButtonClick'
109 };
110 }
111 }, {
112 key: "onAiButtonClick",
113 value: function onAiButtonClick(e) {
114 e.stopPropagation();
115 window.elementorAiCurrentContext = this.getOption('context');
116 (0, _editorIntegration.renderLayoutApp)({
117 parentContainer: elementor.getPreviewContainer(),
118 mode: _config.MODE_LAYOUT,
119 at: this.view.getOption('at'),
120 onInsert: this.onInsert.bind(this),
121 onRenderApp: function onRenderApp(args) {
122 args.previewContainer.init();
123 },
124 onGenerate: function onGenerate(args) {
125 args.previewContainer.reset();
126 }
127 });
128 }
129 }, {
130 key: "hideDropArea",
131 value: function hideDropArea() {
132 this.view.onCloseButtonClick();
133 }
134 }, {
135 key: "onInsert",
136 value: function onInsert(template) {
137 this.hideDropArea();
138 (0, _editorIntegration.importToEditor)({
139 parentContainer: elementor.getPreviewContainer(),
140 at: this.view.getOption('at'),
141 template: template,
142 historyTitle: (0, _i18n.__)('AI Layout', 'elementor')
143 });
144 }
145 }, {
146 key: "onRender",
147 value: function onRender() {
148 var $button = jQuery('<button>', {
149 type: 'button',
150 class: 'e-ai-layout-button elementor-add-section-area-button e-button-primary',
151 title: (0, _i18n.__)('Build with AI', 'elementor'),
152 'aria-label': (0, _i18n.__)('Build with AI', 'elementor')
153 });
154 $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");
155 this.ui.addTemplateButton.after($button);
156 }
157 }]);
158 }(Marionette.Behavior);
159
160 /***/ }),
161
162 /***/ "../modules/ai/assets/js/editor/api/index.js":
163 /*!***************************************************!*\
164 !*** ../modules/ai/assets/js/editor/api/index.js ***!
165 \***************************************************/
166 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
167
168 "use strict";
169
170
171 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
172 Object.defineProperty(exports, "__esModule", ({
173 value: true
174 }));
175 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;
176 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
177 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; }
178 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; }
179 var request = function request(endpoint) {
180 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
181 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
182 var signal = arguments.length > 3 ? arguments[3] : undefined;
183 if (Object.keys(data).length) {
184 if (window.elementorAiCurrentContext) {
185 data.context = window.elementorAiCurrentContext;
186 } else {
187 data.context = window.elementorWpAiCurrentContext;
188 }
189 }
190 return new Promise(function (resolve, reject) {
191 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
192 success: resolve,
193 error: reject,
194 data: data,
195 unique_id: data.unique_id
196 }, immediately);
197 if (signal && ajaxData.jqXhr) {
198 signal.addEventListener('abort', ajaxData.jqXhr.abort);
199 }
200 });
201 };
202 var getUserInformation = exports.getUserInformation = function getUserInformation(immediately) {
203 return request('ai_get_user_information', undefined, immediately);
204 };
205 var getRemoteConfig = exports.getRemoteConfig = function getRemoteConfig() {
206 return request('ai_get_remote_config');
207 };
208 var getRemoteFrontendConfig = exports.getRemoteFrontendConfig = function getRemoteFrontendConfig(payload, immediately) {
209 return request('ai_get_remote_frontend_config', {
210 payload: payload
211 }, immediately);
212 };
213 var getCompletionText = exports.getCompletionText = function getCompletionText(payload) {
214 return request('ai_get_completion_text', {
215 payload: payload
216 });
217 };
218 var getExcerpt = exports.getExcerpt = function getExcerpt(payload) {
219 return request('ai_get_excerpt', {
220 payload: payload
221 });
222 };
223 var getFeaturedImage = exports.getFeaturedImage = function getFeaturedImage(payload) {
224 return request('ai_get_featured_image', {
225 payload: payload
226 });
227 };
228 var getEditText = exports.getEditText = function getEditText(payload) {
229 return request('ai_get_edit_text', {
230 payload: payload
231 });
232 };
233 var getCustomCode = exports.getCustomCode = function getCustomCode(payload) {
234 return request('ai_get_custom_code', {
235 payload: payload
236 });
237 };
238 var getCustomCSS = exports.getCustomCSS = function getCustomCSS(payload) {
239 return request('ai_get_custom_css', {
240 payload: payload
241 });
242 };
243 var setGetStarted = exports.setGetStarted = function setGetStarted() {
244 return request('ai_set_get_started');
245 };
246 var setStatusFeedback = exports.setStatusFeedback = function setStatusFeedback(responseId) {
247 return request('ai_set_status_feedback', {
248 response_id: responseId
249 }, true);
250 };
251 var getTextToImageGeneration = exports.getTextToImageGeneration = function getTextToImageGeneration(payload) {
252 return request('ai_get_text_to_image', {
253 payload: payload
254 });
255 };
256 var getImageToImageGeneration = exports.getImageToImageGeneration = function getImageToImageGeneration(payload) {
257 return request('ai_get_image_to_image', {
258 payload: payload
259 });
260 };
261 var getImageToImageMaskCleanup = exports.getImageToImageMaskCleanup = function getImageToImageMaskCleanup(payload) {
262 return request('ai_get_image_to_image_mask_cleanup', {
263 payload: payload
264 });
265 };
266 var getImageToImageMaskGeneration = exports.getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
267 return request('ai_get_image_to_image_mask', {
268 payload: payload
269 });
270 };
271 var getImageToImageOutPainting = exports.getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
272 return request('ai_get_image_to_image_outpainting', {
273 payload: payload
274 });
275 };
276 var getImageToImageUpscale = exports.getImageToImageUpscale = function getImageToImageUpscale(payload) {
277 return request('ai_get_image_to_image_upscale', {
278 payload: payload
279 });
280 };
281 var getImageToImageRemoveBackground = exports.getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
282 return request('ai_get_image_to_image_remove_background', {
283 payload: payload
284 });
285 };
286 var getImageToImageIsolateObjects = exports.getImageToImageIsolateObjects = function getImageToImageIsolateObjects(payload) {
287 return request('ai_get_image_to_image_isolate_objects', {
288 payload: payload
289 });
290 };
291 var getImageToImageReplaceBackground = exports.getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
292 return request('ai_get_image_to_image_replace_background', {
293 payload: payload
294 });
295 };
296 var getImageToImageRemoveText = exports.getImageToImageRemoveText = function getImageToImageRemoveText(image) {
297 return request('ai_get_image_to_image_remove_text', {
298 image: image
299 });
300 };
301 var getImagePromptEnhanced = exports.getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
302 return request('ai_get_image_prompt_enhancer', {
303 prompt: prompt
304 });
305 };
306 var getProductImageUnification = exports.getProductImageUnification = function getProductImageUnification(payload, immediately) {
307 return request('ai_get_product_image_unification', {
308 payload: payload
309 }, immediately);
310 };
311 var getAnimation = exports.getAnimation = function getAnimation(payload) {
312 return request('ai_get_animation', {
313 payload: payload
314 });
315 };
316 var uploadImage = exports.uploadImage = function uploadImage(image) {
317 return request('ai_upload_image', _objectSpread(_objectSpread({}, image), {}, {
318 editor_post_id: image.image.editor_post_id,
319 unique_id: image.image.unique_id
320 }));
321 };
322
323 /**
324 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
325 * @typedef {Object} requestBody
326 * @property {string} prompt - Prompt to generate the layout from.
327 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
328 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
329 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
330 */
331
332 /**
333 * @param {requestBody} requestBody
334 * @param {AbortSignal} [signal]
335 */
336 var generateLayout = exports.generateLayout = function generateLayout(requestBody, signal) {
337 return request('ai_generate_layout', requestBody, true, signal);
338 };
339 var getLayoutPromptEnhanced = exports.getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
340 return request('ai_get_layout_prompt_enhancer', {
341 prompt: prompt,
342 enhance_type: enhanceType
343 });
344 };
345 var getHistory = exports.getHistory = function getHistory(type, page, limit) {
346 return request('ai_get_history', {
347 type: type,
348 page: page,
349 limit: limit
350 });
351 };
352 var deleteHistoryItem = exports.deleteHistoryItem = function deleteHistoryItem(id) {
353 return request('ai_delete_history_item', {
354 id: id
355 });
356 };
357 var toggleFavoriteHistoryItem = exports.toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
358 return request('ai_toggle_favorite_history_item', {
359 id: id
360 });
361 };
362
363 /***/ }),
364
365 /***/ "../modules/ai/assets/js/editor/components/alert-dialog.js":
366 /*!*****************************************************************!*\
367 !*** ../modules/ai/assets/js/editor/components/alert-dialog.js ***!
368 \*****************************************************************/
369 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
370
371 "use strict";
372
373
374 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
375 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
376 Object.defineProperty(exports, "__esModule", ({
377 value: true
378 }));
379 exports.AlertDialog = void 0;
380 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
381 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
382 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
383 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
384 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
385 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
386 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
387 var AlertDialog = exports.AlertDialog = function AlertDialog(props) {
388 var _useState = (0, _react.useState)(true),
389 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
390 isShown = _useState2[0],
391 setIsShown = _useState2[1];
392 if (!isShown) {
393 return null;
394 }
395 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
396 open: true,
397 maxWidth: "lg"
398 }, /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
399 sx: {
400 padding: 0
401 }
402 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
403 sx: {
404 textAlign: 'center',
405 padding: 3
406 }
407 }, props.message), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
408 alignItems: "center",
409 spacing: 2,
410 marginBottom: 2
411 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
412 variant: "contained",
413 type: "button",
414 color: "primary",
415 onClick: function onClick() {
416 var _props$onClose;
417 setIsShown(false);
418 (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
419 }
420 }, (0, _i18n.__)('Close', 'elementor')))));
421 };
422 AlertDialog.propTypes = {
423 message: _propTypes.default.string.isRequired,
424 onClose: _propTypes.default.func
425 };
426
427 /***/ }),
428
429 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
430 /*!******************************************************************!*\
431 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
432 \******************************************************************/
433 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
434
435 "use strict";
436
437
438 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
439 Object.defineProperty(exports, "__esModule", ({
440 value: true
441 }));
442 exports["default"] = void 0;
443 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
444 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
445 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
446 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
447 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
448 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
449 var ElementorLogo = function ElementorLogo(props) {
450 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
451 viewBox: "0 0 32 32"
452 }, props), /*#__PURE__*/_react.default.createElement("path", {
453 fillRule: "evenodd",
454 clipRule: "evenodd",
455 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"
456 }));
457 };
458 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
459 var theme = _ref.theme;
460 return {
461 width: theme.spacing(3),
462 height: theme.spacing(3),
463 '& path': {
464 fill: theme.palette.text.primary
465 }
466 };
467 });
468 var DialogHeader = function DialogHeader(props) {
469 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
470 sx: {
471 fontWeight: 'normal'
472 },
473 color: "transparent",
474 position: "relative"
475 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
476 variant: "dense"
477 }, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
478 sx: {
479 mr: 1
480 }
481 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
482 component: "span",
483 variant: "subtitle2",
484 sx: {
485 fontWeight: 'bold',
486 textTransform: 'uppercase'
487 }
488 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
489 label: (0, _i18n.__)('Beta', 'elementor'),
490 color: "default",
491 size: "small",
492 sx: {
493 ml: 1
494 }
495 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
496 direction: "row",
497 spacing: 1,
498 alignItems: "center",
499 sx: {
500 ml: 'auto'
501 }
502 }, props.children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
503 size: "small",
504 "aria-label": "close",
505 onClick: props.onClose,
506 sx: {
507 '&.MuiButtonBase-root': {
508 mr: -1
509 }
510 }
511 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
512 };
513 DialogHeader.propTypes = {
514 onClose: _propTypes.default.func.isRequired,
515 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
516 };
517 var _default = exports["default"] = DialogHeader;
518
519 /***/ }),
520
521 /***/ "../modules/ai/assets/js/editor/components/loader.js":
522 /*!***********************************************************!*\
523 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
524 \***********************************************************/
525 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
526
527 "use strict";
528
529
530 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
531 Object.defineProperty(exports, "__esModule", ({
532 value: true
533 }));
534 exports["default"] = void 0;
535 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
536 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
537 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
538 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
539 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
540 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
541 var _excluded = ["sx", "BoxProps"];
542 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; }
543 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; }
544 var Loader = function Loader(_ref) {
545 var _ref$sx = _ref.sx,
546 sx = _ref$sx === void 0 ? {} : _ref$sx,
547 _ref$BoxProps = _ref.BoxProps,
548 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
549 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
550 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
551 width: "100%",
552 display: "flex",
553 alignItems: "center"
554 }, BoxProps, {
555 sx: _objectSpread({
556 px: 1.5,
557 minHeight: function minHeight(theme) {
558 return theme.spacing(5);
559 }
560 }, BoxProps.sx || {})
561 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
562 color: "secondary"
563 }, props, {
564 sx: _objectSpread({
565 width: '100%'
566 }, sx)
567 })));
568 };
569 Loader.propTypes = {
570 sx: _propTypes.default.object,
571 BoxProps: _propTypes.default.object
572 };
573 var _default = exports["default"] = Loader;
574
575 /***/ }),
576
577 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
578 /*!******************************************************************!*\
579 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
580 \******************************************************************/
581 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
582
583 "use strict";
584
585
586 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
587 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
588 Object.defineProperty(exports, "__esModule", ({
589 value: true
590 }));
591 exports["default"] = void 0;
592 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
593 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
594 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
595 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
596 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
597 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
598 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
599 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
600 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
601 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
602 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
603 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
604 var DraggablePaper = function DraggablePaper(props) {
605 var _useState = (0, _react.useState)({
606 x: 0,
607 y: 0
608 }),
609 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
610 position = _useState2[0],
611 setPosition = _useState2[1];
612 var paperRef = (0, _react.useRef)(null);
613 var timeout = (0, _react.useRef)(null);
614 var onDrag = function onDrag(_e, _ref) {
615 var x = _ref.x,
616 y = _ref.y;
617 return setPosition({
618 x: x,
619 y: y
620 });
621 };
622 var handlePositionBoundaries = function handlePositionBoundaries() {
623 clearTimeout(timeout.current);
624
625 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
626 timeout.current = setTimeout(function () {
627 var _paperRef$current;
628 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
629 if (dialogTop < 0) {
630 setPosition(function (prev) {
631 return _objectSpread(_objectSpread({}, prev), {}, {
632 y: prev.y - dialogTop
633 });
634 });
635 }
636 }, 50);
637 };
638 (0, _react.useEffect)(function () {
639 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
640 resizeObserver.observe(paperRef.current);
641 return function () {
642 resizeObserver.disconnect();
643 };
644 }, []);
645 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
646 position: position,
647 onDrag: onDrag,
648 handle: ".MuiAppBar-root",
649 cancel: '[class*="MuiDialogContent-root"]',
650 bounds: "parent"
651 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
652 ref: paperRef
653 })));
654 };
655 var PromptDialog = function PromptDialog(props) {
656 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
657 scroll: "paper",
658 open: true,
659 fullWidth: true,
660 hideBackdrop: true,
661 PaperComponent: DraggablePaper,
662 disableScrollLock: true,
663 sx: {
664 '& .MuiDialog-container': {
665 alignItems: 'flex-start',
666 mt: '18vh'
667 }
668 },
669 PaperProps: {
670 sx: {
671 m: 0,
672 maxHeight: '76vh'
673 }
674 }
675 }, props), props.children);
676 };
677 PromptDialog.propTypes = {
678 onClose: _propTypes.default.func.isRequired,
679 children: _propTypes.default.node,
680 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
681 };
682 PromptDialog.Header = _dialogHeader.default;
683 PromptDialog.Content = _ui.DialogContent;
684 var _default = exports["default"] = PromptDialog;
685
686 /***/ }),
687
688 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
689 /*!*************************************************************************!*\
690 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
691 \*************************************************************************/
692 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
693
694 "use strict";
695 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
696
697
698 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
699 Object.defineProperty(exports, "__esModule", ({
700 value: true
701 }));
702 exports["default"] = void 0;
703 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
704 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
705 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
706 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
707 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
708 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
709 var _excluded = ["error", "onRetry", "actionPosition"];
710 var PromptErrorMessage = function PromptErrorMessage(_ref) {
711 var error = _ref.error,
712 _ref$onRetry = _ref.onRetry,
713 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
714 _ref$actionPosition = _ref.actionPosition,
715 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
716 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
717 function getQuotaReachedTrailMessage(featureName) {
718 if (!featureName) {
719 return {
720 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
721 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
722 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
723 buttonAction: function buttonAction() {
724 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
725 }
726 };
727 }
728 return {
729 // Translators: %s is the feature name.
730 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
731 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
732 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
733 buttonAction: function buttonAction() {
734 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
735 }
736 };
737 }
738 function getErrorMessage() {
739 var _error$extra_data;
740 var errMsg = error.message || error;
741 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
742 var messages = {
743 default: {
744 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
745 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
746 buttonText: (0, _i18n.__)('Try again', 'elementor'),
747 buttonAction: onRetry
748 },
749 service_outage_internal: {
750 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
751 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
752 buttonText: (0, _i18n.__)('Try again', 'elementor'),
753 buttonAction: onRetry
754 },
755 invalid_connect_data: {
756 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
757 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
758 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
759 target: "_blank",
760 rel: "noreferrer"
761 }, (0, _i18n.__)('Show me how', 'elementor'))),
762 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
763 buttonAction: function buttonAction() {
764 return window.open(window.ElementorAiConfig.connect_url);
765 }
766 },
767 not_connected: {
768 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
769 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
770 buttonText: (0, _i18n.__)('Connect', 'elementor'),
771 buttonAction: function buttonAction() {
772 return window.open(window.ElementorAiConfig.connect_url);
773 }
774 },
775 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
776 quota_reached_subscription: {
777 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
778 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
779 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
780 buttonAction: function buttonAction() {
781 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
782 }
783 },
784 rate_limit_network: {
785 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
786 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
787 },
788 invalid_prompts: {
789 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
790 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
791 },
792 service_unavailable: {
793 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
794 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
795 buttonText: (0, _i18n.__)('Try again', 'elementor'),
796 buttonAction: onRetry
797 },
798 request_timeout_error: {
799 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
800 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
801 buttonText: (0, _i18n.__)('Try again', 'elementor'),
802 buttonAction: onRetry
803 },
804 invalid_token: {
805 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
806 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
807 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
808 buttonAction: onRetry
809 },
810 file_too_large: {
811 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
812 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
813 },
814 image_resolution_maximum_exceeded: {
815 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The image resolution exceeds the maximum allowed size.', 'elementor')),
816 description: (0, _i18n.__)('Please upload a file with dimensions less than 2048x2048 pixels.', 'elementor')
817 },
818 external_service_unavailable: {
819 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Temporary external service issue', 'elementor')),
820 description: (0, _i18n.__)('It seems that one of our partner services is temporarily unavailable. Please try again in a few minutes.', 'elementor'),
821 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
822 buttonAction: onRetry
823 }
824 };
825 return messages[errMsg] || messages.default;
826 }
827 var message = getErrorMessage();
828 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
829 color: "inherit",
830 size: "small",
831 variant: "outlined",
832 onClick: message.buttonAction
833 }, message.buttonText);
834 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
835 severity: message.severity || 'error',
836 action: 'default' === actionPosition && action
837 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
838 sx: {
839 mt: 1
840 }
841 }, action));
842 };
843 PromptErrorMessage.propTypes = {
844 error: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
845 onRetry: _propTypes.default.func,
846 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
847 };
848 var _default = exports["default"] = PromptErrorMessage;
849
850 /***/ }),
851
852 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
853 /*!************************************************************************!*\
854 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
855 \************************************************************************/
856 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
857
858 "use strict";
859
860
861 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
862 Object.defineProperty(exports, "__esModule", ({
863 value: true
864 }));
865 exports["default"] = void 0;
866 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
867 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
868 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
869 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
870 var PromptLibraryLink = function PromptLibraryLink(props) {
871 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
872 variant: "body2",
873 color: "text.secondary"
874 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
875 href: props.libraryLink,
876 className: "elementor-clickable",
877 target: "_blank"
878 }, (0, _i18n.__)('prompt library')));
879 };
880 PromptLibraryLink.propTypes = {
881 libraryLink: _propTypes.default.string
882 };
883 var _default = exports["default"] = PromptLibraryLink;
884
885 /***/ }),
886
887 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
888 /*!*****************************************************************!*\
889 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
890 \*****************************************************************/
891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
892
893 "use strict";
894
895
896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
897 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
898 Object.defineProperty(exports, "__esModule", ({
899 value: true
900 }));
901 exports["default"] = void 0;
902 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
903 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
904 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
905 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
906 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
907 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
908 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
909 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1215 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1216 var Context = (0, _react.createContext)({});
1217 var useRequestIds = exports.useRequestIds = function useRequestIds() {
1218 var context = (0, _react.useContext)(Context);
1219 if (!context) {
1220 throw new Error('useRequestIds must be used within a RequestIdsProvider');
1221 }
1222 return context;
1223 };
1224 var getUniqueId = exports.getUniqueId = function getUniqueId(prefix) {
1225 return prefix + '-' + Math.random().toString(16).substr(2, 7);
1226 };
1227 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
1228 function generateIds(template) {
1229 var _template$elements;
1230 template.id = getUniqueId().toString();
1231 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
1232 template.elements.map(function (child) {
1233 return generateIds(child);
1234 });
1235 }
1236 return template;
1237 }
1238 var RequestIdsProvider = exports.RequestIdsProvider = function RequestIdsProvider(props) {
1239 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
1240 var sessionId = (0, _react.useRef)('');
1241 var generateId = (0, _react.useRef)('');
1242 var batchId = (0, _react.useRef)('');
1243 var requestId = (0, _react.useRef)('');
1244 sessionId.current = getUniqueId('session');
1245 var setGenerate = function setGenerate() {
1246 generateId.current = getUniqueId('generate');
1247 return generateId;
1248 };
1249 var setBatch = function setBatch() {
1250 batchId.current = getUniqueId('batch');
1251 return batchId;
1252 };
1253 var setRequest = function setRequest() {
1254 requestId.current = getUniqueId('request');
1255 return requestId;
1256 };
1257 var _useState = (0, _react.useState)(0),
1258 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1259 usagePercentage = _useState2[0],
1260 setUsagePercentage = _useState2[1];
1261 var updateUsagePercentage = function updateUsagePercentage(newPercentage) {
1262 setUsagePercentage(newPercentage);
1263 };
1264 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
1265 value: {
1266 editorSessionId: editorSessionId,
1267 sessionId: sessionId,
1268 generateId: generateId,
1269 batchId: batchId,
1270 requestId: requestId,
1271 setGenerate: setGenerate,
1272 setBatch: setBatch,
1273 setRequest: setRequest,
1274 usagePercentage: usagePercentage,
1275 updateUsagePercentage: updateUsagePercentage
1276 }
1277 }, props.children);
1278 };
1279 RequestIdsProvider.propTypes = {
1280 children: _propTypes.default.node.isRequired
1281 };
1282 var _default = exports["default"] = Context;
1283
1284 /***/ }),
1285
1286 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
1287 /*!****************************************************************!*\
1288 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
1289 \****************************************************************/
1290 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1291
1292 "use strict";
1293
1294
1295 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1296 Object.defineProperty(exports, "__esModule", ({
1297 value: true
1298 }));
1299 exports["default"] = useIntroduction;
1300 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1301 var _react = __webpack_require__(/*! react */ "react");
1302 function useIntroduction(key) {
1303 var _window$elementor$con, _window$elementorAdmi, _globalConfig$introdu;
1304 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;
1305 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
1306 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1307 isViewed = _useState2[0],
1308 setIsViewed = _useState2[1];
1309 function markAsViewed() {
1310 if (!key) {
1311 return Promise.reject();
1312 }
1313 return new Promise(function (resolve, reject) {
1314 if (isViewed) {
1315 reject();
1316 }
1317 setIsViewed(true);
1318 elementorCommon.ajax.addRequest('introduction_viewed', {
1319 data: {
1320 introductionKey: key
1321 },
1322 error: function error() {
1323 setIsViewed(false);
1324 reject();
1325 },
1326 success: function success() {
1327 setIsViewed(true);
1328 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
1329 globalConfig.introduction[key] = true;
1330 }
1331 resolve();
1332 }
1333 });
1334 });
1335 }
1336 return {
1337 isViewed: isViewed,
1338 markAsViewed: markAsViewed
1339 };
1340 }
1341
1342 /***/ }),
1343
1344 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
1345 /*!*******************************************************************!*\
1346 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
1347 \*******************************************************************/
1348 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1349
1350 "use strict";
1351
1352
1353 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1354 Object.defineProperty(exports, "__esModule", ({
1355 value: true
1356 }));
1357 exports["default"] = void 0;
1358 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1359 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
1360 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
1361 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
1362 var getResult = function getResult(prompt, type, enhanceType) {
1363 if (!enhancePromptMap.has(type)) {
1364 throw new Error("Invalid prompt type: ".concat(type));
1365 }
1366 return enhancePromptMap.get(type)(prompt, enhanceType);
1367 };
1368
1369 /**
1370 * Hook to enhance a prompt.
1371 *
1372 * @param {string} prompt
1373 * @param {'media' | 'layout'} type
1374 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
1375 */
1376 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
1377 var _useConfig = (0, _config.useConfig)(),
1378 mode = _useConfig.mode;
1379 var _usePrompt = (0, _usePrompt2.default)(function () {
1380 return getResult(prompt, type, mode);
1381 }, prompt),
1382 enhancedData = _usePrompt.data,
1383 isEnhancing = _usePrompt.isLoading,
1384 enhance = _usePrompt.send;
1385 return {
1386 enhance: enhance,
1387 isEnhancing: isEnhancing,
1388 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
1389 };
1390 };
1391 var _default = exports["default"] = usePromptEnhancer;
1392
1393 /***/ }),
1394
1395 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
1396 /*!**********************************************************!*\
1397 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
1398 \**********************************************************/
1399 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1400
1401 "use strict";
1402
1403
1404 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1405 Object.defineProperty(exports, "__esModule", ({
1406 value: true
1407 }));
1408 exports["default"] = void 0;
1409 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1410 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1411 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1412 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1413 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1414 var _react = __webpack_require__(/*! react */ "react");
1415 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1416 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
1417 var _excluded = ["text", "response_id", "usage", "images"];
1418 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; }
1419 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; }
1420 var normalizeResponse = function normalizeResponse(_ref) {
1421 var text = _ref.text,
1422 responseId = _ref.response_id,
1423 usage = _ref.usage,
1424 images = _ref.images,
1425 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1426 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
1427 var credits = Math.max(creditsData, 0);
1428 var result = text || images;
1429 var normalized = {
1430 result: result,
1431 responseId: responseId,
1432 credits: credits,
1433 usagePercentage: usage === null || usage === void 0 ? void 0 : usage.usagePercentage
1434 };
1435 if (optional.base_template_id) {
1436 normalized.baseTemplateId = optional.base_template_id;
1437 }
1438 normalized.type = optional.template_type;
1439 return normalized;
1440 };
1441 var usePrompt = function usePrompt(fetchData, initialState) {
1442 var _useState = (0, _react.useState)(false),
1443 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1444 isLoading = _useState2[0],
1445 setIsLoading = _useState2[1];
1446 var _useState3 = (0, _react.useState)(''),
1447 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1448 error = _useState4[0],
1449 setError = _useState4[1];
1450 var _useState5 = (0, _react.useState)(initialState),
1451 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1452 data = _useState6[0],
1453 setData = _useState6[1];
1454 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
1455 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
1456 usagePercentage = _useRequestIds.usagePercentage;
1457 var send = (0, _react.useRef)(/*#__PURE__*/function () {
1458 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
1459 return _regenerator.default.wrap(function _callee$(_context) {
1460 while (1) switch (_context.prev = _context.next) {
1461 case 0:
1462 return _context.abrupt("return", payload);
1463 case 1:
1464 case "end":
1465 return _context.stop();
1466 }
1467 }, _callee);
1468 }));
1469 return function (_x) {
1470 return _ref2.apply(this, arguments);
1471 };
1472 }());
1473 var sendUsageData = (0, _react.useRef)(function () {});
1474 (0, _react.useEffect)(function () {
1475 var newUsageValue = data === null || data === void 0 ? void 0 : data.usagePercentage;
1476 if (newUsageValue && newUsageValue !== usagePercentage) {
1477 updateUsagePercentage(newUsageValue);
1478 }
1479 }, [data, usagePercentage, updateUsagePercentage]);
1480 var _useRequestIds2 = (0, _requestsIds.useRequestIds)(),
1481 setRequest = _useRequestIds2.setRequest,
1482 editorSessionId = _useRequestIds2.editorSessionId,
1483 sessionId = _useRequestIds2.sessionId,
1484 generateId = _useRequestIds2.generateId,
1485 batchId = _useRequestIds2.batchId;
1486 send.current = (0, _react.useCallback)(/*#__PURE__*/function () {
1487 var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(payload) {
1488 return _regenerator.default.wrap(function _callee2$(_context2) {
1489 while (1) switch (_context2.prev = _context2.next) {
1490 case 0:
1491 return _context2.abrupt("return", new Promise(function (resolve, reject) {
1492 setError('');
1493 setIsLoading(true);
1494 var requestId = setRequest();
1495 var requestIds = {
1496 editorSessionId: editorSessionId.current,
1497 sessionId: sessionId.current,
1498 generateId: generateId.current,
1499 batchId: batchId.current,
1500 requestId: requestId.current
1501 };
1502 payload = _objectSpread(_objectSpread({}, payload), {}, {
1503 requestIds: requestIds
1504 });
1505 fetchData(payload).then(function (result) {
1506 var normalizedData = normalizeResponse(result);
1507 setData(normalizedData);
1508 resolve(normalizedData);
1509 }).catch(function (err) {
1510 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
1511 setError(finalError);
1512 reject(finalError);
1513 }).finally(function () {
1514 return setIsLoading(false);
1515 });
1516 }));
1517 case 1:
1518 case "end":
1519 return _context2.stop();
1520 }
1521 }, _callee2);
1522 }));
1523 return function (_x2) {
1524 return _ref3.apply(this, arguments);
1525 };
1526 }(), [batchId, editorSessionId, fetchData, generateId, sessionId, setRequest]);
1527 sendUsageData.current = (0, _react.useCallback)(function () {
1528 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
1529 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
1530 }, [data]);
1531 var reset = function reset() {
1532 setData(function (_ref4) {
1533 var credits = _ref4.credits;
1534 return {
1535 credits: credits,
1536 result: '',
1537 responseId: ''
1538 };
1539 });
1540 setError('');
1541 setIsLoading(false);
1542 };
1543 var setResult = function setResult(result) {
1544 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1545 var updatedResult = _objectSpread({}, data);
1546 updatedResult.result = result;
1547 if (responseId) {
1548 updatedResult.responseId = responseId;
1549 }
1550 setData(updatedResult);
1551 };
1552 return {
1553 isLoading: isLoading,
1554 error: error,
1555 data: data,
1556 setResult: setResult,
1557 reset: reset,
1558 send: send.current,
1559 sendUsageData: sendUsageData.current
1560 };
1561 };
1562 var _default = exports["default"] = usePrompt;
1563
1564 /***/ }),
1565
1566 /***/ "../modules/ai/assets/js/editor/hooks/use-timeout.js":
1567 /*!***********************************************************!*\
1568 !*** ../modules/ai/assets/js/editor/hooks/use-timeout.js ***!
1569 \***********************************************************/
1570 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1571
1572 "use strict";
1573
1574
1575 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1576 Object.defineProperty(exports, "__esModule", ({
1577 value: true
1578 }));
1579 exports.useTimeout = void 0;
1580 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1581 var _react = __webpack_require__(/*! react */ "react");
1582 var useTimeout = exports.useTimeout = function useTimeout(delay) {
1583 var _useState = (0, _react.useState)(false),
1584 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1585 isTimeout = _useState2[0],
1586 setIsTimeout = _useState2[1];
1587 var timeoutIdRef = (0, _react.useRef)(null);
1588 var turnOffTimeout = function turnOffTimeout() {
1589 clearTimeout(timeoutIdRef.current);
1590 setIsTimeout(false);
1591 };
1592 (0, _react.useEffect)(function () {
1593 timeoutIdRef.current = setTimeout(function () {
1594 setIsTimeout(true);
1595 }, delay);
1596 return function () {
1597 clearTimeout(timeoutIdRef.current);
1598 };
1599 }, [delay]);
1600 return [isTimeout, turnOffTimeout];
1601 };
1602
1603 /***/ }),
1604
1605 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
1606 /*!*************************************************************!*\
1607 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
1608 \*************************************************************/
1609 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1610
1611 "use strict";
1612
1613
1614 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1615 Object.defineProperty(exports, "__esModule", ({
1616 value: true
1617 }));
1618 exports["default"] = void 0;
1619 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1620 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1621 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1622 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1623 var _react = __webpack_require__(/*! react */ "react");
1624 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1625 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1626 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; }
1627 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; }
1628 var useUserInfo = function useUserInfo() {
1629 var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1630 var _useState = (0, _react.useState)(false),
1631 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1632 isLoaded = _useState2[0],
1633 setIsLoaded = _useState2[1];
1634 var _useState3 = (0, _react.useState)(false),
1635 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1636 isLoading = _useState4[0],
1637 setIsLoading = _useState4[1];
1638 var _useState5 = (0, _react.useState)({
1639 is_connected: false,
1640 is_get_started: false,
1641 connect_url: '',
1642 usage: {
1643 hasAiSubscription: false,
1644 quota: 0,
1645 usedQuota: 0
1646 }
1647 }),
1648 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1649 userInfo = _useState6[0],
1650 setUserInfo = _useState6[1];
1651 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
1652 var usagePercentage = userInfo.usage.quota ? userInfo.usage.usedQuota / userInfo.usage.quota * 100 : 0;
1653 var fetchData = /*#__PURE__*/function () {
1654 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1655 var userInfoResult;
1656 return _regenerator.default.wrap(function _callee$(_context) {
1657 while (1) switch (_context.prev = _context.next) {
1658 case 0:
1659 setIsLoading(true);
1660 _context.next = 3;
1661 return (0, _api.getUserInformation)(immediately);
1662 case 3:
1663 userInfoResult = _context.sent;
1664 setUserInfo(function (prevState) {
1665 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
1666 });
1667 setIsLoaded(true);
1668 setIsLoading(false);
1669 case 7:
1670 case "end":
1671 return _context.stop();
1672 }
1673 }, _callee);
1674 }));
1675 return function fetchData() {
1676 return _ref.apply(this, arguments);
1677 };
1678 }();
1679 if (!isLoaded && !isLoading) {
1680 fetchData();
1681 }
1682 return {
1683 isLoading: isLoading,
1684 isLoaded: isLoaded,
1685 isConnected: userInfo.is_connected,
1686 isGetStarted: userInfo.is_get_started,
1687 connectUrl: userInfo.connect_url,
1688 builderUrl: userInfo.usage.builderUrl,
1689 hasSubscription: userInfo.usage.hasAiSubscription,
1690 credits: credits < 0 ? 0 : credits,
1691 usagePercentage: Math.round(usagePercentage),
1692 fetchData: fetchData
1693 };
1694 };
1695 useUserInfo.propTypes = {
1696 immediately: _propTypes.default.bool
1697 };
1698 var _default = exports["default"] = useUserInfo;
1699
1700 /***/ }),
1701
1702 /***/ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js":
1703 /*!***************************************************************!*\
1704 !*** ../modules/ai/assets/js/editor/icons/arrow-left-icon.js ***!
1705 \***************************************************************/
1706 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1707
1708 "use strict";
1709
1710
1711 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1712 Object.defineProperty(exports, "__esModule", ({
1713 value: true
1714 }));
1715 exports["default"] = void 0;
1716 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1717 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1718 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1719 var ArrowLeftIcon = _react.default.forwardRef(function (props, ref) {
1720 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1721 viewBox: "0 0 24 24"
1722 }, props, {
1723 ref: ref
1724 }), /*#__PURE__*/_react.default.createElement("path", {
1725 fillRule: "evenodd",
1726 clipRule: "evenodd",
1727 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"
1728 }));
1729 });
1730 var _default = exports["default"] = ArrowLeftIcon;
1731
1732 /***/ }),
1733
1734 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
1735 /*!*********************************************************!*\
1736 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
1737 \*********************************************************/
1738 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1739
1740 "use strict";
1741
1742
1743 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1744 Object.defineProperty(exports, "__esModule", ({
1745 value: true
1746 }));
1747 exports["default"] = void 0;
1748 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1749 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1750 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1751 var BulbIcon = _react.default.forwardRef(function (props, ref) {
1752 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
1753 ref: ref
1754 }), /*#__PURE__*/_react.default.createElement("svg", {
1755 width: "22",
1756 height: "22",
1757 viewBox: "0 0 22 22",
1758 fill: "none",
1759 xmlns: "http://www.w3.org/2000/svg"
1760 }, /*#__PURE__*/_react.default.createElement("g", {
1761 clipPath: "url(#clip0_10743_8902)"
1762 }, /*#__PURE__*/_react.default.createElement("path", {
1763 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",
1764 stroke: "#2563EB",
1765 strokeWidth: "1.5",
1766 strokeLinecap: "round",
1767 strokeLinejoin: "round"
1768 }), /*#__PURE__*/_react.default.createElement("path", {
1769 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",
1770 stroke: "#2563EB",
1771 strokeWidth: "1.5",
1772 strokeLinecap: "round",
1773 strokeLinejoin: "round"
1774 }), /*#__PURE__*/_react.default.createElement("path", {
1775 d: "M10.0833 16.5H11.9166",
1776 stroke: "#2563EB",
1777 strokeWidth: "1.5",
1778 strokeLinecap: "round",
1779 strokeLinejoin: "round"
1780 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
1781 id: "clip0_10743_8902"
1782 }, /*#__PURE__*/_react.default.createElement("rect", {
1783 width: "22",
1784 height: "22",
1785 fill: "white"
1786 })))));
1787 });
1788 var _default = exports["default"] = BulbIcon;
1789
1790 /***/ }),
1791
1792 /***/ "../modules/ai/assets/js/editor/icons/copy-page-icon.js":
1793 /*!**************************************************************!*\
1794 !*** ../modules/ai/assets/js/editor/icons/copy-page-icon.js ***!
1795 \**************************************************************/
1796 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1797
1798 "use strict";
1799
1800
1801 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1802 Object.defineProperty(exports, "__esModule", ({
1803 value: true
1804 }));
1805 exports["default"] = void 0;
1806 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1807 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1808 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1809 var CopyPageIcon = _react.default.forwardRef(function (props, ref) {
1810 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1811 viewBox: "0 0 24 24"
1812 }, props, {
1813 ref: ref
1814 }), /*#__PURE__*/_react.default.createElement("path", {
1815 fillRule: "evenodd",
1816 clipRule: "evenodd",
1817 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"
1818 }));
1819 });
1820 var _default = exports["default"] = CopyPageIcon;
1821
1822 /***/ }),
1823
1824 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
1825 /*!*********************************************************!*\
1826 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
1827 \*********************************************************/
1828 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1829
1830 "use strict";
1831
1832
1833 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1834 Object.defineProperty(exports, "__esModule", ({
1835 value: true
1836 }));
1837 exports["default"] = void 0;
1838 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1839 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1840 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1841 var EditIcon = _react.default.forwardRef(function (props, ref) {
1842 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1843 viewBox: "0 0 24 24"
1844 }, props, {
1845 ref: ref
1846 }), /*#__PURE__*/_react.default.createElement("path", {
1847 fillRule: "evenodd",
1848 clipRule: "evenodd",
1849 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"
1850 }), /*#__PURE__*/_react.default.createElement("path", {
1851 fillRule: "evenodd",
1852 clipRule: "evenodd",
1853 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"
1854 }));
1855 });
1856 var _default = exports["default"] = EditIcon;
1857
1858 /***/ }),
1859
1860 /***/ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js":
1861 /*!********************************************************************!*\
1862 !*** ../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js ***!
1863 \********************************************************************/
1864 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1865
1866 "use strict";
1867
1868
1869 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1870 Object.defineProperty(exports, "__esModule", ({
1871 value: true
1872 }));
1873 exports["default"] = void 0;
1874 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1875 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1876 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1877 var ExpandDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1878 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1879 viewBox: "0 0 24 24"
1880 }, props, {
1881 ref: ref
1882 }), /*#__PURE__*/_react.default.createElement("path", {
1883 fillRule: "evenodd",
1884 clipRule: "evenodd",
1885 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"
1886 }));
1887 });
1888 var _default = exports["default"] = ExpandDiagonalIcon;
1889
1890 /***/ }),
1891
1892 /***/ "../modules/ai/assets/js/editor/icons/lock-icon.js":
1893 /*!*********************************************************!*\
1894 !*** ../modules/ai/assets/js/editor/icons/lock-icon.js ***!
1895 \*********************************************************/
1896 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1897
1898 "use strict";
1899
1900
1901 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1902 Object.defineProperty(exports, "__esModule", ({
1903 value: true
1904 }));
1905 exports["default"] = void 0;
1906 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1907 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1908 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1909 var LockIcon = _react.default.forwardRef(function (props, ref) {
1910 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1911 viewBox: "0 0 24 24"
1912 }, props, {
1913 ref: ref
1914 }), /*#__PURE__*/_react.default.createElement("path", {
1915 fillRule: "evenodd",
1916 clipRule: "evenodd",
1917 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"
1918 }), /*#__PURE__*/_react.default.createElement("path", {
1919 fillRule: "evenodd",
1920 clipRule: "evenodd",
1921 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"
1922 }), /*#__PURE__*/_react.default.createElement("path", {
1923 d: "M6 12H19V20H6V12Z"
1924 }));
1925 });
1926 var _default = exports["default"] = LockIcon;
1927
1928 /***/ }),
1929
1930 /***/ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js":
1931 /*!**********************************************************************!*\
1932 !*** ../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js ***!
1933 \**********************************************************************/
1934 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1935
1936 "use strict";
1937
1938
1939 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1940 Object.defineProperty(exports, "__esModule", ({
1941 value: true
1942 }));
1943 exports["default"] = void 0;
1944 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1945 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1946 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1947 var MinimizeDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1948 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1949 viewBox: "0 0 24 24"
1950 }, props, {
1951 ref: ref
1952 }), /*#__PURE__*/_react.default.createElement("path", {
1953 fillRule: "evenodd",
1954 clipRule: "evenodd",
1955 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"
1956 }));
1957 });
1958 var _default = exports["default"] = MinimizeDiagonalIcon;
1959
1960 /***/ }),
1961
1962 /***/ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js":
1963 /*!****************************************************************!*\
1964 !*** ../modules/ai/assets/js/editor/icons/plus-circle-icon.js ***!
1965 \****************************************************************/
1966 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1967
1968 "use strict";
1969
1970
1971 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1972 Object.defineProperty(exports, "__esModule", ({
1973 value: true
1974 }));
1975 exports["default"] = void 0;
1976 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1977 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1978 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1979 var PlusCircleIcon = _react.default.forwardRef(function (props, ref) {
1980 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1981 viewBox: "0 0 24 24"
1982 }, props, {
1983 ref: ref
1984 }), /*#__PURE__*/_react.default.createElement("path", {
1985 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"
1986 }));
1987 });
1988 var _default = exports["default"] = PlusCircleIcon;
1989
1990 /***/ }),
1991
1992 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
1993 /*!************************************************************!*\
1994 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
1995 \************************************************************/
1996 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1997
1998 "use strict";
1999
2000
2001 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2002 Object.defineProperty(exports, "__esModule", ({
2003 value: true
2004 }));
2005 exports["default"] = void 0;
2006 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2007 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2008 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2009 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
2010 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2011 viewBox: "0 0 24 24"
2012 }, props, {
2013 ref: ref
2014 }), /*#__PURE__*/_react.default.createElement("path", {
2015 fillRule: "evenodd",
2016 clipRule: "evenodd",
2017 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"
2018 }), /*#__PURE__*/_react.default.createElement("path", {
2019 fillRule: "evenodd",
2020 clipRule: "evenodd",
2021 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"
2022 }));
2023 });
2024 var _default = exports["default"] = RefreshIcon;
2025
2026 /***/ }),
2027
2028 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
2029 /*!*********************************************************!*\
2030 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
2031 \*********************************************************/
2032 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2033
2034 "use strict";
2035
2036
2037 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2038 Object.defineProperty(exports, "__esModule", ({
2039 value: true
2040 }));
2041 exports["default"] = void 0;
2042 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2043 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2044 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2045 var WandIcon = _react.default.forwardRef(function (props, ref) {
2046 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2047 viewBox: "0 0 24 24"
2048 }, props, {
2049 ref: ref
2050 }), /*#__PURE__*/_react.default.createElement("path", {
2051 fillRule: "evenodd",
2052 clipRule: "evenodd",
2053 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"
2054 }), /*#__PURE__*/_react.default.createElement("path", {
2055 fillRule: "evenodd",
2056 clipRule: "evenodd",
2057 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"
2058 }), /*#__PURE__*/_react.default.createElement("path", {
2059 fillRule: "evenodd",
2060 clipRule: "evenodd",
2061 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"
2062 }));
2063 });
2064 var _default = exports["default"] = WandIcon;
2065
2066 /***/ }),
2067
2068 /***/ "../modules/ai/assets/js/editor/icons/website-icon.js":
2069 /*!************************************************************!*\
2070 !*** ../modules/ai/assets/js/editor/icons/website-icon.js ***!
2071 \************************************************************/
2072 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2073
2074 "use strict";
2075
2076
2077 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2078 Object.defineProperty(exports, "__esModule", ({
2079 value: true
2080 }));
2081 exports["default"] = void 0;
2082 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2083 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2084 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2085 var WebsiteIcon = _react.default.forwardRef(function (props, ref) {
2086 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2087 viewBox: "0 0 24 24"
2088 }, props, {
2089 ref: ref
2090 }), /*#__PURE__*/_react.default.createElement("path", {
2091 fillRule: "evenodd",
2092 clipRule: "evenodd",
2093 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"
2094 }));
2095 });
2096 var _default = exports["default"] = WebsiteIcon;
2097
2098 /***/ }),
2099
2100 /***/ "../modules/ai/assets/js/editor/icons/x-circle-icon.js":
2101 /*!*************************************************************!*\
2102 !*** ../modules/ai/assets/js/editor/icons/x-circle-icon.js ***!
2103 \*************************************************************/
2104 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2105
2106 "use strict";
2107
2108
2109 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2110 Object.defineProperty(exports, "__esModule", ({
2111 value: true
2112 }));
2113 exports["default"] = void 0;
2114 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2115 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2116 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2117 var XCircleIcon = _react.default.forwardRef(function (props, ref) {
2118 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2119 viewBox: "0 0 24 24"
2120 }, props, {
2121 ref: ref
2122 }), /*#__PURE__*/_react.default.createElement("path", {
2123 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"
2124 }));
2125 });
2126 var _default = exports["default"] = XCircleIcon;
2127
2128 /***/ }),
2129
2130 /***/ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js":
2131 /*!********************************************************************************************!*\
2132 !*** ../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js ***!
2133 \********************************************************************************************/
2134 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2135
2136 "use strict";
2137
2138
2139 var _require = __webpack_require__(/*! ../../utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js"),
2140 renderLayoutApp = _require.renderLayoutApp,
2141 importToEditor = _require.importToEditor;
2142 var _require2 = __webpack_require__(/*! ../../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js"),
2143 MODE_VARIATION = _require2.MODE_VARIATION;
2144 var _require3 = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"),
2145 __ = _require3.__;
2146 var _require4 = __webpack_require__(/*! ../../pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"),
2147 ATTACHMENT_TYPE_JSON = _require4.ATTACHMENT_TYPE_JSON,
2148 ELEMENTOR_LIBRARY_SOURCE = _require4.ELEMENTOR_LIBRARY_SOURCE;
2149 var ApplyTemplateForAiBehavior;
2150 ApplyTemplateForAiBehavior = Marionette.Behavior.extend({
2151 ui: {
2152 applyButton: '.elementor-template-library-template-apply-ai',
2153 generateVariation: '.elementor-template-library-template-generate-variation'
2154 },
2155 events: {
2156 'click @ui.applyButton': 'onApplyButtonClick',
2157 'click @ui.generateVariation': 'onGenerateVariationClick'
2158 },
2159 onGenerateVariationClick: function onGenerateVariationClick() {
2160 var _libraryComponent$man;
2161 var args = {
2162 model: this.view.model
2163 };
2164 var libraryComponent = $e.components.get('library');
2165 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;
2166 libraryComponent.downloadTemplate(args, function (data) {
2167 var model = args.model;
2168 var attachment = {
2169 type: ATTACHMENT_TYPE_JSON,
2170 previewHTML: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
2171 content: data.content[0],
2172 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
2173 source: ELEMENTOR_LIBRARY_SOURCE
2174 };
2175 renderLayoutApp({
2176 parentContainer: elementor.getPreviewContainer(),
2177 mode: MODE_VARIATION,
2178 at: at,
2179 attachments: [attachment],
2180 onInsert: function onInsert(template) {
2181 importToEditor({
2182 parentContainer: elementor.getPreviewContainer(),
2183 at: at,
2184 template: template,
2185 historyTitle: __('AI Variation from library', 'elementor')
2186 });
2187 }
2188 });
2189 $e.run('library/close');
2190 });
2191 },
2192 onApplyButtonClick: function onApplyButtonClick() {
2193 var args = {
2194 model: this.view.model
2195 };
2196 this.ui.applyButton.addClass('elementor-disabled');
2197 if ('remote' === args.model.get('source') && !elementor.config.library_connect.is_connected) {
2198 $e.route('library/connect', args);
2199 return;
2200 }
2201 $e.run('library/generate-ai-variation', args);
2202 }
2203 });
2204 module.exports = ApplyTemplateForAiBehavior;
2205
2206 /***/ }),
2207
2208 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2209 /*!************************************************************!*\
2210 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2211 \************************************************************/
2212 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2213
2214 "use strict";
2215
2216
2217 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2218 Object.defineProperty(exports, "__esModule", ({
2219 value: true
2220 }));
2221 exports["default"] = void 0;
2222 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2223 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2224 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2225 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2226 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2227 rtl: props.isRTL
2228 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2229 colorScheme: props.colorScheme
2230 }, props.children));
2231 };
2232 LayoutAppWrapper.propTypes = {
2233 children: _propTypes.default.node,
2234 isRTL: _propTypes.default.bool,
2235 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2236 };
2237 var _default = exports["default"] = LayoutAppWrapper;
2238
2239 /***/ }),
2240
2241 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2242 /*!****************************************************!*\
2243 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2244 \****************************************************/
2245 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2246
2247 "use strict";
2248
2249
2250 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2251 Object.defineProperty(exports, "__esModule", ({
2252 value: true
2253 }));
2254 exports["default"] = void 0;
2255 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2256 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2257 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2258 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2259 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2260 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2261 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2262 var LayoutApp = function LayoutApp(props) {
2263 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2264 onError: props.onClose
2265 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2266 mode: props.mode,
2267 attachmentsTypes: props.attachmentsTypes,
2268 onClose: props.onClose,
2269 onConnect: props.onConnect,
2270 onData: props.onData,
2271 onInsert: props.onInsert,
2272 onSelect: props.onSelect,
2273 onGenerate: props.onGenerate,
2274 currentContext: props.currentContext,
2275 hasPro: props.hasPro
2276 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2277 attachments: props.attachments
2278 }))));
2279 };
2280 LayoutApp.propTypes = {
2281 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2282 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2283 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2284 onClose: _propTypes.default.func.isRequired,
2285 onConnect: _propTypes.default.func.isRequired,
2286 onData: _propTypes.default.func.isRequired,
2287 onInsert: _propTypes.default.func.isRequired,
2288 onSelect: _propTypes.default.func.isRequired,
2289 onGenerate: _propTypes.default.func.isRequired,
2290 currentContext: _propTypes.default.object,
2291 hasPro: _propTypes.default.bool
2292 };
2293 var _default = exports["default"] = LayoutApp;
2294
2295 /***/ }),
2296
2297 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2298 /*!********************************************************!*\
2299 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2300 \********************************************************/
2301 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2302
2303 "use strict";
2304
2305
2306 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2307 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2308 Object.defineProperty(exports, "__esModule", ({
2309 value: true
2310 }));
2311 exports["default"] = void 0;
2312 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2313 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2314 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2315 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2316 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2317 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2318 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2319 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2320 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2321 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2322 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2323 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2324 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2325 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2326 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2327 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2328 var LayoutContent = function LayoutContent(props) {
2329 var _useUserInfo = (0, _useUserInfo2.default)(),
2330 isLoading = _useUserInfo.isLoading,
2331 isConnected = _useUserInfo.isConnected,
2332 isGetStarted = _useUserInfo.isGetStarted,
2333 connectUrl = _useUserInfo.connectUrl,
2334 fetchData = _useUserInfo.fetchData,
2335 hasSubscription = _useUserInfo.hasSubscription,
2336 initialUsagePercentage = _useUserInfo.usagePercentage;
2337 var _useConfig = (0, _config.useConfig)(),
2338 onClose = _useConfig.onClose,
2339 onConnect = _useConfig.onConnect;
2340 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2341 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2342 usagePercentage = _useRequestIds.usagePercentage;
2343 var _useState = (0, _react.useState)(false),
2344 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2345 isInitUsageDone = _useState2[0],
2346 setIsInitUsageDone = _useState2[1];
2347 (0, _react.useEffect)(function () {
2348 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2349 updateUsagePercentage(initialUsagePercentage);
2350 setIsInitUsageDone(true);
2351 }
2352 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2353 if (isLoading || !isInitUsageDone) {
2354 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2355 onClose: onClose
2356 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2357 onClose: onClose
2358 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2359 dividers: true
2360 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2361 BoxProps: {
2362 sx: {
2363 px: 3
2364 }
2365 }
2366 })));
2367 }
2368 if (!isConnected) {
2369 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2370 onClose: onClose
2371 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2372 onClose: onClose
2373 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2374 dividers: true
2375 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2376 connectUrl: connectUrl,
2377 onSuccess: function onSuccess(data) {
2378 onConnect(data);
2379 fetchData();
2380 }
2381 })));
2382 }
2383 if (!isGetStarted) {
2384 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2385 onClose: onClose
2386 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2387 onClose: onClose
2388 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2389 dividers: true
2390 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2391 onSuccess: fetchData
2392 })));
2393 }
2394 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2395 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2396 attachments: props.attachments,
2397 DialogHeaderProps: {
2398 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2399 hasSubscription: hasSubscription,
2400 usagePercentage: usagePercentage
2401 })
2402 }
2403 });
2404 };
2405 LayoutContent.propTypes = {
2406 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2407 };
2408 var _default = exports["default"] = LayoutContent;
2409
2410 /***/ }),
2411
2412 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2413 /*!*************************************************************!*\
2414 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2415 \*************************************************************/
2416 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2417
2418 "use strict";
2419
2420
2421 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2422 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2423 Object.defineProperty(exports, "__esModule", ({
2424 value: true
2425 }));
2426 exports["default"] = void 0;
2427 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2428 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2429 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2430 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2431 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2432 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2433 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2434 var Connect = function Connect(_ref) {
2435 var connectUrl = _ref.connectUrl,
2436 onSuccess = _ref.onSuccess;
2437 var approveButtonRef = (0, _react.useRef)();
2438 (0, _react.useEffect)(function () {
2439 // On local dev (as a standalone app), the connect lib is not loaded.
2440 if (!jQuery.fn.elementorConnect) {
2441 return;
2442 }
2443 jQuery(approveButtonRef.current).elementorConnect({
2444 success: function success(_, data) {
2445 return onSuccess(data);
2446 },
2447 error: function error() {
2448 throw new Error('Elementor AI: Failed to connect.');
2449 }
2450 });
2451 }, []);
2452 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2453 alignItems: "center",
2454 gap: 2
2455 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2456 sx: {
2457 color: 'text.primary',
2458 fontSize: '60px',
2459 mb: 1
2460 }
2461 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2462 variant: "h4",
2463 sx: {
2464 color: 'text.primary'
2465 }
2466 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2467 variant: "body2"
2468 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2469 variant: "caption",
2470 sx: {
2471 maxWidth: 520,
2472 textAlign: 'center'
2473 }
2474 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2475 href: "https://go.elementor.com/ai-terms/",
2476 target: "_blank",
2477 color: "info.main"
2478 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2479 href: "https://go.elementor.com/ai-privacy-policy/",
2480 target: "_blank",
2481 color: "info.main"
2482 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2483 ref: approveButtonRef,
2484 href: connectUrl,
2485 variant: "contained",
2486 sx: {
2487 mt: 1,
2488 '&:hover': {
2489 color: 'primary.contrastText'
2490 }
2491 }
2492 }, (0, _i18n.__)('Connect', 'elementor')));
2493 };
2494 Connect.propTypes = {
2495 connectUrl: _propTypes.default.string.isRequired,
2496 onSuccess: _propTypes.default.func.isRequired
2497 };
2498 var _default = exports["default"] = Connect;
2499
2500 /***/ }),
2501
2502 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2503 /*!**********************************************************************************!*\
2504 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2505 \**********************************************************************************/
2506 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2507
2508 "use strict";
2509
2510
2511 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2512 Object.defineProperty(exports, "__esModule", ({
2513 value: true
2514 }));
2515 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;
2516 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2517 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2518 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2519 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2520 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2521 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2522 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2523 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2524 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2525 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2526 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2527 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2528 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2529 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2530 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2531 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2532 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2533 var Attachments = function Attachments(props) {
2534 if (!props.attachments.length) {
2535 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2536 disabled: props.disabled,
2537 onAttach: props.onAttach,
2538 items: [{
2539 title: (0, _i18n.__)('Reference a website', 'elementor'),
2540 icon: _websiteIcon.default,
2541 type: ATTACHMENT_TYPE_URL
2542 }, {
2543 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2544 icon: _copyPageIcon.default,
2545 type: MENU_TYPE_LIBRARY
2546 }]
2547 });
2548 }
2549 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2550 direction: "row",
2551 spacing: 1
2552 }, props.attachments.map(function (attachment, index) {
2553 switch (attachment.type) {
2554 case ATTACHMENT_TYPE_JSON:
2555 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2556 key: index
2557 }, props));
2558 case ATTACHMENT_TYPE_URL:
2559 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2560 key: index
2561 }, props));
2562 default:
2563 return null;
2564 }
2565 }));
2566 };
2567 Attachments.propTypes = {
2568 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2569 onAttach: _propTypes.default.func.isRequired,
2570 onDetach: _propTypes.default.func,
2571 disabled: _propTypes.default.bool
2572 };
2573 var _default = exports["default"] = Attachments;
2574
2575 /***/ }),
2576
2577 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2578 /*!************************************************************************************************!*\
2579 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2580 \************************************************************************************************/
2581 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2582
2583 "use strict";
2584
2585
2586 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2587 Object.defineProperty(exports, "__esModule", ({
2588 value: true
2589 }));
2590 exports["default"] = exports.AttachDialog = void 0;
2591 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2592 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2593 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2594 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2595 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2596 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2597 var type = props.type;
2598 var url = props.url;
2599 switch (type) {
2600 case _attachments.ATTACHMENT_TYPE_URL:
2601 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2602 url: url,
2603 onAttach: props.onAttach,
2604 onClose: props.onClose
2605 });
2606 case _attachments.MENU_TYPE_LIBRARY:
2607 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2608 onAttach: props.onAttach,
2609 onClose: props.onClose
2610 });
2611 }
2612 return null;
2613 };
2614 AttachDialog.propTypes = {
2615 type: _propTypes.default.string,
2616 onAttach: _propTypes.default.func,
2617 onClose: _propTypes.default.func,
2618 url: _propTypes.default.string
2619 };
2620 var _default = exports["default"] = AttachDialog;
2621
2622 /***/ }),
2623
2624 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2625 /*!*************************************************************************************************!*\
2626 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2627 \*************************************************************************************************/
2628 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2629
2630 "use strict";
2631
2632
2633 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2634 Object.defineProperty(exports, "__esModule", ({
2635 value: true
2636 }));
2637 exports.LibraryDialog = void 0;
2638 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2639 var _react = __webpack_require__(/*! react */ "react");
2640 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2641 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2642 var isApplyingTemplate = (0, _react.useRef)(false);
2643 (0, _react.useEffect)(function () {
2644 var onLibraryHide = function onLibraryHide() {
2645 if (isApplyingTemplate.current) {
2646 return;
2647 }
2648 props.onClose();
2649 };
2650 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2651 return function () {
2652 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2653 };
2654 }, [props]);
2655 (0, _react.useEffect)(function () {
2656 var onMessage = function onMessage(event) {
2657 var _event$data = event.data,
2658 type = _event$data.type,
2659 json = _event$data.json,
2660 html = _event$data.html,
2661 label = _event$data.label,
2662 source = _event$data.source;
2663 switch (type) {
2664 case 'library/attach:start':
2665 isApplyingTemplate.current = true;
2666 break;
2667 case 'library/attach':
2668 props.onAttach([{
2669 type: _attachments.ATTACHMENT_TYPE_JSON,
2670 previewHTML: html,
2671 content: json,
2672 label: label,
2673 source: source
2674 }]);
2675 isApplyingTemplate.current = false;
2676 props.onClose();
2677 break;
2678 }
2679 };
2680 window.addEventListener('message', onMessage);
2681 return function () {
2682 window.removeEventListener('message', onMessage);
2683 };
2684 });
2685 $e.run('library/open', {
2686 toDefault: true,
2687 mode: 'ai-attachment'
2688 });
2689 isApplyingTemplate.current = false;
2690 return null;
2691 };
2692 LibraryDialog.propTypes = {
2693 onAttach: _propTypes.default.func.isRequired,
2694 onClose: _propTypes.default.func.isRequired
2695 };
2696
2697 /***/ }),
2698
2699 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2700 /*!***************************************************************************************!*\
2701 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2702 \***************************************************************************************/
2703 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2704
2705 "use strict";
2706
2707
2708 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2709 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2710 Object.defineProperty(exports, "__esModule", ({
2711 value: true
2712 }));
2713 exports.Menu = void 0;
2714 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2715 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2716 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2717 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2718 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2719 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2720 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2721 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2722 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2723 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2724 var Menu = exports.Menu = function Menu(props) {
2725 var _useState = (0, _react.useState)(false),
2726 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2727 isOpen = _useState2[0],
2728 setIsOpen = _useState2[1];
2729 var _useState3 = (0, _react.useState)(null),
2730 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2731 selectedType = _useState4[0],
2732 setSelectedType = _useState4[1];
2733 var _useTheme = (0, _ui.useTheme)(),
2734 direction = _useTheme.direction;
2735 var anchorRef = (0, _react.useRef)(null);
2736 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2737 isViewed = _useIntroduction.isViewed,
2738 markAsViewed = _useIntroduction.markAsViewed;
2739 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2740 size: "small",
2741 ref: anchorRef,
2742 disabled: props.disabled,
2743 onClick: function onClick() {
2744 setIsOpen(true);
2745 if (!isViewed) {
2746 markAsViewed();
2747 }
2748 },
2749 color: "secondary"
2750 }, function () {
2751 if (isOpen) {
2752 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2753 fontSize: "small"
2754 });
2755 } else if (isViewed) {
2756 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2757 fontSize: "small"
2758 });
2759 }
2760 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2761 color: "primary",
2762 badgeContent: " ",
2763 variant: "dot"
2764 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2765 fontSize: "small"
2766 }));
2767 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2768 open: isOpen,
2769 anchorEl: anchorRef.current,
2770 onClose: function onClose() {
2771 return setIsOpen(false);
2772 },
2773 anchorOrigin: {
2774 vertical: 'bottom',
2775 horizontal: 'rtl' === direction ? 'right' : 'left'
2776 },
2777 transformOrigin: {
2778 vertical: 'top',
2779 horizontal: 'rtl' === direction ? 'right' : 'left'
2780 }
2781 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2782 sx: {
2783 width: 440
2784 }
2785 }, props.items.map(function (item) {
2786 var IconComponent = item.icon;
2787 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2788 key: item.type,
2789 onClick: function onClick() {
2790 setSelectedType(item.type);
2791 setIsOpen(false);
2792 }
2793 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2794 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2795 type: selectedType,
2796 onAttach: props.onAttach,
2797 onClose: function onClose() {
2798 setIsOpen(false);
2799 setSelectedType(null);
2800 }
2801 }));
2802 };
2803 Menu.propTypes = {
2804 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2805 title: _propTypes.default.string.isRequired,
2806 type: _propTypes.default.string.isRequired,
2807 icon: _propTypes.default.elementType
2808 })).isRequired,
2809 onAttach: _propTypes.default.func.isRequired,
2810 disabled: _propTypes.default.bool
2811 };
2812
2813 /***/ }),
2814
2815 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2816 /*!******************************************************************************************************!*\
2817 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2818 \******************************************************************************************************/
2819 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2820
2821 "use strict";
2822
2823
2824 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2825 Object.defineProperty(exports, "__esModule", ({
2826 value: true
2827 }));
2828 exports.PromptPowerNotice = void 0;
2829 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2830 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2831 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2832 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2833 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2834 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2835 isViewed = _useIntroduction.isViewed,
2836 markAsViewed = _useIntroduction.markAsViewed;
2837 if (isViewed) {
2838 return null;
2839 }
2840 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2841 sx: {
2842 pt: 2,
2843 px: 2,
2844 pb: 0
2845 }
2846 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2847 severity: "info",
2848 onClose: function onClose() {
2849 return markAsViewed();
2850 }
2851 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2852 variant: "body2",
2853 display: "inline-block",
2854 sx: {
2855 paddingInlineEnd: 1
2856 }
2857 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2858 variant: "body2",
2859 display: "inline-block"
2860 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2861 };
2862
2863 /***/ }),
2864
2865 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2866 /*!*************************************************************************************************!*\
2867 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2868 \*************************************************************************************************/
2869 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2870
2871 "use strict";
2872
2873
2874 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2875 Object.defineProperty(exports, "__esModule", ({
2876 value: true
2877 }));
2878 exports["default"] = exports.ThumbnailJson = void 0;
2879 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2880 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2881 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2882 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2883 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2884 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2885 var _props$attachments;
2886 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2887 return 'json' === item.type;
2888 });
2889 if (!attachment) {
2890 return null;
2891 }
2892 if (!attachment.previewHTML) {
2893 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2894 animation: "wave",
2895 variant: "rounded",
2896 width: 60,
2897 height: 60
2898 });
2899 }
2900 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2901 html: attachment.previewHTML,
2902 disabled: props.disabled
2903 });
2904 };
2905 ThumbnailJson.propTypes = {
2906 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2907 disabled: _propTypes.default.bool
2908 };
2909 var _default = exports["default"] = ThumbnailJson;
2910
2911 /***/ }),
2912
2913 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2914 /*!************************************************************************************************!*\
2915 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2916 \************************************************************************************************/
2917 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2918
2919 "use strict";
2920
2921
2922 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2923 Object.defineProperty(exports, "__esModule", ({
2924 value: true
2925 }));
2926 exports["default"] = exports.ThumbnailUrl = void 0;
2927 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2928 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2929 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2930 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2931 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2932 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2933 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2934 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2935 var _props$attachments;
2936 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2937 return 'url' === item.type;
2938 });
2939 if (!attachment) {
2940 return null;
2941 }
2942 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2943 sx: {
2944 position: 'relative',
2945 '&:hover::before': {
2946 content: '""',
2947 position: 'absolute',
2948 userSelect: 'none',
2949 inset: 0,
2950 backgroundColor: 'rgba(0,0,0,0.6)',
2951 borderRadius: 1,
2952 zIndex: 1
2953 },
2954 '&:hover .remove-attachment': {
2955 display: 'flex'
2956 }
2957 }
2958 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2959 className: "remove-attachment",
2960 size: "small",
2961 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2962 disabled: props.disabled,
2963 onClick: function onClick(event) {
2964 event.stopPropagation();
2965 props.onDetach();
2966 },
2967 sx: {
2968 display: 'none',
2969 position: 'absolute',
2970 insetInlineEnd: 4,
2971 insetBlockStart: 4,
2972 backgroundColor: 'secondary.main',
2973 zIndex: 1,
2974 borderRadius: 1,
2975 p: '3px',
2976 '&:hover': {
2977 backgroundColor: 'secondary.dark'
2978 }
2979 }
2980 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2981 sx: {
2982 fontSize: '1.125rem',
2983 color: 'common.white'
2984 }
2985 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2986 disabled: props.disabled,
2987 html: attachment.previewHTML
2988 }));
2989 };
2990 ThumbnailUrl.propTypes = {
2991 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2992 disabled: _propTypes.default.bool,
2993 onDetach: _propTypes.default.func
2994 };
2995 var _default = exports["default"] = ThumbnailUrl;
2996
2997 /***/ }),
2998
2999 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3000 /*!********************************************************************************************!*\
3001 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3002 \********************************************************************************************/
3003 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3004
3005 "use strict";
3006
3007
3008 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3009 Object.defineProperty(exports, "__esModule", ({
3010 value: true
3011 }));
3012 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3013 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3014 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3015 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3016 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3017 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3018 var _templateObject;
3019 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3020 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);
3021 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3022 var _props$html$match, _props$html$match2;
3023 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;
3024 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;
3025 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3026 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3027 var scaleFactor = Math.min(height, width);
3028 var scale = THUMBNAIL_SIZE / scaleFactor;
3029
3030 // Center the preview
3031 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3032 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3033 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3034 dir: "ltr",
3035 sx: {
3036 position: 'relative',
3037 cursor: 'default',
3038 overflow: 'hidden',
3039 border: '1px solid',
3040 borderColor: 'grey.300',
3041 borderRadius: 1,
3042 boxSizing: 'border-box',
3043 width: THUMBNAIL_SIZE,
3044 height: THUMBNAIL_SIZE,
3045 opacity: props.disabled ? 0.5 : 1
3046 }
3047 }, /*#__PURE__*/_react.default.createElement("iframe", {
3048 title: (0, _i18n.__)('Preview', 'elementor'),
3049 sandbox: "",
3050 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3051 style: {
3052 border: 'none',
3053 overflow: 'hidden',
3054 width: width,
3055 height: height,
3056 transform: "scale(".concat(scale, ")"),
3057 transformOrigin: "".concat(left, "px ").concat(top, "px")
3058 }
3059 }));
3060 };
3061 Thumbnail.propTypes = {
3062 html: _propTypes.default.string.isRequired,
3063 disabled: _propTypes.default.bool
3064 };
3065
3066 /***/ }),
3067
3068 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3069 /*!*********************************************************************************************!*\
3070 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3071 \*********************************************************************************************/
3072 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3073
3074 "use strict";
3075
3076
3077 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3078 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3079 Object.defineProperty(exports, "__esModule", ({
3080 value: true
3081 }));
3082 exports.UrlDialog = void 0;
3083 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3084 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3085 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3086 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3087 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3088 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3089 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3090 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3091 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3092 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3093 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3094 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3095 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
3096 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3097 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3098 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3099 isTimeout = _useTimeout2[0],
3100 turnOffTimeout = _useTimeout2[1];
3101 var _useUserInfo = (0, _useUserInfo2.default)(),
3102 isLoading = _useUserInfo.isLoading,
3103 initialUsagePercentage = _useUserInfo.usagePercentage;
3104 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3105 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3106 var _useState = (0, _react.useState)(false),
3107 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3108 isInitUsageDone = _useState2[0],
3109 setIsInitUsageDone = _useState2[1];
3110 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3111 remoteConfig = _useRemoteConfig.remoteConfig;
3112 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3113 var urlObject = builderUrl ? new URL(builderUrl) : {};
3114 var iframeOrigin = urlObject.origin;
3115 var isOpen = (0, _react.useRef)(false);
3116 (0, _react.useEffect)(function () {
3117 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3118 updateUsagePercentage(initialUsagePercentage);
3119 setIsInitUsageDone(true);
3120 }
3121 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3122 (0, _react.useEffect)(function () {
3123 if (!isOpen.current) {
3124 try {
3125 window.$e.run('ai-integration/open-choose-element', {
3126 url: props.url
3127 });
3128 isOpen.current = true;
3129 } catch (error) {
3130 // eslint-disable-next-line no-console
3131 console.error(error);
3132 }
3133 }
3134 }, [isOpen.current]);
3135 (0, _react.useEffect)(function () {
3136 var onMessage = function onMessage(event) {
3137 if (event.origin !== iframeOrigin) {
3138 return;
3139 }
3140 var _event$data = event.data,
3141 type = _event$data.type,
3142 html = _event$data.html,
3143 url = _event$data.url;
3144 switch (type) {
3145 case 'element-selector/close':
3146 isOpen.current = false;
3147 props.onClose();
3148 break;
3149 case 'element-selector/loaded':
3150 turnOffTimeout();
3151 isOpen.current = true;
3152 break;
3153 case 'element-selector/attach':
3154 props.onAttach([{
3155 type: 'url',
3156 previewHTML: html,
3157 content: html,
3158 label: url ? new URL(url).href : '',
3159 source: _attachments.USER_URL_SOURCE
3160 }]);
3161 break;
3162 }
3163 };
3164 window.addEventListener('message', onMessage);
3165 return function () {
3166 window.removeEventListener('message', onMessage);
3167 };
3168 }, [iframeOrigin, props, turnOffTimeout]);
3169 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3170 open: true,
3171 maxWidth: "lg"
3172 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3173 sx: {
3174 textAlign: 'center',
3175 padding: 3
3176 }
3177 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3178 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3179 onClose: props.onClose
3180 }));
3181 };
3182 UrlDialog.propTypes = {
3183 onAttach: _propTypes.default.func.isRequired,
3184 onClose: _propTypes.default.func.isRequired,
3185 url: _propTypes.default.string
3186 };
3187
3188 /***/ }),
3189
3190 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3191 /*!************************************************************************************!*\
3192 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3193 \************************************************************************************/
3194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3195
3196 "use strict";
3197
3198
3199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3200 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3201 Object.defineProperty(exports, "__esModule", ({
3202 value: true
3203 }));
3204 exports["default"] = void 0;
3205 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3206 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3207 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3208 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3209 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3210 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3211 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3212 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3213 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3214 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3215 var _excluded = ["sx", "PaperProps"];
3216 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3217 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
3218 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; }
3219 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; }
3220 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3221 return {
3222 '& .MuiDialog-container': {
3223 marginTop: 0,
3224 alignItems: 'flex-end',
3225 paddingBottom: '16vh'
3226 },
3227 '& .MuiPaper-root': {
3228 margin: 0,
3229 maxHeight: '80vh'
3230 }
3231 };
3232 });
3233 var DialogHeader = function DialogHeader(_ref) {
3234 var onClose = _ref.onClose,
3235 children = _ref.children;
3236 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3237 sx: {
3238 fontWeight: 'normal'
3239 },
3240 color: "transparent",
3241 position: "relative"
3242 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3243 variant: "dense"
3244 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3245 sx: {
3246 mr: 1
3247 }
3248 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3249 component: "span",
3250 variant: "subtitle2",
3251 sx: {
3252 fontWeight: 'bold',
3253 textTransform: 'uppercase'
3254 }
3255 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3256 label: (0, _i18n.__)('Beta', 'elementor'),
3257 color: "default",
3258 size: "small",
3259 sx: {
3260 ml: 1
3261 }
3262 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3263 direction: "row",
3264 spacing: 1,
3265 alignItems: "center",
3266 sx: {
3267 ml: 'auto'
3268 }
3269 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3270 size: "small",
3271 "aria-label": "close",
3272 onClick: onClose,
3273 sx: {
3274 '&.MuiButtonBase-root': {
3275 mr: -1
3276 }
3277 }
3278 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3279 };
3280 DialogHeader.propTypes = {
3281 children: _propTypes.default.node,
3282 onClose: _propTypes.default.func.isRequired
3283 };
3284 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3285 return {
3286 '&.MuiDialogContent-root': {
3287 padding: 0
3288 }
3289 };
3290 });
3291 var LayoutDialog = function LayoutDialog(_ref2) {
3292 var _ref2$sx = _ref2.sx,
3293 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3294 _ref2$PaperProps = _ref2.PaperProps,
3295 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3296 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3297 var _useState = (0, _react.useState)({
3298 pointerEvents: 'none'
3299 }),
3300 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3301 sxStyle = _useState2[0],
3302 setSxStyle = _useState2[1];
3303 var timeoutRef = (0, _react.useRef)(null);
3304
3305 /**
3306 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3307 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3308 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3309 */
3310 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3311 maxWidth: "md",
3312 PaperProps: _objectSpread({
3313 sx: {
3314 pointerEvents: 'auto'
3315 },
3316 onMouseEnter: function onMouseEnter() {
3317 clearTimeout(timeoutRef.current);
3318 setSxStyle({
3319 pointerEvents: 'all'
3320 });
3321 },
3322 onMouseLeave: function onMouseLeave() {
3323 clearTimeout(timeoutRef.current);
3324 timeoutRef.current = setTimeout(function () {
3325 setSxStyle({
3326 pointerEvents: 'none'
3327 });
3328 }, 200);
3329 }
3330 }, PaperProps)
3331 }, props, {
3332 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3333 }));
3334 };
3335 LayoutDialog.propTypes = {
3336 sx: _propTypes.default.object,
3337 PaperProps: _propTypes.default.object
3338 };
3339 LayoutDialog.Header = DialogHeader;
3340 LayoutDialog.Content = StyledDialogContent;
3341 var _default = exports["default"] = LayoutDialog;
3342
3343 /***/ }),
3344
3345 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3346 /*!*********************************************************************************************!*\
3347 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3348 \*********************************************************************************************/
3349 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3350
3351 "use strict";
3352
3353
3354 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3355 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3356 Object.defineProperty(exports, "__esModule", ({
3357 value: true
3358 }));
3359 exports.ProTemplateIndicator = void 0;
3360 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3361 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3362 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3363 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3364 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3365 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3366 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
3367 var popoverId = 'e-pro-upgrade-popover';
3368 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3369 var theme = _ref.theme;
3370 return {
3371 position: 'relative',
3372 padding: theme.spacing(3),
3373 boxShadow: theme.shadows[4],
3374 zIndex: '9999'
3375 };
3376 });
3377 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3378 var theme = _ref2.theme;
3379 return {
3380 position: 'absolute',
3381 width: theme.spacing(5),
3382 height: theme.spacing(5),
3383 overflow: 'hidden',
3384 // Override Popper inline styles.
3385 left: '100% !important',
3386 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3387 '&::after': {
3388 backgroundColor: theme.palette.background.paper,
3389 content: '""',
3390 display: 'block',
3391 position: 'absolute',
3392 width: theme.spacing(2.5),
3393 height: theme.spacing(2.5),
3394 top: '50%',
3395 left: '50%',
3396 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3397 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3398 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3399 }
3400 };
3401 });
3402 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3403 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3404 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3405 var _useState = (0, _react.useState)(false),
3406 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3407 isPopoverOpen = _useState2[0],
3408 setIsPopoverOpen = _useState2[1];
3409 var anchorEl = (0, _react.useRef)(null);
3410 var arrowEl = (0, _react.useRef)(null);
3411 var showPopover = function showPopover() {
3412 return setIsPopoverOpen(true);
3413 };
3414 var hidePopover = function hidePopover() {
3415 return setIsPopoverOpen(false);
3416 };
3417 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3418 flexDirection: "row-reverse",
3419 component: "span",
3420 display: "flex",
3421 onMouseLeave: hidePopover,
3422 alignItems: "center"
3423 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3424 ref: anchorEl,
3425 onMouseEnter: showPopover,
3426 onClick: function onClick(e) {
3427 return e.stopPropagation();
3428 } /* Do nothing */,
3429 "aria-owns": isPopoverOpen ? popoverId : undefined,
3430 "aria-haspopup": "true",
3431 sx: {
3432 m: 1,
3433 '&:hover': {
3434 backgroundColor: 'action.selected'
3435 }
3436 }
3437 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3438 sx: {
3439 color: 'text.primary'
3440 }
3441 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3442 open: isPopoverOpen,
3443 popperOptions: {
3444 placement: 'left-start',
3445 modifiers: [{
3446 name: 'arrow',
3447 enabled: true,
3448 options: {
3449 element: arrowEl.current,
3450 padding: 5
3451 }
3452 }, {
3453 name: 'offset',
3454 options: {
3455 offset: [0, 10]
3456 }
3457 }]
3458 },
3459 anchorEl: anchorEl.current,
3460 sx: {
3461 zIndex: '9999',
3462 maxWidth: 300
3463 }
3464 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3465 ref: arrowEl
3466 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3467 alignItems: "start",
3468 spacing: 2
3469 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3470 color: "promotion",
3471 variant: "outlined",
3472 size: "small",
3473 label: (0, _i18n.__)('Pro', 'elementor'),
3474 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3475 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3476 variant: "body2"
3477 }, (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, {
3478 variant: "contained",
3479 color: "promotion",
3480 size: "small",
3481 href: actionUrl,
3482 target: "_blank",
3483 sx: {
3484 alignSelf: 'flex-end'
3485 }
3486 }, actionLabel)))));
3487 };
3488
3489 /***/ }),
3490
3491 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3492 /*!******************************************************************************************!*\
3493 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3494 \******************************************************************************************/
3495 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3496
3497 "use strict";
3498
3499
3500 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3501 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3502 Object.defineProperty(exports, "__esModule", ({
3503 value: true
3504 }));
3505 exports["default"] = void 0;
3506 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3507 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3508 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3509 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3510 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3511 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3512 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3513 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3514 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3515 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3516 var _excluded = ["onSubmit"];
3517 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3518 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
3519 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3520 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3521 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3522 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3523 // eslint-disable-next-line jsx-a11y/no-autofocus
3524 , (0, _extends2.default)({
3525 autoFocus: true,
3526 multiline: true,
3527 size: "small",
3528 maxRows: 3,
3529 color: "secondary",
3530 variant: "standard"
3531 }, props, {
3532 inputRef: ref,
3533 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3534 type: 'search',
3535 sx: {
3536 pt: 0
3537 }
3538 })
3539 }));
3540 });
3541 TextInput.propTypes = {
3542 InputProps: _propTypes.default.object
3543 };
3544 var PaperComponent = function PaperComponent(props) {
3545 var _useConfig = (0, _config.useConfig)(),
3546 mode = _useConfig.mode;
3547 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3548 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3549 elevation: 8,
3550 sx: {
3551 borderRadius: 2
3552 }
3553 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3554 component: _ui.Box,
3555 color: function color(theme) {
3556 return theme.palette.text.tertiary;
3557 },
3558 variant: "caption",
3559 paddingX: 2,
3560 paddingY: 1
3561 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3562 sx: {
3563 m: 2
3564 }
3565 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3566 libraryLink: libraryLink
3567 })));
3568 };
3569 PaperComponent.propTypes = {
3570 children: _propTypes.default.node
3571 };
3572 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3573 var onSubmit = _ref.onSubmit,
3574 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3575 var _useState = (0, _react.useState)(false),
3576 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3577 showSuggestions = _useState2[0],
3578 setShowSuggestions = _useState2[1];
3579 var theme = (0, _ui.useTheme)();
3580 var itemHeight = parseInt(theme.spacing(4));
3581 var maxItems = 5;
3582 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3583 PaperComponent: PaperComponent,
3584 ListboxProps: {
3585 sx: {
3586 maxHeight: maxItems * itemHeight
3587 }
3588 },
3589 renderOption: function renderOption(optionProps, option) {
3590 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3591 title: option.text,
3592 noWrap: true,
3593 variant: "body2",
3594 component: _ui.Box,
3595 sx: {
3596 '&.MuiAutocomplete-option': {
3597 display: 'block',
3598 minHeight: itemHeight
3599 }
3600 }
3601 }), option.text);
3602 },
3603 freeSolo: true,
3604 fullWidth: true,
3605 disableClearable: true,
3606 open: showSuggestions,
3607 onClose: function onClose(e) {
3608 var _e$relatedTarget;
3609 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3610 },
3611 onKeyDown: function onKeyDown(e) {
3612 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3613 onSubmit(e);
3614 } else if ('/' === e.key && '' === e.target.value) {
3615 e.preventDefault();
3616 setShowSuggestions(true);
3617 }
3618 }
3619 }, props));
3620 };
3621 PromptAutocomplete.propTypes = {
3622 onSubmit: _propTypes.default.func.isRequired
3623 };
3624 PromptAutocomplete.TextInput = TextInput;
3625 var _default = exports["default"] = PromptAutocomplete;
3626
3627 /***/ }),
3628
3629 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3630 /*!**********************************************************************************!*\
3631 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3632 \**********************************************************************************/
3633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3634
3635 "use strict";
3636
3637
3638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3639 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3640 Object.defineProperty(exports, "__esModule", ({
3641 value: true
3642 }));
3643 exports["default"] = void 0;
3644 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3645 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3646 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3647 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3648 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3649 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3650 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3651 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3652 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3653 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3654 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3655 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3656 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3657 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3658 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3659 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3660 var _excluded = ["tooltip"];
3661 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3662 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4213 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4214 var RemoteConfigContext = _react.default.createContext({});
4215 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4216 return _react.default.useContext(RemoteConfigContext);
4217 };
4218 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4219 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4220 AUTH_TOKEN: 'jwt'
4221 };
4222 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4223 var _useState = (0, _react.useState)(false),
4224 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4225 isLoading = _useState2[0],
4226 setIsLoading = _useState2[1];
4227 var _useState3 = (0, _react.useState)(false),
4228 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4229 isLoaded = _useState4[0],
4230 setIsLoaded = _useState4[1];
4231 var _useState5 = (0, _react.useState)(false),
4232 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4233 isError = _useState6[0],
4234 setIsError = _useState6[1];
4235 var _useState7 = (0, _react.useState)({}),
4236 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4237 remoteConfig = _useState8[0],
4238 setRemoteConfig = _useState8[1];
4239 var fetchData = /*#__PURE__*/function () {
4240 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4241 var result;
4242 return _regenerator.default.wrap(function _callee$(_context) {
4243 while (1) switch (_context.prev = _context.next) {
4244 case 0:
4245 setIsLoading(true);
4246 setIsError(false);
4247 _context.prev = 2;
4248 _context.next = 5;
4249 return (0, _api.getRemoteConfig)().finally(function () {
4250 setIsLoaded(true);
4251 setIsLoading(false);
4252 });
4253 case 5:
4254 result = _context.sent;
4255 if (result.config) {
4256 _context.next = 8;
4257 break;
4258 }
4259 throw new Error('Invalid remote config');
4260 case 8:
4261 setRemoteConfig(result.config);
4262 _context.next = 16;
4263 break;
4264 case 11:
4265 _context.prev = 11;
4266 _context.t0 = _context["catch"](2);
4267 setIsError(true);
4268 setIsLoaded(true);
4269 setIsLoading(false);
4270 case 16:
4271 case "end":
4272 return _context.stop();
4273 }
4274 }, _callee, null, [[2, 11]]);
4275 }));
4276 return function fetchData() {
4277 return _ref.apply(this, arguments);
4278 };
4279 }();
4280 (0, _react.useEffect)(function () {
4281 window.addEventListener('elementor/connect/success', fetchData);
4282 return function () {
4283 window.removeEventListener('elementor/connect/success', fetchData);
4284 };
4285 }, []);
4286 if (!isLoaded && !isLoading) {
4287 fetchData();
4288 }
4289 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4290 value: {
4291 isLoading: isLoading,
4292 isLoaded: isLoaded,
4293 isError: isError,
4294 remoteConfig: remoteConfig
4295 }
4296 }, props.children);
4297 };
4298 RemoteConfigProvider.propTypes = {
4299 children: _propTypes.default.node.isRequired,
4300 onError: _propTypes.default.func.isRequired
4301 };
4302
4303 /***/ }),
4304
4305 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4306 /*!***********************************************************************************!*\
4307 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4308 \***********************************************************************************/
4309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4310
4311 "use strict";
4312
4313
4314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4315 Object.defineProperty(exports, "__esModule", ({
4316 value: true
4317 }));
4318 exports["default"] = void 0;
4319 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4320 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4321 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4322 return (0, _usePrompt.default)(function (requestBody, signal) {
4323 requestBody.variationType = type;
4324 return (0, _api.generateLayout)(requestBody, signal);
4325 }, initialValue);
4326 };
4327 var _default = exports["default"] = useLayoutPrompt;
4328
4329 /***/ }),
4330
4331 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4332 /*!********************************************************************************!*\
4333 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4334 \********************************************************************************/
4335 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4336
4337 "use strict";
4338
4339
4340 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4341 Object.defineProperty(exports, "__esModule", ({
4342 value: true
4343 }));
4344 exports["default"] = void 0;
4345 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4346 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4347 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4348 var _react = __webpack_require__(/*! react */ "react");
4349 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4350 var ERROR_INITIAL_VALUE = '';
4351 var useScreenshot = function useScreenshot(type, onData) {
4352 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4353 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4354 error = _useState2[0],
4355 setError = _useState2[1];
4356 var _useState3 = (0, _react.useState)(false),
4357 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4358 isLoading = _useState4[0],
4359 setIsLoading = _useState4[1];
4360 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4361 var generate = function generate(requestBody, signal) {
4362 setIsLoading(true);
4363 setError(ERROR_INITIAL_VALUE);
4364 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4365 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4366 var createdScreenshot;
4367 return _regenerator.default.wrap(function _callee$(_context) {
4368 while (1) switch (_context.prev = _context.next) {
4369 case 0:
4370 _context.next = 2;
4371 return onData(data.result);
4372 case 2:
4373 createdScreenshot = _context.sent;
4374 createdScreenshot.sendUsageData = function () {
4375 return layoutData.sendUsageData(data);
4376 };
4377 createdScreenshot.baseTemplateId = data.baseTemplateId;
4378 createdScreenshot.type = data.type;
4379 return _context.abrupt("return", createdScreenshot);
4380 case 7:
4381 case "end":
4382 return _context.stop();
4383 }
4384 }, _callee);
4385 }));
4386 return function (_x) {
4387 return _ref.apply(this, arguments);
4388 };
4389 }()).catch(function (err) {
4390 setError(err.extra_data ? err : err.message || err);
4391 throw err;
4392 }).finally(function () {
4393 return setIsLoading(false);
4394 });
4395 };
4396 return {
4397 generate: generate,
4398 error: error,
4399 isLoading: isLoading
4400 };
4401 };
4402 var _default = exports["default"] = useScreenshot;
4403
4404 /***/ }),
4405
4406 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4407 /*!*********************************************************************************!*\
4408 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4409 \*********************************************************************************/
4410 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4411
4412 "use strict";
4413
4414
4415 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4416 Object.defineProperty(exports, "__esModule", ({
4417 value: true
4418 }));
4419 exports["default"] = void 0;
4420 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4421 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4422 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4423 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4424 var _react = __webpack_require__(/*! react */ "react");
4425 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4426 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4427 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4428 var PENDING_VALUE = {
4429 isPending: true
4430 };
4431 var useScreenshots = function useScreenshots(_ref) {
4432 var onData = _ref.onData;
4433 var _useState = (0, _react.useState)([]),
4434 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4435 screenshots = _useState2[0],
4436 setScreenshots = _useState2[1];
4437
4438 /**
4439 * The ids for each request are:
4440 * - editorSessionId: a unique id for each editor opening
4441 * - sessionId: a unique id for each session. (open the AI builder)
4442 * - generateId: a unique id for each generate request. (prompt change)
4443 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4444 * - requestId: a unique id for each generate request.
4445 */
4446
4447 var _useConfig = (0, _config.useConfig)(),
4448 currentContext = _useConfig.currentContext;
4449 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4450 editorSessionId = _useRequestIds.editorSessionId,
4451 sessionId = _useRequestIds.sessionId,
4452 setRequest = _useRequestIds.setRequest,
4453 setBatch = _useRequestIds.setBatch,
4454 setGenerate = _useRequestIds.setGenerate;
4455 var generateIdRef = (0, _react.useRef)('');
4456 var batchId = setBatch();
4457 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4458 var screenshotsGroupCount = screenshotsData.length;
4459 var error = screenshotsData.every(function (s) {
4460 return s === null || s === void 0 ? void 0 : s.error;
4461 }) ? screenshotsData[0].error : '';
4462 var isLoading = screenshotsData.some(function (s) {
4463 return s === null || s === void 0 ? void 0 : s.isLoading;
4464 });
4465 var abortController = (0, _react.useRef)(null);
4466 var abort = function abort() {
4467 var _abortController$curr;
4468 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4469 };
4470 var createScreenshots = /*#__PURE__*/function () {
4471 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4472 var onGenerate, onError, promises, results, isAllFailed;
4473 return _regenerator.default.wrap(function _callee$(_context) {
4474 while (1) switch (_context.prev = _context.next) {
4475 case 0:
4476 abortController.current = new AbortController();
4477 onGenerate = function onGenerate(screenshot) {
4478 setScreenshots(function (prev) {
4479 var updatedData = (0, _toConsumableArray2.default)(prev);
4480 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4481 updatedData[pendingIndex] = screenshot;
4482 return updatedData;
4483 });
4484 return true;
4485 };
4486 onError = function onError() {
4487 setScreenshots(function (prev) {
4488 var updatedData = (0, _toConsumableArray2.default)(prev);
4489 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4490 updatedData[pendingIndex] = {
4491 isError: true
4492 };
4493 return updatedData;
4494 });
4495 return false;
4496 };
4497 promises = screenshotsData.map(function (_ref3) {
4498 var generate = _ref3.generate;
4499 var prevGeneratedIds = screenshots.map(function (screenshot) {
4500 return screenshot.baseTemplateId || '';
4501 });
4502 var requestBody = {
4503 prompt: prompt,
4504 prevGeneratedIds: prevGeneratedIds,
4505 currentContext: currentContext,
4506 ids: {
4507 editorSessionId: editorSessionId.current,
4508 sessionId: sessionId.current,
4509 generateId: generateIdRef.current,
4510 batchId: batchId.current,
4511 requestId: setRequest().current
4512 },
4513 attachments: attachments.map(function (_ref4) {
4514 var type = _ref4.type,
4515 content = _ref4.content,
4516 label = _ref4.label,
4517 source = _ref4.source;
4518 // Send only the data that is needed for the generation.
4519 return {
4520 type: type,
4521 content: content,
4522 label: label,
4523 source: source
4524 };
4525 })
4526 };
4527 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4528 });
4529 _context.next = 6;
4530 return Promise.all(promises);
4531 case 6:
4532 results = _context.sent;
4533 isAllFailed = results.every(function (value) {
4534 return false === value;
4535 });
4536 if (isAllFailed) {
4537 setScreenshots(function (prev) {
4538 var updatedData = (0, _toConsumableArray2.default)(prev);
4539 updatedData.splice(screenshotsGroupCount * -1);
4540 return updatedData;
4541 });
4542 }
4543 case 9:
4544 case "end":
4545 return _context.stop();
4546 }
4547 }, _callee);
4548 }));
4549 return function createScreenshots(_x, _x2) {
4550 return _ref2.apply(this, arguments);
4551 };
4552 }();
4553 var generate = function generate(prompt, attachments) {
4554 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4555 generateIdRef.current = setGenerate().current;
4556 setScreenshots(placeholders);
4557 createScreenshots(prompt, attachments);
4558 };
4559 var regenerate = function regenerate(prompt, attachments) {
4560 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4561 setScreenshots(function (prev) {
4562 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4563 });
4564 createScreenshots(prompt, attachments);
4565 };
4566 return {
4567 generate: generate,
4568 regenerate: regenerate,
4569 screenshots: screenshots,
4570 isLoading: isLoading,
4571 error: error,
4572 abort: abort
4573 };
4574 };
4575 var _default = exports["default"] = useScreenshots;
4576
4577 /***/ }),
4578
4579 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4580 /*!****************************************************************************!*\
4581 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4582 \****************************************************************************/
4583 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4584
4585 "use strict";
4586
4587
4588 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4589 Object.defineProperty(exports, "__esModule", ({
4590 value: true
4591 }));
4592 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4593 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4594 var _react = __webpack_require__(/*! react */ "react");
4595 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4596 var MAX_PAGES = exports.MAX_PAGES = 5;
4597 var useSlider = function useSlider() {
4598 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4599 _ref$slidesCount = _ref.slidesCount,
4600 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4601 _ref$slidesPerPage = _ref.slidesPerPage,
4602 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4603 _ref$gapPercentage = _ref.gapPercentage,
4604 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4605 var _useState = (0, _react.useState)(1),
4606 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4607 currentPage = _useState2[0],
4608 setCurrentPage = _useState2[1];
4609 var gapsCount = slidesPerPage - 1;
4610 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4611 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4612 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4613 (0, _react.useEffect)(function () {
4614 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4615 if (currentPage > 1 && currentPage > pagesCount) {
4616 setCurrentPage(pagesCount);
4617 }
4618 }, [pagesCount]);
4619 return {
4620 currentPage: currentPage,
4621 setCurrentPage: setCurrentPage,
4622 pagesCount: pagesCount,
4623 slidesPerPage: slidesPerPage,
4624 gapPercentage: gapPercentage,
4625 offsetXPercentage: offsetXPercentage,
4626 slideWidthPercentage: slideWidthPercentage
4627 };
4628 };
4629 var _default = exports["default"] = useSlider;
4630
4631 /***/ }),
4632
4633 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4634 /*!*****************************************************************!*\
4635 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4636 \*****************************************************************/
4637 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4638
4639 "use strict";
4640
4641
4642 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4643 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4644 Object.defineProperty(exports, "__esModule", ({
4645 value: true
4646 }));
4647 exports["default"] = void 0;
4648 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4649 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4650 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4651 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4652 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4653 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4654 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4655 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4656 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4657 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4658 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4659 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4660 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4661 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4662 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4663 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4664 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4665 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4666 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4667 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4668 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4669 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4670 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4671 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4672 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4673 var _excluded = ["children"];
4674 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4675 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4676 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4677 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4678
4679 /**
4680 * @typedef {Object} Attachment
4681 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4682 * @property {string} previewHTML - HTML content as a string, representing a preview.
4683 * @property {string} content - Actual content of the attachment as a string.
4684 * @property {string} label - Label for the attachment.
4685 */
4686
4687 var RegenerateButton = function RegenerateButton(props) {
4688 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4689 size: "small",
4690 color: "secondary",
4691 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4692 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4693 };
4694 var UseLayoutButton = function UseLayoutButton(props) {
4695 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4696 size: "small",
4697 variant: "contained"
4698 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4699 };
4700 UseLayoutButton.propTypes = {
4701 sx: _propTypes.default.object
4702 };
4703 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4704 if (isLoading || isPromptFormActive) {
4705 return true;
4706 }
4707 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4708 };
4709 var FormLayout = function FormLayout(_ref) {
4710 var _screenshots$selected, _screenshots$2;
4711 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4712 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4713 _ref$DialogContentPro = _ref.DialogContentProps,
4714 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4715 initialAttachments = _ref.attachments;
4716 var _useConfig = (0, _config.useConfig)(),
4717 attachmentsTypes = _useConfig.attachmentsTypes,
4718 onData = _useConfig.onData,
4719 onInsert = _useConfig.onInsert,
4720 onSelect = _useConfig.onSelect,
4721 onClose = _useConfig.onClose,
4722 onGenerate = _useConfig.onGenerate;
4723 var _useScreenshots = (0, _useScreenshots2.default)({
4724 onData: onData
4725 }),
4726 screenshots = _useScreenshots.screenshots,
4727 generate = _useScreenshots.generate,
4728 regenerate = _useScreenshots.regenerate,
4729 isLoading = _useScreenshots.isLoading,
4730 error = _useScreenshots.error,
4731 abort = _useScreenshots.abort;
4732 var screenshotOutlineOffset = '2px';
4733 var _useSlider = (0, _useSlider2.default)({
4734 slidesCount: screenshots.length
4735 }),
4736 currentPage = _useSlider.currentPage,
4737 setCurrentPage = _useSlider.setCurrentPage,
4738 pagesCount = _useSlider.pagesCount,
4739 gapPercentage = _useSlider.gapPercentage,
4740 slidesPerPage = _useSlider.slidesPerPage,
4741 offsetXPercentage = _useSlider.offsetXPercentage,
4742 slideWidthPercentage = _useSlider.slideWidthPercentage;
4743 var _useState = (0, _react.useState)(-1),
4744 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4745 selectedScreenshotIndex = _useState2[0],
4746 setSelectedScreenshotIndex = _useState2[1];
4747 var _useState3 = (0, _react.useState)(false),
4748 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4749 showUnsavedChangesAlert = _useState4[0],
4750 setShowUnsavedChangesAlert = _useState4[1];
4751 var _useState5 = (0, _react.useState)(true),
4752 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4753 isPromptEditable = _useState6[0],
4754 setIsPromptEditable = _useState6[1];
4755 var _useState7 = (0, _react.useState)([]),
4756 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4757 attachments = _useState8[0],
4758 setAttachments = _useState8[1];
4759 var _useState9 = (0, _react.useState)(false),
4760 _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
4761 shouldRenderWebApp = _useState10[0],
4762 setShouldRenderWebApp = _useState10[1];
4763 var _useState11 = (0, _react.useState)(false),
4764 _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
4765 isMinimized = _useState12[0],
4766 setIsMinimized = _useState12[1];
4767 var lastRun = (0, _react.useRef)(function () {});
4768 var promptInputRef = (0, _react.useRef)(null);
4769 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4770 var dialogContentChildren = DialogContentProps.children,
4771 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4772
4773 // When there are no screenshots the prompt field should be editable.
4774 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4775 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4776 var abortAndClose = function abortAndClose() {
4777 abort();
4778 onClose();
4779 };
4780 var onCloseIntent = function onCloseIntent() {
4781 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4782 if (hasUnsavedChanges) {
4783 return setShowUnsavedChangesAlert(true);
4784 }
4785 abortAndClose();
4786 };
4787 var handleGenerate = function handleGenerate(event, prompt) {
4788 event.preventDefault();
4789 if ('' === prompt.trim() && 0 === attachments.length) {
4790 return;
4791 }
4792 if ((0, _isURL.default)(prompt)) {
4793 setShouldRenderWebApp(true);
4794 return;
4795 }
4796 onGenerate();
4797 lastRun.current = function () {
4798 setSelectedScreenshotIndex(-1);
4799 generate(prompt, attachments);
4800 };
4801 lastRun.current();
4802 setIsPromptEditable(false);
4803 setCurrentPage(1);
4804 };
4805 var handleRegenerate = function handleRegenerate() {
4806 lastRun.current = function () {
4807 regenerate(promptInputRef.current.value, attachments);
4808 // Changing the current page to the next page number.
4809 setCurrentPage(pagesCount + 1);
4810 };
4811 lastRun.current();
4812 };
4813 var applyTemplate = function applyTemplate() {
4814 onInsert(selectedTemplate);
4815 screenshots[selectedScreenshotIndex].sendUsageData();
4816 abortAndClose();
4817 };
4818 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4819 return function () {
4820 if (isPromptFormActive) {
4821 return;
4822 }
4823 setSelectedScreenshotIndex(index);
4824 onSelect(template);
4825 };
4826 };
4827
4828 /**
4829 * @param {Attachment[]} items
4830 */
4831 var onAttach = function onAttach(items) {
4832 items.forEach(function (item) {
4833 if (!attachmentsTypes[item.type]) {
4834 throw new Error("Invalid attachment type: ".concat(item.type));
4835 }
4836 var typeConfig = attachmentsTypes[item.type];
4837 if (!item.previewHTML && typeConfig.previewGenerator) {
4838 typeConfig.previewGenerator(item.content).then(function (html) {
4839 item.previewHTML = html;
4840 setAttachments(function (prev) {
4841 // Replace the attachment with the updated one.
4842 return prev.map(function (attachment) {
4843 if (attachment.content === item.content) {
4844 return item;
4845 }
4846 return attachment;
4847 });
4848 });
4849 });
4850 }
4851 });
4852 setAttachments(items);
4853 setShouldRenderWebApp(false);
4854 setIsPromptEditable(true);
4855 };
4856 (0, _react.useEffect)(function () {
4857 var _screenshots$;
4858 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4859 if (isFirstTemplateExist) {
4860 onSelect(screenshots[0].template);
4861 setSelectedScreenshotIndex(0);
4862 }
4863 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4864 (0, _react.useEffect)(function () {
4865 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4866 onAttach(initialAttachments);
4867 }
4868 }, []);
4869 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4870 onClose: onCloseIntent
4871 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4872 onClose: onCloseIntent
4873 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4874 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4875 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4876 size: "small",
4877 "aria-label": "minimize",
4878 onClick: function onClick() {
4879 return setIsMinimized(function (prev) {
4880 return !prev;
4881 });
4882 }
4883 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4884 dividers: true
4885 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4886 in: !isMinimized
4887 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4888 sx: {
4889 pt: 2,
4890 px: 2,
4891 pb: 0
4892 }
4893 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4894 sx: {
4895 pt: 2,
4896 px: 2,
4897 pb: 0
4898 }
4899 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4900 error: error,
4901 onRetry: lastRun.current
4902 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4903 open: showUnsavedChangesAlert,
4904 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4905 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4906 onClose: abortAndClose,
4907 onCancel: function onCancel() {
4908 return setShowUnsavedChangesAlert(false);
4909 }
4910 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4911 type: _attachments.ATTACHMENT_TYPE_URL,
4912 url: promptInputRef.current.value,
4913 onAttach: onAttach,
4914 onClose: function onClose() {
4915 setShouldRenderWebApp(false);
4916 }
4917 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4918 shouldResetPrompt: shouldRenderWebApp,
4919 ref: promptInputRef,
4920 isActive: isPromptFormActive,
4921 isLoading: isLoading,
4922 showActions: screenshots.length > 0 || isLoading,
4923 attachmentsTypes: attachmentsTypes,
4924 attachments: attachments,
4925 onAttach: onAttach,
4926 onDetach: function onDetach(index) {
4927 setAttachments(function (prev) {
4928 var newAttachments = (0, _toConsumableArray2.default)(prev);
4929 newAttachments.splice(index, 1);
4930 return newAttachments;
4931 });
4932 setIsPromptEditable(true);
4933 },
4934 onSubmit: handleGenerate,
4935 onBack: function onBack() {
4936 return setIsPromptEditable(false);
4937 },
4938 onEdit: function onEdit() {
4939 return setIsPromptEditable(true);
4940 }
4941 }), (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, {
4942 sx: {
4943 p: 1.5
4944 }
4945 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4946 sx: {
4947 overflow: 'hidden',
4948 p: 0.5
4949 }
4950 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4951 sx: {
4952 display: 'flex',
4953 transition: 'all 0.4s ease',
4954 gap: "".concat(gapPercentage, "%"),
4955 transform: "translateX(".concat(offsetXPercentage, "%)")
4956 }
4957 }, screenshots.map(function (_ref2, index) {
4958 var screenshot = _ref2.screenshot,
4959 type = _ref2.type,
4960 template = _ref2.template,
4961 isError = _ref2.isError,
4962 isPending = _ref2.isPending;
4963 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4964 key: index,
4965 url: screenshot,
4966 type: type,
4967 disabled: isPromptFormActive,
4968 isPlaceholder: isError,
4969 isLoading: isPending,
4970 isSelected: selectedScreenshotIndex === index,
4971 onClick: handleScreenshotClick(index, template),
4972 outlineOffset: screenshotOutlineOffset,
4973 sx: {
4974 flex: "0 0 ".concat(slideWidthPercentage, "%")
4975 }
4976 });
4977 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4978 introductionKey: "ai-context-layout-promotion"
4979 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4980 sx: {
4981 pt: 0,
4982 px: 2,
4983 pb: 2
4984 },
4985 display: "grid",
4986 gridTemplateColumns: "repeat(3, 1fr)",
4987 justifyItems: "center"
4988 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4989 onClick: handleRegenerate,
4990 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
4991 sx: {
4992 justifySelf: 'start'
4993 }
4994 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
4995 page: currentPage,
4996 count: pagesCount,
4997 disabled: isPromptFormActive,
4998 onChange: function onChange(_, page) {
4999 return setCurrentPage(page);
5000 }
5001 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
5002 onClick: applyTemplate,
5003 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
5004 sx: {
5005 justifySelf: 'end',
5006 gridColumn: 3
5007 }
5008 }))))));
5009 };
5010 FormLayout.propTypes = {
5011 DialogHeaderProps: _propTypes.default.object,
5012 DialogContentProps: _propTypes.default.object,
5013 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5014 };
5015 var _default = exports["default"] = FormLayout;
5016
5017 /***/ }),
5018
5019 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5020 /*!************************************************************************************!*\
5021 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5022 \************************************************************************************/
5023 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5024
5025 "use strict";
5026
5027
5028 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5029 Object.defineProperty(exports, "__esModule", ({
5030 value: true
5031 }));
5032 exports["default"] = void 0;
5033 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5034 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5035 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5036 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5037 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5038 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5039 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5040 var _excluded = ["isLoading"];
5041 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5042 var EnhanceButton = function EnhanceButton(_ref) {
5043 var isLoading = _ref.isLoading,
5044 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5045 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5046 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5047 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5048 component: "span",
5049 sx: {
5050 cursor: props.disabled ? 'default' : 'pointer'
5051 }
5052 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5053 size: "small",
5054 color: "secondary"
5055 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5056 color: "secondary",
5057 size: 20
5058 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5059 fontSize: "small"
5060 }))));
5061 };
5062 EnhanceButton.propTypes = {
5063 disabled: _propTypes.default.bool,
5064 isLoading: _propTypes.default.bool
5065 };
5066 var _default = exports["default"] = EnhanceButton;
5067
5068 /***/ }),
5069
5070 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5071 /*!*************************************************************************************!*\
5072 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5073 \*************************************************************************************/
5074 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5075
5076 "use strict";
5077
5078
5079 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5080 Object.defineProperty(exports, "__esModule", ({
5081 value: true
5082 }));
5083 exports["default"] = void 0;
5084 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5085 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5086 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5087 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5088 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5089 var GenerateSubmit = function GenerateSubmit(props) {
5090 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5091 fullWidth: true,
5092 size: "medium",
5093 type: "submit",
5094 variant: "contained"
5095 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5096 };
5097 GenerateSubmit.propTypes = {
5098 children: _propTypes.default.node
5099 };
5100 var _default = exports["default"] = GenerateSubmit;
5101
5102 /***/ }),
5103
5104 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5105 /*!*****************************************************************!*\
5106 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5107 \*****************************************************************/
5108 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5109
5110 "use strict";
5111
5112
5113 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5114 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5115 Object.defineProperty(exports, "__esModule", ({
5116 value: true
5117 }));
5118 exports["default"] = void 0;
5119 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5120 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5121 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5122 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5123 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5124 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5125 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5126 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5127 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5128 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
5129 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
5130 var GetStarted = function GetStarted(_ref) {
5131 var onSuccess = _ref.onSuccess;
5132 var _useState = (0, _react.useState)(false),
5133 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5134 isTermsChecked = _useState2[0],
5135 setIsTermsChecked = _useState2[1];
5136 var onGetStartedClick = /*#__PURE__*/function () {
5137 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5138 return _regenerator.default.wrap(function _callee$(_context) {
5139 while (1) switch (_context.prev = _context.next) {
5140 case 0:
5141 _context.next = 2;
5142 return (0, _api.setGetStarted)();
5143 case 2:
5144 onSuccess();
5145 case 3:
5146 case "end":
5147 return _context.stop();
5148 }
5149 }, _callee);
5150 }));
5151 return function onGetStartedClick() {
5152 return _ref2.apply(this, arguments);
5153 };
5154 }();
5155 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5156 alignItems: "center",
5157 gap: 1.5
5158 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5159 sx: {
5160 color: 'text.primary',
5161 fontSize: '60px',
5162 mb: 1
5163 }
5164 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5165 variant: "h4",
5166 sx: {
5167 color: 'text.primary'
5168 }
5169 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5170 variant: "body2"
5171 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5172 direction: "row",
5173 gap: 1.5,
5174 alignItems: "flex-start"
5175 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5176 id: "e-ai-terms-approval",
5177 color: "secondary",
5178 checked: isTermsChecked,
5179 onClick: function onClick() {
5180 return setIsTermsChecked(function (prevState) {
5181 return !prevState;
5182 });
5183 }
5184 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5185 variant: "caption",
5186 sx: {
5187 maxWidth: 520
5188 },
5189 component: "label",
5190 htmlFor: "e-ai-terms-approval"
5191 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5192 href: "https://go.elementor.com/ai-terms/",
5193 target: "_blank",
5194 color: "info.main"
5195 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5196 href: "https://go.elementor.com/ai-privacy-policy/",
5197 target: "_blank",
5198 color: "info.main"
5199 }, (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, {
5200 disabled: !isTermsChecked,
5201 variant: "contained",
5202 onClick: onGetStartedClick,
5203 sx: {
5204 mt: 1,
5205 '&:hover': {
5206 color: 'primary.contrastText'
5207 }
5208 }
5209 }, (0, _i18n.__)('Get Started', 'elementor')));
5210 };
5211 GetStarted.propTypes = {
5212 onSuccess: _propTypes.default.func.isRequired
5213 };
5214 var _default = exports["default"] = GetStarted;
5215
5216 /***/ }),
5217
5218 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5219 /*!**********************************************************!*\
5220 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5221 \**********************************************************/
5222 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5223
5224 "use strict";
5225
5226
5227 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5228 Object.defineProperty(exports, "__esModule", ({
5229 value: true
5230 }));
5231 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5232 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5233 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5234 type: _propTypes.default.string,
5235 previewHTML: _propTypes.default.string,
5236 content: _propTypes.default.string,
5237 label: _propTypes.default.string,
5238 source: _propTypes.default.string
5239 });
5240 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5241 type: _propTypes.default.shape({
5242 promptPlaceholder: _propTypes.default.string,
5243 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5244 text: _propTypes.default.string.isRequired
5245 })),
5246 previewGenerator: _propTypes.default.func
5247 })
5248 });
5249
5250 /***/ }),
5251
5252 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5253 /*!******************************************************************!*\
5254 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5255 \******************************************************************/
5256 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5257
5258 "use strict";
5259
5260
5261 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5262 Object.defineProperty(exports, "__esModule", ({
5263 value: true
5264 }));
5265 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5266 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5267 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5268 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5269 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5270 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5271 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5272 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5273 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5274 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5275 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5276 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5277 var closePanel = exports.closePanel = function closePanel() {
5278 $e.run('panel/close');
5279 $e.components.get('panel').blockUserInteractions();
5280 };
5281 var openPanel = exports.openPanel = function openPanel() {
5282 $e.run('panel/open');
5283 $e.components.get('panel').unblockUserInteractions();
5284 };
5285 var onConnect = exports.onConnect = function onConnect(data) {
5286 elementorCommon.config.library_connect.is_connected = true;
5287 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5288 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5289 };
5290 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5291 var _elementor, _elementor$getPrefere;
5292 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';
5293 var isRTL = elementorCommon.config.isRTL;
5294 return {
5295 colorScheme: colorScheme,
5296 isRTL: isRTL
5297 };
5298 };
5299 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5300 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5301 }, {
5302 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5303 }, {
5304 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5305 }, {
5306 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5307 }, {
5308 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5309 }, {
5310 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5311 }, {
5312 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5313 }, {
5314 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5315 }, {
5316 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5317 }];
5318 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5319 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5320 }, {
5321 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5322 }, {
5323 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5324 }, {
5325 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5326 }, {
5327 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5328 }, {
5329 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5330 }];
5331 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5332 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5333 var _options$onRenderApp;
5334 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5335 parentContainer: null,
5336 mode: '',
5337 at: null,
5338 onClose: null,
5339 onGenerate: null,
5340 onInsert: null,
5341 onRenderApp: null,
5342 onSelect: null,
5343 attachments: []
5344 };
5345 closePanel();
5346 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5347 // Create the container at the "drag widget here" area position.
5348 at: options.at
5349 });
5350 var _getUiConfig = getUiConfig(),
5351 colorScheme = _getUiConfig.colorScheme,
5352 isRTL = _getUiConfig.isRTL;
5353 var rootElement = document.createElement('div');
5354 document.body.append(rootElement);
5355 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5356 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5357 isRTL: isRTL,
5358 colorScheme: colorScheme
5359 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5360 mode: options.mode,
5361 currentContext: {
5362 body: {
5363 backgroundColor: bodyStyle.backgroundColor,
5364 backgroundImage: bodyStyle.backgroundImage
5365 }
5366 },
5367 attachmentsTypes: {
5368 json: {
5369 promptSuggestions: VARIATIONS_PROMPTS,
5370 promptPlaceholder: PROMPT_PLACEHOLDER,
5371 previewGenerator: function () {
5372 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5373 var screenshot;
5374 return _regenerator.default.wrap(function _callee$(_context) {
5375 while (1) switch (_context.prev = _context.next) {
5376 case 0:
5377 _context.next = 2;
5378 return (0, _screenshot.takeScreenshot)(json);
5379 case 2:
5380 screenshot = _context.sent;
5381 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5382 case 4:
5383 case "end":
5384 return _context.stop();
5385 }
5386 }, _callee);
5387 }));
5388 function previewGenerator(_x) {
5389 return _previewGenerator.apply(this, arguments);
5390 }
5391 return previewGenerator;
5392 }()
5393 },
5394 url: {
5395 promptPlaceholder: PROMPT_PLACEHOLDER,
5396 promptSuggestions: WEB_BASED_PROMPTS
5397 }
5398 },
5399 attachments: options.attachments || [],
5400 onClose: function onClose() {
5401 var _options$onClose;
5402 previewContainer.destroy();
5403 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5404 unmount();
5405 rootElement.remove();
5406 openPanel();
5407 },
5408 onConnect: onConnect,
5409 onGenerate: function onGenerate() {
5410 var _options$onGenerate;
5411 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5412 previewContainer: previewContainer
5413 });
5414 },
5415 onData: (/*#__PURE__*/function () {
5416 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5417 var screenshot;
5418 return _regenerator.default.wrap(function _callee2$(_context2) {
5419 while (1) switch (_context2.prev = _context2.next) {
5420 case 0:
5421 _context2.next = 2;
5422 return (0, _screenshot.takeScreenshot)(template);
5423 case 2:
5424 screenshot = _context2.sent;
5425 return _context2.abrupt("return", {
5426 screenshot: screenshot,
5427 template: template
5428 });
5429 case 4:
5430 case "end":
5431 return _context2.stop();
5432 }
5433 }, _callee2);
5434 }));
5435 return function (_x2) {
5436 return _ref.apply(this, arguments);
5437 };
5438 }()),
5439 onSelect: function onSelect(template) {
5440 var _options$onSelect;
5441 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5442 previewContainer.setContent(template);
5443 },
5444 onInsert: options.onInsert,
5445 hasPro: elementor.helpers.hasPro()
5446 })), rootElement),
5447 unmount = _ReactUtils$render.unmount;
5448 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5449 previewContainer: previewContainer
5450 });
5451 };
5452 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5453 var parentContainer = _ref2.parentContainer,
5454 at = _ref2.at,
5455 template = _ref2.template,
5456 historyTitle = _ref2.historyTitle,
5457 _ref2$replace = _ref2.replace,
5458 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5459 var endHistoryLog = (0, _history.startHistoryLog)({
5460 type: 'import',
5461 title: historyTitle
5462 });
5463 if (replace) {
5464 $e.run('document/elements/delete', {
5465 container: parentContainer.children.at(at)
5466 });
5467 }
5468 $e.run('document/elements/create', {
5469 container: parentContainer,
5470 model: (0, _requestsIds.generateIds)(template),
5471 options: {
5472 at: at,
5473 edit: true
5474 }
5475 });
5476 endHistoryLog();
5477 };
5478
5479 /***/ }),
5480
5481 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5482 /*!*******************************************************!*\
5483 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5484 \*******************************************************/
5485 /***/ ((__unused_webpack_module, exports) => {
5486
5487 "use strict";
5488
5489
5490 Object.defineProperty(exports, "__esModule", ({
5491 value: true
5492 }));
5493 exports.startHistoryLog = startHistoryLog;
5494 exports.toggleHistory = toggleHistory;
5495 function toggleHistory(isActive) {
5496 elementor.documents.getCurrent().history.setActive(isActive);
5497 }
5498
5499 /**
5500 * @param {Object} options
5501 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5502 * @param { string } options.title
5503 *
5504 * @return {*}
5505 */
5506 function startHistoryLog(_ref) {
5507 var type = _ref.type,
5508 title = _ref.title;
5509 var id = $e.internal('document/history/start-log', {
5510 type: type,
5511 title: title
5512 });
5513 return function () {
5514 return $e.internal('document/history/end-log', {
5515 id: id
5516 });
5517 };
5518 }
5519
5520 /***/ }),
5521
5522 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5523 /*!*****************************************************************!*\
5524 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5525 \*****************************************************************/
5526 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5527
5528 "use strict";
5529
5530
5531 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5532 Object.defineProperty(exports, "__esModule", ({
5533 value: true
5534 }));
5535 exports.createPreviewContainer = createPreviewContainer;
5536 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5537 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5538 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5539 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; }
5540 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; }
5541 /**
5542 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5543 */
5544
5545 var PREFIX = 'e-ai-preview-container';
5546 var CLASS_HIDDEN = PREFIX + '--hidden';
5547 var CLASS_IDLE = PREFIX + '--idle';
5548
5549 /**
5550 * @param {Container} parentContainer
5551 * @param {{}} containerOptions
5552 * @return {{init, setContent, reset, destroy}}
5553 */
5554
5555 function createPreviewContainer(parentContainer) {
5556 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5557 var createdContainers = new Map();
5558 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5559 function init() {
5560 showContainer(idleContainer);
5561 }
5562 function getAllContainers() {
5563 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5564 }
5565 function reset() {
5566 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5567 createdContainers.clear();
5568 showContainer(idleContainer);
5569 }
5570 function setContent(template) {
5571 if (!template) {
5572 return;
5573 }
5574 hideContainers(getAllContainers());
5575 if (!createdContainers.has(template)) {
5576 var newContainer = createContainer(parentContainer, template, containerOptions);
5577 createdContainers.set(template, newContainer);
5578 }
5579 showContainer(createdContainers.get(template));
5580 }
5581 function destroy() {
5582 deleteContainers(getAllContainers());
5583 createdContainers.clear();
5584 }
5585 return {
5586 init: init,
5587 reset: reset,
5588 setContent: setContent,
5589 destroy: destroy
5590 };
5591 }
5592
5593 /**
5594 * @param {Container} parentContainer
5595 * @param {{}} model
5596 * @param {{}} options
5597 * @return {*}
5598 */
5599 function createContainer(parentContainer, model) {
5600 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5601 (0, _history.toggleHistory)(false);
5602 var container = $e.run('document/elements/create', {
5603 container: parentContainer,
5604 model: _objectSpread(_objectSpread({}, model), {}, {
5605 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5606 }),
5607 options: _objectSpread(_objectSpread({}, options), {}, {
5608 edit: false
5609 })
5610 });
5611 (0, _history.toggleHistory)(true);
5612 container.view.$el.addClass(CLASS_HIDDEN);
5613 return container;
5614 }
5615
5616 /**
5617 * @param {Container} parentContainer
5618 * @param {{}} containerOptions
5619 * @return {*}
5620 */
5621 function createIdleContainer(parentContainer) {
5622 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5623 // Create an empty container that'll be used of UI purposes.
5624 var container = createContainer(parentContainer, {
5625 elType: 'container'
5626 }, containerOptions);
5627 container.view.$el.addClass(CLASS_IDLE);
5628 return container;
5629 }
5630 function hideContainers(containers) {
5631 containers.forEach(function (container) {
5632 container.view.$el.addClass(CLASS_HIDDEN);
5633 });
5634 }
5635 function showContainer(container) {
5636 container.view.$el.removeClass(CLASS_HIDDEN);
5637
5638 // Delay the scroll to avoid UI jumps when toggling between containers.
5639 setTimeout(function () {
5640 container.view.$el[0].scrollIntoView({
5641 behavior: 'smooth',
5642 block: 'start'
5643 });
5644 });
5645 }
5646 function deleteContainers(containers) {
5647 (0, _history.toggleHistory)(false);
5648 $e.run('document/elements/delete', {
5649 containers: containers
5650 });
5651 (0, _history.toggleHistory)(true);
5652 }
5653
5654 /***/ }),
5655
5656 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5657 /*!**********************************************************!*\
5658 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5659 \**********************************************************/
5660 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5661
5662 "use strict";
5663
5664
5665 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5666 Object.defineProperty(exports, "__esModule", ({
5667 value: true
5668 }));
5669 exports.takeScreenshot = void 0;
5670 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5671 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5672 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5673 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5674 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5675 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5676 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5677 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5678 var hiddenWrapper, container, screenshot;
5679 return _regenerator.default.wrap(function _callee$(_context) {
5680 while (1) switch (_context.prev = _context.next) {
5681 case 0:
5682 if (template) {
5683 _context.next = 2;
5684 break;
5685 }
5686 return _context.abrupt("return", '');
5687 case 2:
5688 // Disable history so the Editor won't show our hidden container as a user action.
5689 (0, _history.toggleHistory)(false);
5690 hiddenWrapper = createHiddenWrapper();
5691 container = createContainer(template);
5692 wrapContainer(container, hiddenWrapper);
5693 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5694
5695 // Wait for the container to render.
5696 _context.next = 9;
5697 return waitForContainer(container.id);
5698 case 9:
5699 if (!template.elements.length) {
5700 _context.next = 12;
5701 break;
5702 }
5703 _context.next = 12;
5704 return Promise.all(template.elements.map(function (child) {
5705 return waitForContainer(child.id);
5706 }));
5707 case 12:
5708 _context.prev = 12;
5709 _context.next = 15;
5710 return screenshotNode(container.view.$el[0]);
5711 case 15:
5712 screenshot = _context.sent;
5713 _context.next = 21;
5714 break;
5715 case 18:
5716 _context.prev = 18;
5717 _context.t0 = _context["catch"](12);
5718 // Return an empty image url if the screenshot failed.
5719 screenshot = '';
5720 case 21:
5721 deleteContainer(container);
5722 hiddenWrapper.remove();
5723 (0, _history.toggleHistory)(true);
5724 return _context.abrupt("return", screenshot);
5725 case 25:
5726 case "end":
5727 return _context.stop();
5728 }
5729 }, _callee, null, [[12, 18]]);
5730 }));
5731 return function takeScreenshot(_x) {
5732 return _ref.apply(this, arguments);
5733 };
5734 }();
5735 function screenshotNode(node) {
5736 return toWebp(node, {
5737 quality: 0.01,
5738 // Transparent 1x1 pixel.
5739 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5740 });
5741 }
5742 function toWebp(_x2) {
5743 return _toWebp.apply(this, arguments);
5744 }
5745 function _toWebp() {
5746 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5747 var _options$quality;
5748 var options,
5749 canvas,
5750 _args3 = arguments;
5751 return _regenerator.default.wrap(function _callee3$(_context3) {
5752 while (1) switch (_context3.prev = _context3.next) {
5753 case 0:
5754 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5755 _context3.next = 3;
5756 return (0, _htmlToImage.toCanvas)(node, options);
5757 case 3:
5758 canvas = _context3.sent;
5759 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5760 case 5:
5761 case "end":
5762 return _context3.stop();
5763 }
5764 }, _callee3);
5765 }));
5766 return _toWebp.apply(this, arguments);
5767 }
5768 function createHiddenWrapper() {
5769 var wrapper = document.createElement('div');
5770 wrapper.style.position = 'fixed';
5771 wrapper.style.opacity = '0';
5772 wrapper.style.inset = '0';
5773 return wrapper;
5774 }
5775 function createContainer(template) {
5776 var model = (0, _requestsIds.generateIds)(template);
5777
5778 // Set a custom ID, so it can be used later on in the backend.
5779 model.id = "e-ai-screenshot-container-".concat(model.id);
5780 return $e.run('document/elements/create', {
5781 container: elementor.getPreviewContainer(),
5782 model: model,
5783 options: {
5784 edit: false
5785 }
5786 });
5787 }
5788 function deleteContainer(container) {
5789 return $e.run('document/elements/delete', {
5790 container: container
5791 });
5792 }
5793 function waitForContainer(id) {
5794 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5795 var timeoutPromise = sleep(timeout);
5796 var waitPromise = new Promise(function (resolve) {
5797 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5798 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5799 var images;
5800 return _regenerator.default.wrap(function _callee2$(_context2) {
5801 while (1) switch (_context2.prev = _context2.next) {
5802 case 0:
5803 if (!($element.data('id') === id)) {
5804 _context2.next = 5;
5805 break;
5806 }
5807 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5808 _context2.next = 4;
5809 return Promise.all(images.map(waitForImage));
5810 case 4:
5811 resolve();
5812 case 5:
5813 case "end":
5814 return _context2.stop();
5815 }
5816 }, _callee2);
5817 }));
5818 return function (_x3) {
5819 return _ref2.apply(this, arguments);
5820 };
5821 }());
5822 });
5823 return Promise.any([timeoutPromise, waitPromise]);
5824 }
5825 function waitForImage(image) {
5826 if (image.complete) {
5827 return Promise.resolve();
5828 }
5829 return new Promise(function (resolve) {
5830 image.addEventListener('load', resolve);
5831 image.addEventListener('error', function () {
5832 // Remove the image to make sure it won't break the screenshot.
5833 image.remove();
5834 resolve();
5835 });
5836 });
5837 }
5838 function sleep(ms) {
5839 return new Promise(function (resolve) {
5840 return setTimeout(resolve, ms);
5841 });
5842 }
5843 function wrapContainer(container, wrapper) {
5844 var el = container.view.$el[0];
5845 el.parentNode.insertBefore(wrapper, el);
5846 wrapper.appendChild(el);
5847 }
5848
5849 /***/ }),
5850
5851 /***/ "../node_modules/html-to-image/es/apply-style.js":
5852 /*!*******************************************************!*\
5853 !*** ../node_modules/html-to-image/es/apply-style.js ***!
5854 \*******************************************************/
5855 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5856
5857 "use strict";
5858 __webpack_require__.r(__webpack_exports__);
5859 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5860 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
5861 /* harmony export */ });
5862 function applyStyle(node, options) {
5863 const { style } = node;
5864 if (options.backgroundColor) {
5865 style.backgroundColor = options.backgroundColor;
5866 }
5867 if (options.width) {
5868 style.width = `${options.width}px`;
5869 }
5870 if (options.height) {
5871 style.height = `${options.height}px`;
5872 }
5873 const manual = options.style;
5874 if (manual != null) {
5875 Object.keys(manual).forEach((key) => {
5876 style[key] = manual[key];
5877 });
5878 }
5879 return node;
5880 }
5881 //# sourceMappingURL=apply-style.js.map
5882
5883 /***/ }),
5884
5885 /***/ "../node_modules/html-to-image/es/clone-node.js":
5886 /*!******************************************************!*\
5887 !*** ../node_modules/html-to-image/es/clone-node.js ***!
5888 \******************************************************/
5889 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5890
5891 "use strict";
5892 __webpack_require__.r(__webpack_exports__);
5893 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5894 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
5895 /* harmony export */ });
5896 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
5897 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
5898 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
5899 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
5900
5901
5902
5903
5904 async function cloneCanvasElement(canvas) {
5905 const dataURL = canvas.toDataURL();
5906 if (dataURL === 'data:,') {
5907 return canvas.cloneNode(false);
5908 }
5909 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5910 }
5911 async function cloneVideoElement(video, options) {
5912 if (video.currentSrc) {
5913 const canvas = document.createElement('canvas');
5914 const ctx = canvas.getContext('2d');
5915 canvas.width = video.clientWidth;
5916 canvas.height = video.clientHeight;
5917 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
5918 const dataURL = canvas.toDataURL();
5919 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5920 }
5921 const poster = video.poster;
5922 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
5923 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
5924 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5925 }
5926 async function cloneIFrameElement(iframe) {
5927 var _a;
5928 try {
5929 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
5930 return (await cloneNode(iframe.contentDocument.body, {}, true));
5931 }
5932 }
5933 catch (_b) {
5934 // Failed to clone iframe
5935 }
5936 return iframe.cloneNode(false);
5937 }
5938 async function cloneSingleNode(node, options) {
5939 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
5940 return cloneCanvasElement(node);
5941 }
5942 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
5943 return cloneVideoElement(node, options);
5944 }
5945 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
5946 return cloneIFrameElement(node);
5947 }
5948 return node.cloneNode(false);
5949 }
5950 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
5951 async function cloneChildren(nativeNode, clonedNode, options) {
5952 var _a, _b;
5953 let children = [];
5954 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
5955 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
5956 }
5957 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
5958 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
5959 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
5960 }
5961 else {
5962 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
5963 }
5964 if (children.length === 0 ||
5965 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
5966 return clonedNode;
5967 }
5968 await children.reduce((deferred, child) => deferred
5969 .then(() => cloneNode(child, options))
5970 .then((clonedChild) => {
5971 if (clonedChild) {
5972 clonedNode.appendChild(clonedChild);
5973 }
5974 }), Promise.resolve());
5975 return clonedNode;
5976 }
5977 function cloneCSSStyle(nativeNode, clonedNode) {
5978 const targetStyle = clonedNode.style;
5979 if (!targetStyle) {
5980 return;
5981 }
5982 const sourceStyle = window.getComputedStyle(nativeNode);
5983 if (sourceStyle.cssText) {
5984 targetStyle.cssText = sourceStyle.cssText;
5985 targetStyle.transformOrigin = sourceStyle.transformOrigin;
5986 }
5987 else {
5988 (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(sourceStyle).forEach((name) => {
5989 let value = sourceStyle.getPropertyValue(name);
5990 if (name === 'font-size' && value.endsWith('px')) {
5991 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
5992 value = `${reducedFont}px`;
5993 }
5994 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
5995 name === 'display' &&
5996 value === 'inline') {
5997 value = 'block';
5998 }
5999 if (name === 'd' && clonedNode.getAttribute('d')) {
6000 value = `path(${clonedNode.getAttribute('d')})`;
6001 }
6002 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6003 });
6004 }
6005 }
6006 function cloneInputValue(nativeNode, clonedNode) {
6007 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6008 clonedNode.innerHTML = nativeNode.value;
6009 }
6010 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6011 clonedNode.setAttribute('value', nativeNode.value);
6012 }
6013 }
6014 function cloneSelectValue(nativeNode, clonedNode) {
6015 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6016 const clonedSelect = clonedNode;
6017 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6018 if (selectedOption) {
6019 selectedOption.setAttribute('selected', '');
6020 }
6021 }
6022 }
6023 function decorate(nativeNode, clonedNode) {
6024 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6025 cloneCSSStyle(nativeNode, clonedNode);
6026 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode);
6027 cloneInputValue(nativeNode, clonedNode);
6028 cloneSelectValue(nativeNode, clonedNode);
6029 }
6030 return clonedNode;
6031 }
6032 async function ensureSVGSymbols(clone, options) {
6033 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6034 if (uses.length === 0) {
6035 return clone;
6036 }
6037 const processedDefs = {};
6038 for (let i = 0; i < uses.length; i++) {
6039 const use = uses[i];
6040 const id = use.getAttribute('xlink:href');
6041 if (id) {
6042 const exist = clone.querySelector(id);
6043 const definition = document.querySelector(id);
6044 if (!exist && definition && !processedDefs[id]) {
6045 // eslint-disable-next-line no-await-in-loop
6046 processedDefs[id] = (await cloneNode(definition, options, true));
6047 }
6048 }
6049 }
6050 const nodes = Object.values(processedDefs);
6051 if (nodes.length) {
6052 const ns = 'http://www.w3.org/1999/xhtml';
6053 const svg = document.createElementNS(ns, 'svg');
6054 svg.setAttribute('xmlns', ns);
6055 svg.style.position = 'absolute';
6056 svg.style.width = '0';
6057 svg.style.height = '0';
6058 svg.style.overflow = 'hidden';
6059 svg.style.display = 'none';
6060 const defs = document.createElementNS(ns, 'defs');
6061 svg.appendChild(defs);
6062 for (let i = 0; i < nodes.length; i++) {
6063 defs.appendChild(nodes[i]);
6064 }
6065 clone.appendChild(svg);
6066 }
6067 return clone;
6068 }
6069 async function cloneNode(node, options, isRoot) {
6070 if (!isRoot && options.filter && !options.filter(node)) {
6071 return null;
6072 }
6073 return Promise.resolve(node)
6074 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6075 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6076 .then((clonedNode) => decorate(node, clonedNode))
6077 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6078 }
6079 //# sourceMappingURL=clone-node.js.map
6080
6081 /***/ }),
6082
6083 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6084 /*!*********************************************************!*\
6085 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6086 \*********************************************************/
6087 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6088
6089 "use strict";
6090 __webpack_require__.r(__webpack_exports__);
6091 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6092 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6093 /* harmony export */ });
6094 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6095
6096 function formatCSSText(style) {
6097 const content = style.getPropertyValue('content');
6098 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6099 }
6100 function formatCSSProperties(style) {
6101 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(style)
6102 .map((name) => {
6103 const value = style.getPropertyValue(name);
6104 const priority = style.getPropertyPriority(name);
6105 return `${name}: ${value}${priority ? ' !important' : ''};`;
6106 })
6107 .join(' ');
6108 }
6109 function getPseudoElementStyle(className, pseudo, style) {
6110 const selector = `.${className}:${pseudo}`;
6111 const cssText = style.cssText
6112 ? formatCSSText(style)
6113 : formatCSSProperties(style);
6114 return document.createTextNode(`${selector}{${cssText}}`);
6115 }
6116 function clonePseudoElement(nativeNode, clonedNode, pseudo) {
6117 const style = window.getComputedStyle(nativeNode, pseudo);
6118 const content = style.getPropertyValue('content');
6119 if (content === '' || content === 'none') {
6120 return;
6121 }
6122 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6123 try {
6124 clonedNode.className = `${clonedNode.className} ${className}`;
6125 }
6126 catch (err) {
6127 return;
6128 }
6129 const styleElement = document.createElement('style');
6130 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style));
6131 clonedNode.appendChild(styleElement);
6132 }
6133 function clonePseudoElements(nativeNode, clonedNode) {
6134 clonePseudoElement(nativeNode, clonedNode, ':before');
6135 clonePseudoElement(nativeNode, clonedNode, ':after');
6136 }
6137 //# sourceMappingURL=clone-pseudos.js.map
6138
6139 /***/ }),
6140
6141 /***/ "../node_modules/html-to-image/es/dataurl.js":
6142 /*!***************************************************!*\
6143 !*** ../node_modules/html-to-image/es/dataurl.js ***!
6144 \***************************************************/
6145 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6146
6147 "use strict";
6148 __webpack_require__.r(__webpack_exports__);
6149 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6150 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
6151 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
6152 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
6153 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
6154 /* harmony export */ });
6155 function getContentFromDataUrl(dataURL) {
6156 return dataURL.split(/,/)[1];
6157 }
6158 function isDataUrl(url) {
6159 return url.search(/^(data:)/) !== -1;
6160 }
6161 function makeDataUrl(content, mimeType) {
6162 return `data:${mimeType};base64,${content}`;
6163 }
6164 async function fetchAsDataURL(url, init, process) {
6165 const res = await fetch(url, init);
6166 if (res.status === 404) {
6167 throw new Error(`Resource "${res.url}" not found`);
6168 }
6169 const blob = await res.blob();
6170 return new Promise((resolve, reject) => {
6171 const reader = new FileReader();
6172 reader.onerror = reject;
6173 reader.onloadend = () => {
6174 try {
6175 resolve(process({ res, result: reader.result }));
6176 }
6177 catch (error) {
6178 reject(error);
6179 }
6180 };
6181 reader.readAsDataURL(blob);
6182 });
6183 }
6184 const cache = {};
6185 function getCacheKey(url, contentType, includeQueryParams) {
6186 let key = url.replace(/\?.*/, '');
6187 if (includeQueryParams) {
6188 key = url;
6189 }
6190 // font resource
6191 if (/ttf|otf|eot|woff2?/i.test(key)) {
6192 key = key.replace(/.*\//, '');
6193 }
6194 return contentType ? `[${contentType}]${key}` : key;
6195 }
6196 async function resourceToDataURL(resourceUrl, contentType, options) {
6197 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
6198 if (cache[cacheKey] != null) {
6199 return cache[cacheKey];
6200 }
6201 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
6202 if (options.cacheBust) {
6203 // eslint-disable-next-line no-param-reassign
6204 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
6205 }
6206 let dataURL;
6207 try {
6208 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
6209 if (!contentType) {
6210 // eslint-disable-next-line no-param-reassign
6211 contentType = res.headers.get('Content-Type') || '';
6212 }
6213 return getContentFromDataUrl(result);
6214 });
6215 dataURL = makeDataUrl(content, contentType);
6216 }
6217 catch (error) {
6218 dataURL = options.imagePlaceholder || '';
6219 let msg = `Failed to fetch resource: ${resourceUrl}`;
6220 if (error) {
6221 msg = typeof error === 'string' ? error : error.message;
6222 }
6223 if (msg) {
6224 console.warn(msg);
6225 }
6226 }
6227 cache[cacheKey] = dataURL;
6228 return dataURL;
6229 }
6230 //# sourceMappingURL=dataurl.js.map
6231
6232 /***/ }),
6233
6234 /***/ "../node_modules/html-to-image/es/embed-images.js":
6235 /*!********************************************************!*\
6236 !*** ../node_modules/html-to-image/es/embed-images.js ***!
6237 \********************************************************/
6238 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6239
6240 "use strict";
6241 __webpack_require__.r(__webpack_exports__);
6242 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6243 /* harmony export */ embedImages: () => (/* binding */ embedImages)
6244 /* harmony export */ });
6245 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
6246 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6247 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6248 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6249
6250
6251
6252
6253 async function embedProp(propName, node, options) {
6254 var _a;
6255 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
6256 if (propValue) {
6257 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
6258 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
6259 return true;
6260 }
6261 return false;
6262 }
6263 async function embedBackground(clonedNode, options) {
6264 if (!(await embedProp('background', clonedNode, options))) {
6265 await embedProp('background-image', clonedNode, options);
6266 }
6267 if (!(await embedProp('mask', clonedNode, options))) {
6268 await embedProp('mask-image', clonedNode, options);
6269 }
6270 }
6271 async function embedImageNode(clonedNode, options) {
6272 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
6273 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
6274 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
6275 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
6276 return;
6277 }
6278 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
6279 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
6280 await new Promise((resolve, reject) => {
6281 clonedNode.onload = resolve;
6282 clonedNode.onerror = reject;
6283 const image = clonedNode;
6284 if (image.decode) {
6285 image.decode = resolve;
6286 }
6287 if (image.loading === 'lazy') {
6288 image.loading = 'eager';
6289 }
6290 if (isImageElement) {
6291 clonedNode.srcset = '';
6292 clonedNode.src = dataURL;
6293 }
6294 else {
6295 clonedNode.href.baseVal = dataURL;
6296 }
6297 });
6298 }
6299 async function embedChildren(clonedNode, options) {
6300 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
6301 const deferreds = children.map((child) => embedImages(child, options));
6302 await Promise.all(deferreds).then(() => clonedNode);
6303 }
6304 async function embedImages(clonedNode, options) {
6305 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6306 await embedBackground(clonedNode, options);
6307 await embedImageNode(clonedNode, options);
6308 await embedChildren(clonedNode, options);
6309 }
6310 }
6311 //# sourceMappingURL=embed-images.js.map
6312
6313 /***/ }),
6314
6315 /***/ "../node_modules/html-to-image/es/embed-resources.js":
6316 /*!***********************************************************!*\
6317 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
6318 \***********************************************************/
6319 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6320
6321 "use strict";
6322 __webpack_require__.r(__webpack_exports__);
6323 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6324 /* harmony export */ embed: () => (/* binding */ embed),
6325 /* harmony export */ embedResources: () => (/* binding */ embedResources),
6326 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
6327 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
6328 /* harmony export */ });
6329 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6330 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6331 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6332
6333
6334
6335 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
6336 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
6337 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
6338 function toRegex(url) {
6339 // eslint-disable-next-line no-useless-escape
6340 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
6341 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
6342 }
6343 function parseURLs(cssText) {
6344 const urls = [];
6345 cssText.replace(URL_REGEX, (raw, quotation, url) => {
6346 urls.push(url);
6347 return raw;
6348 });
6349 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
6350 }
6351 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
6352 try {
6353 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
6354 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
6355 let dataURL;
6356 if (getContentFromUrl) {
6357 const content = await getContentFromUrl(resolvedURL);
6358 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
6359 }
6360 else {
6361 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
6362 }
6363 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
6364 }
6365 catch (error) {
6366 // pass
6367 }
6368 return cssText;
6369 }
6370 function filterPreferredFontFormat(str, { preferredFontFormat }) {
6371 return !preferredFontFormat
6372 ? str
6373 : str.replace(FONT_SRC_REGEX, (match) => {
6374 // eslint-disable-next-line no-constant-condition
6375 while (true) {
6376 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
6377 if (!format) {
6378 return '';
6379 }
6380 if (format === preferredFontFormat) {
6381 return `src: ${src};`;
6382 }
6383 }
6384 });
6385 }
6386 function shouldEmbed(url) {
6387 return url.search(URL_REGEX) !== -1;
6388 }
6389 async function embedResources(cssText, baseUrl, options) {
6390 if (!shouldEmbed(cssText)) {
6391 return cssText;
6392 }
6393 const filteredCSSText = filterPreferredFontFormat(cssText, options);
6394 const urls = parseURLs(filteredCSSText);
6395 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
6396 }
6397 //# sourceMappingURL=embed-resources.js.map
6398
6399 /***/ }),
6400
6401 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
6402 /*!**********************************************************!*\
6403 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
6404 \**********************************************************/
6405 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6406
6407 "use strict";
6408 __webpack_require__.r(__webpack_exports__);
6409 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6410 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
6411 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
6412 /* harmony export */ });
6413 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6414 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6415 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
6416
6417
6418
6419 const cssFetchCache = {};
6420 async function fetchCSS(url) {
6421 let cache = cssFetchCache[url];
6422 if (cache != null) {
6423 return cache;
6424 }
6425 const res = await fetch(url);
6426 const cssText = await res.text();
6427 cache = { url, cssText };
6428 cssFetchCache[url] = cache;
6429 return cache;
6430 }
6431 async function embedFonts(data, options) {
6432 let cssText = data.cssText;
6433 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
6434 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
6435 const loadFonts = fontLocs.map(async (loc) => {
6436 let url = loc.replace(regexUrl, '$1');
6437 if (!url.startsWith('https://')) {
6438 url = new URL(url, data.url).href;
6439 }
6440 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
6441 cssText = cssText.replace(loc, `url(${result})`);
6442 return [loc, result];
6443 });
6444 });
6445 return Promise.all(loadFonts).then(() => cssText);
6446 }
6447 function parseCSS(source) {
6448 if (source == null) {
6449 return [];
6450 }
6451 const result = [];
6452 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
6453 // strip out comments
6454 let cssText = source.replace(commentsRegex, '');
6455 // eslint-disable-next-line prefer-regex-literals
6456 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
6457 // eslint-disable-next-line no-constant-condition
6458 while (true) {
6459 const matches = keyframesRegex.exec(cssText);
6460 if (matches === null) {
6461 break;
6462 }
6463 result.push(matches[0]);
6464 }
6465 cssText = cssText.replace(keyframesRegex, '');
6466 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
6467 // to match css & media queries together
6468 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
6469 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
6470 // unified regex
6471 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
6472 // eslint-disable-next-line no-constant-condition
6473 while (true) {
6474 let matches = importRegex.exec(cssText);
6475 if (matches === null) {
6476 matches = unifiedRegex.exec(cssText);
6477 if (matches === null) {
6478 break;
6479 }
6480 else {
6481 importRegex.lastIndex = unifiedRegex.lastIndex;
6482 }
6483 }
6484 else {
6485 unifiedRegex.lastIndex = importRegex.lastIndex;
6486 }
6487 result.push(matches[0]);
6488 }
6489 return result;
6490 }
6491 async function getCSSRules(styleSheets, options) {
6492 const ret = [];
6493 const deferreds = [];
6494 // First loop inlines imports
6495 styleSheets.forEach((sheet) => {
6496 if ('cssRules' in sheet) {
6497 try {
6498 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
6499 if (item.type === CSSRule.IMPORT_RULE) {
6500 let importIndex = index + 1;
6501 const url = item.href;
6502 const deferred = fetchCSS(url)
6503 .then((metadata) => embedFonts(metadata, options))
6504 .then((cssText) => parseCSS(cssText).forEach((rule) => {
6505 try {
6506 sheet.insertRule(rule, rule.startsWith('@import')
6507 ? (importIndex += 1)
6508 : sheet.cssRules.length);
6509 }
6510 catch (error) {
6511 console.error('Error inserting rule from remote css', {
6512 rule,
6513 error,
6514 });
6515 }
6516 }))
6517 .catch((e) => {
6518 console.error('Error loading remote css', e.toString());
6519 });
6520 deferreds.push(deferred);
6521 }
6522 });
6523 }
6524 catch (e) {
6525 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
6526 if (sheet.href != null) {
6527 deferreds.push(fetchCSS(sheet.href)
6528 .then((metadata) => embedFonts(metadata, options))
6529 .then((cssText) => parseCSS(cssText).forEach((rule) => {
6530 inline.insertRule(rule, sheet.cssRules.length);
6531 }))
6532 .catch((err) => {
6533 console.error('Error loading remote stylesheet', err);
6534 }));
6535 }
6536 console.error('Error inlining remote css file', e);
6537 }
6538 }
6539 });
6540 return Promise.all(deferreds).then(() => {
6541 // Second loop parses rules
6542 styleSheets.forEach((sheet) => {
6543 if ('cssRules' in sheet) {
6544 try {
6545 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
6546 ret.push(item);
6547 });
6548 }
6549 catch (e) {
6550 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
6551 }
6552 }
6553 });
6554 return ret;
6555 });
6556 }
6557 function getWebFontRules(cssRules) {
6558 return cssRules
6559 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
6560 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
6561 }
6562 async function parseWebFontRules(node, options) {
6563 if (node.ownerDocument == null) {
6564 throw new Error('Provided element is not within a Document');
6565 }
6566 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
6567 const cssRules = await getCSSRules(styleSheets, options);
6568 return getWebFontRules(cssRules);
6569 }
6570 async function getWebFontCSS(node, options) {
6571 const rules = await parseWebFontRules(node, options);
6572 const cssTexts = await Promise.all(rules.map((rule) => {
6573 const baseUrl = rule.parentStyleSheet ? rule.parentStyleSheet.href : null;
6574 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
6575 }));
6576 return cssTexts.join('\n');
6577 }
6578 async function embedWebFonts(clonedNode, options) {
6579 const cssText = options.fontEmbedCSS != null
6580 ? options.fontEmbedCSS
6581 : options.skipFonts
6582 ? null
6583 : await getWebFontCSS(clonedNode, options);
6584 if (cssText) {
6585 const styleNode = document.createElement('style');
6586 const sytleContent = document.createTextNode(cssText);
6587 styleNode.appendChild(sytleContent);
6588 if (clonedNode.firstChild) {
6589 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
6590 }
6591 else {
6592 clonedNode.appendChild(styleNode);
6593 }
6594 }
6595 }
6596 //# sourceMappingURL=embed-webfonts.js.map
6597
6598 /***/ }),
6599
6600 /***/ "../node_modules/html-to-image/es/index.js":
6601 /*!*************************************************!*\
6602 !*** ../node_modules/html-to-image/es/index.js ***!
6603 \*************************************************/
6604 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6605
6606 "use strict";
6607 __webpack_require__.r(__webpack_exports__);
6608 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6609 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
6610 /* harmony export */ toBlob: () => (/* binding */ toBlob),
6611 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
6612 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
6613 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
6614 /* harmony export */ toPng: () => (/* binding */ toPng),
6615 /* harmony export */ toSvg: () => (/* binding */ toSvg)
6616 /* harmony export */ });
6617 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
6618 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
6619 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
6620 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
6621 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6622
6623
6624
6625
6626
6627 async function toSvg(node, options = {}) {
6628 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6629 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
6630 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
6631 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
6632 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
6633 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
6634 return datauri;
6635 }
6636 async function toCanvas(node, options = {}) {
6637 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6638 const svg = await toSvg(node, options);
6639 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
6640 const canvas = document.createElement('canvas');
6641 const context = canvas.getContext('2d');
6642 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
6643 const canvasWidth = options.canvasWidth || width;
6644 const canvasHeight = options.canvasHeight || height;
6645 canvas.width = canvasWidth * ratio;
6646 canvas.height = canvasHeight * ratio;
6647 if (!options.skipAutoScale) {
6648 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
6649 }
6650 canvas.style.width = `${canvasWidth}`;
6651 canvas.style.height = `${canvasHeight}`;
6652 if (options.backgroundColor) {
6653 context.fillStyle = options.backgroundColor;
6654 context.fillRect(0, 0, canvas.width, canvas.height);
6655 }
6656 context.drawImage(img, 0, 0, canvas.width, canvas.height);
6657 return canvas;
6658 }
6659 async function toPixelData(node, options = {}) {
6660 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6661 const canvas = await toCanvas(node, options);
6662 const ctx = canvas.getContext('2d');
6663 return ctx.getImageData(0, 0, width, height).data;
6664 }
6665 async function toPng(node, options = {}) {
6666 const canvas = await toCanvas(node, options);
6667 return canvas.toDataURL();
6668 }
6669 async function toJpeg(node, options = {}) {
6670 const canvas = await toCanvas(node, options);
6671 return canvas.toDataURL('image/jpeg', options.quality || 1);
6672 }
6673 async function toBlob(node, options = {}) {
6674 const canvas = await toCanvas(node, options);
6675 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
6676 return blob;
6677 }
6678 async function getFontEmbedCSS(node, options = {}) {
6679 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
6680 }
6681 //# sourceMappingURL=index.js.map
6682
6683 /***/ }),
6684
6685 /***/ "../node_modules/html-to-image/es/mimes.js":
6686 /*!*************************************************!*\
6687 !*** ../node_modules/html-to-image/es/mimes.js ***!
6688 \*************************************************/
6689 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6690
6691 "use strict";
6692 __webpack_require__.r(__webpack_exports__);
6693 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6694 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
6695 /* harmony export */ });
6696 const WOFF = 'application/font-woff';
6697 const JPEG = 'image/jpeg';
6698 const mimes = {
6699 woff: WOFF,
6700 woff2: WOFF,
6701 ttf: 'application/font-truetype',
6702 eot: 'application/vnd.ms-fontobject',
6703 png: 'image/png',
6704 jpg: JPEG,
6705 jpeg: JPEG,
6706 gif: 'image/gif',
6707 tiff: 'image/tiff',
6708 svg: 'image/svg+xml',
6709 webp: 'image/webp',
6710 };
6711 function getExtension(url) {
6712 const match = /\.([^./]*?)$/g.exec(url);
6713 return match ? match[1] : '';
6714 }
6715 function getMimeType(url) {
6716 const extension = getExtension(url).toLowerCase();
6717 return mimes[extension] || '';
6718 }
6719 //# sourceMappingURL=mimes.js.map
6720
6721 /***/ }),
6722
6723 /***/ "../node_modules/html-to-image/es/util.js":
6724 /*!************************************************!*\
6725 !*** ../node_modules/html-to-image/es/util.js ***!
6726 \************************************************/
6727 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6728
6729 "use strict";
6730 __webpack_require__.r(__webpack_exports__);
6731 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6732 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
6733 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
6734 /* harmony export */ createImage: () => (/* binding */ createImage),
6735 /* harmony export */ delay: () => (/* binding */ delay),
6736 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
6737 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
6738 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
6739 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
6740 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
6741 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
6742 /* harmony export */ toArray: () => (/* binding */ toArray),
6743 /* harmony export */ uuid: () => (/* binding */ uuid)
6744 /* harmony export */ });
6745 function resolveUrl(url, baseUrl) {
6746 // url is absolute already
6747 if (url.match(/^[a-z]+:\/\//i)) {
6748 return url;
6749 }
6750 // url is absolute already, without protocol
6751 if (url.match(/^\/\//)) {
6752 return window.location.protocol + url;
6753 }
6754 // dataURI, mailto:, tel:, etc.
6755 if (url.match(/^[a-z]+:/i)) {
6756 return url;
6757 }
6758 const doc = document.implementation.createHTMLDocument();
6759 const base = doc.createElement('base');
6760 const a = doc.createElement('a');
6761 doc.head.appendChild(base);
6762 doc.body.appendChild(a);
6763 if (baseUrl) {
6764 base.href = baseUrl;
6765 }
6766 a.href = url;
6767 return a.href;
6768 }
6769 const uuid = (() => {
6770 // generate uuid for className of pseudo elements.
6771 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
6772 let counter = 0;
6773 // ref: http://stackoverflow.com/a/6248722/2519373
6774 const random = () =>
6775 // eslint-disable-next-line no-bitwise
6776 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
6777 return () => {
6778 counter += 1;
6779 return `u${random()}${counter}`;
6780 };
6781 })();
6782 function delay(ms) {
6783 return (args) => new Promise((resolve) => {
6784 setTimeout(() => resolve(args), ms);
6785 });
6786 }
6787 function toArray(arrayLike) {
6788 const arr = [];
6789 for (let i = 0, l = arrayLike.length; i < l; i++) {
6790 arr.push(arrayLike[i]);
6791 }
6792 return arr;
6793 }
6794 function px(node, styleProperty) {
6795 const win = node.ownerDocument.defaultView || window;
6796 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
6797 return val ? parseFloat(val.replace('px', '')) : 0;
6798 }
6799 function getNodeWidth(node) {
6800 const leftBorder = px(node, 'border-left-width');
6801 const rightBorder = px(node, 'border-right-width');
6802 return node.clientWidth + leftBorder + rightBorder;
6803 }
6804 function getNodeHeight(node) {
6805 const topBorder = px(node, 'border-top-width');
6806 const bottomBorder = px(node, 'border-bottom-width');
6807 return node.clientHeight + topBorder + bottomBorder;
6808 }
6809 function getImageSize(targetNode, options = {}) {
6810 const width = options.width || getNodeWidth(targetNode);
6811 const height = options.height || getNodeHeight(targetNode);
6812 return { width, height };
6813 }
6814 function getPixelRatio() {
6815 let ratio;
6816 let FINAL_PROCESS;
6817 try {
6818 FINAL_PROCESS = process;
6819 }
6820 catch (e) {
6821 // pass
6822 }
6823 const val = FINAL_PROCESS && FINAL_PROCESS.env
6824 ? FINAL_PROCESS.env.devicePixelRatio
6825 : null;
6826 if (val) {
6827 ratio = parseInt(val, 10);
6828 if (Number.isNaN(ratio)) {
6829 ratio = 1;
6830 }
6831 }
6832 return ratio || window.devicePixelRatio || 1;
6833 }
6834 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
6835 const canvasDimensionLimit = 16384;
6836 function checkCanvasDimensions(canvas) {
6837 if (canvas.width > canvasDimensionLimit ||
6838 canvas.height > canvasDimensionLimit) {
6839 if (canvas.width > canvasDimensionLimit &&
6840 canvas.height > canvasDimensionLimit) {
6841 if (canvas.width > canvas.height) {
6842 canvas.height *= canvasDimensionLimit / canvas.width;
6843 canvas.width = canvasDimensionLimit;
6844 }
6845 else {
6846 canvas.width *= canvasDimensionLimit / canvas.height;
6847 canvas.height = canvasDimensionLimit;
6848 }
6849 }
6850 else if (canvas.width > canvasDimensionLimit) {
6851 canvas.height *= canvasDimensionLimit / canvas.width;
6852 canvas.width = canvasDimensionLimit;
6853 }
6854 else {
6855 canvas.width *= canvasDimensionLimit / canvas.height;
6856 canvas.height = canvasDimensionLimit;
6857 }
6858 }
6859 }
6860 function canvasToBlob(canvas, options = {}) {
6861 if (canvas.toBlob) {
6862 return new Promise((resolve) => {
6863 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
6864 });
6865 }
6866 return new Promise((resolve) => {
6867 const binaryString = window.atob(canvas
6868 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
6869 .split(',')[1]);
6870 const len = binaryString.length;
6871 const binaryArray = new Uint8Array(len);
6872 for (let i = 0; i < len; i += 1) {
6873 binaryArray[i] = binaryString.charCodeAt(i);
6874 }
6875 resolve(new Blob([binaryArray], {
6876 type: options.type ? options.type : 'image/png',
6877 }));
6878 });
6879 }
6880 function createImage(url) {
6881 return new Promise((resolve, reject) => {
6882 const img = new Image();
6883 img.decode = () => resolve(img);
6884 img.onload = () => resolve(img);
6885 img.onerror = reject;
6886 img.crossOrigin = 'anonymous';
6887 img.decoding = 'async';
6888 img.src = url;
6889 });
6890 }
6891 async function svgToDataURL(svg) {
6892 return Promise.resolve()
6893 .then(() => new XMLSerializer().serializeToString(svg))
6894 .then(encodeURIComponent)
6895 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
6896 }
6897 async function nodeToDataURL(node, width, height) {
6898 const xmlns = 'http://www.w3.org/2000/svg';
6899 const svg = document.createElementNS(xmlns, 'svg');
6900 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
6901 svg.setAttribute('width', `${width}`);
6902 svg.setAttribute('height', `${height}`);
6903 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
6904 foreignObject.setAttribute('width', '100%');
6905 foreignObject.setAttribute('height', '100%');
6906 foreignObject.setAttribute('x', '0');
6907 foreignObject.setAttribute('y', '0');
6908 foreignObject.setAttribute('externalResourcesRequired', 'true');
6909 svg.appendChild(foreignObject);
6910 foreignObject.appendChild(node);
6911 return svgToDataURL(svg);
6912 }
6913 const isInstanceOfElement = (node, instance) => {
6914 if (node instanceof instance)
6915 return true;
6916 const nodePrototype = Object.getPrototypeOf(node);
6917 if (nodePrototype === null)
6918 return false;
6919 return (nodePrototype.constructor.name === instance.name ||
6920 isInstanceOfElement(nodePrototype, instance));
6921 };
6922 //# sourceMappingURL=util.js.map
6923
6924 /***/ }),
6925
6926 /***/ "../node_modules/object-assign/index.js":
6927 /*!**********************************************!*\
6928 !*** ../node_modules/object-assign/index.js ***!
6929 \**********************************************/
6930 /***/ ((module) => {
6931
6932 "use strict";
6933 /*
6934 object-assign
6935 (c) Sindre Sorhus
6936 @license MIT
6937 */
6938
6939
6940 /* eslint-disable no-unused-vars */
6941 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
6942 var hasOwnProperty = Object.prototype.hasOwnProperty;
6943 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
6944
6945 function toObject(val) {
6946 if (val === null || val === undefined) {
6947 throw new TypeError('Object.assign cannot be called with null or undefined');
6948 }
6949
6950 return Object(val);
6951 }
6952
6953 function shouldUseNative() {
6954 try {
6955 if (!Object.assign) {
6956 return false;
6957 }
6958
6959 // Detect buggy property enumeration order in older V8 versions.
6960
6961 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
6962 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
6963 test1[5] = 'de';
6964 if (Object.getOwnPropertyNames(test1)[0] === '5') {
6965 return false;
6966 }
6967
6968 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6969 var test2 = {};
6970 for (var i = 0; i < 10; i++) {
6971 test2['_' + String.fromCharCode(i)] = i;
6972 }
6973 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
6974 return test2[n];
6975 });
6976 if (order2.join('') !== '0123456789') {
6977 return false;
6978 }
6979
6980 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6981 var test3 = {};
6982 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
6983 test3[letter] = letter;
6984 });
6985 if (Object.keys(Object.assign({}, test3)).join('') !==
6986 'abcdefghijklmnopqrst') {
6987 return false;
6988 }
6989
6990 return true;
6991 } catch (err) {
6992 // We don't expect any of the above to throw, but better to be safe.
6993 return false;
6994 }
6995 }
6996
6997 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
6998 var from;
6999 var to = toObject(target);
7000 var symbols;
7001
7002 for (var s = 1; s < arguments.length; s++) {
7003 from = Object(arguments[s]);
7004
7005 for (var key in from) {
7006 if (hasOwnProperty.call(from, key)) {
7007 to[key] = from[key];
7008 }
7009 }
7010
7011 if (getOwnPropertySymbols) {
7012 symbols = getOwnPropertySymbols(from);
7013 for (var i = 0; i < symbols.length; i++) {
7014 if (propIsEnumerable.call(from, symbols[i])) {
7015 to[symbols[i]] = from[symbols[i]];
7016 }
7017 }
7018 }
7019 }
7020
7021 return to;
7022 };
7023
7024
7025 /***/ }),
7026
7027 /***/ "../node_modules/prop-types/checkPropTypes.js":
7028 /*!****************************************************!*\
7029 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7030 \****************************************************/
7031 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7032
7033 "use strict";
7034 /**
7035 * Copyright (c) 2013-present, Facebook, Inc.
7036 *
7037 * This source code is licensed under the MIT license found in the
7038 * LICENSE file in the root directory of this source tree.
7039 */
7040
7041
7042
7043 var printWarning = function() {};
7044
7045 if (true) {
7046 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7047 var loggedTypeFailures = {};
7048 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7049
7050 printWarning = function(text) {
7051 var message = 'Warning: ' + text;
7052 if (typeof console !== 'undefined') {
7053 console.error(message);
7054 }
7055 try {
7056 // --- Welcome to debugging React ---
7057 // This error was thrown as a convenience so that you can use this stack
7058 // to find the callsite that caused this warning to fire.
7059 throw new Error(message);
7060 } catch (x) { /**/ }
7061 };
7062 }
7063
7064 /**
7065 * Assert that the values match with the type specs.
7066 * Error messages are memorized and will only be shown once.
7067 *
7068 * @param {object} typeSpecs Map of name to a ReactPropType
7069 * @param {object} values Runtime values that need to be type-checked
7070 * @param {string} location e.g. "prop", "context", "child context"
7071 * @param {string} componentName Name of the component for error messages.
7072 * @param {?Function} getStack Returns the component stack.
7073 * @private
7074 */
7075 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7076 if (true) {
7077 for (var typeSpecName in typeSpecs) {
7078 if (has(typeSpecs, typeSpecName)) {
7079 var error;
7080 // Prop type validation may throw. In case they do, we don't want to
7081 // fail the render phase where it didn't fail before. So we log it.
7082 // After these have been cleaned up, we'll let them throw.
7083 try {
7084 // This is intentionally an invariant that gets caught. It's the same
7085 // behavior as without this statement except with a better message.
7086 if (typeof typeSpecs[typeSpecName] !== 'function') {
7087 var err = Error(
7088 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
7089 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
7090 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
7091 );
7092 err.name = 'Invariant Violation';
7093 throw err;
7094 }
7095 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
7096 } catch (ex) {
7097 error = ex;
7098 }
7099 if (error && !(error instanceof Error)) {
7100 printWarning(
7101 (componentName || 'React class') + ': type specification of ' +
7102 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
7103 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
7104 'You may have forgotten to pass an argument to the type checker ' +
7105 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
7106 'shape all require an argument).'
7107 );
7108 }
7109 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
7110 // Only monitor this failure once because there tends to be a lot of the
7111 // same error.
7112 loggedTypeFailures[error.message] = true;
7113
7114 var stack = getStack ? getStack() : '';
7115
7116 printWarning(
7117 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
7118 );
7119 }
7120 }
7121 }
7122 }
7123 }
7124
7125 /**
7126 * Resets warning cache when testing.
7127 *
7128 * @private
7129 */
7130 checkPropTypes.resetWarningCache = function() {
7131 if (true) {
7132 loggedTypeFailures = {};
7133 }
7134 }
7135
7136 module.exports = checkPropTypes;
7137
7138
7139 /***/ }),
7140
7141 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
7142 /*!*************************************************************!*\
7143 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
7144 \*************************************************************/
7145 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7146
7147 "use strict";
7148 /**
7149 * Copyright (c) 2013-present, Facebook, Inc.
7150 *
7151 * This source code is licensed under the MIT license found in the
7152 * LICENSE file in the root directory of this source tree.
7153 */
7154
7155
7156
7157 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
7158 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
7159
7160 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7161 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7162 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
7163
7164 var printWarning = function() {};
7165
7166 if (true) {
7167 printWarning = function(text) {
7168 var message = 'Warning: ' + text;
7169 if (typeof console !== 'undefined') {
7170 console.error(message);
7171 }
7172 try {
7173 // --- Welcome to debugging React ---
7174 // This error was thrown as a convenience so that you can use this stack
7175 // to find the callsite that caused this warning to fire.
7176 throw new Error(message);
7177 } catch (x) {}
7178 };
7179 }
7180
7181 function emptyFunctionThatReturnsNull() {
7182 return null;
7183 }
7184
7185 module.exports = function(isValidElement, throwOnDirectAccess) {
7186 /* global Symbol */
7187 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
7188 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
7189
7190 /**
7191 * Returns the iterator method function contained on the iterable object.
7192 *
7193 * Be sure to invoke the function with the iterable as context:
7194 *
7195 * var iteratorFn = getIteratorFn(myIterable);
7196 * if (iteratorFn) {
7197 * var iterator = iteratorFn.call(myIterable);
7198 * ...
7199 * }
7200 *
7201 * @param {?object} maybeIterable
7202 * @return {?function}
7203 */
7204 function getIteratorFn(maybeIterable) {
7205 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
7206 if (typeof iteratorFn === 'function') {
7207 return iteratorFn;
7208 }
7209 }
7210
7211 /**
7212 * Collection of methods that allow declaration and validation of props that are
7213 * supplied to React components. Example usage:
7214 *
7215 * var Props = require('ReactPropTypes');
7216 * var MyArticle = React.createClass({
7217 * propTypes: {
7218 * // An optional string prop named "description".
7219 * description: Props.string,
7220 *
7221 * // A required enum prop named "category".
7222 * category: Props.oneOf(['News','Photos']).isRequired,
7223 *
7224 * // A prop named "dialog" that requires an instance of Dialog.
7225 * dialog: Props.instanceOf(Dialog).isRequired
7226 * },
7227 * render: function() { ... }
7228 * });
7229 *
7230 * A more formal specification of how these methods are used:
7231 *
7232 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
7233 * decl := ReactPropTypes.{type}(.isRequired)?
7234 *
7235 * Each and every declaration produces a function with the same signature. This
7236 * allows the creation of custom validation functions. For example:
7237 *
7238 * var MyLink = React.createClass({
7239 * propTypes: {
7240 * // An optional string or URI prop named "href".
7241 * href: function(props, propName, componentName) {
7242 * var propValue = props[propName];
7243 * if (propValue != null && typeof propValue !== 'string' &&
7244 * !(propValue instanceof URI)) {
7245 * return new Error(
7246 * 'Expected a string or an URI for ' + propName + ' in ' +
7247 * componentName
7248 * );
7249 * }
7250 * }
7251 * },
7252 * render: function() {...}
7253 * });
7254 *
7255 * @internal
7256 */
7257
7258 var ANONYMOUS = '<<anonymous>>';
7259
7260 // Important!
7261 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
7262 var ReactPropTypes = {
7263 array: createPrimitiveTypeChecker('array'),
7264 bigint: createPrimitiveTypeChecker('bigint'),
7265 bool: createPrimitiveTypeChecker('boolean'),
7266 func: createPrimitiveTypeChecker('function'),
7267 number: createPrimitiveTypeChecker('number'),
7268 object: createPrimitiveTypeChecker('object'),
7269 string: createPrimitiveTypeChecker('string'),
7270 symbol: createPrimitiveTypeChecker('symbol'),
7271
7272 any: createAnyTypeChecker(),
7273 arrayOf: createArrayOfTypeChecker,
7274 element: createElementTypeChecker(),
7275 elementType: createElementTypeTypeChecker(),
7276 instanceOf: createInstanceTypeChecker,
7277 node: createNodeChecker(),
7278 objectOf: createObjectOfTypeChecker,
7279 oneOf: createEnumTypeChecker,
7280 oneOfType: createUnionTypeChecker,
7281 shape: createShapeTypeChecker,
7282 exact: createStrictShapeTypeChecker,
7283 };
7284
7285 /**
7286 * inlined Object.is polyfill to avoid requiring consumers ship their own
7287 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
7288 */
7289 /*eslint-disable no-self-compare*/
7290 function is(x, y) {
7291 // SameValue algorithm
7292 if (x === y) {
7293 // Steps 1-5, 7-10
7294 // Steps 6.b-6.e: +0 != -0
7295 return x !== 0 || 1 / x === 1 / y;
7296 } else {
7297 // Step 6.a: NaN == NaN
7298 return x !== x && y !== y;
7299 }
7300 }
7301 /*eslint-enable no-self-compare*/
7302
7303 /**
7304 * We use an Error-like object for backward compatibility as people may call
7305 * PropTypes directly and inspect their output. However, we don't use real
7306 * Errors anymore. We don't inspect their stack anyway, and creating them
7307 * is prohibitively expensive if they are created too often, such as what
7308 * happens in oneOfType() for any type before the one that matched.
7309 */
7310 function PropTypeError(message, data) {
7311 this.message = message;
7312 this.data = data && typeof data === 'object' ? data: {};
7313 this.stack = '';
7314 }
7315 // Make `instanceof Error` still work for returned errors.
7316 PropTypeError.prototype = Error.prototype;
7317
7318 function createChainableTypeChecker(validate) {
7319 if (true) {
7320 var manualPropTypeCallCache = {};
7321 var manualPropTypeWarningCount = 0;
7322 }
7323 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
7324 componentName = componentName || ANONYMOUS;
7325 propFullName = propFullName || propName;
7326
7327 if (secret !== ReactPropTypesSecret) {
7328 if (throwOnDirectAccess) {
7329 // New behavior only for users of `prop-types` package
7330 var err = new Error(
7331 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
7332 'Use `PropTypes.checkPropTypes()` to call them. ' +
7333 'Read more at http://fb.me/use-check-prop-types'
7334 );
7335 err.name = 'Invariant Violation';
7336 throw err;
7337 } else if ( true && typeof console !== 'undefined') {
7338 // Old behavior for people using React.PropTypes
7339 var cacheKey = componentName + ':' + propName;
7340 if (
7341 !manualPropTypeCallCache[cacheKey] &&
7342 // Avoid spamming the console because they are often not actionable except for lib authors
7343 manualPropTypeWarningCount < 3
7344 ) {
7345 printWarning(
7346 'You are manually calling a React.PropTypes validation ' +
7347 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
7348 'and will throw in the standalone `prop-types` package. ' +
7349 'You may be seeing this warning due to a third-party PropTypes ' +
7350 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
7351 );
7352 manualPropTypeCallCache[cacheKey] = true;
7353 manualPropTypeWarningCount++;
7354 }
7355 }
7356 }
7357 if (props[propName] == null) {
7358 if (isRequired) {
7359 if (props[propName] === null) {
7360 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
7361 }
7362 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
7363 }
7364 return null;
7365 } else {
7366 return validate(props, propName, componentName, location, propFullName);
7367 }
7368 }
7369
7370 var chainedCheckType = checkType.bind(null, false);
7371 chainedCheckType.isRequired = checkType.bind(null, true);
7372
7373 return chainedCheckType;
7374 }
7375
7376 function createPrimitiveTypeChecker(expectedType) {
7377 function validate(props, propName, componentName, location, propFullName, secret) {
7378 var propValue = props[propName];
7379 var propType = getPropType(propValue);
7380 if (propType !== expectedType) {
7381 // `propValue` being instance of, say, date/regexp, pass the 'object'
7382 // check, but we can offer a more precise error message here rather than
7383 // 'of type `object`'.
7384 var preciseType = getPreciseType(propValue);
7385
7386 return new PropTypeError(
7387 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
7388 {expectedType: expectedType}
7389 );
7390 }
7391 return null;
7392 }
7393 return createChainableTypeChecker(validate);
7394 }
7395
7396 function createAnyTypeChecker() {
7397 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
7398 }
7399
7400 function createArrayOfTypeChecker(typeChecker) {
7401 function validate(props, propName, componentName, location, propFullName) {
7402 if (typeof typeChecker !== 'function') {
7403 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
7404 }
7405 var propValue = props[propName];
7406 if (!Array.isArray(propValue)) {
7407 var propType = getPropType(propValue);
7408 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
7409 }
7410 for (var i = 0; i < propValue.length; i++) {
7411 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
7412 if (error instanceof Error) {
7413 return error;
7414 }
7415 }
7416 return null;
7417 }
7418 return createChainableTypeChecker(validate);
7419 }
7420
7421 function createElementTypeChecker() {
7422 function validate(props, propName, componentName, location, propFullName) {
7423 var propValue = props[propName];
7424 if (!isValidElement(propValue)) {
7425 var propType = getPropType(propValue);
7426 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
7427 }
7428 return null;
7429 }
7430 return createChainableTypeChecker(validate);
7431 }
7432
7433 function createElementTypeTypeChecker() {
7434 function validate(props, propName, componentName, location, propFullName) {
7435 var propValue = props[propName];
7436 if (!ReactIs.isValidElementType(propValue)) {
7437 var propType = getPropType(propValue);
7438 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
7439 }
7440 return null;
7441 }
7442 return createChainableTypeChecker(validate);
7443 }
7444
7445 function createInstanceTypeChecker(expectedClass) {
7446 function validate(props, propName, componentName, location, propFullName) {
7447 if (!(props[propName] instanceof expectedClass)) {
7448 var expectedClassName = expectedClass.name || ANONYMOUS;
7449 var actualClassName = getClassName(props[propName]);
7450 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
7451 }
7452 return null;
7453 }
7454 return createChainableTypeChecker(validate);
7455 }
7456
7457 function createEnumTypeChecker(expectedValues) {
7458 if (!Array.isArray(expectedValues)) {
7459 if (true) {
7460 if (arguments.length > 1) {
7461 printWarning(
7462 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
7463 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
7464 );
7465 } else {
7466 printWarning('Invalid argument supplied to oneOf, expected an array.');
7467 }
7468 }
7469 return emptyFunctionThatReturnsNull;
7470 }
7471
7472 function validate(props, propName, componentName, location, propFullName) {
7473 var propValue = props[propName];
7474 for (var i = 0; i < expectedValues.length; i++) {
7475 if (is(propValue, expectedValues[i])) {
7476 return null;
7477 }
7478 }
7479
7480 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
7481 var type = getPreciseType(value);
7482 if (type === 'symbol') {
7483 return String(value);
7484 }
7485 return value;
7486 });
7487 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
7488 }
7489 return createChainableTypeChecker(validate);
7490 }
7491
7492 function createObjectOfTypeChecker(typeChecker) {
7493 function validate(props, propName, componentName, location, propFullName) {
7494 if (typeof typeChecker !== 'function') {
7495 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
7496 }
7497 var propValue = props[propName];
7498 var propType = getPropType(propValue);
7499 if (propType !== 'object') {
7500 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
7501 }
7502 for (var key in propValue) {
7503 if (has(propValue, key)) {
7504 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7505 if (error instanceof Error) {
7506 return error;
7507 }
7508 }
7509 }
7510 return null;
7511 }
7512 return createChainableTypeChecker(validate);
7513 }
7514
7515 function createUnionTypeChecker(arrayOfTypeCheckers) {
7516 if (!Array.isArray(arrayOfTypeCheckers)) {
7517 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
7518 return emptyFunctionThatReturnsNull;
7519 }
7520
7521 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
7522 var checker = arrayOfTypeCheckers[i];
7523 if (typeof checker !== 'function') {
7524 printWarning(
7525 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
7526 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
7527 );
7528 return emptyFunctionThatReturnsNull;
7529 }
7530 }
7531
7532 function validate(props, propName, componentName, location, propFullName) {
7533 var expectedTypes = [];
7534 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
7535 var checker = arrayOfTypeCheckers[i];
7536 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
7537 if (checkerResult == null) {
7538 return null;
7539 }
7540 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
7541 expectedTypes.push(checkerResult.data.expectedType);
7542 }
7543 }
7544 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
7545 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
7546 }
7547 return createChainableTypeChecker(validate);
7548 }
7549
7550 function createNodeChecker() {
7551 function validate(props, propName, componentName, location, propFullName) {
7552 if (!isNode(props[propName])) {
7553 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
7554 }
7555 return null;
7556 }
7557 return createChainableTypeChecker(validate);
7558 }
7559
7560 function invalidValidatorError(componentName, location, propFullName, key, type) {
7561 return new PropTypeError(
7562 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
7563 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
7564 );
7565 }
7566
7567 function createShapeTypeChecker(shapeTypes) {
7568 function validate(props, propName, componentName, location, propFullName) {
7569 var propValue = props[propName];
7570 var propType = getPropType(propValue);
7571 if (propType !== 'object') {
7572 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
7573 }
7574 for (var key in shapeTypes) {
7575 var checker = shapeTypes[key];
7576 if (typeof checker !== 'function') {
7577 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
7578 }
7579 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7580 if (error) {
7581 return error;
7582 }
7583 }
7584 return null;
7585 }
7586 return createChainableTypeChecker(validate);
7587 }
7588
7589 function createStrictShapeTypeChecker(shapeTypes) {
7590 function validate(props, propName, componentName, location, propFullName) {
7591 var propValue = props[propName];
7592 var propType = getPropType(propValue);
7593 if (propType !== 'object') {
7594 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
7595 }
7596 // We need to check all keys in case some are required but missing from props.
7597 var allKeys = assign({}, props[propName], shapeTypes);
7598 for (var key in allKeys) {
7599 var checker = shapeTypes[key];
7600 if (has(shapeTypes, key) && typeof checker !== 'function') {
7601 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
7602 }
7603 if (!checker) {
7604 return new PropTypeError(
7605 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
7606 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
7607 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
7608 );
7609 }
7610 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7611 if (error) {
7612 return error;
7613 }
7614 }
7615 return null;
7616 }
7617
7618 return createChainableTypeChecker(validate);
7619 }
7620
7621 function isNode(propValue) {
7622 switch (typeof propValue) {
7623 case 'number':
7624 case 'string':
7625 case 'undefined':
7626 return true;
7627 case 'boolean':
7628 return !propValue;
7629 case 'object':
7630 if (Array.isArray(propValue)) {
7631 return propValue.every(isNode);
7632 }
7633 if (propValue === null || isValidElement(propValue)) {
7634 return true;
7635 }
7636
7637 var iteratorFn = getIteratorFn(propValue);
7638 if (iteratorFn) {
7639 var iterator = iteratorFn.call(propValue);
7640 var step;
7641 if (iteratorFn !== propValue.entries) {
7642 while (!(step = iterator.next()).done) {
7643 if (!isNode(step.value)) {
7644 return false;
7645 }
7646 }
7647 } else {
7648 // Iterator will provide entry [k,v] tuples rather than values.
7649 while (!(step = iterator.next()).done) {
7650 var entry = step.value;
7651 if (entry) {
7652 if (!isNode(entry[1])) {
7653 return false;
7654 }
7655 }
7656 }
7657 }
7658 } else {
7659 return false;
7660 }
7661
7662 return true;
7663 default:
7664 return false;
7665 }
7666 }
7667
7668 function isSymbol(propType, propValue) {
7669 // Native Symbol.
7670 if (propType === 'symbol') {
7671 return true;
7672 }
7673
7674 // falsy value can't be a Symbol
7675 if (!propValue) {
7676 return false;
7677 }
7678
7679 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
7680 if (propValue['@@toStringTag'] === 'Symbol') {
7681 return true;
7682 }
7683
7684 // Fallback for non-spec compliant Symbols which are polyfilled.
7685 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
7686 return true;
7687 }
7688
7689 return false;
7690 }
7691
7692 // Equivalent of `typeof` but with special handling for array and regexp.
7693 function getPropType(propValue) {
7694 var propType = typeof propValue;
7695 if (Array.isArray(propValue)) {
7696 return 'array';
7697 }
7698 if (propValue instanceof RegExp) {
7699 // Old webkits (at least until Android 4.0) return 'function' rather than
7700 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
7701 // passes PropTypes.object.
7702 return 'object';
7703 }
7704 if (isSymbol(propType, propValue)) {
7705 return 'symbol';
7706 }
7707 return propType;
7708 }
7709
7710 // This handles more types than `getPropType`. Only used for error messages.
7711 // See `createPrimitiveTypeChecker`.
7712 function getPreciseType(propValue) {
7713 if (typeof propValue === 'undefined' || propValue === null) {
7714 return '' + propValue;
7715 }
7716 var propType = getPropType(propValue);
7717 if (propType === 'object') {
7718 if (propValue instanceof Date) {
7719 return 'date';
7720 } else if (propValue instanceof RegExp) {
7721 return 'regexp';
7722 }
7723 }
7724 return propType;
7725 }
7726
7727 // Returns a string that is postfixed to a warning about an invalid type.
7728 // For example, "undefined" or "of type array"
7729 function getPostfixForTypeWarning(value) {
7730 var type = getPreciseType(value);
7731 switch (type) {
7732 case 'array':
7733 case 'object':
7734 return 'an ' + type;
7735 case 'boolean':
7736 case 'date':
7737 case 'regexp':
7738 return 'a ' + type;
7739 default:
7740 return type;
7741 }
7742 }
7743
7744 // Returns class name of the object, if any.
7745 function getClassName(propValue) {
7746 if (!propValue.constructor || !propValue.constructor.name) {
7747 return ANONYMOUS;
7748 }
7749 return propValue.constructor.name;
7750 }
7751
7752 ReactPropTypes.checkPropTypes = checkPropTypes;
7753 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
7754 ReactPropTypes.PropTypes = ReactPropTypes;
7755
7756 return ReactPropTypes;
7757 };
7758
7759
7760 /***/ }),
7761
7762 /***/ "../node_modules/prop-types/index.js":
7763 /*!*******************************************!*\
7764 !*** ../node_modules/prop-types/index.js ***!
7765 \*******************************************/
7766 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7767
7768 /**
7769 * Copyright (c) 2013-present, Facebook, Inc.
7770 *
7771 * This source code is licensed under the MIT license found in the
7772 * LICENSE file in the root directory of this source tree.
7773 */
7774
7775 if (true) {
7776 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
7777
7778 // By explicitly using `prop-types` you are opting into new development behavior.
7779 // http://fb.me/prop-types-in-prod
7780 var throwOnDirectAccess = true;
7781 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
7782 } else {}
7783
7784
7785 /***/ }),
7786
7787 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
7788 /*!**************************************************************!*\
7789 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
7790 \**************************************************************/
7791 /***/ ((module) => {
7792
7793 "use strict";
7794 /**
7795 * Copyright (c) 2013-present, Facebook, Inc.
7796 *
7797 * This source code is licensed under the MIT license found in the
7798 * LICENSE file in the root directory of this source tree.
7799 */
7800
7801
7802
7803 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
7804
7805 module.exports = ReactPropTypesSecret;
7806
7807
7808 /***/ }),
7809
7810 /***/ "../node_modules/prop-types/lib/has.js":
7811 /*!*********************************************!*\
7812 !*** ../node_modules/prop-types/lib/has.js ***!
7813 \*********************************************/
7814 /***/ ((module) => {
7815
7816 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
7817
7818
7819 /***/ }),
7820
7821 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
7822 /*!************************************************************************************!*\
7823 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
7824 \************************************************************************************/
7825 /***/ ((__unused_webpack_module, exports) => {
7826
7827 "use strict";
7828 /** @license React v16.13.1
7829 * react-is.development.js
7830 *
7831 * Copyright (c) Facebook, Inc. and its affiliates.
7832 *
7833 * This source code is licensed under the MIT license found in the
7834 * LICENSE file in the root directory of this source tree.
7835 */
7836
7837
7838
7839
7840
7841 if (true) {
7842 (function() {
7843 'use strict';
7844
7845 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
7846 // nor polyfill, then a plain number is used for performance.
7847 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
7848 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
7849 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
7850 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
7851 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
7852 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
7853 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
7854 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
7855 // (unstable) APIs that have been removed. Can we remove the symbols?
7856
7857 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
7858 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
7859 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
7860 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
7861 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
7862 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
7863 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
7864 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
7865 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
7866 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
7867 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
7868
7869 function isValidElementType(type) {
7870 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
7871 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);
7872 }
7873
7874 function typeOf(object) {
7875 if (typeof object === 'object' && object !== null) {
7876 var $$typeof = object.$$typeof;
7877
7878 switch ($$typeof) {
7879 case REACT_ELEMENT_TYPE:
7880 var type = object.type;
7881
7882 switch (type) {
7883 case REACT_ASYNC_MODE_TYPE:
7884 case REACT_CONCURRENT_MODE_TYPE:
7885 case REACT_FRAGMENT_TYPE:
7886 case REACT_PROFILER_TYPE:
7887 case REACT_STRICT_MODE_TYPE:
7888 case REACT_SUSPENSE_TYPE:
7889 return type;
7890
7891 default:
7892 var $$typeofType = type && type.$$typeof;
7893
7894 switch ($$typeofType) {
7895 case REACT_CONTEXT_TYPE:
7896 case REACT_FORWARD_REF_TYPE:
7897 case REACT_LAZY_TYPE:
7898 case REACT_MEMO_TYPE:
7899 case REACT_PROVIDER_TYPE:
7900 return $$typeofType;
7901
7902 default:
7903 return $$typeof;
7904 }
7905
7906 }
7907
7908 case REACT_PORTAL_TYPE:
7909 return $$typeof;
7910 }
7911 }
7912
7913 return undefined;
7914 } // AsyncMode is deprecated along with isAsyncMode
7915
7916 var AsyncMode = REACT_ASYNC_MODE_TYPE;
7917 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
7918 var ContextConsumer = REACT_CONTEXT_TYPE;
7919 var ContextProvider = REACT_PROVIDER_TYPE;
7920 var Element = REACT_ELEMENT_TYPE;
7921 var ForwardRef = REACT_FORWARD_REF_TYPE;
7922 var Fragment = REACT_FRAGMENT_TYPE;
7923 var Lazy = REACT_LAZY_TYPE;
7924 var Memo = REACT_MEMO_TYPE;
7925 var Portal = REACT_PORTAL_TYPE;
7926 var Profiler = REACT_PROFILER_TYPE;
7927 var StrictMode = REACT_STRICT_MODE_TYPE;
7928 var Suspense = REACT_SUSPENSE_TYPE;
7929 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
7930
7931 function isAsyncMode(object) {
7932 {
7933 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
7934 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
7935
7936 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.');
7937 }
7938 }
7939
7940 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
7941 }
7942 function isConcurrentMode(object) {
7943 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
7944 }
7945 function isContextConsumer(object) {
7946 return typeOf(object) === REACT_CONTEXT_TYPE;
7947 }
7948 function isContextProvider(object) {
7949 return typeOf(object) === REACT_PROVIDER_TYPE;
7950 }
7951 function isElement(object) {
7952 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
7953 }
7954 function isForwardRef(object) {
7955 return typeOf(object) === REACT_FORWARD_REF_TYPE;
7956 }
7957 function isFragment(object) {
7958 return typeOf(object) === REACT_FRAGMENT_TYPE;
7959 }
7960 function isLazy(object) {
7961 return typeOf(object) === REACT_LAZY_TYPE;
7962 }
7963 function isMemo(object) {
7964 return typeOf(object) === REACT_MEMO_TYPE;
7965 }
7966 function isPortal(object) {
7967 return typeOf(object) === REACT_PORTAL_TYPE;
7968 }
7969 function isProfiler(object) {
7970 return typeOf(object) === REACT_PROFILER_TYPE;
7971 }
7972 function isStrictMode(object) {
7973 return typeOf(object) === REACT_STRICT_MODE_TYPE;
7974 }
7975 function isSuspense(object) {
7976 return typeOf(object) === REACT_SUSPENSE_TYPE;
7977 }
7978
7979 exports.AsyncMode = AsyncMode;
7980 exports.ConcurrentMode = ConcurrentMode;
7981 exports.ContextConsumer = ContextConsumer;
7982 exports.ContextProvider = ContextProvider;
7983 exports.Element = Element;
7984 exports.ForwardRef = ForwardRef;
7985 exports.Fragment = Fragment;
7986 exports.Lazy = Lazy;
7987 exports.Memo = Memo;
7988 exports.Portal = Portal;
7989 exports.Profiler = Profiler;
7990 exports.StrictMode = StrictMode;
7991 exports.Suspense = Suspense;
7992 exports.isAsyncMode = isAsyncMode;
7993 exports.isConcurrentMode = isConcurrentMode;
7994 exports.isContextConsumer = isContextConsumer;
7995 exports.isContextProvider = isContextProvider;
7996 exports.isElement = isElement;
7997 exports.isForwardRef = isForwardRef;
7998 exports.isFragment = isFragment;
7999 exports.isLazy = isLazy;
8000 exports.isMemo = isMemo;
8001 exports.isPortal = isPortal;
8002 exports.isProfiler = isProfiler;
8003 exports.isStrictMode = isStrictMode;
8004 exports.isSuspense = isSuspense;
8005 exports.isValidElementType = isValidElementType;
8006 exports.typeOf = typeOf;
8007 })();
8008 }
8009
8010
8011 /***/ }),
8012
8013 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8014 /*!*****************************************************************!*\
8015 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8016 \*****************************************************************/
8017 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8018
8019 "use strict";
8020
8021
8022 if (false) {} else {
8023 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8024 }
8025
8026
8027 /***/ }),
8028
8029 /***/ "../node_modules/react-dom/client.js":
8030 /*!*******************************************!*\
8031 !*** ../node_modules/react-dom/client.js ***!
8032 \*******************************************/
8033 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8034
8035 "use strict";
8036
8037
8038 var m = __webpack_require__(/*! react-dom */ "react-dom");
8039 if (false) {} else {
8040 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8041 exports.createRoot = function(c, o) {
8042 i.usingClientEntryPoint = true;
8043 try {
8044 return m.createRoot(c, o);
8045 } finally {
8046 i.usingClientEntryPoint = false;
8047 }
8048 };
8049 exports.hydrateRoot = function(c, h, o) {
8050 i.usingClientEntryPoint = true;
8051 try {
8052 return m.hydrateRoot(c, h, o);
8053 } finally {
8054 i.usingClientEntryPoint = false;
8055 }
8056 };
8057 }
8058
8059
8060 /***/ }),
8061
8062 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8063 /*!**************************************************************!*\
8064 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8065 \**************************************************************/
8066 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8067
8068 "use strict";
8069
8070
8071 Object.defineProperty(exports, "__esModule", ({
8072 value: true
8073 }));
8074 Object.defineProperty(exports, "DraggableCore", ({
8075 enumerable: true,
8076 get: function () {
8077 return _DraggableCore.default;
8078 }
8079 }));
8080 exports["default"] = void 0;
8081 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8082 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8083 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
8084 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
8085 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
8086 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
8087 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8088 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
8089 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
8090 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8091 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); }
8092 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; }
8093 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); }
8094 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; }
8095 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8096 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';*/
8097 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
8098 /*:: import type {Element as ReactElement} from 'react';*/
8099 /*:: type DraggableState = {
8100 dragging: boolean,
8101 dragged: boolean,
8102 x: number, y: number,
8103 slackX: number, slackY: number,
8104 isElementSVG: boolean,
8105 prevPropsPosition: ?ControlPosition,
8106 };*/
8107 /*:: export type DraggableDefaultProps = {
8108 ...DraggableCoreDefaultProps,
8109 axis: 'both' | 'x' | 'y' | 'none',
8110 bounds: Bounds | string | false,
8111 defaultClassName: string,
8112 defaultClassNameDragging: string,
8113 defaultClassNameDragged: string,
8114 defaultPosition: ControlPosition,
8115 scale: number,
8116 };*/
8117 /*:: export type DraggableProps = {
8118 ...DraggableCoreProps,
8119 ...DraggableDefaultProps,
8120 positionOffset: PositionOffsetControlPosition,
8121 position: ControlPosition,
8122 };*/
8123 //
8124 // Define <Draggable>
8125 //
8126 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
8127 // React 16.3+
8128 // Arity (props, state)
8129 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
8130 let {
8131 position
8132 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
8133 let {
8134 prevPropsPosition
8135 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
8136 // Set x/y if a new position is provided in props that is different than the previous.
8137 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
8138 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
8139 position,
8140 prevPropsPosition
8141 });
8142 return {
8143 x: position.x,
8144 y: position.y,
8145 prevPropsPosition: {
8146 ...position
8147 }
8148 };
8149 }
8150 return null;
8151 }
8152 constructor(props /*: DraggableProps*/) {
8153 super(props);
8154 _defineProperty(this, "onDragStart", (e, coreData) => {
8155 (0, _log.default)('Draggable: onDragStart: %j', coreData);
8156
8157 // Short-circuit if user's callback killed it.
8158 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
8159 // Kills start event on core as well, so move handlers are never bound.
8160 if (shouldStart === false) return false;
8161 this.setState({
8162 dragging: true,
8163 dragged: true
8164 });
8165 });
8166 _defineProperty(this, "onDrag", (e, coreData) => {
8167 if (!this.state.dragging) return false;
8168 (0, _log.default)('Draggable: onDrag: %j', coreData);
8169 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
8170 const newState = {
8171 x: uiData.x,
8172 y: uiData.y,
8173 slackX: 0,
8174 slackY: 0
8175 };
8176
8177 // Keep within bounds.
8178 if (this.props.bounds) {
8179 // Save original x and y.
8180 const {
8181 x,
8182 y
8183 } = newState;
8184
8185 // Add slack to the values used to calculate bound position. This will ensure that if
8186 // we start removing slack, the element won't react to it right away until it's been
8187 // completely removed.
8188 newState.x += this.state.slackX;
8189 newState.y += this.state.slackY;
8190
8191 // Get bound position. This will ceil/floor the x and y within the boundaries.
8192 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
8193 newState.x = newStateX;
8194 newState.y = newStateY;
8195
8196 // Recalculate slack by noting how much was shaved by the boundPosition handler.
8197 newState.slackX = this.state.slackX + (x - newState.x);
8198 newState.slackY = this.state.slackY + (y - newState.y);
8199
8200 // Update the event we fire to reflect what really happened after bounds took effect.
8201 uiData.x = newState.x;
8202 uiData.y = newState.y;
8203 uiData.deltaX = newState.x - this.state.x;
8204 uiData.deltaY = newState.y - this.state.y;
8205 }
8206
8207 // Short-circuit if user's callback killed it.
8208 const shouldUpdate = this.props.onDrag(e, uiData);
8209 if (shouldUpdate === false) return false;
8210 this.setState(newState);
8211 });
8212 _defineProperty(this, "onDragStop", (e, coreData) => {
8213 if (!this.state.dragging) return false;
8214
8215 // Short-circuit if user's callback killed it.
8216 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
8217 if (shouldContinue === false) return false;
8218 (0, _log.default)('Draggable: onDragStop: %j', coreData);
8219 const newState /*: Partial<DraggableState>*/ = {
8220 dragging: false,
8221 slackX: 0,
8222 slackY: 0
8223 };
8224
8225 // If this is a controlled component, the result of this operation will be to
8226 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
8227 const controlled = Boolean(this.props.position);
8228 if (controlled) {
8229 const {
8230 x,
8231 y
8232 } = this.props.position;
8233 newState.x = x;
8234 newState.y = y;
8235 }
8236 this.setState(newState);
8237 });
8238 this.state = {
8239 // Whether or not we are currently dragging.
8240 dragging: false,
8241 // Whether or not we have been dragged before.
8242 dragged: false,
8243 // Current transform x and y.
8244 x: props.position ? props.position.x : props.defaultPosition.x,
8245 y: props.position ? props.position.y : props.defaultPosition.y,
8246 prevPropsPosition: {
8247 ...props.position
8248 },
8249 // Used for compensating for out-of-bounds drags
8250 slackX: 0,
8251 slackY: 0,
8252 // Can only determine if SVG after mounting
8253 isElementSVG: false
8254 };
8255 if (props.position && !(props.onDrag || props.onStop)) {
8256 // eslint-disable-next-line no-console
8257 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.');
8258 }
8259 }
8260 componentDidMount() {
8261 // Check to see if the element passed is an instanceof SVGElement
8262 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
8263 this.setState({
8264 isElementSVG: true
8265 });
8266 }
8267 }
8268 componentWillUnmount() {
8269 this.setState({
8270 dragging: false
8271 }); // prevents invariant if unmounted while dragging
8272 }
8273
8274 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
8275 // the underlying DOM node ourselves. See the README for more information.
8276 findDOMNode() /*: ?HTMLElement*/{
8277 var _this$props$nodeRef$c, _this$props;
8278 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);
8279 }
8280 render() /*: ReactElement<any>*/{
8281 const {
8282 axis,
8283 bounds,
8284 children,
8285 defaultPosition,
8286 defaultClassName,
8287 defaultClassNameDragging,
8288 defaultClassNameDragged,
8289 position,
8290 positionOffset,
8291 scale,
8292 ...draggableCoreProps
8293 } = this.props;
8294 let style = {};
8295 let svgTransform = null;
8296
8297 // If this is controlled, we don't want to move it - unless it's dragging.
8298 const controlled = Boolean(position);
8299 const draggable = !controlled || this.state.dragging;
8300 const validPosition = position || defaultPosition;
8301 const transformOpts = {
8302 // Set left if horizontal drag is enabled
8303 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
8304 // Set top if vertical drag is enabled
8305 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
8306 };
8307
8308 // If this element was SVG, we use the `transform` attribute.
8309 if (this.state.isElementSVG) {
8310 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
8311 } else {
8312 // Add a CSS transform to move the element around. This allows us to move the element around
8313 // without worrying about whether or not it is relatively or absolutely positioned.
8314 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
8315 // has a clean slate.
8316 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
8317 }
8318
8319 // Mark with class while dragging
8320 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
8321 [defaultClassNameDragging]: this.state.dragging,
8322 [defaultClassNameDragged]: this.state.dragged
8323 });
8324
8325 // Reuse the child provided
8326 // This makes it flexible to use whatever element is wanted (div, ul, etc)
8327 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
8328 onStart: this.onDragStart,
8329 onDrag: this.onDrag,
8330 onStop: this.onDragStop
8331 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
8332 className: className,
8333 style: {
8334 ...children.props.style,
8335 ...style
8336 },
8337 transform: svgTransform
8338 }));
8339 }
8340 }
8341 exports["default"] = Draggable;
8342 _defineProperty(Draggable, "displayName", 'Draggable');
8343 _defineProperty(Draggable, "propTypes", {
8344 // Accepts all props <DraggableCore> accepts.
8345 ..._DraggableCore.default.propTypes,
8346 /**
8347 * `axis` determines which axis the draggable can move.
8348 *
8349 * Note that all callbacks will still return data as normal. This only
8350 * controls flushing to the DOM.
8351 *
8352 * 'both' allows movement horizontally and vertically.
8353 * 'x' limits movement to horizontal axis.
8354 * 'y' limits movement to vertical axis.
8355 * 'none' limits all movement.
8356 *
8357 * Defaults to 'both'.
8358 */
8359 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
8360 /**
8361 * `bounds` determines the range of movement available to the element.
8362 * Available values are:
8363 *
8364 * 'parent' restricts movement within the Draggable's parent node.
8365 *
8366 * Alternatively, pass an object with the following properties, all of which are optional:
8367 *
8368 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
8369 *
8370 * All values are in px.
8371 *
8372 * Example:
8373 *
8374 * ```jsx
8375 * let App = React.createClass({
8376 * render: function () {
8377 * return (
8378 * <Draggable bounds={{right: 300, bottom: 300}}>
8379 * <div>Content</div>
8380 * </Draggable>
8381 * );
8382 * }
8383 * });
8384 * ```
8385 */
8386 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
8387 left: _propTypes.default.number,
8388 right: _propTypes.default.number,
8389 top: _propTypes.default.number,
8390 bottom: _propTypes.default.number
8391 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
8392 defaultClassName: _propTypes.default.string,
8393 defaultClassNameDragging: _propTypes.default.string,
8394 defaultClassNameDragged: _propTypes.default.string,
8395 /**
8396 * `defaultPosition` specifies the x and y that the dragged item should start at
8397 *
8398 * Example:
8399 *
8400 * ```jsx
8401 * let App = React.createClass({
8402 * render: function () {
8403 * return (
8404 * <Draggable defaultPosition={{x: 25, y: 25}}>
8405 * <div>I start with transformX: 25px and transformY: 25px;</div>
8406 * </Draggable>
8407 * );
8408 * }
8409 * });
8410 * ```
8411 */
8412 defaultPosition: _propTypes.default.shape({
8413 x: _propTypes.default.number,
8414 y: _propTypes.default.number
8415 }),
8416 positionOffset: _propTypes.default.shape({
8417 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
8418 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
8419 }),
8420 /**
8421 * `position`, if present, defines the current position of the element.
8422 *
8423 * This is similar to how form elements in React work - if no `position` is supplied, the component
8424 * is uncontrolled.
8425 *
8426 * Example:
8427 *
8428 * ```jsx
8429 * let App = React.createClass({
8430 * render: function () {
8431 * return (
8432 * <Draggable position={{x: 25, y: 25}}>
8433 * <div>I start with transformX: 25px and transformY: 25px;</div>
8434 * </Draggable>
8435 * );
8436 * }
8437 * });
8438 * ```
8439 */
8440 position: _propTypes.default.shape({
8441 x: _propTypes.default.number,
8442 y: _propTypes.default.number
8443 }),
8444 /**
8445 * These properties should be defined on the child, not here.
8446 */
8447 className: _shims.dontSetMe,
8448 style: _shims.dontSetMe,
8449 transform: _shims.dontSetMe
8450 });
8451 _defineProperty(Draggable, "defaultProps", {
8452 ..._DraggableCore.default.defaultProps,
8453 axis: 'both',
8454 bounds: false,
8455 defaultClassName: 'react-draggable',
8456 defaultClassNameDragging: 'react-draggable-dragging',
8457 defaultClassNameDragged: 'react-draggable-dragged',
8458 defaultPosition: {
8459 x: 0,
8460 y: 0
8461 },
8462 scale: 1
8463 });
8464
8465 /***/ }),
8466
8467 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
8468 /*!******************************************************************!*\
8469 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
8470 \******************************************************************/
8471 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8472
8473 "use strict";
8474
8475
8476 Object.defineProperty(exports, "__esModule", ({
8477 value: true
8478 }));
8479 exports["default"] = void 0;
8480 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8481 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8482 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
8483 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
8484 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
8485 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8486 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
8487 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8488 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); }
8489 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; }
8490 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; }
8491 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8492 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); }
8493 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
8494 /*:: import type {Element as ReactElement} from 'react';*/
8495 // Simple abstraction for dragging events names.
8496 const eventsFor = {
8497 touch: {
8498 start: 'touchstart',
8499 move: 'touchmove',
8500 stop: 'touchend'
8501 },
8502 mouse: {
8503 start: 'mousedown',
8504 move: 'mousemove',
8505 stop: 'mouseup'
8506 }
8507 };
8508
8509 // Default to mouse events.
8510 let dragEventFor = eventsFor.mouse;
8511 /*:: export type DraggableData = {
8512 node: HTMLElement,
8513 x: number, y: number,
8514 deltaX: number, deltaY: number,
8515 lastX: number, lastY: number,
8516 };*/
8517 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
8518 /*:: export type ControlPosition = {x: number, y: number};*/
8519 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
8520 /*:: export type DraggableCoreDefaultProps = {
8521 allowAnyClick: boolean,
8522 disabled: boolean,
8523 enableUserSelectHack: boolean,
8524 onStart: DraggableEventHandler,
8525 onDrag: DraggableEventHandler,
8526 onStop: DraggableEventHandler,
8527 onMouseDown: (e: MouseEvent) => void,
8528 scale: number,
8529 };*/
8530 /*:: export type DraggableCoreProps = {
8531 ...DraggableCoreDefaultProps,
8532 cancel: string,
8533 children: ReactElement<any>,
8534 offsetParent: HTMLElement,
8535 grid: [number, number],
8536 handle: string,
8537 nodeRef?: ?React.ElementRef<any>,
8538 };*/
8539 //
8540 // Define <DraggableCore>.
8541 //
8542 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
8543 // work well with libraries that require more control over the element.
8544 //
8545
8546 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
8547 constructor() {
8548 super(...arguments);
8549 _defineProperty(this, "dragging", false);
8550 // Used while dragging to determine deltas.
8551 _defineProperty(this, "lastX", NaN);
8552 _defineProperty(this, "lastY", NaN);
8553 _defineProperty(this, "touchIdentifier", null);
8554 _defineProperty(this, "mounted", false);
8555 _defineProperty(this, "handleDragStart", e => {
8556 // Make it possible to attach event handlers on top of this one.
8557 this.props.onMouseDown(e);
8558
8559 // Only accept left-clicks.
8560 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
8561
8562 // Get nodes. Be sure to grab relative document (could be iframed)
8563 const thisNode = this.findDOMNode();
8564 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
8565 throw new Error('<DraggableCore> not mounted on DragStart!');
8566 }
8567 const {
8568 ownerDocument
8569 } = thisNode;
8570
8571 // Short circuit if handle or cancel prop was provided and selector doesn't match.
8572 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)) {
8573 return;
8574 }
8575
8576 // Prevent scrolling on mobile devices, like ipad/iphone.
8577 // Important that this is after handle/cancel.
8578 if (e.type === 'touchstart') e.preventDefault();
8579
8580 // Set touch identifier in component state if this is a touch event. This allows us to
8581 // distinguish between individual touches on multitouch screens by identifying which
8582 // touchpoint was set to this element.
8583 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
8584 this.touchIdentifier = touchIdentifier;
8585
8586 // Get the current drag point from the event. This is used as the offset.
8587 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
8588 if (position == null) return; // not possible but satisfies flow
8589 const {
8590 x,
8591 y
8592 } = position;
8593
8594 // Create an event object with all the data parents need to make a decision here.
8595 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8596 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
8597
8598 // Call event handler. If it returns explicit false, cancel.
8599 (0, _log.default)('calling', this.props.onStart);
8600 const shouldUpdate = this.props.onStart(e, coreEvent);
8601 if (shouldUpdate === false || this.mounted === false) return;
8602
8603 // Add a style to the body to disable user-select. This prevents text from
8604 // being selected all over the page.
8605 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
8606
8607 // Initiate dragging. Set the current x and y as offsets
8608 // so we know how much we've moved during the drag. This allows us
8609 // to drag elements around even if they have been moved, without issue.
8610 this.dragging = true;
8611 this.lastX = x;
8612 this.lastY = y;
8613
8614 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
8615 // this element. We use different events depending on whether or not we have detected that this
8616 // is a touch-capable device.
8617 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
8618 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
8619 });
8620 _defineProperty(this, "handleDrag", e => {
8621 // Get the current drag point from the event. This is used as the offset.
8622 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
8623 if (position == null) return;
8624 let {
8625 x,
8626 y
8627 } = position;
8628
8629 // Snap to grid if prop has been provided
8630 if (Array.isArray(this.props.grid)) {
8631 let deltaX = x - this.lastX,
8632 deltaY = y - this.lastY;
8633 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
8634 if (!deltaX && !deltaY) return; // skip useless drag
8635 x = this.lastX + deltaX, y = this.lastY + deltaY;
8636 }
8637 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8638 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
8639
8640 // Call event handler. If it returns explicit false, trigger end.
8641 const shouldUpdate = this.props.onDrag(e, coreEvent);
8642 if (shouldUpdate === false || this.mounted === false) {
8643 try {
8644 // $FlowIgnore
8645 this.handleDragStop(new MouseEvent('mouseup'));
8646 } catch (err) {
8647 // Old browsers
8648 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
8649 // I see why this insanity was deprecated
8650 // $FlowIgnore
8651 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
8652 this.handleDragStop(event);
8653 }
8654 return;
8655 }
8656 this.lastX = x;
8657 this.lastY = y;
8658 });
8659 _defineProperty(this, "handleDragStop", e => {
8660 if (!this.dragging) return;
8661 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
8662 if (position == null) return;
8663 let {
8664 x,
8665 y
8666 } = position;
8667
8668 // Snap to grid if prop has been provided
8669 if (Array.isArray(this.props.grid)) {
8670 let deltaX = x - this.lastX || 0;
8671 let deltaY = y - this.lastY || 0;
8672 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
8673 x = this.lastX + deltaX, y = this.lastY + deltaY;
8674 }
8675 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8676
8677 // Call event handler
8678 const shouldContinue = this.props.onStop(e, coreEvent);
8679 if (shouldContinue === false || this.mounted === false) return false;
8680 const thisNode = this.findDOMNode();
8681 if (thisNode) {
8682 // Remove user-select hack
8683 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
8684 }
8685 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
8686
8687 // Reset the el.
8688 this.dragging = false;
8689 this.lastX = NaN;
8690 this.lastY = NaN;
8691 if (thisNode) {
8692 // Remove event handlers
8693 (0, _log.default)('DraggableCore: Removing handlers');
8694 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
8695 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
8696 }
8697 });
8698 _defineProperty(this, "onMouseDown", e => {
8699 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
8700
8701 return this.handleDragStart(e);
8702 });
8703 _defineProperty(this, "onMouseUp", e => {
8704 dragEventFor = eventsFor.mouse;
8705 return this.handleDragStop(e);
8706 });
8707 // Same as onMouseDown (start drag), but now consider this a touch device.
8708 _defineProperty(this, "onTouchStart", e => {
8709 // We're on a touch device now, so change the event handlers
8710 dragEventFor = eventsFor.touch;
8711 return this.handleDragStart(e);
8712 });
8713 _defineProperty(this, "onTouchEnd", e => {
8714 // We're on a touch device now, so change the event handlers
8715 dragEventFor = eventsFor.touch;
8716 return this.handleDragStop(e);
8717 });
8718 }
8719 componentDidMount() {
8720 this.mounted = true;
8721 // Touch handlers must be added with {passive: false} to be cancelable.
8722 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
8723 const thisNode = this.findDOMNode();
8724 if (thisNode) {
8725 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
8726 passive: false
8727 });
8728 }
8729 }
8730 componentWillUnmount() {
8731 this.mounted = false;
8732 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
8733 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
8734 const thisNode = this.findDOMNode();
8735 if (thisNode) {
8736 const {
8737 ownerDocument
8738 } = thisNode;
8739 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
8740 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
8741 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
8742 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
8743 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
8744 passive: false
8745 });
8746 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
8747 }
8748 }
8749
8750 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
8751 // the underlying DOM node ourselves. See the README for more information.
8752 findDOMNode() /*: ?HTMLElement*/{
8753 var _this$props, _this$props2;
8754 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);
8755 }
8756 render() /*: React.Element<any>*/{
8757 // Reuse the child provided
8758 // This makes it flexible to use whatever element is wanted (div, ul, etc)
8759 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
8760 // Note: mouseMove handler is attached to document so it will still function
8761 // when the user drags quickly and leaves the bounds of the element.
8762 onMouseDown: this.onMouseDown,
8763 onMouseUp: this.onMouseUp,
8764 // onTouchStart is added on `componentDidMount` so they can be added with
8765 // {passive: false}, which allows it to cancel. See
8766 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
8767 onTouchEnd: this.onTouchEnd
8768 });
8769 }
8770 }
8771 exports["default"] = DraggableCore;
8772 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
8773 _defineProperty(DraggableCore, "propTypes", {
8774 /**
8775 * `allowAnyClick` allows dragging using any mouse button.
8776 * By default, we only accept the left button.
8777 *
8778 * Defaults to `false`.
8779 */
8780 allowAnyClick: _propTypes.default.bool,
8781 children: _propTypes.default.node.isRequired,
8782 /**
8783 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
8784 * with the exception of `onMouseDown`, will not fire.
8785 */
8786 disabled: _propTypes.default.bool,
8787 /**
8788 * By default, we add 'user-select:none' attributes to the document body
8789 * to prevent ugly text selection during drag. If this is causing problems
8790 * for your app, set this to `false`.
8791 */
8792 enableUserSelectHack: _propTypes.default.bool,
8793 /**
8794 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
8795 * instead of using the parent node.
8796 */
8797 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
8798 if (props[propName] && props[propName].nodeType !== 1) {
8799 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
8800 }
8801 },
8802 /**
8803 * `grid` specifies the x and y that dragging should snap to.
8804 */
8805 grid: _propTypes.default.arrayOf(_propTypes.default.number),
8806 /**
8807 * `handle` specifies a selector to be used as the handle that initiates drag.
8808 *
8809 * Example:
8810 *
8811 * ```jsx
8812 * let App = React.createClass({
8813 * render: function () {
8814 * return (
8815 * <Draggable handle=".handle">
8816 * <div>
8817 * <div className="handle">Click me to drag</div>
8818 * <div>This is some other content</div>
8819 * </div>
8820 * </Draggable>
8821 * );
8822 * }
8823 * });
8824 * ```
8825 */
8826 handle: _propTypes.default.string,
8827 /**
8828 * `cancel` specifies a selector to be used to prevent drag initialization.
8829 *
8830 * Example:
8831 *
8832 * ```jsx
8833 * let App = React.createClass({
8834 * render: function () {
8835 * return(
8836 * <Draggable cancel=".cancel">
8837 * <div>
8838 * <div className="cancel">You can't drag from here</div>
8839 * <div>Dragging here works fine</div>
8840 * </div>
8841 * </Draggable>
8842 * );
8843 * }
8844 * });
8845 * ```
8846 */
8847 cancel: _propTypes.default.string,
8848 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
8849 * Unfortunately, in order for <Draggable> to work properly, we need raw access
8850 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
8851 * as in this example:
8852 *
8853 * function MyComponent() {
8854 * const nodeRef = React.useRef(null);
8855 * return (
8856 * <Draggable nodeRef={nodeRef}>
8857 * <div ref={nodeRef}>Example Target</div>
8858 * </Draggable>
8859 * );
8860 * }
8861 *
8862 * This can be used for arbitrarily nested components, so long as the ref ends up
8863 * pointing to the actual child DOM node and not a custom component.
8864 */
8865 nodeRef: _propTypes.default.object,
8866 /**
8867 * Called when dragging starts.
8868 * If this function returns the boolean false, dragging will be canceled.
8869 */
8870 onStart: _propTypes.default.func,
8871 /**
8872 * Called while dragging.
8873 * If this function returns the boolean false, dragging will be canceled.
8874 */
8875 onDrag: _propTypes.default.func,
8876 /**
8877 * Called when dragging stops.
8878 * If this function returns the boolean false, the drag will remain active.
8879 */
8880 onStop: _propTypes.default.func,
8881 /**
8882 * A workaround option which can be passed if onMouseDown needs to be accessed,
8883 * since it'll always be blocked (as there is internal use of onMouseDown)
8884 */
8885 onMouseDown: _propTypes.default.func,
8886 /**
8887 * `scale`, if set, applies scaling while dragging an element
8888 */
8889 scale: _propTypes.default.number,
8890 /**
8891 * These properties should be defined on the child, not here.
8892 */
8893 className: _shims.dontSetMe,
8894 style: _shims.dontSetMe,
8895 transform: _shims.dontSetMe
8896 });
8897 _defineProperty(DraggableCore, "defaultProps", {
8898 allowAnyClick: false,
8899 // by default only accept left click
8900 disabled: false,
8901 enableUserSelectHack: true,
8902 onStart: function () {},
8903 onDrag: function () {},
8904 onStop: function () {},
8905 onMouseDown: function () {},
8906 scale: 1
8907 });
8908
8909 /***/ }),
8910
8911 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
8912 /*!********************************************************!*\
8913 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
8914 \********************************************************/
8915 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8916
8917 "use strict";
8918
8919
8920 const {
8921 default: Draggable,
8922 DraggableCore
8923 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
8924
8925 // 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'.
8926 // See https://github.com/mzabriskie/react-draggable/pull/254
8927 // and https://github.com/mzabriskie/react-draggable/issues/266
8928 module.exports = Draggable;
8929 module.exports["default"] = Draggable;
8930 module.exports.DraggableCore = DraggableCore;
8931
8932 /***/ }),
8933
8934 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
8935 /*!*****************************************************************!*\
8936 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
8937 \*****************************************************************/
8938 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8939
8940 "use strict";
8941
8942
8943 Object.defineProperty(exports, "__esModule", ({
8944 value: true
8945 }));
8946 exports.addClassName = addClassName;
8947 exports.addEvent = addEvent;
8948 exports.addUserSelectStyles = addUserSelectStyles;
8949 exports.createCSSTransform = createCSSTransform;
8950 exports.createSVGTransform = createSVGTransform;
8951 exports.getTouch = getTouch;
8952 exports.getTouchIdentifier = getTouchIdentifier;
8953 exports.getTranslation = getTranslation;
8954 exports.innerHeight = innerHeight;
8955 exports.innerWidth = innerWidth;
8956 exports.matchesSelector = matchesSelector;
8957 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
8958 exports.offsetXYFromParent = offsetXYFromParent;
8959 exports.outerHeight = outerHeight;
8960 exports.outerWidth = outerWidth;
8961 exports.removeClassName = removeClassName;
8962 exports.removeEvent = removeEvent;
8963 exports.removeUserSelectStyles = removeUserSelectStyles;
8964 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8965 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
8966 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); }
8967 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; }
8968 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
8969 let matchesSelectorFunc = '';
8970 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
8971 if (!matchesSelectorFunc) {
8972 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
8973 // $FlowIgnore: Doesn't think elements are indexable
8974 return (0, _shims.isFunction)(el[method]);
8975 });
8976 }
8977
8978 // Might not be found entirely (not an Element?) - in that case, bail
8979 // $FlowIgnore: Doesn't think elements are indexable
8980 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
8981
8982 // $FlowIgnore: Doesn't think elements are indexable
8983 return el[matchesSelectorFunc](selector);
8984 }
8985
8986 // Works up the tree to the draggable itself attempting to match selector.
8987 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
8988 let node = el;
8989 do {
8990 if (matchesSelector(node, selector)) return true;
8991 if (node === baseNode) return false;
8992 // $FlowIgnore[incompatible-type]
8993 node = node.parentNode;
8994 } while (node);
8995 return false;
8996 }
8997 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
8998 if (!el) return;
8999 const options = {
9000 capture: true,
9001 ...inputOptions
9002 };
9003 // $FlowIgnore[method-unbinding]
9004 if (el.addEventListener) {
9005 el.addEventListener(event, handler, options);
9006 } else if (el.attachEvent) {
9007 el.attachEvent('on' + event, handler);
9008 } else {
9009 // $FlowIgnore: Doesn't think elements are indexable
9010 el['on' + event] = handler;
9011 }
9012 }
9013 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9014 if (!el) return;
9015 const options = {
9016 capture: true,
9017 ...inputOptions
9018 };
9019 // $FlowIgnore[method-unbinding]
9020 if (el.removeEventListener) {
9021 el.removeEventListener(event, handler, options);
9022 } else if (el.detachEvent) {
9023 el.detachEvent('on' + event, handler);
9024 } else {
9025 // $FlowIgnore: Doesn't think elements are indexable
9026 el['on' + event] = null;
9027 }
9028 }
9029 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9030 // This is deliberately excluding margin for our calculations, since we are using
9031 // offsetTop which is including margin. See getBoundPosition
9032 let height = node.clientHeight;
9033 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9034 height += (0, _shims.int)(computedStyle.borderTopWidth);
9035 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9036 return height;
9037 }
9038 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9039 // This is deliberately excluding margin for our calculations, since we are using
9040 // offsetLeft which is including margin. See getBoundPosition
9041 let width = node.clientWidth;
9042 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9043 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9044 width += (0, _shims.int)(computedStyle.borderRightWidth);
9045 return width;
9046 }
9047 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9048 let height = node.clientHeight;
9049 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9050 height -= (0, _shims.int)(computedStyle.paddingTop);
9051 height -= (0, _shims.int)(computedStyle.paddingBottom);
9052 return height;
9053 }
9054 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9055 let width = node.clientWidth;
9056 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9057 width -= (0, _shims.int)(computedStyle.paddingLeft);
9058 width -= (0, _shims.int)(computedStyle.paddingRight);
9059 return width;
9060 }
9061 /*:: interface EventWithOffset {
9062 clientX: number, clientY: number
9063 }*/
9064 // Get from offsetParent
9065 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9066 const isBody = offsetParent === offsetParent.ownerDocument.body;
9067 const offsetParentRect = isBody ? {
9068 left: 0,
9069 top: 0
9070 } : offsetParent.getBoundingClientRect();
9071 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9072 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9073 return {
9074 x,
9075 y
9076 };
9077 }
9078 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
9079 const translation = getTranslation(controlPos, positionOffset, 'px');
9080 return {
9081 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
9082 };
9083 }
9084 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
9085 const translation = getTranslation(controlPos, positionOffset, '');
9086 return translation;
9087 }
9088 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
9089 let {
9090 x,
9091 y
9092 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
9093 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
9094 if (positionOffset) {
9095 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
9096 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
9097 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
9098 }
9099 return translation;
9100 }
9101 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
9102 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
9103 }
9104 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
9105 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
9106 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
9107 }
9108
9109 // User-select Hacks:
9110 //
9111 // Useful for preventing blue highlights all over everything when dragging.
9112
9113 // Note we're passing `document` b/c we could be iframed
9114 function addUserSelectStyles(doc /*: ?Document*/) {
9115 if (!doc) return;
9116 let styleEl = doc.getElementById('react-draggable-style-el');
9117 if (!styleEl) {
9118 styleEl = doc.createElement('style');
9119 styleEl.type = 'text/css';
9120 styleEl.id = 'react-draggable-style-el';
9121 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
9122 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
9123 doc.getElementsByTagName('head')[0].appendChild(styleEl);
9124 }
9125 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
9126 }
9127 function removeUserSelectStyles(doc /*: ?Document*/) {
9128 if (!doc) return;
9129 try {
9130 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
9131 // $FlowIgnore: IE
9132 if (doc.selection) {
9133 // $FlowIgnore: IE
9134 doc.selection.empty();
9135 } else {
9136 // Remove selection caused by scroll, unless it's a focused input
9137 // (we use doc.defaultView in case we're in an iframe)
9138 const selection = (doc.defaultView || window).getSelection();
9139 if (selection && selection.type !== 'Caret') {
9140 selection.removeAllRanges();
9141 }
9142 }
9143 } catch (e) {
9144 // probably IE
9145 }
9146 }
9147 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
9148 if (el.classList) {
9149 el.classList.add(className);
9150 } else {
9151 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
9152 el.className += " ".concat(className);
9153 }
9154 }
9155 }
9156 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
9157 if (el.classList) {
9158 el.classList.remove(className);
9159 } else {
9160 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
9161 }
9162 }
9163
9164 /***/ }),
9165
9166 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
9167 /*!********************************************************************!*\
9168 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
9169 \********************************************************************/
9170 /***/ ((__unused_webpack_module, exports) => {
9171
9172 "use strict";
9173
9174
9175 Object.defineProperty(exports, "__esModule", ({
9176 value: true
9177 }));
9178 exports.browserPrefixToKey = browserPrefixToKey;
9179 exports.browserPrefixToStyle = browserPrefixToStyle;
9180 exports["default"] = void 0;
9181 exports.getPrefix = getPrefix;
9182 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
9183 function getPrefix() /*: string*/{
9184 var _window$document;
9185 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
9186 // Ensure we're running in an environment where there is actually a global
9187 // `window` obj
9188 if (typeof window === 'undefined') return '';
9189
9190 // If we're in a pseudo-browser server-side environment, this access
9191 // path may not exist, so bail out if it doesn't.
9192 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;
9193 if (!style) return '';
9194 if (prop in style) return '';
9195 for (let i = 0; i < prefixes.length; i++) {
9196 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
9197 }
9198 return '';
9199 }
9200 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
9201 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
9202 }
9203 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
9204 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
9205 }
9206 function kebabToTitleCase(str /*: string*/) /*: string*/{
9207 let out = '';
9208 let shouldCapitalize = true;
9209 for (let i = 0; i < str.length; i++) {
9210 if (shouldCapitalize) {
9211 out += str[i].toUpperCase();
9212 shouldCapitalize = false;
9213 } else if (str[i] === '-') {
9214 shouldCapitalize = true;
9215 } else {
9216 out += str[i];
9217 }
9218 }
9219 return out;
9220 }
9221
9222 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
9223 // Note that you may have to re-test for certain things; for instance, Chrome 50
9224 // can handle unprefixed `transform`, but not unprefixed `user-select`
9225 var _default = exports["default"] = (getPrefix() /*: string*/);
9226
9227 /***/ }),
9228
9229 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
9230 /*!**************************************************************!*\
9231 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
9232 \**************************************************************/
9233 /***/ ((__unused_webpack_module, exports) => {
9234
9235 "use strict";
9236
9237
9238 Object.defineProperty(exports, "__esModule", ({
9239 value: true
9240 }));
9241 exports["default"] = log;
9242 /*eslint no-console:0*/
9243 function log() {
9244 if (false) {}
9245 }
9246
9247 /***/ }),
9248
9249 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
9250 /*!**********************************************************************!*\
9251 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
9252 \**********************************************************************/
9253 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9254
9255 "use strict";
9256
9257
9258 Object.defineProperty(exports, "__esModule", ({
9259 value: true
9260 }));
9261 exports.canDragX = canDragX;
9262 exports.canDragY = canDragY;
9263 exports.createCoreData = createCoreData;
9264 exports.createDraggableData = createDraggableData;
9265 exports.getBoundPosition = getBoundPosition;
9266 exports.getControlPosition = getControlPosition;
9267 exports.snapToGrid = snapToGrid;
9268 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9269 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9270 /*:: import type Draggable from '../Draggable';*/
9271 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
9272 /*:: import type DraggableCore from '../DraggableCore';*/
9273 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
9274 // If no bounds, short-circuit and move on
9275 if (!draggable.props.bounds) return [x, y];
9276
9277 // Clone new bounds
9278 let {
9279 bounds
9280 } = draggable.props;
9281 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
9282 const node = findDOMNode(draggable);
9283 if (typeof bounds === 'string') {
9284 const {
9285 ownerDocument
9286 } = node;
9287 const ownerWindow = ownerDocument.defaultView;
9288 let boundNode;
9289 if (bounds === 'parent') {
9290 boundNode = node.parentNode;
9291 } else {
9292 boundNode = ownerDocument.querySelector(bounds);
9293 }
9294 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
9295 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
9296 }
9297 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
9298 const nodeStyle = ownerWindow.getComputedStyle(node);
9299 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
9300 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
9301 bounds = {
9302 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
9303 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
9304 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
9305 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
9306 };
9307 }
9308
9309 // Keep x and y below right and bottom limits...
9310 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
9311 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
9312
9313 // But above left and top limits.
9314 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
9315 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
9316 return [x, y];
9317 }
9318 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
9319 const x = Math.round(pendingX / grid[0]) * grid[0];
9320 const y = Math.round(pendingY / grid[1]) * grid[1];
9321 return [x, y];
9322 }
9323 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
9324 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
9325 }
9326 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
9327 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
9328 }
9329
9330 // Get {x, y} positions from event.
9331 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
9332 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
9333 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
9334 const node = findDOMNode(draggableCore);
9335 // User can provide an offsetParent if desired.
9336 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
9337 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
9338 }
9339
9340 // Create an data object exposed by <DraggableCore>'s events
9341 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
9342 const isStart = !(0, _shims.isNum)(draggable.lastX);
9343 const node = findDOMNode(draggable);
9344 if (isStart) {
9345 // If this is our first move, use the x and y as last coords.
9346 return {
9347 node,
9348 deltaX: 0,
9349 deltaY: 0,
9350 lastX: x,
9351 lastY: y,
9352 x,
9353 y
9354 };
9355 } else {
9356 // Otherwise calculate proper values.
9357 return {
9358 node,
9359 deltaX: x - draggable.lastX,
9360 deltaY: y - draggable.lastY,
9361 lastX: draggable.lastX,
9362 lastY: draggable.lastY,
9363 x,
9364 y
9365 };
9366 }
9367 }
9368
9369 // Create an data exposed by <Draggable>'s events
9370 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
9371 const scale = draggable.props.scale;
9372 return {
9373 node: coreData.node,
9374 x: draggable.state.x + coreData.deltaX / scale,
9375 y: draggable.state.y + coreData.deltaY / scale,
9376 deltaX: coreData.deltaX / scale,
9377 deltaY: coreData.deltaY / scale,
9378 lastX: draggable.state.x,
9379 lastY: draggable.state.y
9380 };
9381 }
9382
9383 // A lot faster than stringify/parse
9384 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
9385 return {
9386 left: bounds.left,
9387 top: bounds.top,
9388 right: bounds.right,
9389 bottom: bounds.bottom
9390 };
9391 }
9392 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
9393 const node = draggable.findDOMNode();
9394 if (!node) {
9395 throw new Error('<DraggableCore>: Unmounted during event!');
9396 }
9397 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
9398 return node;
9399 }
9400
9401 /***/ }),
9402
9403 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
9404 /*!****************************************************************!*\
9405 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
9406 \****************************************************************/
9407 /***/ ((__unused_webpack_module, exports) => {
9408
9409 "use strict";
9410
9411
9412 Object.defineProperty(exports, "__esModule", ({
9413 value: true
9414 }));
9415 exports.dontSetMe = dontSetMe;
9416 exports.findInArray = findInArray;
9417 exports.int = int;
9418 exports.isFunction = isFunction;
9419 exports.isNum = isNum;
9420 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
9421 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
9422 for (let i = 0, length = array.length; i < length; i++) {
9423 if (callback.apply(callback, [array[i], i, array])) return array[i];
9424 }
9425 }
9426 function isFunction(func /*: any*/) /*: boolean %checks*/{
9427 // $FlowIgnore[method-unbinding]
9428 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
9429 }
9430 function isNum(num /*: any*/) /*: boolean %checks*/{
9431 return typeof num === 'number' && !isNaN(num);
9432 }
9433 function int(a /*: string*/) /*: number*/{
9434 return parseInt(a, 10);
9435 }
9436 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
9437 if (props[propName]) {
9438 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
9439 }
9440 }
9441
9442 /***/ }),
9443
9444 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
9445 /*!************************************************************************!*\
9446 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
9447 \************************************************************************/
9448 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9449
9450 "use strict";
9451 __webpack_require__.r(__webpack_exports__);
9452 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9453 /* harmony export */ clsx: () => (/* binding */ clsx),
9454 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
9455 /* harmony export */ });
9456 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);
9457
9458 /***/ }),
9459
9460 /***/ "../node_modules/validator/lib/isFQDN.js":
9461 /*!***********************************************!*\
9462 !*** ../node_modules/validator/lib/isFQDN.js ***!
9463 \***********************************************/
9464 /***/ ((module, exports, __webpack_require__) => {
9465
9466 "use strict";
9467
9468
9469 Object.defineProperty(exports, "__esModule", ({
9470 value: true
9471 }));
9472 exports["default"] = isFQDN;
9473 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9474 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
9475 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9476 var default_fqdn_options = {
9477 require_tld: true,
9478 allow_underscores: false,
9479 allow_trailing_dot: false,
9480 allow_numeric_tld: false,
9481 allow_wildcard: false,
9482 ignore_max_length: false
9483 };
9484 function isFQDN(str, options) {
9485 (0, _assertString.default)(str);
9486 options = (0, _merge.default)(options, default_fqdn_options);
9487
9488 /* Remove the optional trailing dot before checking validity */
9489 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
9490 str = str.substring(0, str.length - 1);
9491 }
9492
9493 /* Remove the optional wildcard before checking validity */
9494 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
9495 str = str.substring(2);
9496 }
9497 var parts = str.split('.');
9498 var tld = parts[parts.length - 1];
9499 if (options.require_tld) {
9500 // disallow fqdns without tld
9501 if (parts.length < 2) {
9502 return false;
9503 }
9504 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
9505 return false;
9506 }
9507
9508 // disallow spaces
9509 if (/\s/.test(tld)) {
9510 return false;
9511 }
9512 }
9513
9514 // reject numeric TLDs
9515 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
9516 return false;
9517 }
9518 return parts.every(function (part) {
9519 if (part.length > 63 && !options.ignore_max_length) {
9520 return false;
9521 }
9522 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
9523 return false;
9524 }
9525
9526 // disallow full-width chars
9527 if (/[\uff01-\uff5e]/.test(part)) {
9528 return false;
9529 }
9530
9531 // disallow parts starting or ending with hyphen
9532 if (/^-|-$/.test(part)) {
9533 return false;
9534 }
9535 if (!options.allow_underscores && /_/.test(part)) {
9536 return false;
9537 }
9538 return true;
9539 });
9540 }
9541 module.exports = exports.default;
9542 module.exports["default"] = exports.default;
9543
9544 /***/ }),
9545
9546 /***/ "../node_modules/validator/lib/isIP.js":
9547 /*!*********************************************!*\
9548 !*** ../node_modules/validator/lib/isIP.js ***!
9549 \*********************************************/
9550 /***/ ((module, exports, __webpack_require__) => {
9551
9552 "use strict";
9553
9554
9555 Object.defineProperty(exports, "__esModule", ({
9556 value: true
9557 }));
9558 exports["default"] = isIP;
9559 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9560 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9561 /**
9562 11.3. Examples
9563
9564 The following addresses
9565
9566 fe80::1234 (on the 1st link of the node)
9567 ff02::5678 (on the 5th link of the node)
9568 ff08::9abc (on the 10th organization of the node)
9569
9570 would be represented as follows:
9571
9572 fe80::1234%1
9573 ff02::5678%5
9574 ff08::9abc%10
9575
9576 (Here we assume a natural translation from a zone index to the
9577 <zone_id> part, where the Nth zone of any scope is translated into
9578 "N".)
9579
9580 If we use interface names as <zone_id>, those addresses could also be
9581 represented as follows:
9582
9583 fe80::1234%ne0
9584 ff02::5678%pvc1.3
9585 ff08::9abc%interface10
9586
9587 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
9588 to the 5th link, and "interface10" belongs to the 10th organization.
9589 * * */
9590 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
9591 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
9592 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
9593 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
9594 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,})?$');
9595 function isIP(str) {
9596 var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
9597 (0, _assertString.default)(str);
9598 version = String(version);
9599 if (!version) {
9600 return isIP(str, 4) || isIP(str, 6);
9601 }
9602 if (version === '4') {
9603 return IPv4AddressRegExp.test(str);
9604 }
9605 if (version === '6') {
9606 return IPv6AddressRegExp.test(str);
9607 }
9608 return false;
9609 }
9610 module.exports = exports.default;
9611 module.exports["default"] = exports.default;
9612
9613 /***/ }),
9614
9615 /***/ "../node_modules/validator/lib/isURL.js":
9616 /*!**********************************************!*\
9617 !*** ../node_modules/validator/lib/isURL.js ***!
9618 \**********************************************/
9619 /***/ ((module, exports, __webpack_require__) => {
9620
9621 "use strict";
9622
9623
9624 Object.defineProperty(exports, "__esModule", ({
9625 value: true
9626 }));
9627 exports["default"] = isURL;
9628 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9629 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
9630 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
9631 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
9632 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9633 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9634 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."); }
9635 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9636 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9637 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; } }
9638 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9639 /*
9640 options for isURL method
9641
9642 require_protocol - if set as true isURL will return false if protocol is not present in the URL
9643 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option
9644 protocols - valid protocols can be modified with this option
9645 require_host - if set as false isURL will not check if host is present in the URL
9646 require_port - if set as true isURL will check if port is present in the URL
9647 allow_protocol_relative_urls - if set as true protocol relative URLs will be allowed
9648 validate_length - if set as false isURL will skip string length validation (IE maximum is 2083)
9649
9650 */
9651
9652 var default_url_options = {
9653 protocols: ['http', 'https', 'ftp'],
9654 require_tld: true,
9655 require_protocol: false,
9656 require_host: true,
9657 require_port: false,
9658 require_valid_protocol: true,
9659 allow_underscores: false,
9660 allow_trailing_dot: false,
9661 allow_protocol_relative_urls: false,
9662 allow_fragments: true,
9663 allow_query_components: true,
9664 validate_length: true
9665 };
9666 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
9667 function isRegExp(obj) {
9668 return Object.prototype.toString.call(obj) === '[object RegExp]';
9669 }
9670 function checkHost(host, matches) {
9671 for (var i = 0; i < matches.length; i++) {
9672 var match = matches[i];
9673 if (host === match || isRegExp(match) && match.test(host)) {
9674 return true;
9675 }
9676 }
9677 return false;
9678 }
9679 function isURL(url, options) {
9680 (0, _assertString.default)(url);
9681 if (!url || /[\s<>]/.test(url)) {
9682 return false;
9683 }
9684 if (url.indexOf('mailto:') === 0) {
9685 return false;
9686 }
9687 options = (0, _merge.default)(options, default_url_options);
9688 if (options.validate_length && url.length >= 2083) {
9689 return false;
9690 }
9691 if (!options.allow_fragments && url.includes('#')) {
9692 return false;
9693 }
9694 if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {
9695 return false;
9696 }
9697 var protocol, auth, host, hostname, port, port_str, split, ipv6;
9698 split = url.split('#');
9699 url = split.shift();
9700 split = url.split('?');
9701 url = split.shift();
9702 split = url.split('://');
9703 if (split.length > 1) {
9704 protocol = split.shift().toLowerCase();
9705 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
9706 return false;
9707 }
9708 } else if (options.require_protocol) {
9709 return false;
9710 } else if (url.slice(0, 2) === '//') {
9711 if (!options.allow_protocol_relative_urls) {
9712 return false;
9713 }
9714 split[0] = url.slice(2);
9715 }
9716 url = split.join('://');
9717 if (url === '') {
9718 return false;
9719 }
9720 split = url.split('/');
9721 url = split.shift();
9722 if (url === '' && !options.require_host) {
9723 return true;
9724 }
9725 split = url.split('@');
9726 if (split.length > 1) {
9727 if (options.disallow_auth) {
9728 return false;
9729 }
9730 if (split[0] === '') {
9731 return false;
9732 }
9733 auth = split.shift();
9734 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
9735 return false;
9736 }
9737 var _auth$split = auth.split(':'),
9738 _auth$split2 = _slicedToArray(_auth$split, 2),
9739 user = _auth$split2[0],
9740 password = _auth$split2[1];
9741 if (user === '' && password === '') {
9742 return false;
9743 }
9744 }
9745 hostname = split.join('@');
9746 port_str = null;
9747 ipv6 = null;
9748 var ipv6_match = hostname.match(wrapped_ipv6);
9749 if (ipv6_match) {
9750 host = '';
9751 ipv6 = ipv6_match[1];
9752 port_str = ipv6_match[2] || null;
9753 } else {
9754 split = hostname.split(':');
9755 host = split.shift();
9756 if (split.length) {
9757 port_str = split.join(':');
9758 }
9759 }
9760 if (port_str !== null && port_str.length > 0) {
9761 port = parseInt(port_str, 10);
9762 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
9763 return false;
9764 }
9765 } else if (options.require_port) {
9766 return false;
9767 }
9768 if (options.host_whitelist) {
9769 return checkHost(host, options.host_whitelist);
9770 }
9771 if (host === '' && !options.require_host) {
9772 return true;
9773 }
9774 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
9775 return false;
9776 }
9777 host = host || ipv6;
9778 if (options.host_blacklist && checkHost(host, options.host_blacklist)) {
9779 return false;
9780 }
9781 return true;
9782 }
9783 module.exports = exports.default;
9784 module.exports["default"] = exports.default;
9785
9786 /***/ }),
9787
9788 /***/ "../node_modules/validator/lib/util/assertString.js":
9789 /*!**********************************************************!*\
9790 !*** ../node_modules/validator/lib/util/assertString.js ***!
9791 \**********************************************************/
9792 /***/ ((module, exports) => {
9793
9794 "use strict";
9795
9796
9797 Object.defineProperty(exports, "__esModule", ({
9798 value: true
9799 }));
9800 exports["default"] = assertString;
9801 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); }
9802 function assertString(input) {
9803 var isString = typeof input === 'string' || input instanceof String;
9804 if (!isString) {
9805 var invalidType = _typeof(input);
9806 if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;
9807 throw new TypeError("Expected a string but received a ".concat(invalidType));
9808 }
9809 }
9810 module.exports = exports.default;
9811 module.exports["default"] = exports.default;
9812
9813 /***/ }),
9814
9815 /***/ "../node_modules/validator/lib/util/merge.js":
9816 /*!***************************************************!*\
9817 !*** ../node_modules/validator/lib/util/merge.js ***!
9818 \***************************************************/
9819 /***/ ((module, exports) => {
9820
9821 "use strict";
9822
9823
9824 Object.defineProperty(exports, "__esModule", ({
9825 value: true
9826 }));
9827 exports["default"] = merge;
9828 function merge() {
9829 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9830 var defaults = arguments.length > 1 ? arguments[1] : undefined;
9831 for (var key in defaults) {
9832 if (typeof obj[key] === 'undefined') {
9833 obj[key] = defaults[key];
9834 }
9835 }
9836 return obj;
9837 }
9838 module.exports = exports.default;
9839 module.exports["default"] = exports.default;
9840
9841 /***/ }),
9842
9843 /***/ "react":
9844 /*!************************!*\
9845 !*** external "React" ***!
9846 \************************/
9847 /***/ ((module) => {
9848
9849 "use strict";
9850 module.exports = React;
9851
9852 /***/ }),
9853
9854 /***/ "react-dom":
9855 /*!***************************!*\
9856 !*** external "ReactDOM" ***!
9857 \***************************/
9858 /***/ ((module) => {
9859
9860 "use strict";
9861 module.exports = ReactDOM;
9862
9863 /***/ }),
9864
9865 /***/ "@elementor/icons":
9866 /*!************************************!*\
9867 !*** external "elementorV2.icons" ***!
9868 \************************************/
9869 /***/ ((module) => {
9870
9871 "use strict";
9872 module.exports = elementorV2.icons;
9873
9874 /***/ }),
9875
9876 /***/ "@elementor/ui":
9877 /*!*********************************!*\
9878 !*** external "elementorV2.ui" ***!
9879 \*********************************/
9880 /***/ ((module) => {
9881
9882 "use strict";
9883 module.exports = elementorV2.ui;
9884
9885 /***/ }),
9886
9887 /***/ "@wordpress/i18n":
9888 /*!**************************!*\
9889 !*** external "wp.i18n" ***!
9890 \**************************/
9891 /***/ ((module) => {
9892
9893 "use strict";
9894 module.exports = wp.i18n;
9895
9896 /***/ }),
9897
9898 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
9899 /*!******************************************************************!*\
9900 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
9901 \******************************************************************/
9902 /***/ ((module) => {
9903
9904 function _arrayLikeToArray(r, a) {
9905 (null == a || a > r.length) && (a = r.length);
9906 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
9907 return n;
9908 }
9909 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
9910
9911 /***/ }),
9912
9913 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
9914 /*!****************************************************************!*\
9915 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
9916 \****************************************************************/
9917 /***/ ((module) => {
9918
9919 function _arrayWithHoles(r) {
9920 if (Array.isArray(r)) return r;
9921 }
9922 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
9923
9924 /***/ }),
9925
9926 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
9927 /*!*******************************************************************!*\
9928 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
9929 \*******************************************************************/
9930 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9931
9932 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
9933 function _arrayWithoutHoles(r) {
9934 if (Array.isArray(r)) return arrayLikeToArray(r);
9935 }
9936 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
9937
9938 /***/ }),
9939
9940 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
9941 /*!***********************************************************************!*\
9942 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
9943 \***********************************************************************/
9944 /***/ ((module) => {
9945
9946 function _assertThisInitialized(e) {
9947 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
9948 return e;
9949 }
9950 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
9951
9952 /***/ }),
9953
9954 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
9955 /*!******************************************************************!*\
9956 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
9957 \******************************************************************/
9958 /***/ ((module) => {
9959
9960 function asyncGeneratorStep(n, t, e, r, o, a, c) {
9961 try {
9962 var i = n[a](c),
9963 u = i.value;
9964 } catch (n) {
9965 return void e(n);
9966 }
9967 i.done ? t(u) : Promise.resolve(u).then(r, o);
9968 }
9969 function _asyncToGenerator(n) {
9970 return function () {
9971 var t = this,
9972 e = arguments;
9973 return new Promise(function (r, o) {
9974 var a = n.apply(t, e);
9975 function _next(n) {
9976 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
9977 }
9978 function _throw(n) {
9979 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
9980 }
9981 _next(void 0);
9982 });
9983 };
9984 }
9985 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
9986
9987 /***/ }),
9988
9989 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
9990 /*!****************************************************************!*\
9991 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
9992 \****************************************************************/
9993 /***/ ((module) => {
9994
9995 function _classCallCheck(a, n) {
9996 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
9997 }
9998 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
9999
10000 /***/ }),
10001
10002 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
10003 /*!*************************************************************!*\
10004 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
10005 \*************************************************************/
10006 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10007
10008 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
10009 function _defineProperties(e, r) {
10010 for (var t = 0; t < r.length; t++) {
10011 var o = r[t];
10012 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
10013 }
10014 }
10015 function _createClass(e, r, t) {
10016 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
10017 writable: !1
10018 }), e;
10019 }
10020 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
10021
10022 /***/ }),
10023
10024 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
10025 /*!****************************************************************!*\
10026 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
10027 \****************************************************************/
10028 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10029
10030 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
10031 function _defineProperty(e, r, t) {
10032 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
10033 value: t,
10034 enumerable: !0,
10035 configurable: !0,
10036 writable: !0
10037 }) : e[r] = t, e;
10038 }
10039 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
10040
10041 /***/ }),
10042
10043 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
10044 /*!*********************************************************!*\
10045 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
10046 \*********************************************************/
10047 /***/ ((module) => {
10048
10049 function _extends() {
10050 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
10051 for (var e = 1; e < arguments.length; e++) {
10052 var t = arguments[e];
10053 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
10054 }
10055 return n;
10056 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
10057 }
10058 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
10059
10060 /***/ }),
10061
10062 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
10063 /*!****************************************************************!*\
10064 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
10065 \****************************************************************/
10066 /***/ ((module) => {
10067
10068 function _getPrototypeOf(t) {
10069 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
10070 return t.__proto__ || Object.getPrototypeOf(t);
10071 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
10072 }
10073 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
10074
10075 /***/ }),
10076
10077 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
10078 /*!**********************************************************!*\
10079 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
10080 \**********************************************************/
10081 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10082
10083 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
10084 function _inherits(t, e) {
10085 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
10086 t.prototype = Object.create(e && e.prototype, {
10087 constructor: {
10088 value: t,
10089 writable: !0,
10090 configurable: !0
10091 }
10092 }), Object.defineProperty(t, "prototype", {
10093 writable: !1
10094 }), e && setPrototypeOf(t, e);
10095 }
10096 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
10097
10098 /***/ }),
10099
10100 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
10101 /*!***********************************************************************!*\
10102 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
10103 \***********************************************************************/
10104 /***/ ((module) => {
10105
10106 function _interopRequireDefault(e) {
10107 return e && e.__esModule ? e : {
10108 "default": e
10109 };
10110 }
10111 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
10112
10113 /***/ }),
10114
10115 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
10116 /*!*****************************************************************!*\
10117 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
10118 \*****************************************************************/
10119 /***/ ((module) => {
10120
10121 function _iterableToArray(r) {
10122 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
10123 }
10124 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10125
10126 /***/ }),
10127
10128 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
10129 /*!**********************************************************************!*\
10130 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
10131 \**********************************************************************/
10132 /***/ ((module) => {
10133
10134 function _iterableToArrayLimit(r, l) {
10135 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
10136 if (null != t) {
10137 var e,
10138 n,
10139 i,
10140 u,
10141 a = [],
10142 f = !0,
10143 o = !1;
10144 try {
10145 if (i = (t = t.call(r)).next, 0 === l) {
10146 if (Object(t) !== t) return;
10147 f = !1;
10148 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
10149 } catch (r) {
10150 o = !0, n = r;
10151 } finally {
10152 try {
10153 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
10154 } finally {
10155 if (o) throw n;
10156 }
10157 }
10158 return a;
10159 }
10160 }
10161 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
10162
10163 /***/ }),
10164
10165 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
10166 /*!*****************************************************************!*\
10167 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
10168 \*****************************************************************/
10169 /***/ ((module) => {
10170
10171 function _nonIterableRest() {
10172 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10173 }
10174 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
10175
10176 /***/ }),
10177
10178 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
10179 /*!*******************************************************************!*\
10180 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
10181 \*******************************************************************/
10182 /***/ ((module) => {
10183
10184 function _nonIterableSpread() {
10185 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10186 }
10187 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
10188
10189 /***/ }),
10190
10191 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
10192 /*!*************************************************************************!*\
10193 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
10194 \*************************************************************************/
10195 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10196
10197 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
10198 function _objectWithoutProperties(e, t) {
10199 if (null == e) return {};
10200 var o,
10201 r,
10202 i = objectWithoutPropertiesLoose(e, t);
10203 if (Object.getOwnPropertySymbols) {
10204 var s = Object.getOwnPropertySymbols(e);
10205 for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
10206 }
10207 return i;
10208 }
10209 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
10210
10211 /***/ }),
10212
10213 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
10214 /*!******************************************************************************!*\
10215 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
10216 \******************************************************************************/
10217 /***/ ((module) => {
10218
10219 function _objectWithoutPropertiesLoose(r, e) {
10220 if (null == r) return {};
10221 var t = {};
10222 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
10223 if (e.includes(n)) continue;
10224 t[n] = r[n];
10225 }
10226 return t;
10227 }
10228 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
10229
10230 /***/ }),
10231
10232 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
10233 /*!***************************************************************************!*\
10234 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
10235 \***************************************************************************/
10236 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10237
10238 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10239 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
10240 function _possibleConstructorReturn(t, e) {
10241 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
10242 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
10243 return assertThisInitialized(t);
10244 }
10245 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
10246
10247 /***/ }),
10248
10249 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
10250 /*!********************************************************************!*\
10251 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
10252 \********************************************************************/
10253 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10254
10255 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10256 function _regeneratorRuntime() {
10257 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
10258 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
10259 return e;
10260 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
10261 var t,
10262 e = {},
10263 r = Object.prototype,
10264 n = r.hasOwnProperty,
10265 o = Object.defineProperty || function (t, e, r) {
10266 t[e] = r.value;
10267 },
10268 i = "function" == typeof Symbol ? Symbol : {},
10269 a = i.iterator || "@@iterator",
10270 c = i.asyncIterator || "@@asyncIterator",
10271 u = i.toStringTag || "@@toStringTag";
10272 function define(t, e, r) {
10273 return Object.defineProperty(t, e, {
10274 value: r,
10275 enumerable: !0,
10276 configurable: !0,
10277 writable: !0
10278 }), t[e];
10279 }
10280 try {
10281 define({}, "");
10282 } catch (t) {
10283 define = function define(t, e, r) {
10284 return t[e] = r;
10285 };
10286 }
10287 function wrap(t, e, r, n) {
10288 var i = e && e.prototype instanceof Generator ? e : Generator,
10289 a = Object.create(i.prototype),
10290 c = new Context(n || []);
10291 return o(a, "_invoke", {
10292 value: makeInvokeMethod(t, r, c)
10293 }), a;
10294 }
10295 function tryCatch(t, e, r) {
10296 try {
10297 return {
10298 type: "normal",
10299 arg: t.call(e, r)
10300 };
10301 } catch (t) {
10302 return {
10303 type: "throw",
10304 arg: t
10305 };
10306 }
10307 }
10308 e.wrap = wrap;
10309 var h = "suspendedStart",
10310 l = "suspendedYield",
10311 f = "executing",
10312 s = "completed",
10313 y = {};
10314 function Generator() {}
10315 function GeneratorFunction() {}
10316 function GeneratorFunctionPrototype() {}
10317 var p = {};
10318 define(p, a, function () {
10319 return this;
10320 });
10321 var d = Object.getPrototypeOf,
10322 v = d && d(d(values([])));
10323 v && v !== r && n.call(v, a) && (p = v);
10324 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
10325 function defineIteratorMethods(t) {
10326 ["next", "throw", "return"].forEach(function (e) {
10327 define(t, e, function (t) {
10328 return this._invoke(e, t);
10329 });
10330 });
10331 }
10332 function AsyncIterator(t, e) {
10333 function invoke(r, o, i, a) {
10334 var c = tryCatch(t[r], t, o);
10335 if ("throw" !== c.type) {
10336 var u = c.arg,
10337 h = u.value;
10338 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
10339 invoke("next", t, i, a);
10340 }, function (t) {
10341 invoke("throw", t, i, a);
10342 }) : e.resolve(h).then(function (t) {
10343 u.value = t, i(u);
10344 }, function (t) {
10345 return invoke("throw", t, i, a);
10346 });
10347 }
10348 a(c.arg);
10349 }
10350 var r;
10351 o(this, "_invoke", {
10352 value: function value(t, n) {
10353 function callInvokeWithMethodAndArg() {
10354 return new e(function (e, r) {
10355 invoke(t, n, e, r);
10356 });
10357 }
10358 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
10359 }
10360 });
10361 }
10362 function makeInvokeMethod(e, r, n) {
10363 var o = h;
10364 return function (i, a) {
10365 if (o === f) throw Error("Generator is already running");
10366 if (o === s) {
10367 if ("throw" === i) throw a;
10368 return {
10369 value: t,
10370 done: !0
10371 };
10372 }
10373 for (n.method = i, n.arg = a;;) {
10374 var c = n.delegate;
10375 if (c) {
10376 var u = maybeInvokeDelegate(c, n);
10377 if (u) {
10378 if (u === y) continue;
10379 return u;
10380 }
10381 }
10382 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
10383 if (o === h) throw o = s, n.arg;
10384 n.dispatchException(n.arg);
10385 } else "return" === n.method && n.abrupt("return", n.arg);
10386 o = f;
10387 var p = tryCatch(e, r, n);
10388 if ("normal" === p.type) {
10389 if (o = n.done ? s : l, p.arg === y) continue;
10390 return {
10391 value: p.arg,
10392 done: n.done
10393 };
10394 }
10395 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
10396 }
10397 };
10398 }
10399 function maybeInvokeDelegate(e, r) {
10400 var n = r.method,
10401 o = e.iterator[n];
10402 if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
10403 var i = tryCatch(o, e.iterator, r.arg);
10404 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
10405 var a = i.arg;
10406 return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
10407 }
10408 function pushTryEntry(t) {
10409 var e = {
10410 tryLoc: t[0]
10411 };
10412 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
10413 }
10414 function resetTryEntry(t) {
10415 var e = t.completion || {};
10416 e.type = "normal", delete e.arg, t.completion = e;
10417 }
10418 function Context(t) {
10419 this.tryEntries = [{
10420 tryLoc: "root"
10421 }], t.forEach(pushTryEntry, this), this.reset(!0);
10422 }
10423 function values(e) {
10424 if (e || "" === e) {
10425 var r = e[a];
10426 if (r) return r.call(e);
10427 if ("function" == typeof e.next) return e;
10428 if (!isNaN(e.length)) {
10429 var o = -1,
10430 i = function next() {
10431 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
10432 return next.value = t, next.done = !0, next;
10433 };
10434 return i.next = i;
10435 }
10436 }
10437 throw new TypeError(_typeof(e) + " is not iterable");
10438 }
10439 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
10440 value: GeneratorFunctionPrototype,
10441 configurable: !0
10442 }), o(GeneratorFunctionPrototype, "constructor", {
10443 value: GeneratorFunction,
10444 configurable: !0
10445 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
10446 var e = "function" == typeof t && t.constructor;
10447 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
10448 }, e.mark = function (t) {
10449 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
10450 }, e.awrap = function (t) {
10451 return {
10452 __await: t
10453 };
10454 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
10455 return this;
10456 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
10457 void 0 === i && (i = Promise);
10458 var a = new AsyncIterator(wrap(t, r, n, o), i);
10459 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
10460 return t.done ? t.value : a.next();
10461 });
10462 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
10463 return this;
10464 }), define(g, "toString", function () {
10465 return "[object Generator]";
10466 }), e.keys = function (t) {
10467 var e = Object(t),
10468 r = [];
10469 for (var n in e) r.push(n);
10470 return r.reverse(), function next() {
10471 for (; r.length;) {
10472 var t = r.pop();
10473 if (t in e) return next.value = t, next.done = !1, next;
10474 }
10475 return next.done = !0, next;
10476 };
10477 }, e.values = values, Context.prototype = {
10478 constructor: Context,
10479 reset: function reset(e) {
10480 if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
10481 },
10482 stop: function stop() {
10483 this.done = !0;
10484 var t = this.tryEntries[0].completion;
10485 if ("throw" === t.type) throw t.arg;
10486 return this.rval;
10487 },
10488 dispatchException: function dispatchException(e) {
10489 if (this.done) throw e;
10490 var r = this;
10491 function handle(n, o) {
10492 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
10493 }
10494 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
10495 var i = this.tryEntries[o],
10496 a = i.completion;
10497 if ("root" === i.tryLoc) return handle("end");
10498 if (i.tryLoc <= this.prev) {
10499 var c = n.call(i, "catchLoc"),
10500 u = n.call(i, "finallyLoc");
10501 if (c && u) {
10502 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
10503 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
10504 } else if (c) {
10505 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
10506 } else {
10507 if (!u) throw Error("try statement without catch or finally");
10508 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
10509 }
10510 }
10511 }
10512 },
10513 abrupt: function abrupt(t, e) {
10514 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
10515 var o = this.tryEntries[r];
10516 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
10517 var i = o;
10518 break;
10519 }
10520 }
10521 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
10522 var a = i ? i.completion : {};
10523 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
10524 },
10525 complete: function complete(t, e) {
10526 if ("throw" === t.type) throw t.arg;
10527 return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
10528 },
10529 finish: function finish(t) {
10530 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
10531 var r = this.tryEntries[e];
10532 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
10533 }
10534 },
10535 "catch": function _catch(t) {
10536 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
10537 var r = this.tryEntries[e];
10538 if (r.tryLoc === t) {
10539 var n = r.completion;
10540 if ("throw" === n.type) {
10541 var o = n.arg;
10542 resetTryEntry(r);
10543 }
10544 return o;
10545 }
10546 }
10547 throw Error("illegal catch attempt");
10548 },
10549 delegateYield: function delegateYield(e, r, n) {
10550 return this.delegate = {
10551 iterator: values(e),
10552 resultName: r,
10553 nextLoc: n
10554 }, "next" === this.method && (this.arg = t), y;
10555 }
10556 }, e;
10557 }
10558 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
10559
10560 /***/ }),
10561
10562 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
10563 /*!****************************************************************!*\
10564 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
10565 \****************************************************************/
10566 /***/ ((module) => {
10567
10568 function _setPrototypeOf(t, e) {
10569 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
10570 return t.__proto__ = e, t;
10571 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
10572 }
10573 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
10574
10575 /***/ }),
10576
10577 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
10578 /*!***************************************************************!*\
10579 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
10580 \***************************************************************/
10581 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10582
10583 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
10584 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
10585 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
10586 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
10587 function _slicedToArray(r, e) {
10588 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
10589 }
10590 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10591
10592 /***/ }),
10593
10594 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
10595 /*!***********************************************************************!*\
10596 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
10597 \***********************************************************************/
10598 /***/ ((module) => {
10599
10600 function _taggedTemplateLiteral(e, t) {
10601 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
10602 raw: {
10603 value: Object.freeze(t)
10604 }
10605 }));
10606 }
10607 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
10608
10609 /***/ }),
10610
10611 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
10612 /*!*******************************************************************!*\
10613 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
10614 \*******************************************************************/
10615 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10616
10617 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
10618 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
10619 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
10620 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
10621 function _toConsumableArray(r) {
10622 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
10623 }
10624 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10625
10626 /***/ }),
10627
10628 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
10629 /*!*************************************************************!*\
10630 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
10631 \*************************************************************/
10632 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10633
10634 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10635 function toPrimitive(t, r) {
10636 if ("object" != _typeof(t) || !t) return t;
10637 var e = t[Symbol.toPrimitive];
10638 if (void 0 !== e) {
10639 var i = e.call(t, r || "default");
10640 if ("object" != _typeof(i)) return i;
10641 throw new TypeError("@@toPrimitive must return a primitive value.");
10642 }
10643 return ("string" === r ? String : Number)(t);
10644 }
10645 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
10646
10647 /***/ }),
10648
10649 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
10650 /*!***************************************************************!*\
10651 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
10652 \***************************************************************/
10653 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10654
10655 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10656 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
10657 function toPropertyKey(t) {
10658 var i = toPrimitive(t, "string");
10659 return "symbol" == _typeof(i) ? i : i + "";
10660 }
10661 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
10662
10663 /***/ }),
10664
10665 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
10666 /*!********************************************************!*\
10667 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
10668 \********************************************************/
10669 /***/ ((module) => {
10670
10671 function _typeof(o) {
10672 "@babel/helpers - typeof";
10673
10674 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
10675 return typeof o;
10676 } : function (o) {
10677 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
10678 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
10679 }
10680 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
10681
10682 /***/ }),
10683
10684 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
10685 /*!****************************************************************************!*\
10686 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
10687 \****************************************************************************/
10688 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10689
10690 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
10691 function _unsupportedIterableToArray(r, a) {
10692 if (r) {
10693 if ("string" == typeof r) return arrayLikeToArray(r, a);
10694 var t = {}.toString.call(r).slice(8, -1);
10695 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;
10696 }
10697 }
10698 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10699
10700 /***/ }),
10701
10702 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
10703 /*!***********************************************************!*\
10704 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
10705 \***********************************************************/
10706 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10707
10708 // TODO(Babel 8): Remove this file.
10709
10710 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
10711 module.exports = runtime;
10712
10713 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
10714 try {
10715 regeneratorRuntime = runtime;
10716 } catch (accidentalStrictMode) {
10717 if (typeof globalThis === "object") {
10718 globalThis.regeneratorRuntime = runtime;
10719 } else {
10720 Function("r", "regeneratorRuntime = r")(runtime);
10721 }
10722 }
10723
10724
10725 /***/ })
10726
10727 /******/ });
10728 /************************************************************************/
10729 /******/ // The module cache
10730 /******/ var __webpack_module_cache__ = {};
10731 /******/
10732 /******/ // The require function
10733 /******/ function __webpack_require__(moduleId) {
10734 /******/ // Check if module is in cache
10735 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10736 /******/ if (cachedModule !== undefined) {
10737 /******/ return cachedModule.exports;
10738 /******/ }
10739 /******/ // Create a new module (and put it into the cache)
10740 /******/ var module = __webpack_module_cache__[moduleId] = {
10741 /******/ // no module.id needed
10742 /******/ // no module.loaded needed
10743 /******/ exports: {}
10744 /******/ };
10745 /******/
10746 /******/ // Execute the module function
10747 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10748 /******/
10749 /******/ // Return the exports of the module
10750 /******/ return module.exports;
10751 /******/ }
10752 /******/
10753 /************************************************************************/
10754 /******/ /* webpack/runtime/define property getters */
10755 /******/ (() => {
10756 /******/ // define getter functions for harmony exports
10757 /******/ __webpack_require__.d = (exports, definition) => {
10758 /******/ for(var key in definition) {
10759 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10760 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10761 /******/ }
10762 /******/ }
10763 /******/ };
10764 /******/ })();
10765 /******/
10766 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10767 /******/ (() => {
10768 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10769 /******/ })();
10770 /******/
10771 /******/ /* webpack/runtime/make namespace object */
10772 /******/ (() => {
10773 /******/ // define __esModule on exports
10774 /******/ __webpack_require__.r = (exports) => {
10775 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10776 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10777 /******/ }
10778 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10779 /******/ };
10780 /******/ })();
10781 /******/
10782 /************************************************************************/
10783 var __webpack_exports__ = {};
10784 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10785 (() => {
10786 "use strict";
10787 var exports = __webpack_exports__;
10788 /*!*******************************************************!*\
10789 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10790 \*******************************************************/
10791
10792
10793 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10794 Object.defineProperty(exports, "__esModule", ({
10795 value: true
10796 }));
10797 exports["default"] = exports.AI_ATTACHMENT = void 0;
10798 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10799 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10800 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10801 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10802 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10803 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10804 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10805 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10806 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10807 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10808 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10809 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10810 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"));
10811 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10812 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)); }
10813 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10814 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10815 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10816 function Module() {
10817 var _this;
10818 (0, _classCallCheck2.default)(this, Module);
10819 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10820 args[_key] = arguments[_key];
10821 }
10822 _this = _callSuper(this, Module, [].concat(args));
10823 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10824 var saveGroup = groups.find(function (group) {
10825 return 'save' === group.name;
10826 });
10827 if (!saveGroup) {
10828 return groups;
10829 }
10830 var contextMenu = {
10831 name: 'ai',
10832 icon: 'eicon-ai',
10833 isEnabled: function isEnabled() {
10834 return 0 !== currentElement.getContainer().children.length;
10835 },
10836 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10837 callback: function () {
10838 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10839 var container, json, attachments;
10840 return _regenerator.default.wrap(function _callee$(_context) {
10841 while (1) switch (_context.prev = _context.next) {
10842 case 0:
10843 container = currentElement.getContainer();
10844 json = container.model.toJSON({
10845 remove: ['default']
10846 });
10847 attachments = [{
10848 type: 'json',
10849 previewHTML: '',
10850 content: json,
10851 label: container.model.get('title'),
10852 source: _attachments.USER_VARIATION_SOURCE
10853 }];
10854 (0, _editorIntegration.renderLayoutApp)({
10855 parentContainer: container.parent,
10856 mode: _config.MODE_VARIATION,
10857 at: container.view._index,
10858 attachments: attachments,
10859 onSelect: function onSelect() {
10860 container.view.$el.hide();
10861 },
10862 onClose: function onClose() {
10863 container.view.$el.show();
10864 },
10865 onInsert: function onInsert(template) {
10866 (0, _editorIntegration.importToEditor)({
10867 parentContainer: container.parent,
10868 at: container.view._index,
10869 template: template,
10870 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
10871 replace: true
10872 });
10873 }
10874 });
10875 case 4:
10876 case "end":
10877 return _context.stop();
10878 }
10879 }, _callee);
10880 }));
10881 function callback() {
10882 return _callback.apply(this, arguments);
10883 }
10884 return callback;
10885 }()
10886 };
10887
10888 // Add on top of save group actions
10889 saveGroup.actions.unshift(contextMenu);
10890 return groups;
10891 });
10892 return _this;
10893 }
10894 (0, _inherits2.default)(Module, _elementorModules$edi);
10895 return (0, _createClass2.default)(Module, [{
10896 key: "onElementorInit",
10897 value: function onElementorInit() {
10898 var _this2 = this;
10899 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
10900 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
10901 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
10902 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
10903 $e.commands.register('library', 'generate-ai-variation', function (args) {
10904 return _this2.applyTemplate(args);
10905 });
10906 }
10907 }, {
10908 key: "applyTemplate",
10909 value: function applyTemplate(args) {
10910 window.postMessage({
10911 type: 'library/attach:start'
10912 });
10913 $e.components.get('library').downloadTemplate(args, function (data) {
10914 var model = args.model;
10915 window.postMessage({
10916 type: 'library/attach',
10917 json: data.content[0],
10918 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
10919 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
10920 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
10921 }, window.location.origin);
10922 });
10923 }
10924 }, {
10925 key: "registerLibraryActionButtonBehavior",
10926 value: function registerLibraryActionButtonBehavior(behaviors) {
10927 behaviors.applyAiTemplate = {
10928 behaviorClass: _applyTemplateForAiBehavior.default
10929 };
10930 return behaviors;
10931 }
10932 }, {
10933 key: "registerAiLayoutBehavior",
10934 value: function registerAiLayoutBehavior(behaviors) {
10935 behaviors.ai = {
10936 behaviorClass: _aiLayoutBehavior.default,
10937 context: {
10938 documentType: window.elementor.documents.getCurrent().config.type
10939 }
10940 };
10941 return behaviors;
10942 }
10943 }, {
10944 key: "filterLibraryActionButtonTemplate",
10945 value: function filterLibraryActionButtonTemplate(viewId) {
10946 var modalConfig = $e.components.get('library').manager.modalConfig;
10947 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
10948 if (originalCoreViewId !== viewId) {
10949 return viewId;
10950 }
10951 if ($e.routes.current.library !== 'library/templates/blocks') {
10952 return viewId;
10953 }
10954 if (AI_ATTACHMENT === modalConfig.mode) {
10955 viewId = '#tmpl-elementor-template-library-apply-ai-button';
10956 } else {
10957 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
10958 }
10959 return viewId;
10960 }
10961 }]);
10962 }(elementorModules.editor.utils.Module);
10963 new Module();
10964 })();
10965
10966 /******/ })()
10967 ;
10968 //# sourceMappingURL=ai-layout.js.map