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

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

10,977 lines 485.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.30.0 - 09-07-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 var activeSource = args.model.get('source');
2198
2199 /**
2200 * Filter template source.
2201 *
2202 * @param bool isRemote - If `true` the source is a remote source.
2203 * @param string activeSource - The current template source.
2204 */
2205 var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
2206 if (isRemote && !elementor.config.library_connect.is_connected) {
2207 $e.route('library/connect', args);
2208 return;
2209 }
2210 $e.run('library/generate-ai-variation', args);
2211 }
2212 });
2213 module.exports = ApplyTemplateForAiBehavior;
2214
2215 /***/ }),
2216
2217 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2218 /*!************************************************************!*\
2219 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2220 \************************************************************/
2221 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2222
2223 "use strict";
2224
2225
2226 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2227 Object.defineProperty(exports, "__esModule", ({
2228 value: true
2229 }));
2230 exports["default"] = void 0;
2231 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2232 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2233 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2234 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2235 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2236 rtl: props.isRTL
2237 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2238 colorScheme: props.colorScheme
2239 }, props.children));
2240 };
2241 LayoutAppWrapper.propTypes = {
2242 children: _propTypes.default.node,
2243 isRTL: _propTypes.default.bool,
2244 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2245 };
2246 var _default = exports["default"] = LayoutAppWrapper;
2247
2248 /***/ }),
2249
2250 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2251 /*!****************************************************!*\
2252 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2253 \****************************************************/
2254 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2255
2256 "use strict";
2257
2258
2259 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2260 Object.defineProperty(exports, "__esModule", ({
2261 value: true
2262 }));
2263 exports["default"] = void 0;
2264 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2265 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2266 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2267 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2268 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2269 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2270 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2271 var LayoutApp = function LayoutApp(props) {
2272 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2273 onError: props.onClose
2274 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2275 mode: props.mode,
2276 attachmentsTypes: props.attachmentsTypes,
2277 onClose: props.onClose,
2278 onConnect: props.onConnect,
2279 onData: props.onData,
2280 onInsert: props.onInsert,
2281 onSelect: props.onSelect,
2282 onGenerate: props.onGenerate,
2283 currentContext: props.currentContext,
2284 hasPro: props.hasPro
2285 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2286 attachments: props.attachments
2287 }))));
2288 };
2289 LayoutApp.propTypes = {
2290 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2291 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2292 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2293 onClose: _propTypes.default.func.isRequired,
2294 onConnect: _propTypes.default.func.isRequired,
2295 onData: _propTypes.default.func.isRequired,
2296 onInsert: _propTypes.default.func.isRequired,
2297 onSelect: _propTypes.default.func.isRequired,
2298 onGenerate: _propTypes.default.func.isRequired,
2299 currentContext: _propTypes.default.object,
2300 hasPro: _propTypes.default.bool
2301 };
2302 var _default = exports["default"] = LayoutApp;
2303
2304 /***/ }),
2305
2306 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2307 /*!********************************************************!*\
2308 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2309 \********************************************************/
2310 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2311
2312 "use strict";
2313
2314
2315 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2316 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2317 Object.defineProperty(exports, "__esModule", ({
2318 value: true
2319 }));
2320 exports["default"] = void 0;
2321 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2322 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2323 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2324 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2325 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2326 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2327 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2328 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2329 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2330 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2331 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2332 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2333 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2334 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2335 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); }
2336 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; }
2337 var LayoutContent = function LayoutContent(props) {
2338 var _useUserInfo = (0, _useUserInfo2.default)(),
2339 isLoading = _useUserInfo.isLoading,
2340 isConnected = _useUserInfo.isConnected,
2341 isGetStarted = _useUserInfo.isGetStarted,
2342 connectUrl = _useUserInfo.connectUrl,
2343 fetchData = _useUserInfo.fetchData,
2344 hasSubscription = _useUserInfo.hasSubscription,
2345 initialUsagePercentage = _useUserInfo.usagePercentage;
2346 var _useConfig = (0, _config.useConfig)(),
2347 onClose = _useConfig.onClose,
2348 onConnect = _useConfig.onConnect;
2349 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2350 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2351 usagePercentage = _useRequestIds.usagePercentage;
2352 var _useState = (0, _react.useState)(false),
2353 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2354 isInitUsageDone = _useState2[0],
2355 setIsInitUsageDone = _useState2[1];
2356 (0, _react.useEffect)(function () {
2357 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2358 updateUsagePercentage(initialUsagePercentage);
2359 setIsInitUsageDone(true);
2360 }
2361 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2362 if (isLoading || !isInitUsageDone) {
2363 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2364 onClose: onClose
2365 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2366 onClose: onClose
2367 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2368 dividers: true
2369 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2370 BoxProps: {
2371 sx: {
2372 px: 3
2373 }
2374 }
2375 })));
2376 }
2377 if (!isConnected) {
2378 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2379 onClose: onClose
2380 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2381 onClose: onClose
2382 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2383 dividers: true
2384 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2385 connectUrl: connectUrl,
2386 onSuccess: function onSuccess(data) {
2387 onConnect(data);
2388 fetchData();
2389 }
2390 })));
2391 }
2392 if (!isGetStarted) {
2393 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2394 onClose: onClose
2395 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2396 onClose: onClose
2397 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2398 dividers: true
2399 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2400 onSuccess: fetchData
2401 })));
2402 }
2403 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2404 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2405 attachments: props.attachments,
2406 DialogHeaderProps: {
2407 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2408 hasSubscription: hasSubscription,
2409 usagePercentage: usagePercentage
2410 })
2411 }
2412 });
2413 };
2414 LayoutContent.propTypes = {
2415 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2416 };
2417 var _default = exports["default"] = LayoutContent;
2418
2419 /***/ }),
2420
2421 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2422 /*!*************************************************************!*\
2423 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2424 \*************************************************************/
2425 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2426
2427 "use strict";
2428
2429
2430 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2431 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2432 Object.defineProperty(exports, "__esModule", ({
2433 value: true
2434 }));
2435 exports["default"] = void 0;
2436 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2437 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2438 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2439 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2440 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2441 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); }
2442 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; }
2443 var Connect = function Connect(_ref) {
2444 var connectUrl = _ref.connectUrl,
2445 onSuccess = _ref.onSuccess;
2446 var approveButtonRef = (0, _react.useRef)();
2447 (0, _react.useEffect)(function () {
2448 // On local dev (as a standalone app), the connect lib is not loaded.
2449 if (!jQuery.fn.elementorConnect) {
2450 return;
2451 }
2452 jQuery(approveButtonRef.current).elementorConnect({
2453 success: function success(_, data) {
2454 return onSuccess(data);
2455 },
2456 error: function error() {
2457 throw new Error('Elementor AI: Failed to connect.');
2458 }
2459 });
2460 }, []);
2461 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2462 alignItems: "center",
2463 gap: 2
2464 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2465 sx: {
2466 color: 'text.primary',
2467 fontSize: '60px',
2468 mb: 1
2469 }
2470 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2471 variant: "h4",
2472 sx: {
2473 color: 'text.primary'
2474 }
2475 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2476 variant: "body2"
2477 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2478 variant: "caption",
2479 sx: {
2480 maxWidth: 520,
2481 textAlign: 'center'
2482 }
2483 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2484 href: "https://go.elementor.com/ai-terms/",
2485 target: "_blank",
2486 color: "info.main"
2487 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2488 href: "https://go.elementor.com/ai-privacy-policy/",
2489 target: "_blank",
2490 color: "info.main"
2491 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2492 ref: approveButtonRef,
2493 href: connectUrl,
2494 variant: "contained",
2495 sx: {
2496 mt: 1,
2497 '&:hover': {
2498 color: 'primary.contrastText'
2499 }
2500 }
2501 }, (0, _i18n.__)('Connect', 'elementor')));
2502 };
2503 Connect.propTypes = {
2504 connectUrl: _propTypes.default.string.isRequired,
2505 onSuccess: _propTypes.default.func.isRequired
2506 };
2507 var _default = exports["default"] = Connect;
2508
2509 /***/ }),
2510
2511 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2512 /*!**********************************************************************************!*\
2513 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2514 \**********************************************************************************/
2515 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2516
2517 "use strict";
2518
2519
2520 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2521 Object.defineProperty(exports, "__esModule", ({
2522 value: true
2523 }));
2524 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;
2525 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2526 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2527 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2528 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2529 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2530 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2531 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2532 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2533 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2534 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2535 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2536 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2537 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2538 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2539 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2540 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2541 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2542 var Attachments = function Attachments(props) {
2543 if (!props.attachments.length) {
2544 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2545 disabled: props.disabled,
2546 onAttach: props.onAttach,
2547 items: [{
2548 title: (0, _i18n.__)('Reference a website', 'elementor'),
2549 icon: _websiteIcon.default,
2550 type: ATTACHMENT_TYPE_URL
2551 }, {
2552 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2553 icon: _copyPageIcon.default,
2554 type: MENU_TYPE_LIBRARY
2555 }]
2556 });
2557 }
2558 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2559 direction: "row",
2560 spacing: 1
2561 }, props.attachments.map(function (attachment, index) {
2562 switch (attachment.type) {
2563 case ATTACHMENT_TYPE_JSON:
2564 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2565 key: index
2566 }, props));
2567 case ATTACHMENT_TYPE_URL:
2568 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2569 key: index
2570 }, props));
2571 default:
2572 return null;
2573 }
2574 }));
2575 };
2576 Attachments.propTypes = {
2577 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2578 onAttach: _propTypes.default.func.isRequired,
2579 onDetach: _propTypes.default.func,
2580 disabled: _propTypes.default.bool
2581 };
2582 var _default = exports["default"] = Attachments;
2583
2584 /***/ }),
2585
2586 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2587 /*!************************************************************************************************!*\
2588 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2589 \************************************************************************************************/
2590 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2591
2592 "use strict";
2593
2594
2595 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2596 Object.defineProperty(exports, "__esModule", ({
2597 value: true
2598 }));
2599 exports["default"] = exports.AttachDialog = void 0;
2600 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2601 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2602 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2603 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2604 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2605 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2606 var type = props.type;
2607 var url = props.url;
2608 switch (type) {
2609 case _attachments.ATTACHMENT_TYPE_URL:
2610 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2611 url: url,
2612 onAttach: props.onAttach,
2613 onClose: props.onClose
2614 });
2615 case _attachments.MENU_TYPE_LIBRARY:
2616 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2617 onAttach: props.onAttach,
2618 onClose: props.onClose
2619 });
2620 }
2621 return null;
2622 };
2623 AttachDialog.propTypes = {
2624 type: _propTypes.default.string,
2625 onAttach: _propTypes.default.func,
2626 onClose: _propTypes.default.func,
2627 url: _propTypes.default.string
2628 };
2629 var _default = exports["default"] = AttachDialog;
2630
2631 /***/ }),
2632
2633 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2634 /*!*************************************************************************************************!*\
2635 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2636 \*************************************************************************************************/
2637 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2638
2639 "use strict";
2640
2641
2642 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2643 Object.defineProperty(exports, "__esModule", ({
2644 value: true
2645 }));
2646 exports.LibraryDialog = void 0;
2647 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2648 var _react = __webpack_require__(/*! react */ "react");
2649 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2650 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2651 var isApplyingTemplate = (0, _react.useRef)(false);
2652 (0, _react.useEffect)(function () {
2653 var onLibraryHide = function onLibraryHide() {
2654 if (isApplyingTemplate.current) {
2655 return;
2656 }
2657 props.onClose();
2658 };
2659 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2660 return function () {
2661 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2662 };
2663 }, [props]);
2664 (0, _react.useEffect)(function () {
2665 var onMessage = function onMessage(event) {
2666 var _event$data = event.data,
2667 type = _event$data.type,
2668 json = _event$data.json,
2669 html = _event$data.html,
2670 label = _event$data.label,
2671 source = _event$data.source;
2672 switch (type) {
2673 case 'library/attach:start':
2674 isApplyingTemplate.current = true;
2675 break;
2676 case 'library/attach':
2677 props.onAttach([{
2678 type: _attachments.ATTACHMENT_TYPE_JSON,
2679 previewHTML: html,
2680 content: json,
2681 label: label,
2682 source: source
2683 }]);
2684 isApplyingTemplate.current = false;
2685 props.onClose();
2686 break;
2687 }
2688 };
2689 window.addEventListener('message', onMessage);
2690 return function () {
2691 window.removeEventListener('message', onMessage);
2692 };
2693 });
2694 $e.run('library/open', {
2695 toDefault: true,
2696 mode: 'ai-attachment'
2697 });
2698 isApplyingTemplate.current = false;
2699 return null;
2700 };
2701 LibraryDialog.propTypes = {
2702 onAttach: _propTypes.default.func.isRequired,
2703 onClose: _propTypes.default.func.isRequired
2704 };
2705
2706 /***/ }),
2707
2708 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2709 /*!***************************************************************************************!*\
2710 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2711 \***************************************************************************************/
2712 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2713
2714 "use strict";
2715
2716
2717 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2718 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2719 Object.defineProperty(exports, "__esModule", ({
2720 value: true
2721 }));
2722 exports.Menu = void 0;
2723 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2724 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2725 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2726 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2727 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2728 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2729 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2730 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2731 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); }
2732 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; }
2733 var Menu = exports.Menu = function Menu(props) {
2734 var _useState = (0, _react.useState)(false),
2735 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2736 isOpen = _useState2[0],
2737 setIsOpen = _useState2[1];
2738 var _useState3 = (0, _react.useState)(null),
2739 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2740 selectedType = _useState4[0],
2741 setSelectedType = _useState4[1];
2742 var _useTheme = (0, _ui.useTheme)(),
2743 direction = _useTheme.direction;
2744 var anchorRef = (0, _react.useRef)(null);
2745 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2746 isViewed = _useIntroduction.isViewed,
2747 markAsViewed = _useIntroduction.markAsViewed;
2748 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2749 size: "small",
2750 ref: anchorRef,
2751 disabled: props.disabled,
2752 onClick: function onClick() {
2753 setIsOpen(true);
2754 if (!isViewed) {
2755 markAsViewed();
2756 }
2757 },
2758 color: "secondary"
2759 }, function () {
2760 if (isOpen) {
2761 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2762 fontSize: "small"
2763 });
2764 } else if (isViewed) {
2765 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2766 fontSize: "small"
2767 });
2768 }
2769 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2770 color: "primary",
2771 badgeContent: " ",
2772 variant: "dot"
2773 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2774 fontSize: "small"
2775 }));
2776 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2777 open: isOpen,
2778 anchorEl: anchorRef.current,
2779 onClose: function onClose() {
2780 return setIsOpen(false);
2781 },
2782 anchorOrigin: {
2783 vertical: 'bottom',
2784 horizontal: 'rtl' === direction ? 'right' : 'left'
2785 },
2786 transformOrigin: {
2787 vertical: 'top',
2788 horizontal: 'rtl' === direction ? 'right' : 'left'
2789 }
2790 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2791 sx: {
2792 width: 440
2793 }
2794 }, props.items.map(function (item) {
2795 var IconComponent = item.icon;
2796 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2797 key: item.type,
2798 onClick: function onClick() {
2799 setSelectedType(item.type);
2800 setIsOpen(false);
2801 }
2802 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2803 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2804 type: selectedType,
2805 onAttach: props.onAttach,
2806 onClose: function onClose() {
2807 setIsOpen(false);
2808 setSelectedType(null);
2809 }
2810 }));
2811 };
2812 Menu.propTypes = {
2813 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2814 title: _propTypes.default.string.isRequired,
2815 type: _propTypes.default.string.isRequired,
2816 icon: _propTypes.default.elementType
2817 })).isRequired,
2818 onAttach: _propTypes.default.func.isRequired,
2819 disabled: _propTypes.default.bool
2820 };
2821
2822 /***/ }),
2823
2824 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2825 /*!******************************************************************************************************!*\
2826 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2827 \******************************************************************************************************/
2828 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2829
2830 "use strict";
2831
2832
2833 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2834 Object.defineProperty(exports, "__esModule", ({
2835 value: true
2836 }));
2837 exports.PromptPowerNotice = void 0;
2838 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2839 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2840 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2841 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2842 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2843 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2844 isViewed = _useIntroduction.isViewed,
2845 markAsViewed = _useIntroduction.markAsViewed;
2846 if (isViewed) {
2847 return null;
2848 }
2849 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2850 sx: {
2851 pt: 2,
2852 px: 2,
2853 pb: 0
2854 }
2855 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2856 severity: "info",
2857 onClose: function onClose() {
2858 return markAsViewed();
2859 }
2860 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2861 variant: "body2",
2862 display: "inline-block",
2863 sx: {
2864 paddingInlineEnd: 1
2865 }
2866 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2867 variant: "body2",
2868 display: "inline-block"
2869 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2870 };
2871
2872 /***/ }),
2873
2874 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2875 /*!*************************************************************************************************!*\
2876 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2877 \*************************************************************************************************/
2878 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2879
2880 "use strict";
2881
2882
2883 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2884 Object.defineProperty(exports, "__esModule", ({
2885 value: true
2886 }));
2887 exports["default"] = exports.ThumbnailJson = void 0;
2888 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2889 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2890 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2891 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2892 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2893 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2894 var _props$attachments;
2895 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2896 return 'json' === item.type;
2897 });
2898 if (!attachment) {
2899 return null;
2900 }
2901 if (!attachment.previewHTML) {
2902 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2903 animation: "wave",
2904 variant: "rounded",
2905 width: 60,
2906 height: 60
2907 });
2908 }
2909 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2910 html: attachment.previewHTML,
2911 disabled: props.disabled
2912 });
2913 };
2914 ThumbnailJson.propTypes = {
2915 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2916 disabled: _propTypes.default.bool
2917 };
2918 var _default = exports["default"] = ThumbnailJson;
2919
2920 /***/ }),
2921
2922 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2923 /*!************************************************************************************************!*\
2924 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2925 \************************************************************************************************/
2926 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2927
2928 "use strict";
2929
2930
2931 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2932 Object.defineProperty(exports, "__esModule", ({
2933 value: true
2934 }));
2935 exports["default"] = exports.ThumbnailUrl = void 0;
2936 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2937 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2938 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2939 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2940 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2941 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2942 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2943 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2944 var _props$attachments;
2945 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2946 return 'url' === item.type;
2947 });
2948 if (!attachment) {
2949 return null;
2950 }
2951 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2952 sx: {
2953 position: 'relative',
2954 '&:hover::before': {
2955 content: '""',
2956 position: 'absolute',
2957 userSelect: 'none',
2958 inset: 0,
2959 backgroundColor: 'rgba(0,0,0,0.6)',
2960 borderRadius: 1,
2961 zIndex: 1
2962 },
2963 '&:hover .remove-attachment': {
2964 display: 'flex'
2965 }
2966 }
2967 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2968 className: "remove-attachment",
2969 size: "small",
2970 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2971 disabled: props.disabled,
2972 onClick: function onClick(event) {
2973 event.stopPropagation();
2974 props.onDetach();
2975 },
2976 sx: {
2977 display: 'none',
2978 position: 'absolute',
2979 insetInlineEnd: 4,
2980 insetBlockStart: 4,
2981 backgroundColor: 'secondary.main',
2982 zIndex: 1,
2983 borderRadius: 1,
2984 p: '3px',
2985 '&:hover': {
2986 backgroundColor: 'secondary.dark'
2987 }
2988 }
2989 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2990 sx: {
2991 fontSize: '1.125rem',
2992 color: 'common.white'
2993 }
2994 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2995 disabled: props.disabled,
2996 html: attachment.previewHTML
2997 }));
2998 };
2999 ThumbnailUrl.propTypes = {
3000 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
3001 disabled: _propTypes.default.bool,
3002 onDetach: _propTypes.default.func
3003 };
3004 var _default = exports["default"] = ThumbnailUrl;
3005
3006 /***/ }),
3007
3008 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3009 /*!********************************************************************************************!*\
3010 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3011 \********************************************************************************************/
3012 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3013
3014 "use strict";
3015
3016
3017 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3018 Object.defineProperty(exports, "__esModule", ({
3019 value: true
3020 }));
3021 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3022 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3023 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3024 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3025 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3026 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3027 var _templateObject;
3028 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3029 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);
3030 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3031 var _props$html$match, _props$html$match2;
3032 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;
3033 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;
3034 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3035 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3036 var scaleFactor = Math.min(height, width);
3037 var scale = THUMBNAIL_SIZE / scaleFactor;
3038
3039 // Center the preview
3040 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3041 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3042 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3043 dir: "ltr",
3044 sx: {
3045 position: 'relative',
3046 cursor: 'default',
3047 overflow: 'hidden',
3048 border: '1px solid',
3049 borderColor: 'grey.300',
3050 borderRadius: 1,
3051 boxSizing: 'border-box',
3052 width: THUMBNAIL_SIZE,
3053 height: THUMBNAIL_SIZE,
3054 opacity: props.disabled ? 0.5 : 1
3055 }
3056 }, /*#__PURE__*/_react.default.createElement("iframe", {
3057 title: (0, _i18n.__)('Preview', 'elementor'),
3058 sandbox: "",
3059 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3060 style: {
3061 border: 'none',
3062 overflow: 'hidden',
3063 width: width,
3064 height: height,
3065 transform: "scale(".concat(scale, ")"),
3066 transformOrigin: "".concat(left, "px ").concat(top, "px")
3067 }
3068 }));
3069 };
3070 Thumbnail.propTypes = {
3071 html: _propTypes.default.string.isRequired,
3072 disabled: _propTypes.default.bool
3073 };
3074
3075 /***/ }),
3076
3077 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3078 /*!*********************************************************************************************!*\
3079 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3080 \*********************************************************************************************/
3081 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3082
3083 "use strict";
3084
3085
3086 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3087 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3088 Object.defineProperty(exports, "__esModule", ({
3089 value: true
3090 }));
3091 exports.UrlDialog = void 0;
3092 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3093 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3094 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3095 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3096 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3097 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3098 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3099 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3100 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3101 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3102 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3103 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); }
3104 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; }
3105 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3106 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3107 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3108 isTimeout = _useTimeout2[0],
3109 turnOffTimeout = _useTimeout2[1];
3110 var _useUserInfo = (0, _useUserInfo2.default)(),
3111 isLoading = _useUserInfo.isLoading,
3112 initialUsagePercentage = _useUserInfo.usagePercentage;
3113 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3114 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3115 var _useState = (0, _react.useState)(false),
3116 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3117 isInitUsageDone = _useState2[0],
3118 setIsInitUsageDone = _useState2[1];
3119 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3120 remoteConfig = _useRemoteConfig.remoteConfig;
3121 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3122 var urlObject = builderUrl ? new URL(builderUrl) : {};
3123 var iframeOrigin = urlObject.origin;
3124 var isOpen = (0, _react.useRef)(false);
3125 (0, _react.useEffect)(function () {
3126 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3127 updateUsagePercentage(initialUsagePercentage);
3128 setIsInitUsageDone(true);
3129 }
3130 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3131 (0, _react.useEffect)(function () {
3132 if (!isOpen.current) {
3133 try {
3134 window.$e.run('ai-integration/open-choose-element', {
3135 url: props.url
3136 });
3137 isOpen.current = true;
3138 } catch (error) {
3139 // eslint-disable-next-line no-console
3140 console.error(error);
3141 }
3142 }
3143 }, [isOpen.current]);
3144 (0, _react.useEffect)(function () {
3145 var onMessage = function onMessage(event) {
3146 if (event.origin !== iframeOrigin) {
3147 return;
3148 }
3149 var _event$data = event.data,
3150 type = _event$data.type,
3151 html = _event$data.html,
3152 url = _event$data.url;
3153 switch (type) {
3154 case 'element-selector/close':
3155 isOpen.current = false;
3156 props.onClose();
3157 break;
3158 case 'element-selector/loaded':
3159 turnOffTimeout();
3160 isOpen.current = true;
3161 break;
3162 case 'element-selector/attach':
3163 props.onAttach([{
3164 type: 'url',
3165 previewHTML: html,
3166 content: html,
3167 label: url ? new URL(url).href : '',
3168 source: _attachments.USER_URL_SOURCE
3169 }]);
3170 break;
3171 }
3172 };
3173 window.addEventListener('message', onMessage);
3174 return function () {
3175 window.removeEventListener('message', onMessage);
3176 };
3177 }, [iframeOrigin, props, turnOffTimeout]);
3178 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3179 open: true,
3180 maxWidth: "lg"
3181 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3182 sx: {
3183 textAlign: 'center',
3184 padding: 3
3185 }
3186 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3187 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3188 onClose: props.onClose
3189 }));
3190 };
3191 UrlDialog.propTypes = {
3192 onAttach: _propTypes.default.func.isRequired,
3193 onClose: _propTypes.default.func.isRequired,
3194 url: _propTypes.default.string
3195 };
3196
3197 /***/ }),
3198
3199 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3200 /*!************************************************************************************!*\
3201 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3202 \************************************************************************************/
3203 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3204
3205 "use strict";
3206
3207
3208 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3209 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3210 Object.defineProperty(exports, "__esModule", ({
3211 value: true
3212 }));
3213 exports["default"] = void 0;
3214 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3215 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3216 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3217 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3218 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3219 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3220 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3221 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3222 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3223 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3224 var _excluded = ["sx", "PaperProps"];
3225 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); }
3226 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; }
3227 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; }
3228 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; }
3229 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3230 return {
3231 '& .MuiDialog-container': {
3232 marginTop: 0,
3233 alignItems: 'flex-end',
3234 paddingBottom: '16vh'
3235 },
3236 '& .MuiPaper-root': {
3237 margin: 0,
3238 maxHeight: '80vh'
3239 }
3240 };
3241 });
3242 var DialogHeader = function DialogHeader(_ref) {
3243 var onClose = _ref.onClose,
3244 children = _ref.children;
3245 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3246 sx: {
3247 fontWeight: 'normal'
3248 },
3249 color: "transparent",
3250 position: "relative"
3251 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3252 variant: "dense"
3253 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3254 sx: {
3255 mr: 1
3256 }
3257 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3258 component: "span",
3259 variant: "subtitle2",
3260 sx: {
3261 fontWeight: 'bold',
3262 textTransform: 'uppercase'
3263 }
3264 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3265 label: (0, _i18n.__)('Beta', 'elementor'),
3266 color: "default",
3267 size: "small",
3268 sx: {
3269 ml: 1
3270 }
3271 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3272 direction: "row",
3273 spacing: 1,
3274 alignItems: "center",
3275 sx: {
3276 ml: 'auto'
3277 }
3278 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3279 size: "small",
3280 "aria-label": "close",
3281 onClick: onClose,
3282 sx: {
3283 '&.MuiButtonBase-root': {
3284 mr: -1
3285 }
3286 }
3287 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3288 };
3289 DialogHeader.propTypes = {
3290 children: _propTypes.default.node,
3291 onClose: _propTypes.default.func.isRequired
3292 };
3293 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3294 return {
3295 '&.MuiDialogContent-root': {
3296 padding: 0
3297 }
3298 };
3299 });
3300 var LayoutDialog = function LayoutDialog(_ref2) {
3301 var _ref2$sx = _ref2.sx,
3302 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3303 _ref2$PaperProps = _ref2.PaperProps,
3304 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3305 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3306 var _useState = (0, _react.useState)({
3307 pointerEvents: 'none'
3308 }),
3309 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3310 sxStyle = _useState2[0],
3311 setSxStyle = _useState2[1];
3312 var timeoutRef = (0, _react.useRef)(null);
3313
3314 /**
3315 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3316 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3317 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3318 */
3319 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3320 maxWidth: "md",
3321 PaperProps: _objectSpread({
3322 sx: {
3323 pointerEvents: 'auto'
3324 },
3325 onMouseEnter: function onMouseEnter() {
3326 clearTimeout(timeoutRef.current);
3327 setSxStyle({
3328 pointerEvents: 'all'
3329 });
3330 },
3331 onMouseLeave: function onMouseLeave() {
3332 clearTimeout(timeoutRef.current);
3333 timeoutRef.current = setTimeout(function () {
3334 setSxStyle({
3335 pointerEvents: 'none'
3336 });
3337 }, 200);
3338 }
3339 }, PaperProps)
3340 }, props, {
3341 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3342 }));
3343 };
3344 LayoutDialog.propTypes = {
3345 sx: _propTypes.default.object,
3346 PaperProps: _propTypes.default.object
3347 };
3348 LayoutDialog.Header = DialogHeader;
3349 LayoutDialog.Content = StyledDialogContent;
3350 var _default = exports["default"] = LayoutDialog;
3351
3352 /***/ }),
3353
3354 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3355 /*!*********************************************************************************************!*\
3356 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3357 \*********************************************************************************************/
3358 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3359
3360 "use strict";
3361
3362
3363 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3364 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3365 Object.defineProperty(exports, "__esModule", ({
3366 value: true
3367 }));
3368 exports.ProTemplateIndicator = void 0;
3369 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3370 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3371 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3372 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3373 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3374 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); }
3375 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; }
3376 var popoverId = 'e-pro-upgrade-popover';
3377 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3378 var theme = _ref.theme;
3379 return {
3380 position: 'relative',
3381 padding: theme.spacing(3),
3382 boxShadow: theme.shadows[4],
3383 zIndex: '9999'
3384 };
3385 });
3386 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3387 var theme = _ref2.theme;
3388 return {
3389 position: 'absolute',
3390 width: theme.spacing(5),
3391 height: theme.spacing(5),
3392 overflow: 'hidden',
3393 // Override Popper inline styles.
3394 left: '100% !important',
3395 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3396 '&::after': {
3397 backgroundColor: theme.palette.background.paper,
3398 content: '""',
3399 display: 'block',
3400 position: 'absolute',
3401 width: theme.spacing(2.5),
3402 height: theme.spacing(2.5),
3403 top: '50%',
3404 left: '50%',
3405 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3406 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3407 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3408 }
3409 };
3410 });
3411 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3412 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3413 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3414 var _useState = (0, _react.useState)(false),
3415 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3416 isPopoverOpen = _useState2[0],
3417 setIsPopoverOpen = _useState2[1];
3418 var anchorEl = (0, _react.useRef)(null);
3419 var arrowEl = (0, _react.useRef)(null);
3420 var showPopover = function showPopover() {
3421 return setIsPopoverOpen(true);
3422 };
3423 var hidePopover = function hidePopover() {
3424 return setIsPopoverOpen(false);
3425 };
3426 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3427 flexDirection: "row-reverse",
3428 component: "span",
3429 display: "flex",
3430 onMouseLeave: hidePopover,
3431 alignItems: "center"
3432 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3433 ref: anchorEl,
3434 onMouseEnter: showPopover,
3435 onClick: function onClick(e) {
3436 return e.stopPropagation();
3437 } /* Do nothing */,
3438 "aria-owns": isPopoverOpen ? popoverId : undefined,
3439 "aria-haspopup": "true",
3440 sx: {
3441 m: 1,
3442 '&:hover': {
3443 backgroundColor: 'action.selected'
3444 }
3445 }
3446 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3447 sx: {
3448 color: 'text.primary'
3449 }
3450 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3451 open: isPopoverOpen,
3452 popperOptions: {
3453 placement: 'left-start',
3454 modifiers: [{
3455 name: 'arrow',
3456 enabled: true,
3457 options: {
3458 element: arrowEl.current,
3459 padding: 5
3460 }
3461 }, {
3462 name: 'offset',
3463 options: {
3464 offset: [0, 10]
3465 }
3466 }]
3467 },
3468 anchorEl: anchorEl.current,
3469 sx: {
3470 zIndex: '9999',
3471 maxWidth: 300
3472 }
3473 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3474 ref: arrowEl
3475 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3476 alignItems: "start",
3477 spacing: 2
3478 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3479 color: "promotion",
3480 variant: "outlined",
3481 size: "small",
3482 label: (0, _i18n.__)('Pro', 'elementor'),
3483 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3484 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3485 variant: "body2"
3486 }, (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, {
3487 variant: "contained",
3488 color: "promotion",
3489 size: "small",
3490 href: actionUrl,
3491 target: "_blank",
3492 sx: {
3493 alignSelf: 'flex-end'
3494 }
3495 }, actionLabel)))));
3496 };
3497
3498 /***/ }),
3499
3500 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3501 /*!******************************************************************************************!*\
3502 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3503 \******************************************************************************************/
3504 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3505
3506 "use strict";
3507
3508
3509 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3510 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3511 Object.defineProperty(exports, "__esModule", ({
3512 value: true
3513 }));
3514 exports["default"] = void 0;
3515 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3516 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3517 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3518 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3519 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3520 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3521 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3522 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3523 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3524 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3525 var _excluded = ["onSubmit"];
3526 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); }
3527 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; }
3528 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; }
3529 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; }
3530 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3531 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3532 // eslint-disable-next-line jsx-a11y/no-autofocus
3533 , (0, _extends2.default)({
3534 autoFocus: true,
3535 multiline: true,
3536 size: "small",
3537 maxRows: 3,
3538 color: "secondary",
3539 variant: "standard"
3540 }, props, {
3541 inputRef: ref,
3542 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3543 type: 'search',
3544 sx: {
3545 pt: 0
3546 }
3547 })
3548 }));
3549 });
3550 TextInput.propTypes = {
3551 InputProps: _propTypes.default.object
3552 };
3553 var PaperComponent = function PaperComponent(props) {
3554 var _useConfig = (0, _config.useConfig)(),
3555 mode = _useConfig.mode;
3556 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3557 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3558 elevation: 8,
3559 sx: {
3560 borderRadius: 2
3561 }
3562 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3563 component: _ui.Box,
3564 color: function color(theme) {
3565 return theme.palette.text.tertiary;
3566 },
3567 variant: "caption",
3568 paddingX: 2,
3569 paddingY: 1
3570 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3571 sx: {
3572 m: 2
3573 }
3574 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3575 libraryLink: libraryLink
3576 })));
3577 };
3578 PaperComponent.propTypes = {
3579 children: _propTypes.default.node
3580 };
3581 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3582 var onSubmit = _ref.onSubmit,
3583 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3584 var _useState = (0, _react.useState)(false),
3585 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3586 showSuggestions = _useState2[0],
3587 setShowSuggestions = _useState2[1];
3588 var theme = (0, _ui.useTheme)();
3589 var itemHeight = parseInt(theme.spacing(4));
3590 var maxItems = 5;
3591 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3592 PaperComponent: PaperComponent,
3593 ListboxProps: {
3594 sx: {
3595 maxHeight: maxItems * itemHeight
3596 }
3597 },
3598 renderOption: function renderOption(optionProps, option) {
3599 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3600 title: option.text,
3601 noWrap: true,
3602 variant: "body2",
3603 component: _ui.Box,
3604 sx: {
3605 '&.MuiAutocomplete-option': {
3606 display: 'block',
3607 minHeight: itemHeight
3608 }
3609 }
3610 }), option.text);
3611 },
3612 freeSolo: true,
3613 fullWidth: true,
3614 disableClearable: true,
3615 open: showSuggestions,
3616 onClose: function onClose(e) {
3617 var _e$relatedTarget;
3618 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3619 },
3620 onKeyDown: function onKeyDown(e) {
3621 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3622 onSubmit(e);
3623 } else if ('/' === e.key && '' === e.target.value) {
3624 e.preventDefault();
3625 setShowSuggestions(true);
3626 }
3627 }
3628 }, props));
3629 };
3630 PromptAutocomplete.propTypes = {
3631 onSubmit: _propTypes.default.func.isRequired
3632 };
3633 PromptAutocomplete.TextInput = TextInput;
3634 var _default = exports["default"] = PromptAutocomplete;
3635
3636 /***/ }),
3637
3638 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3639 /*!**********************************************************************************!*\
3640 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3641 \**********************************************************************************/
3642 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3643
3644 "use strict";
3645
3646
3647 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3648 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3649 Object.defineProperty(exports, "__esModule", ({
3650 value: true
3651 }));
3652 exports["default"] = void 0;
3653 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3654 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3655 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3656 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3657 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3658 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3659 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3660 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3661 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3662 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3663 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3664 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3665 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3666 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3667 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3668 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3669 var _excluded = ["tooltip"];
3670 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); }
3671 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; }
3672 var PROMPT_SUGGESTIONS = Object.freeze([
3673 // Translators: [Topic] is a placeholder for the user - please translate it as well
3674 {
3675 text: (0, _i18n.__)('Hero section on [topic] with heading, text, buttons on the right, and an image on the left', 'elementor.com')
3676 },
3677 // Translators: [Topic] is a placeholder for the user - please translate it as well
3678 {
3679 text: (0, _i18n.__)('About Us section on [topic] with heading, text, and big image below', 'elementor.com')
3680 }, {
3681 text: (0, _i18n.__)('Team section with four image boxes showcasing team members', 'elementor.com')
3682 },
3683 // Translators: [Topic] is a placeholder for the user - please translate it as well
3684 {
3685 text: (0, _i18n.__)('FAQ section with a toggle widget showcasing FAQs about [topic]', 'elementor.com')
3686 }, {
3687 text: (0, _i18n.__)('Gallery section with a carousel displaying three images at once', 'elementor.com')
3688 },
3689 // Translators: [Topic] is a placeholder for the user - please translate it as well
3690 {
3691 text: (0, _i18n.__)('Contact section with a form for [topic]', 'elementor.com')
3692 }, {
3693 text: (0, _i18n.__)('Client section featuring companies\' logos', 'elementor.com')
3694 },
3695 // Translators: [Topic] is a placeholder for the user - please translate it as well
3696 {
3697 text: (0, _i18n.__)('Testimonial section with testimonials, each featuring a star rating and an image', 'elementor.com')
3698 },
3699 // Translators: [Topic] is a placeholder for the user - please translate it as well
3700 {
3701 text: (0, _i18n.__)('Service section about [topic], showcasing four services with buttons', 'elementor.com')
3702 },
3703 // Translators: [Topic] is a placeholder for the user - please translate it as well
3704 {
3705 text: (0, _i18n.__)('Stats section with counters displaying data about [topic]', 'elementor.com')
3706 }, {
3707 text: (0, _i18n.__)('Quote section with colored background, featuring a centered quote', 'elementor.com')
3708 },
3709 // Translators: [Topic] is a placeholder for the user - please translate it as well
3710 {
3711 text: (0, _i18n.__)('Pricing section for [topic] with a pricing list', 'elementor.com')
3712 },
3713 // Translators: [Topic] is a placeholder for the user - please translate it as well
3714 {
3715 text: (0, _i18n.__)('Subscribe section featuring a simple email form, inviting users to stay informed on [topic]', 'elementor.com')
3716 }]);
3717 var IconButtonWithTooltip = function IconButtonWithTooltip(_ref) {
3718 var tooltip = _ref.tooltip,
3719 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3720 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
3721 title: tooltip
3722 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
3723 component: "span",
3724 sx: {
3725 cursor: props.disabled ? 'default' : 'pointer'
3726 }
3727 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, props)));
3728 };
3729 IconButtonWithTooltip.propTypes = {
3730 tooltip: _propTypes.default.string,
3731 disabled: _propTypes.default.bool
3732 };
3733 var BackButton = function BackButton(props) {
3734 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3735 size: "small",
3736 color: "secondary",
3737 tooltip: (0, _i18n.__)('Back to results', 'elementor')
3738 }, props), /*#__PURE__*/_react.default.createElement(_arrowLeftIcon.default, null));
3739 };
3740 var EditButton = function EditButton(props) {
3741 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3742 size: "small",
3743 color: "primary",
3744 tooltip: (0, _i18n.__)('Edit prompt', 'elementor')
3745 }, props), /*#__PURE__*/_react.default.createElement(_editIcon.default, null));
3746 };
3747 var GenerateButton = function GenerateButton(props) {
3748 return /*#__PURE__*/_react.default.createElement(_generateSubmit.default, (0, _extends2.default)({
3749 size: "small",
3750 fullWidth: false
3751 }, props), (0, _i18n.__)('Generate', 'elementor'));
3752 };
3753 var PromptForm = (0, _react.forwardRef)(function (_ref2, ref) {
3754 var _attachments$;
3755 var attachments = _ref2.attachments,
3756 isActive = _ref2.isActive,
3757 isLoading = _ref2.isLoading,
3758 _ref2$showActions = _ref2.showActions,
3759 showActions = _ref2$showActions === void 0 ? false : _ref2$showActions,
3760 onAttach = _ref2.onAttach,
3761 onDetach = _ref2.onDetach,
3762 _onSubmit = _ref2.onSubmit,
3763 onBack = _ref2.onBack,
3764 onEdit = _ref2.onEdit,
3765 _ref2$shouldResetProm = _ref2.shouldResetPrompt,
3766 shouldResetPrompt = _ref2$shouldResetProm === void 0 ? false : _ref2$shouldResetProm;
3767 var _useState = (0, _react.useState)(''),
3768 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3769 prompt = _useState2[0],
3770 setPrompt = _useState2[1];
3771 (0, _react.useEffect)(function () {
3772 if (shouldResetPrompt) {
3773 setPrompt('');
3774 }
3775 }, [shouldResetPrompt]);
3776 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(prompt, 'layout'),
3777 isEnhancing = _usePromptEnhancer.isEnhancing,
3778 enhance = _usePromptEnhancer.enhance;
3779 var previousPrompt = (0, _react.useRef)('');
3780 var _useConfig = (0, _config.useConfig)(),
3781 attachmentsTypes = _useConfig.attachmentsTypes;
3782 var isInputDisabled = isLoading || isEnhancing || !isActive;
3783 var isInputEmpty = '' === prompt && !attachments.length;
3784 var isGenerateDisabled = isInputDisabled || isInputEmpty;
3785 var attachmentsType = ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) || '';
3786 var attachmentsConfig = attachmentsTypes[attachmentsType];
3787 var promptSuggestions = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptSuggestions) || PROMPT_SUGGESTIONS;
3788 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');
3789 var handleBack = function handleBack() {
3790 setPrompt(previousPrompt.current);
3791 onBack();
3792 };
3793 var handleEdit = function handleEdit() {
3794 previousPrompt.current = prompt;
3795 onEdit();
3796 };
3797 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3798 component: "form",
3799 onSubmit: function onSubmit(e) {
3800 return _onSubmit(e, prompt);
3801 },
3802 direction: "row",
3803 sx: {
3804 p: 3
3805 },
3806 alignItems: "start",
3807 gap: 1
3808 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3809 direction: "row",
3810 alignItems: "start",
3811 flexGrow: 1,
3812 spacing: 2
3813 }, showActions && (isActive ? /*#__PURE__*/_react.default.createElement(BackButton, {
3814 disabled: isLoading || isEnhancing,
3815 onClick: handleBack
3816 }) : /*#__PURE__*/_react.default.createElement(EditButton, {
3817 disabled: isLoading,
3818 onClick: handleEdit
3819 })), /*#__PURE__*/_react.default.createElement(_attachments.default, {
3820 attachments: attachments,
3821 onAttach: onAttach,
3822 onDetach: onDetach,
3823 disabled: isInputDisabled
3824 }), /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default, {
3825 value: prompt,
3826 disabled: isInputDisabled,
3827 onSubmit: function onSubmit(e) {
3828 return _onSubmit(e, prompt);
3829 },
3830 options: promptSuggestions,
3831 onChange: function onChange(_, selectedValue) {
3832 return setPrompt(selectedValue.text + ' ');
3833 },
3834 renderInput: function renderInput(params) {
3835 return /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default.TextInput, (0, _extends2.default)({}, params, {
3836 ref: ref,
3837 onChange: function onChange(e) {
3838 return setPrompt(e.target.value);
3839 },
3840 placeholder: promptPlaceholder
3841 }));
3842 }
3843 })), /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
3844 size: "small",
3845 disabled: isGenerateDisabled || '' === prompt,
3846 isLoading: isEnhancing,
3847 onClick: function onClick() {
3848 return enhance().then(function (_ref3) {
3849 var result = _ref3.result;
3850 return setPrompt(result);
3851 });
3852 }
3853 }), /*#__PURE__*/_react.default.createElement(GenerateButton, {
3854 disabled: isGenerateDisabled
3855 }));
3856 });
3857 PromptForm.propTypes = {
3858 isActive: _propTypes.default.bool,
3859 onAttach: _propTypes.default.func,
3860 onDetach: _propTypes.default.func,
3861 isLoading: _propTypes.default.bool,
3862 showActions: _propTypes.default.bool,
3863 onSubmit: _propTypes.default.func.isRequired,
3864 onBack: _propTypes.default.func.isRequired,
3865 onEdit: _propTypes.default.func.isRequired,
3866 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
3867 shouldResetPrompt: _propTypes.default.bool
3868 };
3869 var _default = exports["default"] = PromptForm;
3870
3871 /***/ }),
3872
3873 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js":
3874 /*!*******************************************************************************************!*\
3875 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js ***!
3876 \*******************************************************************************************/
3877 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3878
3879 "use strict";
3880
3881
3882 Object.defineProperty(exports, "__esModule", ({
3883 value: true
3884 }));
3885 exports["default"] = void 0;
3886 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3887 var ScreenshotContainer = (0, _ui.styled)(_ui.Box, {
3888 shouldForwardProp: function shouldForwardProp(prop) {
3889 return prop !== 'outlineOffset';
3890 }
3891 })(function (_ref) {
3892 var theme = _ref.theme,
3893 selected = _ref.selected,
3894 height = _ref.height,
3895 disabled = _ref.disabled,
3896 _ref$outlineOffset = _ref.outlineOffset,
3897 outlineOffset = _ref$outlineOffset === void 0 ? '0px' : _ref$outlineOffset;
3898 var outlineColor = selected ? theme.palette.text.primary : theme.palette.text.disabled;
3899 var outline = "2px solid ".concat(outlineColor);
3900 return {
3901 height: height,
3902 cursor: disabled ? 'default' : 'pointer',
3903 overflow: 'hidden',
3904 boxSizing: 'border-box',
3905 backgroundPosition: 'top center',
3906 backgroundSize: '100% auto',
3907 backgroundRepeat: 'no-repeat',
3908 backgroundColor: theme.palette.common.white,
3909 borderRadius: theme.shape.borderRadius * 0.5,
3910 outlineOffset: outlineOffset,
3911 outline: outline,
3912 opacity: disabled ? '0.4' : '1',
3913 transition: "all 50ms linear",
3914 '&:hover': disabled ? {} : {
3915 outlineColor: theme.palette.text.primary
3916 }
3917 };
3918 });
3919 var _default = exports["default"] = ScreenshotContainer;
3920
3921 /***/ }),
3922
3923 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js":
3924 /*!*********************************************************************************************!*\
3925 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js ***!
3926 \*********************************************************************************************/
3927 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3928
3929 "use strict";
3930
3931
3932 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3933 Object.defineProperty(exports, "__esModule", ({
3934 value: true
3935 }));
3936 exports["default"] = ScreenshotUnavailable;
3937 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3938 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3939 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3940 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3941 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3942 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3943 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; }
3944 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; }
3945 function ScreenshotUnavailable(props) {
3946 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, (0, _extends2.default)({}, props, {
3947 sx: _objectSpread(_objectSpread({}, props.sx || {}), {}, {
3948 display: 'flex',
3949 alignItems: 'center',
3950 justifyContent: 'center',
3951 backgroundColor: 'background.paper',
3952 color: 'text.tertiary',
3953 fontStyle: 'italic',
3954 fontSize: '12px',
3955 paddingInline: 12,
3956 textAlign: 'center',
3957 lineHeight: 1.5
3958 })
3959 }), (0, _i18n.__)('Preview unavailable', 'elementor'));
3960 }
3961 ScreenshotUnavailable.propTypes = {
3962 sx: _propTypes.default.object
3963 };
3964
3965 /***/ }),
3966
3967 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js":
3968 /*!*********************************************************************************!*\
3969 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js ***!
3970 \*********************************************************************************/
3971 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3972
3973 "use strict";
3974
3975
3976 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3977 Object.defineProperty(exports, "__esModule", ({
3978 value: true
3979 }));
3980 exports["default"] = void 0;
3981 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3982 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3983 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3984 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3985 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3986 var _screenshotUnavailable = _interopRequireDefault(__webpack_require__(/*! ./screenshot-unavailable */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js"));
3987 var _templateBadge = _interopRequireDefault(__webpack_require__(/*! ./template-badge */ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js"));
3988 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; }
3989 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; }
3990 var SCREENSHOT_HEIGHT = '138px';
3991 var Screenshot = function Screenshot(_ref) {
3992 var url = _ref.url,
3993 type = _ref.type,
3994 _ref$isLoading = _ref.isLoading,
3995 isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3996 _ref$isSelected = _ref.isSelected,
3997 isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
3998 isPlaceholder = _ref.isPlaceholder,
3999 disabled = _ref.disabled,
4000 onClick = _ref.onClick,
4001 _ref$sx = _ref.sx,
4002 sx = _ref$sx === void 0 ? {} : _ref$sx,
4003 outlineOffset = _ref.outlineOffset;
4004 if (isPlaceholder) {
4005 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
4006 sx: _objectSpread({
4007 height: SCREENSHOT_HEIGHT
4008 }, sx)
4009 });
4010 }
4011 if (isLoading) {
4012 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
4013 width: "100%",
4014 animation: "wave",
4015 variant: "rounded",
4016 height: SCREENSHOT_HEIGHT,
4017 sx: sx
4018 });
4019 }
4020 if (!url) {
4021 return /*#__PURE__*/_react.default.createElement(_screenshotUnavailable.default, {
4022 selected: isSelected,
4023 disabled: disabled,
4024 sx: sx,
4025 onClick: onClick,
4026 height: SCREENSHOT_HEIGHT,
4027 outlineOffset: outlineOffset
4028 });
4029 }
4030 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, {
4031 selected: isSelected,
4032 disabled: disabled,
4033 sx: _objectSpread({
4034 backgroundImage: "url('".concat(url, "')")
4035 }, sx),
4036 onClick: onClick,
4037 height: SCREENSHOT_HEIGHT,
4038 outlineOffset: outlineOffset
4039 }, /*#__PURE__*/_react.default.createElement(_templateBadge.default, {
4040 type: type
4041 }));
4042 };
4043 Screenshot.propTypes = {
4044 isSelected: _propTypes.default.bool,
4045 isLoading: _propTypes.default.bool,
4046 isPlaceholder: _propTypes.default.bool,
4047 disabled: _propTypes.default.bool,
4048 onClick: _propTypes.default.func.isRequired,
4049 url: _propTypes.default.string,
4050 type: _propTypes.default.string,
4051 sx: _propTypes.default.object,
4052 outlineOffset: _propTypes.default.string
4053 };
4054 var _default = exports["default"] = Screenshot;
4055
4056 /***/ }),
4057
4058 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js":
4059 /*!*************************************************************************************!*\
4060 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js ***!
4061 \*************************************************************************************/
4062 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4063
4064 "use strict";
4065
4066
4067 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4068 Object.defineProperty(exports, "__esModule", ({
4069 value: true
4070 }));
4071 exports["default"] = void 0;
4072 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4073 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4074 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4075 var _proTemplateIndicator = __webpack_require__(/*! ./pro-template-indicator */ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js");
4076 var TemplateBadge = function TemplateBadge(props) {
4077 var _useConfig = (0, _config.useConfig)(),
4078 hasPro = _useConfig.hasPro;
4079 if ('Pro' === props.type && !hasPro) {
4080 return /*#__PURE__*/_react.default.createElement(_proTemplateIndicator.ProTemplateIndicator, null);
4081 }
4082 return null;
4083 };
4084 var _default = exports["default"] = TemplateBadge;
4085 TemplateBadge.propTypes = {
4086 type: _propTypes.default.string
4087 };
4088
4089 /***/ }),
4090
4091 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js":
4092 /*!********************************************************************************************!*\
4093 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js ***!
4094 \********************************************************************************************/
4095 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4096
4097 "use strict";
4098
4099
4100 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4101 Object.defineProperty(exports, "__esModule", ({
4102 value: true
4103 }));
4104 exports["default"] = void 0;
4105 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4106 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4107 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4108 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4109 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4110 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4111 var _excluded = ["onClose", "onCancel", "title", "text"];
4112 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
4113 var onClose = _ref.onClose,
4114 onCancel = _ref.onCancel,
4115 title = _ref.title,
4116 text = _ref.text,
4117 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
4118 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
4119 "aria-labelledby": "unsaved-changes-alert-title",
4120 "aria-describedby": "unsaved-changes-alert-description"
4121 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
4122 id: "unsaved-changes-alert-title"
4123 }, title), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
4124 id: "unsaved-changes-alert-description"
4125 }, text)), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
4126 onClick: onCancel,
4127 color: "secondary"
4128 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
4129 onClick: onClose,
4130 color: "error",
4131 variant: "contained"
4132 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
4133 };
4134 UnsavedChangesAlert.propTypes = {
4135 title: _propTypes.default.string,
4136 text: _propTypes.default.string,
4137 onCancel: _propTypes.default.func,
4138 onClose: _propTypes.default.func
4139 };
4140 var _default = exports["default"] = UnsavedChangesAlert;
4141
4142 /***/ }),
4143
4144 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
4145 /*!**************************************************************************!*\
4146 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
4147 \**************************************************************************/
4148 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4149
4150 "use strict";
4151
4152
4153 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4154 Object.defineProperty(exports, "__esModule", ({
4155 value: true
4156 }));
4157 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
4158 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4159 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4160 var MODE_LAYOUT = exports.MODE_LAYOUT = 'layout';
4161 var MODE_VARIATION = exports.MODE_VARIATION = 'variation';
4162 var LAYOUT_APP_MODES = exports.LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
4163 var ConfigContext = _react.default.createContext({});
4164 var useConfig = exports.useConfig = function useConfig() {
4165 return _react.default.useContext(ConfigContext);
4166 };
4167 var ConfigProvider = exports.ConfigProvider = function ConfigProvider(props) {
4168 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
4169 value: {
4170 mode: props.mode,
4171 attachmentsTypes: props.attachmentsTypes,
4172 onClose: props.onClose,
4173 onConnect: props.onConnect,
4174 onData: props.onData,
4175 onInsert: props.onInsert,
4176 onSelect: props.onSelect,
4177 onGenerate: props.onGenerate,
4178 currentContext: props.currentContext,
4179 hasPro: props.hasPro
4180 }
4181 }, props.children);
4182 };
4183 ConfigProvider.propTypes = {
4184 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
4185 children: _propTypes.default.node.isRequired,
4186 attachmentsTypes: _propTypes.default.object.isRequired,
4187 onClose: _propTypes.default.func.isRequired,
4188 onConnect: _propTypes.default.func.isRequired,
4189 onData: _propTypes.default.func.isRequired,
4190 onInsert: _propTypes.default.func.isRequired,
4191 onSelect: _propTypes.default.func.isRequired,
4192 onGenerate: _propTypes.default.func.isRequired,
4193 currentContext: _propTypes.default.object,
4194 hasPro: _propTypes.default.bool
4195 };
4196 var _default = exports["default"] = ConfigContext;
4197
4198 /***/ }),
4199
4200 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js":
4201 /*!*********************************************************************************!*\
4202 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js ***!
4203 \*********************************************************************************/
4204 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4205
4206 "use strict";
4207
4208
4209 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4210 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4211 Object.defineProperty(exports, "__esModule", ({
4212 value: true
4213 }));
4214 exports.useRemoteConfig = exports.RemoteConfigProvider = exports.CONFIG_KEYS = void 0;
4215 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4216 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4217 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4218 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4219 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4220 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4221 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); }
4222 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; }
4223 var RemoteConfigContext = _react.default.createContext({});
4224 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4225 return _react.default.useContext(RemoteConfigContext);
4226 };
4227 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4228 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4229 AUTH_TOKEN: 'jwt'
4230 };
4231 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4232 var _useState = (0, _react.useState)(false),
4233 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4234 isLoading = _useState2[0],
4235 setIsLoading = _useState2[1];
4236 var _useState3 = (0, _react.useState)(false),
4237 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4238 isLoaded = _useState4[0],
4239 setIsLoaded = _useState4[1];
4240 var _useState5 = (0, _react.useState)(false),
4241 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4242 isError = _useState6[0],
4243 setIsError = _useState6[1];
4244 var _useState7 = (0, _react.useState)({}),
4245 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4246 remoteConfig = _useState8[0],
4247 setRemoteConfig = _useState8[1];
4248 var fetchData = /*#__PURE__*/function () {
4249 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4250 var result;
4251 return _regenerator.default.wrap(function _callee$(_context) {
4252 while (1) switch (_context.prev = _context.next) {
4253 case 0:
4254 setIsLoading(true);
4255 setIsError(false);
4256 _context.prev = 2;
4257 _context.next = 5;
4258 return (0, _api.getRemoteConfig)().finally(function () {
4259 setIsLoaded(true);
4260 setIsLoading(false);
4261 });
4262 case 5:
4263 result = _context.sent;
4264 if (result.config) {
4265 _context.next = 8;
4266 break;
4267 }
4268 throw new Error('Invalid remote config');
4269 case 8:
4270 setRemoteConfig(result.config);
4271 _context.next = 16;
4272 break;
4273 case 11:
4274 _context.prev = 11;
4275 _context.t0 = _context["catch"](2);
4276 setIsError(true);
4277 setIsLoaded(true);
4278 setIsLoading(false);
4279 case 16:
4280 case "end":
4281 return _context.stop();
4282 }
4283 }, _callee, null, [[2, 11]]);
4284 }));
4285 return function fetchData() {
4286 return _ref.apply(this, arguments);
4287 };
4288 }();
4289 (0, _react.useEffect)(function () {
4290 window.addEventListener('elementor/connect/success', fetchData);
4291 return function () {
4292 window.removeEventListener('elementor/connect/success', fetchData);
4293 };
4294 }, []);
4295 if (!isLoaded && !isLoading) {
4296 fetchData();
4297 }
4298 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4299 value: {
4300 isLoading: isLoading,
4301 isLoaded: isLoaded,
4302 isError: isError,
4303 remoteConfig: remoteConfig
4304 }
4305 }, props.children);
4306 };
4307 RemoteConfigProvider.propTypes = {
4308 children: _propTypes.default.node.isRequired,
4309 onError: _propTypes.default.func.isRequired
4310 };
4311
4312 /***/ }),
4313
4314 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4315 /*!***********************************************************************************!*\
4316 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4317 \***********************************************************************************/
4318 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4319
4320 "use strict";
4321
4322
4323 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4324 Object.defineProperty(exports, "__esModule", ({
4325 value: true
4326 }));
4327 exports["default"] = void 0;
4328 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4329 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4330 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4331 return (0, _usePrompt.default)(function (requestBody, signal) {
4332 requestBody.variationType = type;
4333 return (0, _api.generateLayout)(requestBody, signal);
4334 }, initialValue);
4335 };
4336 var _default = exports["default"] = useLayoutPrompt;
4337
4338 /***/ }),
4339
4340 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4341 /*!********************************************************************************!*\
4342 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4343 \********************************************************************************/
4344 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4345
4346 "use strict";
4347
4348
4349 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4350 Object.defineProperty(exports, "__esModule", ({
4351 value: true
4352 }));
4353 exports["default"] = void 0;
4354 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4355 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4356 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4357 var _react = __webpack_require__(/*! react */ "react");
4358 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4359 var ERROR_INITIAL_VALUE = '';
4360 var useScreenshot = function useScreenshot(type, onData) {
4361 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4362 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4363 error = _useState2[0],
4364 setError = _useState2[1];
4365 var _useState3 = (0, _react.useState)(false),
4366 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4367 isLoading = _useState4[0],
4368 setIsLoading = _useState4[1];
4369 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4370 var generate = function generate(requestBody, signal) {
4371 setIsLoading(true);
4372 setError(ERROR_INITIAL_VALUE);
4373 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4374 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4375 var createdScreenshot;
4376 return _regenerator.default.wrap(function _callee$(_context) {
4377 while (1) switch (_context.prev = _context.next) {
4378 case 0:
4379 _context.next = 2;
4380 return onData(data.result);
4381 case 2:
4382 createdScreenshot = _context.sent;
4383 createdScreenshot.sendUsageData = function () {
4384 return layoutData.sendUsageData(data);
4385 };
4386 createdScreenshot.baseTemplateId = data.baseTemplateId;
4387 createdScreenshot.type = data.type;
4388 return _context.abrupt("return", createdScreenshot);
4389 case 7:
4390 case "end":
4391 return _context.stop();
4392 }
4393 }, _callee);
4394 }));
4395 return function (_x) {
4396 return _ref.apply(this, arguments);
4397 };
4398 }()).catch(function (err) {
4399 setError(err.extra_data ? err : err.message || err);
4400 throw err;
4401 }).finally(function () {
4402 return setIsLoading(false);
4403 });
4404 };
4405 return {
4406 generate: generate,
4407 error: error,
4408 isLoading: isLoading
4409 };
4410 };
4411 var _default = exports["default"] = useScreenshot;
4412
4413 /***/ }),
4414
4415 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4416 /*!*********************************************************************************!*\
4417 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4418 \*********************************************************************************/
4419 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4420
4421 "use strict";
4422
4423
4424 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4425 Object.defineProperty(exports, "__esModule", ({
4426 value: true
4427 }));
4428 exports["default"] = void 0;
4429 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4430 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4431 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4432 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4433 var _react = __webpack_require__(/*! react */ "react");
4434 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4435 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4436 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4437 var PENDING_VALUE = {
4438 isPending: true
4439 };
4440 var useScreenshots = function useScreenshots(_ref) {
4441 var onData = _ref.onData;
4442 var _useState = (0, _react.useState)([]),
4443 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4444 screenshots = _useState2[0],
4445 setScreenshots = _useState2[1];
4446
4447 /**
4448 * The ids for each request are:
4449 * - editorSessionId: a unique id for each editor opening
4450 * - sessionId: a unique id for each session. (open the AI builder)
4451 * - generateId: a unique id for each generate request. (prompt change)
4452 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4453 * - requestId: a unique id for each generate request.
4454 */
4455
4456 var _useConfig = (0, _config.useConfig)(),
4457 currentContext = _useConfig.currentContext;
4458 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4459 editorSessionId = _useRequestIds.editorSessionId,
4460 sessionId = _useRequestIds.sessionId,
4461 setRequest = _useRequestIds.setRequest,
4462 setBatch = _useRequestIds.setBatch,
4463 setGenerate = _useRequestIds.setGenerate;
4464 var generateIdRef = (0, _react.useRef)('');
4465 var batchId = setBatch();
4466 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4467 var screenshotsGroupCount = screenshotsData.length;
4468 var error = screenshotsData.every(function (s) {
4469 return s === null || s === void 0 ? void 0 : s.error;
4470 }) ? screenshotsData[0].error : '';
4471 var isLoading = screenshotsData.some(function (s) {
4472 return s === null || s === void 0 ? void 0 : s.isLoading;
4473 });
4474 var abortController = (0, _react.useRef)(null);
4475 var abort = function abort() {
4476 var _abortController$curr;
4477 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4478 };
4479 var createScreenshots = /*#__PURE__*/function () {
4480 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4481 var onGenerate, onError, promises, results, isAllFailed;
4482 return _regenerator.default.wrap(function _callee$(_context) {
4483 while (1) switch (_context.prev = _context.next) {
4484 case 0:
4485 abortController.current = new AbortController();
4486 onGenerate = function onGenerate(screenshot) {
4487 setScreenshots(function (prev) {
4488 var updatedData = (0, _toConsumableArray2.default)(prev);
4489 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4490 updatedData[pendingIndex] = screenshot;
4491 return updatedData;
4492 });
4493 return true;
4494 };
4495 onError = function onError() {
4496 setScreenshots(function (prev) {
4497 var updatedData = (0, _toConsumableArray2.default)(prev);
4498 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4499 updatedData[pendingIndex] = {
4500 isError: true
4501 };
4502 return updatedData;
4503 });
4504 return false;
4505 };
4506 promises = screenshotsData.map(function (_ref3) {
4507 var generate = _ref3.generate;
4508 var prevGeneratedIds = screenshots.map(function (screenshot) {
4509 return screenshot.baseTemplateId || '';
4510 });
4511 var requestBody = {
4512 prompt: prompt,
4513 prevGeneratedIds: prevGeneratedIds,
4514 currentContext: currentContext,
4515 ids: {
4516 editorSessionId: editorSessionId.current,
4517 sessionId: sessionId.current,
4518 generateId: generateIdRef.current,
4519 batchId: batchId.current,
4520 requestId: setRequest().current
4521 },
4522 attachments: attachments.map(function (_ref4) {
4523 var type = _ref4.type,
4524 content = _ref4.content,
4525 label = _ref4.label,
4526 source = _ref4.source;
4527 // Send only the data that is needed for the generation.
4528 return {
4529 type: type,
4530 content: content,
4531 label: label,
4532 source: source
4533 };
4534 })
4535 };
4536 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4537 });
4538 _context.next = 6;
4539 return Promise.all(promises);
4540 case 6:
4541 results = _context.sent;
4542 isAllFailed = results.every(function (value) {
4543 return false === value;
4544 });
4545 if (isAllFailed) {
4546 setScreenshots(function (prev) {
4547 var updatedData = (0, _toConsumableArray2.default)(prev);
4548 updatedData.splice(screenshotsGroupCount * -1);
4549 return updatedData;
4550 });
4551 }
4552 case 9:
4553 case "end":
4554 return _context.stop();
4555 }
4556 }, _callee);
4557 }));
4558 return function createScreenshots(_x, _x2) {
4559 return _ref2.apply(this, arguments);
4560 };
4561 }();
4562 var generate = function generate(prompt, attachments) {
4563 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4564 generateIdRef.current = setGenerate().current;
4565 setScreenshots(placeholders);
4566 createScreenshots(prompt, attachments);
4567 };
4568 var regenerate = function regenerate(prompt, attachments) {
4569 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4570 setScreenshots(function (prev) {
4571 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4572 });
4573 createScreenshots(prompt, attachments);
4574 };
4575 return {
4576 generate: generate,
4577 regenerate: regenerate,
4578 screenshots: screenshots,
4579 isLoading: isLoading,
4580 error: error,
4581 abort: abort
4582 };
4583 };
4584 var _default = exports["default"] = useScreenshots;
4585
4586 /***/ }),
4587
4588 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4589 /*!****************************************************************************!*\
4590 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4591 \****************************************************************************/
4592 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4593
4594 "use strict";
4595
4596
4597 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4598 Object.defineProperty(exports, "__esModule", ({
4599 value: true
4600 }));
4601 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4602 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4603 var _react = __webpack_require__(/*! react */ "react");
4604 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4605 var MAX_PAGES = exports.MAX_PAGES = 5;
4606 var useSlider = function useSlider() {
4607 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4608 _ref$slidesCount = _ref.slidesCount,
4609 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4610 _ref$slidesPerPage = _ref.slidesPerPage,
4611 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4612 _ref$gapPercentage = _ref.gapPercentage,
4613 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4614 var _useState = (0, _react.useState)(1),
4615 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4616 currentPage = _useState2[0],
4617 setCurrentPage = _useState2[1];
4618 var gapsCount = slidesPerPage - 1;
4619 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4620 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4621 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4622 (0, _react.useEffect)(function () {
4623 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4624 if (currentPage > 1 && currentPage > pagesCount) {
4625 setCurrentPage(pagesCount);
4626 }
4627 }, [pagesCount]);
4628 return {
4629 currentPage: currentPage,
4630 setCurrentPage: setCurrentPage,
4631 pagesCount: pagesCount,
4632 slidesPerPage: slidesPerPage,
4633 gapPercentage: gapPercentage,
4634 offsetXPercentage: offsetXPercentage,
4635 slideWidthPercentage: slideWidthPercentage
4636 };
4637 };
4638 var _default = exports["default"] = useSlider;
4639
4640 /***/ }),
4641
4642 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4643 /*!*****************************************************************!*\
4644 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4645 \*****************************************************************/
4646 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4647
4648 "use strict";
4649
4650
4651 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4652 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4653 Object.defineProperty(exports, "__esModule", ({
4654 value: true
4655 }));
4656 exports["default"] = void 0;
4657 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4658 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4659 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4660 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4661 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4662 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4663 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4664 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4665 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4666 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4667 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4668 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4669 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4670 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4671 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4672 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4673 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4674 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4675 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4676 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4677 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4678 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4679 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4680 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4681 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4682 var _excluded = ["children"];
4683 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); }
4684 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; }
4685 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4686 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4687
4688 /**
4689 * @typedef {Object} Attachment
4690 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4691 * @property {string} previewHTML - HTML content as a string, representing a preview.
4692 * @property {string} content - Actual content of the attachment as a string.
4693 * @property {string} label - Label for the attachment.
4694 */
4695
4696 var RegenerateButton = function RegenerateButton(props) {
4697 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4698 size: "small",
4699 color: "secondary",
4700 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4701 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4702 };
4703 var UseLayoutButton = function UseLayoutButton(props) {
4704 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4705 size: "small",
4706 variant: "contained"
4707 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4708 };
4709 UseLayoutButton.propTypes = {
4710 sx: _propTypes.default.object
4711 };
4712 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4713 if (isLoading || isPromptFormActive) {
4714 return true;
4715 }
4716 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4717 };
4718 var FormLayout = function FormLayout(_ref) {
4719 var _screenshots$selected, _screenshots$2;
4720 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4721 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4722 _ref$DialogContentPro = _ref.DialogContentProps,
4723 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4724 initialAttachments = _ref.attachments;
4725 var _useConfig = (0, _config.useConfig)(),
4726 attachmentsTypes = _useConfig.attachmentsTypes,
4727 onData = _useConfig.onData,
4728 onInsert = _useConfig.onInsert,
4729 onSelect = _useConfig.onSelect,
4730 onClose = _useConfig.onClose,
4731 onGenerate = _useConfig.onGenerate;
4732 var _useScreenshots = (0, _useScreenshots2.default)({
4733 onData: onData
4734 }),
4735 screenshots = _useScreenshots.screenshots,
4736 generate = _useScreenshots.generate,
4737 regenerate = _useScreenshots.regenerate,
4738 isLoading = _useScreenshots.isLoading,
4739 error = _useScreenshots.error,
4740 abort = _useScreenshots.abort;
4741 var screenshotOutlineOffset = '2px';
4742 var _useSlider = (0, _useSlider2.default)({
4743 slidesCount: screenshots.length
4744 }),
4745 currentPage = _useSlider.currentPage,
4746 setCurrentPage = _useSlider.setCurrentPage,
4747 pagesCount = _useSlider.pagesCount,
4748 gapPercentage = _useSlider.gapPercentage,
4749 slidesPerPage = _useSlider.slidesPerPage,
4750 offsetXPercentage = _useSlider.offsetXPercentage,
4751 slideWidthPercentage = _useSlider.slideWidthPercentage;
4752 var _useState = (0, _react.useState)(-1),
4753 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4754 selectedScreenshotIndex = _useState2[0],
4755 setSelectedScreenshotIndex = _useState2[1];
4756 var _useState3 = (0, _react.useState)(false),
4757 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4758 showUnsavedChangesAlert = _useState4[0],
4759 setShowUnsavedChangesAlert = _useState4[1];
4760 var _useState5 = (0, _react.useState)(true),
4761 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4762 isPromptEditable = _useState6[0],
4763 setIsPromptEditable = _useState6[1];
4764 var _useState7 = (0, _react.useState)([]),
4765 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4766 attachments = _useState8[0],
4767 setAttachments = _useState8[1];
4768 var _useState9 = (0, _react.useState)(false),
4769 _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
4770 shouldRenderWebApp = _useState10[0],
4771 setShouldRenderWebApp = _useState10[1];
4772 var _useState11 = (0, _react.useState)(false),
4773 _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
4774 isMinimized = _useState12[0],
4775 setIsMinimized = _useState12[1];
4776 var lastRun = (0, _react.useRef)(function () {});
4777 var promptInputRef = (0, _react.useRef)(null);
4778 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4779 var dialogContentChildren = DialogContentProps.children,
4780 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4781
4782 // When there are no screenshots the prompt field should be editable.
4783 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4784 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4785 var abortAndClose = function abortAndClose() {
4786 abort();
4787 onClose();
4788 };
4789 var onCloseIntent = function onCloseIntent() {
4790 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4791 if (hasUnsavedChanges) {
4792 return setShowUnsavedChangesAlert(true);
4793 }
4794 abortAndClose();
4795 };
4796 var handleGenerate = function handleGenerate(event, prompt) {
4797 event.preventDefault();
4798 if ('' === prompt.trim() && 0 === attachments.length) {
4799 return;
4800 }
4801 if ((0, _isURL.default)(prompt)) {
4802 setShouldRenderWebApp(true);
4803 return;
4804 }
4805 onGenerate();
4806 lastRun.current = function () {
4807 setSelectedScreenshotIndex(-1);
4808 generate(prompt, attachments);
4809 };
4810 lastRun.current();
4811 setIsPromptEditable(false);
4812 setCurrentPage(1);
4813 };
4814 var handleRegenerate = function handleRegenerate() {
4815 lastRun.current = function () {
4816 regenerate(promptInputRef.current.value, attachments);
4817 // Changing the current page to the next page number.
4818 setCurrentPage(pagesCount + 1);
4819 };
4820 lastRun.current();
4821 };
4822 var applyTemplate = function applyTemplate() {
4823 onInsert(selectedTemplate);
4824 screenshots[selectedScreenshotIndex].sendUsageData();
4825 abortAndClose();
4826 };
4827 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4828 return function () {
4829 if (isPromptFormActive) {
4830 return;
4831 }
4832 setSelectedScreenshotIndex(index);
4833 onSelect(template);
4834 };
4835 };
4836
4837 /**
4838 * @param {Attachment[]} items
4839 */
4840 var onAttach = function onAttach(items) {
4841 items.forEach(function (item) {
4842 if (!attachmentsTypes[item.type]) {
4843 throw new Error("Invalid attachment type: ".concat(item.type));
4844 }
4845 var typeConfig = attachmentsTypes[item.type];
4846 if (!item.previewHTML && typeConfig.previewGenerator) {
4847 typeConfig.previewGenerator(item.content).then(function (html) {
4848 item.previewHTML = html;
4849 setAttachments(function (prev) {
4850 // Replace the attachment with the updated one.
4851 return prev.map(function (attachment) {
4852 if (attachment.content === item.content) {
4853 return item;
4854 }
4855 return attachment;
4856 });
4857 });
4858 });
4859 }
4860 });
4861 setAttachments(items);
4862 setShouldRenderWebApp(false);
4863 setIsPromptEditable(true);
4864 };
4865 (0, _react.useEffect)(function () {
4866 var _screenshots$;
4867 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4868 if (isFirstTemplateExist) {
4869 onSelect(screenshots[0].template);
4870 setSelectedScreenshotIndex(0);
4871 }
4872 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4873 (0, _react.useEffect)(function () {
4874 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4875 onAttach(initialAttachments);
4876 }
4877 }, []);
4878 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4879 onClose: onCloseIntent
4880 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4881 onClose: onCloseIntent
4882 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4883 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4884 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4885 size: "small",
4886 "aria-label": "minimize",
4887 onClick: function onClick() {
4888 return setIsMinimized(function (prev) {
4889 return !prev;
4890 });
4891 }
4892 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4893 dividers: true
4894 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4895 in: !isMinimized
4896 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4897 sx: {
4898 pt: 2,
4899 px: 2,
4900 pb: 0
4901 }
4902 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4903 sx: {
4904 pt: 2,
4905 px: 2,
4906 pb: 0
4907 }
4908 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4909 error: error,
4910 onRetry: lastRun.current
4911 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4912 open: showUnsavedChangesAlert,
4913 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4914 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4915 onClose: abortAndClose,
4916 onCancel: function onCancel() {
4917 return setShowUnsavedChangesAlert(false);
4918 }
4919 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4920 type: _attachments.ATTACHMENT_TYPE_URL,
4921 url: promptInputRef.current.value,
4922 onAttach: onAttach,
4923 onClose: function onClose() {
4924 setShouldRenderWebApp(false);
4925 }
4926 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4927 shouldResetPrompt: shouldRenderWebApp,
4928 ref: promptInputRef,
4929 isActive: isPromptFormActive,
4930 isLoading: isLoading,
4931 showActions: screenshots.length > 0 || isLoading,
4932 attachmentsTypes: attachmentsTypes,
4933 attachments: attachments,
4934 onAttach: onAttach,
4935 onDetach: function onDetach(index) {
4936 setAttachments(function (prev) {
4937 var newAttachments = (0, _toConsumableArray2.default)(prev);
4938 newAttachments.splice(index, 1);
4939 return newAttachments;
4940 });
4941 setIsPromptEditable(true);
4942 },
4943 onSubmit: handleGenerate,
4944 onBack: function onBack() {
4945 return setIsPromptEditable(false);
4946 },
4947 onEdit: function onEdit() {
4948 return setIsPromptEditable(true);
4949 }
4950 }), (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, {
4951 sx: {
4952 p: 1.5
4953 }
4954 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4955 sx: {
4956 overflow: 'hidden',
4957 p: 0.5
4958 }
4959 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4960 sx: {
4961 display: 'flex',
4962 transition: 'all 0.4s ease',
4963 gap: "".concat(gapPercentage, "%"),
4964 transform: "translateX(".concat(offsetXPercentage, "%)")
4965 }
4966 }, screenshots.map(function (_ref2, index) {
4967 var screenshot = _ref2.screenshot,
4968 type = _ref2.type,
4969 template = _ref2.template,
4970 isError = _ref2.isError,
4971 isPending = _ref2.isPending;
4972 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4973 key: index,
4974 url: screenshot,
4975 type: type,
4976 disabled: isPromptFormActive,
4977 isPlaceholder: isError,
4978 isLoading: isPending,
4979 isSelected: selectedScreenshotIndex === index,
4980 onClick: handleScreenshotClick(index, template),
4981 outlineOffset: screenshotOutlineOffset,
4982 sx: {
4983 flex: "0 0 ".concat(slideWidthPercentage, "%")
4984 }
4985 });
4986 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4987 introductionKey: "ai-context-layout-promotion"
4988 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4989 sx: {
4990 pt: 0,
4991 px: 2,
4992 pb: 2
4993 },
4994 display: "grid",
4995 gridTemplateColumns: "repeat(3, 1fr)",
4996 justifyItems: "center"
4997 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4998 onClick: handleRegenerate,
4999 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
5000 sx: {
5001 justifySelf: 'start'
5002 }
5003 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
5004 page: currentPage,
5005 count: pagesCount,
5006 disabled: isPromptFormActive,
5007 onChange: function onChange(_, page) {
5008 return setCurrentPage(page);
5009 }
5010 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
5011 onClick: applyTemplate,
5012 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
5013 sx: {
5014 justifySelf: 'end',
5015 gridColumn: 3
5016 }
5017 }))))));
5018 };
5019 FormLayout.propTypes = {
5020 DialogHeaderProps: _propTypes.default.object,
5021 DialogContentProps: _propTypes.default.object,
5022 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5023 };
5024 var _default = exports["default"] = FormLayout;
5025
5026 /***/ }),
5027
5028 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5029 /*!************************************************************************************!*\
5030 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5031 \************************************************************************************/
5032 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5033
5034 "use strict";
5035
5036
5037 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5038 Object.defineProperty(exports, "__esModule", ({
5039 value: true
5040 }));
5041 exports["default"] = void 0;
5042 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5043 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5044 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5045 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5046 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5047 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5048 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5049 var _excluded = ["isLoading"];
5050 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5051 var EnhanceButton = function EnhanceButton(_ref) {
5052 var isLoading = _ref.isLoading,
5053 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5054 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5055 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5056 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5057 component: "span",
5058 sx: {
5059 cursor: props.disabled ? 'default' : 'pointer'
5060 }
5061 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5062 size: "small",
5063 color: "secondary"
5064 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5065 color: "secondary",
5066 size: 20
5067 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5068 fontSize: "small"
5069 }))));
5070 };
5071 EnhanceButton.propTypes = {
5072 disabled: _propTypes.default.bool,
5073 isLoading: _propTypes.default.bool
5074 };
5075 var _default = exports["default"] = EnhanceButton;
5076
5077 /***/ }),
5078
5079 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5080 /*!*************************************************************************************!*\
5081 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5082 \*************************************************************************************/
5083 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5084
5085 "use strict";
5086
5087
5088 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5089 Object.defineProperty(exports, "__esModule", ({
5090 value: true
5091 }));
5092 exports["default"] = void 0;
5093 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5094 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5095 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5096 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5097 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5098 var GenerateSubmit = function GenerateSubmit(props) {
5099 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5100 fullWidth: true,
5101 size: "medium",
5102 type: "submit",
5103 variant: "contained"
5104 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5105 };
5106 GenerateSubmit.propTypes = {
5107 children: _propTypes.default.node
5108 };
5109 var _default = exports["default"] = GenerateSubmit;
5110
5111 /***/ }),
5112
5113 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5114 /*!*****************************************************************!*\
5115 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5116 \*****************************************************************/
5117 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5118
5119 "use strict";
5120
5121
5122 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5123 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5124 Object.defineProperty(exports, "__esModule", ({
5125 value: true
5126 }));
5127 exports["default"] = void 0;
5128 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5129 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5130 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5131 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5132 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5133 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5134 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5135 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5136 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5137 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); }
5138 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; }
5139 var GetStarted = function GetStarted(_ref) {
5140 var onSuccess = _ref.onSuccess;
5141 var _useState = (0, _react.useState)(false),
5142 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5143 isTermsChecked = _useState2[0],
5144 setIsTermsChecked = _useState2[1];
5145 var onGetStartedClick = /*#__PURE__*/function () {
5146 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5147 return _regenerator.default.wrap(function _callee$(_context) {
5148 while (1) switch (_context.prev = _context.next) {
5149 case 0:
5150 _context.next = 2;
5151 return (0, _api.setGetStarted)();
5152 case 2:
5153 onSuccess();
5154 case 3:
5155 case "end":
5156 return _context.stop();
5157 }
5158 }, _callee);
5159 }));
5160 return function onGetStartedClick() {
5161 return _ref2.apply(this, arguments);
5162 };
5163 }();
5164 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5165 alignItems: "center",
5166 gap: 1.5
5167 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5168 sx: {
5169 color: 'text.primary',
5170 fontSize: '60px',
5171 mb: 1
5172 }
5173 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5174 variant: "h4",
5175 sx: {
5176 color: 'text.primary'
5177 }
5178 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5179 variant: "body2"
5180 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5181 direction: "row",
5182 gap: 1.5,
5183 alignItems: "flex-start"
5184 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5185 id: "e-ai-terms-approval",
5186 color: "secondary",
5187 checked: isTermsChecked,
5188 onClick: function onClick() {
5189 return setIsTermsChecked(function (prevState) {
5190 return !prevState;
5191 });
5192 }
5193 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5194 variant: "caption",
5195 sx: {
5196 maxWidth: 520
5197 },
5198 component: "label",
5199 htmlFor: "e-ai-terms-approval"
5200 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5201 href: "https://go.elementor.com/ai-terms/",
5202 target: "_blank",
5203 color: "info.main"
5204 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5205 href: "https://go.elementor.com/ai-privacy-policy/",
5206 target: "_blank",
5207 color: "info.main"
5208 }, (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, {
5209 disabled: !isTermsChecked,
5210 variant: "contained",
5211 onClick: onGetStartedClick,
5212 sx: {
5213 mt: 1,
5214 '&:hover': {
5215 color: 'primary.contrastText'
5216 }
5217 }
5218 }, (0, _i18n.__)('Get Started', 'elementor')));
5219 };
5220 GetStarted.propTypes = {
5221 onSuccess: _propTypes.default.func.isRequired
5222 };
5223 var _default = exports["default"] = GetStarted;
5224
5225 /***/ }),
5226
5227 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5228 /*!**********************************************************!*\
5229 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5230 \**********************************************************/
5231 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5232
5233 "use strict";
5234
5235
5236 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5237 Object.defineProperty(exports, "__esModule", ({
5238 value: true
5239 }));
5240 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5241 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5242 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5243 type: _propTypes.default.string,
5244 previewHTML: _propTypes.default.string,
5245 content: _propTypes.default.string,
5246 label: _propTypes.default.string,
5247 source: _propTypes.default.string
5248 });
5249 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5250 type: _propTypes.default.shape({
5251 promptPlaceholder: _propTypes.default.string,
5252 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5253 text: _propTypes.default.string.isRequired
5254 })),
5255 previewGenerator: _propTypes.default.func
5256 })
5257 });
5258
5259 /***/ }),
5260
5261 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5262 /*!******************************************************************!*\
5263 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5264 \******************************************************************/
5265 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5266
5267 "use strict";
5268
5269
5270 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5271 Object.defineProperty(exports, "__esModule", ({
5272 value: true
5273 }));
5274 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5275 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5276 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5277 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5278 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5279 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5280 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5281 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5282 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5283 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5284 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5285 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5286 var closePanel = exports.closePanel = function closePanel() {
5287 $e.run('panel/close');
5288 $e.components.get('panel').blockUserInteractions();
5289 };
5290 var openPanel = exports.openPanel = function openPanel() {
5291 $e.run('panel/open');
5292 $e.components.get('panel').unblockUserInteractions();
5293 };
5294 var onConnect = exports.onConnect = function onConnect(data) {
5295 elementorCommon.config.library_connect.is_connected = true;
5296 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5297 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5298 };
5299 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5300 var _elementor, _elementor$getPrefere;
5301 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';
5302 var isRTL = elementorCommon.config.isRTL;
5303 return {
5304 colorScheme: colorScheme,
5305 isRTL: isRTL
5306 };
5307 };
5308 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5309 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5310 }, {
5311 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5312 }, {
5313 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5314 }, {
5315 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5316 }, {
5317 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5318 }, {
5319 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5320 }, {
5321 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5322 }, {
5323 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5324 }, {
5325 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5326 }];
5327 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5328 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5329 }, {
5330 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5331 }, {
5332 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5333 }, {
5334 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5335 }, {
5336 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5337 }, {
5338 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5339 }];
5340 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5341 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5342 var _options$onRenderApp;
5343 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5344 parentContainer: null,
5345 mode: '',
5346 at: null,
5347 onClose: null,
5348 onGenerate: null,
5349 onInsert: null,
5350 onRenderApp: null,
5351 onSelect: null,
5352 attachments: []
5353 };
5354 closePanel();
5355 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5356 // Create the container at the "drag widget here" area position.
5357 at: options.at
5358 });
5359 var _getUiConfig = getUiConfig(),
5360 colorScheme = _getUiConfig.colorScheme,
5361 isRTL = _getUiConfig.isRTL;
5362 var rootElement = document.createElement('div');
5363 document.body.append(rootElement);
5364 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5365 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5366 isRTL: isRTL,
5367 colorScheme: colorScheme
5368 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5369 mode: options.mode,
5370 currentContext: {
5371 body: {
5372 backgroundColor: bodyStyle.backgroundColor,
5373 backgroundImage: bodyStyle.backgroundImage
5374 }
5375 },
5376 attachmentsTypes: {
5377 json: {
5378 promptSuggestions: VARIATIONS_PROMPTS,
5379 promptPlaceholder: PROMPT_PLACEHOLDER,
5380 previewGenerator: function () {
5381 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5382 var screenshot;
5383 return _regenerator.default.wrap(function _callee$(_context) {
5384 while (1) switch (_context.prev = _context.next) {
5385 case 0:
5386 _context.next = 2;
5387 return (0, _screenshot.takeScreenshot)(json);
5388 case 2:
5389 screenshot = _context.sent;
5390 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5391 case 4:
5392 case "end":
5393 return _context.stop();
5394 }
5395 }, _callee);
5396 }));
5397 function previewGenerator(_x) {
5398 return _previewGenerator.apply(this, arguments);
5399 }
5400 return previewGenerator;
5401 }()
5402 },
5403 url: {
5404 promptPlaceholder: PROMPT_PLACEHOLDER,
5405 promptSuggestions: WEB_BASED_PROMPTS
5406 }
5407 },
5408 attachments: options.attachments || [],
5409 onClose: function onClose() {
5410 var _options$onClose;
5411 previewContainer.destroy();
5412 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5413 unmount();
5414 rootElement.remove();
5415 openPanel();
5416 },
5417 onConnect: onConnect,
5418 onGenerate: function onGenerate() {
5419 var _options$onGenerate;
5420 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5421 previewContainer: previewContainer
5422 });
5423 },
5424 onData: (/*#__PURE__*/function () {
5425 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5426 var screenshot;
5427 return _regenerator.default.wrap(function _callee2$(_context2) {
5428 while (1) switch (_context2.prev = _context2.next) {
5429 case 0:
5430 _context2.next = 2;
5431 return (0, _screenshot.takeScreenshot)(template);
5432 case 2:
5433 screenshot = _context2.sent;
5434 return _context2.abrupt("return", {
5435 screenshot: screenshot,
5436 template: template
5437 });
5438 case 4:
5439 case "end":
5440 return _context2.stop();
5441 }
5442 }, _callee2);
5443 }));
5444 return function (_x2) {
5445 return _ref.apply(this, arguments);
5446 };
5447 }()),
5448 onSelect: function onSelect(template) {
5449 var _options$onSelect;
5450 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5451 previewContainer.setContent(template);
5452 },
5453 onInsert: options.onInsert,
5454 hasPro: elementor.helpers.hasPro()
5455 })), rootElement),
5456 unmount = _ReactUtils$render.unmount;
5457 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5458 previewContainer: previewContainer
5459 });
5460 };
5461 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5462 var parentContainer = _ref2.parentContainer,
5463 at = _ref2.at,
5464 template = _ref2.template,
5465 historyTitle = _ref2.historyTitle,
5466 _ref2$replace = _ref2.replace,
5467 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5468 var endHistoryLog = (0, _history.startHistoryLog)({
5469 type: 'import',
5470 title: historyTitle
5471 });
5472 if (replace) {
5473 $e.run('document/elements/delete', {
5474 container: parentContainer.children.at(at)
5475 });
5476 }
5477 $e.run('document/elements/create', {
5478 container: parentContainer,
5479 model: (0, _requestsIds.generateIds)(template),
5480 options: {
5481 at: at,
5482 edit: true
5483 }
5484 });
5485 endHistoryLog();
5486 };
5487
5488 /***/ }),
5489
5490 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5491 /*!*******************************************************!*\
5492 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5493 \*******************************************************/
5494 /***/ ((__unused_webpack_module, exports) => {
5495
5496 "use strict";
5497
5498
5499 Object.defineProperty(exports, "__esModule", ({
5500 value: true
5501 }));
5502 exports.startHistoryLog = startHistoryLog;
5503 exports.toggleHistory = toggleHistory;
5504 function toggleHistory(isActive) {
5505 elementor.documents.getCurrent().history.setActive(isActive);
5506 }
5507
5508 /**
5509 * @param {Object} options
5510 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5511 * @param { string } options.title
5512 *
5513 * @return {*}
5514 */
5515 function startHistoryLog(_ref) {
5516 var type = _ref.type,
5517 title = _ref.title;
5518 var id = $e.internal('document/history/start-log', {
5519 type: type,
5520 title: title
5521 });
5522 return function () {
5523 return $e.internal('document/history/end-log', {
5524 id: id
5525 });
5526 };
5527 }
5528
5529 /***/ }),
5530
5531 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5532 /*!*****************************************************************!*\
5533 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5534 \*****************************************************************/
5535 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5536
5537 "use strict";
5538
5539
5540 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5541 Object.defineProperty(exports, "__esModule", ({
5542 value: true
5543 }));
5544 exports.createPreviewContainer = createPreviewContainer;
5545 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5546 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5547 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5548 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; }
5549 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; }
5550 /**
5551 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5552 */
5553
5554 var PREFIX = 'e-ai-preview-container';
5555 var CLASS_HIDDEN = PREFIX + '--hidden';
5556 var CLASS_IDLE = PREFIX + '--idle';
5557
5558 /**
5559 * @param {Container} parentContainer
5560 * @param {{}} containerOptions
5561 * @return {{init, setContent, reset, destroy}}
5562 */
5563
5564 function createPreviewContainer(parentContainer) {
5565 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5566 var createdContainers = new Map();
5567 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5568 function init() {
5569 showContainer(idleContainer);
5570 }
5571 function getAllContainers() {
5572 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5573 }
5574 function reset() {
5575 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5576 createdContainers.clear();
5577 showContainer(idleContainer);
5578 }
5579 function setContent(template) {
5580 if (!template) {
5581 return;
5582 }
5583 hideContainers(getAllContainers());
5584 if (!createdContainers.has(template)) {
5585 var newContainer = createContainer(parentContainer, template, containerOptions);
5586 createdContainers.set(template, newContainer);
5587 }
5588 showContainer(createdContainers.get(template));
5589 }
5590 function destroy() {
5591 deleteContainers(getAllContainers());
5592 createdContainers.clear();
5593 }
5594 return {
5595 init: init,
5596 reset: reset,
5597 setContent: setContent,
5598 destroy: destroy
5599 };
5600 }
5601
5602 /**
5603 * @param {Container} parentContainer
5604 * @param {{}} model
5605 * @param {{}} options
5606 * @return {*}
5607 */
5608 function createContainer(parentContainer, model) {
5609 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5610 (0, _history.toggleHistory)(false);
5611 var container = $e.run('document/elements/create', {
5612 container: parentContainer,
5613 model: _objectSpread(_objectSpread({}, model), {}, {
5614 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5615 }),
5616 options: _objectSpread(_objectSpread({}, options), {}, {
5617 edit: false
5618 })
5619 });
5620 (0, _history.toggleHistory)(true);
5621 container.view.$el.addClass(CLASS_HIDDEN);
5622 return container;
5623 }
5624
5625 /**
5626 * @param {Container} parentContainer
5627 * @param {{}} containerOptions
5628 * @return {*}
5629 */
5630 function createIdleContainer(parentContainer) {
5631 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5632 // Create an empty container that'll be used of UI purposes.
5633 var container = createContainer(parentContainer, {
5634 elType: 'container'
5635 }, containerOptions);
5636 container.view.$el.addClass(CLASS_IDLE);
5637 return container;
5638 }
5639 function hideContainers(containers) {
5640 containers.forEach(function (container) {
5641 container.view.$el.addClass(CLASS_HIDDEN);
5642 });
5643 }
5644 function showContainer(container) {
5645 container.view.$el.removeClass(CLASS_HIDDEN);
5646
5647 // Delay the scroll to avoid UI jumps when toggling between containers.
5648 setTimeout(function () {
5649 container.view.$el[0].scrollIntoView({
5650 behavior: 'smooth',
5651 block: 'start'
5652 });
5653 });
5654 }
5655 function deleteContainers(containers) {
5656 (0, _history.toggleHistory)(false);
5657 $e.run('document/elements/delete', {
5658 containers: containers
5659 });
5660 (0, _history.toggleHistory)(true);
5661 }
5662
5663 /***/ }),
5664
5665 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5666 /*!**********************************************************!*\
5667 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5668 \**********************************************************/
5669 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5670
5671 "use strict";
5672
5673
5674 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5675 Object.defineProperty(exports, "__esModule", ({
5676 value: true
5677 }));
5678 exports.takeScreenshot = void 0;
5679 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5680 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5681 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5682 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5683 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5684 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5685 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5686 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5687 var hiddenWrapper, container, screenshot;
5688 return _regenerator.default.wrap(function _callee$(_context) {
5689 while (1) switch (_context.prev = _context.next) {
5690 case 0:
5691 if (template) {
5692 _context.next = 2;
5693 break;
5694 }
5695 return _context.abrupt("return", '');
5696 case 2:
5697 // Disable history so the Editor won't show our hidden container as a user action.
5698 (0, _history.toggleHistory)(false);
5699 hiddenWrapper = createHiddenWrapper();
5700 container = createContainer(template);
5701 wrapContainer(container, hiddenWrapper);
5702 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5703
5704 // Wait for the container to render.
5705 _context.next = 9;
5706 return waitForContainer(container.id);
5707 case 9:
5708 if (!template.elements.length) {
5709 _context.next = 12;
5710 break;
5711 }
5712 _context.next = 12;
5713 return Promise.all(template.elements.map(function (child) {
5714 return waitForContainer(child.id);
5715 }));
5716 case 12:
5717 _context.prev = 12;
5718 _context.next = 15;
5719 return screenshotNode(container.view.$el[0]);
5720 case 15:
5721 screenshot = _context.sent;
5722 _context.next = 21;
5723 break;
5724 case 18:
5725 _context.prev = 18;
5726 _context.t0 = _context["catch"](12);
5727 // Return an empty image url if the screenshot failed.
5728 screenshot = '';
5729 case 21:
5730 deleteContainer(container);
5731 hiddenWrapper.remove();
5732 (0, _history.toggleHistory)(true);
5733 return _context.abrupt("return", screenshot);
5734 case 25:
5735 case "end":
5736 return _context.stop();
5737 }
5738 }, _callee, null, [[12, 18]]);
5739 }));
5740 return function takeScreenshot(_x) {
5741 return _ref.apply(this, arguments);
5742 };
5743 }();
5744 function screenshotNode(node) {
5745 return toWebp(node, {
5746 quality: 0.01,
5747 // Transparent 1x1 pixel.
5748 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5749 });
5750 }
5751 function toWebp(_x2) {
5752 return _toWebp.apply(this, arguments);
5753 }
5754 function _toWebp() {
5755 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5756 var _options$quality;
5757 var options,
5758 canvas,
5759 _args3 = arguments;
5760 return _regenerator.default.wrap(function _callee3$(_context3) {
5761 while (1) switch (_context3.prev = _context3.next) {
5762 case 0:
5763 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5764 _context3.next = 3;
5765 return (0, _htmlToImage.toCanvas)(node, options);
5766 case 3:
5767 canvas = _context3.sent;
5768 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5769 case 5:
5770 case "end":
5771 return _context3.stop();
5772 }
5773 }, _callee3);
5774 }));
5775 return _toWebp.apply(this, arguments);
5776 }
5777 function createHiddenWrapper() {
5778 var wrapper = document.createElement('div');
5779 wrapper.style.position = 'fixed';
5780 wrapper.style.opacity = '0';
5781 wrapper.style.inset = '0';
5782 return wrapper;
5783 }
5784 function createContainer(template) {
5785 var model = (0, _requestsIds.generateIds)(template);
5786
5787 // Set a custom ID, so it can be used later on in the backend.
5788 model.id = "e-ai-screenshot-container-".concat(model.id);
5789 return $e.run('document/elements/create', {
5790 container: elementor.getPreviewContainer(),
5791 model: model,
5792 options: {
5793 edit: false
5794 }
5795 });
5796 }
5797 function deleteContainer(container) {
5798 return $e.run('document/elements/delete', {
5799 container: container
5800 });
5801 }
5802 function waitForContainer(id) {
5803 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5804 var timeoutPromise = sleep(timeout);
5805 var waitPromise = new Promise(function (resolve) {
5806 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5807 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5808 var images;
5809 return _regenerator.default.wrap(function _callee2$(_context2) {
5810 while (1) switch (_context2.prev = _context2.next) {
5811 case 0:
5812 if (!($element.data('id') === id)) {
5813 _context2.next = 5;
5814 break;
5815 }
5816 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5817 _context2.next = 4;
5818 return Promise.all(images.map(waitForImage));
5819 case 4:
5820 resolve();
5821 case 5:
5822 case "end":
5823 return _context2.stop();
5824 }
5825 }, _callee2);
5826 }));
5827 return function (_x3) {
5828 return _ref2.apply(this, arguments);
5829 };
5830 }());
5831 });
5832 return Promise.any([timeoutPromise, waitPromise]);
5833 }
5834 function waitForImage(image) {
5835 if (image.complete) {
5836 return Promise.resolve();
5837 }
5838 return new Promise(function (resolve) {
5839 image.addEventListener('load', resolve);
5840 image.addEventListener('error', function () {
5841 // Remove the image to make sure it won't break the screenshot.
5842 image.remove();
5843 resolve();
5844 });
5845 });
5846 }
5847 function sleep(ms) {
5848 return new Promise(function (resolve) {
5849 return setTimeout(resolve, ms);
5850 });
5851 }
5852 function wrapContainer(container, wrapper) {
5853 var el = container.view.$el[0];
5854 el.parentNode.insertBefore(wrapper, el);
5855 wrapper.appendChild(el);
5856 }
5857
5858 /***/ }),
5859
5860 /***/ "../node_modules/html-to-image/es/apply-style.js":
5861 /*!*******************************************************!*\
5862 !*** ../node_modules/html-to-image/es/apply-style.js ***!
5863 \*******************************************************/
5864 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5865
5866 "use strict";
5867 __webpack_require__.r(__webpack_exports__);
5868 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5869 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
5870 /* harmony export */ });
5871 function applyStyle(node, options) {
5872 const { style } = node;
5873 if (options.backgroundColor) {
5874 style.backgroundColor = options.backgroundColor;
5875 }
5876 if (options.width) {
5877 style.width = `${options.width}px`;
5878 }
5879 if (options.height) {
5880 style.height = `${options.height}px`;
5881 }
5882 const manual = options.style;
5883 if (manual != null) {
5884 Object.keys(manual).forEach((key) => {
5885 style[key] = manual[key];
5886 });
5887 }
5888 return node;
5889 }
5890 //# sourceMappingURL=apply-style.js.map
5891
5892 /***/ }),
5893
5894 /***/ "../node_modules/html-to-image/es/clone-node.js":
5895 /*!******************************************************!*\
5896 !*** ../node_modules/html-to-image/es/clone-node.js ***!
5897 \******************************************************/
5898 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5899
5900 "use strict";
5901 __webpack_require__.r(__webpack_exports__);
5902 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5903 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
5904 /* harmony export */ });
5905 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
5906 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
5907 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
5908 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
5909
5910
5911
5912
5913 async function cloneCanvasElement(canvas) {
5914 const dataURL = canvas.toDataURL();
5915 if (dataURL === 'data:,') {
5916 return canvas.cloneNode(false);
5917 }
5918 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5919 }
5920 async function cloneVideoElement(video, options) {
5921 if (video.currentSrc) {
5922 const canvas = document.createElement('canvas');
5923 const ctx = canvas.getContext('2d');
5924 canvas.width = video.clientWidth;
5925 canvas.height = video.clientHeight;
5926 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
5927 const dataURL = canvas.toDataURL();
5928 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5929 }
5930 const poster = video.poster;
5931 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
5932 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
5933 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
5934 }
5935 async function cloneIFrameElement(iframe) {
5936 var _a;
5937 try {
5938 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
5939 return (await cloneNode(iframe.contentDocument.body, {}, true));
5940 }
5941 }
5942 catch (_b) {
5943 // Failed to clone iframe
5944 }
5945 return iframe.cloneNode(false);
5946 }
5947 async function cloneSingleNode(node, options) {
5948 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
5949 return cloneCanvasElement(node);
5950 }
5951 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
5952 return cloneVideoElement(node, options);
5953 }
5954 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
5955 return cloneIFrameElement(node);
5956 }
5957 return node.cloneNode(false);
5958 }
5959 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
5960 async function cloneChildren(nativeNode, clonedNode, options) {
5961 var _a, _b;
5962 let children = [];
5963 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
5964 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
5965 }
5966 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
5967 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
5968 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
5969 }
5970 else {
5971 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
5972 }
5973 if (children.length === 0 ||
5974 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
5975 return clonedNode;
5976 }
5977 await children.reduce((deferred, child) => deferred
5978 .then(() => cloneNode(child, options))
5979 .then((clonedChild) => {
5980 if (clonedChild) {
5981 clonedNode.appendChild(clonedChild);
5982 }
5983 }), Promise.resolve());
5984 return clonedNode;
5985 }
5986 function cloneCSSStyle(nativeNode, clonedNode) {
5987 const targetStyle = clonedNode.style;
5988 if (!targetStyle) {
5989 return;
5990 }
5991 const sourceStyle = window.getComputedStyle(nativeNode);
5992 if (sourceStyle.cssText) {
5993 targetStyle.cssText = sourceStyle.cssText;
5994 targetStyle.transformOrigin = sourceStyle.transformOrigin;
5995 }
5996 else {
5997 (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(sourceStyle).forEach((name) => {
5998 let value = sourceStyle.getPropertyValue(name);
5999 if (name === 'font-size' && value.endsWith('px')) {
6000 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6001 value = `${reducedFont}px`;
6002 }
6003 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6004 name === 'display' &&
6005 value === 'inline') {
6006 value = 'block';
6007 }
6008 if (name === 'd' && clonedNode.getAttribute('d')) {
6009 value = `path(${clonedNode.getAttribute('d')})`;
6010 }
6011 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6012 });
6013 }
6014 }
6015 function cloneInputValue(nativeNode, clonedNode) {
6016 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6017 clonedNode.innerHTML = nativeNode.value;
6018 }
6019 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6020 clonedNode.setAttribute('value', nativeNode.value);
6021 }
6022 }
6023 function cloneSelectValue(nativeNode, clonedNode) {
6024 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6025 const clonedSelect = clonedNode;
6026 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6027 if (selectedOption) {
6028 selectedOption.setAttribute('selected', '');
6029 }
6030 }
6031 }
6032 function decorate(nativeNode, clonedNode) {
6033 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6034 cloneCSSStyle(nativeNode, clonedNode);
6035 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode);
6036 cloneInputValue(nativeNode, clonedNode);
6037 cloneSelectValue(nativeNode, clonedNode);
6038 }
6039 return clonedNode;
6040 }
6041 async function ensureSVGSymbols(clone, options) {
6042 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6043 if (uses.length === 0) {
6044 return clone;
6045 }
6046 const processedDefs = {};
6047 for (let i = 0; i < uses.length; i++) {
6048 const use = uses[i];
6049 const id = use.getAttribute('xlink:href');
6050 if (id) {
6051 const exist = clone.querySelector(id);
6052 const definition = document.querySelector(id);
6053 if (!exist && definition && !processedDefs[id]) {
6054 // eslint-disable-next-line no-await-in-loop
6055 processedDefs[id] = (await cloneNode(definition, options, true));
6056 }
6057 }
6058 }
6059 const nodes = Object.values(processedDefs);
6060 if (nodes.length) {
6061 const ns = 'http://www.w3.org/1999/xhtml';
6062 const svg = document.createElementNS(ns, 'svg');
6063 svg.setAttribute('xmlns', ns);
6064 svg.style.position = 'absolute';
6065 svg.style.width = '0';
6066 svg.style.height = '0';
6067 svg.style.overflow = 'hidden';
6068 svg.style.display = 'none';
6069 const defs = document.createElementNS(ns, 'defs');
6070 svg.appendChild(defs);
6071 for (let i = 0; i < nodes.length; i++) {
6072 defs.appendChild(nodes[i]);
6073 }
6074 clone.appendChild(svg);
6075 }
6076 return clone;
6077 }
6078 async function cloneNode(node, options, isRoot) {
6079 if (!isRoot && options.filter && !options.filter(node)) {
6080 return null;
6081 }
6082 return Promise.resolve(node)
6083 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6084 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6085 .then((clonedNode) => decorate(node, clonedNode))
6086 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6087 }
6088 //# sourceMappingURL=clone-node.js.map
6089
6090 /***/ }),
6091
6092 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6093 /*!*********************************************************!*\
6094 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6095 \*********************************************************/
6096 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6097
6098 "use strict";
6099 __webpack_require__.r(__webpack_exports__);
6100 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6101 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6102 /* harmony export */ });
6103 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6104
6105 function formatCSSText(style) {
6106 const content = style.getPropertyValue('content');
6107 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6108 }
6109 function formatCSSProperties(style) {
6110 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(style)
6111 .map((name) => {
6112 const value = style.getPropertyValue(name);
6113 const priority = style.getPropertyPriority(name);
6114 return `${name}: ${value}${priority ? ' !important' : ''};`;
6115 })
6116 .join(' ');
6117 }
6118 function getPseudoElementStyle(className, pseudo, style) {
6119 const selector = `.${className}:${pseudo}`;
6120 const cssText = style.cssText
6121 ? formatCSSText(style)
6122 : formatCSSProperties(style);
6123 return document.createTextNode(`${selector}{${cssText}}`);
6124 }
6125 function clonePseudoElement(nativeNode, clonedNode, pseudo) {
6126 const style = window.getComputedStyle(nativeNode, pseudo);
6127 const content = style.getPropertyValue('content');
6128 if (content === '' || content === 'none') {
6129 return;
6130 }
6131 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6132 try {
6133 clonedNode.className = `${clonedNode.className} ${className}`;
6134 }
6135 catch (err) {
6136 return;
6137 }
6138 const styleElement = document.createElement('style');
6139 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style));
6140 clonedNode.appendChild(styleElement);
6141 }
6142 function clonePseudoElements(nativeNode, clonedNode) {
6143 clonePseudoElement(nativeNode, clonedNode, ':before');
6144 clonePseudoElement(nativeNode, clonedNode, ':after');
6145 }
6146 //# sourceMappingURL=clone-pseudos.js.map
6147
6148 /***/ }),
6149
6150 /***/ "../node_modules/html-to-image/es/dataurl.js":
6151 /*!***************************************************!*\
6152 !*** ../node_modules/html-to-image/es/dataurl.js ***!
6153 \***************************************************/
6154 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6155
6156 "use strict";
6157 __webpack_require__.r(__webpack_exports__);
6158 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6159 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
6160 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
6161 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
6162 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
6163 /* harmony export */ });
6164 function getContentFromDataUrl(dataURL) {
6165 return dataURL.split(/,/)[1];
6166 }
6167 function isDataUrl(url) {
6168 return url.search(/^(data:)/) !== -1;
6169 }
6170 function makeDataUrl(content, mimeType) {
6171 return `data:${mimeType};base64,${content}`;
6172 }
6173 async function fetchAsDataURL(url, init, process) {
6174 const res = await fetch(url, init);
6175 if (res.status === 404) {
6176 throw new Error(`Resource "${res.url}" not found`);
6177 }
6178 const blob = await res.blob();
6179 return new Promise((resolve, reject) => {
6180 const reader = new FileReader();
6181 reader.onerror = reject;
6182 reader.onloadend = () => {
6183 try {
6184 resolve(process({ res, result: reader.result }));
6185 }
6186 catch (error) {
6187 reject(error);
6188 }
6189 };
6190 reader.readAsDataURL(blob);
6191 });
6192 }
6193 const cache = {};
6194 function getCacheKey(url, contentType, includeQueryParams) {
6195 let key = url.replace(/\?.*/, '');
6196 if (includeQueryParams) {
6197 key = url;
6198 }
6199 // font resource
6200 if (/ttf|otf|eot|woff2?/i.test(key)) {
6201 key = key.replace(/.*\//, '');
6202 }
6203 return contentType ? `[${contentType}]${key}` : key;
6204 }
6205 async function resourceToDataURL(resourceUrl, contentType, options) {
6206 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
6207 if (cache[cacheKey] != null) {
6208 return cache[cacheKey];
6209 }
6210 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
6211 if (options.cacheBust) {
6212 // eslint-disable-next-line no-param-reassign
6213 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
6214 }
6215 let dataURL;
6216 try {
6217 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
6218 if (!contentType) {
6219 // eslint-disable-next-line no-param-reassign
6220 contentType = res.headers.get('Content-Type') || '';
6221 }
6222 return getContentFromDataUrl(result);
6223 });
6224 dataURL = makeDataUrl(content, contentType);
6225 }
6226 catch (error) {
6227 dataURL = options.imagePlaceholder || '';
6228 let msg = `Failed to fetch resource: ${resourceUrl}`;
6229 if (error) {
6230 msg = typeof error === 'string' ? error : error.message;
6231 }
6232 if (msg) {
6233 console.warn(msg);
6234 }
6235 }
6236 cache[cacheKey] = dataURL;
6237 return dataURL;
6238 }
6239 //# sourceMappingURL=dataurl.js.map
6240
6241 /***/ }),
6242
6243 /***/ "../node_modules/html-to-image/es/embed-images.js":
6244 /*!********************************************************!*\
6245 !*** ../node_modules/html-to-image/es/embed-images.js ***!
6246 \********************************************************/
6247 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6248
6249 "use strict";
6250 __webpack_require__.r(__webpack_exports__);
6251 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6252 /* harmony export */ embedImages: () => (/* binding */ embedImages)
6253 /* harmony export */ });
6254 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
6255 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6256 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6257 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6258
6259
6260
6261
6262 async function embedProp(propName, node, options) {
6263 var _a;
6264 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
6265 if (propValue) {
6266 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
6267 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
6268 return true;
6269 }
6270 return false;
6271 }
6272 async function embedBackground(clonedNode, options) {
6273 if (!(await embedProp('background', clonedNode, options))) {
6274 await embedProp('background-image', clonedNode, options);
6275 }
6276 if (!(await embedProp('mask', clonedNode, options))) {
6277 await embedProp('mask-image', clonedNode, options);
6278 }
6279 }
6280 async function embedImageNode(clonedNode, options) {
6281 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
6282 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
6283 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
6284 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
6285 return;
6286 }
6287 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
6288 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
6289 await new Promise((resolve, reject) => {
6290 clonedNode.onload = resolve;
6291 clonedNode.onerror = reject;
6292 const image = clonedNode;
6293 if (image.decode) {
6294 image.decode = resolve;
6295 }
6296 if (image.loading === 'lazy') {
6297 image.loading = 'eager';
6298 }
6299 if (isImageElement) {
6300 clonedNode.srcset = '';
6301 clonedNode.src = dataURL;
6302 }
6303 else {
6304 clonedNode.href.baseVal = dataURL;
6305 }
6306 });
6307 }
6308 async function embedChildren(clonedNode, options) {
6309 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
6310 const deferreds = children.map((child) => embedImages(child, options));
6311 await Promise.all(deferreds).then(() => clonedNode);
6312 }
6313 async function embedImages(clonedNode, options) {
6314 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6315 await embedBackground(clonedNode, options);
6316 await embedImageNode(clonedNode, options);
6317 await embedChildren(clonedNode, options);
6318 }
6319 }
6320 //# sourceMappingURL=embed-images.js.map
6321
6322 /***/ }),
6323
6324 /***/ "../node_modules/html-to-image/es/embed-resources.js":
6325 /*!***********************************************************!*\
6326 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
6327 \***********************************************************/
6328 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6329
6330 "use strict";
6331 __webpack_require__.r(__webpack_exports__);
6332 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6333 /* harmony export */ embed: () => (/* binding */ embed),
6334 /* harmony export */ embedResources: () => (/* binding */ embedResources),
6335 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
6336 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
6337 /* harmony export */ });
6338 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6339 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6340 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6341
6342
6343
6344 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
6345 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
6346 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
6347 function toRegex(url) {
6348 // eslint-disable-next-line no-useless-escape
6349 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
6350 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
6351 }
6352 function parseURLs(cssText) {
6353 const urls = [];
6354 cssText.replace(URL_REGEX, (raw, quotation, url) => {
6355 urls.push(url);
6356 return raw;
6357 });
6358 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
6359 }
6360 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
6361 try {
6362 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
6363 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
6364 let dataURL;
6365 if (getContentFromUrl) {
6366 const content = await getContentFromUrl(resolvedURL);
6367 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
6368 }
6369 else {
6370 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
6371 }
6372 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
6373 }
6374 catch (error) {
6375 // pass
6376 }
6377 return cssText;
6378 }
6379 function filterPreferredFontFormat(str, { preferredFontFormat }) {
6380 return !preferredFontFormat
6381 ? str
6382 : str.replace(FONT_SRC_REGEX, (match) => {
6383 // eslint-disable-next-line no-constant-condition
6384 while (true) {
6385 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
6386 if (!format) {
6387 return '';
6388 }
6389 if (format === preferredFontFormat) {
6390 return `src: ${src};`;
6391 }
6392 }
6393 });
6394 }
6395 function shouldEmbed(url) {
6396 return url.search(URL_REGEX) !== -1;
6397 }
6398 async function embedResources(cssText, baseUrl, options) {
6399 if (!shouldEmbed(cssText)) {
6400 return cssText;
6401 }
6402 const filteredCSSText = filterPreferredFontFormat(cssText, options);
6403 const urls = parseURLs(filteredCSSText);
6404 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
6405 }
6406 //# sourceMappingURL=embed-resources.js.map
6407
6408 /***/ }),
6409
6410 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
6411 /*!**********************************************************!*\
6412 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
6413 \**********************************************************/
6414 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6415
6416 "use strict";
6417 __webpack_require__.r(__webpack_exports__);
6418 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6419 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
6420 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
6421 /* harmony export */ });
6422 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6423 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6424 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
6425
6426
6427
6428 const cssFetchCache = {};
6429 async function fetchCSS(url) {
6430 let cache = cssFetchCache[url];
6431 if (cache != null) {
6432 return cache;
6433 }
6434 const res = await fetch(url);
6435 const cssText = await res.text();
6436 cache = { url, cssText };
6437 cssFetchCache[url] = cache;
6438 return cache;
6439 }
6440 async function embedFonts(data, options) {
6441 let cssText = data.cssText;
6442 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
6443 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
6444 const loadFonts = fontLocs.map(async (loc) => {
6445 let url = loc.replace(regexUrl, '$1');
6446 if (!url.startsWith('https://')) {
6447 url = new URL(url, data.url).href;
6448 }
6449 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
6450 cssText = cssText.replace(loc, `url(${result})`);
6451 return [loc, result];
6452 });
6453 });
6454 return Promise.all(loadFonts).then(() => cssText);
6455 }
6456 function parseCSS(source) {
6457 if (source == null) {
6458 return [];
6459 }
6460 const result = [];
6461 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
6462 // strip out comments
6463 let cssText = source.replace(commentsRegex, '');
6464 // eslint-disable-next-line prefer-regex-literals
6465 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
6466 // eslint-disable-next-line no-constant-condition
6467 while (true) {
6468 const matches = keyframesRegex.exec(cssText);
6469 if (matches === null) {
6470 break;
6471 }
6472 result.push(matches[0]);
6473 }
6474 cssText = cssText.replace(keyframesRegex, '');
6475 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
6476 // to match css & media queries together
6477 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
6478 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
6479 // unified regex
6480 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
6481 // eslint-disable-next-line no-constant-condition
6482 while (true) {
6483 let matches = importRegex.exec(cssText);
6484 if (matches === null) {
6485 matches = unifiedRegex.exec(cssText);
6486 if (matches === null) {
6487 break;
6488 }
6489 else {
6490 importRegex.lastIndex = unifiedRegex.lastIndex;
6491 }
6492 }
6493 else {
6494 unifiedRegex.lastIndex = importRegex.lastIndex;
6495 }
6496 result.push(matches[0]);
6497 }
6498 return result;
6499 }
6500 async function getCSSRules(styleSheets, options) {
6501 const ret = [];
6502 const deferreds = [];
6503 // First loop inlines imports
6504 styleSheets.forEach((sheet) => {
6505 if ('cssRules' in sheet) {
6506 try {
6507 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
6508 if (item.type === CSSRule.IMPORT_RULE) {
6509 let importIndex = index + 1;
6510 const url = item.href;
6511 const deferred = fetchCSS(url)
6512 .then((metadata) => embedFonts(metadata, options))
6513 .then((cssText) => parseCSS(cssText).forEach((rule) => {
6514 try {
6515 sheet.insertRule(rule, rule.startsWith('@import')
6516 ? (importIndex += 1)
6517 : sheet.cssRules.length);
6518 }
6519 catch (error) {
6520 console.error('Error inserting rule from remote css', {
6521 rule,
6522 error,
6523 });
6524 }
6525 }))
6526 .catch((e) => {
6527 console.error('Error loading remote css', e.toString());
6528 });
6529 deferreds.push(deferred);
6530 }
6531 });
6532 }
6533 catch (e) {
6534 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
6535 if (sheet.href != null) {
6536 deferreds.push(fetchCSS(sheet.href)
6537 .then((metadata) => embedFonts(metadata, options))
6538 .then((cssText) => parseCSS(cssText).forEach((rule) => {
6539 inline.insertRule(rule, sheet.cssRules.length);
6540 }))
6541 .catch((err) => {
6542 console.error('Error loading remote stylesheet', err);
6543 }));
6544 }
6545 console.error('Error inlining remote css file', e);
6546 }
6547 }
6548 });
6549 return Promise.all(deferreds).then(() => {
6550 // Second loop parses rules
6551 styleSheets.forEach((sheet) => {
6552 if ('cssRules' in sheet) {
6553 try {
6554 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
6555 ret.push(item);
6556 });
6557 }
6558 catch (e) {
6559 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
6560 }
6561 }
6562 });
6563 return ret;
6564 });
6565 }
6566 function getWebFontRules(cssRules) {
6567 return cssRules
6568 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
6569 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
6570 }
6571 async function parseWebFontRules(node, options) {
6572 if (node.ownerDocument == null) {
6573 throw new Error('Provided element is not within a Document');
6574 }
6575 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
6576 const cssRules = await getCSSRules(styleSheets, options);
6577 return getWebFontRules(cssRules);
6578 }
6579 async function getWebFontCSS(node, options) {
6580 const rules = await parseWebFontRules(node, options);
6581 const cssTexts = await Promise.all(rules.map((rule) => {
6582 const baseUrl = rule.parentStyleSheet ? rule.parentStyleSheet.href : null;
6583 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
6584 }));
6585 return cssTexts.join('\n');
6586 }
6587 async function embedWebFonts(clonedNode, options) {
6588 const cssText = options.fontEmbedCSS != null
6589 ? options.fontEmbedCSS
6590 : options.skipFonts
6591 ? null
6592 : await getWebFontCSS(clonedNode, options);
6593 if (cssText) {
6594 const styleNode = document.createElement('style');
6595 const sytleContent = document.createTextNode(cssText);
6596 styleNode.appendChild(sytleContent);
6597 if (clonedNode.firstChild) {
6598 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
6599 }
6600 else {
6601 clonedNode.appendChild(styleNode);
6602 }
6603 }
6604 }
6605 //# sourceMappingURL=embed-webfonts.js.map
6606
6607 /***/ }),
6608
6609 /***/ "../node_modules/html-to-image/es/index.js":
6610 /*!*************************************************!*\
6611 !*** ../node_modules/html-to-image/es/index.js ***!
6612 \*************************************************/
6613 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6614
6615 "use strict";
6616 __webpack_require__.r(__webpack_exports__);
6617 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6618 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
6619 /* harmony export */ toBlob: () => (/* binding */ toBlob),
6620 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
6621 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
6622 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
6623 /* harmony export */ toPng: () => (/* binding */ toPng),
6624 /* harmony export */ toSvg: () => (/* binding */ toSvg)
6625 /* harmony export */ });
6626 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
6627 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
6628 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
6629 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
6630 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6631
6632
6633
6634
6635
6636 async function toSvg(node, options = {}) {
6637 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6638 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
6639 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
6640 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
6641 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
6642 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
6643 return datauri;
6644 }
6645 async function toCanvas(node, options = {}) {
6646 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6647 const svg = await toSvg(node, options);
6648 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
6649 const canvas = document.createElement('canvas');
6650 const context = canvas.getContext('2d');
6651 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
6652 const canvasWidth = options.canvasWidth || width;
6653 const canvasHeight = options.canvasHeight || height;
6654 canvas.width = canvasWidth * ratio;
6655 canvas.height = canvasHeight * ratio;
6656 if (!options.skipAutoScale) {
6657 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
6658 }
6659 canvas.style.width = `${canvasWidth}`;
6660 canvas.style.height = `${canvasHeight}`;
6661 if (options.backgroundColor) {
6662 context.fillStyle = options.backgroundColor;
6663 context.fillRect(0, 0, canvas.width, canvas.height);
6664 }
6665 context.drawImage(img, 0, 0, canvas.width, canvas.height);
6666 return canvas;
6667 }
6668 async function toPixelData(node, options = {}) {
6669 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
6670 const canvas = await toCanvas(node, options);
6671 const ctx = canvas.getContext('2d');
6672 return ctx.getImageData(0, 0, width, height).data;
6673 }
6674 async function toPng(node, options = {}) {
6675 const canvas = await toCanvas(node, options);
6676 return canvas.toDataURL();
6677 }
6678 async function toJpeg(node, options = {}) {
6679 const canvas = await toCanvas(node, options);
6680 return canvas.toDataURL('image/jpeg', options.quality || 1);
6681 }
6682 async function toBlob(node, options = {}) {
6683 const canvas = await toCanvas(node, options);
6684 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
6685 return blob;
6686 }
6687 async function getFontEmbedCSS(node, options = {}) {
6688 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
6689 }
6690 //# sourceMappingURL=index.js.map
6691
6692 /***/ }),
6693
6694 /***/ "../node_modules/html-to-image/es/mimes.js":
6695 /*!*************************************************!*\
6696 !*** ../node_modules/html-to-image/es/mimes.js ***!
6697 \*************************************************/
6698 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6699
6700 "use strict";
6701 __webpack_require__.r(__webpack_exports__);
6702 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6703 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
6704 /* harmony export */ });
6705 const WOFF = 'application/font-woff';
6706 const JPEG = 'image/jpeg';
6707 const mimes = {
6708 woff: WOFF,
6709 woff2: WOFF,
6710 ttf: 'application/font-truetype',
6711 eot: 'application/vnd.ms-fontobject',
6712 png: 'image/png',
6713 jpg: JPEG,
6714 jpeg: JPEG,
6715 gif: 'image/gif',
6716 tiff: 'image/tiff',
6717 svg: 'image/svg+xml',
6718 webp: 'image/webp',
6719 };
6720 function getExtension(url) {
6721 const match = /\.([^./]*?)$/g.exec(url);
6722 return match ? match[1] : '';
6723 }
6724 function getMimeType(url) {
6725 const extension = getExtension(url).toLowerCase();
6726 return mimes[extension] || '';
6727 }
6728 //# sourceMappingURL=mimes.js.map
6729
6730 /***/ }),
6731
6732 /***/ "../node_modules/html-to-image/es/util.js":
6733 /*!************************************************!*\
6734 !*** ../node_modules/html-to-image/es/util.js ***!
6735 \************************************************/
6736 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6737
6738 "use strict";
6739 __webpack_require__.r(__webpack_exports__);
6740 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6741 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
6742 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
6743 /* harmony export */ createImage: () => (/* binding */ createImage),
6744 /* harmony export */ delay: () => (/* binding */ delay),
6745 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
6746 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
6747 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
6748 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
6749 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
6750 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
6751 /* harmony export */ toArray: () => (/* binding */ toArray),
6752 /* harmony export */ uuid: () => (/* binding */ uuid)
6753 /* harmony export */ });
6754 function resolveUrl(url, baseUrl) {
6755 // url is absolute already
6756 if (url.match(/^[a-z]+:\/\//i)) {
6757 return url;
6758 }
6759 // url is absolute already, without protocol
6760 if (url.match(/^\/\//)) {
6761 return window.location.protocol + url;
6762 }
6763 // dataURI, mailto:, tel:, etc.
6764 if (url.match(/^[a-z]+:/i)) {
6765 return url;
6766 }
6767 const doc = document.implementation.createHTMLDocument();
6768 const base = doc.createElement('base');
6769 const a = doc.createElement('a');
6770 doc.head.appendChild(base);
6771 doc.body.appendChild(a);
6772 if (baseUrl) {
6773 base.href = baseUrl;
6774 }
6775 a.href = url;
6776 return a.href;
6777 }
6778 const uuid = (() => {
6779 // generate uuid for className of pseudo elements.
6780 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
6781 let counter = 0;
6782 // ref: http://stackoverflow.com/a/6248722/2519373
6783 const random = () =>
6784 // eslint-disable-next-line no-bitwise
6785 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
6786 return () => {
6787 counter += 1;
6788 return `u${random()}${counter}`;
6789 };
6790 })();
6791 function delay(ms) {
6792 return (args) => new Promise((resolve) => {
6793 setTimeout(() => resolve(args), ms);
6794 });
6795 }
6796 function toArray(arrayLike) {
6797 const arr = [];
6798 for (let i = 0, l = arrayLike.length; i < l; i++) {
6799 arr.push(arrayLike[i]);
6800 }
6801 return arr;
6802 }
6803 function px(node, styleProperty) {
6804 const win = node.ownerDocument.defaultView || window;
6805 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
6806 return val ? parseFloat(val.replace('px', '')) : 0;
6807 }
6808 function getNodeWidth(node) {
6809 const leftBorder = px(node, 'border-left-width');
6810 const rightBorder = px(node, 'border-right-width');
6811 return node.clientWidth + leftBorder + rightBorder;
6812 }
6813 function getNodeHeight(node) {
6814 const topBorder = px(node, 'border-top-width');
6815 const bottomBorder = px(node, 'border-bottom-width');
6816 return node.clientHeight + topBorder + bottomBorder;
6817 }
6818 function getImageSize(targetNode, options = {}) {
6819 const width = options.width || getNodeWidth(targetNode);
6820 const height = options.height || getNodeHeight(targetNode);
6821 return { width, height };
6822 }
6823 function getPixelRatio() {
6824 let ratio;
6825 let FINAL_PROCESS;
6826 try {
6827 FINAL_PROCESS = process;
6828 }
6829 catch (e) {
6830 // pass
6831 }
6832 const val = FINAL_PROCESS && FINAL_PROCESS.env
6833 ? FINAL_PROCESS.env.devicePixelRatio
6834 : null;
6835 if (val) {
6836 ratio = parseInt(val, 10);
6837 if (Number.isNaN(ratio)) {
6838 ratio = 1;
6839 }
6840 }
6841 return ratio || window.devicePixelRatio || 1;
6842 }
6843 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
6844 const canvasDimensionLimit = 16384;
6845 function checkCanvasDimensions(canvas) {
6846 if (canvas.width > canvasDimensionLimit ||
6847 canvas.height > canvasDimensionLimit) {
6848 if (canvas.width > canvasDimensionLimit &&
6849 canvas.height > canvasDimensionLimit) {
6850 if (canvas.width > canvas.height) {
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 else if (canvas.width > canvasDimensionLimit) {
6860 canvas.height *= canvasDimensionLimit / canvas.width;
6861 canvas.width = canvasDimensionLimit;
6862 }
6863 else {
6864 canvas.width *= canvasDimensionLimit / canvas.height;
6865 canvas.height = canvasDimensionLimit;
6866 }
6867 }
6868 }
6869 function canvasToBlob(canvas, options = {}) {
6870 if (canvas.toBlob) {
6871 return new Promise((resolve) => {
6872 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
6873 });
6874 }
6875 return new Promise((resolve) => {
6876 const binaryString = window.atob(canvas
6877 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
6878 .split(',')[1]);
6879 const len = binaryString.length;
6880 const binaryArray = new Uint8Array(len);
6881 for (let i = 0; i < len; i += 1) {
6882 binaryArray[i] = binaryString.charCodeAt(i);
6883 }
6884 resolve(new Blob([binaryArray], {
6885 type: options.type ? options.type : 'image/png',
6886 }));
6887 });
6888 }
6889 function createImage(url) {
6890 return new Promise((resolve, reject) => {
6891 const img = new Image();
6892 img.decode = () => resolve(img);
6893 img.onload = () => resolve(img);
6894 img.onerror = reject;
6895 img.crossOrigin = 'anonymous';
6896 img.decoding = 'async';
6897 img.src = url;
6898 });
6899 }
6900 async function svgToDataURL(svg) {
6901 return Promise.resolve()
6902 .then(() => new XMLSerializer().serializeToString(svg))
6903 .then(encodeURIComponent)
6904 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
6905 }
6906 async function nodeToDataURL(node, width, height) {
6907 const xmlns = 'http://www.w3.org/2000/svg';
6908 const svg = document.createElementNS(xmlns, 'svg');
6909 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
6910 svg.setAttribute('width', `${width}`);
6911 svg.setAttribute('height', `${height}`);
6912 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
6913 foreignObject.setAttribute('width', '100%');
6914 foreignObject.setAttribute('height', '100%');
6915 foreignObject.setAttribute('x', '0');
6916 foreignObject.setAttribute('y', '0');
6917 foreignObject.setAttribute('externalResourcesRequired', 'true');
6918 svg.appendChild(foreignObject);
6919 foreignObject.appendChild(node);
6920 return svgToDataURL(svg);
6921 }
6922 const isInstanceOfElement = (node, instance) => {
6923 if (node instanceof instance)
6924 return true;
6925 const nodePrototype = Object.getPrototypeOf(node);
6926 if (nodePrototype === null)
6927 return false;
6928 return (nodePrototype.constructor.name === instance.name ||
6929 isInstanceOfElement(nodePrototype, instance));
6930 };
6931 //# sourceMappingURL=util.js.map
6932
6933 /***/ }),
6934
6935 /***/ "../node_modules/object-assign/index.js":
6936 /*!**********************************************!*\
6937 !*** ../node_modules/object-assign/index.js ***!
6938 \**********************************************/
6939 /***/ ((module) => {
6940
6941 "use strict";
6942 /*
6943 object-assign
6944 (c) Sindre Sorhus
6945 @license MIT
6946 */
6947
6948
6949 /* eslint-disable no-unused-vars */
6950 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
6951 var hasOwnProperty = Object.prototype.hasOwnProperty;
6952 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
6953
6954 function toObject(val) {
6955 if (val === null || val === undefined) {
6956 throw new TypeError('Object.assign cannot be called with null or undefined');
6957 }
6958
6959 return Object(val);
6960 }
6961
6962 function shouldUseNative() {
6963 try {
6964 if (!Object.assign) {
6965 return false;
6966 }
6967
6968 // Detect buggy property enumeration order in older V8 versions.
6969
6970 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
6971 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
6972 test1[5] = 'de';
6973 if (Object.getOwnPropertyNames(test1)[0] === '5') {
6974 return false;
6975 }
6976
6977 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6978 var test2 = {};
6979 for (var i = 0; i < 10; i++) {
6980 test2['_' + String.fromCharCode(i)] = i;
6981 }
6982 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
6983 return test2[n];
6984 });
6985 if (order2.join('') !== '0123456789') {
6986 return false;
6987 }
6988
6989 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6990 var test3 = {};
6991 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
6992 test3[letter] = letter;
6993 });
6994 if (Object.keys(Object.assign({}, test3)).join('') !==
6995 'abcdefghijklmnopqrst') {
6996 return false;
6997 }
6998
6999 return true;
7000 } catch (err) {
7001 // We don't expect any of the above to throw, but better to be safe.
7002 return false;
7003 }
7004 }
7005
7006 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7007 var from;
7008 var to = toObject(target);
7009 var symbols;
7010
7011 for (var s = 1; s < arguments.length; s++) {
7012 from = Object(arguments[s]);
7013
7014 for (var key in from) {
7015 if (hasOwnProperty.call(from, key)) {
7016 to[key] = from[key];
7017 }
7018 }
7019
7020 if (getOwnPropertySymbols) {
7021 symbols = getOwnPropertySymbols(from);
7022 for (var i = 0; i < symbols.length; i++) {
7023 if (propIsEnumerable.call(from, symbols[i])) {
7024 to[symbols[i]] = from[symbols[i]];
7025 }
7026 }
7027 }
7028 }
7029
7030 return to;
7031 };
7032
7033
7034 /***/ }),
7035
7036 /***/ "../node_modules/prop-types/checkPropTypes.js":
7037 /*!****************************************************!*\
7038 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7039 \****************************************************/
7040 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7041
7042 "use strict";
7043 /**
7044 * Copyright (c) 2013-present, Facebook, Inc.
7045 *
7046 * This source code is licensed under the MIT license found in the
7047 * LICENSE file in the root directory of this source tree.
7048 */
7049
7050
7051
7052 var printWarning = function() {};
7053
7054 if (true) {
7055 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7056 var loggedTypeFailures = {};
7057 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7058
7059 printWarning = function(text) {
7060 var message = 'Warning: ' + text;
7061 if (typeof console !== 'undefined') {
7062 console.error(message);
7063 }
7064 try {
7065 // --- Welcome to debugging React ---
7066 // This error was thrown as a convenience so that you can use this stack
7067 // to find the callsite that caused this warning to fire.
7068 throw new Error(message);
7069 } catch (x) { /**/ }
7070 };
7071 }
7072
7073 /**
7074 * Assert that the values match with the type specs.
7075 * Error messages are memorized and will only be shown once.
7076 *
7077 * @param {object} typeSpecs Map of name to a ReactPropType
7078 * @param {object} values Runtime values that need to be type-checked
7079 * @param {string} location e.g. "prop", "context", "child context"
7080 * @param {string} componentName Name of the component for error messages.
7081 * @param {?Function} getStack Returns the component stack.
7082 * @private
7083 */
7084 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7085 if (true) {
7086 for (var typeSpecName in typeSpecs) {
7087 if (has(typeSpecs, typeSpecName)) {
7088 var error;
7089 // Prop type validation may throw. In case they do, we don't want to
7090 // fail the render phase where it didn't fail before. So we log it.
7091 // After these have been cleaned up, we'll let them throw.
7092 try {
7093 // This is intentionally an invariant that gets caught. It's the same
7094 // behavior as without this statement except with a better message.
7095 if (typeof typeSpecs[typeSpecName] !== 'function') {
7096 var err = Error(
7097 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
7098 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
7099 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
7100 );
7101 err.name = 'Invariant Violation';
7102 throw err;
7103 }
7104 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
7105 } catch (ex) {
7106 error = ex;
7107 }
7108 if (error && !(error instanceof Error)) {
7109 printWarning(
7110 (componentName || 'React class') + ': type specification of ' +
7111 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
7112 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
7113 'You may have forgotten to pass an argument to the type checker ' +
7114 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
7115 'shape all require an argument).'
7116 );
7117 }
7118 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
7119 // Only monitor this failure once because there tends to be a lot of the
7120 // same error.
7121 loggedTypeFailures[error.message] = true;
7122
7123 var stack = getStack ? getStack() : '';
7124
7125 printWarning(
7126 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
7127 );
7128 }
7129 }
7130 }
7131 }
7132 }
7133
7134 /**
7135 * Resets warning cache when testing.
7136 *
7137 * @private
7138 */
7139 checkPropTypes.resetWarningCache = function() {
7140 if (true) {
7141 loggedTypeFailures = {};
7142 }
7143 }
7144
7145 module.exports = checkPropTypes;
7146
7147
7148 /***/ }),
7149
7150 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
7151 /*!*************************************************************!*\
7152 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
7153 \*************************************************************/
7154 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7155
7156 "use strict";
7157 /**
7158 * Copyright (c) 2013-present, Facebook, Inc.
7159 *
7160 * This source code is licensed under the MIT license found in the
7161 * LICENSE file in the root directory of this source tree.
7162 */
7163
7164
7165
7166 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
7167 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
7168
7169 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7170 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7171 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
7172
7173 var printWarning = function() {};
7174
7175 if (true) {
7176 printWarning = function(text) {
7177 var message = 'Warning: ' + text;
7178 if (typeof console !== 'undefined') {
7179 console.error(message);
7180 }
7181 try {
7182 // --- Welcome to debugging React ---
7183 // This error was thrown as a convenience so that you can use this stack
7184 // to find the callsite that caused this warning to fire.
7185 throw new Error(message);
7186 } catch (x) {}
7187 };
7188 }
7189
7190 function emptyFunctionThatReturnsNull() {
7191 return null;
7192 }
7193
7194 module.exports = function(isValidElement, throwOnDirectAccess) {
7195 /* global Symbol */
7196 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
7197 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
7198
7199 /**
7200 * Returns the iterator method function contained on the iterable object.
7201 *
7202 * Be sure to invoke the function with the iterable as context:
7203 *
7204 * var iteratorFn = getIteratorFn(myIterable);
7205 * if (iteratorFn) {
7206 * var iterator = iteratorFn.call(myIterable);
7207 * ...
7208 * }
7209 *
7210 * @param {?object} maybeIterable
7211 * @return {?function}
7212 */
7213 function getIteratorFn(maybeIterable) {
7214 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
7215 if (typeof iteratorFn === 'function') {
7216 return iteratorFn;
7217 }
7218 }
7219
7220 /**
7221 * Collection of methods that allow declaration and validation of props that are
7222 * supplied to React components. Example usage:
7223 *
7224 * var Props = require('ReactPropTypes');
7225 * var MyArticle = React.createClass({
7226 * propTypes: {
7227 * // An optional string prop named "description".
7228 * description: Props.string,
7229 *
7230 * // A required enum prop named "category".
7231 * category: Props.oneOf(['News','Photos']).isRequired,
7232 *
7233 * // A prop named "dialog" that requires an instance of Dialog.
7234 * dialog: Props.instanceOf(Dialog).isRequired
7235 * },
7236 * render: function() { ... }
7237 * });
7238 *
7239 * A more formal specification of how these methods are used:
7240 *
7241 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
7242 * decl := ReactPropTypes.{type}(.isRequired)?
7243 *
7244 * Each and every declaration produces a function with the same signature. This
7245 * allows the creation of custom validation functions. For example:
7246 *
7247 * var MyLink = React.createClass({
7248 * propTypes: {
7249 * // An optional string or URI prop named "href".
7250 * href: function(props, propName, componentName) {
7251 * var propValue = props[propName];
7252 * if (propValue != null && typeof propValue !== 'string' &&
7253 * !(propValue instanceof URI)) {
7254 * return new Error(
7255 * 'Expected a string or an URI for ' + propName + ' in ' +
7256 * componentName
7257 * );
7258 * }
7259 * }
7260 * },
7261 * render: function() {...}
7262 * });
7263 *
7264 * @internal
7265 */
7266
7267 var ANONYMOUS = '<<anonymous>>';
7268
7269 // Important!
7270 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
7271 var ReactPropTypes = {
7272 array: createPrimitiveTypeChecker('array'),
7273 bigint: createPrimitiveTypeChecker('bigint'),
7274 bool: createPrimitiveTypeChecker('boolean'),
7275 func: createPrimitiveTypeChecker('function'),
7276 number: createPrimitiveTypeChecker('number'),
7277 object: createPrimitiveTypeChecker('object'),
7278 string: createPrimitiveTypeChecker('string'),
7279 symbol: createPrimitiveTypeChecker('symbol'),
7280
7281 any: createAnyTypeChecker(),
7282 arrayOf: createArrayOfTypeChecker,
7283 element: createElementTypeChecker(),
7284 elementType: createElementTypeTypeChecker(),
7285 instanceOf: createInstanceTypeChecker,
7286 node: createNodeChecker(),
7287 objectOf: createObjectOfTypeChecker,
7288 oneOf: createEnumTypeChecker,
7289 oneOfType: createUnionTypeChecker,
7290 shape: createShapeTypeChecker,
7291 exact: createStrictShapeTypeChecker,
7292 };
7293
7294 /**
7295 * inlined Object.is polyfill to avoid requiring consumers ship their own
7296 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
7297 */
7298 /*eslint-disable no-self-compare*/
7299 function is(x, y) {
7300 // SameValue algorithm
7301 if (x === y) {
7302 // Steps 1-5, 7-10
7303 // Steps 6.b-6.e: +0 != -0
7304 return x !== 0 || 1 / x === 1 / y;
7305 } else {
7306 // Step 6.a: NaN == NaN
7307 return x !== x && y !== y;
7308 }
7309 }
7310 /*eslint-enable no-self-compare*/
7311
7312 /**
7313 * We use an Error-like object for backward compatibility as people may call
7314 * PropTypes directly and inspect their output. However, we don't use real
7315 * Errors anymore. We don't inspect their stack anyway, and creating them
7316 * is prohibitively expensive if they are created too often, such as what
7317 * happens in oneOfType() for any type before the one that matched.
7318 */
7319 function PropTypeError(message, data) {
7320 this.message = message;
7321 this.data = data && typeof data === 'object' ? data: {};
7322 this.stack = '';
7323 }
7324 // Make `instanceof Error` still work for returned errors.
7325 PropTypeError.prototype = Error.prototype;
7326
7327 function createChainableTypeChecker(validate) {
7328 if (true) {
7329 var manualPropTypeCallCache = {};
7330 var manualPropTypeWarningCount = 0;
7331 }
7332 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
7333 componentName = componentName || ANONYMOUS;
7334 propFullName = propFullName || propName;
7335
7336 if (secret !== ReactPropTypesSecret) {
7337 if (throwOnDirectAccess) {
7338 // New behavior only for users of `prop-types` package
7339 var err = new Error(
7340 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
7341 'Use `PropTypes.checkPropTypes()` to call them. ' +
7342 'Read more at http://fb.me/use-check-prop-types'
7343 );
7344 err.name = 'Invariant Violation';
7345 throw err;
7346 } else if ( true && typeof console !== 'undefined') {
7347 // Old behavior for people using React.PropTypes
7348 var cacheKey = componentName + ':' + propName;
7349 if (
7350 !manualPropTypeCallCache[cacheKey] &&
7351 // Avoid spamming the console because they are often not actionable except for lib authors
7352 manualPropTypeWarningCount < 3
7353 ) {
7354 printWarning(
7355 'You are manually calling a React.PropTypes validation ' +
7356 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
7357 'and will throw in the standalone `prop-types` package. ' +
7358 'You may be seeing this warning due to a third-party PropTypes ' +
7359 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
7360 );
7361 manualPropTypeCallCache[cacheKey] = true;
7362 manualPropTypeWarningCount++;
7363 }
7364 }
7365 }
7366 if (props[propName] == null) {
7367 if (isRequired) {
7368 if (props[propName] === null) {
7369 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
7370 }
7371 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
7372 }
7373 return null;
7374 } else {
7375 return validate(props, propName, componentName, location, propFullName);
7376 }
7377 }
7378
7379 var chainedCheckType = checkType.bind(null, false);
7380 chainedCheckType.isRequired = checkType.bind(null, true);
7381
7382 return chainedCheckType;
7383 }
7384
7385 function createPrimitiveTypeChecker(expectedType) {
7386 function validate(props, propName, componentName, location, propFullName, secret) {
7387 var propValue = props[propName];
7388 var propType = getPropType(propValue);
7389 if (propType !== expectedType) {
7390 // `propValue` being instance of, say, date/regexp, pass the 'object'
7391 // check, but we can offer a more precise error message here rather than
7392 // 'of type `object`'.
7393 var preciseType = getPreciseType(propValue);
7394
7395 return new PropTypeError(
7396 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
7397 {expectedType: expectedType}
7398 );
7399 }
7400 return null;
7401 }
7402 return createChainableTypeChecker(validate);
7403 }
7404
7405 function createAnyTypeChecker() {
7406 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
7407 }
7408
7409 function createArrayOfTypeChecker(typeChecker) {
7410 function validate(props, propName, componentName, location, propFullName) {
7411 if (typeof typeChecker !== 'function') {
7412 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
7413 }
7414 var propValue = props[propName];
7415 if (!Array.isArray(propValue)) {
7416 var propType = getPropType(propValue);
7417 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
7418 }
7419 for (var i = 0; i < propValue.length; i++) {
7420 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
7421 if (error instanceof Error) {
7422 return error;
7423 }
7424 }
7425 return null;
7426 }
7427 return createChainableTypeChecker(validate);
7428 }
7429
7430 function createElementTypeChecker() {
7431 function validate(props, propName, componentName, location, propFullName) {
7432 var propValue = props[propName];
7433 if (!isValidElement(propValue)) {
7434 var propType = getPropType(propValue);
7435 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
7436 }
7437 return null;
7438 }
7439 return createChainableTypeChecker(validate);
7440 }
7441
7442 function createElementTypeTypeChecker() {
7443 function validate(props, propName, componentName, location, propFullName) {
7444 var propValue = props[propName];
7445 if (!ReactIs.isValidElementType(propValue)) {
7446 var propType = getPropType(propValue);
7447 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
7448 }
7449 return null;
7450 }
7451 return createChainableTypeChecker(validate);
7452 }
7453
7454 function createInstanceTypeChecker(expectedClass) {
7455 function validate(props, propName, componentName, location, propFullName) {
7456 if (!(props[propName] instanceof expectedClass)) {
7457 var expectedClassName = expectedClass.name || ANONYMOUS;
7458 var actualClassName = getClassName(props[propName]);
7459 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
7460 }
7461 return null;
7462 }
7463 return createChainableTypeChecker(validate);
7464 }
7465
7466 function createEnumTypeChecker(expectedValues) {
7467 if (!Array.isArray(expectedValues)) {
7468 if (true) {
7469 if (arguments.length > 1) {
7470 printWarning(
7471 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
7472 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
7473 );
7474 } else {
7475 printWarning('Invalid argument supplied to oneOf, expected an array.');
7476 }
7477 }
7478 return emptyFunctionThatReturnsNull;
7479 }
7480
7481 function validate(props, propName, componentName, location, propFullName) {
7482 var propValue = props[propName];
7483 for (var i = 0; i < expectedValues.length; i++) {
7484 if (is(propValue, expectedValues[i])) {
7485 return null;
7486 }
7487 }
7488
7489 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
7490 var type = getPreciseType(value);
7491 if (type === 'symbol') {
7492 return String(value);
7493 }
7494 return value;
7495 });
7496 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
7497 }
7498 return createChainableTypeChecker(validate);
7499 }
7500
7501 function createObjectOfTypeChecker(typeChecker) {
7502 function validate(props, propName, componentName, location, propFullName) {
7503 if (typeof typeChecker !== 'function') {
7504 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
7505 }
7506 var propValue = props[propName];
7507 var propType = getPropType(propValue);
7508 if (propType !== 'object') {
7509 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
7510 }
7511 for (var key in propValue) {
7512 if (has(propValue, key)) {
7513 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7514 if (error instanceof Error) {
7515 return error;
7516 }
7517 }
7518 }
7519 return null;
7520 }
7521 return createChainableTypeChecker(validate);
7522 }
7523
7524 function createUnionTypeChecker(arrayOfTypeCheckers) {
7525 if (!Array.isArray(arrayOfTypeCheckers)) {
7526 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
7527 return emptyFunctionThatReturnsNull;
7528 }
7529
7530 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
7531 var checker = arrayOfTypeCheckers[i];
7532 if (typeof checker !== 'function') {
7533 printWarning(
7534 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
7535 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
7536 );
7537 return emptyFunctionThatReturnsNull;
7538 }
7539 }
7540
7541 function validate(props, propName, componentName, location, propFullName) {
7542 var expectedTypes = [];
7543 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
7544 var checker = arrayOfTypeCheckers[i];
7545 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
7546 if (checkerResult == null) {
7547 return null;
7548 }
7549 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
7550 expectedTypes.push(checkerResult.data.expectedType);
7551 }
7552 }
7553 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
7554 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
7555 }
7556 return createChainableTypeChecker(validate);
7557 }
7558
7559 function createNodeChecker() {
7560 function validate(props, propName, componentName, location, propFullName) {
7561 if (!isNode(props[propName])) {
7562 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
7563 }
7564 return null;
7565 }
7566 return createChainableTypeChecker(validate);
7567 }
7568
7569 function invalidValidatorError(componentName, location, propFullName, key, type) {
7570 return new PropTypeError(
7571 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
7572 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
7573 );
7574 }
7575
7576 function createShapeTypeChecker(shapeTypes) {
7577 function validate(props, propName, componentName, location, propFullName) {
7578 var propValue = props[propName];
7579 var propType = getPropType(propValue);
7580 if (propType !== 'object') {
7581 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
7582 }
7583 for (var key in shapeTypes) {
7584 var checker = shapeTypes[key];
7585 if (typeof checker !== 'function') {
7586 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
7587 }
7588 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7589 if (error) {
7590 return error;
7591 }
7592 }
7593 return null;
7594 }
7595 return createChainableTypeChecker(validate);
7596 }
7597
7598 function createStrictShapeTypeChecker(shapeTypes) {
7599 function validate(props, propName, componentName, location, propFullName) {
7600 var propValue = props[propName];
7601 var propType = getPropType(propValue);
7602 if (propType !== 'object') {
7603 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
7604 }
7605 // We need to check all keys in case some are required but missing from props.
7606 var allKeys = assign({}, props[propName], shapeTypes);
7607 for (var key in allKeys) {
7608 var checker = shapeTypes[key];
7609 if (has(shapeTypes, key) && typeof checker !== 'function') {
7610 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
7611 }
7612 if (!checker) {
7613 return new PropTypeError(
7614 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
7615 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
7616 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
7617 );
7618 }
7619 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
7620 if (error) {
7621 return error;
7622 }
7623 }
7624 return null;
7625 }
7626
7627 return createChainableTypeChecker(validate);
7628 }
7629
7630 function isNode(propValue) {
7631 switch (typeof propValue) {
7632 case 'number':
7633 case 'string':
7634 case 'undefined':
7635 return true;
7636 case 'boolean':
7637 return !propValue;
7638 case 'object':
7639 if (Array.isArray(propValue)) {
7640 return propValue.every(isNode);
7641 }
7642 if (propValue === null || isValidElement(propValue)) {
7643 return true;
7644 }
7645
7646 var iteratorFn = getIteratorFn(propValue);
7647 if (iteratorFn) {
7648 var iterator = iteratorFn.call(propValue);
7649 var step;
7650 if (iteratorFn !== propValue.entries) {
7651 while (!(step = iterator.next()).done) {
7652 if (!isNode(step.value)) {
7653 return false;
7654 }
7655 }
7656 } else {
7657 // Iterator will provide entry [k,v] tuples rather than values.
7658 while (!(step = iterator.next()).done) {
7659 var entry = step.value;
7660 if (entry) {
7661 if (!isNode(entry[1])) {
7662 return false;
7663 }
7664 }
7665 }
7666 }
7667 } else {
7668 return false;
7669 }
7670
7671 return true;
7672 default:
7673 return false;
7674 }
7675 }
7676
7677 function isSymbol(propType, propValue) {
7678 // Native Symbol.
7679 if (propType === 'symbol') {
7680 return true;
7681 }
7682
7683 // falsy value can't be a Symbol
7684 if (!propValue) {
7685 return false;
7686 }
7687
7688 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
7689 if (propValue['@@toStringTag'] === 'Symbol') {
7690 return true;
7691 }
7692
7693 // Fallback for non-spec compliant Symbols which are polyfilled.
7694 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
7695 return true;
7696 }
7697
7698 return false;
7699 }
7700
7701 // Equivalent of `typeof` but with special handling for array and regexp.
7702 function getPropType(propValue) {
7703 var propType = typeof propValue;
7704 if (Array.isArray(propValue)) {
7705 return 'array';
7706 }
7707 if (propValue instanceof RegExp) {
7708 // Old webkits (at least until Android 4.0) return 'function' rather than
7709 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
7710 // passes PropTypes.object.
7711 return 'object';
7712 }
7713 if (isSymbol(propType, propValue)) {
7714 return 'symbol';
7715 }
7716 return propType;
7717 }
7718
7719 // This handles more types than `getPropType`. Only used for error messages.
7720 // See `createPrimitiveTypeChecker`.
7721 function getPreciseType(propValue) {
7722 if (typeof propValue === 'undefined' || propValue === null) {
7723 return '' + propValue;
7724 }
7725 var propType = getPropType(propValue);
7726 if (propType === 'object') {
7727 if (propValue instanceof Date) {
7728 return 'date';
7729 } else if (propValue instanceof RegExp) {
7730 return 'regexp';
7731 }
7732 }
7733 return propType;
7734 }
7735
7736 // Returns a string that is postfixed to a warning about an invalid type.
7737 // For example, "undefined" or "of type array"
7738 function getPostfixForTypeWarning(value) {
7739 var type = getPreciseType(value);
7740 switch (type) {
7741 case 'array':
7742 case 'object':
7743 return 'an ' + type;
7744 case 'boolean':
7745 case 'date':
7746 case 'regexp':
7747 return 'a ' + type;
7748 default:
7749 return type;
7750 }
7751 }
7752
7753 // Returns class name of the object, if any.
7754 function getClassName(propValue) {
7755 if (!propValue.constructor || !propValue.constructor.name) {
7756 return ANONYMOUS;
7757 }
7758 return propValue.constructor.name;
7759 }
7760
7761 ReactPropTypes.checkPropTypes = checkPropTypes;
7762 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
7763 ReactPropTypes.PropTypes = ReactPropTypes;
7764
7765 return ReactPropTypes;
7766 };
7767
7768
7769 /***/ }),
7770
7771 /***/ "../node_modules/prop-types/index.js":
7772 /*!*******************************************!*\
7773 !*** ../node_modules/prop-types/index.js ***!
7774 \*******************************************/
7775 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7776
7777 /**
7778 * Copyright (c) 2013-present, Facebook, Inc.
7779 *
7780 * This source code is licensed under the MIT license found in the
7781 * LICENSE file in the root directory of this source tree.
7782 */
7783
7784 if (true) {
7785 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
7786
7787 // By explicitly using `prop-types` you are opting into new development behavior.
7788 // http://fb.me/prop-types-in-prod
7789 var throwOnDirectAccess = true;
7790 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
7791 } else {}
7792
7793
7794 /***/ }),
7795
7796 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
7797 /*!**************************************************************!*\
7798 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
7799 \**************************************************************/
7800 /***/ ((module) => {
7801
7802 "use strict";
7803 /**
7804 * Copyright (c) 2013-present, Facebook, Inc.
7805 *
7806 * This source code is licensed under the MIT license found in the
7807 * LICENSE file in the root directory of this source tree.
7808 */
7809
7810
7811
7812 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
7813
7814 module.exports = ReactPropTypesSecret;
7815
7816
7817 /***/ }),
7818
7819 /***/ "../node_modules/prop-types/lib/has.js":
7820 /*!*********************************************!*\
7821 !*** ../node_modules/prop-types/lib/has.js ***!
7822 \*********************************************/
7823 /***/ ((module) => {
7824
7825 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
7826
7827
7828 /***/ }),
7829
7830 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
7831 /*!************************************************************************************!*\
7832 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
7833 \************************************************************************************/
7834 /***/ ((__unused_webpack_module, exports) => {
7835
7836 "use strict";
7837 /** @license React v16.13.1
7838 * react-is.development.js
7839 *
7840 * Copyright (c) Facebook, Inc. and its affiliates.
7841 *
7842 * This source code is licensed under the MIT license found in the
7843 * LICENSE file in the root directory of this source tree.
7844 */
7845
7846
7847
7848
7849
7850 if (true) {
7851 (function() {
7852 'use strict';
7853
7854 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
7855 // nor polyfill, then a plain number is used for performance.
7856 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
7857 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
7858 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
7859 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
7860 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
7861 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
7862 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
7863 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
7864 // (unstable) APIs that have been removed. Can we remove the symbols?
7865
7866 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
7867 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
7868 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
7869 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
7870 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
7871 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
7872 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
7873 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
7874 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
7875 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
7876 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
7877
7878 function isValidElementType(type) {
7879 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
7880 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);
7881 }
7882
7883 function typeOf(object) {
7884 if (typeof object === 'object' && object !== null) {
7885 var $$typeof = object.$$typeof;
7886
7887 switch ($$typeof) {
7888 case REACT_ELEMENT_TYPE:
7889 var type = object.type;
7890
7891 switch (type) {
7892 case REACT_ASYNC_MODE_TYPE:
7893 case REACT_CONCURRENT_MODE_TYPE:
7894 case REACT_FRAGMENT_TYPE:
7895 case REACT_PROFILER_TYPE:
7896 case REACT_STRICT_MODE_TYPE:
7897 case REACT_SUSPENSE_TYPE:
7898 return type;
7899
7900 default:
7901 var $$typeofType = type && type.$$typeof;
7902
7903 switch ($$typeofType) {
7904 case REACT_CONTEXT_TYPE:
7905 case REACT_FORWARD_REF_TYPE:
7906 case REACT_LAZY_TYPE:
7907 case REACT_MEMO_TYPE:
7908 case REACT_PROVIDER_TYPE:
7909 return $$typeofType;
7910
7911 default:
7912 return $$typeof;
7913 }
7914
7915 }
7916
7917 case REACT_PORTAL_TYPE:
7918 return $$typeof;
7919 }
7920 }
7921
7922 return undefined;
7923 } // AsyncMode is deprecated along with isAsyncMode
7924
7925 var AsyncMode = REACT_ASYNC_MODE_TYPE;
7926 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
7927 var ContextConsumer = REACT_CONTEXT_TYPE;
7928 var ContextProvider = REACT_PROVIDER_TYPE;
7929 var Element = REACT_ELEMENT_TYPE;
7930 var ForwardRef = REACT_FORWARD_REF_TYPE;
7931 var Fragment = REACT_FRAGMENT_TYPE;
7932 var Lazy = REACT_LAZY_TYPE;
7933 var Memo = REACT_MEMO_TYPE;
7934 var Portal = REACT_PORTAL_TYPE;
7935 var Profiler = REACT_PROFILER_TYPE;
7936 var StrictMode = REACT_STRICT_MODE_TYPE;
7937 var Suspense = REACT_SUSPENSE_TYPE;
7938 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
7939
7940 function isAsyncMode(object) {
7941 {
7942 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
7943 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
7944
7945 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.');
7946 }
7947 }
7948
7949 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
7950 }
7951 function isConcurrentMode(object) {
7952 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
7953 }
7954 function isContextConsumer(object) {
7955 return typeOf(object) === REACT_CONTEXT_TYPE;
7956 }
7957 function isContextProvider(object) {
7958 return typeOf(object) === REACT_PROVIDER_TYPE;
7959 }
7960 function isElement(object) {
7961 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
7962 }
7963 function isForwardRef(object) {
7964 return typeOf(object) === REACT_FORWARD_REF_TYPE;
7965 }
7966 function isFragment(object) {
7967 return typeOf(object) === REACT_FRAGMENT_TYPE;
7968 }
7969 function isLazy(object) {
7970 return typeOf(object) === REACT_LAZY_TYPE;
7971 }
7972 function isMemo(object) {
7973 return typeOf(object) === REACT_MEMO_TYPE;
7974 }
7975 function isPortal(object) {
7976 return typeOf(object) === REACT_PORTAL_TYPE;
7977 }
7978 function isProfiler(object) {
7979 return typeOf(object) === REACT_PROFILER_TYPE;
7980 }
7981 function isStrictMode(object) {
7982 return typeOf(object) === REACT_STRICT_MODE_TYPE;
7983 }
7984 function isSuspense(object) {
7985 return typeOf(object) === REACT_SUSPENSE_TYPE;
7986 }
7987
7988 exports.AsyncMode = AsyncMode;
7989 exports.ConcurrentMode = ConcurrentMode;
7990 exports.ContextConsumer = ContextConsumer;
7991 exports.ContextProvider = ContextProvider;
7992 exports.Element = Element;
7993 exports.ForwardRef = ForwardRef;
7994 exports.Fragment = Fragment;
7995 exports.Lazy = Lazy;
7996 exports.Memo = Memo;
7997 exports.Portal = Portal;
7998 exports.Profiler = Profiler;
7999 exports.StrictMode = StrictMode;
8000 exports.Suspense = Suspense;
8001 exports.isAsyncMode = isAsyncMode;
8002 exports.isConcurrentMode = isConcurrentMode;
8003 exports.isContextConsumer = isContextConsumer;
8004 exports.isContextProvider = isContextProvider;
8005 exports.isElement = isElement;
8006 exports.isForwardRef = isForwardRef;
8007 exports.isFragment = isFragment;
8008 exports.isLazy = isLazy;
8009 exports.isMemo = isMemo;
8010 exports.isPortal = isPortal;
8011 exports.isProfiler = isProfiler;
8012 exports.isStrictMode = isStrictMode;
8013 exports.isSuspense = isSuspense;
8014 exports.isValidElementType = isValidElementType;
8015 exports.typeOf = typeOf;
8016 })();
8017 }
8018
8019
8020 /***/ }),
8021
8022 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8023 /*!*****************************************************************!*\
8024 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8025 \*****************************************************************/
8026 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8027
8028 "use strict";
8029
8030
8031 if (false) {} else {
8032 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8033 }
8034
8035
8036 /***/ }),
8037
8038 /***/ "../node_modules/react-dom/client.js":
8039 /*!*******************************************!*\
8040 !*** ../node_modules/react-dom/client.js ***!
8041 \*******************************************/
8042 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8043
8044 "use strict";
8045
8046
8047 var m = __webpack_require__(/*! react-dom */ "react-dom");
8048 if (false) {} else {
8049 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8050 exports.createRoot = function(c, o) {
8051 i.usingClientEntryPoint = true;
8052 try {
8053 return m.createRoot(c, o);
8054 } finally {
8055 i.usingClientEntryPoint = false;
8056 }
8057 };
8058 exports.hydrateRoot = function(c, h, o) {
8059 i.usingClientEntryPoint = true;
8060 try {
8061 return m.hydrateRoot(c, h, o);
8062 } finally {
8063 i.usingClientEntryPoint = false;
8064 }
8065 };
8066 }
8067
8068
8069 /***/ }),
8070
8071 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8072 /*!**************************************************************!*\
8073 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8074 \**************************************************************/
8075 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8076
8077 "use strict";
8078
8079
8080 Object.defineProperty(exports, "__esModule", ({
8081 value: true
8082 }));
8083 Object.defineProperty(exports, "DraggableCore", ({
8084 enumerable: true,
8085 get: function () {
8086 return _DraggableCore.default;
8087 }
8088 }));
8089 exports["default"] = void 0;
8090 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8091 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8092 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
8093 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
8094 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
8095 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
8096 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8097 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
8098 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
8099 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8100 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); }
8101 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; }
8102 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); }
8103 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; }
8104 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8105 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';*/
8106 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
8107 /*:: import type {Element as ReactElement} from 'react';*/
8108 /*:: type DraggableState = {
8109 dragging: boolean,
8110 dragged: boolean,
8111 x: number, y: number,
8112 slackX: number, slackY: number,
8113 isElementSVG: boolean,
8114 prevPropsPosition: ?ControlPosition,
8115 };*/
8116 /*:: export type DraggableDefaultProps = {
8117 ...DraggableCoreDefaultProps,
8118 axis: 'both' | 'x' | 'y' | 'none',
8119 bounds: Bounds | string | false,
8120 defaultClassName: string,
8121 defaultClassNameDragging: string,
8122 defaultClassNameDragged: string,
8123 defaultPosition: ControlPosition,
8124 scale: number,
8125 };*/
8126 /*:: export type DraggableProps = {
8127 ...DraggableCoreProps,
8128 ...DraggableDefaultProps,
8129 positionOffset: PositionOffsetControlPosition,
8130 position: ControlPosition,
8131 };*/
8132 //
8133 // Define <Draggable>
8134 //
8135 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
8136 // React 16.3+
8137 // Arity (props, state)
8138 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
8139 let {
8140 position
8141 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
8142 let {
8143 prevPropsPosition
8144 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
8145 // Set x/y if a new position is provided in props that is different than the previous.
8146 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
8147 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
8148 position,
8149 prevPropsPosition
8150 });
8151 return {
8152 x: position.x,
8153 y: position.y,
8154 prevPropsPosition: {
8155 ...position
8156 }
8157 };
8158 }
8159 return null;
8160 }
8161 constructor(props /*: DraggableProps*/) {
8162 super(props);
8163 _defineProperty(this, "onDragStart", (e, coreData) => {
8164 (0, _log.default)('Draggable: onDragStart: %j', coreData);
8165
8166 // Short-circuit if user's callback killed it.
8167 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
8168 // Kills start event on core as well, so move handlers are never bound.
8169 if (shouldStart === false) return false;
8170 this.setState({
8171 dragging: true,
8172 dragged: true
8173 });
8174 });
8175 _defineProperty(this, "onDrag", (e, coreData) => {
8176 if (!this.state.dragging) return false;
8177 (0, _log.default)('Draggable: onDrag: %j', coreData);
8178 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
8179 const newState = {
8180 x: uiData.x,
8181 y: uiData.y,
8182 slackX: 0,
8183 slackY: 0
8184 };
8185
8186 // Keep within bounds.
8187 if (this.props.bounds) {
8188 // Save original x and y.
8189 const {
8190 x,
8191 y
8192 } = newState;
8193
8194 // Add slack to the values used to calculate bound position. This will ensure that if
8195 // we start removing slack, the element won't react to it right away until it's been
8196 // completely removed.
8197 newState.x += this.state.slackX;
8198 newState.y += this.state.slackY;
8199
8200 // Get bound position. This will ceil/floor the x and y within the boundaries.
8201 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
8202 newState.x = newStateX;
8203 newState.y = newStateY;
8204
8205 // Recalculate slack by noting how much was shaved by the boundPosition handler.
8206 newState.slackX = this.state.slackX + (x - newState.x);
8207 newState.slackY = this.state.slackY + (y - newState.y);
8208
8209 // Update the event we fire to reflect what really happened after bounds took effect.
8210 uiData.x = newState.x;
8211 uiData.y = newState.y;
8212 uiData.deltaX = newState.x - this.state.x;
8213 uiData.deltaY = newState.y - this.state.y;
8214 }
8215
8216 // Short-circuit if user's callback killed it.
8217 const shouldUpdate = this.props.onDrag(e, uiData);
8218 if (shouldUpdate === false) return false;
8219 this.setState(newState);
8220 });
8221 _defineProperty(this, "onDragStop", (e, coreData) => {
8222 if (!this.state.dragging) return false;
8223
8224 // Short-circuit if user's callback killed it.
8225 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
8226 if (shouldContinue === false) return false;
8227 (0, _log.default)('Draggable: onDragStop: %j', coreData);
8228 const newState /*: Partial<DraggableState>*/ = {
8229 dragging: false,
8230 slackX: 0,
8231 slackY: 0
8232 };
8233
8234 // If this is a controlled component, the result of this operation will be to
8235 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
8236 const controlled = Boolean(this.props.position);
8237 if (controlled) {
8238 const {
8239 x,
8240 y
8241 } = this.props.position;
8242 newState.x = x;
8243 newState.y = y;
8244 }
8245 this.setState(newState);
8246 });
8247 this.state = {
8248 // Whether or not we are currently dragging.
8249 dragging: false,
8250 // Whether or not we have been dragged before.
8251 dragged: false,
8252 // Current transform x and y.
8253 x: props.position ? props.position.x : props.defaultPosition.x,
8254 y: props.position ? props.position.y : props.defaultPosition.y,
8255 prevPropsPosition: {
8256 ...props.position
8257 },
8258 // Used for compensating for out-of-bounds drags
8259 slackX: 0,
8260 slackY: 0,
8261 // Can only determine if SVG after mounting
8262 isElementSVG: false
8263 };
8264 if (props.position && !(props.onDrag || props.onStop)) {
8265 // eslint-disable-next-line no-console
8266 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.');
8267 }
8268 }
8269 componentDidMount() {
8270 // Check to see if the element passed is an instanceof SVGElement
8271 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
8272 this.setState({
8273 isElementSVG: true
8274 });
8275 }
8276 }
8277 componentWillUnmount() {
8278 this.setState({
8279 dragging: false
8280 }); // prevents invariant if unmounted while dragging
8281 }
8282
8283 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
8284 // the underlying DOM node ourselves. See the README for more information.
8285 findDOMNode() /*: ?HTMLElement*/{
8286 var _this$props$nodeRef$c, _this$props;
8287 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);
8288 }
8289 render() /*: ReactElement<any>*/{
8290 const {
8291 axis,
8292 bounds,
8293 children,
8294 defaultPosition,
8295 defaultClassName,
8296 defaultClassNameDragging,
8297 defaultClassNameDragged,
8298 position,
8299 positionOffset,
8300 scale,
8301 ...draggableCoreProps
8302 } = this.props;
8303 let style = {};
8304 let svgTransform = null;
8305
8306 // If this is controlled, we don't want to move it - unless it's dragging.
8307 const controlled = Boolean(position);
8308 const draggable = !controlled || this.state.dragging;
8309 const validPosition = position || defaultPosition;
8310 const transformOpts = {
8311 // Set left if horizontal drag is enabled
8312 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
8313 // Set top if vertical drag is enabled
8314 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
8315 };
8316
8317 // If this element was SVG, we use the `transform` attribute.
8318 if (this.state.isElementSVG) {
8319 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
8320 } else {
8321 // Add a CSS transform to move the element around. This allows us to move the element around
8322 // without worrying about whether or not it is relatively or absolutely positioned.
8323 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
8324 // has a clean slate.
8325 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
8326 }
8327
8328 // Mark with class while dragging
8329 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
8330 [defaultClassNameDragging]: this.state.dragging,
8331 [defaultClassNameDragged]: this.state.dragged
8332 });
8333
8334 // Reuse the child provided
8335 // This makes it flexible to use whatever element is wanted (div, ul, etc)
8336 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
8337 onStart: this.onDragStart,
8338 onDrag: this.onDrag,
8339 onStop: this.onDragStop
8340 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
8341 className: className,
8342 style: {
8343 ...children.props.style,
8344 ...style
8345 },
8346 transform: svgTransform
8347 }));
8348 }
8349 }
8350 exports["default"] = Draggable;
8351 _defineProperty(Draggable, "displayName", 'Draggable');
8352 _defineProperty(Draggable, "propTypes", {
8353 // Accepts all props <DraggableCore> accepts.
8354 ..._DraggableCore.default.propTypes,
8355 /**
8356 * `axis` determines which axis the draggable can move.
8357 *
8358 * Note that all callbacks will still return data as normal. This only
8359 * controls flushing to the DOM.
8360 *
8361 * 'both' allows movement horizontally and vertically.
8362 * 'x' limits movement to horizontal axis.
8363 * 'y' limits movement to vertical axis.
8364 * 'none' limits all movement.
8365 *
8366 * Defaults to 'both'.
8367 */
8368 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
8369 /**
8370 * `bounds` determines the range of movement available to the element.
8371 * Available values are:
8372 *
8373 * 'parent' restricts movement within the Draggable's parent node.
8374 *
8375 * Alternatively, pass an object with the following properties, all of which are optional:
8376 *
8377 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
8378 *
8379 * All values are in px.
8380 *
8381 * Example:
8382 *
8383 * ```jsx
8384 * let App = React.createClass({
8385 * render: function () {
8386 * return (
8387 * <Draggable bounds={{right: 300, bottom: 300}}>
8388 * <div>Content</div>
8389 * </Draggable>
8390 * );
8391 * }
8392 * });
8393 * ```
8394 */
8395 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
8396 left: _propTypes.default.number,
8397 right: _propTypes.default.number,
8398 top: _propTypes.default.number,
8399 bottom: _propTypes.default.number
8400 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
8401 defaultClassName: _propTypes.default.string,
8402 defaultClassNameDragging: _propTypes.default.string,
8403 defaultClassNameDragged: _propTypes.default.string,
8404 /**
8405 * `defaultPosition` specifies the x and y that the dragged item should start at
8406 *
8407 * Example:
8408 *
8409 * ```jsx
8410 * let App = React.createClass({
8411 * render: function () {
8412 * return (
8413 * <Draggable defaultPosition={{x: 25, y: 25}}>
8414 * <div>I start with transformX: 25px and transformY: 25px;</div>
8415 * </Draggable>
8416 * );
8417 * }
8418 * });
8419 * ```
8420 */
8421 defaultPosition: _propTypes.default.shape({
8422 x: _propTypes.default.number,
8423 y: _propTypes.default.number
8424 }),
8425 positionOffset: _propTypes.default.shape({
8426 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
8427 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
8428 }),
8429 /**
8430 * `position`, if present, defines the current position of the element.
8431 *
8432 * This is similar to how form elements in React work - if no `position` is supplied, the component
8433 * is uncontrolled.
8434 *
8435 * Example:
8436 *
8437 * ```jsx
8438 * let App = React.createClass({
8439 * render: function () {
8440 * return (
8441 * <Draggable position={{x: 25, y: 25}}>
8442 * <div>I start with transformX: 25px and transformY: 25px;</div>
8443 * </Draggable>
8444 * );
8445 * }
8446 * });
8447 * ```
8448 */
8449 position: _propTypes.default.shape({
8450 x: _propTypes.default.number,
8451 y: _propTypes.default.number
8452 }),
8453 /**
8454 * These properties should be defined on the child, not here.
8455 */
8456 className: _shims.dontSetMe,
8457 style: _shims.dontSetMe,
8458 transform: _shims.dontSetMe
8459 });
8460 _defineProperty(Draggable, "defaultProps", {
8461 ..._DraggableCore.default.defaultProps,
8462 axis: 'both',
8463 bounds: false,
8464 defaultClassName: 'react-draggable',
8465 defaultClassNameDragging: 'react-draggable-dragging',
8466 defaultClassNameDragged: 'react-draggable-dragged',
8467 defaultPosition: {
8468 x: 0,
8469 y: 0
8470 },
8471 scale: 1
8472 });
8473
8474 /***/ }),
8475
8476 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
8477 /*!******************************************************************!*\
8478 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
8479 \******************************************************************/
8480 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8481
8482 "use strict";
8483
8484
8485 Object.defineProperty(exports, "__esModule", ({
8486 value: true
8487 }));
8488 exports["default"] = void 0;
8489 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8490 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
8491 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
8492 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
8493 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
8494 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8495 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
8496 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8497 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); }
8498 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; }
8499 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; }
8500 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8501 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); }
8502 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
8503 /*:: import type {Element as ReactElement} from 'react';*/
8504 // Simple abstraction for dragging events names.
8505 const eventsFor = {
8506 touch: {
8507 start: 'touchstart',
8508 move: 'touchmove',
8509 stop: 'touchend'
8510 },
8511 mouse: {
8512 start: 'mousedown',
8513 move: 'mousemove',
8514 stop: 'mouseup'
8515 }
8516 };
8517
8518 // Default to mouse events.
8519 let dragEventFor = eventsFor.mouse;
8520 /*:: export type DraggableData = {
8521 node: HTMLElement,
8522 x: number, y: number,
8523 deltaX: number, deltaY: number,
8524 lastX: number, lastY: number,
8525 };*/
8526 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
8527 /*:: export type ControlPosition = {x: number, y: number};*/
8528 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
8529 /*:: export type DraggableCoreDefaultProps = {
8530 allowAnyClick: boolean,
8531 disabled: boolean,
8532 enableUserSelectHack: boolean,
8533 onStart: DraggableEventHandler,
8534 onDrag: DraggableEventHandler,
8535 onStop: DraggableEventHandler,
8536 onMouseDown: (e: MouseEvent) => void,
8537 scale: number,
8538 };*/
8539 /*:: export type DraggableCoreProps = {
8540 ...DraggableCoreDefaultProps,
8541 cancel: string,
8542 children: ReactElement<any>,
8543 offsetParent: HTMLElement,
8544 grid: [number, number],
8545 handle: string,
8546 nodeRef?: ?React.ElementRef<any>,
8547 };*/
8548 //
8549 // Define <DraggableCore>.
8550 //
8551 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
8552 // work well with libraries that require more control over the element.
8553 //
8554
8555 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
8556 constructor() {
8557 super(...arguments);
8558 _defineProperty(this, "dragging", false);
8559 // Used while dragging to determine deltas.
8560 _defineProperty(this, "lastX", NaN);
8561 _defineProperty(this, "lastY", NaN);
8562 _defineProperty(this, "touchIdentifier", null);
8563 _defineProperty(this, "mounted", false);
8564 _defineProperty(this, "handleDragStart", e => {
8565 // Make it possible to attach event handlers on top of this one.
8566 this.props.onMouseDown(e);
8567
8568 // Only accept left-clicks.
8569 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
8570
8571 // Get nodes. Be sure to grab relative document (could be iframed)
8572 const thisNode = this.findDOMNode();
8573 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
8574 throw new Error('<DraggableCore> not mounted on DragStart!');
8575 }
8576 const {
8577 ownerDocument
8578 } = thisNode;
8579
8580 // Short circuit if handle or cancel prop was provided and selector doesn't match.
8581 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)) {
8582 return;
8583 }
8584
8585 // Prevent scrolling on mobile devices, like ipad/iphone.
8586 // Important that this is after handle/cancel.
8587 if (e.type === 'touchstart') e.preventDefault();
8588
8589 // Set touch identifier in component state if this is a touch event. This allows us to
8590 // distinguish between individual touches on multitouch screens by identifying which
8591 // touchpoint was set to this element.
8592 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
8593 this.touchIdentifier = touchIdentifier;
8594
8595 // Get the current drag point from the event. This is used as the offset.
8596 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
8597 if (position == null) return; // not possible but satisfies flow
8598 const {
8599 x,
8600 y
8601 } = position;
8602
8603 // Create an event object with all the data parents need to make a decision here.
8604 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8605 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
8606
8607 // Call event handler. If it returns explicit false, cancel.
8608 (0, _log.default)('calling', this.props.onStart);
8609 const shouldUpdate = this.props.onStart(e, coreEvent);
8610 if (shouldUpdate === false || this.mounted === false) return;
8611
8612 // Add a style to the body to disable user-select. This prevents text from
8613 // being selected all over the page.
8614 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
8615
8616 // Initiate dragging. Set the current x and y as offsets
8617 // so we know how much we've moved during the drag. This allows us
8618 // to drag elements around even if they have been moved, without issue.
8619 this.dragging = true;
8620 this.lastX = x;
8621 this.lastY = y;
8622
8623 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
8624 // this element. We use different events depending on whether or not we have detected that this
8625 // is a touch-capable device.
8626 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
8627 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
8628 });
8629 _defineProperty(this, "handleDrag", e => {
8630 // Get the current drag point from the event. This is used as the offset.
8631 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
8632 if (position == null) return;
8633 let {
8634 x,
8635 y
8636 } = position;
8637
8638 // Snap to grid if prop has been provided
8639 if (Array.isArray(this.props.grid)) {
8640 let deltaX = x - this.lastX,
8641 deltaY = y - this.lastY;
8642 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
8643 if (!deltaX && !deltaY) return; // skip useless drag
8644 x = this.lastX + deltaX, y = this.lastY + deltaY;
8645 }
8646 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8647 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
8648
8649 // Call event handler. If it returns explicit false, trigger end.
8650 const shouldUpdate = this.props.onDrag(e, coreEvent);
8651 if (shouldUpdate === false || this.mounted === false) {
8652 try {
8653 // $FlowIgnore
8654 this.handleDragStop(new MouseEvent('mouseup'));
8655 } catch (err) {
8656 // Old browsers
8657 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
8658 // I see why this insanity was deprecated
8659 // $FlowIgnore
8660 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
8661 this.handleDragStop(event);
8662 }
8663 return;
8664 }
8665 this.lastX = x;
8666 this.lastY = y;
8667 });
8668 _defineProperty(this, "handleDragStop", e => {
8669 if (!this.dragging) return;
8670 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
8671 if (position == null) return;
8672 let {
8673 x,
8674 y
8675 } = position;
8676
8677 // Snap to grid if prop has been provided
8678 if (Array.isArray(this.props.grid)) {
8679 let deltaX = x - this.lastX || 0;
8680 let deltaY = y - this.lastY || 0;
8681 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
8682 x = this.lastX + deltaX, y = this.lastY + deltaY;
8683 }
8684 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
8685
8686 // Call event handler
8687 const shouldContinue = this.props.onStop(e, coreEvent);
8688 if (shouldContinue === false || this.mounted === false) return false;
8689 const thisNode = this.findDOMNode();
8690 if (thisNode) {
8691 // Remove user-select hack
8692 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
8693 }
8694 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
8695
8696 // Reset the el.
8697 this.dragging = false;
8698 this.lastX = NaN;
8699 this.lastY = NaN;
8700 if (thisNode) {
8701 // Remove event handlers
8702 (0, _log.default)('DraggableCore: Removing handlers');
8703 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
8704 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
8705 }
8706 });
8707 _defineProperty(this, "onMouseDown", e => {
8708 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
8709
8710 return this.handleDragStart(e);
8711 });
8712 _defineProperty(this, "onMouseUp", e => {
8713 dragEventFor = eventsFor.mouse;
8714 return this.handleDragStop(e);
8715 });
8716 // Same as onMouseDown (start drag), but now consider this a touch device.
8717 _defineProperty(this, "onTouchStart", e => {
8718 // We're on a touch device now, so change the event handlers
8719 dragEventFor = eventsFor.touch;
8720 return this.handleDragStart(e);
8721 });
8722 _defineProperty(this, "onTouchEnd", e => {
8723 // We're on a touch device now, so change the event handlers
8724 dragEventFor = eventsFor.touch;
8725 return this.handleDragStop(e);
8726 });
8727 }
8728 componentDidMount() {
8729 this.mounted = true;
8730 // Touch handlers must be added with {passive: false} to be cancelable.
8731 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
8732 const thisNode = this.findDOMNode();
8733 if (thisNode) {
8734 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
8735 passive: false
8736 });
8737 }
8738 }
8739 componentWillUnmount() {
8740 this.mounted = false;
8741 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
8742 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
8743 const thisNode = this.findDOMNode();
8744 if (thisNode) {
8745 const {
8746 ownerDocument
8747 } = thisNode;
8748 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
8749 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
8750 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
8751 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
8752 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
8753 passive: false
8754 });
8755 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
8756 }
8757 }
8758
8759 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
8760 // the underlying DOM node ourselves. See the README for more information.
8761 findDOMNode() /*: ?HTMLElement*/{
8762 var _this$props, _this$props2;
8763 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);
8764 }
8765 render() /*: React.Element<any>*/{
8766 // Reuse the child provided
8767 // This makes it flexible to use whatever element is wanted (div, ul, etc)
8768 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
8769 // Note: mouseMove handler is attached to document so it will still function
8770 // when the user drags quickly and leaves the bounds of the element.
8771 onMouseDown: this.onMouseDown,
8772 onMouseUp: this.onMouseUp,
8773 // onTouchStart is added on `componentDidMount` so they can be added with
8774 // {passive: false}, which allows it to cancel. See
8775 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
8776 onTouchEnd: this.onTouchEnd
8777 });
8778 }
8779 }
8780 exports["default"] = DraggableCore;
8781 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
8782 _defineProperty(DraggableCore, "propTypes", {
8783 /**
8784 * `allowAnyClick` allows dragging using any mouse button.
8785 * By default, we only accept the left button.
8786 *
8787 * Defaults to `false`.
8788 */
8789 allowAnyClick: _propTypes.default.bool,
8790 children: _propTypes.default.node.isRequired,
8791 /**
8792 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
8793 * with the exception of `onMouseDown`, will not fire.
8794 */
8795 disabled: _propTypes.default.bool,
8796 /**
8797 * By default, we add 'user-select:none' attributes to the document body
8798 * to prevent ugly text selection during drag. If this is causing problems
8799 * for your app, set this to `false`.
8800 */
8801 enableUserSelectHack: _propTypes.default.bool,
8802 /**
8803 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
8804 * instead of using the parent node.
8805 */
8806 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
8807 if (props[propName] && props[propName].nodeType !== 1) {
8808 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
8809 }
8810 },
8811 /**
8812 * `grid` specifies the x and y that dragging should snap to.
8813 */
8814 grid: _propTypes.default.arrayOf(_propTypes.default.number),
8815 /**
8816 * `handle` specifies a selector to be used as the handle that initiates drag.
8817 *
8818 * Example:
8819 *
8820 * ```jsx
8821 * let App = React.createClass({
8822 * render: function () {
8823 * return (
8824 * <Draggable handle=".handle">
8825 * <div>
8826 * <div className="handle">Click me to drag</div>
8827 * <div>This is some other content</div>
8828 * </div>
8829 * </Draggable>
8830 * );
8831 * }
8832 * });
8833 * ```
8834 */
8835 handle: _propTypes.default.string,
8836 /**
8837 * `cancel` specifies a selector to be used to prevent drag initialization.
8838 *
8839 * Example:
8840 *
8841 * ```jsx
8842 * let App = React.createClass({
8843 * render: function () {
8844 * return(
8845 * <Draggable cancel=".cancel">
8846 * <div>
8847 * <div className="cancel">You can't drag from here</div>
8848 * <div>Dragging here works fine</div>
8849 * </div>
8850 * </Draggable>
8851 * );
8852 * }
8853 * });
8854 * ```
8855 */
8856 cancel: _propTypes.default.string,
8857 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
8858 * Unfortunately, in order for <Draggable> to work properly, we need raw access
8859 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
8860 * as in this example:
8861 *
8862 * function MyComponent() {
8863 * const nodeRef = React.useRef(null);
8864 * return (
8865 * <Draggable nodeRef={nodeRef}>
8866 * <div ref={nodeRef}>Example Target</div>
8867 * </Draggable>
8868 * );
8869 * }
8870 *
8871 * This can be used for arbitrarily nested components, so long as the ref ends up
8872 * pointing to the actual child DOM node and not a custom component.
8873 */
8874 nodeRef: _propTypes.default.object,
8875 /**
8876 * Called when dragging starts.
8877 * If this function returns the boolean false, dragging will be canceled.
8878 */
8879 onStart: _propTypes.default.func,
8880 /**
8881 * Called while dragging.
8882 * If this function returns the boolean false, dragging will be canceled.
8883 */
8884 onDrag: _propTypes.default.func,
8885 /**
8886 * Called when dragging stops.
8887 * If this function returns the boolean false, the drag will remain active.
8888 */
8889 onStop: _propTypes.default.func,
8890 /**
8891 * A workaround option which can be passed if onMouseDown needs to be accessed,
8892 * since it'll always be blocked (as there is internal use of onMouseDown)
8893 */
8894 onMouseDown: _propTypes.default.func,
8895 /**
8896 * `scale`, if set, applies scaling while dragging an element
8897 */
8898 scale: _propTypes.default.number,
8899 /**
8900 * These properties should be defined on the child, not here.
8901 */
8902 className: _shims.dontSetMe,
8903 style: _shims.dontSetMe,
8904 transform: _shims.dontSetMe
8905 });
8906 _defineProperty(DraggableCore, "defaultProps", {
8907 allowAnyClick: false,
8908 // by default only accept left click
8909 disabled: false,
8910 enableUserSelectHack: true,
8911 onStart: function () {},
8912 onDrag: function () {},
8913 onStop: function () {},
8914 onMouseDown: function () {},
8915 scale: 1
8916 });
8917
8918 /***/ }),
8919
8920 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
8921 /*!********************************************************!*\
8922 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
8923 \********************************************************/
8924 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8925
8926 "use strict";
8927
8928
8929 const {
8930 default: Draggable,
8931 DraggableCore
8932 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
8933
8934 // 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'.
8935 // See https://github.com/mzabriskie/react-draggable/pull/254
8936 // and https://github.com/mzabriskie/react-draggable/issues/266
8937 module.exports = Draggable;
8938 module.exports["default"] = Draggable;
8939 module.exports.DraggableCore = DraggableCore;
8940
8941 /***/ }),
8942
8943 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
8944 /*!*****************************************************************!*\
8945 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
8946 \*****************************************************************/
8947 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8948
8949 "use strict";
8950
8951
8952 Object.defineProperty(exports, "__esModule", ({
8953 value: true
8954 }));
8955 exports.addClassName = addClassName;
8956 exports.addEvent = addEvent;
8957 exports.addUserSelectStyles = addUserSelectStyles;
8958 exports.createCSSTransform = createCSSTransform;
8959 exports.createSVGTransform = createSVGTransform;
8960 exports.getTouch = getTouch;
8961 exports.getTouchIdentifier = getTouchIdentifier;
8962 exports.getTranslation = getTranslation;
8963 exports.innerHeight = innerHeight;
8964 exports.innerWidth = innerWidth;
8965 exports.matchesSelector = matchesSelector;
8966 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
8967 exports.offsetXYFromParent = offsetXYFromParent;
8968 exports.outerHeight = outerHeight;
8969 exports.outerWidth = outerWidth;
8970 exports.removeClassName = removeClassName;
8971 exports.removeEvent = removeEvent;
8972 exports.removeUserSelectStyles = removeUserSelectStyles;
8973 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
8974 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
8975 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); }
8976 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; }
8977 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
8978 let matchesSelectorFunc = '';
8979 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
8980 if (!matchesSelectorFunc) {
8981 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
8982 // $FlowIgnore: Doesn't think elements are indexable
8983 return (0, _shims.isFunction)(el[method]);
8984 });
8985 }
8986
8987 // Might not be found entirely (not an Element?) - in that case, bail
8988 // $FlowIgnore: Doesn't think elements are indexable
8989 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
8990
8991 // $FlowIgnore: Doesn't think elements are indexable
8992 return el[matchesSelectorFunc](selector);
8993 }
8994
8995 // Works up the tree to the draggable itself attempting to match selector.
8996 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
8997 let node = el;
8998 do {
8999 if (matchesSelector(node, selector)) return true;
9000 if (node === baseNode) return false;
9001 // $FlowIgnore[incompatible-type]
9002 node = node.parentNode;
9003 } while (node);
9004 return false;
9005 }
9006 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9007 if (!el) return;
9008 const options = {
9009 capture: true,
9010 ...inputOptions
9011 };
9012 // $FlowIgnore[method-unbinding]
9013 if (el.addEventListener) {
9014 el.addEventListener(event, handler, options);
9015 } else if (el.attachEvent) {
9016 el.attachEvent('on' + event, handler);
9017 } else {
9018 // $FlowIgnore: Doesn't think elements are indexable
9019 el['on' + event] = handler;
9020 }
9021 }
9022 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9023 if (!el) return;
9024 const options = {
9025 capture: true,
9026 ...inputOptions
9027 };
9028 // $FlowIgnore[method-unbinding]
9029 if (el.removeEventListener) {
9030 el.removeEventListener(event, handler, options);
9031 } else if (el.detachEvent) {
9032 el.detachEvent('on' + event, handler);
9033 } else {
9034 // $FlowIgnore: Doesn't think elements are indexable
9035 el['on' + event] = null;
9036 }
9037 }
9038 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9039 // This is deliberately excluding margin for our calculations, since we are using
9040 // offsetTop which is including margin. See getBoundPosition
9041 let height = node.clientHeight;
9042 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9043 height += (0, _shims.int)(computedStyle.borderTopWidth);
9044 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9045 return height;
9046 }
9047 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9048 // This is deliberately excluding margin for our calculations, since we are using
9049 // offsetLeft which is including margin. See getBoundPosition
9050 let width = node.clientWidth;
9051 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9052 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9053 width += (0, _shims.int)(computedStyle.borderRightWidth);
9054 return width;
9055 }
9056 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9057 let height = node.clientHeight;
9058 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9059 height -= (0, _shims.int)(computedStyle.paddingTop);
9060 height -= (0, _shims.int)(computedStyle.paddingBottom);
9061 return height;
9062 }
9063 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9064 let width = node.clientWidth;
9065 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9066 width -= (0, _shims.int)(computedStyle.paddingLeft);
9067 width -= (0, _shims.int)(computedStyle.paddingRight);
9068 return width;
9069 }
9070 /*:: interface EventWithOffset {
9071 clientX: number, clientY: number
9072 }*/
9073 // Get from offsetParent
9074 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9075 const isBody = offsetParent === offsetParent.ownerDocument.body;
9076 const offsetParentRect = isBody ? {
9077 left: 0,
9078 top: 0
9079 } : offsetParent.getBoundingClientRect();
9080 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9081 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9082 return {
9083 x,
9084 y
9085 };
9086 }
9087 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
9088 const translation = getTranslation(controlPos, positionOffset, 'px');
9089 return {
9090 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
9091 };
9092 }
9093 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
9094 const translation = getTranslation(controlPos, positionOffset, '');
9095 return translation;
9096 }
9097 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
9098 let {
9099 x,
9100 y
9101 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
9102 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
9103 if (positionOffset) {
9104 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
9105 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
9106 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
9107 }
9108 return translation;
9109 }
9110 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
9111 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
9112 }
9113 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
9114 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
9115 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
9116 }
9117
9118 // User-select Hacks:
9119 //
9120 // Useful for preventing blue highlights all over everything when dragging.
9121
9122 // Note we're passing `document` b/c we could be iframed
9123 function addUserSelectStyles(doc /*: ?Document*/) {
9124 if (!doc) return;
9125 let styleEl = doc.getElementById('react-draggable-style-el');
9126 if (!styleEl) {
9127 styleEl = doc.createElement('style');
9128 styleEl.type = 'text/css';
9129 styleEl.id = 'react-draggable-style-el';
9130 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
9131 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
9132 doc.getElementsByTagName('head')[0].appendChild(styleEl);
9133 }
9134 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
9135 }
9136 function removeUserSelectStyles(doc /*: ?Document*/) {
9137 if (!doc) return;
9138 try {
9139 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
9140 // $FlowIgnore: IE
9141 if (doc.selection) {
9142 // $FlowIgnore: IE
9143 doc.selection.empty();
9144 } else {
9145 // Remove selection caused by scroll, unless it's a focused input
9146 // (we use doc.defaultView in case we're in an iframe)
9147 const selection = (doc.defaultView || window).getSelection();
9148 if (selection && selection.type !== 'Caret') {
9149 selection.removeAllRanges();
9150 }
9151 }
9152 } catch (e) {
9153 // probably IE
9154 }
9155 }
9156 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
9157 if (el.classList) {
9158 el.classList.add(className);
9159 } else {
9160 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
9161 el.className += " ".concat(className);
9162 }
9163 }
9164 }
9165 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
9166 if (el.classList) {
9167 el.classList.remove(className);
9168 } else {
9169 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
9170 }
9171 }
9172
9173 /***/ }),
9174
9175 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
9176 /*!********************************************************************!*\
9177 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
9178 \********************************************************************/
9179 /***/ ((__unused_webpack_module, exports) => {
9180
9181 "use strict";
9182
9183
9184 Object.defineProperty(exports, "__esModule", ({
9185 value: true
9186 }));
9187 exports.browserPrefixToKey = browserPrefixToKey;
9188 exports.browserPrefixToStyle = browserPrefixToStyle;
9189 exports["default"] = void 0;
9190 exports.getPrefix = getPrefix;
9191 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
9192 function getPrefix() /*: string*/{
9193 var _window$document;
9194 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
9195 // Ensure we're running in an environment where there is actually a global
9196 // `window` obj
9197 if (typeof window === 'undefined') return '';
9198
9199 // If we're in a pseudo-browser server-side environment, this access
9200 // path may not exist, so bail out if it doesn't.
9201 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;
9202 if (!style) return '';
9203 if (prop in style) return '';
9204 for (let i = 0; i < prefixes.length; i++) {
9205 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
9206 }
9207 return '';
9208 }
9209 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
9210 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
9211 }
9212 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
9213 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
9214 }
9215 function kebabToTitleCase(str /*: string*/) /*: string*/{
9216 let out = '';
9217 let shouldCapitalize = true;
9218 for (let i = 0; i < str.length; i++) {
9219 if (shouldCapitalize) {
9220 out += str[i].toUpperCase();
9221 shouldCapitalize = false;
9222 } else if (str[i] === '-') {
9223 shouldCapitalize = true;
9224 } else {
9225 out += str[i];
9226 }
9227 }
9228 return out;
9229 }
9230
9231 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
9232 // Note that you may have to re-test for certain things; for instance, Chrome 50
9233 // can handle unprefixed `transform`, but not unprefixed `user-select`
9234 var _default = exports["default"] = (getPrefix() /*: string*/);
9235
9236 /***/ }),
9237
9238 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
9239 /*!**************************************************************!*\
9240 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
9241 \**************************************************************/
9242 /***/ ((__unused_webpack_module, exports) => {
9243
9244 "use strict";
9245
9246
9247 Object.defineProperty(exports, "__esModule", ({
9248 value: true
9249 }));
9250 exports["default"] = log;
9251 /*eslint no-console:0*/
9252 function log() {
9253 if (false) {}
9254 }
9255
9256 /***/ }),
9257
9258 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
9259 /*!**********************************************************************!*\
9260 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
9261 \**********************************************************************/
9262 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9263
9264 "use strict";
9265
9266
9267 Object.defineProperty(exports, "__esModule", ({
9268 value: true
9269 }));
9270 exports.canDragX = canDragX;
9271 exports.canDragY = canDragY;
9272 exports.createCoreData = createCoreData;
9273 exports.createDraggableData = createDraggableData;
9274 exports.getBoundPosition = getBoundPosition;
9275 exports.getControlPosition = getControlPosition;
9276 exports.snapToGrid = snapToGrid;
9277 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9278 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9279 /*:: import type Draggable from '../Draggable';*/
9280 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
9281 /*:: import type DraggableCore from '../DraggableCore';*/
9282 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
9283 // If no bounds, short-circuit and move on
9284 if (!draggable.props.bounds) return [x, y];
9285
9286 // Clone new bounds
9287 let {
9288 bounds
9289 } = draggable.props;
9290 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
9291 const node = findDOMNode(draggable);
9292 if (typeof bounds === 'string') {
9293 const {
9294 ownerDocument
9295 } = node;
9296 const ownerWindow = ownerDocument.defaultView;
9297 let boundNode;
9298 if (bounds === 'parent') {
9299 boundNode = node.parentNode;
9300 } else {
9301 boundNode = ownerDocument.querySelector(bounds);
9302 }
9303 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
9304 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
9305 }
9306 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
9307 const nodeStyle = ownerWindow.getComputedStyle(node);
9308 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
9309 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
9310 bounds = {
9311 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
9312 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
9313 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
9314 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
9315 };
9316 }
9317
9318 // Keep x and y below right and bottom limits...
9319 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
9320 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
9321
9322 // But above left and top limits.
9323 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
9324 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
9325 return [x, y];
9326 }
9327 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
9328 const x = Math.round(pendingX / grid[0]) * grid[0];
9329 const y = Math.round(pendingY / grid[1]) * grid[1];
9330 return [x, y];
9331 }
9332 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
9333 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
9334 }
9335 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
9336 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
9337 }
9338
9339 // Get {x, y} positions from event.
9340 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
9341 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
9342 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
9343 const node = findDOMNode(draggableCore);
9344 // User can provide an offsetParent if desired.
9345 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
9346 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
9347 }
9348
9349 // Create an data object exposed by <DraggableCore>'s events
9350 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
9351 const isStart = !(0, _shims.isNum)(draggable.lastX);
9352 const node = findDOMNode(draggable);
9353 if (isStart) {
9354 // If this is our first move, use the x and y as last coords.
9355 return {
9356 node,
9357 deltaX: 0,
9358 deltaY: 0,
9359 lastX: x,
9360 lastY: y,
9361 x,
9362 y
9363 };
9364 } else {
9365 // Otherwise calculate proper values.
9366 return {
9367 node,
9368 deltaX: x - draggable.lastX,
9369 deltaY: y - draggable.lastY,
9370 lastX: draggable.lastX,
9371 lastY: draggable.lastY,
9372 x,
9373 y
9374 };
9375 }
9376 }
9377
9378 // Create an data exposed by <Draggable>'s events
9379 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
9380 const scale = draggable.props.scale;
9381 return {
9382 node: coreData.node,
9383 x: draggable.state.x + coreData.deltaX / scale,
9384 y: draggable.state.y + coreData.deltaY / scale,
9385 deltaX: coreData.deltaX / scale,
9386 deltaY: coreData.deltaY / scale,
9387 lastX: draggable.state.x,
9388 lastY: draggable.state.y
9389 };
9390 }
9391
9392 // A lot faster than stringify/parse
9393 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
9394 return {
9395 left: bounds.left,
9396 top: bounds.top,
9397 right: bounds.right,
9398 bottom: bounds.bottom
9399 };
9400 }
9401 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
9402 const node = draggable.findDOMNode();
9403 if (!node) {
9404 throw new Error('<DraggableCore>: Unmounted during event!');
9405 }
9406 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
9407 return node;
9408 }
9409
9410 /***/ }),
9411
9412 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
9413 /*!****************************************************************!*\
9414 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
9415 \****************************************************************/
9416 /***/ ((__unused_webpack_module, exports) => {
9417
9418 "use strict";
9419
9420
9421 Object.defineProperty(exports, "__esModule", ({
9422 value: true
9423 }));
9424 exports.dontSetMe = dontSetMe;
9425 exports.findInArray = findInArray;
9426 exports.int = int;
9427 exports.isFunction = isFunction;
9428 exports.isNum = isNum;
9429 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
9430 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
9431 for (let i = 0, length = array.length; i < length; i++) {
9432 if (callback.apply(callback, [array[i], i, array])) return array[i];
9433 }
9434 }
9435 function isFunction(func /*: any*/) /*: boolean %checks*/{
9436 // $FlowIgnore[method-unbinding]
9437 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
9438 }
9439 function isNum(num /*: any*/) /*: boolean %checks*/{
9440 return typeof num === 'number' && !isNaN(num);
9441 }
9442 function int(a /*: string*/) /*: number*/{
9443 return parseInt(a, 10);
9444 }
9445 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
9446 if (props[propName]) {
9447 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
9448 }
9449 }
9450
9451 /***/ }),
9452
9453 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
9454 /*!************************************************************************!*\
9455 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
9456 \************************************************************************/
9457 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9458
9459 "use strict";
9460 __webpack_require__.r(__webpack_exports__);
9461 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9462 /* harmony export */ clsx: () => (/* binding */ clsx),
9463 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
9464 /* harmony export */ });
9465 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);
9466
9467 /***/ }),
9468
9469 /***/ "../node_modules/validator/lib/isFQDN.js":
9470 /*!***********************************************!*\
9471 !*** ../node_modules/validator/lib/isFQDN.js ***!
9472 \***********************************************/
9473 /***/ ((module, exports, __webpack_require__) => {
9474
9475 "use strict";
9476
9477
9478 Object.defineProperty(exports, "__esModule", ({
9479 value: true
9480 }));
9481 exports["default"] = isFQDN;
9482 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9483 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
9484 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9485 var default_fqdn_options = {
9486 require_tld: true,
9487 allow_underscores: false,
9488 allow_trailing_dot: false,
9489 allow_numeric_tld: false,
9490 allow_wildcard: false,
9491 ignore_max_length: false
9492 };
9493 function isFQDN(str, options) {
9494 (0, _assertString.default)(str);
9495 options = (0, _merge.default)(options, default_fqdn_options);
9496
9497 /* Remove the optional trailing dot before checking validity */
9498 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
9499 str = str.substring(0, str.length - 1);
9500 }
9501
9502 /* Remove the optional wildcard before checking validity */
9503 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
9504 str = str.substring(2);
9505 }
9506 var parts = str.split('.');
9507 var tld = parts[parts.length - 1];
9508 if (options.require_tld) {
9509 // disallow fqdns without tld
9510 if (parts.length < 2) {
9511 return false;
9512 }
9513 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
9514 return false;
9515 }
9516
9517 // disallow spaces
9518 if (/\s/.test(tld)) {
9519 return false;
9520 }
9521 }
9522
9523 // reject numeric TLDs
9524 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
9525 return false;
9526 }
9527 return parts.every(function (part) {
9528 if (part.length > 63 && !options.ignore_max_length) {
9529 return false;
9530 }
9531 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
9532 return false;
9533 }
9534
9535 // disallow full-width chars
9536 if (/[\uff01-\uff5e]/.test(part)) {
9537 return false;
9538 }
9539
9540 // disallow parts starting or ending with hyphen
9541 if (/^-|-$/.test(part)) {
9542 return false;
9543 }
9544 if (!options.allow_underscores && /_/.test(part)) {
9545 return false;
9546 }
9547 return true;
9548 });
9549 }
9550 module.exports = exports.default;
9551 module.exports["default"] = exports.default;
9552
9553 /***/ }),
9554
9555 /***/ "../node_modules/validator/lib/isIP.js":
9556 /*!*********************************************!*\
9557 !*** ../node_modules/validator/lib/isIP.js ***!
9558 \*********************************************/
9559 /***/ ((module, exports, __webpack_require__) => {
9560
9561 "use strict";
9562
9563
9564 Object.defineProperty(exports, "__esModule", ({
9565 value: true
9566 }));
9567 exports["default"] = isIP;
9568 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9569 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9570 /**
9571 11.3. Examples
9572
9573 The following addresses
9574
9575 fe80::1234 (on the 1st link of the node)
9576 ff02::5678 (on the 5th link of the node)
9577 ff08::9abc (on the 10th organization of the node)
9578
9579 would be represented as follows:
9580
9581 fe80::1234%1
9582 ff02::5678%5
9583 ff08::9abc%10
9584
9585 (Here we assume a natural translation from a zone index to the
9586 <zone_id> part, where the Nth zone of any scope is translated into
9587 "N".)
9588
9589 If we use interface names as <zone_id>, those addresses could also be
9590 represented as follows:
9591
9592 fe80::1234%ne0
9593 ff02::5678%pvc1.3
9594 ff08::9abc%interface10
9595
9596 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
9597 to the 5th link, and "interface10" belongs to the 10th organization.
9598 * * */
9599 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
9600 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
9601 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
9602 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
9603 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,})?$');
9604 function isIP(str) {
9605 var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
9606 (0, _assertString.default)(str);
9607 version = String(version);
9608 if (!version) {
9609 return isIP(str, 4) || isIP(str, 6);
9610 }
9611 if (version === '4') {
9612 return IPv4AddressRegExp.test(str);
9613 }
9614 if (version === '6') {
9615 return IPv6AddressRegExp.test(str);
9616 }
9617 return false;
9618 }
9619 module.exports = exports.default;
9620 module.exports["default"] = exports.default;
9621
9622 /***/ }),
9623
9624 /***/ "../node_modules/validator/lib/isURL.js":
9625 /*!**********************************************!*\
9626 !*** ../node_modules/validator/lib/isURL.js ***!
9627 \**********************************************/
9628 /***/ ((module, exports, __webpack_require__) => {
9629
9630 "use strict";
9631
9632
9633 Object.defineProperty(exports, "__esModule", ({
9634 value: true
9635 }));
9636 exports["default"] = isURL;
9637 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
9638 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
9639 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
9640 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
9641 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9642 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9643 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."); }
9644 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); }
9645 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; }
9646 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; } }
9647 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9648 /*
9649 options for isURL method
9650
9651 require_protocol - if set as true isURL will return false if protocol is not present in the URL
9652 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option
9653 protocols - valid protocols can be modified with this option
9654 require_host - if set as false isURL will not check if host is present in the URL
9655 require_port - if set as true isURL will check if port is present in the URL
9656 allow_protocol_relative_urls - if set as true protocol relative URLs will be allowed
9657 validate_length - if set as false isURL will skip string length validation (IE maximum is 2083)
9658
9659 */
9660
9661 var default_url_options = {
9662 protocols: ['http', 'https', 'ftp'],
9663 require_tld: true,
9664 require_protocol: false,
9665 require_host: true,
9666 require_port: false,
9667 require_valid_protocol: true,
9668 allow_underscores: false,
9669 allow_trailing_dot: false,
9670 allow_protocol_relative_urls: false,
9671 allow_fragments: true,
9672 allow_query_components: true,
9673 validate_length: true
9674 };
9675 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
9676 function isRegExp(obj) {
9677 return Object.prototype.toString.call(obj) === '[object RegExp]';
9678 }
9679 function checkHost(host, matches) {
9680 for (var i = 0; i < matches.length; i++) {
9681 var match = matches[i];
9682 if (host === match || isRegExp(match) && match.test(host)) {
9683 return true;
9684 }
9685 }
9686 return false;
9687 }
9688 function isURL(url, options) {
9689 (0, _assertString.default)(url);
9690 if (!url || /[\s<>]/.test(url)) {
9691 return false;
9692 }
9693 if (url.indexOf('mailto:') === 0) {
9694 return false;
9695 }
9696 options = (0, _merge.default)(options, default_url_options);
9697 if (options.validate_length && url.length >= 2083) {
9698 return false;
9699 }
9700 if (!options.allow_fragments && url.includes('#')) {
9701 return false;
9702 }
9703 if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {
9704 return false;
9705 }
9706 var protocol, auth, host, hostname, port, port_str, split, ipv6;
9707 split = url.split('#');
9708 url = split.shift();
9709 split = url.split('?');
9710 url = split.shift();
9711 split = url.split('://');
9712 if (split.length > 1) {
9713 protocol = split.shift().toLowerCase();
9714 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
9715 return false;
9716 }
9717 } else if (options.require_protocol) {
9718 return false;
9719 } else if (url.slice(0, 2) === '//') {
9720 if (!options.allow_protocol_relative_urls) {
9721 return false;
9722 }
9723 split[0] = url.slice(2);
9724 }
9725 url = split.join('://');
9726 if (url === '') {
9727 return false;
9728 }
9729 split = url.split('/');
9730 url = split.shift();
9731 if (url === '' && !options.require_host) {
9732 return true;
9733 }
9734 split = url.split('@');
9735 if (split.length > 1) {
9736 if (options.disallow_auth) {
9737 return false;
9738 }
9739 if (split[0] === '') {
9740 return false;
9741 }
9742 auth = split.shift();
9743 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
9744 return false;
9745 }
9746 var _auth$split = auth.split(':'),
9747 _auth$split2 = _slicedToArray(_auth$split, 2),
9748 user = _auth$split2[0],
9749 password = _auth$split2[1];
9750 if (user === '' && password === '') {
9751 return false;
9752 }
9753 }
9754 hostname = split.join('@');
9755 port_str = null;
9756 ipv6 = null;
9757 var ipv6_match = hostname.match(wrapped_ipv6);
9758 if (ipv6_match) {
9759 host = '';
9760 ipv6 = ipv6_match[1];
9761 port_str = ipv6_match[2] || null;
9762 } else {
9763 split = hostname.split(':');
9764 host = split.shift();
9765 if (split.length) {
9766 port_str = split.join(':');
9767 }
9768 }
9769 if (port_str !== null && port_str.length > 0) {
9770 port = parseInt(port_str, 10);
9771 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
9772 return false;
9773 }
9774 } else if (options.require_port) {
9775 return false;
9776 }
9777 if (options.host_whitelist) {
9778 return checkHost(host, options.host_whitelist);
9779 }
9780 if (host === '' && !options.require_host) {
9781 return true;
9782 }
9783 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
9784 return false;
9785 }
9786 host = host || ipv6;
9787 if (options.host_blacklist && checkHost(host, options.host_blacklist)) {
9788 return false;
9789 }
9790 return true;
9791 }
9792 module.exports = exports.default;
9793 module.exports["default"] = exports.default;
9794
9795 /***/ }),
9796
9797 /***/ "../node_modules/validator/lib/util/assertString.js":
9798 /*!**********************************************************!*\
9799 !*** ../node_modules/validator/lib/util/assertString.js ***!
9800 \**********************************************************/
9801 /***/ ((module, exports) => {
9802
9803 "use strict";
9804
9805
9806 Object.defineProperty(exports, "__esModule", ({
9807 value: true
9808 }));
9809 exports["default"] = assertString;
9810 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); }
9811 function assertString(input) {
9812 var isString = typeof input === 'string' || input instanceof String;
9813 if (!isString) {
9814 var invalidType = _typeof(input);
9815 if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;
9816 throw new TypeError("Expected a string but received a ".concat(invalidType));
9817 }
9818 }
9819 module.exports = exports.default;
9820 module.exports["default"] = exports.default;
9821
9822 /***/ }),
9823
9824 /***/ "../node_modules/validator/lib/util/merge.js":
9825 /*!***************************************************!*\
9826 !*** ../node_modules/validator/lib/util/merge.js ***!
9827 \***************************************************/
9828 /***/ ((module, exports) => {
9829
9830 "use strict";
9831
9832
9833 Object.defineProperty(exports, "__esModule", ({
9834 value: true
9835 }));
9836 exports["default"] = merge;
9837 function merge() {
9838 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9839 var defaults = arguments.length > 1 ? arguments[1] : undefined;
9840 for (var key in defaults) {
9841 if (typeof obj[key] === 'undefined') {
9842 obj[key] = defaults[key];
9843 }
9844 }
9845 return obj;
9846 }
9847 module.exports = exports.default;
9848 module.exports["default"] = exports.default;
9849
9850 /***/ }),
9851
9852 /***/ "react":
9853 /*!************************!*\
9854 !*** external "React" ***!
9855 \************************/
9856 /***/ ((module) => {
9857
9858 "use strict";
9859 module.exports = React;
9860
9861 /***/ }),
9862
9863 /***/ "react-dom":
9864 /*!***************************!*\
9865 !*** external "ReactDOM" ***!
9866 \***************************/
9867 /***/ ((module) => {
9868
9869 "use strict";
9870 module.exports = ReactDOM;
9871
9872 /***/ }),
9873
9874 /***/ "@elementor/icons":
9875 /*!************************************!*\
9876 !*** external "elementorV2.icons" ***!
9877 \************************************/
9878 /***/ ((module) => {
9879
9880 "use strict";
9881 module.exports = elementorV2.icons;
9882
9883 /***/ }),
9884
9885 /***/ "@elementor/ui":
9886 /*!*********************************!*\
9887 !*** external "elementorV2.ui" ***!
9888 \*********************************/
9889 /***/ ((module) => {
9890
9891 "use strict";
9892 module.exports = elementorV2.ui;
9893
9894 /***/ }),
9895
9896 /***/ "@wordpress/i18n":
9897 /*!**************************!*\
9898 !*** external "wp.i18n" ***!
9899 \**************************/
9900 /***/ ((module) => {
9901
9902 "use strict";
9903 module.exports = wp.i18n;
9904
9905 /***/ }),
9906
9907 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
9908 /*!******************************************************************!*\
9909 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
9910 \******************************************************************/
9911 /***/ ((module) => {
9912
9913 function _arrayLikeToArray(r, a) {
9914 (null == a || a > r.length) && (a = r.length);
9915 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
9916 return n;
9917 }
9918 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
9919
9920 /***/ }),
9921
9922 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
9923 /*!****************************************************************!*\
9924 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
9925 \****************************************************************/
9926 /***/ ((module) => {
9927
9928 function _arrayWithHoles(r) {
9929 if (Array.isArray(r)) return r;
9930 }
9931 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
9932
9933 /***/ }),
9934
9935 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
9936 /*!*******************************************************************!*\
9937 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
9938 \*******************************************************************/
9939 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9940
9941 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
9942 function _arrayWithoutHoles(r) {
9943 if (Array.isArray(r)) return arrayLikeToArray(r);
9944 }
9945 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
9946
9947 /***/ }),
9948
9949 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
9950 /*!***********************************************************************!*\
9951 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
9952 \***********************************************************************/
9953 /***/ ((module) => {
9954
9955 function _assertThisInitialized(e) {
9956 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
9957 return e;
9958 }
9959 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
9960
9961 /***/ }),
9962
9963 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
9964 /*!******************************************************************!*\
9965 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
9966 \******************************************************************/
9967 /***/ ((module) => {
9968
9969 function asyncGeneratorStep(n, t, e, r, o, a, c) {
9970 try {
9971 var i = n[a](c),
9972 u = i.value;
9973 } catch (n) {
9974 return void e(n);
9975 }
9976 i.done ? t(u) : Promise.resolve(u).then(r, o);
9977 }
9978 function _asyncToGenerator(n) {
9979 return function () {
9980 var t = this,
9981 e = arguments;
9982 return new Promise(function (r, o) {
9983 var a = n.apply(t, e);
9984 function _next(n) {
9985 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
9986 }
9987 function _throw(n) {
9988 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
9989 }
9990 _next(void 0);
9991 });
9992 };
9993 }
9994 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
9995
9996 /***/ }),
9997
9998 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
9999 /*!****************************************************************!*\
10000 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
10001 \****************************************************************/
10002 /***/ ((module) => {
10003
10004 function _classCallCheck(a, n) {
10005 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
10006 }
10007 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
10008
10009 /***/ }),
10010
10011 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
10012 /*!*************************************************************!*\
10013 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
10014 \*************************************************************/
10015 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10016
10017 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
10018 function _defineProperties(e, r) {
10019 for (var t = 0; t < r.length; t++) {
10020 var o = r[t];
10021 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
10022 }
10023 }
10024 function _createClass(e, r, t) {
10025 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
10026 writable: !1
10027 }), e;
10028 }
10029 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
10030
10031 /***/ }),
10032
10033 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
10034 /*!****************************************************************!*\
10035 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
10036 \****************************************************************/
10037 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10038
10039 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
10040 function _defineProperty(e, r, t) {
10041 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
10042 value: t,
10043 enumerable: !0,
10044 configurable: !0,
10045 writable: !0
10046 }) : e[r] = t, e;
10047 }
10048 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
10049
10050 /***/ }),
10051
10052 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
10053 /*!*********************************************************!*\
10054 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
10055 \*********************************************************/
10056 /***/ ((module) => {
10057
10058 function _extends() {
10059 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
10060 for (var e = 1; e < arguments.length; e++) {
10061 var t = arguments[e];
10062 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
10063 }
10064 return n;
10065 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
10066 }
10067 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
10068
10069 /***/ }),
10070
10071 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
10072 /*!****************************************************************!*\
10073 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
10074 \****************************************************************/
10075 /***/ ((module) => {
10076
10077 function _getPrototypeOf(t) {
10078 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
10079 return t.__proto__ || Object.getPrototypeOf(t);
10080 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
10081 }
10082 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
10083
10084 /***/ }),
10085
10086 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
10087 /*!**********************************************************!*\
10088 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
10089 \**********************************************************/
10090 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10091
10092 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
10093 function _inherits(t, e) {
10094 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
10095 t.prototype = Object.create(e && e.prototype, {
10096 constructor: {
10097 value: t,
10098 writable: !0,
10099 configurable: !0
10100 }
10101 }), Object.defineProperty(t, "prototype", {
10102 writable: !1
10103 }), e && setPrototypeOf(t, e);
10104 }
10105 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
10106
10107 /***/ }),
10108
10109 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
10110 /*!***********************************************************************!*\
10111 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
10112 \***********************************************************************/
10113 /***/ ((module) => {
10114
10115 function _interopRequireDefault(e) {
10116 return e && e.__esModule ? e : {
10117 "default": e
10118 };
10119 }
10120 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
10121
10122 /***/ }),
10123
10124 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
10125 /*!*****************************************************************!*\
10126 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
10127 \*****************************************************************/
10128 /***/ ((module) => {
10129
10130 function _iterableToArray(r) {
10131 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
10132 }
10133 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10134
10135 /***/ }),
10136
10137 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
10138 /*!**********************************************************************!*\
10139 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
10140 \**********************************************************************/
10141 /***/ ((module) => {
10142
10143 function _iterableToArrayLimit(r, l) {
10144 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
10145 if (null != t) {
10146 var e,
10147 n,
10148 i,
10149 u,
10150 a = [],
10151 f = !0,
10152 o = !1;
10153 try {
10154 if (i = (t = t.call(r)).next, 0 === l) {
10155 if (Object(t) !== t) return;
10156 f = !1;
10157 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
10158 } catch (r) {
10159 o = !0, n = r;
10160 } finally {
10161 try {
10162 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
10163 } finally {
10164 if (o) throw n;
10165 }
10166 }
10167 return a;
10168 }
10169 }
10170 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
10171
10172 /***/ }),
10173
10174 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
10175 /*!*****************************************************************!*\
10176 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
10177 \*****************************************************************/
10178 /***/ ((module) => {
10179
10180 function _nonIterableRest() {
10181 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10182 }
10183 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
10184
10185 /***/ }),
10186
10187 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
10188 /*!*******************************************************************!*\
10189 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
10190 \*******************************************************************/
10191 /***/ ((module) => {
10192
10193 function _nonIterableSpread() {
10194 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10195 }
10196 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
10197
10198 /***/ }),
10199
10200 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
10201 /*!*************************************************************************!*\
10202 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
10203 \*************************************************************************/
10204 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10205
10206 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
10207 function _objectWithoutProperties(e, t) {
10208 if (null == e) return {};
10209 var o,
10210 r,
10211 i = objectWithoutPropertiesLoose(e, t);
10212 if (Object.getOwnPropertySymbols) {
10213 var s = Object.getOwnPropertySymbols(e);
10214 for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
10215 }
10216 return i;
10217 }
10218 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
10219
10220 /***/ }),
10221
10222 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
10223 /*!******************************************************************************!*\
10224 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
10225 \******************************************************************************/
10226 /***/ ((module) => {
10227
10228 function _objectWithoutPropertiesLoose(r, e) {
10229 if (null == r) return {};
10230 var t = {};
10231 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
10232 if (e.includes(n)) continue;
10233 t[n] = r[n];
10234 }
10235 return t;
10236 }
10237 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
10238
10239 /***/ }),
10240
10241 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
10242 /*!***************************************************************************!*\
10243 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
10244 \***************************************************************************/
10245 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10246
10247 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10248 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
10249 function _possibleConstructorReturn(t, e) {
10250 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
10251 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
10252 return assertThisInitialized(t);
10253 }
10254 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
10255
10256 /***/ }),
10257
10258 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
10259 /*!********************************************************************!*\
10260 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
10261 \********************************************************************/
10262 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10263
10264 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10265 function _regeneratorRuntime() {
10266 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
10267 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
10268 return e;
10269 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
10270 var t,
10271 e = {},
10272 r = Object.prototype,
10273 n = r.hasOwnProperty,
10274 o = Object.defineProperty || function (t, e, r) {
10275 t[e] = r.value;
10276 },
10277 i = "function" == typeof Symbol ? Symbol : {},
10278 a = i.iterator || "@@iterator",
10279 c = i.asyncIterator || "@@asyncIterator",
10280 u = i.toStringTag || "@@toStringTag";
10281 function define(t, e, r) {
10282 return Object.defineProperty(t, e, {
10283 value: r,
10284 enumerable: !0,
10285 configurable: !0,
10286 writable: !0
10287 }), t[e];
10288 }
10289 try {
10290 define({}, "");
10291 } catch (t) {
10292 define = function define(t, e, r) {
10293 return t[e] = r;
10294 };
10295 }
10296 function wrap(t, e, r, n) {
10297 var i = e && e.prototype instanceof Generator ? e : Generator,
10298 a = Object.create(i.prototype),
10299 c = new Context(n || []);
10300 return o(a, "_invoke", {
10301 value: makeInvokeMethod(t, r, c)
10302 }), a;
10303 }
10304 function tryCatch(t, e, r) {
10305 try {
10306 return {
10307 type: "normal",
10308 arg: t.call(e, r)
10309 };
10310 } catch (t) {
10311 return {
10312 type: "throw",
10313 arg: t
10314 };
10315 }
10316 }
10317 e.wrap = wrap;
10318 var h = "suspendedStart",
10319 l = "suspendedYield",
10320 f = "executing",
10321 s = "completed",
10322 y = {};
10323 function Generator() {}
10324 function GeneratorFunction() {}
10325 function GeneratorFunctionPrototype() {}
10326 var p = {};
10327 define(p, a, function () {
10328 return this;
10329 });
10330 var d = Object.getPrototypeOf,
10331 v = d && d(d(values([])));
10332 v && v !== r && n.call(v, a) && (p = v);
10333 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
10334 function defineIteratorMethods(t) {
10335 ["next", "throw", "return"].forEach(function (e) {
10336 define(t, e, function (t) {
10337 return this._invoke(e, t);
10338 });
10339 });
10340 }
10341 function AsyncIterator(t, e) {
10342 function invoke(r, o, i, a) {
10343 var c = tryCatch(t[r], t, o);
10344 if ("throw" !== c.type) {
10345 var u = c.arg,
10346 h = u.value;
10347 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
10348 invoke("next", t, i, a);
10349 }, function (t) {
10350 invoke("throw", t, i, a);
10351 }) : e.resolve(h).then(function (t) {
10352 u.value = t, i(u);
10353 }, function (t) {
10354 return invoke("throw", t, i, a);
10355 });
10356 }
10357 a(c.arg);
10358 }
10359 var r;
10360 o(this, "_invoke", {
10361 value: function value(t, n) {
10362 function callInvokeWithMethodAndArg() {
10363 return new e(function (e, r) {
10364 invoke(t, n, e, r);
10365 });
10366 }
10367 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
10368 }
10369 });
10370 }
10371 function makeInvokeMethod(e, r, n) {
10372 var o = h;
10373 return function (i, a) {
10374 if (o === f) throw Error("Generator is already running");
10375 if (o === s) {
10376 if ("throw" === i) throw a;
10377 return {
10378 value: t,
10379 done: !0
10380 };
10381 }
10382 for (n.method = i, n.arg = a;;) {
10383 var c = n.delegate;
10384 if (c) {
10385 var u = maybeInvokeDelegate(c, n);
10386 if (u) {
10387 if (u === y) continue;
10388 return u;
10389 }
10390 }
10391 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
10392 if (o === h) throw o = s, n.arg;
10393 n.dispatchException(n.arg);
10394 } else "return" === n.method && n.abrupt("return", n.arg);
10395 o = f;
10396 var p = tryCatch(e, r, n);
10397 if ("normal" === p.type) {
10398 if (o = n.done ? s : l, p.arg === y) continue;
10399 return {
10400 value: p.arg,
10401 done: n.done
10402 };
10403 }
10404 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
10405 }
10406 };
10407 }
10408 function maybeInvokeDelegate(e, r) {
10409 var n = r.method,
10410 o = e.iterator[n];
10411 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;
10412 var i = tryCatch(o, e.iterator, r.arg);
10413 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
10414 var a = i.arg;
10415 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);
10416 }
10417 function pushTryEntry(t) {
10418 var e = {
10419 tryLoc: t[0]
10420 };
10421 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
10422 }
10423 function resetTryEntry(t) {
10424 var e = t.completion || {};
10425 e.type = "normal", delete e.arg, t.completion = e;
10426 }
10427 function Context(t) {
10428 this.tryEntries = [{
10429 tryLoc: "root"
10430 }], t.forEach(pushTryEntry, this), this.reset(!0);
10431 }
10432 function values(e) {
10433 if (e || "" === e) {
10434 var r = e[a];
10435 if (r) return r.call(e);
10436 if ("function" == typeof e.next) return e;
10437 if (!isNaN(e.length)) {
10438 var o = -1,
10439 i = function next() {
10440 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
10441 return next.value = t, next.done = !0, next;
10442 };
10443 return i.next = i;
10444 }
10445 }
10446 throw new TypeError(_typeof(e) + " is not iterable");
10447 }
10448 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
10449 value: GeneratorFunctionPrototype,
10450 configurable: !0
10451 }), o(GeneratorFunctionPrototype, "constructor", {
10452 value: GeneratorFunction,
10453 configurable: !0
10454 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
10455 var e = "function" == typeof t && t.constructor;
10456 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
10457 }, e.mark = function (t) {
10458 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
10459 }, e.awrap = function (t) {
10460 return {
10461 __await: t
10462 };
10463 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
10464 return this;
10465 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
10466 void 0 === i && (i = Promise);
10467 var a = new AsyncIterator(wrap(t, r, n, o), i);
10468 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
10469 return t.done ? t.value : a.next();
10470 });
10471 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
10472 return this;
10473 }), define(g, "toString", function () {
10474 return "[object Generator]";
10475 }), e.keys = function (t) {
10476 var e = Object(t),
10477 r = [];
10478 for (var n in e) r.push(n);
10479 return r.reverse(), function next() {
10480 for (; r.length;) {
10481 var t = r.pop();
10482 if (t in e) return next.value = t, next.done = !1, next;
10483 }
10484 return next.done = !0, next;
10485 };
10486 }, e.values = values, Context.prototype = {
10487 constructor: Context,
10488 reset: function reset(e) {
10489 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);
10490 },
10491 stop: function stop() {
10492 this.done = !0;
10493 var t = this.tryEntries[0].completion;
10494 if ("throw" === t.type) throw t.arg;
10495 return this.rval;
10496 },
10497 dispatchException: function dispatchException(e) {
10498 if (this.done) throw e;
10499 var r = this;
10500 function handle(n, o) {
10501 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
10502 }
10503 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
10504 var i = this.tryEntries[o],
10505 a = i.completion;
10506 if ("root" === i.tryLoc) return handle("end");
10507 if (i.tryLoc <= this.prev) {
10508 var c = n.call(i, "catchLoc"),
10509 u = n.call(i, "finallyLoc");
10510 if (c && u) {
10511 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
10512 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
10513 } else if (c) {
10514 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
10515 } else {
10516 if (!u) throw Error("try statement without catch or finally");
10517 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
10518 }
10519 }
10520 }
10521 },
10522 abrupt: function abrupt(t, e) {
10523 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
10524 var o = this.tryEntries[r];
10525 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
10526 var i = o;
10527 break;
10528 }
10529 }
10530 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
10531 var a = i ? i.completion : {};
10532 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
10533 },
10534 complete: function complete(t, e) {
10535 if ("throw" === t.type) throw t.arg;
10536 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;
10537 },
10538 finish: function finish(t) {
10539 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
10540 var r = this.tryEntries[e];
10541 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
10542 }
10543 },
10544 "catch": function _catch(t) {
10545 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
10546 var r = this.tryEntries[e];
10547 if (r.tryLoc === t) {
10548 var n = r.completion;
10549 if ("throw" === n.type) {
10550 var o = n.arg;
10551 resetTryEntry(r);
10552 }
10553 return o;
10554 }
10555 }
10556 throw Error("illegal catch attempt");
10557 },
10558 delegateYield: function delegateYield(e, r, n) {
10559 return this.delegate = {
10560 iterator: values(e),
10561 resultName: r,
10562 nextLoc: n
10563 }, "next" === this.method && (this.arg = t), y;
10564 }
10565 }, e;
10566 }
10567 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
10568
10569 /***/ }),
10570
10571 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
10572 /*!****************************************************************!*\
10573 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
10574 \****************************************************************/
10575 /***/ ((module) => {
10576
10577 function _setPrototypeOf(t, e) {
10578 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
10579 return t.__proto__ = e, t;
10580 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
10581 }
10582 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
10583
10584 /***/ }),
10585
10586 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
10587 /*!***************************************************************!*\
10588 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
10589 \***************************************************************/
10590 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10591
10592 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
10593 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
10594 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
10595 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
10596 function _slicedToArray(r, e) {
10597 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
10598 }
10599 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10600
10601 /***/ }),
10602
10603 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
10604 /*!***********************************************************************!*\
10605 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
10606 \***********************************************************************/
10607 /***/ ((module) => {
10608
10609 function _taggedTemplateLiteral(e, t) {
10610 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
10611 raw: {
10612 value: Object.freeze(t)
10613 }
10614 }));
10615 }
10616 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
10617
10618 /***/ }),
10619
10620 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
10621 /*!*******************************************************************!*\
10622 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
10623 \*******************************************************************/
10624 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10625
10626 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
10627 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
10628 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
10629 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
10630 function _toConsumableArray(r) {
10631 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
10632 }
10633 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10634
10635 /***/ }),
10636
10637 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
10638 /*!*************************************************************!*\
10639 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
10640 \*************************************************************/
10641 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10642
10643 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10644 function toPrimitive(t, r) {
10645 if ("object" != _typeof(t) || !t) return t;
10646 var e = t[Symbol.toPrimitive];
10647 if (void 0 !== e) {
10648 var i = e.call(t, r || "default");
10649 if ("object" != _typeof(i)) return i;
10650 throw new TypeError("@@toPrimitive must return a primitive value.");
10651 }
10652 return ("string" === r ? String : Number)(t);
10653 }
10654 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
10655
10656 /***/ }),
10657
10658 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
10659 /*!***************************************************************!*\
10660 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
10661 \***************************************************************/
10662 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10663
10664 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
10665 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
10666 function toPropertyKey(t) {
10667 var i = toPrimitive(t, "string");
10668 return "symbol" == _typeof(i) ? i : i + "";
10669 }
10670 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
10671
10672 /***/ }),
10673
10674 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
10675 /*!********************************************************!*\
10676 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
10677 \********************************************************/
10678 /***/ ((module) => {
10679
10680 function _typeof(o) {
10681 "@babel/helpers - typeof";
10682
10683 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
10684 return typeof o;
10685 } : function (o) {
10686 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
10687 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
10688 }
10689 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
10690
10691 /***/ }),
10692
10693 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
10694 /*!****************************************************************************!*\
10695 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
10696 \****************************************************************************/
10697 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10698
10699 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
10700 function _unsupportedIterableToArray(r, a) {
10701 if (r) {
10702 if ("string" == typeof r) return arrayLikeToArray(r, a);
10703 var t = {}.toString.call(r).slice(8, -1);
10704 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;
10705 }
10706 }
10707 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
10708
10709 /***/ }),
10710
10711 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
10712 /*!***********************************************************!*\
10713 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
10714 \***********************************************************/
10715 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10716
10717 // TODO(Babel 8): Remove this file.
10718
10719 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
10720 module.exports = runtime;
10721
10722 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
10723 try {
10724 regeneratorRuntime = runtime;
10725 } catch (accidentalStrictMode) {
10726 if (typeof globalThis === "object") {
10727 globalThis.regeneratorRuntime = runtime;
10728 } else {
10729 Function("r", "regeneratorRuntime = r")(runtime);
10730 }
10731 }
10732
10733
10734 /***/ })
10735
10736 /******/ });
10737 /************************************************************************/
10738 /******/ // The module cache
10739 /******/ var __webpack_module_cache__ = {};
10740 /******/
10741 /******/ // The require function
10742 /******/ function __webpack_require__(moduleId) {
10743 /******/ // Check if module is in cache
10744 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10745 /******/ if (cachedModule !== undefined) {
10746 /******/ return cachedModule.exports;
10747 /******/ }
10748 /******/ // Create a new module (and put it into the cache)
10749 /******/ var module = __webpack_module_cache__[moduleId] = {
10750 /******/ // no module.id needed
10751 /******/ // no module.loaded needed
10752 /******/ exports: {}
10753 /******/ };
10754 /******/
10755 /******/ // Execute the module function
10756 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10757 /******/
10758 /******/ // Return the exports of the module
10759 /******/ return module.exports;
10760 /******/ }
10761 /******/
10762 /************************************************************************/
10763 /******/ /* webpack/runtime/define property getters */
10764 /******/ (() => {
10765 /******/ // define getter functions for harmony exports
10766 /******/ __webpack_require__.d = (exports, definition) => {
10767 /******/ for(var key in definition) {
10768 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10769 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10770 /******/ }
10771 /******/ }
10772 /******/ };
10773 /******/ })();
10774 /******/
10775 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10776 /******/ (() => {
10777 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10778 /******/ })();
10779 /******/
10780 /******/ /* webpack/runtime/make namespace object */
10781 /******/ (() => {
10782 /******/ // define __esModule on exports
10783 /******/ __webpack_require__.r = (exports) => {
10784 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10785 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10786 /******/ }
10787 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10788 /******/ };
10789 /******/ })();
10790 /******/
10791 /************************************************************************/
10792 var __webpack_exports__ = {};
10793 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10794 (() => {
10795 "use strict";
10796 var exports = __webpack_exports__;
10797 /*!*******************************************************!*\
10798 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10799 \*******************************************************/
10800
10801
10802 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10803 Object.defineProperty(exports, "__esModule", ({
10804 value: true
10805 }));
10806 exports["default"] = exports.AI_ATTACHMENT = void 0;
10807 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10808 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10809 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10810 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10811 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10812 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10813 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10814 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10815 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10816 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10817 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10818 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10819 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"));
10820 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10821 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)); }
10822 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10823 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10824 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10825 function Module() {
10826 var _this;
10827 (0, _classCallCheck2.default)(this, Module);
10828 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10829 args[_key] = arguments[_key];
10830 }
10831 _this = _callSuper(this, Module, [].concat(args));
10832 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10833 var saveGroup = groups.find(function (group) {
10834 return 'save' === group.name;
10835 });
10836 if (!saveGroup) {
10837 return groups;
10838 }
10839 var contextMenu = {
10840 name: 'ai',
10841 icon: 'eicon-ai',
10842 isEnabled: function isEnabled() {
10843 return 0 !== currentElement.getContainer().children.length;
10844 },
10845 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10846 callback: function () {
10847 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10848 var container, json, attachments;
10849 return _regenerator.default.wrap(function _callee$(_context) {
10850 while (1) switch (_context.prev = _context.next) {
10851 case 0:
10852 container = currentElement.getContainer();
10853 json = container.model.toJSON({
10854 remove: ['default']
10855 });
10856 attachments = [{
10857 type: 'json',
10858 previewHTML: '',
10859 content: json,
10860 label: container.model.get('title'),
10861 source: _attachments.USER_VARIATION_SOURCE
10862 }];
10863 (0, _editorIntegration.renderLayoutApp)({
10864 parentContainer: container.parent,
10865 mode: _config.MODE_VARIATION,
10866 at: container.view._index,
10867 attachments: attachments,
10868 onSelect: function onSelect() {
10869 container.view.$el.hide();
10870 },
10871 onClose: function onClose() {
10872 container.view.$el.show();
10873 },
10874 onInsert: function onInsert(template) {
10875 (0, _editorIntegration.importToEditor)({
10876 parentContainer: container.parent,
10877 at: container.view._index,
10878 template: template,
10879 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
10880 replace: true
10881 });
10882 }
10883 });
10884 case 4:
10885 case "end":
10886 return _context.stop();
10887 }
10888 }, _callee);
10889 }));
10890 function callback() {
10891 return _callback.apply(this, arguments);
10892 }
10893 return callback;
10894 }()
10895 };
10896
10897 // Add on top of save group actions
10898 saveGroup.actions.unshift(contextMenu);
10899 return groups;
10900 });
10901 return _this;
10902 }
10903 (0, _inherits2.default)(Module, _elementorModules$edi);
10904 return (0, _createClass2.default)(Module, [{
10905 key: "onElementorInit",
10906 value: function onElementorInit() {
10907 var _this2 = this;
10908 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
10909 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
10910 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
10911 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
10912 $e.commands.register('library', 'generate-ai-variation', function (args) {
10913 return _this2.applyTemplate(args);
10914 });
10915 }
10916 }, {
10917 key: "applyTemplate",
10918 value: function applyTemplate(args) {
10919 window.postMessage({
10920 type: 'library/attach:start'
10921 });
10922 $e.components.get('library').downloadTemplate(args, function (data) {
10923 var model = args.model;
10924 window.postMessage({
10925 type: 'library/attach',
10926 json: data.content[0],
10927 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
10928 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
10929 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
10930 }, window.location.origin);
10931 });
10932 }
10933 }, {
10934 key: "registerLibraryActionButtonBehavior",
10935 value: function registerLibraryActionButtonBehavior(behaviors) {
10936 behaviors.applyAiTemplate = {
10937 behaviorClass: _applyTemplateForAiBehavior.default
10938 };
10939 return behaviors;
10940 }
10941 }, {
10942 key: "registerAiLayoutBehavior",
10943 value: function registerAiLayoutBehavior(behaviors) {
10944 behaviors.ai = {
10945 behaviorClass: _aiLayoutBehavior.default,
10946 context: {
10947 documentType: window.elementor.documents.getCurrent().config.type
10948 }
10949 };
10950 return behaviors;
10951 }
10952 }, {
10953 key: "filterLibraryActionButtonTemplate",
10954 value: function filterLibraryActionButtonTemplate(viewId) {
10955 var modalConfig = $e.components.get('library').manager.modalConfig;
10956 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
10957 if (originalCoreViewId !== viewId) {
10958 return viewId;
10959 }
10960 if ($e.routes.current.library !== 'library/templates/blocks') {
10961 return viewId;
10962 }
10963 if (AI_ATTACHMENT === modalConfig.mode) {
10964 viewId = '#tmpl-elementor-template-library-apply-ai-button';
10965 } else {
10966 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
10967 }
10968 return viewId;
10969 }
10970 }]);
10971 }(elementorModules.editor.utils.Module);
10972 new Module();
10973 })();
10974
10975 /******/ })()
10976 ;
10977 //# sourceMappingURL=ai-layout.js.map