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

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

11,122 lines 490.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "../assets/dev/js/utils/react.js":
5 /*!***************************************!*\
6 !*** ../assets/dev/js/utils/react.js ***!
7 \***************************************/
8 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9
10 "use strict";
11
12
13 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports["default"] = void 0;
18 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
19 var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
20 var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
21 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22 /**
23 * Support conditional rendering of a React App to the DOM, based on the React version.
24 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
25 *
26 * @param { React.ReactElement } app The app to render.
27 * @param { HTMLElement } domElement The DOM element to render the app into.
28 *
29 * @return {{ unmount: () => void }} The unmount function.
30 */
31 function render(app, domElement) {
32 var unmountFunction;
33 try {
34 var root = (0, _client.createRoot)(domElement);
35 root.render(app);
36 unmountFunction = function unmountFunction() {
37 root.unmount();
38 };
39 } catch (e) {
40 // eslint-disable-next-line react/no-deprecated
41 ReactDOM.render(app, domElement);
42 unmountFunction = function unmountFunction() {
43 // eslint-disable-next-line react/no-deprecated
44 ReactDOM.unmountComponentAtNode(domElement);
45 };
46 }
47 return {
48 unmount: unmountFunction
49 };
50 }
51 var _default = exports["default"] = {
52 render: render
53 };
54
55 /***/ }),
56
57 /***/ "../modules/ai/assets/js/editor/ai-layout-behavior.js":
58 /*!************************************************************!*\
59 !*** ../modules/ai/assets/js/editor/ai-layout-behavior.js ***!
60 \************************************************************/
61 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
62
63 "use strict";
64
65
66 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
67 Object.defineProperty(exports, "__esModule", ({
68 value: true
69 }));
70 exports["default"] = void 0;
71 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
72 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
73 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
74 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
75 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
76 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
77 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
78 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
79 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
80 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
81 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
82 var AiLayoutBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
83 function AiLayoutBehavior() {
84 var _this;
85 (0, _classCallCheck2.default)(this, AiLayoutBehavior);
86 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
87 args[_key] = arguments[_key];
88 }
89 _this = _callSuper(this, AiLayoutBehavior, [].concat(args));
90 (0, _defineProperty2.default)(_this, "previewContainer", null);
91 return _this;
92 }
93 (0, _inherits2.default)(AiLayoutBehavior, _Marionette$Behavior);
94 return (0, _createClass2.default)(AiLayoutBehavior, [{
95 key: "ui",
96 value: function ui() {
97 return {
98 aiButton: '.e-ai-layout-button',
99 addTemplateButton: '.elementor-add-template-button'
100 };
101 }
102 }, {
103 key: "events",
104 value: function events() {
105 return {
106 'click @ui.aiButton': 'onAiButtonClick'
107 };
108 }
109 }, {
110 key: "onAiButtonClick",
111 value: function onAiButtonClick(e) {
112 e.stopPropagation();
113 window.elementorAiCurrentContext = this.getOption('context');
114 (0, _editorIntegration.renderLayoutApp)({
115 parentContainer: elementor.getPreviewContainer(),
116 mode: _config.MODE_LAYOUT,
117 at: this.view.getOption('at'),
118 onInsert: this.onInsert.bind(this),
119 onRenderApp: function onRenderApp(args) {
120 args.previewContainer.init();
121 },
122 onGenerate: function onGenerate(args) {
123 args.previewContainer.reset();
124 }
125 });
126 }
127 }, {
128 key: "hideDropArea",
129 value: function hideDropArea() {
130 this.view.onCloseButtonClick();
131 }
132 }, {
133 key: "onInsert",
134 value: function onInsert(template) {
135 this.hideDropArea();
136 (0, _editorIntegration.importToEditor)({
137 parentContainer: elementor.getPreviewContainer(),
138 at: this.view.getOption('at'),
139 template: template,
140 historyTitle: (0, _i18n.__)('AI Layout', 'elementor')
141 });
142 }
143 }, {
144 key: "onRender",
145 value: function onRender() {
146 var $button = jQuery('<button>', {
147 type: 'button',
148 class: 'e-ai-layout-button elementor-add-section-area-button e-button-primary',
149 title: (0, _i18n.__)('Build with AI', 'elementor'),
150 'aria-label': (0, _i18n.__)('Build with AI', 'elementor')
151 });
152 $button.html("\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<i class=\"eicon-ai\" aria-hidden=\"true\"></i>\n\t\t");
153 this.ui.addTemplateButton.after($button);
154 }
155 }]);
156 }(Marionette.Behavior);
157
158 /***/ }),
159
160 /***/ "../modules/ai/assets/js/editor/api/index.js":
161 /*!***************************************************!*\
162 !*** ../modules/ai/assets/js/editor/api/index.js ***!
163 \***************************************************/
164 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
165
166 "use strict";
167
168
169 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
170 Object.defineProperty(exports, "__esModule", ({
171 value: true
172 }));
173 exports.uploadImage = exports.toggleFavoriteHistoryItem = exports.setStatusFeedback = exports.setGetStarted = exports.getUserInformation = exports.getTextToImageGeneration = exports.getRemoteFrontendConfig = exports.getRemoteConfig = exports.getProductImageUnification = exports.getLayoutPromptEnhanced = exports.getImageToImageUpscale = exports.getImageToImageReplaceBackground = exports.getImageToImageRemoveText = exports.getImageToImageRemoveBackground = exports.getImageToImageOutPainting = exports.getImageToImageMaskGeneration = exports.getImageToImageMaskCleanup = exports.getImageToImageIsolateObjects = exports.getImageToImageGeneration = exports.getImagePromptEnhanced = exports.getHistory = exports.getFeaturedImage = exports.getExcerpt = exports.getEditText = exports.getCustomCode = exports.getCustomCSS = exports.getCompletionText = exports.getAnimation = exports.generateLayout = exports.deleteHistoryItem = void 0;
174 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
175 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
176 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
177 var request = function request(endpoint) {
178 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
179 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
180 var signal = arguments.length > 3 ? arguments[3] : undefined;
181 if (Object.keys(data).length) {
182 if (window.elementorAiCurrentContext) {
183 data.context = window.elementorAiCurrentContext;
184 } else {
185 data.context = window.elementorWpAiCurrentContext;
186 }
187 }
188 return new Promise(function (resolve, reject) {
189 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
190 success: resolve,
191 error: reject,
192 data: data,
193 unique_id: data.unique_id
194 }, immediately);
195 if (signal && ajaxData.jqXhr) {
196 signal.addEventListener('abort', ajaxData.jqXhr.abort);
197 }
198 });
199 };
200 var getUserInformation = exports.getUserInformation = function getUserInformation(immediately) {
201 return request('ai_get_user_information', undefined, immediately);
202 };
203 var getRemoteConfig = exports.getRemoteConfig = function getRemoteConfig() {
204 return request('ai_get_remote_config');
205 };
206 var getRemoteFrontendConfig = exports.getRemoteFrontendConfig = function getRemoteFrontendConfig(payload, immediately) {
207 return request('ai_get_remote_frontend_config', {
208 payload: payload
209 }, immediately);
210 };
211 var getCompletionText = exports.getCompletionText = function getCompletionText(payload) {
212 return request('ai_get_completion_text', {
213 payload: payload
214 });
215 };
216 var getExcerpt = exports.getExcerpt = function getExcerpt(payload) {
217 return request('ai_get_excerpt', {
218 payload: payload
219 });
220 };
221 var getFeaturedImage = exports.getFeaturedImage = function getFeaturedImage(payload) {
222 return request('ai_get_featured_image', {
223 payload: payload
224 });
225 };
226 var getEditText = exports.getEditText = function getEditText(payload) {
227 return request('ai_get_edit_text', {
228 payload: payload
229 });
230 };
231 var getCustomCode = exports.getCustomCode = function getCustomCode(payload) {
232 return request('ai_get_custom_code', {
233 payload: payload
234 });
235 };
236 var getCustomCSS = exports.getCustomCSS = function getCustomCSS(payload) {
237 return request('ai_get_custom_css', {
238 payload: payload
239 });
240 };
241 var setGetStarted = exports.setGetStarted = function setGetStarted() {
242 return request('ai_set_get_started');
243 };
244 var setStatusFeedback = exports.setStatusFeedback = function setStatusFeedback(responseId) {
245 return request('ai_set_status_feedback', {
246 response_id: responseId
247 }, true);
248 };
249 var getTextToImageGeneration = exports.getTextToImageGeneration = function getTextToImageGeneration(payload) {
250 return request('ai_get_text_to_image', {
251 payload: payload
252 });
253 };
254 var getImageToImageGeneration = exports.getImageToImageGeneration = function getImageToImageGeneration(payload) {
255 return request('ai_get_image_to_image', {
256 payload: payload
257 });
258 };
259 var getImageToImageMaskCleanup = exports.getImageToImageMaskCleanup = function getImageToImageMaskCleanup(payload) {
260 return request('ai_get_image_to_image_mask_cleanup', {
261 payload: payload
262 });
263 };
264 var getImageToImageMaskGeneration = exports.getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
265 return request('ai_get_image_to_image_mask', {
266 payload: payload
267 });
268 };
269 var getImageToImageOutPainting = exports.getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
270 return request('ai_get_image_to_image_outpainting', {
271 payload: payload
272 });
273 };
274 var getImageToImageUpscale = exports.getImageToImageUpscale = function getImageToImageUpscale(payload) {
275 return request('ai_get_image_to_image_upscale', {
276 payload: payload
277 });
278 };
279 var getImageToImageRemoveBackground = exports.getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
280 return request('ai_get_image_to_image_remove_background', {
281 payload: payload
282 });
283 };
284 var getImageToImageIsolateObjects = exports.getImageToImageIsolateObjects = function getImageToImageIsolateObjects(payload) {
285 return request('ai_get_image_to_image_isolate_objects', {
286 payload: payload
287 });
288 };
289 var getImageToImageReplaceBackground = exports.getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
290 return request('ai_get_image_to_image_replace_background', {
291 payload: payload
292 });
293 };
294 var getImageToImageRemoveText = exports.getImageToImageRemoveText = function getImageToImageRemoveText(image) {
295 return request('ai_get_image_to_image_remove_text', {
296 image: image
297 });
298 };
299 var getImagePromptEnhanced = exports.getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
300 return request('ai_get_image_prompt_enhancer', {
301 prompt: prompt
302 });
303 };
304 var getProductImageUnification = exports.getProductImageUnification = function getProductImageUnification(payload, immediately) {
305 return request('ai_get_product_image_unification', {
306 payload: payload
307 }, immediately);
308 };
309 var getAnimation = exports.getAnimation = function getAnimation(payload) {
310 return request('ai_get_animation', {
311 payload: payload
312 });
313 };
314 var uploadImage = exports.uploadImage = function uploadImage(image) {
315 return request('ai_upload_image', _objectSpread(_objectSpread({}, image), {}, {
316 editor_post_id: image.image.editor_post_id,
317 unique_id: image.image.unique_id
318 }));
319 };
320
321 /**
322 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
323 * @typedef {Object} requestBody
324 * @property {string} prompt - Prompt to generate the layout from.
325 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
326 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
327 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
328 */
329
330 /**
331 * @param {requestBody} requestBody
332 * @param {AbortSignal} [signal]
333 */
334 var generateLayout = exports.generateLayout = function generateLayout(requestBody, signal) {
335 return request('ai_generate_layout', requestBody, true, signal);
336 };
337 var getLayoutPromptEnhanced = exports.getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
338 return request('ai_get_layout_prompt_enhancer', {
339 prompt: prompt,
340 enhance_type: enhanceType
341 });
342 };
343 var getHistory = exports.getHistory = function getHistory(type, page, limit) {
344 return request('ai_get_history', {
345 type: type,
346 page: page,
347 limit: limit
348 });
349 };
350 var deleteHistoryItem = exports.deleteHistoryItem = function deleteHistoryItem(id) {
351 return request('ai_delete_history_item', {
352 id: id
353 });
354 };
355 var toggleFavoriteHistoryItem = exports.toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
356 return request('ai_toggle_favorite_history_item', {
357 id: id
358 });
359 };
360
361 /***/ }),
362
363 /***/ "../modules/ai/assets/js/editor/components/alert-dialog.js":
364 /*!*****************************************************************!*\
365 !*** ../modules/ai/assets/js/editor/components/alert-dialog.js ***!
366 \*****************************************************************/
367 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
368
369 "use strict";
370
371
372 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
373 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
374 Object.defineProperty(exports, "__esModule", ({
375 value: true
376 }));
377 exports.AlertDialog = void 0;
378 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
379 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
380 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
381 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
382 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
383 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
384 var AlertDialog = exports.AlertDialog = function AlertDialog(props) {
385 var _useState = (0, _react.useState)(true),
386 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
387 isShown = _useState2[0],
388 setIsShown = _useState2[1];
389 if (!isShown) {
390 return null;
391 }
392 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
393 open: true,
394 maxWidth: "lg"
395 }, /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
396 sx: {
397 padding: 0
398 }
399 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
400 sx: {
401 textAlign: 'center',
402 padding: 3
403 }
404 }, props.message), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
405 alignItems: "center",
406 spacing: 2,
407 marginBottom: 2
408 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
409 variant: "contained",
410 type: "button",
411 color: "primary",
412 onClick: function onClick() {
413 var _props$onClose;
414 setIsShown(false);
415 (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
416 }
417 }, (0, _i18n.__)('Close', 'elementor')))));
418 };
419 AlertDialog.propTypes = {
420 message: _propTypes.default.string.isRequired,
421 onClose: _propTypes.default.func
422 };
423
424 /***/ }),
425
426 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
427 /*!******************************************************************!*\
428 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
429 \******************************************************************/
430 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
431
432 "use strict";
433
434
435 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
436 Object.defineProperty(exports, "__esModule", ({
437 value: true
438 }));
439 exports["default"] = void 0;
440 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
441 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
442 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
443 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
444 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
445 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
446 var ElementorLogo = function ElementorLogo(props) {
447 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
448 viewBox: "0 0 32 32"
449 }, props), /*#__PURE__*/_react.default.createElement("path", {
450 fillRule: "evenodd",
451 clipRule: "evenodd",
452 d: "M2.69648 24.8891C0.938383 22.2579 0 19.1645 0 16C0 11.7566 1.68571 7.68687 4.68629 4.68629C7.68687 1.68571 11.7566 0 16 0C19.1645 0 22.2579 0.938383 24.8891 2.69648C27.5203 4.45459 29.5711 6.95344 30.7821 9.87706C31.9931 12.8007 32.3099 16.0177 31.6926 19.1214C31.0752 22.2251 29.5514 25.0761 27.3137 27.3137C25.0761 29.5514 22.2251 31.0752 19.1214 31.6926C16.0177 32.3099 12.8007 31.9931 9.87706 30.7821C6.95344 29.5711 4.45459 27.5203 2.69648 24.8891ZM12.0006 9.33281H9.33437V22.6665H12.0006V9.33281ZM22.6657 9.33281H14.6669V11.9991H22.6657V9.33281ZM22.6657 14.6654H14.6669V17.3316H22.6657V14.6654ZM22.6657 20.0003H14.6669V22.6665H22.6657V20.0003Z"
453 }));
454 };
455 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
456 var theme = _ref.theme;
457 return {
458 width: theme.spacing(3),
459 height: theme.spacing(3),
460 '& path': {
461 fill: theme.palette.text.primary
462 }
463 };
464 });
465 var DialogHeader = function DialogHeader(props) {
466 var hideAiBetaLogo = props.hideAiBetaLogo,
467 onClose = props.onClose,
468 children = props.children;
469 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
470 sx: {
471 fontWeight: 'normal'
472 },
473 color: "transparent",
474 position: "relative"
475 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
476 variant: "dense"
477 }, !hideAiBetaLogo && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
478 sx: {
479 mr: 1
480 }
481 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
482 component: "span",
483 variant: "subtitle2",
484 sx: {
485 fontWeight: 'bold',
486 textTransform: 'uppercase'
487 }
488 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
489 label: (0, _i18n.__)('Beta', 'elementor'),
490 color: "default",
491 size: "small",
492 sx: {
493 ml: 1
494 }
495 })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
496 direction: "row",
497 spacing: 1,
498 alignItems: "center",
499 sx: {
500 ml: hideAiBetaLogo ? 0 : 'auto'
501 }
502 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
503 size: "small",
504 "aria-label": "close",
505 onClick: onClose,
506 sx: {
507 '&.MuiButtonBase-root': {
508 mr: -1
509 }
510 }
511 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
512 };
513 DialogHeader.propTypes = {
514 onClose: _propTypes.default.func.isRequired,
515 hideAiBetaLogo: _propTypes.default.bool,
516 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
517 };
518 var _default = exports["default"] = DialogHeader;
519
520 /***/ }),
521
522 /***/ "../modules/ai/assets/js/editor/components/loader.js":
523 /*!***********************************************************!*\
524 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
525 \***********************************************************/
526 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
527
528 "use strict";
529
530
531 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
532 Object.defineProperty(exports, "__esModule", ({
533 value: true
534 }));
535 exports["default"] = void 0;
536 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
537 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
538 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
539 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
540 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
541 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
542 var _excluded = ["sx", "BoxProps"];
543 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
544 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
545 var Loader = function Loader(_ref) {
546 var _ref$sx = _ref.sx,
547 sx = _ref$sx === void 0 ? {} : _ref$sx,
548 _ref$BoxProps = _ref.BoxProps,
549 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
550 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
551 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
552 width: "100%",
553 display: "flex",
554 alignItems: "center"
555 }, BoxProps, {
556 sx: _objectSpread({
557 px: 1.5,
558 minHeight: function minHeight(theme) {
559 return theme.spacing(5);
560 }
561 }, BoxProps.sx || {})
562 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
563 color: "secondary"
564 }, props, {
565 sx: _objectSpread({
566 width: '100%'
567 }, sx)
568 })));
569 };
570 Loader.propTypes = {
571 sx: _propTypes.default.object,
572 BoxProps: _propTypes.default.object
573 };
574 var _default = exports["default"] = Loader;
575
576 /***/ }),
577
578 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
579 /*!******************************************************************!*\
580 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
581 \******************************************************************/
582 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
583
584 "use strict";
585
586
587 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
588 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
589 Object.defineProperty(exports, "__esModule", ({
590 value: true
591 }));
592 exports["default"] = void 0;
593 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
594 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
595 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
596 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
597 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
598 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
599 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
600 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
601 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
602 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
603 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
604 var DraggablePaper = function DraggablePaper(props) {
605 var _useState = (0, _react.useState)({
606 x: 0,
607 y: 0
608 }),
609 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
610 position = _useState2[0],
611 setPosition = _useState2[1];
612 var paperRef = (0, _react.useRef)(null);
613 var timeout = (0, _react.useRef)(null);
614 var onDrag = function onDrag(_e, _ref) {
615 var x = _ref.x,
616 y = _ref.y;
617 return setPosition({
618 x: x,
619 y: y
620 });
621 };
622 var handlePositionBoundaries = function handlePositionBoundaries() {
623 clearTimeout(timeout.current);
624
625 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
626 timeout.current = setTimeout(function () {
627 var _paperRef$current;
628 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
629 if (dialogTop < 0) {
630 setPosition(function (prev) {
631 return _objectSpread(_objectSpread({}, prev), {}, {
632 y: prev.y - dialogTop
633 });
634 });
635 }
636 }, 50);
637 };
638 (0, _react.useEffect)(function () {
639 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
640 resizeObserver.observe(paperRef.current);
641 return function () {
642 resizeObserver.disconnect();
643 };
644 }, []);
645 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
646 position: position,
647 onDrag: onDrag,
648 handle: ".MuiAppBar-root",
649 cancel: '[class*="MuiDialogContent-root"]',
650 bounds: "parent"
651 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
652 ref: paperRef
653 })));
654 };
655 var PromptDialog = function PromptDialog(props) {
656 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
657 scroll: "paper",
658 open: true,
659 fullWidth: true,
660 hideBackdrop: true,
661 PaperComponent: DraggablePaper,
662 disableScrollLock: true,
663 sx: {
664 '& .MuiDialog-container': {
665 alignItems: 'flex-start',
666 mt: '18vh'
667 }
668 },
669 PaperProps: {
670 sx: {
671 m: 0,
672 maxHeight: '76vh'
673 }
674 }
675 }, props), props.children);
676 };
677 PromptDialog.propTypes = {
678 onClose: _propTypes.default.func.isRequired,
679 children: _propTypes.default.node,
680 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
681 };
682 PromptDialog.Header = _dialogHeader.default;
683 PromptDialog.Content = _ui.DialogContent;
684 var _default = exports["default"] = PromptDialog;
685
686 /***/ }),
687
688 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
689 /*!*************************************************************************!*\
690 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
691 \*************************************************************************/
692 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
693
694 "use strict";
695 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
696
697
698 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
699 Object.defineProperty(exports, "__esModule", ({
700 value: true
701 }));
702 exports["default"] = void 0;
703 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
704 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
705 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
706 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
707 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
708 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
709 var _excluded = ["error", "onRetry", "actionPosition"];
710 var PromptErrorMessage = function PromptErrorMessage(_ref) {
711 var error = _ref.error,
712 _ref$onRetry = _ref.onRetry,
713 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
714 _ref$actionPosition = _ref.actionPosition,
715 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
716 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
717 function getQuotaReachedTrailMessage(featureName) {
718 if (!featureName) {
719 return {
720 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
721 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
722 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
723 buttonAction: function buttonAction() {
724 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
725 }
726 };
727 }
728 return {
729 // Translators: %s is the feature name.
730 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
731 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
732 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
733 buttonAction: function buttonAction() {
734 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
735 }
736 };
737 }
738 function getErrorMessage() {
739 var _error$extra_data;
740 var errMsg = error.message || error;
741 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
742 var messages = {
743 default: {
744 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
745 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
746 buttonText: (0, _i18n.__)('Try again', 'elementor'),
747 buttonAction: onRetry
748 },
749 service_outage_internal: {
750 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
751 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
752 buttonText: (0, _i18n.__)('Try again', 'elementor'),
753 buttonAction: onRetry
754 },
755 invalid_connect_data: {
756 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
757 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
758 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
759 target: "_blank",
760 rel: "noreferrer"
761 }, (0, _i18n.__)('Show me how', 'elementor'))),
762 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
763 buttonAction: function buttonAction() {
764 return window.open(window.ElementorAiConfig.connect_url);
765 }
766 },
767 not_connected: {
768 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
769 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
770 buttonText: (0, _i18n.__)('Connect', 'elementor'),
771 buttonAction: function buttonAction() {
772 return window.open(window.ElementorAiConfig.connect_url);
773 }
774 },
775 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
776 quota_reached_subscription: {
777 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
778 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
779 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
780 buttonAction: function buttonAction() {
781 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
782 }
783 },
784 rate_limit_network: {
785 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
786 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
787 },
788 invalid_prompts: {
789 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
790 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
791 },
792 service_unavailable: {
793 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
794 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
795 buttonText: (0, _i18n.__)('Try again', 'elementor'),
796 buttonAction: onRetry
797 },
798 request_timeout_error: {
799 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
800 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
801 buttonText: (0, _i18n.__)('Try again', 'elementor'),
802 buttonAction: onRetry
803 },
804 invalid_token: {
805 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
806 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
807 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
808 buttonAction: onRetry
809 },
810 file_too_large: {
811 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
812 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
813 },
814 image_resolution_maximum_exceeded: {
815 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The image resolution exceeds the maximum allowed size.', 'elementor')),
816 description: (0, _i18n.__)('Please upload a file with dimensions less than 2048x2048 pixels.', 'elementor')
817 },
818 external_service_unavailable: {
819 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Temporary external service issue', 'elementor')),
820 description: (0, _i18n.__)('It seems that one of our partner services is temporarily unavailable. Please try again in a few minutes.', 'elementor'),
821 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
822 buttonAction: onRetry
823 }
824 };
825 return messages[errMsg] || messages.default;
826 }
827 var message = getErrorMessage();
828 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
829 color: "inherit",
830 size: "small",
831 variant: "outlined",
832 onClick: message.buttonAction
833 }, message.buttonText);
834 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
835 severity: message.severity || 'error',
836 action: 'default' === actionPosition && action
837 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
838 sx: {
839 mt: 1
840 }
841 }, action));
842 };
843 PromptErrorMessage.propTypes = {
844 error: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
845 onRetry: _propTypes.default.func,
846 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
847 };
848 var _default = exports["default"] = PromptErrorMessage;
849
850 /***/ }),
851
852 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
853 /*!************************************************************************!*\
854 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
855 \************************************************************************/
856 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
857
858 "use strict";
859
860
861 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
862 Object.defineProperty(exports, "__esModule", ({
863 value: true
864 }));
865 exports["default"] = void 0;
866 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
867 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
868 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
869 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
870 var PromptLibraryLink = function PromptLibraryLink(props) {
871 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
872 variant: "body2",
873 color: "text.secondary"
874 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
875 href: props.libraryLink,
876 className: "elementor-clickable",
877 target: "_blank"
878 }, (0, _i18n.__)('prompt library')));
879 };
880 PromptLibraryLink.propTypes = {
881 libraryLink: _propTypes.default.string
882 };
883 var _default = exports["default"] = PromptLibraryLink;
884
885 /***/ }),
886
887 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
888 /*!*****************************************************************!*\
889 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
890 \*****************************************************************/
891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
892
893 "use strict";
894
895
896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
897 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
898 Object.defineProperty(exports, "__esModule", ({
899 value: true
900 }));
901 exports["default"] = void 0;
902 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
903 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
904 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
905 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
906 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
907 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
908 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
909 var popoverId = 'e-ai-upgrade-popover';
910 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
911 var theme = _ref.theme;
912 return {
913 position: 'relative',
914 '[data-popper-placement="top"] &': {
915 marginBottom: theme.spacing(2.5)
916 },
917 '[data-popper-placement="bottom"] &': {
918 marginTop: theme.spacing(2.5)
919 },
920 padding: theme.spacing(3),
921 boxShadow: theme.shadows[4],
922 zIndex: '9999'
923 };
924 });
925 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
926 var theme = _ref2.theme;
927 return {
928 width: theme.spacing(5),
929 height: theme.spacing(2.5),
930 position: 'absolute',
931 overflow: 'hidden',
932 // Override Popper inline styles.
933 left: '50% !important',
934 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
935 '[data-popper-placement="top"] &': {
936 top: '100%'
937 },
938 '[data-popper-placement="bottom"] &': {
939 '--rotate': '180deg',
940 top: "calc(".concat(theme.spacing(2.5), " * -1)")
941 },
942 '&::after': {
943 backgroundColor: theme.palette.background.paper,
944 content: '""',
945 display: 'block',
946 position: 'absolute',
947 width: theme.spacing(2.5),
948 height: theme.spacing(2.5),
949 top: 0,
950 left: '50%',
951 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
952 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
953 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
954 }
955 };
956 });
957 var upgradeBullets = [(0, _i18n.__)('Get spot-on suggestions from AI Copilot and AI Context with appropriate designs, layouts, and content for your business.', 'elementor'), (0, _i18n.__)('Generate professional texts about any topic, in any tone.', 'elementor'), (0, _i18n.__)('Effortlessly create or enhance stunning images and bring your ideas to life.', 'elementor'), (0, _i18n.__)('Unleash infinite possibilities with the custom code generator.', 'elementor'), (0, _i18n.__)('Access 30-days of AI History with the AI Starter plan and 90-days with the Power plan.', 'elementor')];
958 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
959 return {
960 '& .MuiChip-label': {
961 lineHeight: 1.5
962 },
963 '& .MuiSvgIcon-root.MuiChip-icon': {
964 fontSize: '1.25rem'
965 }
966 };
967 });
968 var UpgradeChip = function UpgradeChip(_ref3) {
969 var _ref3$hasSubscription = _ref3.hasSubscription,
970 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
971 _ref3$usagePercentage = _ref3.usagePercentage,
972 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
973 var _useState = (0, _react.useState)(false),
974 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
975 isPopoverOpen = _useState2[0],
976 setIsPopoverOpen = _useState2[1];
977 var anchorEl = (0, _react.useRef)(null);
978 var arrowEl = (0, _react.useRef)(null);
979 var showPopover = function showPopover() {
980 return setIsPopoverOpen(true);
981 };
982 var hidePopover = function hidePopover() {
983 return setIsPopoverOpen(false);
984 };
985 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
986 if (hasSubscription) {
987 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
988 }
989 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
990 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
991 component: "span",
992 "aria-owns": isPopoverOpen ? popoverId : undefined,
993 "aria-haspopup": "true",
994 onMouseEnter: showPopover,
995 onMouseLeave: hidePopover,
996 ref: anchorEl,
997 display: "flex",
998 alignItems: "center"
999 }, /*#__PURE__*/_react.default.createElement(Chip, {
1000 color: "promotion",
1001 label: (0, _i18n.__)('Upgrade', 'elementor'),
1002 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1003 size: "small"
1004 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
1005 open: isPopoverOpen,
1006 anchorEl: anchorEl.current,
1007 sx: {
1008 zIndex: '170001',
1009 maxWidth: 300
1010 },
1011 modifiers: [{
1012 name: 'arrow',
1013 enabled: true,
1014 options: {
1015 element: arrowEl.current
1016 }
1017 }]
1018 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
1019 ref: arrowEl
1020 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1021 variant: "h5",
1022 color: "text.primary"
1023 }, (0, _i18n.__)('Unlimited access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
1024 sx: {
1025 mb: 1
1026 }
1027 }, upgradeBullets.map(function (bullet, index) {
1028 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
1029 key: index,
1030 disableGutters: true,
1031 sx: {
1032 alignItems: 'flex-start'
1033 }
1034 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
1035 sx: {
1036 m: 0
1037 }
1038 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1039 variant: "body2"
1040 }, bullet)));
1041 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
1042 variant: "contained",
1043 color: "promotion",
1044 size: "small",
1045 href: actionUrl,
1046 target: "_blank",
1047 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1048 sx: {
1049 '&:hover': {
1050 color: 'promotion.contrastText'
1051 }
1052 }
1053 }, actionLabel))));
1054 };
1055 var _default = exports["default"] = UpgradeChip;
1056 UpgradeChip.propTypes = {
1057 hasSubscription: _propTypes.default.bool,
1058 usagePercentage: _propTypes.default.number
1059 };
1060
1061 /***/ }),
1062
1063 /***/ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js":
1064 /*!**************************************************************************!*\
1065 !*** ../modules/ai/assets/js/editor/components/voice-promotion-alert.js ***!
1066 \**************************************************************************/
1067 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1068
1069 "use strict";
1070
1071
1072 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1073 Object.defineProperty(exports, "__esModule", ({
1074 value: true
1075 }));
1076 exports["default"] = exports.VoicePromotionAlert = void 0;
1077 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1078 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1079 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1080 var _bulbIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/bulb-icon */ "../modules/ai/assets/js/editor/icons/bulb-icon.js"));
1081 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
1082 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1083 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1084 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1085 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1086 var VoicePromotionAlert = exports.VoicePromotionAlert = function VoicePromotionAlert(props) {
1087 var _useIntroduction = (0, _useIntroduction2.default)(props.introductionKey),
1088 isViewed = _useIntroduction.isViewed,
1089 markAsViewed = _useIntroduction.markAsViewed;
1090 if (isViewed) {
1091 return null;
1092 }
1093 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
1094 sx: _objectSpread({
1095 mt: 2
1096 }, props.sx),
1097 alignItems: "top"
1098 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
1099 severity: "info",
1100 variant: "standard",
1101 icon: /*#__PURE__*/_react.default.createElement(_bulbIcon.default, {
1102 sx: {
1103 alignSelf: 'flex-start'
1104 }
1105 }),
1106 onClose: markAsViewed
1107 }, (0, _i18n.__)('Get improved results from AI by adding personal context.', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
1108 onClick: function onClick() {
1109 return $e.route('panel/global/menu');
1110 },
1111 className: "elementor-clickable",
1112 style: {
1113 textDecoration: 'none'
1114 },
1115 color: "info.main",
1116 href: "#"
1117 }, (0, _i18n.__)('Let’s do it', 'elementor'))));
1118 };
1119 VoicePromotionAlert.propTypes = {
1120 sx: _propTypes.default.object,
1121 introductionKey: _propTypes.default.string
1122 };
1123 var _default = exports["default"] = VoicePromotionAlert;
1124
1125 /***/ }),
1126
1127 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
1128 /*!******************************************************************!*\
1129 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
1130 \******************************************************************/
1131 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1132
1133 "use strict";
1134
1135
1136 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1137 Object.defineProperty(exports, "__esModule", ({
1138 value: true
1139 }));
1140 exports["default"] = void 0;
1141 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1142 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1143 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1144 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1145 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1146 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1147 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
1148 var _excluded = ["sx"];
1149 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1150 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1151 var WizardDialog = function WizardDialog(props) {
1152 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
1153 open: true,
1154 onClose: props.onClose,
1155 fullWidth: true,
1156 hideBackdrop: true,
1157 maxWidth: "lg",
1158 PaperProps: {
1159 sx: {
1160 height: '88vh'
1161 }
1162 },
1163 sx: {
1164 zIndex: 9999
1165 }
1166 }, props.children);
1167 };
1168 WizardDialog.propTypes = {
1169 onClose: _propTypes.default.func.isRequired,
1170 children: _propTypes.default.node.isRequired
1171 };
1172 var WizardDialogContent = function WizardDialogContent(_ref) {
1173 var _ref$sx = _ref.sx,
1174 sx = _ref$sx === void 0 ? {} : _ref$sx,
1175 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1176 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
1177 sx: _objectSpread({
1178 display: 'flex',
1179 flexDirection: 'column',
1180 justifyContent: 'center'
1181 }, sx)
1182 }));
1183 };
1184 WizardDialogContent.propTypes = {
1185 sx: _propTypes.default.object
1186 };
1187 WizardDialog.Header = _dialogHeader.default;
1188 WizardDialog.Content = WizardDialogContent;
1189 var _default = exports["default"] = WizardDialog;
1190
1191 /***/ }),
1192
1193 /***/ "../modules/ai/assets/js/editor/context/requests-ids.js":
1194 /*!**************************************************************!*\
1195 !*** ../modules/ai/assets/js/editor/context/requests-ids.js ***!
1196 \**************************************************************/
1197 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1198
1199 "use strict";
1200
1201
1202 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1203 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1204 Object.defineProperty(exports, "__esModule", ({
1205 value: true
1206 }));
1207 exports["default"] = exports.RequestIdsProvider = void 0;
1208 exports.generateIds = generateIds;
1209 exports.useRequestIds = exports.getUniqueId = void 0;
1210 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1211 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1212 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1213 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1214 var Context = (0, _react.createContext)({});
1215 var useRequestIds = exports.useRequestIds = function useRequestIds() {
1216 var context = (0, _react.useContext)(Context);
1217 if (!context) {
1218 throw new Error('useRequestIds must be used within a RequestIdsProvider');
1219 }
1220 return context;
1221 };
1222 var getUniqueId = exports.getUniqueId = function getUniqueId(prefix) {
1223 return prefix + '-' + Math.random().toString(16).substr(2, 7);
1224 };
1225 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
1226 function generateIds(template) {
1227 var _template$elements;
1228 template.id = getUniqueId().toString();
1229 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
1230 template.elements.map(function (child) {
1231 return generateIds(child);
1232 });
1233 }
1234 return template;
1235 }
1236 var RequestIdsProvider = exports.RequestIdsProvider = function RequestIdsProvider(props) {
1237 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
1238 var sessionId = (0, _react.useRef)('');
1239 var generateId = (0, _react.useRef)('');
1240 var batchId = (0, _react.useRef)('');
1241 var requestId = (0, _react.useRef)('');
1242 sessionId.current = getUniqueId('session');
1243 var setGenerate = function setGenerate() {
1244 generateId.current = getUniqueId('generate');
1245 return generateId;
1246 };
1247 var setBatch = function setBatch() {
1248 batchId.current = getUniqueId('batch');
1249 return batchId;
1250 };
1251 var setRequest = function setRequest() {
1252 requestId.current = getUniqueId('request');
1253 return requestId;
1254 };
1255 var _useState = (0, _react.useState)(0),
1256 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1257 usagePercentage = _useState2[0],
1258 setUsagePercentage = _useState2[1];
1259 var updateUsagePercentage = function updateUsagePercentage(newPercentage) {
1260 setUsagePercentage(newPercentage);
1261 };
1262 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
1263 value: {
1264 editorSessionId: editorSessionId,
1265 sessionId: sessionId,
1266 generateId: generateId,
1267 batchId: batchId,
1268 requestId: requestId,
1269 setGenerate: setGenerate,
1270 setBatch: setBatch,
1271 setRequest: setRequest,
1272 usagePercentage: usagePercentage,
1273 updateUsagePercentage: updateUsagePercentage
1274 }
1275 }, props.children);
1276 };
1277 RequestIdsProvider.propTypes = {
1278 children: _propTypes.default.node.isRequired
1279 };
1280 var _default = exports["default"] = Context;
1281
1282 /***/ }),
1283
1284 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
1285 /*!****************************************************************!*\
1286 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
1287 \****************************************************************/
1288 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1289
1290 "use strict";
1291
1292
1293 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1294 Object.defineProperty(exports, "__esModule", ({
1295 value: true
1296 }));
1297 exports["default"] = useIntroduction;
1298 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1299 var _react = __webpack_require__(/*! react */ "react");
1300 function useIntroduction(key) {
1301 var _window$elementor$con, _window$elementorAdmi, _globalConfig$introdu;
1302 var globalConfig = window.elementor ? (_window$elementor$con = window.elementor.config) === null || _window$elementor$con === void 0 ? void 0 : _window$elementor$con.user : (_window$elementorAdmi = window.elementorAdmin) === null || _window$elementorAdmi === void 0 || (_window$elementorAdmi = _window$elementorAdmi.config) === null || _window$elementorAdmi === void 0 ? void 0 : _window$elementorAdmi.user;
1303 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
1304 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1305 isViewed = _useState2[0],
1306 setIsViewed = _useState2[1];
1307 function markAsViewed() {
1308 if (!key) {
1309 return Promise.reject();
1310 }
1311 return new Promise(function (resolve, reject) {
1312 if (isViewed) {
1313 reject();
1314 }
1315 setIsViewed(true);
1316 elementorCommon.ajax.addRequest('introduction_viewed', {
1317 data: {
1318 introductionKey: key
1319 },
1320 error: function error() {
1321 setIsViewed(false);
1322 reject();
1323 },
1324 success: function success() {
1325 setIsViewed(true);
1326 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
1327 globalConfig.introduction[key] = true;
1328 }
1329 resolve();
1330 }
1331 });
1332 });
1333 }
1334 return {
1335 isViewed: isViewed,
1336 markAsViewed: markAsViewed
1337 };
1338 }
1339
1340 /***/ }),
1341
1342 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
1343 /*!*******************************************************************!*\
1344 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
1345 \*******************************************************************/
1346 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1347
1348 "use strict";
1349
1350
1351 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1352 Object.defineProperty(exports, "__esModule", ({
1353 value: true
1354 }));
1355 exports["default"] = void 0;
1356 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1357 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
1358 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
1359 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
1360 var getResult = function getResult(prompt, type, enhanceType) {
1361 if (!enhancePromptMap.has(type)) {
1362 throw new Error("Invalid prompt type: ".concat(type));
1363 }
1364 return enhancePromptMap.get(type)(prompt, enhanceType);
1365 };
1366
1367 /**
1368 * Hook to enhance a prompt.
1369 *
1370 * @param {string} prompt
1371 * @param {'media' | 'layout'} type
1372 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
1373 */
1374 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
1375 var _useConfig = (0, _config.useConfig)(),
1376 mode = _useConfig.mode;
1377 var _usePrompt = (0, _usePrompt2.default)(function () {
1378 return getResult(prompt, type, mode);
1379 }, prompt),
1380 enhancedData = _usePrompt.data,
1381 isEnhancing = _usePrompt.isLoading,
1382 enhance = _usePrompt.send;
1383 return {
1384 enhance: enhance,
1385 isEnhancing: isEnhancing,
1386 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
1387 };
1388 };
1389 var _default = exports["default"] = usePromptEnhancer;
1390
1391 /***/ }),
1392
1393 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
1394 /*!**********************************************************!*\
1395 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
1396 \**********************************************************/
1397 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1398
1399 "use strict";
1400
1401
1402 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1403 Object.defineProperty(exports, "__esModule", ({
1404 value: true
1405 }));
1406 exports["default"] = void 0;
1407 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1408 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1409 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1410 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1411 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1412 var _react = __webpack_require__(/*! react */ "react");
1413 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1414 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
1415 var _excluded = ["text", "response_id", "usage", "images"];
1416 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1417 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1418 var normalizeResponse = function normalizeResponse(_ref) {
1419 var text = _ref.text,
1420 responseId = _ref.response_id,
1421 usage = _ref.usage,
1422 images = _ref.images,
1423 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1424 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
1425 var credits = Math.max(creditsData, 0);
1426 var result = text || images;
1427 var normalized = {
1428 result: result,
1429 responseId: responseId,
1430 credits: credits,
1431 usagePercentage: usage === null || usage === void 0 ? void 0 : usage.usagePercentage
1432 };
1433 if (optional.base_template_id) {
1434 normalized.baseTemplateId = optional.base_template_id;
1435 }
1436 normalized.type = optional.template_type;
1437 return normalized;
1438 };
1439 var usePrompt = function usePrompt(fetchData, initialState) {
1440 var _useState = (0, _react.useState)(false),
1441 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1442 isLoading = _useState2[0],
1443 setIsLoading = _useState2[1];
1444 var _useState3 = (0, _react.useState)(''),
1445 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1446 error = _useState4[0],
1447 setError = _useState4[1];
1448 var _useState5 = (0, _react.useState)(initialState),
1449 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1450 data = _useState6[0],
1451 setData = _useState6[1];
1452 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
1453 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
1454 usagePercentage = _useRequestIds.usagePercentage;
1455 var send = (0, _react.useRef)(/*#__PURE__*/function () {
1456 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
1457 return _regenerator.default.wrap(function (_context) {
1458 while (1) switch (_context.prev = _context.next) {
1459 case 0:
1460 return _context.abrupt("return", payload);
1461 case 1:
1462 case "end":
1463 return _context.stop();
1464 }
1465 }, _callee);
1466 }));
1467 return function (_x) {
1468 return _ref2.apply(this, arguments);
1469 };
1470 }());
1471 var sendUsageData = (0, _react.useRef)(function () {});
1472 (0, _react.useEffect)(function () {
1473 var newUsageValue = data === null || data === void 0 ? void 0 : data.usagePercentage;
1474 if (newUsageValue && newUsageValue !== usagePercentage) {
1475 updateUsagePercentage(newUsageValue);
1476 }
1477 }, [data, usagePercentage, updateUsagePercentage]);
1478 var _useRequestIds2 = (0, _requestsIds.useRequestIds)(),
1479 setRequest = _useRequestIds2.setRequest,
1480 editorSessionId = _useRequestIds2.editorSessionId,
1481 sessionId = _useRequestIds2.sessionId,
1482 generateId = _useRequestIds2.generateId,
1483 batchId = _useRequestIds2.batchId;
1484 send.current = (0, _react.useCallback)(/*#__PURE__*/function () {
1485 var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(payload) {
1486 return _regenerator.default.wrap(function (_context2) {
1487 while (1) switch (_context2.prev = _context2.next) {
1488 case 0:
1489 return _context2.abrupt("return", new Promise(function (resolve, reject) {
1490 setError('');
1491 setIsLoading(true);
1492 var requestId = setRequest();
1493 var requestIds = {
1494 editorSessionId: editorSessionId.current,
1495 sessionId: sessionId.current,
1496 generateId: generateId.current,
1497 batchId: batchId.current,
1498 requestId: requestId.current
1499 };
1500 payload = _objectSpread(_objectSpread({}, payload), {}, {
1501 requestIds: requestIds
1502 });
1503 fetchData(payload).then(function (result) {
1504 var normalizedData = normalizeResponse(result);
1505 setData(normalizedData);
1506 resolve(normalizedData);
1507 }).catch(function (err) {
1508 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
1509 setError(finalError);
1510 reject(finalError);
1511 }).finally(function () {
1512 return setIsLoading(false);
1513 });
1514 }));
1515 case 1:
1516 case "end":
1517 return _context2.stop();
1518 }
1519 }, _callee2);
1520 }));
1521 return function (_x2) {
1522 return _ref3.apply(this, arguments);
1523 };
1524 }(), [batchId, editorSessionId, fetchData, generateId, sessionId, setRequest]);
1525 sendUsageData.current = (0, _react.useCallback)(function () {
1526 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
1527 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
1528 }, [data]);
1529 var reset = function reset() {
1530 setData(function (_ref4) {
1531 var credits = _ref4.credits;
1532 return {
1533 credits: credits,
1534 result: '',
1535 responseId: ''
1536 };
1537 });
1538 setError('');
1539 setIsLoading(false);
1540 };
1541 var setResult = function setResult(result) {
1542 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1543 var updatedResult = _objectSpread({}, data);
1544 updatedResult.result = result;
1545 if (responseId) {
1546 updatedResult.responseId = responseId;
1547 }
1548 setData(updatedResult);
1549 };
1550 return {
1551 isLoading: isLoading,
1552 error: error,
1553 data: data,
1554 setResult: setResult,
1555 reset: reset,
1556 send: send.current,
1557 sendUsageData: sendUsageData.current
1558 };
1559 };
1560 var _default = exports["default"] = usePrompt;
1561
1562 /***/ }),
1563
1564 /***/ "../modules/ai/assets/js/editor/hooks/use-timeout.js":
1565 /*!***********************************************************!*\
1566 !*** ../modules/ai/assets/js/editor/hooks/use-timeout.js ***!
1567 \***********************************************************/
1568 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1569
1570 "use strict";
1571
1572
1573 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1574 Object.defineProperty(exports, "__esModule", ({
1575 value: true
1576 }));
1577 exports.useTimeout = void 0;
1578 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1579 var _react = __webpack_require__(/*! react */ "react");
1580 var useTimeout = exports.useTimeout = function useTimeout(delay) {
1581 var _useState = (0, _react.useState)(false),
1582 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1583 isTimeout = _useState2[0],
1584 setIsTimeout = _useState2[1];
1585 var timeoutIdRef = (0, _react.useRef)(null);
1586 var turnOffTimeout = function turnOffTimeout() {
1587 clearTimeout(timeoutIdRef.current);
1588 setIsTimeout(false);
1589 };
1590 (0, _react.useEffect)(function () {
1591 timeoutIdRef.current = setTimeout(function () {
1592 setIsTimeout(true);
1593 }, delay);
1594 return function () {
1595 clearTimeout(timeoutIdRef.current);
1596 };
1597 }, [delay]);
1598 return [isTimeout, turnOffTimeout];
1599 };
1600
1601 /***/ }),
1602
1603 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
1604 /*!*************************************************************!*\
1605 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
1606 \*************************************************************/
1607 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1608
1609 "use strict";
1610
1611
1612 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1613 Object.defineProperty(exports, "__esModule", ({
1614 value: true
1615 }));
1616 exports["default"] = void 0;
1617 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1618 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1619 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1620 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1621 var _react = __webpack_require__(/*! react */ "react");
1622 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1623 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1624 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1625 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1626 var useUserInfo = function useUserInfo() {
1627 var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1628 var _useState = (0, _react.useState)(false),
1629 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1630 isLoaded = _useState2[0],
1631 setIsLoaded = _useState2[1];
1632 var _useState3 = (0, _react.useState)(false),
1633 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1634 isLoading = _useState4[0],
1635 setIsLoading = _useState4[1];
1636 var _useState5 = (0, _react.useState)({
1637 is_connected: false,
1638 is_get_started: false,
1639 connect_url: '',
1640 usage: {
1641 hasAiSubscription: false,
1642 quota: 0,
1643 usedQuota: 0
1644 }
1645 }),
1646 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1647 userInfo = _useState6[0],
1648 setUserInfo = _useState6[1];
1649 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
1650 var usagePercentage = userInfo.usage.quota ? userInfo.usage.usedQuota / userInfo.usage.quota * 100 : 0;
1651 var fetchData = /*#__PURE__*/function () {
1652 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1653 var userInfoResult;
1654 return _regenerator.default.wrap(function (_context) {
1655 while (1) switch (_context.prev = _context.next) {
1656 case 0:
1657 setIsLoading(true);
1658 _context.next = 1;
1659 return (0, _api.getUserInformation)(immediately);
1660 case 1:
1661 userInfoResult = _context.sent;
1662 setUserInfo(function (prevState) {
1663 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
1664 });
1665 setIsLoaded(true);
1666 setIsLoading(false);
1667 case 2:
1668 case "end":
1669 return _context.stop();
1670 }
1671 }, _callee);
1672 }));
1673 return function fetchData() {
1674 return _ref.apply(this, arguments);
1675 };
1676 }();
1677 if (!isLoaded && !isLoading) {
1678 fetchData();
1679 }
1680 return {
1681 isLoading: isLoading,
1682 isLoaded: isLoaded,
1683 isConnected: userInfo.is_connected,
1684 isGetStarted: userInfo.is_get_started,
1685 connectUrl: userInfo.connect_url,
1686 builderUrl: userInfo.usage.builderUrl,
1687 hasSubscription: userInfo.usage.hasAiSubscription,
1688 credits: credits < 0 ? 0 : credits,
1689 usagePercentage: Math.round(usagePercentage),
1690 fetchData: fetchData
1691 };
1692 };
1693 useUserInfo.propTypes = {
1694 immediately: _propTypes.default.bool
1695 };
1696 var _default = exports["default"] = useUserInfo;
1697
1698 /***/ }),
1699
1700 /***/ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js":
1701 /*!***************************************************************!*\
1702 !*** ../modules/ai/assets/js/editor/icons/arrow-left-icon.js ***!
1703 \***************************************************************/
1704 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1705
1706 "use strict";
1707
1708
1709 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1710 Object.defineProperty(exports, "__esModule", ({
1711 value: true
1712 }));
1713 exports["default"] = void 0;
1714 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1715 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1716 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1717 var ArrowLeftIcon = _react.default.forwardRef(function (props, ref) {
1718 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1719 viewBox: "0 0 24 24"
1720 }, props, {
1721 ref: ref
1722 }), /*#__PURE__*/_react.default.createElement("path", {
1723 fillRule: "evenodd",
1724 clipRule: "evenodd",
1725 d: "M9.53033 7.46967C9.82322 7.76256 9.82322 8.23744 9.53033 8.53033L6.81066 11.25H19C19.4142 11.25 19.75 11.5858 19.75 12C19.75 12.4142 19.4142 12.75 19 12.75H6.81066L9.53033 15.4697C9.82322 15.7626 9.82322 16.2374 9.53033 16.5303C9.23744 16.8232 8.76256 16.8232 8.46967 16.5303L4.46967 12.5303C4.17678 12.2374 4.17678 11.7626 4.46967 11.4697L8.46967 7.46967C8.76256 7.17678 9.23744 7.17678 9.53033 7.46967Z"
1726 }));
1727 });
1728 var _default = exports["default"] = ArrowLeftIcon;
1729
1730 /***/ }),
1731
1732 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
1733 /*!*********************************************************!*\
1734 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
1735 \*********************************************************/
1736 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1737
1738 "use strict";
1739
1740
1741 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1742 Object.defineProperty(exports, "__esModule", ({
1743 value: true
1744 }));
1745 exports["default"] = void 0;
1746 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1747 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1748 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1749 var BulbIcon = _react.default.forwardRef(function (props, ref) {
1750 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
1751 ref: ref
1752 }), /*#__PURE__*/_react.default.createElement("svg", {
1753 width: "22",
1754 height: "22",
1755 viewBox: "0 0 22 22",
1756 fill: "none",
1757 xmlns: "http://www.w3.org/2000/svg"
1758 }, /*#__PURE__*/_react.default.createElement("g", {
1759 clipPath: "url(#clip0_10743_8902)"
1760 }, /*#__PURE__*/_react.default.createElement("path", {
1761 d: "M2.75 10.0833H3.66667M11 2.75V3.66667M18.3333 10.0833H19.25M5.13333 5.13333L5.775 5.775M16.8667 5.13333L16.225 5.775",
1762 stroke: "#2563EB",
1763 strokeWidth: "1.5",
1764 strokeLinecap: "round",
1765 strokeLinejoin: "round"
1766 }), /*#__PURE__*/_react.default.createElement("path", {
1767 d: "M9.16675 16.041C8.70841 15.1243 6.91205 13.2842 6.62523 12.366C6.3384 11.4477 6.34775 10.4626 6.65195 9.54997C6.95615 8.63738 7.53978 7.84362 8.32016 7.28116C9.10054 6.71869 10.0381 6.41602 11.0001 6.41602C11.962 6.41602 12.8996 6.71869 13.68 7.28116C14.4604 7.84362 15.044 8.63738 15.3482 9.54997C15.6524 10.4626 15.6618 11.4477 15.3749 12.366C15.0881 13.2842 13.2917 15.1243 12.8334 16.041C12.8334 16.041 12.7597 17.3762 12.8334 17.8743C12.8334 18.3606 12.6403 18.8269 12.2964 19.1707C11.9526 19.5145 11.4863 19.7077 11.0001 19.7077C10.5139 19.7077 10.0475 19.5145 9.70372 19.1707C9.3599 18.8269 9.16675 18.3606 9.16675 17.8743C9.2405 17.3762 9.16675 16.041 9.16675 16.041Z",
1768 stroke: "#2563EB",
1769 strokeWidth: "1.5",
1770 strokeLinecap: "round",
1771 strokeLinejoin: "round"
1772 }), /*#__PURE__*/_react.default.createElement("path", {
1773 d: "M10.0833 16.5H11.9166",
1774 stroke: "#2563EB",
1775 strokeWidth: "1.5",
1776 strokeLinecap: "round",
1777 strokeLinejoin: "round"
1778 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
1779 id: "clip0_10743_8902"
1780 }, /*#__PURE__*/_react.default.createElement("rect", {
1781 width: "22",
1782 height: "22",
1783 fill: "white"
1784 })))));
1785 });
1786 var _default = exports["default"] = BulbIcon;
1787
1788 /***/ }),
1789
1790 /***/ "../modules/ai/assets/js/editor/icons/copy-page-icon.js":
1791 /*!**************************************************************!*\
1792 !*** ../modules/ai/assets/js/editor/icons/copy-page-icon.js ***!
1793 \**************************************************************/
1794 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1795
1796 "use strict";
1797
1798
1799 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1800 Object.defineProperty(exports, "__esModule", ({
1801 value: true
1802 }));
1803 exports["default"] = void 0;
1804 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1805 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1806 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1807 var CopyPageIcon = _react.default.forwardRef(function (props, ref) {
1808 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1809 viewBox: "0 0 24 24"
1810 }, props, {
1811 ref: ref
1812 }), /*#__PURE__*/_react.default.createElement("path", {
1813 fillRule: "evenodd",
1814 clipRule: "evenodd",
1815 d: "M16.6667 0.208496C17.0534 0.208496 17.4244 0.362142 17.6979 0.635632C17.9714 0.909123 18.125 1.28006 18.125 1.66683V11.6668C18.125 12.0536 17.9714 12.4245 17.6979 12.698C17.4244 12.9715 17.0534 13.1252 16.6667 13.1252H14.7917V16.6668C14.7917 17.0536 14.638 17.4245 14.3645 17.698C14.091 17.9715 13.7201 18.1252 13.3333 18.1252H3.33333C2.94656 18.1252 2.57563 17.9715 2.30214 17.698C2.02865 17.4245 1.875 17.0536 1.875 16.6668V6.66683C1.875 6.28005 2.02865 5.90912 2.30214 5.63563C2.57563 5.36214 2.94656 5.2085 3.33333 5.2085H5.20833V1.66683C5.20833 1.28005 5.36198 0.909122 5.63547 0.635632C5.90896 0.362142 6.27989 0.208496 6.66667 0.208496H16.6667ZM6.66667 1.4585C6.61141 1.4585 6.55842 1.48045 6.51935 1.51952C6.48028 1.55859 6.45833 1.61158 6.45833 1.66683V3.54183H8.54167V1.4585H6.66667ZM3.125 9.79183V16.6668C3.125 16.7221 3.14695 16.7751 3.18602 16.8141C3.22509 16.8532 3.27808 16.8752 3.33333 16.8752H13.3333C13.3886 16.8752 13.4416 16.8532 13.4806 16.8141C13.5197 16.7751 13.5417 16.7221 13.5417 16.6668V13.1252H6.66667C6.27989 13.1252 5.90896 12.9715 5.63547 12.698C5.36198 12.4245 5.20833 12.0536 5.20833 11.6668V9.79183H3.125ZM5.20833 8.54183H3.125V6.66683C3.125 6.61158 3.14695 6.55859 3.18602 6.51952C3.22509 6.48045 3.27808 6.4585 3.33333 6.4585H5.20833V8.54183ZM6.45833 11.6668C6.45833 11.7221 6.48028 11.7751 6.51935 11.8141C6.55842 11.8532 6.61141 11.8752 6.66667 11.8752H16.6667C16.7219 11.8752 16.7749 11.8532 16.814 11.8141C16.853 11.7751 16.875 11.7221 16.875 11.6668V4.79183H6.45833V11.6668ZM9.79167 1.4585V3.54183H16.875V1.66683C16.875 1.61157 16.853 1.55858 16.814 1.51952C16.7749 1.48045 16.7219 1.4585 16.6667 1.4585H9.79167Z"
1816 }));
1817 });
1818 var _default = exports["default"] = CopyPageIcon;
1819
1820 /***/ }),
1821
1822 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
1823 /*!*********************************************************!*\
1824 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
1825 \*********************************************************/
1826 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1827
1828 "use strict";
1829
1830
1831 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1832 Object.defineProperty(exports, "__esModule", ({
1833 value: true
1834 }));
1835 exports["default"] = void 0;
1836 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1837 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1838 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1839 var EditIcon = _react.default.forwardRef(function (props, ref) {
1840 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1841 viewBox: "0 0 24 24"
1842 }, props, {
1843 ref: ref
1844 }), /*#__PURE__*/_react.default.createElement("path", {
1845 fillRule: "evenodd",
1846 clipRule: "evenodd",
1847 d: "M13.9697 4.96967C14.6408 4.29858 15.5509 3.92157 16.5 3.92157C17.4491 3.92157 18.3592 4.29858 19.0303 4.96967C19.7014 5.64075 20.0784 6.55094 20.0784 7.5C20.0784 8.44905 19.7014 9.35924 19.0303 10.0303L8.53033 20.5303C8.38968 20.671 8.19891 20.75 8 20.75H4C3.58579 20.75 3.25 20.4142 3.25 20V16C3.25 15.8011 3.32902 15.6103 3.46967 15.4697L13.9697 4.96967ZM16.5 5.42157C15.9488 5.42157 15.4201 5.64055 15.0303 6.03033L4.75 16.3107V19.25H7.68934L17.9697 8.96967C18.3595 8.57989 18.5784 8.05123 18.5784 7.5C18.5784 6.94876 18.3595 6.42011 17.9697 6.03033C17.5799 5.64055 17.0512 5.42157 16.5 5.42157Z"
1848 }), /*#__PURE__*/_react.default.createElement("path", {
1849 fillRule: "evenodd",
1850 clipRule: "evenodd",
1851 d: "M12.9697 5.96967C13.2626 5.67677 13.7374 5.67677 14.0303 5.96967L18.0303 9.96967C18.3232 10.2626 18.3232 10.7374 18.0303 11.0303C17.7374 11.3232 17.2626 11.3232 16.9697 11.0303L12.9697 7.03033C12.6768 6.73743 12.6768 6.26256 12.9697 5.96967Z"
1852 }));
1853 });
1854 var _default = exports["default"] = EditIcon;
1855
1856 /***/ }),
1857
1858 /***/ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js":
1859 /*!********************************************************************!*\
1860 !*** ../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js ***!
1861 \********************************************************************/
1862 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1863
1864 "use strict";
1865
1866
1867 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1868 Object.defineProperty(exports, "__esModule", ({
1869 value: true
1870 }));
1871 exports["default"] = void 0;
1872 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1873 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1874 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1875 var ExpandDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1876 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1877 viewBox: "0 0 24 24"
1878 }, props, {
1879 ref: ref
1880 }), /*#__PURE__*/_react.default.createElement("path", {
1881 fillRule: "evenodd",
1882 clipRule: "evenodd",
1883 d: "M4 3.25H8C8.41421 3.25 8.75 3.58579 8.75 4C8.75 4.41421 8.41421 4.75 8 4.75H5.81066L10.5303 9.46967C10.8232 9.76256 10.8232 10.2374 10.5303 10.5303C10.2374 10.8232 9.76256 10.8232 9.46967 10.5303L4.75 5.81066V8C4.75 8.41421 4.41421 8.75 4 8.75C3.58579 8.75 3.25 8.41421 3.25 8V4C3.25 3.58579 3.58579 3.25 4 3.25ZM13.4697 13.4697C13.7626 13.1768 14.2374 13.1768 14.5303 13.4697L19.25 18.1893V16C19.25 15.5858 19.5858 15.25 20 15.25C20.4142 15.25 20.75 15.5858 20.75 16V20C20.75 20.4142 20.4142 20.75 20 20.75H16C15.5858 20.75 15.25 20.4142 15.25 20C15.25 19.5858 15.5858 19.25 16 19.25H18.1893L13.4697 14.5303C13.1768 14.2374 13.1768 13.7626 13.4697 13.4697Z"
1884 }));
1885 });
1886 var _default = exports["default"] = ExpandDiagonalIcon;
1887
1888 /***/ }),
1889
1890 /***/ "../modules/ai/assets/js/editor/icons/lock-icon.js":
1891 /*!*********************************************************!*\
1892 !*** ../modules/ai/assets/js/editor/icons/lock-icon.js ***!
1893 \*********************************************************/
1894 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1895
1896 "use strict";
1897
1898
1899 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1900 Object.defineProperty(exports, "__esModule", ({
1901 value: true
1902 }));
1903 exports["default"] = void 0;
1904 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1905 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1906 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1907 var LockIcon = _react.default.forwardRef(function (props, ref) {
1908 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1909 viewBox: "0 0 24 24"
1910 }, props, {
1911 ref: ref
1912 }), /*#__PURE__*/_react.default.createElement("path", {
1913 fillRule: "evenodd",
1914 clipRule: "evenodd",
1915 d: "M7.8125 11.9996C7.29473 11.9996 6.875 12.4473 6.875 12.9996V18.9996C6.875 19.5519 7.29473 19.9996 7.8125 19.9996H17.1875C17.7053 19.9996 18.125 19.5519 18.125 18.9996V12.9996C18.125 12.4473 17.7053 11.9996 17.1875 11.9996H7.8125ZM5 12.9996C5 11.3428 6.2592 9.99963 7.8125 9.99963H17.1875C18.7408 9.99963 20 11.3428 20 12.9996V18.9996C20 20.6565 18.7408 21.9996 17.1875 21.9996H7.8125C6.2592 21.9996 5 20.6565 5 18.9996V12.9996Z"
1916 }), /*#__PURE__*/_react.default.createElement("path", {
1917 fillRule: "evenodd",
1918 clipRule: "evenodd",
1919 d: "M12.5 3.90527C11.7044 3.90527 10.9413 4.22134 10.3787 4.78395C9.81607 5.34656 9.5 6.10962 9.5 6.90527V10.9053C9.5 11.4576 9.05228 11.9053 8.5 11.9053C7.94772 11.9053 7.5 11.4576 7.5 10.9053V6.90527C7.5 5.57919 8.02678 4.30742 8.96447 3.36974C9.90215 2.43206 11.1739 1.90527 12.5 1.90527C13.8261 1.90527 15.0979 2.43206 16.0355 3.36974C16.9732 4.30742 17.5 5.57919 17.5 6.90527V10.9053C17.5 11.4576 17.0523 11.9053 16.5 11.9053C15.9477 11.9053 15.5 11.4576 15.5 10.9053V6.90527C15.5 6.10962 15.1839 5.34656 14.6213 4.78395C14.0587 4.22134 13.2956 3.90527 12.5 3.90527Z"
1920 }), /*#__PURE__*/_react.default.createElement("path", {
1921 d: "M6 12H19V20H6V12Z"
1922 }));
1923 });
1924 var _default = exports["default"] = LockIcon;
1925
1926 /***/ }),
1927
1928 /***/ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js":
1929 /*!**********************************************************************!*\
1930 !*** ../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js ***!
1931 \**********************************************************************/
1932 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1933
1934 "use strict";
1935
1936
1937 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1938 Object.defineProperty(exports, "__esModule", ({
1939 value: true
1940 }));
1941 exports["default"] = void 0;
1942 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1943 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1944 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1945 var MinimizeDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1946 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1947 viewBox: "0 0 24 24"
1948 }, props, {
1949 ref: ref
1950 }), /*#__PURE__*/_react.default.createElement("path", {
1951 fillRule: "evenodd",
1952 clipRule: "evenodd",
1953 d: "M3.46967 3.46967C3.76256 3.17678 4.23744 3.17678 4.53033 3.46967L9.25 8.18934V6C9.25 5.58579 9.58579 5.25 10 5.25C10.4142 5.25 10.75 5.58579 10.75 6V10C10.75 10.4142 10.4142 10.75 10 10.75H6C5.58579 10.75 5.25 10.4142 5.25 10C5.25 9.58579 5.58579 9.25 6 9.25H8.18934L3.46967 4.53033C3.17678 4.23744 3.17678 3.76256 3.46967 3.46967ZM14 13.25H18C18.4142 13.25 18.75 13.5858 18.75 14C18.75 14.4142 18.4142 14.75 18 14.75H15.8107L20.5303 19.4697C20.8232 19.7626 20.8232 20.2374 20.5303 20.5303C20.2374 20.8232 19.7626 20.8232 19.4697 20.5303L14.75 15.8107V18C14.75 18.4142 14.4142 18.75 14 18.75C13.5858 18.75 13.25 18.4142 13.25 18V14C13.25 13.5858 13.5858 13.25 14 13.25Z"
1954 }));
1955 });
1956 var _default = exports["default"] = MinimizeDiagonalIcon;
1957
1958 /***/ }),
1959
1960 /***/ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js":
1961 /*!****************************************************************!*\
1962 !*** ../modules/ai/assets/js/editor/icons/plus-circle-icon.js ***!
1963 \****************************************************************/
1964 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1965
1966 "use strict";
1967
1968
1969 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1970 Object.defineProperty(exports, "__esModule", ({
1971 value: true
1972 }));
1973 exports["default"] = void 0;
1974 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1975 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1976 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1977 var PlusCircleIcon = _react.default.forwardRef(function (props, ref) {
1978 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1979 viewBox: "0 0 24 24"
1980 }, props, {
1981 ref: ref
1982 }), /*#__PURE__*/_react.default.createElement("path", {
1983 d: "M12 2.69231C6.8595 2.69231 2.69231 6.8595 2.69231 12C2.69231 17.1405 6.8595 21.3077 12 21.3077C17.1405 21.3077 21.3077 17.1405 21.3077 12C21.3077 6.8595 17.1405 2.69231 12 2.69231ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM12 7.76923C12.4673 7.76923 12.8462 8.14807 12.8462 8.61538V11.1538H15.3846C15.8519 11.1538 16.2308 11.5327 16.2308 12C16.2308 12.4673 15.8519 12.8462 15.3846 12.8462H12.8462V15.3846C12.8462 15.8519 12.4673 16.2308 12 16.2308C11.5327 16.2308 11.1538 15.8519 11.1538 15.3846V12.8462H8.61538C8.14807 12.8462 7.76923 12.4673 7.76923 12C7.76923 11.5327 8.14807 11.1538 8.61538 11.1538H11.1538V8.61538C11.1538 8.14807 11.5327 7.76923 12 7.76923Z"
1984 }));
1985 });
1986 var _default = exports["default"] = PlusCircleIcon;
1987
1988 /***/ }),
1989
1990 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
1991 /*!************************************************************!*\
1992 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
1993 \************************************************************/
1994 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1995
1996 "use strict";
1997
1998
1999 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2000 Object.defineProperty(exports, "__esModule", ({
2001 value: true
2002 }));
2003 exports["default"] = void 0;
2004 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2005 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2006 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2007 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
2008 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2009 viewBox: "0 0 24 24"
2010 }, props, {
2011 ref: ref
2012 }), /*#__PURE__*/_react.default.createElement("path", {
2013 fillRule: "evenodd",
2014 clipRule: "evenodd",
2015 d: "M7.55012 4.45178C9.23098 3.48072 11.1845 3.08925 13.1097 3.33767C15.035 3.58609 16.8251 4.46061 18.2045 5.82653C19.5838 7.19245 20.4757 8.97399 20.743 10.8967C20.8 11.307 20.5136 11.6858 20.1033 11.7428C19.6931 11.7998 19.3142 11.5135 19.2572 11.1032C19.0353 9.50635 18.2945 8.02677 17.149 6.89236C16.0035 5.75795 14.5167 5.03165 12.9178 4.82534C11.3189 4.61902 9.69644 4.94414 8.30047 5.75061C7.24361 6.36117 6.36093 7.22198 5.72541 8.24995H8.00009C8.41431 8.24995 8.75009 8.58574 8.75009 8.99995C8.75009 9.41417 8.41431 9.74995 8.00009 9.74995H4.51686C4.5055 9.75021 4.49412 9.75021 4.48272 9.74995H4.00009C3.58588 9.74995 3.25009 9.41417 3.25009 8.99995V4.99995C3.25009 4.58574 3.58588 4.24995 4.00009 4.24995C4.41431 4.24995 4.75009 4.58574 4.75009 4.99995V7.00691C5.48358 5.96916 6.43655 5.0951 7.55012 4.45178Z"
2016 }), /*#__PURE__*/_react.default.createElement("path", {
2017 fillRule: "evenodd",
2018 clipRule: "evenodd",
2019 d: "M3.89686 12.2571C4.30713 12.2001 4.68594 12.4864 4.74295 12.8967C4.96487 14.4936 5.70565 15.9731 6.85119 17.1075C7.99673 18.242 9.48347 18.9683 11.0824 19.1746C12.6813 19.3809 14.3037 19.0558 15.6997 18.2493C16.7566 17.6387 17.6393 16.7779 18.2748 15.75H16.0001C15.5859 15.75 15.2501 15.4142 15.2501 15C15.2501 14.5857 15.5859 14.25 16.0001 14.25H19.4833C19.4947 14.2497 19.5061 14.2497 19.5175 14.25H20.0001C20.4143 14.25 20.7501 14.5857 20.7501 15V19C20.7501 19.4142 20.4143 19.75 20.0001 19.75C19.5859 19.75 19.2501 19.4142 19.2501 19V16.993C18.5166 18.0307 17.5636 18.9048 16.4501 19.5481C14.7692 20.5192 12.8157 20.9107 10.8904 20.6622C8.9652 20.4138 7.17504 19.5393 5.79572 18.1734C4.4164 16.8074 3.52443 15.0259 3.25723 13.1032C3.20022 12.6929 3.48658 12.3141 3.89686 12.2571Z"
2020 }));
2021 });
2022 var _default = exports["default"] = RefreshIcon;
2023
2024 /***/ }),
2025
2026 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
2027 /*!*********************************************************!*\
2028 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
2029 \*********************************************************/
2030 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2031
2032 "use strict";
2033
2034
2035 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2036 Object.defineProperty(exports, "__esModule", ({
2037 value: true
2038 }));
2039 exports["default"] = void 0;
2040 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2041 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2042 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2043 var WandIcon = _react.default.forwardRef(function (props, ref) {
2044 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2045 viewBox: "0 0 24 24"
2046 }, props, {
2047 ref: ref
2048 }), /*#__PURE__*/_react.default.createElement("path", {
2049 fillRule: "evenodd",
2050 clipRule: "evenodd",
2051 d: "M9 2.25C9.41421 2.25 9.75 2.58579 9.75 3C9.75 3.33152 9.8817 3.64946 10.1161 3.88388C10.3505 4.1183 10.6685 4.25 11 4.25C11.4142 4.25 11.75 4.58579 11.75 5C11.75 5.41421 11.4142 5.75 11 5.75C10.6685 5.75 10.3505 5.8817 10.1161 6.11612C9.8817 6.35054 9.75 6.66848 9.75 7C9.75 7.41421 9.41421 7.75 9 7.75C8.58579 7.75 8.25 7.41421 8.25 7C8.25 6.66848 8.1183 6.35054 7.88388 6.11612C7.64946 5.8817 7.33152 5.75 7 5.75C6.58579 5.75 6.25 5.41421 6.25 5C6.25 4.58579 6.58579 4.25 7 4.25C7.33152 4.25 7.64946 4.1183 7.88388 3.88388C8.1183 3.64946 8.25 3.33152 8.25 3C8.25 2.58579 8.58579 2.25 9 2.25ZM9 4.88746C8.98182 4.90673 8.96333 4.92576 8.94454 4.94454C8.92576 4.96333 8.90673 4.98182 8.88746 5C8.90673 5.01818 8.92576 5.03667 8.94454 5.05546C8.96333 5.07424 8.98182 5.09327 9 5.11254C9.01818 5.09327 9.03667 5.07424 9.05546 5.05546C9.07424 5.03667 9.09327 5.01818 9.11254 5C9.09327 4.98182 9.07424 4.96333 9.05546 4.94454C9.03667 4.92576 9.01818 4.90673 9 4.88746Z"
2052 }), /*#__PURE__*/_react.default.createElement("path", {
2053 fillRule: "evenodd",
2054 clipRule: "evenodd",
2055 d: "M18.5303 2.46967C18.2374 2.17678 17.7626 2.17678 17.4697 2.46967L2.46967 17.4697C2.17678 17.7626 2.17678 18.2374 2.46967 18.5303L5.46967 21.5303C5.76256 21.8232 6.23744 21.8232 6.53033 21.5303L21.5303 6.53033C21.8232 6.23744 21.8232 5.76256 21.5303 5.46967L18.5303 2.46967ZM18 7.93934L19.9393 6L18 4.06066L16.0607 6L18 7.93934ZM15 7.06066L16.9393 9L6 19.9393L4.06066 18L15 7.06066Z"
2056 }), /*#__PURE__*/_react.default.createElement("path", {
2057 fillRule: "evenodd",
2058 clipRule: "evenodd",
2059 d: "M19.75 13C19.75 12.5858 19.4142 12.25 19 12.25C18.5858 12.25 18.25 12.5858 18.25 13C18.25 13.3315 18.1183 13.6495 17.8839 13.8839C17.6495 14.1183 17.3315 14.25 17 14.25C16.5858 14.25 16.25 14.5858 16.25 15C16.25 15.4142 16.5858 15.75 17 15.75C17.3315 15.75 17.6495 15.8817 17.8839 16.1161C18.1183 16.3505 18.25 16.6685 18.25 17C18.25 17.4142 18.5858 17.75 19 17.75C19.4142 17.75 19.75 17.4142 19.75 17C19.75 16.6685 19.8817 16.3505 20.1161 16.1161C20.3505 15.8817 20.6685 15.75 21 15.75C21.4142 15.75 21.75 15.4142 21.75 15C21.75 14.5858 21.4142 14.25 21 14.25C20.6685 14.25 20.3505 14.1183 20.1161 13.8839C19.8817 13.6495 19.75 13.3315 19.75 13ZM18.9445 14.9445C18.9633 14.9258 18.9818 14.9067 19 14.8875C19.0182 14.9067 19.0367 14.9258 19.0555 14.9445C19.0742 14.9633 19.0933 14.9818 19.1125 15C19.0933 15.0182 19.0742 15.0367 19.0555 15.0555C19.0367 15.0742 19.0182 15.0933 19 15.1125C18.9818 15.0933 18.9633 15.0742 18.9445 15.0555C18.9258 15.0367 18.9067 15.0182 18.8875 15C18.9067 14.9818 18.9258 14.9633 18.9445 14.9445Z"
2060 }));
2061 });
2062 var _default = exports["default"] = WandIcon;
2063
2064 /***/ }),
2065
2066 /***/ "../modules/ai/assets/js/editor/icons/website-icon.js":
2067 /*!************************************************************!*\
2068 !*** ../modules/ai/assets/js/editor/icons/website-icon.js ***!
2069 \************************************************************/
2070 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2071
2072 "use strict";
2073
2074
2075 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2076 Object.defineProperty(exports, "__esModule", ({
2077 value: true
2078 }));
2079 exports["default"] = void 0;
2080 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2081 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2082 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2083 var WebsiteIcon = _react.default.forwardRef(function (props, ref) {
2084 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2085 viewBox: "0 0 24 24"
2086 }, props, {
2087 ref: ref
2088 }), /*#__PURE__*/_react.default.createElement("path", {
2089 fillRule: "evenodd",
2090 clipRule: "evenodd",
2091 d: "M4.16707 3.95837C4.11182 3.95837 4.05883 3.98032 4.01976 4.01939C3.98069 4.05846 3.95874 4.11145 3.95874 4.16671V6.04171H6.04207V3.95837H4.16707ZM4.16707 2.70837C3.7803 2.70837 3.40937 2.86202 3.13588 3.13551C2.86239 3.409 2.70874 3.77993 2.70874 4.16671V15.8334C2.70874 16.2201 2.86239 16.5911 3.13588 16.8646C3.40937 17.1381 3.7803 17.2917 4.16707 17.2917H15.8337C16.2205 17.2917 16.5914 17.1381 16.8649 16.8646C17.1384 16.5911 17.2921 16.2201 17.2921 15.8334V4.16671C17.2921 3.77993 17.1384 3.409 16.8649 3.13551C16.5914 2.86202 16.2205 2.70837 15.8337 2.70837H4.16707ZM7.29207 3.95837V6.04171H16.0421V4.16671C16.0421 4.11145 16.0201 4.05846 15.9811 4.01939C15.942 3.98032 15.889 3.95837 15.8337 3.95837H7.29207ZM16.0421 7.29171H3.95874V15.8334C3.95874 15.8886 3.98069 15.9416 4.01976 15.9807C4.05883 16.0198 4.11182 16.0417 4.16707 16.0417H15.8337C15.889 16.0417 15.942 16.0198 15.9811 15.9807C16.0201 15.9416 16.0421 15.8886 16.0421 15.8334V7.29171Z"
2092 }));
2093 });
2094 var _default = exports["default"] = WebsiteIcon;
2095
2096 /***/ }),
2097
2098 /***/ "../modules/ai/assets/js/editor/icons/x-circle-icon.js":
2099 /*!*************************************************************!*\
2100 !*** ../modules/ai/assets/js/editor/icons/x-circle-icon.js ***!
2101 \*************************************************************/
2102 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2103
2104 "use strict";
2105
2106
2107 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2108 Object.defineProperty(exports, "__esModule", ({
2109 value: true
2110 }));
2111 exports["default"] = void 0;
2112 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2113 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2114 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2115 var XCircleIcon = _react.default.forwardRef(function (props, ref) {
2116 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2117 viewBox: "0 0 24 24"
2118 }, props, {
2119 ref: ref
2120 }), /*#__PURE__*/_react.default.createElement("path", {
2121 d: "M12 2.69231C6.8595 2.69231 2.69231 6.8595 2.69231 12C2.69231 17.1405 6.8595 21.3077 12 21.3077C17.1405 21.3077 21.3077 17.1405 21.3077 12C21.3077 6.8595 17.1405 2.69231 12 2.69231ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM9.14527 9.14527C9.47571 8.81483 10.0115 8.81483 10.3419 9.14527L12 10.8034L13.6581 9.14527C13.9885 8.81483 14.5243 8.81483 14.8547 9.14527C15.1852 9.47571 15.1852 10.0115 14.8547 10.3419L13.1966 12L14.8547 13.6581C15.1852 13.9885 15.1852 14.5243 14.8547 14.8547C14.5243 15.1852 13.9885 15.1852 13.6581 14.8547L12 13.1966L10.3419 14.8547C10.0115 15.1852 9.47571 15.1852 9.14527 14.8547C8.81483 14.5243 8.81483 13.9885 9.14527 13.6581L10.8034 12L9.14527 10.3419C8.81483 10.0115 8.81483 9.47571 9.14527 9.14527Z"
2122 }));
2123 });
2124 var _default = exports["default"] = XCircleIcon;
2125
2126 /***/ }),
2127
2128 /***/ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js":
2129 /*!********************************************************************************************!*\
2130 !*** ../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js ***!
2131 \********************************************************************************************/
2132 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2133
2134 "use strict";
2135
2136
2137 var _require = __webpack_require__(/*! ../../utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js"),
2138 renderLayoutApp = _require.renderLayoutApp,
2139 importToEditor = _require.importToEditor;
2140 var _require2 = __webpack_require__(/*! ../../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js"),
2141 MODE_VARIATION = _require2.MODE_VARIATION;
2142 var _require3 = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"),
2143 __ = _require3.__;
2144 var _require4 = __webpack_require__(/*! ../../pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"),
2145 ATTACHMENT_TYPE_JSON = _require4.ATTACHMENT_TYPE_JSON,
2146 ELEMENTOR_LIBRARY_SOURCE = _require4.ELEMENTOR_LIBRARY_SOURCE;
2147 var ApplyTemplateForAiBehavior;
2148 ApplyTemplateForAiBehavior = Marionette.Behavior.extend({
2149 ui: {
2150 applyButton: '.elementor-template-library-template-apply-ai',
2151 generateVariation: '.elementor-template-library-template-generate-variation'
2152 },
2153 events: {
2154 'click @ui.applyButton': 'onApplyButtonClick',
2155 'click @ui.generateVariation': 'onGenerateVariationClick'
2156 },
2157 onGenerateVariationClick: function onGenerateVariationClick() {
2158 var _libraryComponent$man;
2159 var args = {
2160 model: this.view.model
2161 };
2162 var libraryComponent = $e.components.get('library');
2163 var at = (_libraryComponent$man = libraryComponent.manager.modalConfig) === null || _libraryComponent$man === void 0 || (_libraryComponent$man = _libraryComponent$man.importOptions) === null || _libraryComponent$man === void 0 ? void 0 : _libraryComponent$man.at;
2164 libraryComponent.downloadTemplate(args, function (data) {
2165 var model = args.model;
2166 var attachment = {
2167 type: ATTACHMENT_TYPE_JSON,
2168 previewHTML: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
2169 content: data.content[0],
2170 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
2171 source: ELEMENTOR_LIBRARY_SOURCE
2172 };
2173 renderLayoutApp({
2174 parentContainer: elementor.getPreviewContainer(),
2175 mode: MODE_VARIATION,
2176 at: at,
2177 attachments: [attachment],
2178 onInsert: function onInsert(template) {
2179 importToEditor({
2180 parentContainer: elementor.getPreviewContainer(),
2181 at: at,
2182 template: template,
2183 historyTitle: __('AI Variation from library', 'elementor')
2184 });
2185 }
2186 });
2187 $e.run('library/close');
2188 });
2189 },
2190 onApplyButtonClick: function onApplyButtonClick() {
2191 var args = {
2192 model: this.view.model
2193 };
2194 this.ui.applyButton.addClass('elementor-disabled');
2195 var activeSource = args.model.get('source');
2196
2197 /**
2198 * Filter template source.
2199 *
2200 * @param bool isRemote - If `true` the source is a remote source.
2201 * @param string activeSource - The current template source.
2202 */
2203 var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
2204 if (isRemote && !elementor.config.library_connect.is_connected) {
2205 $e.route('library/connect', args);
2206 return;
2207 }
2208 $e.run('library/generate-ai-variation', args);
2209 }
2210 });
2211 module.exports = ApplyTemplateForAiBehavior;
2212
2213 /***/ }),
2214
2215 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2216 /*!************************************************************!*\
2217 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2218 \************************************************************/
2219 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2220
2221 "use strict";
2222
2223
2224 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2225 Object.defineProperty(exports, "__esModule", ({
2226 value: true
2227 }));
2228 exports["default"] = void 0;
2229 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2230 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2231 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2232 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2233 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2234 rtl: props.isRTL
2235 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2236 colorScheme: props.colorScheme
2237 }, props.children));
2238 };
2239 LayoutAppWrapper.propTypes = {
2240 children: _propTypes.default.node,
2241 isRTL: _propTypes.default.bool,
2242 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2243 };
2244 var _default = exports["default"] = LayoutAppWrapper;
2245
2246 /***/ }),
2247
2248 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2249 /*!****************************************************!*\
2250 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2251 \****************************************************/
2252 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2253
2254 "use strict";
2255
2256
2257 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2258 Object.defineProperty(exports, "__esModule", ({
2259 value: true
2260 }));
2261 exports["default"] = void 0;
2262 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2263 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2264 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2265 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2266 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2267 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2268 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2269 var LayoutApp = function LayoutApp(props) {
2270 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2271 onError: props.onClose
2272 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2273 mode: props.mode,
2274 attachmentsTypes: props.attachmentsTypes,
2275 onClose: props.onClose,
2276 onConnect: props.onConnect,
2277 onData: props.onData,
2278 onInsert: props.onInsert,
2279 onSelect: props.onSelect,
2280 onGenerate: props.onGenerate,
2281 currentContext: props.currentContext,
2282 hasPro: props.hasPro
2283 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2284 attachments: props.attachments
2285 }))));
2286 };
2287 LayoutApp.propTypes = {
2288 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2289 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2290 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2291 onClose: _propTypes.default.func.isRequired,
2292 onConnect: _propTypes.default.func.isRequired,
2293 onData: _propTypes.default.func.isRequired,
2294 onInsert: _propTypes.default.func.isRequired,
2295 onSelect: _propTypes.default.func.isRequired,
2296 onGenerate: _propTypes.default.func.isRequired,
2297 currentContext: _propTypes.default.object,
2298 hasPro: _propTypes.default.bool
2299 };
2300 var _default = exports["default"] = LayoutApp;
2301
2302 /***/ }),
2303
2304 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2305 /*!********************************************************!*\
2306 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2307 \********************************************************/
2308 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2309
2310 "use strict";
2311
2312
2313 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2314 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2315 Object.defineProperty(exports, "__esModule", ({
2316 value: true
2317 }));
2318 exports["default"] = void 0;
2319 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2320 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2321 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2322 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2323 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2324 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2325 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2326 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2327 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2328 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2329 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2330 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2331 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2332 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2333 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2334 var LayoutContent = function LayoutContent(props) {
2335 var _useUserInfo = (0, _useUserInfo2.default)(),
2336 isLoading = _useUserInfo.isLoading,
2337 isConnected = _useUserInfo.isConnected,
2338 isGetStarted = _useUserInfo.isGetStarted,
2339 connectUrl = _useUserInfo.connectUrl,
2340 fetchData = _useUserInfo.fetchData,
2341 hasSubscription = _useUserInfo.hasSubscription,
2342 initialUsagePercentage = _useUserInfo.usagePercentage;
2343 var _useConfig = (0, _config.useConfig)(),
2344 onClose = _useConfig.onClose,
2345 onConnect = _useConfig.onConnect;
2346 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2347 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2348 usagePercentage = _useRequestIds.usagePercentage;
2349 var _useState = (0, _react.useState)(false),
2350 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2351 isInitUsageDone = _useState2[0],
2352 setIsInitUsageDone = _useState2[1];
2353 (0, _react.useEffect)(function () {
2354 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2355 updateUsagePercentage(initialUsagePercentage);
2356 setIsInitUsageDone(true);
2357 }
2358 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2359 if (isLoading || !isInitUsageDone) {
2360 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2361 onClose: onClose
2362 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2363 onClose: onClose
2364 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2365 dividers: true
2366 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2367 BoxProps: {
2368 sx: {
2369 px: 3
2370 }
2371 }
2372 })));
2373 }
2374 if (!isConnected) {
2375 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2376 onClose: onClose
2377 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2378 onClose: onClose
2379 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2380 dividers: true
2381 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2382 connectUrl: connectUrl,
2383 onSuccess: function onSuccess(data) {
2384 onConnect(data);
2385 fetchData();
2386 }
2387 })));
2388 }
2389 if (!isGetStarted) {
2390 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2391 onClose: onClose
2392 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2393 onClose: onClose
2394 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2395 dividers: true
2396 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2397 onSuccess: fetchData
2398 })));
2399 }
2400 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2401 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2402 attachments: props.attachments,
2403 DialogHeaderProps: {
2404 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2405 hasSubscription: hasSubscription,
2406 usagePercentage: usagePercentage
2407 })
2408 }
2409 });
2410 };
2411 LayoutContent.propTypes = {
2412 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2413 };
2414 var _default = exports["default"] = LayoutContent;
2415
2416 /***/ }),
2417
2418 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2419 /*!*************************************************************!*\
2420 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2421 \*************************************************************/
2422 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2423
2424 "use strict";
2425
2426
2427 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2428 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2429 Object.defineProperty(exports, "__esModule", ({
2430 value: true
2431 }));
2432 exports["default"] = void 0;
2433 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2434 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2435 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2436 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2437 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2438 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2439 var Connect = function Connect(_ref) {
2440 var connectUrl = _ref.connectUrl,
2441 onSuccess = _ref.onSuccess;
2442 var approveButtonRef = (0, _react.useRef)();
2443 (0, _react.useEffect)(function () {
2444 // On local dev (as a standalone app), the connect lib is not loaded.
2445 if (!jQuery.fn.elementorConnect) {
2446 return;
2447 }
2448 jQuery(approveButtonRef.current).elementorConnect({
2449 success: function success(_, data) {
2450 return onSuccess(data);
2451 },
2452 error: function error() {
2453 throw new Error('Elementor AI: Failed to connect.');
2454 }
2455 });
2456 }, []);
2457 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2458 alignItems: "center",
2459 gap: 2
2460 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2461 sx: {
2462 color: 'text.primary',
2463 fontSize: '60px',
2464 mb: 1
2465 }
2466 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2467 variant: "h4",
2468 sx: {
2469 color: 'text.primary'
2470 }
2471 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2472 variant: "body2"
2473 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2474 variant: "caption",
2475 sx: {
2476 maxWidth: 520,
2477 textAlign: 'center'
2478 }
2479 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2480 href: "https://go.elementor.com/ai-terms/",
2481 target: "_blank",
2482 color: "info.main"
2483 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2484 href: "https://go.elementor.com/ai-privacy-policy/",
2485 target: "_blank",
2486 color: "info.main"
2487 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2488 ref: approveButtonRef,
2489 href: connectUrl,
2490 variant: "contained",
2491 sx: {
2492 mt: 1,
2493 '&:hover': {
2494 color: 'primary.contrastText'
2495 }
2496 }
2497 }, (0, _i18n.__)('Connect', 'elementor')));
2498 };
2499 Connect.propTypes = {
2500 connectUrl: _propTypes.default.string.isRequired,
2501 onSuccess: _propTypes.default.func.isRequired
2502 };
2503 var _default = exports["default"] = Connect;
2504
2505 /***/ }),
2506
2507 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2508 /*!**********************************************************************************!*\
2509 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2510 \**********************************************************************************/
2511 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2512
2513 "use strict";
2514
2515
2516 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2517 Object.defineProperty(exports, "__esModule", ({
2518 value: true
2519 }));
2520 exports["default"] = exports.USER_VARIATION_SOURCE = exports.USER_URL_SOURCE = exports.MENU_TYPE_LIBRARY = exports.ELEMENTOR_LIBRARY_SOURCE = exports.ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_JSON = void 0;
2521 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2522 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2523 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2524 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2525 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2526 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2527 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2528 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2529 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2530 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2531 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2532 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2533 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2534 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2535 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2536 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2537 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2538 var Attachments = function Attachments(props) {
2539 if (!props.attachments.length) {
2540 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2541 disabled: props.disabled,
2542 onAttach: props.onAttach,
2543 items: [{
2544 title: (0, _i18n.__)('Reference a website', 'elementor'),
2545 icon: _websiteIcon.default,
2546 type: ATTACHMENT_TYPE_URL
2547 }, {
2548 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2549 icon: _copyPageIcon.default,
2550 type: MENU_TYPE_LIBRARY
2551 }]
2552 });
2553 }
2554 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2555 direction: "row",
2556 spacing: 1
2557 }, props.attachments.map(function (attachment, index) {
2558 switch (attachment.type) {
2559 case ATTACHMENT_TYPE_JSON:
2560 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2561 key: index
2562 }, props));
2563 case ATTACHMENT_TYPE_URL:
2564 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2565 key: index
2566 }, props));
2567 default:
2568 return null;
2569 }
2570 }));
2571 };
2572 Attachments.propTypes = {
2573 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2574 onAttach: _propTypes.default.func.isRequired,
2575 onDetach: _propTypes.default.func,
2576 disabled: _propTypes.default.bool
2577 };
2578 var _default = exports["default"] = Attachments;
2579
2580 /***/ }),
2581
2582 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2583 /*!************************************************************************************************!*\
2584 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2585 \************************************************************************************************/
2586 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2587
2588 "use strict";
2589
2590
2591 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2592 Object.defineProperty(exports, "__esModule", ({
2593 value: true
2594 }));
2595 exports["default"] = exports.AttachDialog = void 0;
2596 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2597 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2598 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2599 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2600 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2601 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2602 var type = props.type;
2603 var url = props.url;
2604 switch (type) {
2605 case _attachments.ATTACHMENT_TYPE_URL:
2606 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2607 url: url,
2608 onAttach: props.onAttach,
2609 onClose: props.onClose
2610 });
2611 case _attachments.MENU_TYPE_LIBRARY:
2612 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2613 onAttach: props.onAttach,
2614 onClose: props.onClose
2615 });
2616 }
2617 return null;
2618 };
2619 AttachDialog.propTypes = {
2620 type: _propTypes.default.string,
2621 onAttach: _propTypes.default.func,
2622 onClose: _propTypes.default.func,
2623 url: _propTypes.default.string
2624 };
2625 var _default = exports["default"] = AttachDialog;
2626
2627 /***/ }),
2628
2629 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2630 /*!*************************************************************************************************!*\
2631 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2632 \*************************************************************************************************/
2633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2634
2635 "use strict";
2636
2637
2638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2639 Object.defineProperty(exports, "__esModule", ({
2640 value: true
2641 }));
2642 exports.LibraryDialog = void 0;
2643 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2644 var _react = __webpack_require__(/*! react */ "react");
2645 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2646 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2647 var isApplyingTemplate = (0, _react.useRef)(false);
2648 (0, _react.useEffect)(function () {
2649 var onLibraryHide = function onLibraryHide() {
2650 if (isApplyingTemplate.current) {
2651 return;
2652 }
2653 props.onClose();
2654 };
2655 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2656 return function () {
2657 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2658 };
2659 }, [props]);
2660 (0, _react.useEffect)(function () {
2661 var onMessage = function onMessage(event) {
2662 var _event$data = event.data,
2663 type = _event$data.type,
2664 json = _event$data.json,
2665 html = _event$data.html,
2666 label = _event$data.label,
2667 source = _event$data.source;
2668 switch (type) {
2669 case 'library/attach:start':
2670 isApplyingTemplate.current = true;
2671 break;
2672 case 'library/attach':
2673 props.onAttach([{
2674 type: _attachments.ATTACHMENT_TYPE_JSON,
2675 previewHTML: html,
2676 content: json,
2677 label: label,
2678 source: source
2679 }]);
2680 isApplyingTemplate.current = false;
2681 props.onClose();
2682 break;
2683 }
2684 };
2685 window.addEventListener('message', onMessage);
2686 return function () {
2687 window.removeEventListener('message', onMessage);
2688 };
2689 });
2690 $e.run('library/open', {
2691 toDefault: true,
2692 mode: 'ai-attachment'
2693 });
2694 isApplyingTemplate.current = false;
2695 return null;
2696 };
2697 LibraryDialog.propTypes = {
2698 onAttach: _propTypes.default.func.isRequired,
2699 onClose: _propTypes.default.func.isRequired
2700 };
2701
2702 /***/ }),
2703
2704 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2705 /*!***************************************************************************************!*\
2706 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2707 \***************************************************************************************/
2708 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2709
2710 "use strict";
2711
2712
2713 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2714 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2715 Object.defineProperty(exports, "__esModule", ({
2716 value: true
2717 }));
2718 exports.Menu = void 0;
2719 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2720 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2721 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2722 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2723 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2724 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2725 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2726 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2727 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2728 var Menu = exports.Menu = function Menu(props) {
2729 var _useState = (0, _react.useState)(false),
2730 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2731 isOpen = _useState2[0],
2732 setIsOpen = _useState2[1];
2733 var _useState3 = (0, _react.useState)(null),
2734 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2735 selectedType = _useState4[0],
2736 setSelectedType = _useState4[1];
2737 var _useTheme = (0, _ui.useTheme)(),
2738 direction = _useTheme.direction;
2739 var anchorRef = (0, _react.useRef)(null);
2740 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2741 isViewed = _useIntroduction.isViewed,
2742 markAsViewed = _useIntroduction.markAsViewed;
2743 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2744 size: "small",
2745 ref: anchorRef,
2746 disabled: props.disabled,
2747 onClick: function onClick() {
2748 setIsOpen(true);
2749 if (!isViewed) {
2750 markAsViewed();
2751 }
2752 },
2753 color: "secondary"
2754 }, function () {
2755 if (isOpen) {
2756 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2757 fontSize: "small"
2758 });
2759 } else if (isViewed) {
2760 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2761 fontSize: "small"
2762 });
2763 }
2764 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2765 color: "primary",
2766 badgeContent: " ",
2767 variant: "dot"
2768 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2769 fontSize: "small"
2770 }));
2771 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2772 open: isOpen,
2773 anchorEl: anchorRef.current,
2774 onClose: function onClose() {
2775 return setIsOpen(false);
2776 },
2777 anchorOrigin: {
2778 vertical: 'bottom',
2779 horizontal: 'rtl' === direction ? 'right' : 'left'
2780 },
2781 transformOrigin: {
2782 vertical: 'top',
2783 horizontal: 'rtl' === direction ? 'right' : 'left'
2784 }
2785 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2786 sx: {
2787 width: 440
2788 }
2789 }, props.items.map(function (item) {
2790 var IconComponent = item.icon;
2791 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2792 key: item.type,
2793 onClick: function onClick() {
2794 setSelectedType(item.type);
2795 setIsOpen(false);
2796 }
2797 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2798 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2799 type: selectedType,
2800 onAttach: props.onAttach,
2801 onClose: function onClose() {
2802 setIsOpen(false);
2803 setSelectedType(null);
2804 }
2805 }));
2806 };
2807 Menu.propTypes = {
2808 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2809 title: _propTypes.default.string.isRequired,
2810 type: _propTypes.default.string.isRequired,
2811 icon: _propTypes.default.elementType
2812 })).isRequired,
2813 onAttach: _propTypes.default.func.isRequired,
2814 disabled: _propTypes.default.bool
2815 };
2816
2817 /***/ }),
2818
2819 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2820 /*!******************************************************************************************************!*\
2821 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2822 \******************************************************************************************************/
2823 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2824
2825 "use strict";
2826
2827
2828 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2829 Object.defineProperty(exports, "__esModule", ({
2830 value: true
2831 }));
2832 exports.PromptPowerNotice = void 0;
2833 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2834 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2835 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2836 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2837 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2838 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2839 isViewed = _useIntroduction.isViewed,
2840 markAsViewed = _useIntroduction.markAsViewed;
2841 if (isViewed) {
2842 return null;
2843 }
2844 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2845 sx: {
2846 pt: 2,
2847 px: 2,
2848 pb: 0
2849 }
2850 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2851 severity: "info",
2852 onClose: function onClose() {
2853 return markAsViewed();
2854 }
2855 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2856 variant: "body2",
2857 display: "inline-block",
2858 sx: {
2859 paddingInlineEnd: 1
2860 }
2861 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2862 variant: "body2",
2863 display: "inline-block"
2864 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2865 };
2866
2867 /***/ }),
2868
2869 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2870 /*!*************************************************************************************************!*\
2871 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2872 \*************************************************************************************************/
2873 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2874
2875 "use strict";
2876
2877
2878 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2879 Object.defineProperty(exports, "__esModule", ({
2880 value: true
2881 }));
2882 exports["default"] = exports.ThumbnailJson = void 0;
2883 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2884 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2885 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2886 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2887 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2888 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2889 var _props$attachments;
2890 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2891 return 'json' === item.type;
2892 });
2893 if (!attachment) {
2894 return null;
2895 }
2896 if (!attachment.previewHTML) {
2897 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2898 animation: "wave",
2899 variant: "rounded",
2900 width: 60,
2901 height: 60
2902 });
2903 }
2904 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2905 html: attachment.previewHTML,
2906 disabled: props.disabled
2907 });
2908 };
2909 ThumbnailJson.propTypes = {
2910 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2911 disabled: _propTypes.default.bool
2912 };
2913 var _default = exports["default"] = ThumbnailJson;
2914
2915 /***/ }),
2916
2917 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2918 /*!************************************************************************************************!*\
2919 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2920 \************************************************************************************************/
2921 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2922
2923 "use strict";
2924
2925
2926 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2927 Object.defineProperty(exports, "__esModule", ({
2928 value: true
2929 }));
2930 exports["default"] = exports.ThumbnailUrl = void 0;
2931 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2932 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2933 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2934 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2935 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2936 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2937 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2938 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2939 var _props$attachments;
2940 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2941 return 'url' === item.type;
2942 });
2943 if (!attachment) {
2944 return null;
2945 }
2946 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2947 sx: {
2948 position: 'relative',
2949 '&:hover::before': {
2950 content: '""',
2951 position: 'absolute',
2952 userSelect: 'none',
2953 inset: 0,
2954 backgroundColor: 'rgba(0,0,0,0.6)',
2955 borderRadius: 1,
2956 zIndex: 1
2957 },
2958 '&:hover .remove-attachment': {
2959 display: 'flex'
2960 }
2961 }
2962 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2963 className: "remove-attachment",
2964 size: "small",
2965 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2966 disabled: props.disabled,
2967 onClick: function onClick(event) {
2968 event.stopPropagation();
2969 props.onDetach();
2970 },
2971 sx: {
2972 display: 'none',
2973 position: 'absolute',
2974 insetInlineEnd: 4,
2975 insetBlockStart: 4,
2976 backgroundColor: 'secondary.main',
2977 zIndex: 1,
2978 borderRadius: 1,
2979 p: '3px',
2980 '&:hover': {
2981 backgroundColor: 'secondary.dark'
2982 }
2983 }
2984 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2985 sx: {
2986 fontSize: '1.125rem',
2987 color: 'common.white'
2988 }
2989 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2990 disabled: props.disabled,
2991 html: attachment.previewHTML
2992 }));
2993 };
2994 ThumbnailUrl.propTypes = {
2995 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2996 disabled: _propTypes.default.bool,
2997 onDetach: _propTypes.default.func
2998 };
2999 var _default = exports["default"] = ThumbnailUrl;
3000
3001 /***/ }),
3002
3003 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3004 /*!********************************************************************************************!*\
3005 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3006 \********************************************************************************************/
3007 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3008
3009 "use strict";
3010
3011
3012 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3013 Object.defineProperty(exports, "__esModule", ({
3014 value: true
3015 }));
3016 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3017 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3018 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3019 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3020 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3021 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3022 var _templateObject;
3023 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3024 var StyledBody = (0, _ui.styled)('body')(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\thtml, body {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\toverflow: hidden;\n\t}\n\n\tbody > * {\n\t\twidth: 100% !important;\n\t}\n\n\tbody > img {\n\t\theight: 100%;\n\t\tobject-fit: cover;\n\t}\n\n\tbody:has(> img) {\n\t\theight: ", "px\n\t}\n"])), THUMBNAIL_SIZE);
3025 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3026 var _props$html$match, _props$html$match2;
3027 var dataWidth = (_props$html$match = props.html.match('data-width="(?<width>\\d+)"')) === null || _props$html$match === void 0 || (_props$html$match = _props$html$match.groups) === null || _props$html$match === void 0 ? void 0 : _props$html$match.width;
3028 var dataHeight = (_props$html$match2 = props.html.match('data-height="(?<height>\\d+)"')) === null || _props$html$match2 === void 0 || (_props$html$match2 = _props$html$match2.groups) === null || _props$html$match2 === void 0 ? void 0 : _props$html$match2.height;
3029 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3030 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3031 var scaleFactor = Math.min(height, width);
3032 var scale = THUMBNAIL_SIZE / scaleFactor;
3033
3034 // Center the preview
3035 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3036 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3037 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3038 dir: "ltr",
3039 sx: {
3040 position: 'relative',
3041 cursor: 'default',
3042 overflow: 'hidden',
3043 border: '1px solid',
3044 borderColor: 'grey.300',
3045 borderRadius: 1,
3046 boxSizing: 'border-box',
3047 width: THUMBNAIL_SIZE,
3048 height: THUMBNAIL_SIZE,
3049 opacity: props.disabled ? 0.5 : 1
3050 }
3051 }, /*#__PURE__*/_react.default.createElement("iframe", {
3052 title: (0, _i18n.__)('Preview', 'elementor'),
3053 sandbox: "",
3054 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3055 style: {
3056 border: 'none',
3057 overflow: 'hidden',
3058 width: width,
3059 height: height,
3060 transform: "scale(".concat(scale, ")"),
3061 transformOrigin: "".concat(left, "px ").concat(top, "px")
3062 }
3063 }));
3064 };
3065 Thumbnail.propTypes = {
3066 html: _propTypes.default.string.isRequired,
3067 disabled: _propTypes.default.bool
3068 };
3069
3070 /***/ }),
3071
3072 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3073 /*!*********************************************************************************************!*\
3074 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3075 \*********************************************************************************************/
3076 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3077
3078 "use strict";
3079
3080
3081 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3082 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3083 Object.defineProperty(exports, "__esModule", ({
3084 value: true
3085 }));
3086 exports.UrlDialog = void 0;
3087 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3088 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3089 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3090 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3091 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3092 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3093 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3094 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3095 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3096 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3097 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3098 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3099 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3100 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3101 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3102 isTimeout = _useTimeout2[0],
3103 turnOffTimeout = _useTimeout2[1];
3104 var _useUserInfo = (0, _useUserInfo2.default)(),
3105 isLoading = _useUserInfo.isLoading,
3106 initialUsagePercentage = _useUserInfo.usagePercentage;
3107 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3108 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3109 var _useState = (0, _react.useState)(false),
3110 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3111 isInitUsageDone = _useState2[0],
3112 setIsInitUsageDone = _useState2[1];
3113 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3114 remoteConfig = _useRemoteConfig.remoteConfig;
3115 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3116 var urlObject = builderUrl ? new URL(builderUrl) : {};
3117 var iframeOrigin = urlObject.origin;
3118 var isOpen = (0, _react.useRef)(false);
3119 (0, _react.useEffect)(function () {
3120 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3121 updateUsagePercentage(initialUsagePercentage);
3122 setIsInitUsageDone(true);
3123 }
3124 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3125 (0, _react.useEffect)(function () {
3126 if (!isOpen.current) {
3127 try {
3128 window.$e.run('ai-integration/open-choose-element', {
3129 url: props.url
3130 });
3131 isOpen.current = true;
3132 } catch (error) {
3133 // eslint-disable-next-line no-console
3134 console.error(error);
3135 }
3136 }
3137 }, [isOpen.current]);
3138 (0, _react.useEffect)(function () {
3139 var onMessage = function onMessage(event) {
3140 if (event.origin !== iframeOrigin) {
3141 return;
3142 }
3143 var _event$data = event.data,
3144 type = _event$data.type,
3145 html = _event$data.html,
3146 url = _event$data.url;
3147 switch (type) {
3148 case 'element-selector/close':
3149 isOpen.current = false;
3150 props.onClose();
3151 break;
3152 case 'element-selector/loaded':
3153 turnOffTimeout();
3154 isOpen.current = true;
3155 break;
3156 case 'element-selector/attach':
3157 props.onAttach([{
3158 type: 'url',
3159 previewHTML: html,
3160 content: html,
3161 label: url ? new URL(url).href : '',
3162 source: _attachments.USER_URL_SOURCE
3163 }]);
3164 break;
3165 }
3166 };
3167 window.addEventListener('message', onMessage);
3168 return function () {
3169 window.removeEventListener('message', onMessage);
3170 };
3171 }, [iframeOrigin, props, turnOffTimeout]);
3172 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3173 open: true,
3174 maxWidth: "lg"
3175 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3176 sx: {
3177 textAlign: 'center',
3178 padding: 3
3179 }
3180 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3181 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3182 onClose: props.onClose
3183 }));
3184 };
3185 UrlDialog.propTypes = {
3186 onAttach: _propTypes.default.func.isRequired,
3187 onClose: _propTypes.default.func.isRequired,
3188 url: _propTypes.default.string
3189 };
3190
3191 /***/ }),
3192
3193 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3194 /*!************************************************************************************!*\
3195 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3196 \************************************************************************************/
3197 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3198
3199 "use strict";
3200
3201
3202 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3203 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3204 Object.defineProperty(exports, "__esModule", ({
3205 value: true
3206 }));
3207 exports["default"] = void 0;
3208 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3209 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3210 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3211 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3212 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3213 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3214 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3215 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3216 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3217 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3218 var _excluded = ["sx", "PaperProps"];
3219 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3220 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3221 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3222 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3223 return {
3224 '& .MuiDialog-container': {
3225 marginTop: 0,
3226 alignItems: 'flex-end',
3227 paddingBottom: '16vh'
3228 },
3229 '& .MuiPaper-root': {
3230 margin: 0,
3231 maxHeight: '80vh'
3232 }
3233 };
3234 });
3235 var DialogHeader = function DialogHeader(_ref) {
3236 var onClose = _ref.onClose,
3237 children = _ref.children;
3238 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3239 sx: {
3240 fontWeight: 'normal'
3241 },
3242 color: "transparent",
3243 position: "relative"
3244 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3245 variant: "dense"
3246 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3247 sx: {
3248 mr: 1
3249 }
3250 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3251 component: "span",
3252 variant: "subtitle2",
3253 sx: {
3254 fontWeight: 'bold',
3255 textTransform: 'uppercase'
3256 }
3257 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3258 label: (0, _i18n.__)('Beta', 'elementor'),
3259 color: "default",
3260 size: "small",
3261 sx: {
3262 ml: 1
3263 }
3264 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3265 direction: "row",
3266 spacing: 1,
3267 alignItems: "center",
3268 sx: {
3269 ml: 'auto'
3270 }
3271 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3272 size: "small",
3273 "aria-label": "close",
3274 onClick: onClose,
3275 sx: {
3276 '&.MuiButtonBase-root': {
3277 mr: -1
3278 }
3279 }
3280 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3281 };
3282 DialogHeader.propTypes = {
3283 children: _propTypes.default.node,
3284 onClose: _propTypes.default.func.isRequired
3285 };
3286 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3287 return {
3288 '&.MuiDialogContent-root': {
3289 padding: 0
3290 }
3291 };
3292 });
3293 var LayoutDialog = function LayoutDialog(_ref2) {
3294 var _ref2$sx = _ref2.sx,
3295 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3296 _ref2$PaperProps = _ref2.PaperProps,
3297 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3298 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3299 var _useState = (0, _react.useState)({
3300 pointerEvents: 'none'
3301 }),
3302 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3303 sxStyle = _useState2[0],
3304 setSxStyle = _useState2[1];
3305 var timeoutRef = (0, _react.useRef)(null);
3306
3307 /**
3308 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3309 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3310 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3311 */
3312 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3313 maxWidth: "md",
3314 PaperProps: _objectSpread({
3315 sx: {
3316 pointerEvents: 'auto'
3317 },
3318 onMouseEnter: function onMouseEnter() {
3319 clearTimeout(timeoutRef.current);
3320 setSxStyle({
3321 pointerEvents: 'all'
3322 });
3323 },
3324 onMouseLeave: function onMouseLeave() {
3325 clearTimeout(timeoutRef.current);
3326 timeoutRef.current = setTimeout(function () {
3327 setSxStyle({
3328 pointerEvents: 'none'
3329 });
3330 }, 200);
3331 }
3332 }, PaperProps)
3333 }, props, {
3334 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3335 }));
3336 };
3337 LayoutDialog.propTypes = {
3338 sx: _propTypes.default.object,
3339 PaperProps: _propTypes.default.object
3340 };
3341 LayoutDialog.Header = DialogHeader;
3342 LayoutDialog.Content = StyledDialogContent;
3343 var _default = exports["default"] = LayoutDialog;
3344
3345 /***/ }),
3346
3347 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3348 /*!*********************************************************************************************!*\
3349 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3350 \*********************************************************************************************/
3351 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3352
3353 "use strict";
3354
3355
3356 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3357 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3358 Object.defineProperty(exports, "__esModule", ({
3359 value: true
3360 }));
3361 exports.ProTemplateIndicator = void 0;
3362 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3363 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3364 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3365 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3366 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3367 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3368 var popoverId = 'e-pro-upgrade-popover';
3369 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3370 var theme = _ref.theme;
3371 return {
3372 position: 'relative',
3373 padding: theme.spacing(3),
3374 boxShadow: theme.shadows[4],
3375 zIndex: '9999'
3376 };
3377 });
3378 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3379 var theme = _ref2.theme;
3380 return {
3381 position: 'absolute',
3382 width: theme.spacing(5),
3383 height: theme.spacing(5),
3384 overflow: 'hidden',
3385 // Override Popper inline styles.
3386 left: '100% !important',
3387 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3388 '&::after': {
3389 backgroundColor: theme.palette.background.paper,
3390 content: '""',
3391 display: 'block',
3392 position: 'absolute',
3393 width: theme.spacing(2.5),
3394 height: theme.spacing(2.5),
3395 top: '50%',
3396 left: '50%',
3397 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3398 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3399 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3400 }
3401 };
3402 });
3403 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3404 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3405 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3406 var _useState = (0, _react.useState)(false),
3407 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3408 isPopoverOpen = _useState2[0],
3409 setIsPopoverOpen = _useState2[1];
3410 var anchorEl = (0, _react.useRef)(null);
3411 var arrowEl = (0, _react.useRef)(null);
3412 var showPopover = function showPopover() {
3413 return setIsPopoverOpen(true);
3414 };
3415 var hidePopover = function hidePopover() {
3416 return setIsPopoverOpen(false);
3417 };
3418 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3419 flexDirection: "row-reverse",
3420 component: "span",
3421 display: "flex",
3422 onMouseLeave: hidePopover,
3423 alignItems: "center"
3424 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3425 ref: anchorEl,
3426 onMouseEnter: showPopover,
3427 onClick: function onClick(e) {
3428 return e.stopPropagation();
3429 } /* Do nothing */,
3430 "aria-owns": isPopoverOpen ? popoverId : undefined,
3431 "aria-haspopup": "true",
3432 sx: {
3433 m: 1,
3434 '&:hover': {
3435 backgroundColor: 'action.selected'
3436 }
3437 }
3438 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3439 sx: {
3440 color: 'text.primary'
3441 }
3442 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3443 open: isPopoverOpen,
3444 popperOptions: {
3445 placement: 'left-start',
3446 modifiers: [{
3447 name: 'arrow',
3448 enabled: true,
3449 options: {
3450 element: arrowEl.current,
3451 padding: 5
3452 }
3453 }, {
3454 name: 'offset',
3455 options: {
3456 offset: [0, 10]
3457 }
3458 }]
3459 },
3460 anchorEl: anchorEl.current,
3461 sx: {
3462 zIndex: '9999',
3463 maxWidth: 300
3464 }
3465 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3466 ref: arrowEl
3467 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3468 alignItems: "start",
3469 spacing: 2
3470 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3471 color: "promotion",
3472 variant: "outlined",
3473 size: "small",
3474 label: (0, _i18n.__)('Pro', 'elementor'),
3475 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3476 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3477 variant: "body2"
3478 }, (0, _i18n.__)("This result includes an Elementor Pro widget that's not available with your current plan. Upgrade to use all the widgets in this result.", 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
3479 variant: "contained",
3480 color: "promotion",
3481 size: "small",
3482 href: actionUrl,
3483 target: "_blank",
3484 sx: {
3485 alignSelf: 'flex-end'
3486 }
3487 }, actionLabel)))));
3488 };
3489
3490 /***/ }),
3491
3492 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3493 /*!******************************************************************************************!*\
3494 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3495 \******************************************************************************************/
3496 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3497
3498 "use strict";
3499
3500
3501 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3502 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3503 Object.defineProperty(exports, "__esModule", ({
3504 value: true
3505 }));
3506 exports["default"] = void 0;
3507 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3508 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3509 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3510 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3511 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3512 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3513 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3514 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3515 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3516 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3517 var _excluded = ["onSubmit"];
3518 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3519 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3520 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3521 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3522 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3523 // eslint-disable-next-line jsx-a11y/no-autofocus
3524 , (0, _extends2.default)({
3525 autoFocus: true,
3526 multiline: true,
3527 size: "small",
3528 maxRows: 3,
3529 color: "secondary",
3530 variant: "standard"
3531 }, props, {
3532 inputRef: ref,
3533 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3534 type: 'search',
3535 sx: {
3536 pt: 0
3537 }
3538 })
3539 }));
3540 });
3541 TextInput.propTypes = {
3542 InputProps: _propTypes.default.object
3543 };
3544 var PaperComponent = function PaperComponent(props) {
3545 var _useConfig = (0, _config.useConfig)(),
3546 mode = _useConfig.mode;
3547 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3548 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3549 elevation: 8,
3550 sx: {
3551 borderRadius: 2
3552 }
3553 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3554 component: _ui.Box,
3555 color: function color(theme) {
3556 return theme.palette.text.tertiary;
3557 },
3558 variant: "caption",
3559 paddingX: 2,
3560 paddingY: 1
3561 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3562 sx: {
3563 m: 2
3564 }
3565 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3566 libraryLink: libraryLink
3567 })));
3568 };
3569 PaperComponent.propTypes = {
3570 children: _propTypes.default.node
3571 };
3572 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3573 var onSubmit = _ref.onSubmit,
3574 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3575 var _useState = (0, _react.useState)(false),
3576 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3577 showSuggestions = _useState2[0],
3578 setShowSuggestions = _useState2[1];
3579 var theme = (0, _ui.useTheme)();
3580 var itemHeight = parseInt(theme.spacing(4));
3581 var maxItems = 5;
3582 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3583 PaperComponent: PaperComponent,
3584 ListboxProps: {
3585 sx: {
3586 maxHeight: maxItems * itemHeight
3587 }
3588 },
3589 renderOption: function renderOption(optionProps, option) {
3590 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3591 title: option.text,
3592 noWrap: true,
3593 variant: "body2",
3594 component: _ui.Box,
3595 sx: {
3596 '&.MuiAutocomplete-option': {
3597 display: 'block',
3598 minHeight: itemHeight
3599 }
3600 }
3601 }), option.text);
3602 },
3603 freeSolo: true,
3604 fullWidth: true,
3605 disableClearable: true,
3606 open: showSuggestions,
3607 onClose: function onClose(e) {
3608 var _e$relatedTarget;
3609 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3610 },
3611 onKeyDown: function onKeyDown(e) {
3612 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3613 onSubmit(e);
3614 } else if ('/' === e.key && '' === e.target.value) {
3615 e.preventDefault();
3616 setShowSuggestions(true);
3617 }
3618 }
3619 }, props));
3620 };
3621 PromptAutocomplete.propTypes = {
3622 onSubmit: _propTypes.default.func.isRequired
3623 };
3624 PromptAutocomplete.TextInput = TextInput;
3625 var _default = exports["default"] = PromptAutocomplete;
3626
3627 /***/ }),
3628
3629 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3630 /*!**********************************************************************************!*\
3631 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3632 \**********************************************************************************/
3633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3634
3635 "use strict";
3636
3637
3638 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3639 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3640 Object.defineProperty(exports, "__esModule", ({
3641 value: true
3642 }));
3643 exports["default"] = void 0;
3644 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3645 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3646 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3647 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3648 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3649 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3650 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3651 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3652 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3653 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3654 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3655 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3656 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3657 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3658 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3659 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3660 var _excluded = ["tooltip"];
3661 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3662 var PROMPT_SUGGESTIONS = Object.freeze([
3663 // Translators: [Topic] is a placeholder for the user - please translate it as well
3664 {
3665 text: (0, _i18n.__)('Hero section on [topic] with heading, text, buttons on the right, and an image on the left', 'elementor.com')
3666 },
3667 // Translators: [Topic] is a placeholder for the user - please translate it as well
3668 {
3669 text: (0, _i18n.__)('About Us section on [topic] with heading, text, and big image below', 'elementor.com')
3670 }, {
3671 text: (0, _i18n.__)('Team section with four image boxes showcasing team members', 'elementor.com')
3672 },
3673 // Translators: [Topic] is a placeholder for the user - please translate it as well
3674 {
3675 text: (0, _i18n.__)('FAQ section with a toggle widget showcasing FAQs about [topic]', 'elementor.com')
3676 }, {
3677 text: (0, _i18n.__)('Gallery section with a carousel displaying three images at once', 'elementor.com')
3678 },
3679 // Translators: [Topic] is a placeholder for the user - please translate it as well
3680 {
3681 text: (0, _i18n.__)('Contact section with a form for [topic]', 'elementor.com')
3682 }, {
3683 text: (0, _i18n.__)('Client section featuring companies\' logos', 'elementor.com')
3684 },
3685 // Translators: [Topic] is a placeholder for the user - please translate it as well
3686 {
3687 text: (0, _i18n.__)('Testimonial section with testimonials, each featuring a star rating and an image', 'elementor.com')
3688 },
3689 // Translators: [Topic] is a placeholder for the user - please translate it as well
3690 {
3691 text: (0, _i18n.__)('Service section about [topic], showcasing four services with buttons', 'elementor.com')
3692 },
3693 // Translators: [Topic] is a placeholder for the user - please translate it as well
3694 {
3695 text: (0, _i18n.__)('Stats section with counters displaying data about [topic]', 'elementor.com')
3696 }, {
3697 text: (0, _i18n.__)('Quote section with colored background, featuring a centered quote', 'elementor.com')
3698 },
3699 // Translators: [Topic] is a placeholder for the user - please translate it as well
3700 {
3701 text: (0, _i18n.__)('Pricing section for [topic] with a pricing list', 'elementor.com')
3702 },
3703 // Translators: [Topic] is a placeholder for the user - please translate it as well
3704 {
3705 text: (0, _i18n.__)('Subscribe section featuring a simple email form, inviting users to stay informed on [topic]', 'elementor.com')
3706 }]);
3707 var IconButtonWithTooltip = function IconButtonWithTooltip(_ref) {
3708 var tooltip = _ref.tooltip,
3709 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3710 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
3711 title: tooltip
3712 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
3713 component: "span",
3714 sx: {
3715 cursor: props.disabled ? 'default' : 'pointer'
3716 }
3717 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, props)));
3718 };
3719 IconButtonWithTooltip.propTypes = {
3720 tooltip: _propTypes.default.string,
3721 disabled: _propTypes.default.bool
3722 };
3723 var BackButton = function BackButton(props) {
3724 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3725 size: "small",
3726 color: "secondary",
3727 tooltip: (0, _i18n.__)('Back to results', 'elementor')
3728 }, props), /*#__PURE__*/_react.default.createElement(_arrowLeftIcon.default, null));
3729 };
3730 var EditButton = function EditButton(props) {
3731 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3732 size: "small",
3733 color: "primary",
3734 tooltip: (0, _i18n.__)('Edit prompt', 'elementor')
3735 }, props), /*#__PURE__*/_react.default.createElement(_editIcon.default, null));
3736 };
3737 var GenerateButton = function GenerateButton(props) {
3738 return /*#__PURE__*/_react.default.createElement(_generateSubmit.default, (0, _extends2.default)({
3739 size: "small",
3740 fullWidth: false
3741 }, props), (0, _i18n.__)('Generate', 'elementor'));
3742 };
3743 var PromptForm = (0, _react.forwardRef)(function (_ref2, ref) {
3744 var _attachments$;
3745 var attachments = _ref2.attachments,
3746 isActive = _ref2.isActive,
3747 isLoading = _ref2.isLoading,
3748 _ref2$showActions = _ref2.showActions,
3749 showActions = _ref2$showActions === void 0 ? false : _ref2$showActions,
3750 onAttach = _ref2.onAttach,
3751 onDetach = _ref2.onDetach,
3752 _onSubmit = _ref2.onSubmit,
3753 onBack = _ref2.onBack,
3754 onEdit = _ref2.onEdit,
3755 _ref2$shouldResetProm = _ref2.shouldResetPrompt,
3756 shouldResetPrompt = _ref2$shouldResetProm === void 0 ? false : _ref2$shouldResetProm;
3757 var _useState = (0, _react.useState)(''),
3758 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3759 prompt = _useState2[0],
3760 setPrompt = _useState2[1];
3761 (0, _react.useEffect)(function () {
3762 if (shouldResetPrompt) {
3763 setPrompt('');
3764 }
3765 }, [shouldResetPrompt]);
3766 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(prompt, 'layout'),
3767 isEnhancing = _usePromptEnhancer.isEnhancing,
3768 enhance = _usePromptEnhancer.enhance;
3769 var previousPrompt = (0, _react.useRef)('');
3770 var _useConfig = (0, _config.useConfig)(),
3771 attachmentsTypes = _useConfig.attachmentsTypes;
3772 var isInputDisabled = isLoading || isEnhancing || !isActive;
3773 var isInputEmpty = '' === prompt && !attachments.length;
3774 var isGenerateDisabled = isInputDisabled || isInputEmpty;
3775 var attachmentsType = ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) || '';
3776 var attachmentsConfig = attachmentsTypes[attachmentsType];
3777 var promptSuggestions = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptSuggestions) || PROMPT_SUGGESTIONS;
3778 var promptPlaceholder = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptPlaceholder) || (0, _i18n.__)("Press '/' for suggested prompts or describe the layout you want to create", 'elementor');
3779 var handleBack = function handleBack() {
3780 setPrompt(previousPrompt.current);
3781 onBack();
3782 };
3783 var handleEdit = function handleEdit() {
3784 previousPrompt.current = prompt;
3785 onEdit();
3786 };
3787 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3788 component: "form",
3789 onSubmit: function onSubmit(e) {
3790 return _onSubmit(e, prompt);
3791 },
3792 direction: "row",
3793 sx: {
3794 p: 3
3795 },
3796 alignItems: "start",
3797 gap: 1
3798 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3799 direction: "row",
3800 alignItems: "start",
3801 flexGrow: 1,
3802 spacing: 2
3803 }, showActions && (isActive ? /*#__PURE__*/_react.default.createElement(BackButton, {
3804 disabled: isLoading || isEnhancing,
3805 onClick: handleBack
3806 }) : /*#__PURE__*/_react.default.createElement(EditButton, {
3807 disabled: isLoading,
3808 onClick: handleEdit
3809 })), /*#__PURE__*/_react.default.createElement(_attachments.default, {
3810 attachments: attachments,
3811 onAttach: onAttach,
3812 onDetach: onDetach,
3813 disabled: isInputDisabled
3814 }), /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default, {
3815 value: prompt,
3816 disabled: isInputDisabled,
3817 onSubmit: function onSubmit(e) {
3818 return _onSubmit(e, prompt);
3819 },
3820 options: promptSuggestions,
3821 onChange: function onChange(_, selectedValue) {
3822 return setPrompt(selectedValue.text + ' ');
3823 },
3824 renderInput: function renderInput(params) {
3825 return /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default.TextInput, (0, _extends2.default)({}, params, {
3826 ref: ref,
3827 onChange: function onChange(e) {
3828 return setPrompt(e.target.value);
3829 },
3830 placeholder: promptPlaceholder
3831 }));
3832 }
3833 })), /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
3834 size: "small",
3835 disabled: isGenerateDisabled || '' === prompt,
3836 isLoading: isEnhancing,
3837 onClick: function onClick() {
3838 return enhance().then(function (_ref3) {
3839 var result = _ref3.result;
3840 return setPrompt(result);
3841 });
3842 }
3843 }), /*#__PURE__*/_react.default.createElement(GenerateButton, {
3844 disabled: isGenerateDisabled
3845 }));
3846 });
3847 PromptForm.propTypes = {
3848 isActive: _propTypes.default.bool,
3849 onAttach: _propTypes.default.func,
3850 onDetach: _propTypes.default.func,
3851 isLoading: _propTypes.default.bool,
3852 showActions: _propTypes.default.bool,
3853 onSubmit: _propTypes.default.func.isRequired,
3854 onBack: _propTypes.default.func.isRequired,
3855 onEdit: _propTypes.default.func.isRequired,
3856 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
3857 shouldResetPrompt: _propTypes.default.bool
3858 };
3859 var _default = exports["default"] = PromptForm;
3860
3861 /***/ }),
3862
3863 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js":
3864 /*!*******************************************************************************************!*\
3865 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js ***!
3866 \*******************************************************************************************/
3867 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3868
3869 "use strict";
3870
3871
3872 Object.defineProperty(exports, "__esModule", ({
3873 value: true
3874 }));
3875 exports["default"] = void 0;
3876 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3877 var ScreenshotContainer = (0, _ui.styled)(_ui.Box, {
3878 shouldForwardProp: function shouldForwardProp(prop) {
3879 return prop !== 'outlineOffset';
3880 }
3881 })(function (_ref) {
3882 var theme = _ref.theme,
3883 selected = _ref.selected,
3884 height = _ref.height,
3885 disabled = _ref.disabled,
3886 _ref$outlineOffset = _ref.outlineOffset,
3887 outlineOffset = _ref$outlineOffset === void 0 ? '0px' : _ref$outlineOffset;
3888 var outlineColor = selected ? theme.palette.text.primary : theme.palette.text.disabled;
3889 var outline = "2px solid ".concat(outlineColor);
3890 return {
3891 height: height,
3892 cursor: disabled ? 'default' : 'pointer',
3893 overflow: 'hidden',
3894 boxSizing: 'border-box',
3895 backgroundPosition: 'top center',
3896 backgroundSize: '100% auto',
3897 backgroundRepeat: 'no-repeat',
3898 backgroundColor: theme.palette.common.white,
3899 borderRadius: theme.shape.borderRadius * 0.5,
3900 outlineOffset: outlineOffset,
3901 outline: outline,
3902 opacity: disabled ? '0.4' : '1',
3903 transition: "all 50ms linear",
3904 '&:hover': disabled ? {} : {
3905 outlineColor: theme.palette.text.primary
3906 }
3907 };
3908 });
3909 var _default = exports["default"] = ScreenshotContainer;
3910
3911 /***/ }),
3912
3913 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js":
3914 /*!*********************************************************************************************!*\
3915 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js ***!
3916 \*********************************************************************************************/
3917 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3918
3919 "use strict";
3920
3921
3922 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3923 Object.defineProperty(exports, "__esModule", ({
3924 value: true
3925 }));
3926 exports["default"] = ScreenshotUnavailable;
3927 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3928 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3929 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3930 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3931 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3932 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3933 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3934 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3935 function ScreenshotUnavailable(props) {
3936 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, (0, _extends2.default)({}, props, {
3937 sx: _objectSpread(_objectSpread({}, props.sx || {}), {}, {
3938 display: 'flex',
3939 alignItems: 'center',
3940 justifyContent: 'center',
3941 backgroundColor: 'background.paper',
3942 color: 'text.tertiary',
3943 fontStyle: 'italic',
3944 fontSize: '12px',
3945 paddingInline: 12,
3946 textAlign: 'center',
3947 lineHeight: 1.5
3948 })
3949 }), (0, _i18n.__)('Preview unavailable', 'elementor'));
3950 }
3951 ScreenshotUnavailable.propTypes = {
3952 sx: _propTypes.default.object
3953 };
3954
3955 /***/ }),
3956
3957 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js":
3958 /*!*********************************************************************************!*\
3959 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js ***!
3960 \*********************************************************************************/
3961 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3962
3963 "use strict";
3964
3965
3966 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3967 Object.defineProperty(exports, "__esModule", ({
3968 value: true
3969 }));
3970 exports["default"] = void 0;
3971 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3972 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3973 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3974 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3975 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3976 var _screenshotUnavailable = _interopRequireDefault(__webpack_require__(/*! ./screenshot-unavailable */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js"));
3977 var _templateBadge = _interopRequireDefault(__webpack_require__(/*! ./template-badge */ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js"));
3978 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3979 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3980 var SCREENSHOT_HEIGHT = '138px';
3981 var Screenshot = function Screenshot(_ref) {
3982 var url = _ref.url,
3983 type = _ref.type,
3984 _ref$isLoading = _ref.isLoading,
3985 isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3986 _ref$isSelected = _ref.isSelected,
3987 isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
3988 isPlaceholder = _ref.isPlaceholder,
3989 disabled = _ref.disabled,
3990 onClick = _ref.onClick,
3991 _ref$sx = _ref.sx,
3992 sx = _ref$sx === void 0 ? {} : _ref$sx,
3993 outlineOffset = _ref.outlineOffset;
3994 if (isPlaceholder) {
3995 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3996 sx: _objectSpread({
3997 height: SCREENSHOT_HEIGHT
3998 }, sx)
3999 });
4000 }
4001 if (isLoading) {
4002 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
4003 width: "100%",
4004 animation: "wave",
4005 variant: "rounded",
4006 height: SCREENSHOT_HEIGHT,
4007 sx: sx
4008 });
4009 }
4010 if (!url) {
4011 return /*#__PURE__*/_react.default.createElement(_screenshotUnavailable.default, {
4012 selected: isSelected,
4013 disabled: disabled,
4014 sx: sx,
4015 onClick: onClick,
4016 height: SCREENSHOT_HEIGHT,
4017 outlineOffset: outlineOffset
4018 });
4019 }
4020 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, {
4021 selected: isSelected,
4022 disabled: disabled,
4023 sx: _objectSpread({
4024 backgroundImage: "url('".concat(url, "')")
4025 }, sx),
4026 onClick: onClick,
4027 height: SCREENSHOT_HEIGHT,
4028 outlineOffset: outlineOffset
4029 }, /*#__PURE__*/_react.default.createElement(_templateBadge.default, {
4030 type: type
4031 }));
4032 };
4033 Screenshot.propTypes = {
4034 isSelected: _propTypes.default.bool,
4035 isLoading: _propTypes.default.bool,
4036 isPlaceholder: _propTypes.default.bool,
4037 disabled: _propTypes.default.bool,
4038 onClick: _propTypes.default.func.isRequired,
4039 url: _propTypes.default.string,
4040 type: _propTypes.default.string,
4041 sx: _propTypes.default.object,
4042 outlineOffset: _propTypes.default.string
4043 };
4044 var _default = exports["default"] = Screenshot;
4045
4046 /***/ }),
4047
4048 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js":
4049 /*!*************************************************************************************!*\
4050 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js ***!
4051 \*************************************************************************************/
4052 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4053
4054 "use strict";
4055
4056
4057 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4058 Object.defineProperty(exports, "__esModule", ({
4059 value: true
4060 }));
4061 exports["default"] = void 0;
4062 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4063 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4064 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4065 var _proTemplateIndicator = __webpack_require__(/*! ./pro-template-indicator */ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js");
4066 var TemplateBadge = function TemplateBadge(props) {
4067 var _useConfig = (0, _config.useConfig)(),
4068 hasPro = _useConfig.hasPro;
4069 if ('Pro' === props.type && !hasPro) {
4070 return /*#__PURE__*/_react.default.createElement(_proTemplateIndicator.ProTemplateIndicator, null);
4071 }
4072 return null;
4073 };
4074 var _default = exports["default"] = TemplateBadge;
4075 TemplateBadge.propTypes = {
4076 type: _propTypes.default.string
4077 };
4078
4079 /***/ }),
4080
4081 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js":
4082 /*!********************************************************************************************!*\
4083 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js ***!
4084 \********************************************************************************************/
4085 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4086
4087 "use strict";
4088
4089
4090 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4091 Object.defineProperty(exports, "__esModule", ({
4092 value: true
4093 }));
4094 exports["default"] = void 0;
4095 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4096 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4097 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4098 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4099 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4100 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4101 var _excluded = ["onClose", "onCancel", "title", "text"];
4102 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
4103 var onClose = _ref.onClose,
4104 onCancel = _ref.onCancel,
4105 title = _ref.title,
4106 text = _ref.text,
4107 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
4108 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
4109 "aria-labelledby": "unsaved-changes-alert-title",
4110 "aria-describedby": "unsaved-changes-alert-description"
4111 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
4112 id: "unsaved-changes-alert-title"
4113 }, title), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
4114 id: "unsaved-changes-alert-description"
4115 }, text)), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
4116 onClick: onCancel,
4117 color: "secondary"
4118 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
4119 onClick: onClose,
4120 color: "error",
4121 variant: "contained"
4122 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
4123 };
4124 UnsavedChangesAlert.propTypes = {
4125 title: _propTypes.default.string,
4126 text: _propTypes.default.string,
4127 onCancel: _propTypes.default.func,
4128 onClose: _propTypes.default.func
4129 };
4130 var _default = exports["default"] = UnsavedChangesAlert;
4131
4132 /***/ }),
4133
4134 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
4135 /*!**************************************************************************!*\
4136 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
4137 \**************************************************************************/
4138 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4139
4140 "use strict";
4141
4142
4143 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4144 Object.defineProperty(exports, "__esModule", ({
4145 value: true
4146 }));
4147 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
4148 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4149 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4150 var MODE_LAYOUT = exports.MODE_LAYOUT = 'layout';
4151 var MODE_VARIATION = exports.MODE_VARIATION = 'variation';
4152 var LAYOUT_APP_MODES = exports.LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
4153 var ConfigContext = _react.default.createContext({});
4154 var useConfig = exports.useConfig = function useConfig() {
4155 return _react.default.useContext(ConfigContext);
4156 };
4157 var ConfigProvider = exports.ConfigProvider = function ConfigProvider(props) {
4158 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
4159 value: {
4160 mode: props.mode,
4161 attachmentsTypes: props.attachmentsTypes,
4162 onClose: props.onClose,
4163 onConnect: props.onConnect,
4164 onData: props.onData,
4165 onInsert: props.onInsert,
4166 onSelect: props.onSelect,
4167 onGenerate: props.onGenerate,
4168 currentContext: props.currentContext,
4169 hasPro: props.hasPro
4170 }
4171 }, props.children);
4172 };
4173 ConfigProvider.propTypes = {
4174 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
4175 children: _propTypes.default.node.isRequired,
4176 attachmentsTypes: _propTypes.default.object.isRequired,
4177 onClose: _propTypes.default.func.isRequired,
4178 onConnect: _propTypes.default.func.isRequired,
4179 onData: _propTypes.default.func.isRequired,
4180 onInsert: _propTypes.default.func.isRequired,
4181 onSelect: _propTypes.default.func.isRequired,
4182 onGenerate: _propTypes.default.func.isRequired,
4183 currentContext: _propTypes.default.object,
4184 hasPro: _propTypes.default.bool
4185 };
4186 var _default = exports["default"] = ConfigContext;
4187
4188 /***/ }),
4189
4190 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js":
4191 /*!*********************************************************************************!*\
4192 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js ***!
4193 \*********************************************************************************/
4194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4195
4196 "use strict";
4197
4198
4199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4200 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4201 Object.defineProperty(exports, "__esModule", ({
4202 value: true
4203 }));
4204 exports.useRemoteConfig = exports.RemoteConfigProvider = exports.CONFIG_KEYS = void 0;
4205 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4206 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4207 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4208 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4209 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4210 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4211 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
4212 var RemoteConfigContext = _react.default.createContext({});
4213 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4214 return _react.default.useContext(RemoteConfigContext);
4215 };
4216 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4217 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4218 AUTH_TOKEN: 'jwt'
4219 };
4220 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4221 var _useState = (0, _react.useState)(false),
4222 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4223 isLoading = _useState2[0],
4224 setIsLoading = _useState2[1];
4225 var _useState3 = (0, _react.useState)(false),
4226 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4227 isLoaded = _useState4[0],
4228 setIsLoaded = _useState4[1];
4229 var _useState5 = (0, _react.useState)(false),
4230 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4231 isError = _useState6[0],
4232 setIsError = _useState6[1];
4233 var _useState7 = (0, _react.useState)({}),
4234 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4235 remoteConfig = _useState8[0],
4236 setRemoteConfig = _useState8[1];
4237 var fetchData = /*#__PURE__*/function () {
4238 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4239 var result, _t;
4240 return _regenerator.default.wrap(function (_context) {
4241 while (1) switch (_context.prev = _context.next) {
4242 case 0:
4243 setIsLoading(true);
4244 setIsError(false);
4245 _context.prev = 1;
4246 _context.next = 2;
4247 return (0, _api.getRemoteConfig)().finally(function () {
4248 setIsLoaded(true);
4249 setIsLoading(false);
4250 });
4251 case 2:
4252 result = _context.sent;
4253 if (result.config) {
4254 _context.next = 3;
4255 break;
4256 }
4257 throw new Error('Invalid remote config');
4258 case 3:
4259 setRemoteConfig(result.config);
4260 _context.next = 5;
4261 break;
4262 case 4:
4263 _context.prev = 4;
4264 _t = _context["catch"](1);
4265 setIsError(true);
4266 setIsLoaded(true);
4267 setIsLoading(false);
4268 case 5:
4269 case "end":
4270 return _context.stop();
4271 }
4272 }, _callee, null, [[1, 4]]);
4273 }));
4274 return function fetchData() {
4275 return _ref.apply(this, arguments);
4276 };
4277 }();
4278 (0, _react.useEffect)(function () {
4279 window.addEventListener('elementor/connect/success', fetchData);
4280 return function () {
4281 window.removeEventListener('elementor/connect/success', fetchData);
4282 };
4283 }, []);
4284 if (!isLoaded && !isLoading) {
4285 fetchData();
4286 }
4287 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4288 value: {
4289 isLoading: isLoading,
4290 isLoaded: isLoaded,
4291 isError: isError,
4292 remoteConfig: remoteConfig
4293 }
4294 }, props.children);
4295 };
4296 RemoteConfigProvider.propTypes = {
4297 children: _propTypes.default.node.isRequired,
4298 onError: _propTypes.default.func.isRequired
4299 };
4300
4301 /***/ }),
4302
4303 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4304 /*!***********************************************************************************!*\
4305 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4306 \***********************************************************************************/
4307 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4308
4309 "use strict";
4310
4311
4312 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4313 Object.defineProperty(exports, "__esModule", ({
4314 value: true
4315 }));
4316 exports["default"] = void 0;
4317 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4318 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4319 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4320 return (0, _usePrompt.default)(function (requestBody, signal) {
4321 requestBody.variationType = type;
4322 return (0, _api.generateLayout)(requestBody, signal);
4323 }, initialValue);
4324 };
4325 var _default = exports["default"] = useLayoutPrompt;
4326
4327 /***/ }),
4328
4329 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4330 /*!********************************************************************************!*\
4331 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4332 \********************************************************************************/
4333 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4334
4335 "use strict";
4336
4337
4338 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4339 Object.defineProperty(exports, "__esModule", ({
4340 value: true
4341 }));
4342 exports["default"] = void 0;
4343 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4344 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4345 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4346 var _react = __webpack_require__(/*! react */ "react");
4347 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4348 var ERROR_INITIAL_VALUE = '';
4349 var useScreenshot = function useScreenshot(type, onData) {
4350 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4351 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4352 error = _useState2[0],
4353 setError = _useState2[1];
4354 var _useState3 = (0, _react.useState)(false),
4355 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4356 isLoading = _useState4[0],
4357 setIsLoading = _useState4[1];
4358 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4359 var generate = function generate(requestBody, signal) {
4360 setIsLoading(true);
4361 setError(ERROR_INITIAL_VALUE);
4362 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4363 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4364 var createdScreenshot;
4365 return _regenerator.default.wrap(function (_context) {
4366 while (1) switch (_context.prev = _context.next) {
4367 case 0:
4368 _context.next = 1;
4369 return onData(data.result);
4370 case 1:
4371 createdScreenshot = _context.sent;
4372 createdScreenshot.sendUsageData = function () {
4373 return layoutData.sendUsageData(data);
4374 };
4375 createdScreenshot.baseTemplateId = data.baseTemplateId;
4376 createdScreenshot.type = data.type;
4377 return _context.abrupt("return", createdScreenshot);
4378 case 2:
4379 case "end":
4380 return _context.stop();
4381 }
4382 }, _callee);
4383 }));
4384 return function (_x) {
4385 return _ref.apply(this, arguments);
4386 };
4387 }()).catch(function (err) {
4388 setError(err.extra_data ? err : err.message || err);
4389 throw err;
4390 }).finally(function () {
4391 return setIsLoading(false);
4392 });
4393 };
4394 return {
4395 generate: generate,
4396 error: error,
4397 isLoading: isLoading
4398 };
4399 };
4400 var _default = exports["default"] = useScreenshot;
4401
4402 /***/ }),
4403
4404 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4405 /*!*********************************************************************************!*\
4406 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4407 \*********************************************************************************/
4408 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4409
4410 "use strict";
4411
4412
4413 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4414 Object.defineProperty(exports, "__esModule", ({
4415 value: true
4416 }));
4417 exports["default"] = void 0;
4418 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4419 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4420 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4421 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4422 var _react = __webpack_require__(/*! react */ "react");
4423 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4424 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4425 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4426 var PENDING_VALUE = {
4427 isPending: true
4428 };
4429 var useScreenshots = function useScreenshots(_ref) {
4430 var onData = _ref.onData;
4431 var _useState = (0, _react.useState)([]),
4432 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4433 screenshots = _useState2[0],
4434 setScreenshots = _useState2[1];
4435
4436 /**
4437 * The ids for each request are:
4438 * - editorSessionId: a unique id for each editor opening
4439 * - sessionId: a unique id for each session. (open the AI builder)
4440 * - generateId: a unique id for each generate request. (prompt change)
4441 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4442 * - requestId: a unique id for each generate request.
4443 */
4444
4445 var _useConfig = (0, _config.useConfig)(),
4446 currentContext = _useConfig.currentContext;
4447 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4448 editorSessionId = _useRequestIds.editorSessionId,
4449 sessionId = _useRequestIds.sessionId,
4450 setRequest = _useRequestIds.setRequest,
4451 setBatch = _useRequestIds.setBatch,
4452 setGenerate = _useRequestIds.setGenerate;
4453 var generateIdRef = (0, _react.useRef)('');
4454 var batchId = setBatch();
4455 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4456 var screenshotsGroupCount = screenshotsData.length;
4457 var error = screenshotsData.every(function (s) {
4458 return s === null || s === void 0 ? void 0 : s.error;
4459 }) ? screenshotsData[0].error : '';
4460 var isLoading = screenshotsData.some(function (s) {
4461 return s === null || s === void 0 ? void 0 : s.isLoading;
4462 });
4463 var abortController = (0, _react.useRef)(null);
4464 var abort = function abort() {
4465 var _abortController$curr;
4466 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4467 };
4468 var createScreenshots = /*#__PURE__*/function () {
4469 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4470 var onGenerate, onError, promises, results, isAllFailed;
4471 return _regenerator.default.wrap(function (_context) {
4472 while (1) switch (_context.prev = _context.next) {
4473 case 0:
4474 abortController.current = new AbortController();
4475 onGenerate = function onGenerate(screenshot) {
4476 setScreenshots(function (prev) {
4477 var updatedData = (0, _toConsumableArray2.default)(prev);
4478 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4479 updatedData[pendingIndex] = screenshot;
4480 return updatedData;
4481 });
4482 return true;
4483 };
4484 onError = function onError() {
4485 setScreenshots(function (prev) {
4486 var updatedData = (0, _toConsumableArray2.default)(prev);
4487 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4488 updatedData[pendingIndex] = {
4489 isError: true
4490 };
4491 return updatedData;
4492 });
4493 return false;
4494 };
4495 promises = screenshotsData.map(function (_ref3) {
4496 var generate = _ref3.generate;
4497 var prevGeneratedIds = screenshots.map(function (screenshot) {
4498 return screenshot.baseTemplateId || '';
4499 });
4500 var requestBody = {
4501 prompt: prompt,
4502 prevGeneratedIds: prevGeneratedIds,
4503 currentContext: currentContext,
4504 ids: {
4505 editorSessionId: editorSessionId.current,
4506 sessionId: sessionId.current,
4507 generateId: generateIdRef.current,
4508 batchId: batchId.current,
4509 requestId: setRequest().current
4510 },
4511 attachments: attachments.map(function (_ref4) {
4512 var type = _ref4.type,
4513 content = _ref4.content,
4514 label = _ref4.label,
4515 source = _ref4.source;
4516 // Send only the data that is needed for the generation.
4517 return {
4518 type: type,
4519 content: content,
4520 label: label,
4521 source: source
4522 };
4523 })
4524 };
4525 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4526 });
4527 _context.next = 1;
4528 return Promise.all(promises);
4529 case 1:
4530 results = _context.sent;
4531 isAllFailed = results.every(function (value) {
4532 return false === value;
4533 });
4534 if (isAllFailed) {
4535 setScreenshots(function (prev) {
4536 var updatedData = (0, _toConsumableArray2.default)(prev);
4537 updatedData.splice(screenshotsGroupCount * -1);
4538 return updatedData;
4539 });
4540 }
4541 case 2:
4542 case "end":
4543 return _context.stop();
4544 }
4545 }, _callee);
4546 }));
4547 return function createScreenshots(_x, _x2) {
4548 return _ref2.apply(this, arguments);
4549 };
4550 }();
4551 var generate = function generate(prompt, attachments) {
4552 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4553 generateIdRef.current = setGenerate().current;
4554 setScreenshots(placeholders);
4555 createScreenshots(prompt, attachments);
4556 };
4557 var regenerate = function regenerate(prompt, attachments) {
4558 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4559 setScreenshots(function (prev) {
4560 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4561 });
4562 createScreenshots(prompt, attachments);
4563 };
4564 return {
4565 generate: generate,
4566 regenerate: regenerate,
4567 screenshots: screenshots,
4568 isLoading: isLoading,
4569 error: error,
4570 abort: abort
4571 };
4572 };
4573 var _default = exports["default"] = useScreenshots;
4574
4575 /***/ }),
4576
4577 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4578 /*!****************************************************************************!*\
4579 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4580 \****************************************************************************/
4581 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4582
4583 "use strict";
4584
4585
4586 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4587 Object.defineProperty(exports, "__esModule", ({
4588 value: true
4589 }));
4590 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4591 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4592 var _react = __webpack_require__(/*! react */ "react");
4593 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4594 var MAX_PAGES = exports.MAX_PAGES = 5;
4595 var useSlider = function useSlider() {
4596 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4597 _ref$slidesCount = _ref.slidesCount,
4598 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4599 _ref$slidesPerPage = _ref.slidesPerPage,
4600 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4601 _ref$gapPercentage = _ref.gapPercentage,
4602 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4603 var _useState = (0, _react.useState)(1),
4604 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4605 currentPage = _useState2[0],
4606 setCurrentPage = _useState2[1];
4607 var gapsCount = slidesPerPage - 1;
4608 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4609 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4610 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4611 (0, _react.useEffect)(function () {
4612 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4613 if (currentPage > 1 && currentPage > pagesCount) {
4614 setCurrentPage(pagesCount);
4615 }
4616 }, [pagesCount]);
4617 return {
4618 currentPage: currentPage,
4619 setCurrentPage: setCurrentPage,
4620 pagesCount: pagesCount,
4621 slidesPerPage: slidesPerPage,
4622 gapPercentage: gapPercentage,
4623 offsetXPercentage: offsetXPercentage,
4624 slideWidthPercentage: slideWidthPercentage
4625 };
4626 };
4627 var _default = exports["default"] = useSlider;
4628
4629 /***/ }),
4630
4631 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4632 /*!*****************************************************************!*\
4633 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4634 \*****************************************************************/
4635 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4636
4637 "use strict";
4638
4639
4640 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4641 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4642 Object.defineProperty(exports, "__esModule", ({
4643 value: true
4644 }));
4645 exports["default"] = void 0;
4646 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4647 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4648 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4649 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4650 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4651 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4652 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4653 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4654 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4655 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4656 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4657 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4658 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4659 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4660 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4661 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4662 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4663 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4664 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4665 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4666 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4667 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4668 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4669 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4670 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4671 var _excluded = ["children"];
4672 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
4673 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4674 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4675
4676 /**
4677 * @typedef {Object} Attachment
4678 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4679 * @property {string} previewHTML - HTML content as a string, representing a preview.
4680 * @property {string} content - Actual content of the attachment as a string.
4681 * @property {string} label - Label for the attachment.
4682 */
4683
4684 var RegenerateButton = function RegenerateButton(props) {
4685 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4686 size: "small",
4687 color: "secondary",
4688 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4689 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4690 };
4691 var UseLayoutButton = function UseLayoutButton(props) {
4692 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4693 size: "small",
4694 variant: "contained"
4695 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4696 };
4697 UseLayoutButton.propTypes = {
4698 sx: _propTypes.default.object
4699 };
4700 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4701 if (isLoading || isPromptFormActive) {
4702 return true;
4703 }
4704 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4705 };
4706 var FormLayout = function FormLayout(_ref) {
4707 var _screenshots$selected, _screenshots$2;
4708 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4709 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4710 _ref$DialogContentPro = _ref.DialogContentProps,
4711 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4712 initialAttachments = _ref.attachments;
4713 var _useConfig = (0, _config.useConfig)(),
4714 attachmentsTypes = _useConfig.attachmentsTypes,
4715 onData = _useConfig.onData,
4716 onInsert = _useConfig.onInsert,
4717 onSelect = _useConfig.onSelect,
4718 onClose = _useConfig.onClose,
4719 onGenerate = _useConfig.onGenerate;
4720 var _useScreenshots = (0, _useScreenshots2.default)({
4721 onData: onData
4722 }),
4723 screenshots = _useScreenshots.screenshots,
4724 generate = _useScreenshots.generate,
4725 regenerate = _useScreenshots.regenerate,
4726 isLoading = _useScreenshots.isLoading,
4727 error = _useScreenshots.error,
4728 abort = _useScreenshots.abort;
4729 var screenshotOutlineOffset = '2px';
4730 var _useSlider = (0, _useSlider2.default)({
4731 slidesCount: screenshots.length
4732 }),
4733 currentPage = _useSlider.currentPage,
4734 setCurrentPage = _useSlider.setCurrentPage,
4735 pagesCount = _useSlider.pagesCount,
4736 gapPercentage = _useSlider.gapPercentage,
4737 slidesPerPage = _useSlider.slidesPerPage,
4738 offsetXPercentage = _useSlider.offsetXPercentage,
4739 slideWidthPercentage = _useSlider.slideWidthPercentage;
4740 var _useState = (0, _react.useState)(-1),
4741 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4742 selectedScreenshotIndex = _useState2[0],
4743 setSelectedScreenshotIndex = _useState2[1];
4744 var _useState3 = (0, _react.useState)(false),
4745 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4746 showUnsavedChangesAlert = _useState4[0],
4747 setShowUnsavedChangesAlert = _useState4[1];
4748 var _useState5 = (0, _react.useState)(true),
4749 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4750 isPromptEditable = _useState6[0],
4751 setIsPromptEditable = _useState6[1];
4752 var _useState7 = (0, _react.useState)([]),
4753 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4754 attachments = _useState8[0],
4755 setAttachments = _useState8[1];
4756 var _useState9 = (0, _react.useState)(false),
4757 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
4758 shouldRenderWebApp = _useState0[0],
4759 setShouldRenderWebApp = _useState0[1];
4760 var _useState1 = (0, _react.useState)(false),
4761 _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
4762 isMinimized = _useState10[0],
4763 setIsMinimized = _useState10[1];
4764 var lastRun = (0, _react.useRef)(function () {});
4765 var promptInputRef = (0, _react.useRef)(null);
4766 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4767 var dialogContentChildren = DialogContentProps.children,
4768 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4769
4770 // When there are no screenshots the prompt field should be editable.
4771 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4772 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4773 var abortAndClose = function abortAndClose() {
4774 abort();
4775 onClose();
4776 };
4777 var onCloseIntent = function onCloseIntent() {
4778 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4779 if (hasUnsavedChanges) {
4780 return setShowUnsavedChangesAlert(true);
4781 }
4782 abortAndClose();
4783 };
4784 var handleGenerate = function handleGenerate(event, prompt) {
4785 event.preventDefault();
4786 if ('' === prompt.trim() && 0 === attachments.length) {
4787 return;
4788 }
4789 if ((0, _isURL.default)(prompt)) {
4790 setShouldRenderWebApp(true);
4791 return;
4792 }
4793 onGenerate();
4794 lastRun.current = function () {
4795 setSelectedScreenshotIndex(-1);
4796 generate(prompt, attachments);
4797 };
4798 lastRun.current();
4799 setIsPromptEditable(false);
4800 setCurrentPage(1);
4801 };
4802 var handleRegenerate = function handleRegenerate() {
4803 lastRun.current = function () {
4804 regenerate(promptInputRef.current.value, attachments);
4805 // Changing the current page to the next page number.
4806 setCurrentPage(pagesCount + 1);
4807 };
4808 lastRun.current();
4809 };
4810 var applyTemplate = function applyTemplate() {
4811 onInsert(selectedTemplate);
4812 screenshots[selectedScreenshotIndex].sendUsageData();
4813 abortAndClose();
4814 };
4815 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4816 return function () {
4817 if (isPromptFormActive) {
4818 return;
4819 }
4820 setSelectedScreenshotIndex(index);
4821 onSelect(template);
4822 };
4823 };
4824
4825 /**
4826 * @param {Attachment[]} items
4827 */
4828 var onAttach = function onAttach(items) {
4829 items.forEach(function (item) {
4830 if (!attachmentsTypes[item.type]) {
4831 throw new Error("Invalid attachment type: ".concat(item.type));
4832 }
4833 var typeConfig = attachmentsTypes[item.type];
4834 if (!item.previewHTML && typeConfig.previewGenerator) {
4835 typeConfig.previewGenerator(item.content).then(function (html) {
4836 item.previewHTML = html;
4837 setAttachments(function (prev) {
4838 // Replace the attachment with the updated one.
4839 return prev.map(function (attachment) {
4840 if (attachment.content === item.content) {
4841 return item;
4842 }
4843 return attachment;
4844 });
4845 });
4846 });
4847 }
4848 });
4849 setAttachments(items);
4850 setShouldRenderWebApp(false);
4851 setIsPromptEditable(true);
4852 };
4853 (0, _react.useEffect)(function () {
4854 var _screenshots$;
4855 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4856 if (isFirstTemplateExist) {
4857 onSelect(screenshots[0].template);
4858 setSelectedScreenshotIndex(0);
4859 }
4860 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4861 (0, _react.useEffect)(function () {
4862 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4863 onAttach(initialAttachments);
4864 }
4865 }, []);
4866 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4867 onClose: onCloseIntent
4868 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4869 onClose: onCloseIntent
4870 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4871 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4872 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4873 size: "small",
4874 "aria-label": "minimize",
4875 onClick: function onClick() {
4876 return setIsMinimized(function (prev) {
4877 return !prev;
4878 });
4879 }
4880 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4881 dividers: true
4882 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4883 in: !isMinimized
4884 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4885 sx: {
4886 pt: 2,
4887 px: 2,
4888 pb: 0
4889 }
4890 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4891 sx: {
4892 pt: 2,
4893 px: 2,
4894 pb: 0
4895 }
4896 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4897 error: error,
4898 onRetry: lastRun.current
4899 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4900 open: showUnsavedChangesAlert,
4901 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4902 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4903 onClose: abortAndClose,
4904 onCancel: function onCancel() {
4905 return setShowUnsavedChangesAlert(false);
4906 }
4907 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4908 type: _attachments.ATTACHMENT_TYPE_URL,
4909 url: promptInputRef.current.value,
4910 onAttach: onAttach,
4911 onClose: function onClose() {
4912 setShouldRenderWebApp(false);
4913 }
4914 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4915 shouldResetPrompt: shouldRenderWebApp,
4916 ref: promptInputRef,
4917 isActive: isPromptFormActive,
4918 isLoading: isLoading,
4919 showActions: screenshots.length > 0 || isLoading,
4920 attachmentsTypes: attachmentsTypes,
4921 attachments: attachments,
4922 onAttach: onAttach,
4923 onDetach: function onDetach(index) {
4924 setAttachments(function (prev) {
4925 var newAttachments = (0, _toConsumableArray2.default)(prev);
4926 newAttachments.splice(index, 1);
4927 return newAttachments;
4928 });
4929 setIsPromptEditable(true);
4930 },
4931 onSubmit: handleGenerate,
4932 onBack: function onBack() {
4933 return setIsPromptEditable(false);
4934 },
4935 onEdit: function onEdit() {
4936 return setIsPromptEditable(true);
4937 }
4938 }), (screenshots.length > 0 || isLoading) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Divider, null), /*#__PURE__*/_react.default.createElement(_ui.Box, {
4939 sx: {
4940 p: 1.5
4941 }
4942 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4943 sx: {
4944 overflow: 'hidden',
4945 p: 0.5
4946 }
4947 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4948 sx: {
4949 display: 'flex',
4950 transition: 'all 0.4s ease',
4951 gap: "".concat(gapPercentage, "%"),
4952 transform: "translateX(".concat(offsetXPercentage, "%)")
4953 }
4954 }, screenshots.map(function (_ref2, index) {
4955 var screenshot = _ref2.screenshot,
4956 type = _ref2.type,
4957 template = _ref2.template,
4958 isError = _ref2.isError,
4959 isPending = _ref2.isPending;
4960 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4961 key: index,
4962 url: screenshot,
4963 type: type,
4964 disabled: isPromptFormActive,
4965 isPlaceholder: isError,
4966 isLoading: isPending,
4967 isSelected: selectedScreenshotIndex === index,
4968 onClick: handleScreenshotClick(index, template),
4969 outlineOffset: screenshotOutlineOffset,
4970 sx: {
4971 flex: "0 0 ".concat(slideWidthPercentage, "%")
4972 }
4973 });
4974 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4975 introductionKey: "ai-context-layout-promotion"
4976 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4977 sx: {
4978 pt: 0,
4979 px: 2,
4980 pb: 2
4981 },
4982 display: "grid",
4983 gridTemplateColumns: "repeat(3, 1fr)",
4984 justifyItems: "center"
4985 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4986 onClick: handleRegenerate,
4987 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
4988 sx: {
4989 justifySelf: 'start'
4990 }
4991 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
4992 page: currentPage,
4993 count: pagesCount,
4994 disabled: isPromptFormActive,
4995 onChange: function onChange(_, page) {
4996 return setCurrentPage(page);
4997 }
4998 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
4999 onClick: applyTemplate,
5000 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
5001 sx: {
5002 justifySelf: 'end',
5003 gridColumn: 3
5004 }
5005 }))))));
5006 };
5007 FormLayout.propTypes = {
5008 DialogHeaderProps: _propTypes.default.object,
5009 DialogContentProps: _propTypes.default.object,
5010 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5011 };
5012 var _default = exports["default"] = FormLayout;
5013
5014 /***/ }),
5015
5016 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5017 /*!************************************************************************************!*\
5018 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5019 \************************************************************************************/
5020 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5021
5022 "use strict";
5023
5024
5025 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5026 Object.defineProperty(exports, "__esModule", ({
5027 value: true
5028 }));
5029 exports["default"] = void 0;
5030 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5031 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5032 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5033 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5034 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5035 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5036 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5037 var _excluded = ["isLoading"];
5038 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5039 var EnhanceButton = function EnhanceButton(_ref) {
5040 var isLoading = _ref.isLoading,
5041 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5042 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5043 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5044 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5045 component: "span",
5046 sx: {
5047 cursor: props.disabled ? 'default' : 'pointer'
5048 }
5049 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5050 size: "small",
5051 color: "secondary"
5052 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5053 color: "secondary",
5054 size: 20
5055 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5056 fontSize: "small"
5057 }))));
5058 };
5059 EnhanceButton.propTypes = {
5060 disabled: _propTypes.default.bool,
5061 isLoading: _propTypes.default.bool
5062 };
5063 var _default = exports["default"] = EnhanceButton;
5064
5065 /***/ }),
5066
5067 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5068 /*!*************************************************************************************!*\
5069 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5070 \*************************************************************************************/
5071 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5072
5073 "use strict";
5074
5075
5076 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5077 Object.defineProperty(exports, "__esModule", ({
5078 value: true
5079 }));
5080 exports["default"] = void 0;
5081 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5082 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5083 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5084 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5085 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5086 var GenerateSubmit = function GenerateSubmit(props) {
5087 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5088 fullWidth: true,
5089 size: "medium",
5090 type: "submit",
5091 variant: "contained"
5092 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5093 };
5094 GenerateSubmit.propTypes = {
5095 children: _propTypes.default.node
5096 };
5097 var _default = exports["default"] = GenerateSubmit;
5098
5099 /***/ }),
5100
5101 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5102 /*!*****************************************************************!*\
5103 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5104 \*****************************************************************/
5105 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5106
5107 "use strict";
5108
5109
5110 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5111 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5112 Object.defineProperty(exports, "__esModule", ({
5113 value: true
5114 }));
5115 exports["default"] = void 0;
5116 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5117 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5118 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5119 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5120 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5121 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5122 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5123 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5124 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5125 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
5126 var GetStarted = function GetStarted(_ref) {
5127 var onSuccess = _ref.onSuccess;
5128 var _useState = (0, _react.useState)(false),
5129 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5130 isTermsChecked = _useState2[0],
5131 setIsTermsChecked = _useState2[1];
5132 var onGetStartedClick = /*#__PURE__*/function () {
5133 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5134 return _regenerator.default.wrap(function (_context) {
5135 while (1) switch (_context.prev = _context.next) {
5136 case 0:
5137 _context.next = 1;
5138 return (0, _api.setGetStarted)();
5139 case 1:
5140 onSuccess();
5141 case 2:
5142 case "end":
5143 return _context.stop();
5144 }
5145 }, _callee);
5146 }));
5147 return function onGetStartedClick() {
5148 return _ref2.apply(this, arguments);
5149 };
5150 }();
5151 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5152 alignItems: "center",
5153 gap: 1.5
5154 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5155 sx: {
5156 color: 'text.primary',
5157 fontSize: '60px',
5158 mb: 1
5159 }
5160 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5161 variant: "h4",
5162 sx: {
5163 color: 'text.primary'
5164 }
5165 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5166 variant: "body2"
5167 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5168 direction: "row",
5169 gap: 1.5,
5170 alignItems: "flex-start"
5171 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5172 id: "e-ai-terms-approval",
5173 color: "secondary",
5174 checked: isTermsChecked,
5175 onClick: function onClick() {
5176 return setIsTermsChecked(function (prevState) {
5177 return !prevState;
5178 });
5179 }
5180 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5181 variant: "caption",
5182 sx: {
5183 maxWidth: 520
5184 },
5185 component: "label",
5186 htmlFor: "e-ai-terms-approval"
5187 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5188 href: "https://go.elementor.com/ai-terms/",
5189 target: "_blank",
5190 color: "info.main"
5191 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5192 href: "https://go.elementor.com/ai-privacy-policy/",
5193 target: "_blank",
5194 color: "info.main"
5195 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), (0, _i18n.__)('This includes consenting to the collection and use of data to improve user experience.', 'elementor')))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
5196 disabled: !isTermsChecked,
5197 variant: "contained",
5198 onClick: onGetStartedClick,
5199 sx: {
5200 mt: 1,
5201 '&:hover': {
5202 color: 'primary.contrastText'
5203 }
5204 }
5205 }, (0, _i18n.__)('Get Started', 'elementor')));
5206 };
5207 GetStarted.propTypes = {
5208 onSuccess: _propTypes.default.func.isRequired
5209 };
5210 var _default = exports["default"] = GetStarted;
5211
5212 /***/ }),
5213
5214 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5215 /*!**********************************************************!*\
5216 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5217 \**********************************************************/
5218 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5219
5220 "use strict";
5221
5222
5223 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5224 Object.defineProperty(exports, "__esModule", ({
5225 value: true
5226 }));
5227 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5228 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5229 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5230 type: _propTypes.default.string,
5231 previewHTML: _propTypes.default.string,
5232 content: _propTypes.default.string,
5233 label: _propTypes.default.string,
5234 source: _propTypes.default.string
5235 });
5236 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5237 type: _propTypes.default.shape({
5238 promptPlaceholder: _propTypes.default.string,
5239 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5240 text: _propTypes.default.string.isRequired
5241 })),
5242 previewGenerator: _propTypes.default.func
5243 })
5244 });
5245
5246 /***/ }),
5247
5248 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5249 /*!******************************************************************!*\
5250 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5251 \******************************************************************/
5252 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5253
5254 "use strict";
5255
5256
5257 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5258 Object.defineProperty(exports, "__esModule", ({
5259 value: true
5260 }));
5261 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5262 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5263 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5264 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5265 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5266 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5267 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5268 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5269 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5270 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5271 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5272 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5273 var closePanel = exports.closePanel = function closePanel() {
5274 $e.run('panel/close');
5275 $e.components.get('panel').blockUserInteractions();
5276 };
5277 var openPanel = exports.openPanel = function openPanel() {
5278 $e.run('panel/open');
5279 $e.components.get('panel').unblockUserInteractions();
5280 };
5281 var onConnect = exports.onConnect = function onConnect(data) {
5282 elementorCommon.config.library_connect.is_connected = true;
5283 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5284 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5285 elementorCommon.config.library_connect.plan_type = data.plan_type;
5286 };
5287 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5288 var _elementor, _elementor$getPrefere;
5289 var colorScheme = ((_elementor = elementor) === null || _elementor === void 0 || (_elementor$getPrefere = _elementor.getPreferences) === null || _elementor$getPrefere === void 0 ? void 0 : _elementor$getPrefere.call(_elementor, 'ui_theme')) || 'auto';
5290 var isRTL = elementorCommon.config.isRTL;
5291 return {
5292 colorScheme: colorScheme,
5293 isRTL: isRTL
5294 };
5295 };
5296 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5297 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5298 }, {
5299 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5300 }, {
5301 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5302 }, {
5303 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5304 }, {
5305 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5306 }, {
5307 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5308 }, {
5309 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5310 }, {
5311 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5312 }, {
5313 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5314 }];
5315 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5316 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5317 }, {
5318 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5319 }, {
5320 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5321 }, {
5322 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5323 }, {
5324 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5325 }, {
5326 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5327 }];
5328 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5329 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5330 var _options$onRenderApp;
5331 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5332 parentContainer: null,
5333 mode: '',
5334 at: null,
5335 onClose: null,
5336 onGenerate: null,
5337 onInsert: null,
5338 onRenderApp: null,
5339 onSelect: null,
5340 attachments: []
5341 };
5342 closePanel();
5343 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5344 // Create the container at the "drag widget here" area position.
5345 at: options.at
5346 });
5347 var _getUiConfig = getUiConfig(),
5348 colorScheme = _getUiConfig.colorScheme,
5349 isRTL = _getUiConfig.isRTL;
5350 var rootElement = document.createElement('div');
5351 document.body.append(rootElement);
5352 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5353 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5354 isRTL: isRTL,
5355 colorScheme: colorScheme
5356 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5357 mode: options.mode,
5358 currentContext: {
5359 body: {
5360 backgroundColor: bodyStyle.backgroundColor,
5361 backgroundImage: bodyStyle.backgroundImage
5362 }
5363 },
5364 attachmentsTypes: {
5365 json: {
5366 promptSuggestions: VARIATIONS_PROMPTS,
5367 promptPlaceholder: PROMPT_PLACEHOLDER,
5368 previewGenerator: function () {
5369 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5370 var screenshot;
5371 return _regenerator.default.wrap(function (_context) {
5372 while (1) switch (_context.prev = _context.next) {
5373 case 0:
5374 _context.next = 1;
5375 return (0, _screenshot.takeScreenshot)(json);
5376 case 1:
5377 screenshot = _context.sent;
5378 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5379 case 2:
5380 case "end":
5381 return _context.stop();
5382 }
5383 }, _callee);
5384 }));
5385 function previewGenerator(_x) {
5386 return _previewGenerator.apply(this, arguments);
5387 }
5388 return previewGenerator;
5389 }()
5390 },
5391 url: {
5392 promptPlaceholder: PROMPT_PLACEHOLDER,
5393 promptSuggestions: WEB_BASED_PROMPTS
5394 }
5395 },
5396 attachments: options.attachments || [],
5397 onClose: function onClose() {
5398 var _options$onClose;
5399 previewContainer.destroy();
5400 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5401 unmount();
5402 rootElement.remove();
5403 openPanel();
5404 },
5405 onConnect: onConnect,
5406 onGenerate: function onGenerate() {
5407 var _options$onGenerate;
5408 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5409 previewContainer: previewContainer
5410 });
5411 },
5412 onData: (/*#__PURE__*/function () {
5413 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5414 var screenshot;
5415 return _regenerator.default.wrap(function (_context2) {
5416 while (1) switch (_context2.prev = _context2.next) {
5417 case 0:
5418 _context2.next = 1;
5419 return (0, _screenshot.takeScreenshot)(template);
5420 case 1:
5421 screenshot = _context2.sent;
5422 return _context2.abrupt("return", {
5423 screenshot: screenshot,
5424 template: template
5425 });
5426 case 2:
5427 case "end":
5428 return _context2.stop();
5429 }
5430 }, _callee2);
5431 }));
5432 return function (_x2) {
5433 return _ref.apply(this, arguments);
5434 };
5435 }()),
5436 onSelect: function onSelect(template) {
5437 var _options$onSelect;
5438 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5439 previewContainer.setContent(template);
5440 },
5441 onInsert: options.onInsert,
5442 hasPro: elementor.helpers.hasPro()
5443 })), rootElement),
5444 unmount = _ReactUtils$render.unmount;
5445 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5446 previewContainer: previewContainer
5447 });
5448 };
5449 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5450 var parentContainer = _ref2.parentContainer,
5451 at = _ref2.at,
5452 template = _ref2.template,
5453 historyTitle = _ref2.historyTitle,
5454 _ref2$replace = _ref2.replace,
5455 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5456 var endHistoryLog = (0, _history.startHistoryLog)({
5457 type: 'import',
5458 title: historyTitle
5459 });
5460 if (replace) {
5461 $e.run('document/elements/delete', {
5462 container: parentContainer.children.at(at)
5463 });
5464 }
5465 $e.run('document/elements/create', {
5466 container: parentContainer,
5467 model: (0, _requestsIds.generateIds)(template),
5468 options: {
5469 at: at,
5470 edit: true
5471 }
5472 });
5473 endHistoryLog();
5474 };
5475
5476 /***/ }),
5477
5478 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5479 /*!*******************************************************!*\
5480 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5481 \*******************************************************/
5482 /***/ ((__unused_webpack_module, exports) => {
5483
5484 "use strict";
5485
5486
5487 Object.defineProperty(exports, "__esModule", ({
5488 value: true
5489 }));
5490 exports.startHistoryLog = startHistoryLog;
5491 exports.toggleHistory = toggleHistory;
5492 function toggleHistory(isActive) {
5493 elementor.documents.getCurrent().history.setActive(isActive);
5494 }
5495
5496 /**
5497 * @param {Object} options
5498 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5499 * @param { string } options.title
5500 *
5501 * @return {*}
5502 */
5503 function startHistoryLog(_ref) {
5504 var type = _ref.type,
5505 title = _ref.title;
5506 var id = $e.internal('document/history/start-log', {
5507 type: type,
5508 title: title
5509 });
5510 return function () {
5511 return $e.internal('document/history/end-log', {
5512 id: id
5513 });
5514 };
5515 }
5516
5517 /***/ }),
5518
5519 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5520 /*!*****************************************************************!*\
5521 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5522 \*****************************************************************/
5523 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5524
5525 "use strict";
5526
5527
5528 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5529 Object.defineProperty(exports, "__esModule", ({
5530 value: true
5531 }));
5532 exports.createPreviewContainer = createPreviewContainer;
5533 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5534 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5535 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5536 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5537 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5538 /**
5539 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5540 */
5541
5542 var PREFIX = 'e-ai-preview-container';
5543 var CLASS_HIDDEN = PREFIX + '--hidden';
5544 var CLASS_IDLE = PREFIX + '--idle';
5545
5546 /**
5547 * @param {Container} parentContainer
5548 * @param {{}} containerOptions
5549 * @return {{init, setContent, reset, destroy}}
5550 */
5551
5552 function createPreviewContainer(parentContainer) {
5553 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5554 var createdContainers = new Map();
5555 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5556 function init() {
5557 showContainer(idleContainer);
5558 }
5559 function getAllContainers() {
5560 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5561 }
5562 function reset() {
5563 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5564 createdContainers.clear();
5565 showContainer(idleContainer);
5566 }
5567 function setContent(template) {
5568 if (!template) {
5569 return;
5570 }
5571 hideContainers(getAllContainers());
5572 if (!createdContainers.has(template)) {
5573 var newContainer = createContainer(parentContainer, template, containerOptions);
5574 createdContainers.set(template, newContainer);
5575 }
5576 showContainer(createdContainers.get(template));
5577 }
5578 function destroy() {
5579 deleteContainers(getAllContainers());
5580 createdContainers.clear();
5581 }
5582 return {
5583 init: init,
5584 reset: reset,
5585 setContent: setContent,
5586 destroy: destroy
5587 };
5588 }
5589
5590 /**
5591 * @param {Container} parentContainer
5592 * @param {{}} model
5593 * @param {{}} options
5594 * @return {*}
5595 */
5596 function createContainer(parentContainer, model) {
5597 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5598 (0, _history.toggleHistory)(false);
5599 var container = $e.run('document/elements/create', {
5600 container: parentContainer,
5601 model: _objectSpread(_objectSpread({}, model), {}, {
5602 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5603 }),
5604 options: _objectSpread(_objectSpread({}, options), {}, {
5605 edit: false
5606 })
5607 });
5608 (0, _history.toggleHistory)(true);
5609 container.view.$el.addClass(CLASS_HIDDEN);
5610 return container;
5611 }
5612
5613 /**
5614 * @param {Container} parentContainer
5615 * @param {{}} containerOptions
5616 * @return {*}
5617 */
5618 function createIdleContainer(parentContainer) {
5619 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5620 // Create an empty container that'll be used of UI purposes.
5621 var container = createContainer(parentContainer, {
5622 elType: 'container'
5623 }, containerOptions);
5624 container.view.$el.addClass(CLASS_IDLE);
5625 return container;
5626 }
5627 function hideContainers(containers) {
5628 containers.forEach(function (container) {
5629 container.view.$el.addClass(CLASS_HIDDEN);
5630 });
5631 }
5632 function showContainer(container) {
5633 container.view.$el.removeClass(CLASS_HIDDEN);
5634
5635 // Delay the scroll to avoid UI jumps when toggling between containers.
5636 setTimeout(function () {
5637 container.view.$el[0].scrollIntoView({
5638 behavior: 'smooth',
5639 block: 'start'
5640 });
5641 });
5642 }
5643 function deleteContainers(containers) {
5644 (0, _history.toggleHistory)(false);
5645 $e.run('document/elements/delete', {
5646 containers: containers
5647 });
5648 (0, _history.toggleHistory)(true);
5649 }
5650
5651 /***/ }),
5652
5653 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5654 /*!**********************************************************!*\
5655 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5656 \**********************************************************/
5657 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5658
5659 "use strict";
5660
5661
5662 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5663 Object.defineProperty(exports, "__esModule", ({
5664 value: true
5665 }));
5666 exports.takeScreenshot = void 0;
5667 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5668 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5669 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5670 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5671 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5672 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5673 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5674 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5675 var hiddenWrapper, container, screenshot, _t;
5676 return _regenerator.default.wrap(function (_context) {
5677 while (1) switch (_context.prev = _context.next) {
5678 case 0:
5679 if (template) {
5680 _context.next = 1;
5681 break;
5682 }
5683 return _context.abrupt("return", '');
5684 case 1:
5685 // Disable history so the Editor won't show our hidden container as a user action.
5686 (0, _history.toggleHistory)(false);
5687 hiddenWrapper = createHiddenWrapper();
5688 container = createContainer(template);
5689 wrapContainer(container, hiddenWrapper);
5690 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5691
5692 // Wait for the container to render.
5693 _context.next = 2;
5694 return waitForContainer(container.id);
5695 case 2:
5696 if (!template.elements.length) {
5697 _context.next = 3;
5698 break;
5699 }
5700 _context.next = 3;
5701 return Promise.all(template.elements.map(function (child) {
5702 return waitForContainer(child.id);
5703 }));
5704 case 3:
5705 _context.prev = 3;
5706 _context.next = 4;
5707 return screenshotNode(container.view.$el[0]);
5708 case 4:
5709 screenshot = _context.sent;
5710 _context.next = 6;
5711 break;
5712 case 5:
5713 _context.prev = 5;
5714 _t = _context["catch"](3);
5715 // Return an empty image url if the screenshot failed.
5716 screenshot = '';
5717 case 6:
5718 deleteContainer(container);
5719 hiddenWrapper.remove();
5720 (0, _history.toggleHistory)(true);
5721 return _context.abrupt("return", screenshot);
5722 case 7:
5723 case "end":
5724 return _context.stop();
5725 }
5726 }, _callee, null, [[3, 5]]);
5727 }));
5728 return function takeScreenshot(_x) {
5729 return _ref.apply(this, arguments);
5730 };
5731 }();
5732 function screenshotNode(node) {
5733 return toWebp(node, {
5734 quality: 0.01,
5735 // Transparent 1x1 pixel.
5736 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5737 });
5738 }
5739 function toWebp(_x2) {
5740 return _toWebp.apply(this, arguments);
5741 }
5742 function _toWebp() {
5743 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5744 var _options$quality;
5745 var options,
5746 canvas,
5747 _args3 = arguments;
5748 return _regenerator.default.wrap(function (_context3) {
5749 while (1) switch (_context3.prev = _context3.next) {
5750 case 0:
5751 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5752 _context3.next = 1;
5753 return (0, _htmlToImage.toCanvas)(node, options);
5754 case 1:
5755 canvas = _context3.sent;
5756 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5757 case 2:
5758 case "end":
5759 return _context3.stop();
5760 }
5761 }, _callee3);
5762 }));
5763 return _toWebp.apply(this, arguments);
5764 }
5765 function createHiddenWrapper() {
5766 var wrapper = document.createElement('div');
5767 wrapper.style.position = 'fixed';
5768 wrapper.style.opacity = '0';
5769 wrapper.style.inset = '0';
5770 return wrapper;
5771 }
5772 function createContainer(template) {
5773 var model = (0, _requestsIds.generateIds)(template);
5774
5775 // Set a custom ID, so it can be used later on in the backend.
5776 model.id = "e-ai-screenshot-container-".concat(model.id);
5777 return $e.run('document/elements/create', {
5778 container: elementor.getPreviewContainer(),
5779 model: model,
5780 options: {
5781 edit: false
5782 }
5783 });
5784 }
5785 function deleteContainer(container) {
5786 return $e.run('document/elements/delete', {
5787 container: container
5788 });
5789 }
5790 function waitForContainer(id) {
5791 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5792 var timeoutPromise = sleep(timeout);
5793 var waitPromise = new Promise(function (resolve) {
5794 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5795 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5796 var images;
5797 return _regenerator.default.wrap(function (_context2) {
5798 while (1) switch (_context2.prev = _context2.next) {
5799 case 0:
5800 if (!($element.data('id') === id)) {
5801 _context2.next = 2;
5802 break;
5803 }
5804 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5805 _context2.next = 1;
5806 return Promise.all(images.map(waitForImage));
5807 case 1:
5808 resolve();
5809 case 2:
5810 case "end":
5811 return _context2.stop();
5812 }
5813 }, _callee2);
5814 }));
5815 return function (_x3) {
5816 return _ref2.apply(this, arguments);
5817 };
5818 }());
5819 });
5820 return Promise.any([timeoutPromise, waitPromise]);
5821 }
5822 function waitForImage(image) {
5823 if (image.complete) {
5824 return Promise.resolve();
5825 }
5826 return new Promise(function (resolve) {
5827 image.addEventListener('load', resolve);
5828 image.addEventListener('error', function () {
5829 // Remove the image to make sure it won't break the screenshot.
5830 image.remove();
5831 resolve();
5832 });
5833 });
5834 }
5835 function sleep(ms) {
5836 return new Promise(function (resolve) {
5837 return setTimeout(resolve, ms);
5838 });
5839 }
5840 function wrapContainer(container, wrapper) {
5841 var el = container.view.$el[0];
5842 el.parentNode.insertBefore(wrapper, el);
5843 wrapper.appendChild(el);
5844 }
5845
5846 /***/ }),
5847
5848 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
5849 /*!***************************************************************!*\
5850 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
5851 \***************************************************************/
5852 /***/ ((module) => {
5853
5854 function _OverloadYield(e, d) {
5855 this.v = e, this.k = d;
5856 }
5857 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
5858
5859 /***/ }),
5860
5861 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
5862 /*!******************************************************************!*\
5863 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
5864 \******************************************************************/
5865 /***/ ((module) => {
5866
5867 function _arrayLikeToArray(r, a) {
5868 (null == a || a > r.length) && (a = r.length);
5869 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
5870 return n;
5871 }
5872 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
5873
5874 /***/ }),
5875
5876 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
5877 /*!****************************************************************!*\
5878 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
5879 \****************************************************************/
5880 /***/ ((module) => {
5881
5882 function _arrayWithHoles(r) {
5883 if (Array.isArray(r)) return r;
5884 }
5885 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5886
5887 /***/ }),
5888
5889 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
5890 /*!*******************************************************************!*\
5891 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
5892 \*******************************************************************/
5893 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5894
5895 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
5896 function _arrayWithoutHoles(r) {
5897 if (Array.isArray(r)) return arrayLikeToArray(r);
5898 }
5899 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5900
5901 /***/ }),
5902
5903 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
5904 /*!***********************************************************************!*\
5905 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
5906 \***********************************************************************/
5907 /***/ ((module) => {
5908
5909 function _assertThisInitialized(e) {
5910 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5911 return e;
5912 }
5913 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
5914
5915 /***/ }),
5916
5917 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
5918 /*!******************************************************************!*\
5919 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
5920 \******************************************************************/
5921 /***/ ((module) => {
5922
5923 function asyncGeneratorStep(n, t, e, r, o, a, c) {
5924 try {
5925 var i = n[a](c),
5926 u = i.value;
5927 } catch (n) {
5928 return void e(n);
5929 }
5930 i.done ? t(u) : Promise.resolve(u).then(r, o);
5931 }
5932 function _asyncToGenerator(n) {
5933 return function () {
5934 var t = this,
5935 e = arguments;
5936 return new Promise(function (r, o) {
5937 var a = n.apply(t, e);
5938 function _next(n) {
5939 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
5940 }
5941 function _throw(n) {
5942 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
5943 }
5944 _next(void 0);
5945 });
5946 };
5947 }
5948 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
5949
5950 /***/ }),
5951
5952 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
5953 /*!****************************************************************!*\
5954 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
5955 \****************************************************************/
5956 /***/ ((module) => {
5957
5958 function _classCallCheck(a, n) {
5959 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
5960 }
5961 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
5962
5963 /***/ }),
5964
5965 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
5966 /*!*************************************************************!*\
5967 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
5968 \*************************************************************/
5969 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5970
5971 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5972 function _defineProperties(e, r) {
5973 for (var t = 0; t < r.length; t++) {
5974 var o = r[t];
5975 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
5976 }
5977 }
5978 function _createClass(e, r, t) {
5979 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
5980 writable: !1
5981 }), e;
5982 }
5983 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
5984
5985 /***/ }),
5986
5987 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
5988 /*!****************************************************************!*\
5989 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
5990 \****************************************************************/
5991 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5992
5993 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5994 function _defineProperty(e, r, t) {
5995 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5996 value: t,
5997 enumerable: !0,
5998 configurable: !0,
5999 writable: !0
6000 }) : e[r] = t, e;
6001 }
6002 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
6003
6004 /***/ }),
6005
6006 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
6007 /*!*********************************************************!*\
6008 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
6009 \*********************************************************/
6010 /***/ ((module) => {
6011
6012 function _extends() {
6013 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
6014 for (var e = 1; e < arguments.length; e++) {
6015 var t = arguments[e];
6016 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
6017 }
6018 return n;
6019 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
6020 }
6021 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
6022
6023 /***/ }),
6024
6025 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
6026 /*!****************************************************************!*\
6027 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
6028 \****************************************************************/
6029 /***/ ((module) => {
6030
6031 function _getPrototypeOf(t) {
6032 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
6033 return t.__proto__ || Object.getPrototypeOf(t);
6034 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
6035 }
6036 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6037
6038 /***/ }),
6039
6040 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
6041 /*!**********************************************************!*\
6042 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
6043 \**********************************************************/
6044 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6045
6046 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
6047 function _inherits(t, e) {
6048 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
6049 t.prototype = Object.create(e && e.prototype, {
6050 constructor: {
6051 value: t,
6052 writable: !0,
6053 configurable: !0
6054 }
6055 }), Object.defineProperty(t, "prototype", {
6056 writable: !1
6057 }), e && setPrototypeOf(t, e);
6058 }
6059 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
6060
6061 /***/ }),
6062
6063 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
6064 /*!***********************************************************************!*\
6065 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
6066 \***********************************************************************/
6067 /***/ ((module) => {
6068
6069 function _interopRequireDefault(e) {
6070 return e && e.__esModule ? e : {
6071 "default": e
6072 };
6073 }
6074 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
6075
6076 /***/ }),
6077
6078 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
6079 /*!*****************************************************************!*\
6080 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
6081 \*****************************************************************/
6082 /***/ ((module) => {
6083
6084 function _iterableToArray(r) {
6085 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
6086 }
6087 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6088
6089 /***/ }),
6090
6091 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
6092 /*!**********************************************************************!*\
6093 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
6094 \**********************************************************************/
6095 /***/ ((module) => {
6096
6097 function _iterableToArrayLimit(r, l) {
6098 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
6099 if (null != t) {
6100 var e,
6101 n,
6102 i,
6103 u,
6104 a = [],
6105 f = !0,
6106 o = !1;
6107 try {
6108 if (i = (t = t.call(r)).next, 0 === l) {
6109 if (Object(t) !== t) return;
6110 f = !1;
6111 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
6112 } catch (r) {
6113 o = !0, n = r;
6114 } finally {
6115 try {
6116 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
6117 } finally {
6118 if (o) throw n;
6119 }
6120 }
6121 return a;
6122 }
6123 }
6124 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
6125
6126 /***/ }),
6127
6128 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
6129 /*!*****************************************************************!*\
6130 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
6131 \*****************************************************************/
6132 /***/ ((module) => {
6133
6134 function _nonIterableRest() {
6135 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6136 }
6137 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
6138
6139 /***/ }),
6140
6141 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
6142 /*!*******************************************************************!*\
6143 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
6144 \*******************************************************************/
6145 /***/ ((module) => {
6146
6147 function _nonIterableSpread() {
6148 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6149 }
6150 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
6151
6152 /***/ }),
6153
6154 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
6155 /*!*************************************************************************!*\
6156 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
6157 \*************************************************************************/
6158 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6159
6160 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
6161 function _objectWithoutProperties(e, t) {
6162 if (null == e) return {};
6163 var o,
6164 r,
6165 i = objectWithoutPropertiesLoose(e, t);
6166 if (Object.getOwnPropertySymbols) {
6167 var n = Object.getOwnPropertySymbols(e);
6168 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6169 }
6170 return i;
6171 }
6172 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
6173
6174 /***/ }),
6175
6176 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
6177 /*!******************************************************************************!*\
6178 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
6179 \******************************************************************************/
6180 /***/ ((module) => {
6181
6182 function _objectWithoutPropertiesLoose(r, e) {
6183 if (null == r) return {};
6184 var t = {};
6185 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
6186 if (-1 !== e.indexOf(n)) continue;
6187 t[n] = r[n];
6188 }
6189 return t;
6190 }
6191 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
6192
6193 /***/ }),
6194
6195 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
6196 /*!***************************************************************************!*\
6197 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
6198 \***************************************************************************/
6199 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6200
6201 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6202 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
6203 function _possibleConstructorReturn(t, e) {
6204 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
6205 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
6206 return assertThisInitialized(t);
6207 }
6208 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
6209
6210 /***/ }),
6211
6212 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
6213 /*!*************************************************************!*\
6214 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
6215 \*************************************************************/
6216 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6217
6218 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6219 function _regenerator() {
6220 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
6221 var e,
6222 t,
6223 r = "function" == typeof Symbol ? Symbol : {},
6224 n = r.iterator || "@@iterator",
6225 o = r.toStringTag || "@@toStringTag";
6226 function i(r, n, o, i) {
6227 var c = n && n.prototype instanceof Generator ? n : Generator,
6228 u = Object.create(c.prototype);
6229 return regeneratorDefine(u, "_invoke", function (r, n, o) {
6230 var i,
6231 c,
6232 u,
6233 f = 0,
6234 p = o || [],
6235 y = !1,
6236 G = {
6237 p: 0,
6238 n: 0,
6239 v: e,
6240 a: d,
6241 f: d.bind(e, 4),
6242 d: function d(t, r) {
6243 return i = t, c = 0, u = e, G.n = r, a;
6244 }
6245 };
6246 function d(r, n) {
6247 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
6248 var o,
6249 i = p[t],
6250 d = G.p,
6251 l = i[2];
6252 r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
6253 }
6254 if (o || r > 1) return a;
6255 throw y = !0, n;
6256 }
6257 return function (o, p, l) {
6258 if (f > 1) throw TypeError("Generator is already running");
6259 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
6260 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
6261 try {
6262 if (f = 2, i) {
6263 if (c || (o = "next"), t = i[o]) {
6264 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
6265 if (!t.done) return t;
6266 u = t.value, c < 2 && (c = 0);
6267 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
6268 i = e;
6269 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
6270 } catch (t) {
6271 i = e, c = 1, u = t;
6272 } finally {
6273 f = 1;
6274 }
6275 }
6276 return {
6277 value: t,
6278 done: y
6279 };
6280 };
6281 }(r, o, i), !0), u;
6282 }
6283 var a = {};
6284 function Generator() {}
6285 function GeneratorFunction() {}
6286 function GeneratorFunctionPrototype() {}
6287 t = Object.getPrototypeOf;
6288 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
6289 return this;
6290 }), t),
6291 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
6292 function f(e) {
6293 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
6294 }
6295 return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
6296 return this;
6297 }), regeneratorDefine(u, "toString", function () {
6298 return "[object Generator]";
6299 }), (module.exports = _regenerator = function _regenerator() {
6300 return {
6301 w: i,
6302 m: f
6303 };
6304 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6305 }
6306 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6307
6308 /***/ }),
6309
6310 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
6311 /*!******************************************************************!*\
6312 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
6313 \******************************************************************/
6314 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6315
6316 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6317 function _regeneratorAsync(n, e, r, t, o) {
6318 var a = regeneratorAsyncGen(n, e, r, t, o);
6319 return a.next().then(function (n) {
6320 return n.done ? n.value : a.next();
6321 });
6322 }
6323 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
6324
6325 /***/ }),
6326
6327 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
6328 /*!*********************************************************************!*\
6329 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
6330 \*********************************************************************/
6331 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6332
6333 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6334 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6335 function _regeneratorAsyncGen(r, e, t, o, n) {
6336 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
6337 }
6338 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
6339
6340 /***/ }),
6341
6342 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
6343 /*!**************************************************************************!*\
6344 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
6345 \**************************************************************************/
6346 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6347
6348 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6349 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6350 function AsyncIterator(t, e) {
6351 function n(r, o, i, f) {
6352 try {
6353 var c = t[r](o),
6354 u = c.value;
6355 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
6356 n("next", t, i, f);
6357 }, function (t) {
6358 n("throw", t, i, f);
6359 }) : e.resolve(u).then(function (t) {
6360 c.value = t, i(c);
6361 }, function (t) {
6362 return n("throw", t, i, f);
6363 });
6364 } catch (t) {
6365 f(t);
6366 }
6367 }
6368 var r;
6369 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
6370 return this;
6371 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
6372 function f() {
6373 return new e(function (e, r) {
6374 n(t, i, e, r);
6375 });
6376 }
6377 return r = r ? r.then(f, f) : f();
6378 }, !0);
6379 }
6380 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6381
6382 /***/ }),
6383
6384 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
6385 /*!*******************************************************************!*\
6386 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
6387 \*******************************************************************/
6388 /***/ ((module) => {
6389
6390 function _regeneratorDefine(e, r, n, t) {
6391 var i = Object.defineProperty;
6392 try {
6393 i({}, "", {});
6394 } catch (e) {
6395 i = 0;
6396 }
6397 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
6398 if (r) i ? i(e, r, {
6399 value: n,
6400 enumerable: !t,
6401 configurable: !t,
6402 writable: !t
6403 }) : e[r] = n;else {
6404 var o = function o(r, n) {
6405 _regeneratorDefine(e, r, function (e) {
6406 return this._invoke(r, n, e);
6407 });
6408 };
6409 o("next", 0), o("throw", 1), o("return", 2);
6410 }
6411 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
6412 }
6413 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
6414
6415 /***/ }),
6416
6417 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
6418 /*!*****************************************************************!*\
6419 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
6420 \*****************************************************************/
6421 /***/ ((module) => {
6422
6423 function _regeneratorKeys(e) {
6424 var n = Object(e),
6425 r = [];
6426 for (var t in n) r.unshift(t);
6427 return function e() {
6428 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
6429 return e.done = !0, e;
6430 };
6431 }
6432 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
6433
6434 /***/ }),
6435
6436 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
6437 /*!********************************************************************!*\
6438 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
6439 \********************************************************************/
6440 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6441
6442 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6443 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6444 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
6445 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6446 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6447 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
6448 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
6449 function _regeneratorRuntime() {
6450 "use strict";
6451
6452 var r = regenerator(),
6453 e = r.m(_regeneratorRuntime),
6454 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
6455 function n(r) {
6456 var e = "function" == typeof r && r.constructor;
6457 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
6458 }
6459 var o = {
6460 "throw": 1,
6461 "return": 2,
6462 "break": 3,
6463 "continue": 3
6464 };
6465 function a(r) {
6466 var e, t;
6467 return function (n) {
6468 e || (e = {
6469 stop: function stop() {
6470 return t(n.a, 2);
6471 },
6472 "catch": function _catch() {
6473 return n.v;
6474 },
6475 abrupt: function abrupt(r, e) {
6476 return t(n.a, o[r], e);
6477 },
6478 delegateYield: function delegateYield(r, o, a) {
6479 return e.resultName = o, t(n.d, regeneratorValues(r), a);
6480 },
6481 finish: function finish(r) {
6482 return t(n.f, r);
6483 }
6484 }, t = function t(r, _t, o) {
6485 n.p = e.prev, n.n = e.next;
6486 try {
6487 return r(_t, o);
6488 } finally {
6489 e.next = n.n;
6490 }
6491 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
6492 try {
6493 return r.call(this, e);
6494 } finally {
6495 n.p = e.prev, n.n = e.next;
6496 }
6497 };
6498 }
6499 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
6500 return {
6501 wrap: function wrap(e, t, n, o) {
6502 return r.w(a(e), t, n, o && o.reverse());
6503 },
6504 isGeneratorFunction: n,
6505 mark: r.m,
6506 awrap: function awrap(r, e) {
6507 return new OverloadYield(r, e);
6508 },
6509 AsyncIterator: regeneratorAsyncIterator,
6510 async: function async(r, e, t, o, u) {
6511 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
6512 },
6513 keys: regeneratorKeys,
6514 values: regeneratorValues
6515 };
6516 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6517 }
6518 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6519
6520 /***/ }),
6521
6522 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
6523 /*!*******************************************************************!*\
6524 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
6525 \*******************************************************************/
6526 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6527
6528 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6529 function _regeneratorValues(e) {
6530 if (null != e) {
6531 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
6532 r = 0;
6533 if (t) return t.call(e);
6534 if ("function" == typeof e.next) return e;
6535 if (!isNaN(e.length)) return {
6536 next: function next() {
6537 return e && r >= e.length && (e = void 0), {
6538 value: e && e[r++],
6539 done: !e
6540 };
6541 }
6542 };
6543 }
6544 throw new TypeError(_typeof(e) + " is not iterable");
6545 }
6546 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
6547
6548 /***/ }),
6549
6550 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
6551 /*!****************************************************************!*\
6552 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
6553 \****************************************************************/
6554 /***/ ((module) => {
6555
6556 function _setPrototypeOf(t, e) {
6557 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
6558 return t.__proto__ = e, t;
6559 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
6560 }
6561 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6562
6563 /***/ }),
6564
6565 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
6566 /*!***************************************************************!*\
6567 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
6568 \***************************************************************/
6569 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6570
6571 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
6572 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
6573 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6574 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
6575 function _slicedToArray(r, e) {
6576 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
6577 }
6578 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6579
6580 /***/ }),
6581
6582 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
6583 /*!***********************************************************************!*\
6584 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
6585 \***********************************************************************/
6586 /***/ ((module) => {
6587
6588 function _taggedTemplateLiteral(e, t) {
6589 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
6590 raw: {
6591 value: Object.freeze(t)
6592 }
6593 }));
6594 }
6595 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
6596
6597 /***/ }),
6598
6599 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
6600 /*!*******************************************************************!*\
6601 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
6602 \*******************************************************************/
6603 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6604
6605 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
6606 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
6607 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6608 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
6609 function _toConsumableArray(r) {
6610 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
6611 }
6612 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6613
6614 /***/ }),
6615
6616 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
6617 /*!*************************************************************!*\
6618 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
6619 \*************************************************************/
6620 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6621
6622 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6623 function toPrimitive(t, r) {
6624 if ("object" != _typeof(t) || !t) return t;
6625 var e = t[Symbol.toPrimitive];
6626 if (void 0 !== e) {
6627 var i = e.call(t, r || "default");
6628 if ("object" != _typeof(i)) return i;
6629 throw new TypeError("@@toPrimitive must return a primitive value.");
6630 }
6631 return ("string" === r ? String : Number)(t);
6632 }
6633 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
6634
6635 /***/ }),
6636
6637 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
6638 /*!***************************************************************!*\
6639 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
6640 \***************************************************************/
6641 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6642
6643 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6644 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
6645 function toPropertyKey(t) {
6646 var i = toPrimitive(t, "string");
6647 return "symbol" == _typeof(i) ? i : i + "";
6648 }
6649 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
6650
6651 /***/ }),
6652
6653 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
6654 /*!********************************************************!*\
6655 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
6656 \********************************************************/
6657 /***/ ((module) => {
6658
6659 function _typeof(o) {
6660 "@babel/helpers - typeof";
6661
6662 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
6663 return typeof o;
6664 } : function (o) {
6665 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
6666 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
6667 }
6668 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
6669
6670 /***/ }),
6671
6672 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
6673 /*!****************************************************************************!*\
6674 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
6675 \****************************************************************************/
6676 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6677
6678 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
6679 function _unsupportedIterableToArray(r, a) {
6680 if (r) {
6681 if ("string" == typeof r) return arrayLikeToArray(r, a);
6682 var t = {}.toString.call(r).slice(8, -1);
6683 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
6684 }
6685 }
6686 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6687
6688 /***/ }),
6689
6690 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
6691 /*!***********************************************************!*\
6692 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
6693 \***********************************************************/
6694 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6695
6696 // TODO(Babel 8): Remove this file.
6697
6698 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
6699 module.exports = runtime;
6700
6701 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6702 try {
6703 regeneratorRuntime = runtime;
6704 } catch (accidentalStrictMode) {
6705 if (typeof globalThis === "object") {
6706 globalThis.regeneratorRuntime = runtime;
6707 } else {
6708 Function("r", "regeneratorRuntime = r")(runtime);
6709 }
6710 }
6711
6712
6713 /***/ }),
6714
6715 /***/ "../node_modules/html-to-image/es/apply-style.js":
6716 /*!*******************************************************!*\
6717 !*** ../node_modules/html-to-image/es/apply-style.js ***!
6718 \*******************************************************/
6719 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6720
6721 "use strict";
6722 __webpack_require__.r(__webpack_exports__);
6723 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6724 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
6725 /* harmony export */ });
6726 function applyStyle(node, options) {
6727 const { style } = node;
6728 if (options.backgroundColor) {
6729 style.backgroundColor = options.backgroundColor;
6730 }
6731 if (options.width) {
6732 style.width = `${options.width}px`;
6733 }
6734 if (options.height) {
6735 style.height = `${options.height}px`;
6736 }
6737 const manual = options.style;
6738 if (manual != null) {
6739 Object.keys(manual).forEach((key) => {
6740 style[key] = manual[key];
6741 });
6742 }
6743 return node;
6744 }
6745 //# sourceMappingURL=apply-style.js.map
6746
6747 /***/ }),
6748
6749 /***/ "../node_modules/html-to-image/es/clone-node.js":
6750 /*!******************************************************!*\
6751 !*** ../node_modules/html-to-image/es/clone-node.js ***!
6752 \******************************************************/
6753 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6754
6755 "use strict";
6756 __webpack_require__.r(__webpack_exports__);
6757 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6758 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
6759 /* harmony export */ });
6760 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
6761 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6762 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6763 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6764
6765
6766
6767
6768 async function cloneCanvasElement(canvas) {
6769 const dataURL = canvas.toDataURL();
6770 if (dataURL === 'data:,') {
6771 return canvas.cloneNode(false);
6772 }
6773 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6774 }
6775 async function cloneVideoElement(video, options) {
6776 if (video.currentSrc) {
6777 const canvas = document.createElement('canvas');
6778 const ctx = canvas.getContext('2d');
6779 canvas.width = video.clientWidth;
6780 canvas.height = video.clientHeight;
6781 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
6782 const dataURL = canvas.toDataURL();
6783 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6784 }
6785 const poster = video.poster;
6786 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
6787 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
6788 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6789 }
6790 async function cloneIFrameElement(iframe, options) {
6791 var _a;
6792 try {
6793 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
6794 return (await cloneNode(iframe.contentDocument.body, options, true));
6795 }
6796 }
6797 catch (_b) {
6798 // Failed to clone iframe
6799 }
6800 return iframe.cloneNode(false);
6801 }
6802 async function cloneSingleNode(node, options) {
6803 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
6804 return cloneCanvasElement(node);
6805 }
6806 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
6807 return cloneVideoElement(node, options);
6808 }
6809 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
6810 return cloneIFrameElement(node, options);
6811 }
6812 return node.cloneNode(isSVGElement(node));
6813 }
6814 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
6815 const isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';
6816 async function cloneChildren(nativeNode, clonedNode, options) {
6817 var _a, _b;
6818 if (isSVGElement(clonedNode)) {
6819 return clonedNode;
6820 }
6821 let children = [];
6822 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
6823 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
6824 }
6825 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6826 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
6827 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
6828 }
6829 else {
6830 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
6831 }
6832 if (children.length === 0 ||
6833 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
6834 return clonedNode;
6835 }
6836 await children.reduce((deferred, child) => deferred
6837 .then(() => cloneNode(child, options))
6838 .then((clonedChild) => {
6839 if (clonedChild) {
6840 clonedNode.appendChild(clonedChild);
6841 }
6842 }), Promise.resolve());
6843 return clonedNode;
6844 }
6845 function cloneCSSStyle(nativeNode, clonedNode, options) {
6846 const targetStyle = clonedNode.style;
6847 if (!targetStyle) {
6848 return;
6849 }
6850 const sourceStyle = window.getComputedStyle(nativeNode);
6851 if (sourceStyle.cssText) {
6852 targetStyle.cssText = sourceStyle.cssText;
6853 targetStyle.transformOrigin = sourceStyle.transformOrigin;
6854 }
6855 else {
6856 (0,_util__WEBPACK_IMPORTED_MODULE_1__.getStyleProperties)(options).forEach((name) => {
6857 let value = sourceStyle.getPropertyValue(name);
6858 if (name === 'font-size' && value.endsWith('px')) {
6859 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6860 value = `${reducedFont}px`;
6861 }
6862 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6863 name === 'display' &&
6864 value === 'inline') {
6865 value = 'block';
6866 }
6867 if (name === 'd' && clonedNode.getAttribute('d')) {
6868 value = `path(${clonedNode.getAttribute('d')})`;
6869 }
6870 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6871 });
6872 }
6873 }
6874 function cloneInputValue(nativeNode, clonedNode) {
6875 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6876 clonedNode.innerHTML = nativeNode.value;
6877 }
6878 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6879 clonedNode.setAttribute('value', nativeNode.value);
6880 }
6881 }
6882 function cloneSelectValue(nativeNode, clonedNode) {
6883 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6884 const clonedSelect = clonedNode;
6885 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6886 if (selectedOption) {
6887 selectedOption.setAttribute('selected', '');
6888 }
6889 }
6890 }
6891 function decorate(nativeNode, clonedNode, options) {
6892 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6893 cloneCSSStyle(nativeNode, clonedNode, options);
6894 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode, options);
6895 cloneInputValue(nativeNode, clonedNode);
6896 cloneSelectValue(nativeNode, clonedNode);
6897 }
6898 return clonedNode;
6899 }
6900 async function ensureSVGSymbols(clone, options) {
6901 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6902 if (uses.length === 0) {
6903 return clone;
6904 }
6905 const processedDefs = {};
6906 for (let i = 0; i < uses.length; i++) {
6907 const use = uses[i];
6908 const id = use.getAttribute('xlink:href');
6909 if (id) {
6910 const exist = clone.querySelector(id);
6911 const definition = document.querySelector(id);
6912 if (!exist && definition && !processedDefs[id]) {
6913 // eslint-disable-next-line no-await-in-loop
6914 processedDefs[id] = (await cloneNode(definition, options, true));
6915 }
6916 }
6917 }
6918 const nodes = Object.values(processedDefs);
6919 if (nodes.length) {
6920 const ns = 'http://www.w3.org/1999/xhtml';
6921 const svg = document.createElementNS(ns, 'svg');
6922 svg.setAttribute('xmlns', ns);
6923 svg.style.position = 'absolute';
6924 svg.style.width = '0';
6925 svg.style.height = '0';
6926 svg.style.overflow = 'hidden';
6927 svg.style.display = 'none';
6928 const defs = document.createElementNS(ns, 'defs');
6929 svg.appendChild(defs);
6930 for (let i = 0; i < nodes.length; i++) {
6931 defs.appendChild(nodes[i]);
6932 }
6933 clone.appendChild(svg);
6934 }
6935 return clone;
6936 }
6937 async function cloneNode(node, options, isRoot) {
6938 if (!isRoot && options.filter && !options.filter(node)) {
6939 return null;
6940 }
6941 return Promise.resolve(node)
6942 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6943 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6944 .then((clonedNode) => decorate(node, clonedNode, options))
6945 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6946 }
6947 //# sourceMappingURL=clone-node.js.map
6948
6949 /***/ }),
6950
6951 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6952 /*!*********************************************************!*\
6953 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6954 \*********************************************************/
6955 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6956
6957 "use strict";
6958 __webpack_require__.r(__webpack_exports__);
6959 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6960 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6961 /* harmony export */ });
6962 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6963
6964 function formatCSSText(style) {
6965 const content = style.getPropertyValue('content');
6966 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6967 }
6968 function formatCSSProperties(style, options) {
6969 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.getStyleProperties)(options)
6970 .map((name) => {
6971 const value = style.getPropertyValue(name);
6972 const priority = style.getPropertyPriority(name);
6973 return `${name}: ${value}${priority ? ' !important' : ''};`;
6974 })
6975 .join(' ');
6976 }
6977 function getPseudoElementStyle(className, pseudo, style, options) {
6978 const selector = `.${className}:${pseudo}`;
6979 const cssText = style.cssText
6980 ? formatCSSText(style)
6981 : formatCSSProperties(style, options);
6982 return document.createTextNode(`${selector}{${cssText}}`);
6983 }
6984 function clonePseudoElement(nativeNode, clonedNode, pseudo, options) {
6985 const style = window.getComputedStyle(nativeNode, pseudo);
6986 const content = style.getPropertyValue('content');
6987 if (content === '' || content === 'none') {
6988 return;
6989 }
6990 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6991 try {
6992 clonedNode.className = `${clonedNode.className} ${className}`;
6993 }
6994 catch (err) {
6995 return;
6996 }
6997 const styleElement = document.createElement('style');
6998 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));
6999 clonedNode.appendChild(styleElement);
7000 }
7001 function clonePseudoElements(nativeNode, clonedNode, options) {
7002 clonePseudoElement(nativeNode, clonedNode, ':before', options);
7003 clonePseudoElement(nativeNode, clonedNode, ':after', options);
7004 }
7005 //# sourceMappingURL=clone-pseudos.js.map
7006
7007 /***/ }),
7008
7009 /***/ "../node_modules/html-to-image/es/dataurl.js":
7010 /*!***************************************************!*\
7011 !*** ../node_modules/html-to-image/es/dataurl.js ***!
7012 \***************************************************/
7013 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7014
7015 "use strict";
7016 __webpack_require__.r(__webpack_exports__);
7017 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7018 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
7019 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
7020 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
7021 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
7022 /* harmony export */ });
7023 function getContentFromDataUrl(dataURL) {
7024 return dataURL.split(/,/)[1];
7025 }
7026 function isDataUrl(url) {
7027 return url.search(/^(data:)/) !== -1;
7028 }
7029 function makeDataUrl(content, mimeType) {
7030 return `data:${mimeType};base64,${content}`;
7031 }
7032 async function fetchAsDataURL(url, init, process) {
7033 const res = await fetch(url, init);
7034 if (res.status === 404) {
7035 throw new Error(`Resource "${res.url}" not found`);
7036 }
7037 const blob = await res.blob();
7038 return new Promise((resolve, reject) => {
7039 const reader = new FileReader();
7040 reader.onerror = reject;
7041 reader.onloadend = () => {
7042 try {
7043 resolve(process({ res, result: reader.result }));
7044 }
7045 catch (error) {
7046 reject(error);
7047 }
7048 };
7049 reader.readAsDataURL(blob);
7050 });
7051 }
7052 const cache = {};
7053 function getCacheKey(url, contentType, includeQueryParams) {
7054 let key = url.replace(/\?.*/, '');
7055 if (includeQueryParams) {
7056 key = url;
7057 }
7058 // font resource
7059 if (/ttf|otf|eot|woff2?/i.test(key)) {
7060 key = key.replace(/.*\//, '');
7061 }
7062 return contentType ? `[${contentType}]${key}` : key;
7063 }
7064 async function resourceToDataURL(resourceUrl, contentType, options) {
7065 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
7066 if (cache[cacheKey] != null) {
7067 return cache[cacheKey];
7068 }
7069 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
7070 if (options.cacheBust) {
7071 // eslint-disable-next-line no-param-reassign
7072 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
7073 }
7074 let dataURL;
7075 try {
7076 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
7077 if (!contentType) {
7078 // eslint-disable-next-line no-param-reassign
7079 contentType = res.headers.get('Content-Type') || '';
7080 }
7081 return getContentFromDataUrl(result);
7082 });
7083 dataURL = makeDataUrl(content, contentType);
7084 }
7085 catch (error) {
7086 dataURL = options.imagePlaceholder || '';
7087 let msg = `Failed to fetch resource: ${resourceUrl}`;
7088 if (error) {
7089 msg = typeof error === 'string' ? error : error.message;
7090 }
7091 if (msg) {
7092 console.warn(msg);
7093 }
7094 }
7095 cache[cacheKey] = dataURL;
7096 return dataURL;
7097 }
7098 //# sourceMappingURL=dataurl.js.map
7099
7100 /***/ }),
7101
7102 /***/ "../node_modules/html-to-image/es/embed-images.js":
7103 /*!********************************************************!*\
7104 !*** ../node_modules/html-to-image/es/embed-images.js ***!
7105 \********************************************************/
7106 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7107
7108 "use strict";
7109 __webpack_require__.r(__webpack_exports__);
7110 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7111 /* harmony export */ embedImages: () => (/* binding */ embedImages)
7112 /* harmony export */ });
7113 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7114 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7115 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7116 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7117
7118
7119
7120
7121 async function embedProp(propName, node, options) {
7122 var _a;
7123 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
7124 if (propValue) {
7125 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
7126 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
7127 return true;
7128 }
7129 return false;
7130 }
7131 async function embedBackground(clonedNode, options) {
7132 ;
7133 (await embedProp('background', clonedNode, options)) ||
7134 (await embedProp('background-image', clonedNode, options));
7135 (await embedProp('mask', clonedNode, options)) ||
7136 (await embedProp('-webkit-mask', clonedNode, options)) ||
7137 (await embedProp('mask-image', clonedNode, options)) ||
7138 (await embedProp('-webkit-mask-image', clonedNode, options));
7139 }
7140 async function embedImageNode(clonedNode, options) {
7141 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
7142 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
7143 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
7144 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
7145 return;
7146 }
7147 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
7148 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
7149 await new Promise((resolve, reject) => {
7150 clonedNode.onload = resolve;
7151 clonedNode.onerror = options.onImageErrorHandler
7152 ? (...attributes) => {
7153 try {
7154 resolve(options.onImageErrorHandler(...attributes));
7155 }
7156 catch (error) {
7157 reject(error);
7158 }
7159 }
7160 : reject;
7161 const image = clonedNode;
7162 if (image.decode) {
7163 image.decode = resolve;
7164 }
7165 if (image.loading === 'lazy') {
7166 image.loading = 'eager';
7167 }
7168 if (isImageElement) {
7169 clonedNode.srcset = '';
7170 clonedNode.src = dataURL;
7171 }
7172 else {
7173 clonedNode.href.baseVal = dataURL;
7174 }
7175 });
7176 }
7177 async function embedChildren(clonedNode, options) {
7178 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
7179 const deferreds = children.map((child) => embedImages(child, options));
7180 await Promise.all(deferreds).then(() => clonedNode);
7181 }
7182 async function embedImages(clonedNode, options) {
7183 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
7184 await embedBackground(clonedNode, options);
7185 await embedImageNode(clonedNode, options);
7186 await embedChildren(clonedNode, options);
7187 }
7188 }
7189 //# sourceMappingURL=embed-images.js.map
7190
7191 /***/ }),
7192
7193 /***/ "../node_modules/html-to-image/es/embed-resources.js":
7194 /*!***********************************************************!*\
7195 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
7196 \***********************************************************/
7197 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7198
7199 "use strict";
7200 __webpack_require__.r(__webpack_exports__);
7201 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7202 /* harmony export */ embed: () => (/* binding */ embed),
7203 /* harmony export */ embedResources: () => (/* binding */ embedResources),
7204 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
7205 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
7206 /* harmony export */ });
7207 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7208 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7209 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7210
7211
7212
7213 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
7214 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
7215 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
7216 function toRegex(url) {
7217 // eslint-disable-next-line no-useless-escape
7218 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
7219 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
7220 }
7221 function parseURLs(cssText) {
7222 const urls = [];
7223 cssText.replace(URL_REGEX, (raw, quotation, url) => {
7224 urls.push(url);
7225 return raw;
7226 });
7227 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
7228 }
7229 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
7230 try {
7231 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
7232 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
7233 let dataURL;
7234 if (getContentFromUrl) {
7235 const content = await getContentFromUrl(resolvedURL);
7236 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
7237 }
7238 else {
7239 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
7240 }
7241 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
7242 }
7243 catch (error) {
7244 // pass
7245 }
7246 return cssText;
7247 }
7248 function filterPreferredFontFormat(str, { preferredFontFormat }) {
7249 return !preferredFontFormat
7250 ? str
7251 : str.replace(FONT_SRC_REGEX, (match) => {
7252 // eslint-disable-next-line no-constant-condition
7253 while (true) {
7254 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
7255 if (!format) {
7256 return '';
7257 }
7258 if (format === preferredFontFormat) {
7259 return `src: ${src};`;
7260 }
7261 }
7262 });
7263 }
7264 function shouldEmbed(url) {
7265 return url.search(URL_REGEX) !== -1;
7266 }
7267 async function embedResources(cssText, baseUrl, options) {
7268 if (!shouldEmbed(cssText)) {
7269 return cssText;
7270 }
7271 const filteredCSSText = filterPreferredFontFormat(cssText, options);
7272 const urls = parseURLs(filteredCSSText);
7273 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
7274 }
7275 //# sourceMappingURL=embed-resources.js.map
7276
7277 /***/ }),
7278
7279 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
7280 /*!**********************************************************!*\
7281 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
7282 \**********************************************************/
7283 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7284
7285 "use strict";
7286 __webpack_require__.r(__webpack_exports__);
7287 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7288 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
7289 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
7290 /* harmony export */ });
7291 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7292 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7293 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7294
7295
7296
7297 const cssFetchCache = {};
7298 async function fetchCSS(url) {
7299 let cache = cssFetchCache[url];
7300 if (cache != null) {
7301 return cache;
7302 }
7303 const res = await fetch(url);
7304 const cssText = await res.text();
7305 cache = { url, cssText };
7306 cssFetchCache[url] = cache;
7307 return cache;
7308 }
7309 async function embedFonts(data, options) {
7310 let cssText = data.cssText;
7311 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
7312 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
7313 const loadFonts = fontLocs.map(async (loc) => {
7314 let url = loc.replace(regexUrl, '$1');
7315 if (!url.startsWith('https://')) {
7316 url = new URL(url, data.url).href;
7317 }
7318 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
7319 cssText = cssText.replace(loc, `url(${result})`);
7320 return [loc, result];
7321 });
7322 });
7323 return Promise.all(loadFonts).then(() => cssText);
7324 }
7325 function parseCSS(source) {
7326 if (source == null) {
7327 return [];
7328 }
7329 const result = [];
7330 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
7331 // strip out comments
7332 let cssText = source.replace(commentsRegex, '');
7333 // eslint-disable-next-line prefer-regex-literals
7334 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
7335 // eslint-disable-next-line no-constant-condition
7336 while (true) {
7337 const matches = keyframesRegex.exec(cssText);
7338 if (matches === null) {
7339 break;
7340 }
7341 result.push(matches[0]);
7342 }
7343 cssText = cssText.replace(keyframesRegex, '');
7344 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
7345 // to match css & media queries together
7346 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
7347 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
7348 // unified regex
7349 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
7350 // eslint-disable-next-line no-constant-condition
7351 while (true) {
7352 let matches = importRegex.exec(cssText);
7353 if (matches === null) {
7354 matches = unifiedRegex.exec(cssText);
7355 if (matches === null) {
7356 break;
7357 }
7358 else {
7359 importRegex.lastIndex = unifiedRegex.lastIndex;
7360 }
7361 }
7362 else {
7363 unifiedRegex.lastIndex = importRegex.lastIndex;
7364 }
7365 result.push(matches[0]);
7366 }
7367 return result;
7368 }
7369 async function getCSSRules(styleSheets, options) {
7370 const ret = [];
7371 const deferreds = [];
7372 // First loop inlines imports
7373 styleSheets.forEach((sheet) => {
7374 if ('cssRules' in sheet) {
7375 try {
7376 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
7377 if (item.type === CSSRule.IMPORT_RULE) {
7378 let importIndex = index + 1;
7379 const url = item.href;
7380 const deferred = fetchCSS(url)
7381 .then((metadata) => embedFonts(metadata, options))
7382 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7383 try {
7384 sheet.insertRule(rule, rule.startsWith('@import')
7385 ? (importIndex += 1)
7386 : sheet.cssRules.length);
7387 }
7388 catch (error) {
7389 console.error('Error inserting rule from remote css', {
7390 rule,
7391 error,
7392 });
7393 }
7394 }))
7395 .catch((e) => {
7396 console.error('Error loading remote css', e.toString());
7397 });
7398 deferreds.push(deferred);
7399 }
7400 });
7401 }
7402 catch (e) {
7403 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
7404 if (sheet.href != null) {
7405 deferreds.push(fetchCSS(sheet.href)
7406 .then((metadata) => embedFonts(metadata, options))
7407 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7408 inline.insertRule(rule, inline.cssRules.length);
7409 }))
7410 .catch((err) => {
7411 console.error('Error loading remote stylesheet', err);
7412 }));
7413 }
7414 console.error('Error inlining remote css file', e);
7415 }
7416 }
7417 });
7418 return Promise.all(deferreds).then(() => {
7419 // Second loop parses rules
7420 styleSheets.forEach((sheet) => {
7421 if ('cssRules' in sheet) {
7422 try {
7423 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
7424 ret.push(item);
7425 });
7426 }
7427 catch (e) {
7428 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
7429 }
7430 }
7431 });
7432 return ret;
7433 });
7434 }
7435 function getWebFontRules(cssRules) {
7436 return cssRules
7437 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
7438 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
7439 }
7440 async function parseWebFontRules(node, options) {
7441 if (node.ownerDocument == null) {
7442 throw new Error('Provided element is not within a Document');
7443 }
7444 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
7445 const cssRules = await getCSSRules(styleSheets, options);
7446 return getWebFontRules(cssRules);
7447 }
7448 function normalizeFontFamily(font) {
7449 return font.trim().replace(/["']/g, '');
7450 }
7451 function getUsedFonts(node) {
7452 const fonts = new Set();
7453 function traverse(node) {
7454 const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;
7455 fontFamily.split(',').forEach((font) => {
7456 fonts.add(normalizeFontFamily(font));
7457 });
7458 Array.from(node.children).forEach((child) => {
7459 if (child instanceof HTMLElement) {
7460 traverse(child);
7461 }
7462 });
7463 }
7464 traverse(node);
7465 return fonts;
7466 }
7467 async function getWebFontCSS(node, options) {
7468 const rules = await parseWebFontRules(node, options);
7469 const usedFonts = getUsedFonts(node);
7470 const cssTexts = await Promise.all(rules
7471 .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))
7472 .map((rule) => {
7473 const baseUrl = rule.parentStyleSheet
7474 ? rule.parentStyleSheet.href
7475 : null;
7476 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
7477 }));
7478 return cssTexts.join('\n');
7479 }
7480 async function embedWebFonts(clonedNode, options) {
7481 const cssText = options.fontEmbedCSS != null
7482 ? options.fontEmbedCSS
7483 : options.skipFonts
7484 ? null
7485 : await getWebFontCSS(clonedNode, options);
7486 if (cssText) {
7487 const styleNode = document.createElement('style');
7488 const sytleContent = document.createTextNode(cssText);
7489 styleNode.appendChild(sytleContent);
7490 if (clonedNode.firstChild) {
7491 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
7492 }
7493 else {
7494 clonedNode.appendChild(styleNode);
7495 }
7496 }
7497 }
7498 //# sourceMappingURL=embed-webfonts.js.map
7499
7500 /***/ }),
7501
7502 /***/ "../node_modules/html-to-image/es/index.js":
7503 /*!*************************************************!*\
7504 !*** ../node_modules/html-to-image/es/index.js ***!
7505 \*************************************************/
7506 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7507
7508 "use strict";
7509 __webpack_require__.r(__webpack_exports__);
7510 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7511 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
7512 /* harmony export */ toBlob: () => (/* binding */ toBlob),
7513 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
7514 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
7515 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
7516 /* harmony export */ toPng: () => (/* binding */ toPng),
7517 /* harmony export */ toSvg: () => (/* binding */ toSvg)
7518 /* harmony export */ });
7519 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
7520 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
7521 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
7522 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
7523 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7524
7525
7526
7527
7528
7529 async function toSvg(node, options = {}) {
7530 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7531 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
7532 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
7533 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
7534 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
7535 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
7536 return datauri;
7537 }
7538 async function toCanvas(node, options = {}) {
7539 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7540 const svg = await toSvg(node, options);
7541 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
7542 const canvas = document.createElement('canvas');
7543 const context = canvas.getContext('2d');
7544 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
7545 const canvasWidth = options.canvasWidth || width;
7546 const canvasHeight = options.canvasHeight || height;
7547 canvas.width = canvasWidth * ratio;
7548 canvas.height = canvasHeight * ratio;
7549 if (!options.skipAutoScale) {
7550 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
7551 }
7552 canvas.style.width = `${canvasWidth}`;
7553 canvas.style.height = `${canvasHeight}`;
7554 if (options.backgroundColor) {
7555 context.fillStyle = options.backgroundColor;
7556 context.fillRect(0, 0, canvas.width, canvas.height);
7557 }
7558 context.drawImage(img, 0, 0, canvas.width, canvas.height);
7559 return canvas;
7560 }
7561 async function toPixelData(node, options = {}) {
7562 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7563 const canvas = await toCanvas(node, options);
7564 const ctx = canvas.getContext('2d');
7565 return ctx.getImageData(0, 0, width, height).data;
7566 }
7567 async function toPng(node, options = {}) {
7568 const canvas = await toCanvas(node, options);
7569 return canvas.toDataURL();
7570 }
7571 async function toJpeg(node, options = {}) {
7572 const canvas = await toCanvas(node, options);
7573 return canvas.toDataURL('image/jpeg', options.quality || 1);
7574 }
7575 async function toBlob(node, options = {}) {
7576 const canvas = await toCanvas(node, options);
7577 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
7578 return blob;
7579 }
7580 async function getFontEmbedCSS(node, options = {}) {
7581 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
7582 }
7583 //# sourceMappingURL=index.js.map
7584
7585 /***/ }),
7586
7587 /***/ "../node_modules/html-to-image/es/mimes.js":
7588 /*!*************************************************!*\
7589 !*** ../node_modules/html-to-image/es/mimes.js ***!
7590 \*************************************************/
7591 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7592
7593 "use strict";
7594 __webpack_require__.r(__webpack_exports__);
7595 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7596 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
7597 /* harmony export */ });
7598 const WOFF = 'application/font-woff';
7599 const JPEG = 'image/jpeg';
7600 const mimes = {
7601 woff: WOFF,
7602 woff2: WOFF,
7603 ttf: 'application/font-truetype',
7604 eot: 'application/vnd.ms-fontobject',
7605 png: 'image/png',
7606 jpg: JPEG,
7607 jpeg: JPEG,
7608 gif: 'image/gif',
7609 tiff: 'image/tiff',
7610 svg: 'image/svg+xml',
7611 webp: 'image/webp',
7612 };
7613 function getExtension(url) {
7614 const match = /\.([^./]*?)$/g.exec(url);
7615 return match ? match[1] : '';
7616 }
7617 function getMimeType(url) {
7618 const extension = getExtension(url).toLowerCase();
7619 return mimes[extension] || '';
7620 }
7621 //# sourceMappingURL=mimes.js.map
7622
7623 /***/ }),
7624
7625 /***/ "../node_modules/html-to-image/es/util.js":
7626 /*!************************************************!*\
7627 !*** ../node_modules/html-to-image/es/util.js ***!
7628 \************************************************/
7629 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7630
7631 "use strict";
7632 __webpack_require__.r(__webpack_exports__);
7633 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7634 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
7635 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
7636 /* harmony export */ createImage: () => (/* binding */ createImage),
7637 /* harmony export */ delay: () => (/* binding */ delay),
7638 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
7639 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
7640 /* harmony export */ getStyleProperties: () => (/* binding */ getStyleProperties),
7641 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
7642 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
7643 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
7644 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
7645 /* harmony export */ toArray: () => (/* binding */ toArray),
7646 /* harmony export */ uuid: () => (/* binding */ uuid)
7647 /* harmony export */ });
7648 function resolveUrl(url, baseUrl) {
7649 // url is absolute already
7650 if (url.match(/^[a-z]+:\/\//i)) {
7651 return url;
7652 }
7653 // url is absolute already, without protocol
7654 if (url.match(/^\/\//)) {
7655 return window.location.protocol + url;
7656 }
7657 // dataURI, mailto:, tel:, etc.
7658 if (url.match(/^[a-z]+:/i)) {
7659 return url;
7660 }
7661 const doc = document.implementation.createHTMLDocument();
7662 const base = doc.createElement('base');
7663 const a = doc.createElement('a');
7664 doc.head.appendChild(base);
7665 doc.body.appendChild(a);
7666 if (baseUrl) {
7667 base.href = baseUrl;
7668 }
7669 a.href = url;
7670 return a.href;
7671 }
7672 const uuid = (() => {
7673 // generate uuid for className of pseudo elements.
7674 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
7675 let counter = 0;
7676 // ref: http://stackoverflow.com/a/6248722/2519373
7677 const random = () =>
7678 // eslint-disable-next-line no-bitwise
7679 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
7680 return () => {
7681 counter += 1;
7682 return `u${random()}${counter}`;
7683 };
7684 })();
7685 function delay(ms) {
7686 return (args) => new Promise((resolve) => {
7687 setTimeout(() => resolve(args), ms);
7688 });
7689 }
7690 function toArray(arrayLike) {
7691 const arr = [];
7692 for (let i = 0, l = arrayLike.length; i < l; i++) {
7693 arr.push(arrayLike[i]);
7694 }
7695 return arr;
7696 }
7697 let styleProps = null;
7698 function getStyleProperties(options = {}) {
7699 if (styleProps) {
7700 return styleProps;
7701 }
7702 if (options.includeStyleProperties) {
7703 styleProps = options.includeStyleProperties;
7704 return styleProps;
7705 }
7706 styleProps = toArray(window.getComputedStyle(document.documentElement));
7707 return styleProps;
7708 }
7709 function px(node, styleProperty) {
7710 const win = node.ownerDocument.defaultView || window;
7711 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
7712 return val ? parseFloat(val.replace('px', '')) : 0;
7713 }
7714 function getNodeWidth(node) {
7715 const leftBorder = px(node, 'border-left-width');
7716 const rightBorder = px(node, 'border-right-width');
7717 return node.clientWidth + leftBorder + rightBorder;
7718 }
7719 function getNodeHeight(node) {
7720 const topBorder = px(node, 'border-top-width');
7721 const bottomBorder = px(node, 'border-bottom-width');
7722 return node.clientHeight + topBorder + bottomBorder;
7723 }
7724 function getImageSize(targetNode, options = {}) {
7725 const width = options.width || getNodeWidth(targetNode);
7726 const height = options.height || getNodeHeight(targetNode);
7727 return { width, height };
7728 }
7729 function getPixelRatio() {
7730 let ratio;
7731 let FINAL_PROCESS;
7732 try {
7733 FINAL_PROCESS = process;
7734 }
7735 catch (e) {
7736 // pass
7737 }
7738 const val = FINAL_PROCESS && FINAL_PROCESS.env
7739 ? FINAL_PROCESS.env.devicePixelRatio
7740 : null;
7741 if (val) {
7742 ratio = parseInt(val, 10);
7743 if (Number.isNaN(ratio)) {
7744 ratio = 1;
7745 }
7746 }
7747 return ratio || window.devicePixelRatio || 1;
7748 }
7749 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
7750 const canvasDimensionLimit = 16384;
7751 function checkCanvasDimensions(canvas) {
7752 if (canvas.width > canvasDimensionLimit ||
7753 canvas.height > canvasDimensionLimit) {
7754 if (canvas.width > canvasDimensionLimit &&
7755 canvas.height > canvasDimensionLimit) {
7756 if (canvas.width > canvas.height) {
7757 canvas.height *= canvasDimensionLimit / canvas.width;
7758 canvas.width = canvasDimensionLimit;
7759 }
7760 else {
7761 canvas.width *= canvasDimensionLimit / canvas.height;
7762 canvas.height = canvasDimensionLimit;
7763 }
7764 }
7765 else if (canvas.width > canvasDimensionLimit) {
7766 canvas.height *= canvasDimensionLimit / canvas.width;
7767 canvas.width = canvasDimensionLimit;
7768 }
7769 else {
7770 canvas.width *= canvasDimensionLimit / canvas.height;
7771 canvas.height = canvasDimensionLimit;
7772 }
7773 }
7774 }
7775 function canvasToBlob(canvas, options = {}) {
7776 if (canvas.toBlob) {
7777 return new Promise((resolve) => {
7778 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
7779 });
7780 }
7781 return new Promise((resolve) => {
7782 const binaryString = window.atob(canvas
7783 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
7784 .split(',')[1]);
7785 const len = binaryString.length;
7786 const binaryArray = new Uint8Array(len);
7787 for (let i = 0; i < len; i += 1) {
7788 binaryArray[i] = binaryString.charCodeAt(i);
7789 }
7790 resolve(new Blob([binaryArray], {
7791 type: options.type ? options.type : 'image/png',
7792 }));
7793 });
7794 }
7795 function createImage(url) {
7796 return new Promise((resolve, reject) => {
7797 const img = new Image();
7798 img.onload = () => {
7799 img.decode().then(() => {
7800 requestAnimationFrame(() => resolve(img));
7801 });
7802 };
7803 img.onerror = reject;
7804 img.crossOrigin = 'anonymous';
7805 img.decoding = 'async';
7806 img.src = url;
7807 });
7808 }
7809 async function svgToDataURL(svg) {
7810 return Promise.resolve()
7811 .then(() => new XMLSerializer().serializeToString(svg))
7812 .then(encodeURIComponent)
7813 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
7814 }
7815 async function nodeToDataURL(node, width, height) {
7816 const xmlns = 'http://www.w3.org/2000/svg';
7817 const svg = document.createElementNS(xmlns, 'svg');
7818 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
7819 svg.setAttribute('width', `${width}`);
7820 svg.setAttribute('height', `${height}`);
7821 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
7822 foreignObject.setAttribute('width', '100%');
7823 foreignObject.setAttribute('height', '100%');
7824 foreignObject.setAttribute('x', '0');
7825 foreignObject.setAttribute('y', '0');
7826 foreignObject.setAttribute('externalResourcesRequired', 'true');
7827 svg.appendChild(foreignObject);
7828 foreignObject.appendChild(node);
7829 return svgToDataURL(svg);
7830 }
7831 const isInstanceOfElement = (node, instance) => {
7832 if (node instanceof instance)
7833 return true;
7834 const nodePrototype = Object.getPrototypeOf(node);
7835 if (nodePrototype === null)
7836 return false;
7837 return (nodePrototype.constructor.name === instance.name ||
7838 isInstanceOfElement(nodePrototype, instance));
7839 };
7840 //# sourceMappingURL=util.js.map
7841
7842 /***/ }),
7843
7844 /***/ "../node_modules/object-assign/index.js":
7845 /*!**********************************************!*\
7846 !*** ../node_modules/object-assign/index.js ***!
7847 \**********************************************/
7848 /***/ ((module) => {
7849
7850 "use strict";
7851 /*
7852 object-assign
7853 (c) Sindre Sorhus
7854 @license MIT
7855 */
7856
7857
7858 /* eslint-disable no-unused-vars */
7859 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7860 var hasOwnProperty = Object.prototype.hasOwnProperty;
7861 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7862
7863 function toObject(val) {
7864 if (val === null || val === undefined) {
7865 throw new TypeError('Object.assign cannot be called with null or undefined');
7866 }
7867
7868 return Object(val);
7869 }
7870
7871 function shouldUseNative() {
7872 try {
7873 if (!Object.assign) {
7874 return false;
7875 }
7876
7877 // Detect buggy property enumeration order in older V8 versions.
7878
7879 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7880 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7881 test1[5] = 'de';
7882 if (Object.getOwnPropertyNames(test1)[0] === '5') {
7883 return false;
7884 }
7885
7886 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7887 var test2 = {};
7888 for (var i = 0; i < 10; i++) {
7889 test2['_' + String.fromCharCode(i)] = i;
7890 }
7891 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7892 return test2[n];
7893 });
7894 if (order2.join('') !== '0123456789') {
7895 return false;
7896 }
7897
7898 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7899 var test3 = {};
7900 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7901 test3[letter] = letter;
7902 });
7903 if (Object.keys(Object.assign({}, test3)).join('') !==
7904 'abcdefghijklmnopqrst') {
7905 return false;
7906 }
7907
7908 return true;
7909 } catch (err) {
7910 // We don't expect any of the above to throw, but better to be safe.
7911 return false;
7912 }
7913 }
7914
7915 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7916 var from;
7917 var to = toObject(target);
7918 var symbols;
7919
7920 for (var s = 1; s < arguments.length; s++) {
7921 from = Object(arguments[s]);
7922
7923 for (var key in from) {
7924 if (hasOwnProperty.call(from, key)) {
7925 to[key] = from[key];
7926 }
7927 }
7928
7929 if (getOwnPropertySymbols) {
7930 symbols = getOwnPropertySymbols(from);
7931 for (var i = 0; i < symbols.length; i++) {
7932 if (propIsEnumerable.call(from, symbols[i])) {
7933 to[symbols[i]] = from[symbols[i]];
7934 }
7935 }
7936 }
7937 }
7938
7939 return to;
7940 };
7941
7942
7943 /***/ }),
7944
7945 /***/ "../node_modules/prop-types/checkPropTypes.js":
7946 /*!****************************************************!*\
7947 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7948 \****************************************************/
7949 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7950
7951 "use strict";
7952 /**
7953 * Copyright (c) 2013-present, Facebook, Inc.
7954 *
7955 * This source code is licensed under the MIT license found in the
7956 * LICENSE file in the root directory of this source tree.
7957 */
7958
7959
7960
7961 var printWarning = function() {};
7962
7963 if (true) {
7964 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7965 var loggedTypeFailures = {};
7966 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7967
7968 printWarning = function(text) {
7969 var message = 'Warning: ' + text;
7970 if (typeof console !== 'undefined') {
7971 console.error(message);
7972 }
7973 try {
7974 // --- Welcome to debugging React ---
7975 // This error was thrown as a convenience so that you can use this stack
7976 // to find the callsite that caused this warning to fire.
7977 throw new Error(message);
7978 } catch (x) { /**/ }
7979 };
7980 }
7981
7982 /**
7983 * Assert that the values match with the type specs.
7984 * Error messages are memorized and will only be shown once.
7985 *
7986 * @param {object} typeSpecs Map of name to a ReactPropType
7987 * @param {object} values Runtime values that need to be type-checked
7988 * @param {string} location e.g. "prop", "context", "child context"
7989 * @param {string} componentName Name of the component for error messages.
7990 * @param {?Function} getStack Returns the component stack.
7991 * @private
7992 */
7993 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7994 if (true) {
7995 for (var typeSpecName in typeSpecs) {
7996 if (has(typeSpecs, typeSpecName)) {
7997 var error;
7998 // Prop type validation may throw. In case they do, we don't want to
7999 // fail the render phase where it didn't fail before. So we log it.
8000 // After these have been cleaned up, we'll let them throw.
8001 try {
8002 // This is intentionally an invariant that gets caught. It's the same
8003 // behavior as without this statement except with a better message.
8004 if (typeof typeSpecs[typeSpecName] !== 'function') {
8005 var err = Error(
8006 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
8007 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
8008 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
8009 );
8010 err.name = 'Invariant Violation';
8011 throw err;
8012 }
8013 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8014 } catch (ex) {
8015 error = ex;
8016 }
8017 if (error && !(error instanceof Error)) {
8018 printWarning(
8019 (componentName || 'React class') + ': type specification of ' +
8020 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
8021 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
8022 'You may have forgotten to pass an argument to the type checker ' +
8023 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
8024 'shape all require an argument).'
8025 );
8026 }
8027 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8028 // Only monitor this failure once because there tends to be a lot of the
8029 // same error.
8030 loggedTypeFailures[error.message] = true;
8031
8032 var stack = getStack ? getStack() : '';
8033
8034 printWarning(
8035 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8036 );
8037 }
8038 }
8039 }
8040 }
8041 }
8042
8043 /**
8044 * Resets warning cache when testing.
8045 *
8046 * @private
8047 */
8048 checkPropTypes.resetWarningCache = function() {
8049 if (true) {
8050 loggedTypeFailures = {};
8051 }
8052 }
8053
8054 module.exports = checkPropTypes;
8055
8056
8057 /***/ }),
8058
8059 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
8060 /*!*************************************************************!*\
8061 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
8062 \*************************************************************/
8063 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8064
8065 "use strict";
8066 /**
8067 * Copyright (c) 2013-present, Facebook, Inc.
8068 *
8069 * This source code is licensed under the MIT license found in the
8070 * LICENSE file in the root directory of this source tree.
8071 */
8072
8073
8074
8075 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8076 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
8077
8078 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
8079 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
8080 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
8081
8082 var printWarning = function() {};
8083
8084 if (true) {
8085 printWarning = function(text) {
8086 var message = 'Warning: ' + text;
8087 if (typeof console !== 'undefined') {
8088 console.error(message);
8089 }
8090 try {
8091 // --- Welcome to debugging React ---
8092 // This error was thrown as a convenience so that you can use this stack
8093 // to find the callsite that caused this warning to fire.
8094 throw new Error(message);
8095 } catch (x) {}
8096 };
8097 }
8098
8099 function emptyFunctionThatReturnsNull() {
8100 return null;
8101 }
8102
8103 module.exports = function(isValidElement, throwOnDirectAccess) {
8104 /* global Symbol */
8105 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8106 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8107
8108 /**
8109 * Returns the iterator method function contained on the iterable object.
8110 *
8111 * Be sure to invoke the function with the iterable as context:
8112 *
8113 * var iteratorFn = getIteratorFn(myIterable);
8114 * if (iteratorFn) {
8115 * var iterator = iteratorFn.call(myIterable);
8116 * ...
8117 * }
8118 *
8119 * @param {?object} maybeIterable
8120 * @return {?function}
8121 */
8122 function getIteratorFn(maybeIterable) {
8123 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8124 if (typeof iteratorFn === 'function') {
8125 return iteratorFn;
8126 }
8127 }
8128
8129 /**
8130 * Collection of methods that allow declaration and validation of props that are
8131 * supplied to React components. Example usage:
8132 *
8133 * var Props = require('ReactPropTypes');
8134 * var MyArticle = React.createClass({
8135 * propTypes: {
8136 * // An optional string prop named "description".
8137 * description: Props.string,
8138 *
8139 * // A required enum prop named "category".
8140 * category: Props.oneOf(['News','Photos']).isRequired,
8141 *
8142 * // A prop named "dialog" that requires an instance of Dialog.
8143 * dialog: Props.instanceOf(Dialog).isRequired
8144 * },
8145 * render: function() { ... }
8146 * });
8147 *
8148 * A more formal specification of how these methods are used:
8149 *
8150 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8151 * decl := ReactPropTypes.{type}(.isRequired)?
8152 *
8153 * Each and every declaration produces a function with the same signature. This
8154 * allows the creation of custom validation functions. For example:
8155 *
8156 * var MyLink = React.createClass({
8157 * propTypes: {
8158 * // An optional string or URI prop named "href".
8159 * href: function(props, propName, componentName) {
8160 * var propValue = props[propName];
8161 * if (propValue != null && typeof propValue !== 'string' &&
8162 * !(propValue instanceof URI)) {
8163 * return new Error(
8164 * 'Expected a string or an URI for ' + propName + ' in ' +
8165 * componentName
8166 * );
8167 * }
8168 * }
8169 * },
8170 * render: function() {...}
8171 * });
8172 *
8173 * @internal
8174 */
8175
8176 var ANONYMOUS = '<<anonymous>>';
8177
8178 // Important!
8179 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8180 var ReactPropTypes = {
8181 array: createPrimitiveTypeChecker('array'),
8182 bigint: createPrimitiveTypeChecker('bigint'),
8183 bool: createPrimitiveTypeChecker('boolean'),
8184 func: createPrimitiveTypeChecker('function'),
8185 number: createPrimitiveTypeChecker('number'),
8186 object: createPrimitiveTypeChecker('object'),
8187 string: createPrimitiveTypeChecker('string'),
8188 symbol: createPrimitiveTypeChecker('symbol'),
8189
8190 any: createAnyTypeChecker(),
8191 arrayOf: createArrayOfTypeChecker,
8192 element: createElementTypeChecker(),
8193 elementType: createElementTypeTypeChecker(),
8194 instanceOf: createInstanceTypeChecker,
8195 node: createNodeChecker(),
8196 objectOf: createObjectOfTypeChecker,
8197 oneOf: createEnumTypeChecker,
8198 oneOfType: createUnionTypeChecker,
8199 shape: createShapeTypeChecker,
8200 exact: createStrictShapeTypeChecker,
8201 };
8202
8203 /**
8204 * inlined Object.is polyfill to avoid requiring consumers ship their own
8205 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8206 */
8207 /*eslint-disable no-self-compare*/
8208 function is(x, y) {
8209 // SameValue algorithm
8210 if (x === y) {
8211 // Steps 1-5, 7-10
8212 // Steps 6.b-6.e: +0 != -0
8213 return x !== 0 || 1 / x === 1 / y;
8214 } else {
8215 // Step 6.a: NaN == NaN
8216 return x !== x && y !== y;
8217 }
8218 }
8219 /*eslint-enable no-self-compare*/
8220
8221 /**
8222 * We use an Error-like object for backward compatibility as people may call
8223 * PropTypes directly and inspect their output. However, we don't use real
8224 * Errors anymore. We don't inspect their stack anyway, and creating them
8225 * is prohibitively expensive if they are created too often, such as what
8226 * happens in oneOfType() for any type before the one that matched.
8227 */
8228 function PropTypeError(message, data) {
8229 this.message = message;
8230 this.data = data && typeof data === 'object' ? data: {};
8231 this.stack = '';
8232 }
8233 // Make `instanceof Error` still work for returned errors.
8234 PropTypeError.prototype = Error.prototype;
8235
8236 function createChainableTypeChecker(validate) {
8237 if (true) {
8238 var manualPropTypeCallCache = {};
8239 var manualPropTypeWarningCount = 0;
8240 }
8241 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8242 componentName = componentName || ANONYMOUS;
8243 propFullName = propFullName || propName;
8244
8245 if (secret !== ReactPropTypesSecret) {
8246 if (throwOnDirectAccess) {
8247 // New behavior only for users of `prop-types` package
8248 var err = new Error(
8249 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8250 'Use `PropTypes.checkPropTypes()` to call them. ' +
8251 'Read more at http://fb.me/use-check-prop-types'
8252 );
8253 err.name = 'Invariant Violation';
8254 throw err;
8255 } else if ( true && typeof console !== 'undefined') {
8256 // Old behavior for people using React.PropTypes
8257 var cacheKey = componentName + ':' + propName;
8258 if (
8259 !manualPropTypeCallCache[cacheKey] &&
8260 // Avoid spamming the console because they are often not actionable except for lib authors
8261 manualPropTypeWarningCount < 3
8262 ) {
8263 printWarning(
8264 'You are manually calling a React.PropTypes validation ' +
8265 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8266 'and will throw in the standalone `prop-types` package. ' +
8267 'You may be seeing this warning due to a third-party PropTypes ' +
8268 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8269 );
8270 manualPropTypeCallCache[cacheKey] = true;
8271 manualPropTypeWarningCount++;
8272 }
8273 }
8274 }
8275 if (props[propName] == null) {
8276 if (isRequired) {
8277 if (props[propName] === null) {
8278 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8279 }
8280 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8281 }
8282 return null;
8283 } else {
8284 return validate(props, propName, componentName, location, propFullName);
8285 }
8286 }
8287
8288 var chainedCheckType = checkType.bind(null, false);
8289 chainedCheckType.isRequired = checkType.bind(null, true);
8290
8291 return chainedCheckType;
8292 }
8293
8294 function createPrimitiveTypeChecker(expectedType) {
8295 function validate(props, propName, componentName, location, propFullName, secret) {
8296 var propValue = props[propName];
8297 var propType = getPropType(propValue);
8298 if (propType !== expectedType) {
8299 // `propValue` being instance of, say, date/regexp, pass the 'object'
8300 // check, but we can offer a more precise error message here rather than
8301 // 'of type `object`'.
8302 var preciseType = getPreciseType(propValue);
8303
8304 return new PropTypeError(
8305 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8306 {expectedType: expectedType}
8307 );
8308 }
8309 return null;
8310 }
8311 return createChainableTypeChecker(validate);
8312 }
8313
8314 function createAnyTypeChecker() {
8315 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8316 }
8317
8318 function createArrayOfTypeChecker(typeChecker) {
8319 function validate(props, propName, componentName, location, propFullName) {
8320 if (typeof typeChecker !== 'function') {
8321 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8322 }
8323 var propValue = props[propName];
8324 if (!Array.isArray(propValue)) {
8325 var propType = getPropType(propValue);
8326 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8327 }
8328 for (var i = 0; i < propValue.length; i++) {
8329 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8330 if (error instanceof Error) {
8331 return error;
8332 }
8333 }
8334 return null;
8335 }
8336 return createChainableTypeChecker(validate);
8337 }
8338
8339 function createElementTypeChecker() {
8340 function validate(props, propName, componentName, location, propFullName) {
8341 var propValue = props[propName];
8342 if (!isValidElement(propValue)) {
8343 var propType = getPropType(propValue);
8344 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8345 }
8346 return null;
8347 }
8348 return createChainableTypeChecker(validate);
8349 }
8350
8351 function createElementTypeTypeChecker() {
8352 function validate(props, propName, componentName, location, propFullName) {
8353 var propValue = props[propName];
8354 if (!ReactIs.isValidElementType(propValue)) {
8355 var propType = getPropType(propValue);
8356 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8357 }
8358 return null;
8359 }
8360 return createChainableTypeChecker(validate);
8361 }
8362
8363 function createInstanceTypeChecker(expectedClass) {
8364 function validate(props, propName, componentName, location, propFullName) {
8365 if (!(props[propName] instanceof expectedClass)) {
8366 var expectedClassName = expectedClass.name || ANONYMOUS;
8367 var actualClassName = getClassName(props[propName]);
8368 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8369 }
8370 return null;
8371 }
8372 return createChainableTypeChecker(validate);
8373 }
8374
8375 function createEnumTypeChecker(expectedValues) {
8376 if (!Array.isArray(expectedValues)) {
8377 if (true) {
8378 if (arguments.length > 1) {
8379 printWarning(
8380 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8381 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8382 );
8383 } else {
8384 printWarning('Invalid argument supplied to oneOf, expected an array.');
8385 }
8386 }
8387 return emptyFunctionThatReturnsNull;
8388 }
8389
8390 function validate(props, propName, componentName, location, propFullName) {
8391 var propValue = props[propName];
8392 for (var i = 0; i < expectedValues.length; i++) {
8393 if (is(propValue, expectedValues[i])) {
8394 return null;
8395 }
8396 }
8397
8398 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8399 var type = getPreciseType(value);
8400 if (type === 'symbol') {
8401 return String(value);
8402 }
8403 return value;
8404 });
8405 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8406 }
8407 return createChainableTypeChecker(validate);
8408 }
8409
8410 function createObjectOfTypeChecker(typeChecker) {
8411 function validate(props, propName, componentName, location, propFullName) {
8412 if (typeof typeChecker !== 'function') {
8413 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8414 }
8415 var propValue = props[propName];
8416 var propType = getPropType(propValue);
8417 if (propType !== 'object') {
8418 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8419 }
8420 for (var key in propValue) {
8421 if (has(propValue, key)) {
8422 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8423 if (error instanceof Error) {
8424 return error;
8425 }
8426 }
8427 }
8428 return null;
8429 }
8430 return createChainableTypeChecker(validate);
8431 }
8432
8433 function createUnionTypeChecker(arrayOfTypeCheckers) {
8434 if (!Array.isArray(arrayOfTypeCheckers)) {
8435 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
8436 return emptyFunctionThatReturnsNull;
8437 }
8438
8439 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8440 var checker = arrayOfTypeCheckers[i];
8441 if (typeof checker !== 'function') {
8442 printWarning(
8443 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8444 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8445 );
8446 return emptyFunctionThatReturnsNull;
8447 }
8448 }
8449
8450 function validate(props, propName, componentName, location, propFullName) {
8451 var expectedTypes = [];
8452 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8453 var checker = arrayOfTypeCheckers[i];
8454 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
8455 if (checkerResult == null) {
8456 return null;
8457 }
8458 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
8459 expectedTypes.push(checkerResult.data.expectedType);
8460 }
8461 }
8462 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8463 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8464 }
8465 return createChainableTypeChecker(validate);
8466 }
8467
8468 function createNodeChecker() {
8469 function validate(props, propName, componentName, location, propFullName) {
8470 if (!isNode(props[propName])) {
8471 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8472 }
8473 return null;
8474 }
8475 return createChainableTypeChecker(validate);
8476 }
8477
8478 function invalidValidatorError(componentName, location, propFullName, key, type) {
8479 return new PropTypeError(
8480 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8481 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8482 );
8483 }
8484
8485 function createShapeTypeChecker(shapeTypes) {
8486 function validate(props, propName, componentName, location, propFullName) {
8487 var propValue = props[propName];
8488 var propType = getPropType(propValue);
8489 if (propType !== 'object') {
8490 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8491 }
8492 for (var key in shapeTypes) {
8493 var checker = shapeTypes[key];
8494 if (typeof checker !== 'function') {
8495 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8496 }
8497 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8498 if (error) {
8499 return error;
8500 }
8501 }
8502 return null;
8503 }
8504 return createChainableTypeChecker(validate);
8505 }
8506
8507 function createStrictShapeTypeChecker(shapeTypes) {
8508 function validate(props, propName, componentName, location, propFullName) {
8509 var propValue = props[propName];
8510 var propType = getPropType(propValue);
8511 if (propType !== 'object') {
8512 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8513 }
8514 // We need to check all keys in case some are required but missing from props.
8515 var allKeys = assign({}, props[propName], shapeTypes);
8516 for (var key in allKeys) {
8517 var checker = shapeTypes[key];
8518 if (has(shapeTypes, key) && typeof checker !== 'function') {
8519 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8520 }
8521 if (!checker) {
8522 return new PropTypeError(
8523 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8524 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8525 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8526 );
8527 }
8528 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8529 if (error) {
8530 return error;
8531 }
8532 }
8533 return null;
8534 }
8535
8536 return createChainableTypeChecker(validate);
8537 }
8538
8539 function isNode(propValue) {
8540 switch (typeof propValue) {
8541 case 'number':
8542 case 'string':
8543 case 'undefined':
8544 return true;
8545 case 'boolean':
8546 return !propValue;
8547 case 'object':
8548 if (Array.isArray(propValue)) {
8549 return propValue.every(isNode);
8550 }
8551 if (propValue === null || isValidElement(propValue)) {
8552 return true;
8553 }
8554
8555 var iteratorFn = getIteratorFn(propValue);
8556 if (iteratorFn) {
8557 var iterator = iteratorFn.call(propValue);
8558 var step;
8559 if (iteratorFn !== propValue.entries) {
8560 while (!(step = iterator.next()).done) {
8561 if (!isNode(step.value)) {
8562 return false;
8563 }
8564 }
8565 } else {
8566 // Iterator will provide entry [k,v] tuples rather than values.
8567 while (!(step = iterator.next()).done) {
8568 var entry = step.value;
8569 if (entry) {
8570 if (!isNode(entry[1])) {
8571 return false;
8572 }
8573 }
8574 }
8575 }
8576 } else {
8577 return false;
8578 }
8579
8580 return true;
8581 default:
8582 return false;
8583 }
8584 }
8585
8586 function isSymbol(propType, propValue) {
8587 // Native Symbol.
8588 if (propType === 'symbol') {
8589 return true;
8590 }
8591
8592 // falsy value can't be a Symbol
8593 if (!propValue) {
8594 return false;
8595 }
8596
8597 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8598 if (propValue['@@toStringTag'] === 'Symbol') {
8599 return true;
8600 }
8601
8602 // Fallback for non-spec compliant Symbols which are polyfilled.
8603 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8604 return true;
8605 }
8606
8607 return false;
8608 }
8609
8610 // Equivalent of `typeof` but with special handling for array and regexp.
8611 function getPropType(propValue) {
8612 var propType = typeof propValue;
8613 if (Array.isArray(propValue)) {
8614 return 'array';
8615 }
8616 if (propValue instanceof RegExp) {
8617 // Old webkits (at least until Android 4.0) return 'function' rather than
8618 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8619 // passes PropTypes.object.
8620 return 'object';
8621 }
8622 if (isSymbol(propType, propValue)) {
8623 return 'symbol';
8624 }
8625 return propType;
8626 }
8627
8628 // This handles more types than `getPropType`. Only used for error messages.
8629 // See `createPrimitiveTypeChecker`.
8630 function getPreciseType(propValue) {
8631 if (typeof propValue === 'undefined' || propValue === null) {
8632 return '' + propValue;
8633 }
8634 var propType = getPropType(propValue);
8635 if (propType === 'object') {
8636 if (propValue instanceof Date) {
8637 return 'date';
8638 } else if (propValue instanceof RegExp) {
8639 return 'regexp';
8640 }
8641 }
8642 return propType;
8643 }
8644
8645 // Returns a string that is postfixed to a warning about an invalid type.
8646 // For example, "undefined" or "of type array"
8647 function getPostfixForTypeWarning(value) {
8648 var type = getPreciseType(value);
8649 switch (type) {
8650 case 'array':
8651 case 'object':
8652 return 'an ' + type;
8653 case 'boolean':
8654 case 'date':
8655 case 'regexp':
8656 return 'a ' + type;
8657 default:
8658 return type;
8659 }
8660 }
8661
8662 // Returns class name of the object, if any.
8663 function getClassName(propValue) {
8664 if (!propValue.constructor || !propValue.constructor.name) {
8665 return ANONYMOUS;
8666 }
8667 return propValue.constructor.name;
8668 }
8669
8670 ReactPropTypes.checkPropTypes = checkPropTypes;
8671 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8672 ReactPropTypes.PropTypes = ReactPropTypes;
8673
8674 return ReactPropTypes;
8675 };
8676
8677
8678 /***/ }),
8679
8680 /***/ "../node_modules/prop-types/index.js":
8681 /*!*******************************************!*\
8682 !*** ../node_modules/prop-types/index.js ***!
8683 \*******************************************/
8684 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8685
8686 /**
8687 * Copyright (c) 2013-present, Facebook, Inc.
8688 *
8689 * This source code is licensed under the MIT license found in the
8690 * LICENSE file in the root directory of this source tree.
8691 */
8692
8693 if (true) {
8694 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8695
8696 // By explicitly using `prop-types` you are opting into new development behavior.
8697 // http://fb.me/prop-types-in-prod
8698 var throwOnDirectAccess = true;
8699 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
8700 } else // removed by dead control flow
8701 {}
8702
8703
8704 /***/ }),
8705
8706 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
8707 /*!**************************************************************!*\
8708 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8709 \**************************************************************/
8710 /***/ ((module) => {
8711
8712 "use strict";
8713 /**
8714 * Copyright (c) 2013-present, Facebook, Inc.
8715 *
8716 * This source code is licensed under the MIT license found in the
8717 * LICENSE file in the root directory of this source tree.
8718 */
8719
8720
8721
8722 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8723
8724 module.exports = ReactPropTypesSecret;
8725
8726
8727 /***/ }),
8728
8729 /***/ "../node_modules/prop-types/lib/has.js":
8730 /*!*********************************************!*\
8731 !*** ../node_modules/prop-types/lib/has.js ***!
8732 \*********************************************/
8733 /***/ ((module) => {
8734
8735 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
8736
8737
8738 /***/ }),
8739
8740 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
8741 /*!************************************************************************************!*\
8742 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
8743 \************************************************************************************/
8744 /***/ ((__unused_webpack_module, exports) => {
8745
8746 "use strict";
8747 /** @license React v16.13.1
8748 * react-is.development.js
8749 *
8750 * Copyright (c) Facebook, Inc. and its affiliates.
8751 *
8752 * This source code is licensed under the MIT license found in the
8753 * LICENSE file in the root directory of this source tree.
8754 */
8755
8756
8757
8758
8759
8760 if (true) {
8761 (function() {
8762 'use strict';
8763
8764 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
8765 // nor polyfill, then a plain number is used for performance.
8766 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
8767 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
8768 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
8769 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
8770 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
8771 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
8772 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
8773 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
8774 // (unstable) APIs that have been removed. Can we remove the symbols?
8775
8776 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
8777 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
8778 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
8779 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
8780 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
8781 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
8782 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
8783 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
8784 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
8785 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
8786 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
8787
8788 function isValidElementType(type) {
8789 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
8790 type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
8791 }
8792
8793 function typeOf(object) {
8794 if (typeof object === 'object' && object !== null) {
8795 var $$typeof = object.$$typeof;
8796
8797 switch ($$typeof) {
8798 case REACT_ELEMENT_TYPE:
8799 var type = object.type;
8800
8801 switch (type) {
8802 case REACT_ASYNC_MODE_TYPE:
8803 case REACT_CONCURRENT_MODE_TYPE:
8804 case REACT_FRAGMENT_TYPE:
8805 case REACT_PROFILER_TYPE:
8806 case REACT_STRICT_MODE_TYPE:
8807 case REACT_SUSPENSE_TYPE:
8808 return type;
8809
8810 default:
8811 var $$typeofType = type && type.$$typeof;
8812
8813 switch ($$typeofType) {
8814 case REACT_CONTEXT_TYPE:
8815 case REACT_FORWARD_REF_TYPE:
8816 case REACT_LAZY_TYPE:
8817 case REACT_MEMO_TYPE:
8818 case REACT_PROVIDER_TYPE:
8819 return $$typeofType;
8820
8821 default:
8822 return $$typeof;
8823 }
8824
8825 }
8826
8827 case REACT_PORTAL_TYPE:
8828 return $$typeof;
8829 }
8830 }
8831
8832 return undefined;
8833 } // AsyncMode is deprecated along with isAsyncMode
8834
8835 var AsyncMode = REACT_ASYNC_MODE_TYPE;
8836 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
8837 var ContextConsumer = REACT_CONTEXT_TYPE;
8838 var ContextProvider = REACT_PROVIDER_TYPE;
8839 var Element = REACT_ELEMENT_TYPE;
8840 var ForwardRef = REACT_FORWARD_REF_TYPE;
8841 var Fragment = REACT_FRAGMENT_TYPE;
8842 var Lazy = REACT_LAZY_TYPE;
8843 var Memo = REACT_MEMO_TYPE;
8844 var Portal = REACT_PORTAL_TYPE;
8845 var Profiler = REACT_PROFILER_TYPE;
8846 var StrictMode = REACT_STRICT_MODE_TYPE;
8847 var Suspense = REACT_SUSPENSE_TYPE;
8848 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
8849
8850 function isAsyncMode(object) {
8851 {
8852 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
8853 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
8854
8855 console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
8856 }
8857 }
8858
8859 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
8860 }
8861 function isConcurrentMode(object) {
8862 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
8863 }
8864 function isContextConsumer(object) {
8865 return typeOf(object) === REACT_CONTEXT_TYPE;
8866 }
8867 function isContextProvider(object) {
8868 return typeOf(object) === REACT_PROVIDER_TYPE;
8869 }
8870 function isElement(object) {
8871 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8872 }
8873 function isForwardRef(object) {
8874 return typeOf(object) === REACT_FORWARD_REF_TYPE;
8875 }
8876 function isFragment(object) {
8877 return typeOf(object) === REACT_FRAGMENT_TYPE;
8878 }
8879 function isLazy(object) {
8880 return typeOf(object) === REACT_LAZY_TYPE;
8881 }
8882 function isMemo(object) {
8883 return typeOf(object) === REACT_MEMO_TYPE;
8884 }
8885 function isPortal(object) {
8886 return typeOf(object) === REACT_PORTAL_TYPE;
8887 }
8888 function isProfiler(object) {
8889 return typeOf(object) === REACT_PROFILER_TYPE;
8890 }
8891 function isStrictMode(object) {
8892 return typeOf(object) === REACT_STRICT_MODE_TYPE;
8893 }
8894 function isSuspense(object) {
8895 return typeOf(object) === REACT_SUSPENSE_TYPE;
8896 }
8897
8898 exports.AsyncMode = AsyncMode;
8899 exports.ConcurrentMode = ConcurrentMode;
8900 exports.ContextConsumer = ContextConsumer;
8901 exports.ContextProvider = ContextProvider;
8902 exports.Element = Element;
8903 exports.ForwardRef = ForwardRef;
8904 exports.Fragment = Fragment;
8905 exports.Lazy = Lazy;
8906 exports.Memo = Memo;
8907 exports.Portal = Portal;
8908 exports.Profiler = Profiler;
8909 exports.StrictMode = StrictMode;
8910 exports.Suspense = Suspense;
8911 exports.isAsyncMode = isAsyncMode;
8912 exports.isConcurrentMode = isConcurrentMode;
8913 exports.isContextConsumer = isContextConsumer;
8914 exports.isContextProvider = isContextProvider;
8915 exports.isElement = isElement;
8916 exports.isForwardRef = isForwardRef;
8917 exports.isFragment = isFragment;
8918 exports.isLazy = isLazy;
8919 exports.isMemo = isMemo;
8920 exports.isPortal = isPortal;
8921 exports.isProfiler = isProfiler;
8922 exports.isStrictMode = isStrictMode;
8923 exports.isSuspense = isSuspense;
8924 exports.isValidElementType = isValidElementType;
8925 exports.typeOf = typeOf;
8926 })();
8927 }
8928
8929
8930 /***/ }),
8931
8932 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8933 /*!*****************************************************************!*\
8934 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8935 \*****************************************************************/
8936 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8937
8938 "use strict";
8939
8940
8941 if (false) // removed by dead control flow
8942 {} else {
8943 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8944 }
8945
8946
8947 /***/ }),
8948
8949 /***/ "../node_modules/react-dom/client.js":
8950 /*!*******************************************!*\
8951 !*** ../node_modules/react-dom/client.js ***!
8952 \*******************************************/
8953 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8954
8955 "use strict";
8956
8957
8958 var m = __webpack_require__(/*! react-dom */ "react-dom");
8959 if (false) // removed by dead control flow
8960 {} else {
8961 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8962 exports.createRoot = function(c, o) {
8963 i.usingClientEntryPoint = true;
8964 try {
8965 return m.createRoot(c, o);
8966 } finally {
8967 i.usingClientEntryPoint = false;
8968 }
8969 };
8970 exports.hydrateRoot = function(c, h, o) {
8971 i.usingClientEntryPoint = true;
8972 try {
8973 return m.hydrateRoot(c, h, o);
8974 } finally {
8975 i.usingClientEntryPoint = false;
8976 }
8977 };
8978 }
8979
8980
8981 /***/ }),
8982
8983 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8984 /*!**************************************************************!*\
8985 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8986 \**************************************************************/
8987 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8988
8989 "use strict";
8990
8991
8992 Object.defineProperty(exports, "__esModule", ({
8993 value: true
8994 }));
8995 Object.defineProperty(exports, "DraggableCore", ({
8996 enumerable: true,
8997 get: function () {
8998 return _DraggableCore.default;
8999 }
9000 }));
9001 exports["default"] = void 0;
9002 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9003 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9004 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9005 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
9006 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9007 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9008 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9009 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
9010 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9011 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9012 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9013 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9014 function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9015 function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9016 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9017 function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/
9018 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
9019 /*:: import type {Element as ReactElement} from 'react';*/
9020 /*:: type DraggableState = {
9021 dragging: boolean,
9022 dragged: boolean,
9023 x: number, y: number,
9024 slackX: number, slackY: number,
9025 isElementSVG: boolean,
9026 prevPropsPosition: ?ControlPosition,
9027 };*/
9028 /*:: export type DraggableDefaultProps = {
9029 ...DraggableCoreDefaultProps,
9030 axis: 'both' | 'x' | 'y' | 'none',
9031 bounds: Bounds | string | false,
9032 defaultClassName: string,
9033 defaultClassNameDragging: string,
9034 defaultClassNameDragged: string,
9035 defaultPosition: ControlPosition,
9036 scale: number,
9037 };*/
9038 /*:: export type DraggableProps = {
9039 ...DraggableCoreProps,
9040 ...DraggableDefaultProps,
9041 positionOffset: PositionOffsetControlPosition,
9042 position: ControlPosition,
9043 };*/
9044 //
9045 // Define <Draggable>
9046 //
9047 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
9048 // React 16.3+
9049 // Arity (props, state)
9050 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
9051 let {
9052 position
9053 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
9054 let {
9055 prevPropsPosition
9056 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
9057 // Set x/y if a new position is provided in props that is different than the previous.
9058 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
9059 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
9060 position,
9061 prevPropsPosition
9062 });
9063 return {
9064 x: position.x,
9065 y: position.y,
9066 prevPropsPosition: {
9067 ...position
9068 }
9069 };
9070 }
9071 return null;
9072 }
9073 constructor(props /*: DraggableProps*/) {
9074 super(props);
9075 _defineProperty(this, "onDragStart", (e, coreData) => {
9076 (0, _log.default)('Draggable: onDragStart: %j', coreData);
9077
9078 // Short-circuit if user's callback killed it.
9079 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
9080 // Kills start event on core as well, so move handlers are never bound.
9081 if (shouldStart === false) return false;
9082 this.setState({
9083 dragging: true,
9084 dragged: true
9085 });
9086 });
9087 _defineProperty(this, "onDrag", (e, coreData) => {
9088 if (!this.state.dragging) return false;
9089 (0, _log.default)('Draggable: onDrag: %j', coreData);
9090 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
9091 const newState = {
9092 x: uiData.x,
9093 y: uiData.y,
9094 slackX: 0,
9095 slackY: 0
9096 };
9097
9098 // Keep within bounds.
9099 if (this.props.bounds) {
9100 // Save original x and y.
9101 const {
9102 x,
9103 y
9104 } = newState;
9105
9106 // Add slack to the values used to calculate bound position. This will ensure that if
9107 // we start removing slack, the element won't react to it right away until it's been
9108 // completely removed.
9109 newState.x += this.state.slackX;
9110 newState.y += this.state.slackY;
9111
9112 // Get bound position. This will ceil/floor the x and y within the boundaries.
9113 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
9114 newState.x = newStateX;
9115 newState.y = newStateY;
9116
9117 // Recalculate slack by noting how much was shaved by the boundPosition handler.
9118 newState.slackX = this.state.slackX + (x - newState.x);
9119 newState.slackY = this.state.slackY + (y - newState.y);
9120
9121 // Update the event we fire to reflect what really happened after bounds took effect.
9122 uiData.x = newState.x;
9123 uiData.y = newState.y;
9124 uiData.deltaX = newState.x - this.state.x;
9125 uiData.deltaY = newState.y - this.state.y;
9126 }
9127
9128 // Short-circuit if user's callback killed it.
9129 const shouldUpdate = this.props.onDrag(e, uiData);
9130 if (shouldUpdate === false) return false;
9131 this.setState(newState);
9132 });
9133 _defineProperty(this, "onDragStop", (e, coreData) => {
9134 if (!this.state.dragging) return false;
9135
9136 // Short-circuit if user's callback killed it.
9137 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
9138 if (shouldContinue === false) return false;
9139 (0, _log.default)('Draggable: onDragStop: %j', coreData);
9140 const newState /*: Partial<DraggableState>*/ = {
9141 dragging: false,
9142 slackX: 0,
9143 slackY: 0
9144 };
9145
9146 // If this is a controlled component, the result of this operation will be to
9147 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
9148 const controlled = Boolean(this.props.position);
9149 if (controlled) {
9150 const {
9151 x,
9152 y
9153 } = this.props.position;
9154 newState.x = x;
9155 newState.y = y;
9156 }
9157 this.setState(newState);
9158 });
9159 this.state = {
9160 // Whether or not we are currently dragging.
9161 dragging: false,
9162 // Whether or not we have been dragged before.
9163 dragged: false,
9164 // Current transform x and y.
9165 x: props.position ? props.position.x : props.defaultPosition.x,
9166 y: props.position ? props.position.y : props.defaultPosition.y,
9167 prevPropsPosition: {
9168 ...props.position
9169 },
9170 // Used for compensating for out-of-bounds drags
9171 slackX: 0,
9172 slackY: 0,
9173 // Can only determine if SVG after mounting
9174 isElementSVG: false
9175 };
9176 if (props.position && !(props.onDrag || props.onStop)) {
9177 // eslint-disable-next-line no-console
9178 console.warn('A `position` was applied to this <Draggable>, without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');
9179 }
9180 }
9181 componentDidMount() {
9182 // Check to see if the element passed is an instanceof SVGElement
9183 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
9184 this.setState({
9185 isElementSVG: true
9186 });
9187 }
9188 }
9189 componentWillUnmount() {
9190 this.setState({
9191 dragging: false
9192 }); // prevents invariant if unmounted while dragging
9193 }
9194
9195 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9196 // the underlying DOM node ourselves. See the README for more information.
9197 findDOMNode() /*: ?HTMLElement*/{
9198 var _this$props$nodeRef$c, _this$props;
9199 return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 || (_this$props = _this$props.nodeRef) === null || _this$props === void 0 ? void 0 : _this$props.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);
9200 }
9201 render() /*: ReactElement<any>*/{
9202 const {
9203 axis,
9204 bounds,
9205 children,
9206 defaultPosition,
9207 defaultClassName,
9208 defaultClassNameDragging,
9209 defaultClassNameDragged,
9210 position,
9211 positionOffset,
9212 scale,
9213 ...draggableCoreProps
9214 } = this.props;
9215 let style = {};
9216 let svgTransform = null;
9217
9218 // If this is controlled, we don't want to move it - unless it's dragging.
9219 const controlled = Boolean(position);
9220 const draggable = !controlled || this.state.dragging;
9221 const validPosition = position || defaultPosition;
9222 const transformOpts = {
9223 // Set left if horizontal drag is enabled
9224 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
9225 // Set top if vertical drag is enabled
9226 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
9227 };
9228
9229 // If this element was SVG, we use the `transform` attribute.
9230 if (this.state.isElementSVG) {
9231 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
9232 } else {
9233 // Add a CSS transform to move the element around. This allows us to move the element around
9234 // without worrying about whether or not it is relatively or absolutely positioned.
9235 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
9236 // has a clean slate.
9237 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
9238 }
9239
9240 // Mark with class while dragging
9241 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
9242 [defaultClassNameDragging]: this.state.dragging,
9243 [defaultClassNameDragged]: this.state.dragged
9244 });
9245
9246 // Reuse the child provided
9247 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9248 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
9249 onStart: this.onDragStart,
9250 onDrag: this.onDrag,
9251 onStop: this.onDragStop
9252 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
9253 className: className,
9254 style: {
9255 ...children.props.style,
9256 ...style
9257 },
9258 transform: svgTransform
9259 }));
9260 }
9261 }
9262 exports["default"] = Draggable;
9263 _defineProperty(Draggable, "displayName", 'Draggable');
9264 _defineProperty(Draggable, "propTypes", {
9265 // Accepts all props <DraggableCore> accepts.
9266 ..._DraggableCore.default.propTypes,
9267 /**
9268 * `axis` determines which axis the draggable can move.
9269 *
9270 * Note that all callbacks will still return data as normal. This only
9271 * controls flushing to the DOM.
9272 *
9273 * 'both' allows movement horizontally and vertically.
9274 * 'x' limits movement to horizontal axis.
9275 * 'y' limits movement to vertical axis.
9276 * 'none' limits all movement.
9277 *
9278 * Defaults to 'both'.
9279 */
9280 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
9281 /**
9282 * `bounds` determines the range of movement available to the element.
9283 * Available values are:
9284 *
9285 * 'parent' restricts movement within the Draggable's parent node.
9286 *
9287 * Alternatively, pass an object with the following properties, all of which are optional:
9288 *
9289 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
9290 *
9291 * All values are in px.
9292 *
9293 * Example:
9294 *
9295 * ```jsx
9296 * let App = React.createClass({
9297 * render: function () {
9298 * return (
9299 * <Draggable bounds={{right: 300, bottom: 300}}>
9300 * <div>Content</div>
9301 * </Draggable>
9302 * );
9303 * }
9304 * });
9305 * ```
9306 */
9307 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
9308 left: _propTypes.default.number,
9309 right: _propTypes.default.number,
9310 top: _propTypes.default.number,
9311 bottom: _propTypes.default.number
9312 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
9313 defaultClassName: _propTypes.default.string,
9314 defaultClassNameDragging: _propTypes.default.string,
9315 defaultClassNameDragged: _propTypes.default.string,
9316 /**
9317 * `defaultPosition` specifies the x and y that the dragged item should start at
9318 *
9319 * Example:
9320 *
9321 * ```jsx
9322 * let App = React.createClass({
9323 * render: function () {
9324 * return (
9325 * <Draggable defaultPosition={{x: 25, y: 25}}>
9326 * <div>I start with transformX: 25px and transformY: 25px;</div>
9327 * </Draggable>
9328 * );
9329 * }
9330 * });
9331 * ```
9332 */
9333 defaultPosition: _propTypes.default.shape({
9334 x: _propTypes.default.number,
9335 y: _propTypes.default.number
9336 }),
9337 positionOffset: _propTypes.default.shape({
9338 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
9339 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
9340 }),
9341 /**
9342 * `position`, if present, defines the current position of the element.
9343 *
9344 * This is similar to how form elements in React work - if no `position` is supplied, the component
9345 * is uncontrolled.
9346 *
9347 * Example:
9348 *
9349 * ```jsx
9350 * let App = React.createClass({
9351 * render: function () {
9352 * return (
9353 * <Draggable position={{x: 25, y: 25}}>
9354 * <div>I start with transformX: 25px and transformY: 25px;</div>
9355 * </Draggable>
9356 * );
9357 * }
9358 * });
9359 * ```
9360 */
9361 position: _propTypes.default.shape({
9362 x: _propTypes.default.number,
9363 y: _propTypes.default.number
9364 }),
9365 /**
9366 * These properties should be defined on the child, not here.
9367 */
9368 className: _shims.dontSetMe,
9369 style: _shims.dontSetMe,
9370 transform: _shims.dontSetMe
9371 });
9372 _defineProperty(Draggable, "defaultProps", {
9373 ..._DraggableCore.default.defaultProps,
9374 axis: 'both',
9375 bounds: false,
9376 defaultClassName: 'react-draggable',
9377 defaultClassNameDragging: 'react-draggable-dragging',
9378 defaultClassNameDragged: 'react-draggable-dragged',
9379 defaultPosition: {
9380 x: 0,
9381 y: 0
9382 },
9383 scale: 1
9384 });
9385
9386 /***/ }),
9387
9388 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
9389 /*!******************************************************************!*\
9390 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
9391 \******************************************************************/
9392 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9393
9394 "use strict";
9395
9396
9397 Object.defineProperty(exports, "__esModule", ({
9398 value: true
9399 }));
9400 exports["default"] = void 0;
9401 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9402 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9403 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9404 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9405 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9406 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9407 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9408 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9409 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9410 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9411 function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9412 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9413 function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9414 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
9415 /*:: import type {Element as ReactElement} from 'react';*/
9416 // Simple abstraction for dragging events names.
9417 const eventsFor = {
9418 touch: {
9419 start: 'touchstart',
9420 move: 'touchmove',
9421 stop: 'touchend'
9422 },
9423 mouse: {
9424 start: 'mousedown',
9425 move: 'mousemove',
9426 stop: 'mouseup'
9427 }
9428 };
9429
9430 // Default to mouse events.
9431 let dragEventFor = eventsFor.mouse;
9432 /*:: export type DraggableData = {
9433 node: HTMLElement,
9434 x: number, y: number,
9435 deltaX: number, deltaY: number,
9436 lastX: number, lastY: number,
9437 };*/
9438 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
9439 /*:: export type ControlPosition = {x: number, y: number};*/
9440 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
9441 /*:: export type DraggableCoreDefaultProps = {
9442 allowAnyClick: boolean,
9443 disabled: boolean,
9444 enableUserSelectHack: boolean,
9445 onStart: DraggableEventHandler,
9446 onDrag: DraggableEventHandler,
9447 onStop: DraggableEventHandler,
9448 onMouseDown: (e: MouseEvent) => void,
9449 scale: number,
9450 };*/
9451 /*:: export type DraggableCoreProps = {
9452 ...DraggableCoreDefaultProps,
9453 cancel: string,
9454 children: ReactElement<any>,
9455 offsetParent: HTMLElement,
9456 grid: [number, number],
9457 handle: string,
9458 nodeRef?: ?React.ElementRef<any>,
9459 };*/
9460 //
9461 // Define <DraggableCore>.
9462 //
9463 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
9464 // work well with libraries that require more control over the element.
9465 //
9466
9467 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
9468 constructor() {
9469 super(...arguments);
9470 _defineProperty(this, "dragging", false);
9471 // Used while dragging to determine deltas.
9472 _defineProperty(this, "lastX", NaN);
9473 _defineProperty(this, "lastY", NaN);
9474 _defineProperty(this, "touchIdentifier", null);
9475 _defineProperty(this, "mounted", false);
9476 _defineProperty(this, "handleDragStart", e => {
9477 // Make it possible to attach event handlers on top of this one.
9478 this.props.onMouseDown(e);
9479
9480 // Only accept left-clicks.
9481 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
9482
9483 // Get nodes. Be sure to grab relative document (could be iframed)
9484 const thisNode = this.findDOMNode();
9485 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
9486 throw new Error('<DraggableCore> not mounted on DragStart!');
9487 }
9488 const {
9489 ownerDocument
9490 } = thisNode;
9491
9492 // Short circuit if handle or cancel prop was provided and selector doesn't match.
9493 if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {
9494 return;
9495 }
9496
9497 // Prevent scrolling on mobile devices, like ipad/iphone.
9498 // Important that this is after handle/cancel.
9499 if (e.type === 'touchstart') e.preventDefault();
9500
9501 // Set touch identifier in component state if this is a touch event. This allows us to
9502 // distinguish between individual touches on multitouch screens by identifying which
9503 // touchpoint was set to this element.
9504 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
9505 this.touchIdentifier = touchIdentifier;
9506
9507 // Get the current drag point from the event. This is used as the offset.
9508 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
9509 if (position == null) return; // not possible but satisfies flow
9510 const {
9511 x,
9512 y
9513 } = position;
9514
9515 // Create an event object with all the data parents need to make a decision here.
9516 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9517 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
9518
9519 // Call event handler. If it returns explicit false, cancel.
9520 (0, _log.default)('calling', this.props.onStart);
9521 const shouldUpdate = this.props.onStart(e, coreEvent);
9522 if (shouldUpdate === false || this.mounted === false) return;
9523
9524 // Add a style to the body to disable user-select. This prevents text from
9525 // being selected all over the page.
9526 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
9527
9528 // Initiate dragging. Set the current x and y as offsets
9529 // so we know how much we've moved during the drag. This allows us
9530 // to drag elements around even if they have been moved, without issue.
9531 this.dragging = true;
9532 this.lastX = x;
9533 this.lastY = y;
9534
9535 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
9536 // this element. We use different events depending on whether or not we have detected that this
9537 // is a touch-capable device.
9538 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
9539 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
9540 });
9541 _defineProperty(this, "handleDrag", e => {
9542 // Get the current drag point from the event. This is used as the offset.
9543 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9544 if (position == null) return;
9545 let {
9546 x,
9547 y
9548 } = position;
9549
9550 // Snap to grid if prop has been provided
9551 if (Array.isArray(this.props.grid)) {
9552 let deltaX = x - this.lastX,
9553 deltaY = y - this.lastY;
9554 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9555 if (!deltaX && !deltaY) return; // skip useless drag
9556 x = this.lastX + deltaX, y = this.lastY + deltaY;
9557 }
9558 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9559 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
9560
9561 // Call event handler. If it returns explicit false, trigger end.
9562 const shouldUpdate = this.props.onDrag(e, coreEvent);
9563 if (shouldUpdate === false || this.mounted === false) {
9564 try {
9565 // $FlowIgnore
9566 this.handleDragStop(new MouseEvent('mouseup'));
9567 } catch (err) {
9568 // Old browsers
9569 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
9570 // I see why this insanity was deprecated
9571 // $FlowIgnore
9572 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
9573 this.handleDragStop(event);
9574 }
9575 return;
9576 }
9577 this.lastX = x;
9578 this.lastY = y;
9579 });
9580 _defineProperty(this, "handleDragStop", e => {
9581 if (!this.dragging) return;
9582 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9583 if (position == null) return;
9584 let {
9585 x,
9586 y
9587 } = position;
9588
9589 // Snap to grid if prop has been provided
9590 if (Array.isArray(this.props.grid)) {
9591 let deltaX = x - this.lastX || 0;
9592 let deltaY = y - this.lastY || 0;
9593 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9594 x = this.lastX + deltaX, y = this.lastY + deltaY;
9595 }
9596 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9597
9598 // Call event handler
9599 const shouldContinue = this.props.onStop(e, coreEvent);
9600 if (shouldContinue === false || this.mounted === false) return false;
9601 const thisNode = this.findDOMNode();
9602 if (thisNode) {
9603 // Remove user-select hack
9604 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
9605 }
9606 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
9607
9608 // Reset the el.
9609 this.dragging = false;
9610 this.lastX = NaN;
9611 this.lastY = NaN;
9612 if (thisNode) {
9613 // Remove event handlers
9614 (0, _log.default)('DraggableCore: Removing handlers');
9615 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
9616 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
9617 }
9618 });
9619 _defineProperty(this, "onMouseDown", e => {
9620 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
9621
9622 return this.handleDragStart(e);
9623 });
9624 _defineProperty(this, "onMouseUp", e => {
9625 dragEventFor = eventsFor.mouse;
9626 return this.handleDragStop(e);
9627 });
9628 // Same as onMouseDown (start drag), but now consider this a touch device.
9629 _defineProperty(this, "onTouchStart", e => {
9630 // We're on a touch device now, so change the event handlers
9631 dragEventFor = eventsFor.touch;
9632 return this.handleDragStart(e);
9633 });
9634 _defineProperty(this, "onTouchEnd", e => {
9635 // We're on a touch device now, so change the event handlers
9636 dragEventFor = eventsFor.touch;
9637 return this.handleDragStop(e);
9638 });
9639 }
9640 componentDidMount() {
9641 this.mounted = true;
9642 // Touch handlers must be added with {passive: false} to be cancelable.
9643 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9644 const thisNode = this.findDOMNode();
9645 if (thisNode) {
9646 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9647 passive: false
9648 });
9649 }
9650 }
9651 componentWillUnmount() {
9652 this.mounted = false;
9653 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
9654 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
9655 const thisNode = this.findDOMNode();
9656 if (thisNode) {
9657 const {
9658 ownerDocument
9659 } = thisNode;
9660 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
9661 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
9662 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
9663 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
9664 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9665 passive: false
9666 });
9667 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
9668 }
9669 }
9670
9671 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9672 // the underlying DOM node ourselves. See the README for more information.
9673 findDOMNode() /*: ?HTMLElement*/{
9674 var _this$props, _this$props2;
9675 return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);
9676 }
9677 render() /*: React.Element<any>*/{
9678 // Reuse the child provided
9679 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9680 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
9681 // Note: mouseMove handler is attached to document so it will still function
9682 // when the user drags quickly and leaves the bounds of the element.
9683 onMouseDown: this.onMouseDown,
9684 onMouseUp: this.onMouseUp,
9685 // onTouchStart is added on `componentDidMount` so they can be added with
9686 // {passive: false}, which allows it to cancel. See
9687 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9688 onTouchEnd: this.onTouchEnd
9689 });
9690 }
9691 }
9692 exports["default"] = DraggableCore;
9693 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
9694 _defineProperty(DraggableCore, "propTypes", {
9695 /**
9696 * `allowAnyClick` allows dragging using any mouse button.
9697 * By default, we only accept the left button.
9698 *
9699 * Defaults to `false`.
9700 */
9701 allowAnyClick: _propTypes.default.bool,
9702 children: _propTypes.default.node.isRequired,
9703 /**
9704 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
9705 * with the exception of `onMouseDown`, will not fire.
9706 */
9707 disabled: _propTypes.default.bool,
9708 /**
9709 * By default, we add 'user-select:none' attributes to the document body
9710 * to prevent ugly text selection during drag. If this is causing problems
9711 * for your app, set this to `false`.
9712 */
9713 enableUserSelectHack: _propTypes.default.bool,
9714 /**
9715 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
9716 * instead of using the parent node.
9717 */
9718 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
9719 if (props[propName] && props[propName].nodeType !== 1) {
9720 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
9721 }
9722 },
9723 /**
9724 * `grid` specifies the x and y that dragging should snap to.
9725 */
9726 grid: _propTypes.default.arrayOf(_propTypes.default.number),
9727 /**
9728 * `handle` specifies a selector to be used as the handle that initiates drag.
9729 *
9730 * Example:
9731 *
9732 * ```jsx
9733 * let App = React.createClass({
9734 * render: function () {
9735 * return (
9736 * <Draggable handle=".handle">
9737 * <div>
9738 * <div className="handle">Click me to drag</div>
9739 * <div>This is some other content</div>
9740 * </div>
9741 * </Draggable>
9742 * );
9743 * }
9744 * });
9745 * ```
9746 */
9747 handle: _propTypes.default.string,
9748 /**
9749 * `cancel` specifies a selector to be used to prevent drag initialization.
9750 *
9751 * Example:
9752 *
9753 * ```jsx
9754 * let App = React.createClass({
9755 * render: function () {
9756 * return(
9757 * <Draggable cancel=".cancel">
9758 * <div>
9759 * <div className="cancel">You can't drag from here</div>
9760 * <div>Dragging here works fine</div>
9761 * </div>
9762 * </Draggable>
9763 * );
9764 * }
9765 * });
9766 * ```
9767 */
9768 cancel: _propTypes.default.string,
9769 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
9770 * Unfortunately, in order for <Draggable> to work properly, we need raw access
9771 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
9772 * as in this example:
9773 *
9774 * function MyComponent() {
9775 * const nodeRef = React.useRef(null);
9776 * return (
9777 * <Draggable nodeRef={nodeRef}>
9778 * <div ref={nodeRef}>Example Target</div>
9779 * </Draggable>
9780 * );
9781 * }
9782 *
9783 * This can be used for arbitrarily nested components, so long as the ref ends up
9784 * pointing to the actual child DOM node and not a custom component.
9785 */
9786 nodeRef: _propTypes.default.object,
9787 /**
9788 * Called when dragging starts.
9789 * If this function returns the boolean false, dragging will be canceled.
9790 */
9791 onStart: _propTypes.default.func,
9792 /**
9793 * Called while dragging.
9794 * If this function returns the boolean false, dragging will be canceled.
9795 */
9796 onDrag: _propTypes.default.func,
9797 /**
9798 * Called when dragging stops.
9799 * If this function returns the boolean false, the drag will remain active.
9800 */
9801 onStop: _propTypes.default.func,
9802 /**
9803 * A workaround option which can be passed if onMouseDown needs to be accessed,
9804 * since it'll always be blocked (as there is internal use of onMouseDown)
9805 */
9806 onMouseDown: _propTypes.default.func,
9807 /**
9808 * `scale`, if set, applies scaling while dragging an element
9809 */
9810 scale: _propTypes.default.number,
9811 /**
9812 * These properties should be defined on the child, not here.
9813 */
9814 className: _shims.dontSetMe,
9815 style: _shims.dontSetMe,
9816 transform: _shims.dontSetMe
9817 });
9818 _defineProperty(DraggableCore, "defaultProps", {
9819 allowAnyClick: false,
9820 // by default only accept left click
9821 disabled: false,
9822 enableUserSelectHack: true,
9823 onStart: function () {},
9824 onDrag: function () {},
9825 onStop: function () {},
9826 onMouseDown: function () {},
9827 scale: 1
9828 });
9829
9830 /***/ }),
9831
9832 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
9833 /*!********************************************************!*\
9834 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
9835 \********************************************************/
9836 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9837
9838 "use strict";
9839
9840
9841 const {
9842 default: Draggable,
9843 DraggableCore
9844 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
9845
9846 // Previous versions of this lib exported <Draggable> as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.
9847 // See https://github.com/mzabriskie/react-draggable/pull/254
9848 // and https://github.com/mzabriskie/react-draggable/issues/266
9849 module.exports = Draggable;
9850 module.exports["default"] = Draggable;
9851 module.exports.DraggableCore = DraggableCore;
9852
9853 /***/ }),
9854
9855 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
9856 /*!*****************************************************************!*\
9857 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
9858 \*****************************************************************/
9859 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9860
9861 "use strict";
9862
9863
9864 Object.defineProperty(exports, "__esModule", ({
9865 value: true
9866 }));
9867 exports.addClassName = addClassName;
9868 exports.addEvent = addEvent;
9869 exports.addUserSelectStyles = addUserSelectStyles;
9870 exports.createCSSTransform = createCSSTransform;
9871 exports.createSVGTransform = createSVGTransform;
9872 exports.getTouch = getTouch;
9873 exports.getTouchIdentifier = getTouchIdentifier;
9874 exports.getTranslation = getTranslation;
9875 exports.innerHeight = innerHeight;
9876 exports.innerWidth = innerWidth;
9877 exports.matchesSelector = matchesSelector;
9878 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
9879 exports.offsetXYFromParent = offsetXYFromParent;
9880 exports.outerHeight = outerHeight;
9881 exports.outerWidth = outerWidth;
9882 exports.removeClassName = removeClassName;
9883 exports.removeEvent = removeEvent;
9884 exports.removeUserSelectStyles = removeUserSelectStyles;
9885 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9886 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
9887 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9888 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9889 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
9890 let matchesSelectorFunc = '';
9891 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
9892 if (!matchesSelectorFunc) {
9893 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
9894 // $FlowIgnore: Doesn't think elements are indexable
9895 return (0, _shims.isFunction)(el[method]);
9896 });
9897 }
9898
9899 // Might not be found entirely (not an Element?) - in that case, bail
9900 // $FlowIgnore: Doesn't think elements are indexable
9901 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
9902
9903 // $FlowIgnore: Doesn't think elements are indexable
9904 return el[matchesSelectorFunc](selector);
9905 }
9906
9907 // Works up the tree to the draggable itself attempting to match selector.
9908 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
9909 let node = el;
9910 do {
9911 if (matchesSelector(node, selector)) return true;
9912 if (node === baseNode) return false;
9913 // $FlowIgnore[incompatible-type]
9914 node = node.parentNode;
9915 } while (node);
9916 return false;
9917 }
9918 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9919 if (!el) return;
9920 const options = {
9921 capture: true,
9922 ...inputOptions
9923 };
9924 // $FlowIgnore[method-unbinding]
9925 if (el.addEventListener) {
9926 el.addEventListener(event, handler, options);
9927 } else if (el.attachEvent) {
9928 el.attachEvent('on' + event, handler);
9929 } else {
9930 // $FlowIgnore: Doesn't think elements are indexable
9931 el['on' + event] = handler;
9932 }
9933 }
9934 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9935 if (!el) return;
9936 const options = {
9937 capture: true,
9938 ...inputOptions
9939 };
9940 // $FlowIgnore[method-unbinding]
9941 if (el.removeEventListener) {
9942 el.removeEventListener(event, handler, options);
9943 } else if (el.detachEvent) {
9944 el.detachEvent('on' + event, handler);
9945 } else {
9946 // $FlowIgnore: Doesn't think elements are indexable
9947 el['on' + event] = null;
9948 }
9949 }
9950 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9951 // This is deliberately excluding margin for our calculations, since we are using
9952 // offsetTop which is including margin. See getBoundPosition
9953 let height = node.clientHeight;
9954 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9955 height += (0, _shims.int)(computedStyle.borderTopWidth);
9956 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9957 return height;
9958 }
9959 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9960 // This is deliberately excluding margin for our calculations, since we are using
9961 // offsetLeft which is including margin. See getBoundPosition
9962 let width = node.clientWidth;
9963 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9964 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9965 width += (0, _shims.int)(computedStyle.borderRightWidth);
9966 return width;
9967 }
9968 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9969 let height = node.clientHeight;
9970 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9971 height -= (0, _shims.int)(computedStyle.paddingTop);
9972 height -= (0, _shims.int)(computedStyle.paddingBottom);
9973 return height;
9974 }
9975 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9976 let width = node.clientWidth;
9977 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9978 width -= (0, _shims.int)(computedStyle.paddingLeft);
9979 width -= (0, _shims.int)(computedStyle.paddingRight);
9980 return width;
9981 }
9982 /*:: interface EventWithOffset {
9983 clientX: number, clientY: number
9984 }*/
9985 // Get from offsetParent
9986 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9987 const isBody = offsetParent === offsetParent.ownerDocument.body;
9988 const offsetParentRect = isBody ? {
9989 left: 0,
9990 top: 0
9991 } : offsetParent.getBoundingClientRect();
9992 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9993 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9994 return {
9995 x,
9996 y
9997 };
9998 }
9999 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
10000 const translation = getTranslation(controlPos, positionOffset, 'px');
10001 return {
10002 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
10003 };
10004 }
10005 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
10006 const translation = getTranslation(controlPos, positionOffset, '');
10007 return translation;
10008 }
10009 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
10010 let {
10011 x,
10012 y
10013 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
10014 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
10015 if (positionOffset) {
10016 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
10017 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
10018 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
10019 }
10020 return translation;
10021 }
10022 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
10023 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
10024 }
10025 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
10026 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
10027 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
10028 }
10029
10030 // User-select Hacks:
10031 //
10032 // Useful for preventing blue highlights all over everything when dragging.
10033
10034 // Note we're passing `document` b/c we could be iframed
10035 function addUserSelectStyles(doc /*: ?Document*/) {
10036 if (!doc) return;
10037 let styleEl = doc.getElementById('react-draggable-style-el');
10038 if (!styleEl) {
10039 styleEl = doc.createElement('style');
10040 styleEl.type = 'text/css';
10041 styleEl.id = 'react-draggable-style-el';
10042 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
10043 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
10044 doc.getElementsByTagName('head')[0].appendChild(styleEl);
10045 }
10046 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
10047 }
10048 function removeUserSelectStyles(doc /*: ?Document*/) {
10049 if (!doc) return;
10050 try {
10051 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
10052 // $FlowIgnore: IE
10053 if (doc.selection) {
10054 // $FlowIgnore: IE
10055 doc.selection.empty();
10056 } else {
10057 // Remove selection caused by scroll, unless it's a focused input
10058 // (we use doc.defaultView in case we're in an iframe)
10059 const selection = (doc.defaultView || window).getSelection();
10060 if (selection && selection.type !== 'Caret') {
10061 selection.removeAllRanges();
10062 }
10063 }
10064 } catch (e) {
10065 // probably IE
10066 }
10067 }
10068 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
10069 if (el.classList) {
10070 el.classList.add(className);
10071 } else {
10072 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
10073 el.className += " ".concat(className);
10074 }
10075 }
10076 }
10077 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
10078 if (el.classList) {
10079 el.classList.remove(className);
10080 } else {
10081 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
10082 }
10083 }
10084
10085 /***/ }),
10086
10087 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
10088 /*!********************************************************************!*\
10089 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
10090 \********************************************************************/
10091 /***/ ((__unused_webpack_module, exports) => {
10092
10093 "use strict";
10094
10095
10096 Object.defineProperty(exports, "__esModule", ({
10097 value: true
10098 }));
10099 exports.browserPrefixToKey = browserPrefixToKey;
10100 exports.browserPrefixToStyle = browserPrefixToStyle;
10101 exports["default"] = void 0;
10102 exports.getPrefix = getPrefix;
10103 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
10104 function getPrefix() /*: string*/{
10105 var _window$document;
10106 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
10107 // Ensure we're running in an environment where there is actually a global
10108 // `window` obj
10109 if (typeof window === 'undefined') return '';
10110
10111 // If we're in a pseudo-browser server-side environment, this access
10112 // path may not exist, so bail out if it doesn't.
10113 const style = (_window$document = window.document) === null || _window$document === void 0 || (_window$document = _window$document.documentElement) === null || _window$document === void 0 ? void 0 : _window$document.style;
10114 if (!style) return '';
10115 if (prop in style) return '';
10116 for (let i = 0; i < prefixes.length; i++) {
10117 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
10118 }
10119 return '';
10120 }
10121 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
10122 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
10123 }
10124 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
10125 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
10126 }
10127 function kebabToTitleCase(str /*: string*/) /*: string*/{
10128 let out = '';
10129 let shouldCapitalize = true;
10130 for (let i = 0; i < str.length; i++) {
10131 if (shouldCapitalize) {
10132 out += str[i].toUpperCase();
10133 shouldCapitalize = false;
10134 } else if (str[i] === '-') {
10135 shouldCapitalize = true;
10136 } else {
10137 out += str[i];
10138 }
10139 }
10140 return out;
10141 }
10142
10143 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
10144 // Note that you may have to re-test for certain things; for instance, Chrome 50
10145 // can handle unprefixed `transform`, but not unprefixed `user-select`
10146 var _default = exports["default"] = (getPrefix() /*: string*/);
10147
10148 /***/ }),
10149
10150 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
10151 /*!**************************************************************!*\
10152 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
10153 \**************************************************************/
10154 /***/ ((__unused_webpack_module, exports) => {
10155
10156 "use strict";
10157
10158
10159 Object.defineProperty(exports, "__esModule", ({
10160 value: true
10161 }));
10162 exports["default"] = log;
10163 /*eslint no-console:0*/
10164 function log() {
10165 if (false) // removed by dead control flow
10166 {}
10167 }
10168
10169 /***/ }),
10170
10171 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
10172 /*!**********************************************************************!*\
10173 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
10174 \**********************************************************************/
10175 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10176
10177 "use strict";
10178
10179
10180 Object.defineProperty(exports, "__esModule", ({
10181 value: true
10182 }));
10183 exports.canDragX = canDragX;
10184 exports.canDragY = canDragY;
10185 exports.createCoreData = createCoreData;
10186 exports.createDraggableData = createDraggableData;
10187 exports.getBoundPosition = getBoundPosition;
10188 exports.getControlPosition = getControlPosition;
10189 exports.snapToGrid = snapToGrid;
10190 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
10191 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
10192 /*:: import type Draggable from '../Draggable';*/
10193 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
10194 /*:: import type DraggableCore from '../DraggableCore';*/
10195 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
10196 // If no bounds, short-circuit and move on
10197 if (!draggable.props.bounds) return [x, y];
10198
10199 // Clone new bounds
10200 let {
10201 bounds
10202 } = draggable.props;
10203 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
10204 const node = findDOMNode(draggable);
10205 if (typeof bounds === 'string') {
10206 const {
10207 ownerDocument
10208 } = node;
10209 const ownerWindow = ownerDocument.defaultView;
10210 let boundNode;
10211 if (bounds === 'parent') {
10212 boundNode = node.parentNode;
10213 } else {
10214 boundNode = ownerDocument.querySelector(bounds);
10215 }
10216 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
10217 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
10218 }
10219 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
10220 const nodeStyle = ownerWindow.getComputedStyle(node);
10221 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
10222 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
10223 bounds = {
10224 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
10225 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
10226 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
10227 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
10228 };
10229 }
10230
10231 // Keep x and y below right and bottom limits...
10232 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
10233 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
10234
10235 // But above left and top limits.
10236 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
10237 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
10238 return [x, y];
10239 }
10240 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
10241 const x = Math.round(pendingX / grid[0]) * grid[0];
10242 const y = Math.round(pendingY / grid[1]) * grid[1];
10243 return [x, y];
10244 }
10245 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
10246 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
10247 }
10248 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
10249 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
10250 }
10251
10252 // Get {x, y} positions from event.
10253 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
10254 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
10255 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
10256 const node = findDOMNode(draggableCore);
10257 // User can provide an offsetParent if desired.
10258 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
10259 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
10260 }
10261
10262 // Create an data object exposed by <DraggableCore>'s events
10263 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
10264 const isStart = !(0, _shims.isNum)(draggable.lastX);
10265 const node = findDOMNode(draggable);
10266 if (isStart) {
10267 // If this is our first move, use the x and y as last coords.
10268 return {
10269 node,
10270 deltaX: 0,
10271 deltaY: 0,
10272 lastX: x,
10273 lastY: y,
10274 x,
10275 y
10276 };
10277 } else {
10278 // Otherwise calculate proper values.
10279 return {
10280 node,
10281 deltaX: x - draggable.lastX,
10282 deltaY: y - draggable.lastY,
10283 lastX: draggable.lastX,
10284 lastY: draggable.lastY,
10285 x,
10286 y
10287 };
10288 }
10289 }
10290
10291 // Create an data exposed by <Draggable>'s events
10292 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
10293 const scale = draggable.props.scale;
10294 return {
10295 node: coreData.node,
10296 x: draggable.state.x + coreData.deltaX / scale,
10297 y: draggable.state.y + coreData.deltaY / scale,
10298 deltaX: coreData.deltaX / scale,
10299 deltaY: coreData.deltaY / scale,
10300 lastX: draggable.state.x,
10301 lastY: draggable.state.y
10302 };
10303 }
10304
10305 // A lot faster than stringify/parse
10306 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
10307 return {
10308 left: bounds.left,
10309 top: bounds.top,
10310 right: bounds.right,
10311 bottom: bounds.bottom
10312 };
10313 }
10314 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
10315 const node = draggable.findDOMNode();
10316 if (!node) {
10317 throw new Error('<DraggableCore>: Unmounted during event!');
10318 }
10319 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
10320 return node;
10321 }
10322
10323 /***/ }),
10324
10325 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
10326 /*!****************************************************************!*\
10327 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
10328 \****************************************************************/
10329 /***/ ((__unused_webpack_module, exports) => {
10330
10331 "use strict";
10332
10333
10334 Object.defineProperty(exports, "__esModule", ({
10335 value: true
10336 }));
10337 exports.dontSetMe = dontSetMe;
10338 exports.findInArray = findInArray;
10339 exports.int = int;
10340 exports.isFunction = isFunction;
10341 exports.isNum = isNum;
10342 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
10343 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
10344 for (let i = 0, length = array.length; i < length; i++) {
10345 if (callback.apply(callback, [array[i], i, array])) return array[i];
10346 }
10347 }
10348 function isFunction(func /*: any*/) /*: boolean %checks*/{
10349 // $FlowIgnore[method-unbinding]
10350 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
10351 }
10352 function isNum(num /*: any*/) /*: boolean %checks*/{
10353 return typeof num === 'number' && !isNaN(num);
10354 }
10355 function int(a /*: string*/) /*: number*/{
10356 return parseInt(a, 10);
10357 }
10358 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
10359 if (props[propName]) {
10360 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
10361 }
10362 }
10363
10364 /***/ }),
10365
10366 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
10367 /*!************************************************************************!*\
10368 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
10369 \************************************************************************/
10370 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10371
10372 "use strict";
10373 __webpack_require__.r(__webpack_exports__);
10374 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10375 /* harmony export */ clsx: () => (/* binding */ clsx),
10376 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10377 /* harmony export */ });
10378 function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);
10379
10380 /***/ }),
10381
10382 /***/ "../node_modules/validator/lib/isFQDN.js":
10383 /*!***********************************************!*\
10384 !*** ../node_modules/validator/lib/isFQDN.js ***!
10385 \***********************************************/
10386 /***/ ((module, exports, __webpack_require__) => {
10387
10388 "use strict";
10389
10390
10391 Object.defineProperty(exports, "__esModule", ({
10392 value: true
10393 }));
10394 exports["default"] = isFQDN;
10395 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10396 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10397 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10398 var default_fqdn_options = {
10399 require_tld: true,
10400 allow_underscores: false,
10401 allow_trailing_dot: false,
10402 allow_numeric_tld: false,
10403 allow_wildcard: false,
10404 ignore_max_length: false
10405 };
10406 function isFQDN(str, options) {
10407 (0, _assertString.default)(str);
10408 options = (0, _merge.default)(options, default_fqdn_options);
10409
10410 /* Remove the optional trailing dot before checking validity */
10411 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
10412 str = str.substring(0, str.length - 1);
10413 }
10414
10415 /* Remove the optional wildcard before checking validity */
10416 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
10417 str = str.substring(2);
10418 }
10419 var parts = str.split('.');
10420 var tld = parts[parts.length - 1];
10421 if (options.require_tld) {
10422 // disallow fqdns without tld
10423 if (parts.length < 2) {
10424 return false;
10425 }
10426 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
10427 return false;
10428 }
10429
10430 // disallow spaces
10431 if (/\s/.test(tld)) {
10432 return false;
10433 }
10434 }
10435
10436 // reject numeric TLDs
10437 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
10438 return false;
10439 }
10440 return parts.every(function (part) {
10441 if (part.length > 63 && !options.ignore_max_length) {
10442 return false;
10443 }
10444 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
10445 return false;
10446 }
10447
10448 // disallow full-width chars
10449 if (/[\uff01-\uff5e]/.test(part)) {
10450 return false;
10451 }
10452
10453 // disallow parts starting or ending with hyphen
10454 if (/^-|-$/.test(part)) {
10455 return false;
10456 }
10457 if (!options.allow_underscores && /_/.test(part)) {
10458 return false;
10459 }
10460 return true;
10461 });
10462 }
10463 module.exports = exports.default;
10464 module.exports["default"] = exports.default;
10465
10466 /***/ }),
10467
10468 /***/ "../node_modules/validator/lib/isIP.js":
10469 /*!*********************************************!*\
10470 !*** ../node_modules/validator/lib/isIP.js ***!
10471 \*********************************************/
10472 /***/ ((module, exports, __webpack_require__) => {
10473
10474 "use strict";
10475
10476
10477 Object.defineProperty(exports, "__esModule", ({
10478 value: true
10479 }));
10480 exports["default"] = isIP;
10481 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10482 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10483 function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10484 /**
10485 11.3. Examples
10486
10487 The following addresses
10488
10489 fe80::1234 (on the 1st link of the node)
10490 ff02::5678 (on the 5th link of the node)
10491 ff08::9abc (on the 10th organization of the node)
10492
10493 would be represented as follows:
10494
10495 fe80::1234%1
10496 ff02::5678%5
10497 ff08::9abc%10
10498
10499 (Here we assume a natural translation from a zone index to the
10500 <zone_id> part, where the Nth zone of any scope is translated into
10501 "N".)
10502
10503 If we use interface names as <zone_id>, those addresses could also be
10504 represented as follows:
10505
10506 fe80::1234%ne0
10507 ff02::5678%pvc1.3
10508 ff08::9abc%interface10
10509
10510 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
10511 to the 5th link, and "interface10" belongs to the 10th organization.
10512 * * */
10513 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
10514 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
10515 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
10516 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
10517 var IPv6AddressRegExp = new RegExp('^(' + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ')(%[0-9a-zA-Z.]{1,})?$');
10518 function isIP(ipAddress) {
10519 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10520 (0, _assertString.default)(ipAddress);
10521
10522 // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])
10523 // eslint-disable-next-line prefer-rest-params
10524 var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';
10525 if (!version) {
10526 return isIP(ipAddress, {
10527 version: 4
10528 }) || isIP(ipAddress, {
10529 version: 6
10530 });
10531 }
10532 if (version.toString() === '4') {
10533 return IPv4AddressRegExp.test(ipAddress);
10534 }
10535 if (version.toString() === '6') {
10536 return IPv6AddressRegExp.test(ipAddress);
10537 }
10538 return false;
10539 }
10540 module.exports = exports.default;
10541 module.exports["default"] = exports.default;
10542
10543 /***/ }),
10544
10545 /***/ "../node_modules/validator/lib/isURL.js":
10546 /*!**********************************************!*\
10547 !*** ../node_modules/validator/lib/isURL.js ***!
10548 \**********************************************/
10549 /***/ ((module, exports, __webpack_require__) => {
10550
10551 "use strict";
10552
10553
10554 Object.defineProperty(exports, "__esModule", ({
10555 value: true
10556 }));
10557 exports["default"] = isURL;
10558 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10559 var _checkHost = _interopRequireDefault(__webpack_require__(/*! ./util/checkHost */ "../node_modules/validator/lib/util/checkHost.js"));
10560 var _includesString = _interopRequireDefault(__webpack_require__(/*! ./util/includesString */ "../node_modules/validator/lib/util/includesString.js"));
10561 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
10562 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
10563 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10564 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10565 function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10566 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10567 function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
10568 function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10569 function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10570 function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
10571 /*
10572 options for isURL method
10573
10574 protocols - valid protocols can be modified with this option.
10575 require_tld - If set to false isURL will not check if the URL's host includes a top-level domain.
10576 require_protocol - if set to true isURL will return false if protocol is not present in the URL.
10577 require_host - if set to false isURL will not check if host is present in the URL.
10578 require_port - if set to true isURL will check if port is present in the URL.
10579 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.
10580 allow_underscores - if set to true, the validator will allow underscores in the URL.
10581 host_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings
10582 defined in it, the validation fails.
10583 host_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings
10584 defined in it, the validation fails.
10585 allow_trailing_dot - if set to true, the validator will allow the domain to end with
10586 a `.` character.
10587 allow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.
10588 allow_fragments - if set to false isURL will return false if fragments are present.
10589 allow_query_components - if set to false isURL will return false if query components are present.
10590 disallow_auth - if set to true, the validator will fail if the URL contains an authentication
10591 component, e.g. `http://username:[email protected]`
10592 validate_length - if set to false isURL will skip string length validation. `max_allowed_length`
10593 will be ignored if this is set as `false`.
10594 max_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is
10595 2084 that IE maximum URL length).
10596
10597 */
10598
10599 var default_url_options = {
10600 protocols: ['http', 'https', 'ftp'],
10601 require_tld: true,
10602 require_protocol: false,
10603 require_host: true,
10604 require_port: false,
10605 require_valid_protocol: true,
10606 allow_underscores: false,
10607 allow_trailing_dot: false,
10608 allow_protocol_relative_urls: false,
10609 allow_fragments: true,
10610 allow_query_components: true,
10611 validate_length: true,
10612 max_allowed_length: 2084
10613 };
10614 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
10615 function isURL(url, options) {
10616 (0, _assertString.default)(url);
10617 if (!url || /[\s<>]/.test(url)) {
10618 return false;
10619 }
10620 if (url.indexOf('mailto:') === 0) {
10621 return false;
10622 }
10623 options = (0, _merge.default)(options, default_url_options);
10624 if (options.validate_length && url.length > options.max_allowed_length) {
10625 return false;
10626 }
10627 if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {
10628 return false;
10629 }
10630 if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {
10631 return false;
10632 }
10633 var protocol, auth, host, hostname, port, port_str, split, ipv6;
10634 split = url.split('#');
10635 url = split.shift();
10636 split = url.split('?');
10637 url = split.shift();
10638 split = url.split('://');
10639 if (split.length > 1) {
10640 protocol = split.shift().toLowerCase();
10641 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
10642 return false;
10643 }
10644 } else if (options.require_protocol) {
10645 return false;
10646 } else if (url.slice(0, 2) === '//') {
10647 if (!options.allow_protocol_relative_urls) {
10648 return false;
10649 }
10650 split[0] = url.slice(2);
10651 }
10652 url = split.join('://');
10653 if (url === '') {
10654 return false;
10655 }
10656 split = url.split('/');
10657 url = split.shift();
10658 if (url === '' && !options.require_host) {
10659 return true;
10660 }
10661 split = url.split('@');
10662 if (split.length > 1) {
10663 if (options.disallow_auth) {
10664 return false;
10665 }
10666 if (split[0] === '') {
10667 return false;
10668 }
10669 auth = split.shift();
10670 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
10671 return false;
10672 }
10673 var _auth$split = auth.split(':'),
10674 _auth$split2 = _slicedToArray(_auth$split, 2),
10675 user = _auth$split2[0],
10676 password = _auth$split2[1];
10677 if (user === '' && password === '') {
10678 return false;
10679 }
10680 }
10681 hostname = split.join('@');
10682 port_str = null;
10683 ipv6 = null;
10684 var ipv6_match = hostname.match(wrapped_ipv6);
10685 if (ipv6_match) {
10686 host = '';
10687 ipv6 = ipv6_match[1];
10688 port_str = ipv6_match[2] || null;
10689 } else {
10690 split = hostname.split(':');
10691 host = split.shift();
10692 if (split.length) {
10693 port_str = split.join(':');
10694 }
10695 }
10696 if (port_str !== null && port_str.length > 0) {
10697 port = parseInt(port_str, 10);
10698 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
10699 return false;
10700 }
10701 } else if (options.require_port) {
10702 return false;
10703 }
10704 if (options.host_whitelist) {
10705 return (0, _checkHost.default)(host, options.host_whitelist);
10706 }
10707 if (host === '' && !options.require_host) {
10708 return true;
10709 }
10710 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
10711 return false;
10712 }
10713 host = host || ipv6;
10714 if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
10715 return false;
10716 }
10717 return true;
10718 }
10719 module.exports = exports.default;
10720 module.exports["default"] = exports.default;
10721
10722 /***/ }),
10723
10724 /***/ "../node_modules/validator/lib/util/assertString.js":
10725 /*!**********************************************************!*\
10726 !*** ../node_modules/validator/lib/util/assertString.js ***!
10727 \**********************************************************/
10728 /***/ ((module, exports) => {
10729
10730 "use strict";
10731
10732
10733 Object.defineProperty(exports, "__esModule", ({
10734 value: true
10735 }));
10736 exports["default"] = assertString;
10737 function assertString(input) {
10738 if (input === undefined || input === null) throw new TypeError("Expected a string but received a ".concat(input));
10739 if (input.constructor.name !== 'String') throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
10740 }
10741 module.exports = exports.default;
10742 module.exports["default"] = exports.default;
10743
10744 /***/ }),
10745
10746 /***/ "../node_modules/validator/lib/util/checkHost.js":
10747 /*!*******************************************************!*\
10748 !*** ../node_modules/validator/lib/util/checkHost.js ***!
10749 \*******************************************************/
10750 /***/ ((module, exports) => {
10751
10752 "use strict";
10753
10754
10755 Object.defineProperty(exports, "__esModule", ({
10756 value: true
10757 }));
10758 exports["default"] = checkHost;
10759 function isRegExp(obj) {
10760 return Object.prototype.toString.call(obj) === '[object RegExp]';
10761 }
10762 function checkHost(host, matches) {
10763 for (var i = 0; i < matches.length; i++) {
10764 var match = matches[i];
10765 if (host === match || isRegExp(match) && match.test(host)) {
10766 return true;
10767 }
10768 }
10769 return false;
10770 }
10771 module.exports = exports.default;
10772 module.exports["default"] = exports.default;
10773
10774 /***/ }),
10775
10776 /***/ "../node_modules/validator/lib/util/includesString.js":
10777 /*!************************************************************!*\
10778 !*** ../node_modules/validator/lib/util/includesString.js ***!
10779 \************************************************************/
10780 /***/ ((module, exports) => {
10781
10782 "use strict";
10783
10784
10785 Object.defineProperty(exports, "__esModule", ({
10786 value: true
10787 }));
10788 exports["default"] = void 0;
10789 var includes = function includes(str, val) {
10790 return str.indexOf(val) !== -1;
10791 };
10792 var _default = exports["default"] = includes;
10793 module.exports = exports.default;
10794 module.exports["default"] = exports.default;
10795
10796 /***/ }),
10797
10798 /***/ "../node_modules/validator/lib/util/merge.js":
10799 /*!***************************************************!*\
10800 !*** ../node_modules/validator/lib/util/merge.js ***!
10801 \***************************************************/
10802 /***/ ((module, exports) => {
10803
10804 "use strict";
10805
10806
10807 Object.defineProperty(exports, "__esModule", ({
10808 value: true
10809 }));
10810 exports["default"] = merge;
10811 function merge() {
10812 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10813 var defaults = arguments.length > 1 ? arguments[1] : undefined;
10814 for (var key in defaults) {
10815 if (typeof obj[key] === 'undefined') {
10816 obj[key] = defaults[key];
10817 }
10818 }
10819 return obj;
10820 }
10821 module.exports = exports.default;
10822 module.exports["default"] = exports.default;
10823
10824 /***/ }),
10825
10826 /***/ "@elementor/icons":
10827 /*!************************************!*\
10828 !*** external "elementorV2.icons" ***!
10829 \************************************/
10830 /***/ ((module) => {
10831
10832 "use strict";
10833 module.exports = elementorV2.icons;
10834
10835 /***/ }),
10836
10837 /***/ "@elementor/ui":
10838 /*!*********************************!*\
10839 !*** external "elementorV2.ui" ***!
10840 \*********************************/
10841 /***/ ((module) => {
10842
10843 "use strict";
10844 module.exports = elementorV2.ui;
10845
10846 /***/ }),
10847
10848 /***/ "@wordpress/i18n":
10849 /*!**************************!*\
10850 !*** external "wp.i18n" ***!
10851 \**************************/
10852 /***/ ((module) => {
10853
10854 "use strict";
10855 module.exports = wp.i18n;
10856
10857 /***/ }),
10858
10859 /***/ "react":
10860 /*!************************!*\
10861 !*** external "React" ***!
10862 \************************/
10863 /***/ ((module) => {
10864
10865 "use strict";
10866 module.exports = React;
10867
10868 /***/ }),
10869
10870 /***/ "react-dom":
10871 /*!***************************!*\
10872 !*** external "ReactDOM" ***!
10873 \***************************/
10874 /***/ ((module) => {
10875
10876 "use strict";
10877 module.exports = ReactDOM;
10878
10879 /***/ })
10880
10881 /******/ });
10882 /************************************************************************/
10883 /******/ // The module cache
10884 /******/ var __webpack_module_cache__ = {};
10885 /******/
10886 /******/ // The require function
10887 /******/ function __webpack_require__(moduleId) {
10888 /******/ // Check if module is in cache
10889 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10890 /******/ if (cachedModule !== undefined) {
10891 /******/ return cachedModule.exports;
10892 /******/ }
10893 /******/ // Create a new module (and put it into the cache)
10894 /******/ var module = __webpack_module_cache__[moduleId] = {
10895 /******/ // no module.id needed
10896 /******/ // no module.loaded needed
10897 /******/ exports: {}
10898 /******/ };
10899 /******/
10900 /******/ // Execute the module function
10901 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10902 /******/
10903 /******/ // Return the exports of the module
10904 /******/ return module.exports;
10905 /******/ }
10906 /******/
10907 /************************************************************************/
10908 /******/ /* webpack/runtime/define property getters */
10909 /******/ (() => {
10910 /******/ // define getter functions for harmony exports
10911 /******/ __webpack_require__.d = (exports, definition) => {
10912 /******/ for(var key in definition) {
10913 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10914 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10915 /******/ }
10916 /******/ }
10917 /******/ };
10918 /******/ })();
10919 /******/
10920 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10921 /******/ (() => {
10922 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10923 /******/ })();
10924 /******/
10925 /******/ /* webpack/runtime/make namespace object */
10926 /******/ (() => {
10927 /******/ // define __esModule on exports
10928 /******/ __webpack_require__.r = (exports) => {
10929 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10930 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10931 /******/ }
10932 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10933 /******/ };
10934 /******/ })();
10935 /******/
10936 /************************************************************************/
10937 var __webpack_exports__ = {};
10938 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10939 (() => {
10940 "use strict";
10941 var exports = __webpack_exports__;
10942 /*!*******************************************************!*\
10943 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10944 \*******************************************************/
10945
10946
10947 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10948 Object.defineProperty(exports, "__esModule", ({
10949 value: true
10950 }));
10951 exports["default"] = exports.AI_ATTACHMENT = void 0;
10952 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10953 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10954 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10955 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10956 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10957 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10958 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10959 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10960 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10961 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10962 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10963 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10964 var _applyTemplateForAiBehavior = _interopRequireDefault(__webpack_require__(/*! ./integration/library/apply-template-for-ai-behavior */ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js"));
10965 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10966 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
10967 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10968 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10969 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10970 function Module() {
10971 var _this;
10972 (0, _classCallCheck2.default)(this, Module);
10973 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10974 args[_key] = arguments[_key];
10975 }
10976 _this = _callSuper(this, Module, [].concat(args));
10977 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10978 var saveGroup = groups.find(function (group) {
10979 return 'save' === group.name;
10980 });
10981 if (!saveGroup) {
10982 return groups;
10983 }
10984 var contextMenu = {
10985 name: 'ai',
10986 icon: 'eicon-ai',
10987 isEnabled: function isEnabled() {
10988 return 0 !== currentElement.getContainer().children.length;
10989 },
10990 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10991 callback: function () {
10992 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10993 var container, json, attachments;
10994 return _regenerator.default.wrap(function (_context) {
10995 while (1) switch (_context.prev = _context.next) {
10996 case 0:
10997 container = currentElement.getContainer();
10998 json = container.model.toJSON({
10999 remove: ['default']
11000 });
11001 attachments = [{
11002 type: 'json',
11003 previewHTML: '',
11004 content: json,
11005 label: container.model.get('title'),
11006 source: _attachments.USER_VARIATION_SOURCE
11007 }];
11008 (0, _editorIntegration.renderLayoutApp)({
11009 parentContainer: container.parent,
11010 mode: _config.MODE_VARIATION,
11011 at: container.view._index,
11012 attachments: attachments,
11013 onSelect: function onSelect() {
11014 container.view.$el.hide();
11015 },
11016 onClose: function onClose() {
11017 container.view.$el.show();
11018 },
11019 onInsert: function onInsert(template) {
11020 (0, _editorIntegration.importToEditor)({
11021 parentContainer: container.parent,
11022 at: container.view._index,
11023 template: template,
11024 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
11025 replace: true
11026 });
11027 }
11028 });
11029 case 1:
11030 case "end":
11031 return _context.stop();
11032 }
11033 }, _callee);
11034 }));
11035 function callback() {
11036 return _callback.apply(this, arguments);
11037 }
11038 return callback;
11039 }()
11040 };
11041
11042 // Add on top of save group actions
11043 saveGroup.actions.unshift(contextMenu);
11044 return groups;
11045 });
11046 return _this;
11047 }
11048 (0, _inherits2.default)(Module, _elementorModules$edi);
11049 return (0, _createClass2.default)(Module, [{
11050 key: "onElementorInit",
11051 value: function onElementorInit() {
11052 var _this2 = this;
11053 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
11054 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
11055 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
11056 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
11057 $e.commands.register('library', 'generate-ai-variation', function (args) {
11058 return _this2.applyTemplate(args);
11059 });
11060 }
11061 }, {
11062 key: "applyTemplate",
11063 value: function applyTemplate(args) {
11064 window.postMessage({
11065 type: 'library/attach:start'
11066 });
11067 $e.components.get('library').downloadTemplate(args, function (data) {
11068 var model = args.model;
11069 window.postMessage({
11070 type: 'library/attach',
11071 json: data.content[0],
11072 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
11073 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
11074 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
11075 }, window.location.origin);
11076 });
11077 }
11078 }, {
11079 key: "registerLibraryActionButtonBehavior",
11080 value: function registerLibraryActionButtonBehavior(behaviors) {
11081 behaviors.applyAiTemplate = {
11082 behaviorClass: _applyTemplateForAiBehavior.default
11083 };
11084 return behaviors;
11085 }
11086 }, {
11087 key: "registerAiLayoutBehavior",
11088 value: function registerAiLayoutBehavior(behaviors) {
11089 behaviors.ai = {
11090 behaviorClass: _aiLayoutBehavior.default,
11091 context: {
11092 documentType: window.elementor.documents.getCurrent().config.type
11093 }
11094 };
11095 return behaviors;
11096 }
11097 }, {
11098 key: "filterLibraryActionButtonTemplate",
11099 value: function filterLibraryActionButtonTemplate(viewId) {
11100 var modalConfig = $e.components.get('library').manager.modalConfig;
11101 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
11102 if (originalCoreViewId !== viewId) {
11103 return viewId;
11104 }
11105 if ($e.routes.current.library !== 'library/templates/blocks') {
11106 return viewId;
11107 }
11108 if (AI_ATTACHMENT === modalConfig.mode) {
11109 viewId = '#tmpl-elementor-template-library-apply-ai-button';
11110 } else {
11111 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
11112 }
11113 return viewId;
11114 }
11115 }]);
11116 }(elementorModules.editor.utils.Module);
11117 new Module();
11118 })();
11119
11120 /******/ })()
11121 ;
11122 //# sourceMappingURL=ai-layout.js.map