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

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

11,118 lines 490.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.31.0 - 11-08-2025 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../assets/dev/js/utils/react.js":
6 /*!***************************************!*\
7 !*** ../assets/dev/js/utils/react.js ***!
8 \***************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 "use strict";
12
13
14 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
15 Object.defineProperty(exports, "__esModule", ({
16 value: true
17 }));
18 exports["default"] = void 0;
19 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
20 var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
21 var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
22 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
23 /**
24 * Support conditional rendering of a React App to the DOM, based on the React version.
25 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
26 *
27 * @param { React.ReactElement } app The app to render.
28 * @param { HTMLElement } domElement The DOM element to render the app into.
29 *
30 * @return {{ unmount: () => void }} The unmount function.
31 */
32 function render(app, domElement) {
33 var unmountFunction;
34 try {
35 var root = (0, _client.createRoot)(domElement);
36 root.render(app);
37 unmountFunction = function unmountFunction() {
38 root.unmount();
39 };
40 } catch (e) {
41 // eslint-disable-next-line react/no-deprecated
42 ReactDOM.render(app, domElement);
43 unmountFunction = function unmountFunction() {
44 // eslint-disable-next-line react/no-deprecated
45 ReactDOM.unmountComponentAtNode(domElement);
46 };
47 }
48 return {
49 unmount: unmountFunction
50 };
51 }
52 var _default = exports["default"] = {
53 render: render
54 };
55
56 /***/ }),
57
58 /***/ "../modules/ai/assets/js/editor/ai-layout-behavior.js":
59 /*!************************************************************!*\
60 !*** ../modules/ai/assets/js/editor/ai-layout-behavior.js ***!
61 \************************************************************/
62 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
63
64 "use strict";
65
66
67 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
68 Object.defineProperty(exports, "__esModule", ({
69 value: true
70 }));
71 exports["default"] = void 0;
72 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
73 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
74 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
75 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
76 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
77 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
78 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
79 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
80 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
81 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
82 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
83 var AiLayoutBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
84 function AiLayoutBehavior() {
85 var _this;
86 (0, _classCallCheck2.default)(this, AiLayoutBehavior);
87 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
88 args[_key] = arguments[_key];
89 }
90 _this = _callSuper(this, AiLayoutBehavior, [].concat(args));
91 (0, _defineProperty2.default)(_this, "previewContainer", null);
92 return _this;
93 }
94 (0, _inherits2.default)(AiLayoutBehavior, _Marionette$Behavior);
95 return (0, _createClass2.default)(AiLayoutBehavior, [{
96 key: "ui",
97 value: function ui() {
98 return {
99 aiButton: '.e-ai-layout-button',
100 addTemplateButton: '.elementor-add-template-button'
101 };
102 }
103 }, {
104 key: "events",
105 value: function events() {
106 return {
107 'click @ui.aiButton': 'onAiButtonClick'
108 };
109 }
110 }, {
111 key: "onAiButtonClick",
112 value: function onAiButtonClick(e) {
113 e.stopPropagation();
114 window.elementorAiCurrentContext = this.getOption('context');
115 (0, _editorIntegration.renderLayoutApp)({
116 parentContainer: elementor.getPreviewContainer(),
117 mode: _config.MODE_LAYOUT,
118 at: this.view.getOption('at'),
119 onInsert: this.onInsert.bind(this),
120 onRenderApp: function onRenderApp(args) {
121 args.previewContainer.init();
122 },
123 onGenerate: function onGenerate(args) {
124 args.previewContainer.reset();
125 }
126 });
127 }
128 }, {
129 key: "hideDropArea",
130 value: function hideDropArea() {
131 this.view.onCloseButtonClick();
132 }
133 }, {
134 key: "onInsert",
135 value: function onInsert(template) {
136 this.hideDropArea();
137 (0, _editorIntegration.importToEditor)({
138 parentContainer: elementor.getPreviewContainer(),
139 at: this.view.getOption('at'),
140 template: template,
141 historyTitle: (0, _i18n.__)('AI Layout', 'elementor')
142 });
143 }
144 }, {
145 key: "onRender",
146 value: function onRender() {
147 var $button = jQuery('<button>', {
148 type: 'button',
149 class: 'e-ai-layout-button elementor-add-section-area-button e-button-primary',
150 title: (0, _i18n.__)('Build with AI', 'elementor'),
151 'aria-label': (0, _i18n.__)('Build with AI', 'elementor')
152 });
153 $button.html("\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<div class=\"e-ai-layout-button--sparkle\"></div>\n\t\t\t<i class=\"eicon-ai\" aria-hidden=\"true\"></i>\n\t\t");
154 this.ui.addTemplateButton.after($button);
155 }
156 }]);
157 }(Marionette.Behavior);
158
159 /***/ }),
160
161 /***/ "../modules/ai/assets/js/editor/api/index.js":
162 /*!***************************************************!*\
163 !*** ../modules/ai/assets/js/editor/api/index.js ***!
164 \***************************************************/
165 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
166
167 "use strict";
168
169
170 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
171 Object.defineProperty(exports, "__esModule", ({
172 value: true
173 }));
174 exports.uploadImage = exports.toggleFavoriteHistoryItem = exports.setStatusFeedback = exports.setGetStarted = exports.getUserInformation = exports.getTextToImageGeneration = exports.getRemoteFrontendConfig = exports.getRemoteConfig = exports.getProductImageUnification = exports.getLayoutPromptEnhanced = exports.getImageToImageUpscale = exports.getImageToImageReplaceBackground = exports.getImageToImageRemoveText = exports.getImageToImageRemoveBackground = exports.getImageToImageOutPainting = exports.getImageToImageMaskGeneration = exports.getImageToImageMaskCleanup = exports.getImageToImageIsolateObjects = exports.getImageToImageGeneration = exports.getImagePromptEnhanced = exports.getHistory = exports.getFeaturedImage = exports.getExcerpt = exports.getEditText = exports.getCustomCode = exports.getCustomCSS = exports.getCompletionText = exports.getAnimation = exports.generateLayout = exports.deleteHistoryItem = void 0;
175 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
176 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
177 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
178 var request = function request(endpoint) {
179 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
180 var immediately = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
181 var signal = arguments.length > 3 ? arguments[3] : undefined;
182 if (Object.keys(data).length) {
183 if (window.elementorAiCurrentContext) {
184 data.context = window.elementorAiCurrentContext;
185 } else {
186 data.context = window.elementorWpAiCurrentContext;
187 }
188 }
189 return new Promise(function (resolve, reject) {
190 var ajaxData = elementorCommon.ajax.addRequest(endpoint, {
191 success: resolve,
192 error: reject,
193 data: data,
194 unique_id: data.unique_id
195 }, immediately);
196 if (signal && ajaxData.jqXhr) {
197 signal.addEventListener('abort', ajaxData.jqXhr.abort);
198 }
199 });
200 };
201 var getUserInformation = exports.getUserInformation = function getUserInformation(immediately) {
202 return request('ai_get_user_information', undefined, immediately);
203 };
204 var getRemoteConfig = exports.getRemoteConfig = function getRemoteConfig() {
205 return request('ai_get_remote_config');
206 };
207 var getRemoteFrontendConfig = exports.getRemoteFrontendConfig = function getRemoteFrontendConfig(payload, immediately) {
208 return request('ai_get_remote_frontend_config', {
209 payload: payload
210 }, immediately);
211 };
212 var getCompletionText = exports.getCompletionText = function getCompletionText(payload) {
213 return request('ai_get_completion_text', {
214 payload: payload
215 });
216 };
217 var getExcerpt = exports.getExcerpt = function getExcerpt(payload) {
218 return request('ai_get_excerpt', {
219 payload: payload
220 });
221 };
222 var getFeaturedImage = exports.getFeaturedImage = function getFeaturedImage(payload) {
223 return request('ai_get_featured_image', {
224 payload: payload
225 });
226 };
227 var getEditText = exports.getEditText = function getEditText(payload) {
228 return request('ai_get_edit_text', {
229 payload: payload
230 });
231 };
232 var getCustomCode = exports.getCustomCode = function getCustomCode(payload) {
233 return request('ai_get_custom_code', {
234 payload: payload
235 });
236 };
237 var getCustomCSS = exports.getCustomCSS = function getCustomCSS(payload) {
238 return request('ai_get_custom_css', {
239 payload: payload
240 });
241 };
242 var setGetStarted = exports.setGetStarted = function setGetStarted() {
243 return request('ai_set_get_started');
244 };
245 var setStatusFeedback = exports.setStatusFeedback = function setStatusFeedback(responseId) {
246 return request('ai_set_status_feedback', {
247 response_id: responseId
248 }, true);
249 };
250 var getTextToImageGeneration = exports.getTextToImageGeneration = function getTextToImageGeneration(payload) {
251 return request('ai_get_text_to_image', {
252 payload: payload
253 });
254 };
255 var getImageToImageGeneration = exports.getImageToImageGeneration = function getImageToImageGeneration(payload) {
256 return request('ai_get_image_to_image', {
257 payload: payload
258 });
259 };
260 var getImageToImageMaskCleanup = exports.getImageToImageMaskCleanup = function getImageToImageMaskCleanup(payload) {
261 return request('ai_get_image_to_image_mask_cleanup', {
262 payload: payload
263 });
264 };
265 var getImageToImageMaskGeneration = exports.getImageToImageMaskGeneration = function getImageToImageMaskGeneration(payload) {
266 return request('ai_get_image_to_image_mask', {
267 payload: payload
268 });
269 };
270 var getImageToImageOutPainting = exports.getImageToImageOutPainting = function getImageToImageOutPainting(payload) {
271 return request('ai_get_image_to_image_outpainting', {
272 payload: payload
273 });
274 };
275 var getImageToImageUpscale = exports.getImageToImageUpscale = function getImageToImageUpscale(payload) {
276 return request('ai_get_image_to_image_upscale', {
277 payload: payload
278 });
279 };
280 var getImageToImageRemoveBackground = exports.getImageToImageRemoveBackground = function getImageToImageRemoveBackground(payload) {
281 return request('ai_get_image_to_image_remove_background', {
282 payload: payload
283 });
284 };
285 var getImageToImageIsolateObjects = exports.getImageToImageIsolateObjects = function getImageToImageIsolateObjects(payload) {
286 return request('ai_get_image_to_image_isolate_objects', {
287 payload: payload
288 });
289 };
290 var getImageToImageReplaceBackground = exports.getImageToImageReplaceBackground = function getImageToImageReplaceBackground(payload) {
291 return request('ai_get_image_to_image_replace_background', {
292 payload: payload
293 });
294 };
295 var getImageToImageRemoveText = exports.getImageToImageRemoveText = function getImageToImageRemoveText(image) {
296 return request('ai_get_image_to_image_remove_text', {
297 image: image
298 });
299 };
300 var getImagePromptEnhanced = exports.getImagePromptEnhanced = function getImagePromptEnhanced(prompt) {
301 return request('ai_get_image_prompt_enhancer', {
302 prompt: prompt
303 });
304 };
305 var getProductImageUnification = exports.getProductImageUnification = function getProductImageUnification(payload, immediately) {
306 return request('ai_get_product_image_unification', {
307 payload: payload
308 }, immediately);
309 };
310 var getAnimation = exports.getAnimation = function getAnimation(payload) {
311 return request('ai_get_animation', {
312 payload: payload
313 });
314 };
315 var uploadImage = exports.uploadImage = function uploadImage(image) {
316 return request('ai_upload_image', _objectSpread(_objectSpread({}, image), {}, {
317 editor_post_id: image.image.editor_post_id,
318 unique_id: image.image.unique_id
319 }));
320 };
321
322 /**
323 * @typedef {Object} AttachmentPropType - See ./types/attachment.js
324 * @typedef {Object} requestBody
325 * @property {string} prompt - Prompt to generate the layout from.
326 * @property {0|1|2} [variationType] - Type of the layout to generate (actually it's a position).
327 * @property {string[]} [prevGeneratedIds] - Previously generated ids for exclusion on regeneration.
328 * @property {AttachmentPropType[]} [attachments] - Attachments to use for the generation. currently only `json` type is supported - a container JSON to generate variations from.
329 */
330
331 /**
332 * @param {requestBody} requestBody
333 * @param {AbortSignal} [signal]
334 */
335 var generateLayout = exports.generateLayout = function generateLayout(requestBody, signal) {
336 return request('ai_generate_layout', requestBody, true, signal);
337 };
338 var getLayoutPromptEnhanced = exports.getLayoutPromptEnhanced = function getLayoutPromptEnhanced(prompt, enhanceType) {
339 return request('ai_get_layout_prompt_enhancer', {
340 prompt: prompt,
341 enhance_type: enhanceType
342 });
343 };
344 var getHistory = exports.getHistory = function getHistory(type, page, limit) {
345 return request('ai_get_history', {
346 type: type,
347 page: page,
348 limit: limit
349 });
350 };
351 var deleteHistoryItem = exports.deleteHistoryItem = function deleteHistoryItem(id) {
352 return request('ai_delete_history_item', {
353 id: id
354 });
355 };
356 var toggleFavoriteHistoryItem = exports.toggleFavoriteHistoryItem = function toggleFavoriteHistoryItem(id) {
357 return request('ai_toggle_favorite_history_item', {
358 id: id
359 });
360 };
361
362 /***/ }),
363
364 /***/ "../modules/ai/assets/js/editor/components/alert-dialog.js":
365 /*!*****************************************************************!*\
366 !*** ../modules/ai/assets/js/editor/components/alert-dialog.js ***!
367 \*****************************************************************/
368 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
369
370 "use strict";
371
372
373 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
374 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
375 Object.defineProperty(exports, "__esModule", ({
376 value: true
377 }));
378 exports.AlertDialog = void 0;
379 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
380 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
381 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
382 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
383 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
384 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
385 var AlertDialog = exports.AlertDialog = function AlertDialog(props) {
386 var _useState = (0, _react.useState)(true),
387 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
388 isShown = _useState2[0],
389 setIsShown = _useState2[1];
390 if (!isShown) {
391 return null;
392 }
393 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
394 open: true,
395 maxWidth: "lg"
396 }, /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
397 sx: {
398 padding: 0
399 }
400 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
401 sx: {
402 textAlign: 'center',
403 padding: 3
404 }
405 }, props.message), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
406 alignItems: "center",
407 spacing: 2,
408 marginBottom: 2
409 }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
410 variant: "contained",
411 type: "button",
412 color: "primary",
413 onClick: function onClick() {
414 var _props$onClose;
415 setIsShown(false);
416 (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
417 }
418 }, (0, _i18n.__)('Close', 'elementor')))));
419 };
420 AlertDialog.propTypes = {
421 message: _propTypes.default.string.isRequired,
422 onClose: _propTypes.default.func
423 };
424
425 /***/ }),
426
427 /***/ "../modules/ai/assets/js/editor/components/dialog-header.js":
428 /*!******************************************************************!*\
429 !*** ../modules/ai/assets/js/editor/components/dialog-header.js ***!
430 \******************************************************************/
431 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
432
433 "use strict";
434
435
436 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
437 Object.defineProperty(exports, "__esModule", ({
438 value: true
439 }));
440 exports["default"] = void 0;
441 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
442 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
443 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
444 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
445 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
446 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
447 var ElementorLogo = function ElementorLogo(props) {
448 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
449 viewBox: "0 0 32 32"
450 }, props), /*#__PURE__*/_react.default.createElement("path", {
451 fillRule: "evenodd",
452 clipRule: "evenodd",
453 d: "M2.69648 24.8891C0.938383 22.2579 0 19.1645 0 16C0 11.7566 1.68571 7.68687 4.68629 4.68629C7.68687 1.68571 11.7566 0 16 0C19.1645 0 22.2579 0.938383 24.8891 2.69648C27.5203 4.45459 29.5711 6.95344 30.7821 9.87706C31.9931 12.8007 32.3099 16.0177 31.6926 19.1214C31.0752 22.2251 29.5514 25.0761 27.3137 27.3137C25.0761 29.5514 22.2251 31.0752 19.1214 31.6926C16.0177 32.3099 12.8007 31.9931 9.87706 30.7821C6.95344 29.5711 4.45459 27.5203 2.69648 24.8891ZM12.0006 9.33281H9.33437V22.6665H12.0006V9.33281ZM22.6657 9.33281H14.6669V11.9991H22.6657V9.33281ZM22.6657 14.6654H14.6669V17.3316H22.6657V14.6654ZM22.6657 20.0003H14.6669V22.6665H22.6657V20.0003Z"
454 }));
455 };
456 var StyledElementorLogo = (0, _ui.styled)(ElementorLogo)(function (_ref) {
457 var theme = _ref.theme;
458 return {
459 width: theme.spacing(3),
460 height: theme.spacing(3),
461 '& path': {
462 fill: theme.palette.text.primary
463 }
464 };
465 });
466 var DialogHeader = function DialogHeader(props) {
467 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
468 sx: {
469 fontWeight: 'normal'
470 },
471 color: "transparent",
472 position: "relative"
473 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
474 variant: "dense"
475 }, /*#__PURE__*/_react.default.createElement(StyledElementorLogo, {
476 sx: {
477 mr: 1
478 }
479 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
480 component: "span",
481 variant: "subtitle2",
482 sx: {
483 fontWeight: 'bold',
484 textTransform: 'uppercase'
485 }
486 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
487 label: (0, _i18n.__)('Beta', 'elementor'),
488 color: "default",
489 size: "small",
490 sx: {
491 ml: 1
492 }
493 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
494 direction: "row",
495 spacing: 1,
496 alignItems: "center",
497 sx: {
498 ml: 'auto'
499 }
500 }, props.children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
501 size: "small",
502 "aria-label": "close",
503 onClick: props.onClose,
504 sx: {
505 '&.MuiButtonBase-root': {
506 mr: -1
507 }
508 }
509 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
510 };
511 DialogHeader.propTypes = {
512 onClose: _propTypes.default.func.isRequired,
513 children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node])
514 };
515 var _default = exports["default"] = DialogHeader;
516
517 /***/ }),
518
519 /***/ "../modules/ai/assets/js/editor/components/loader.js":
520 /*!***********************************************************!*\
521 !*** ../modules/ai/assets/js/editor/components/loader.js ***!
522 \***********************************************************/
523 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
524
525 "use strict";
526
527
528 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
529 Object.defineProperty(exports, "__esModule", ({
530 value: true
531 }));
532 exports["default"] = void 0;
533 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
534 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
535 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
536 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
537 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
538 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
539 var _excluded = ["sx", "BoxProps"];
540 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; }
541 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; }
542 var Loader = function Loader(_ref) {
543 var _ref$sx = _ref.sx,
544 sx = _ref$sx === void 0 ? {} : _ref$sx,
545 _ref$BoxProps = _ref.BoxProps,
546 BoxProps = _ref$BoxProps === void 0 ? {} : _ref$BoxProps,
547 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
548 return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
549 width: "100%",
550 display: "flex",
551 alignItems: "center"
552 }, BoxProps, {
553 sx: _objectSpread({
554 px: 1.5,
555 minHeight: function minHeight(theme) {
556 return theme.spacing(5);
557 }
558 }, BoxProps.sx || {})
559 }), /*#__PURE__*/_react.default.createElement(_ui.LinearProgress, (0, _extends2.default)({
560 color: "secondary"
561 }, props, {
562 sx: _objectSpread({
563 width: '100%'
564 }, sx)
565 })));
566 };
567 Loader.propTypes = {
568 sx: _propTypes.default.object,
569 BoxProps: _propTypes.default.object
570 };
571 var _default = exports["default"] = Loader;
572
573 /***/ }),
574
575 /***/ "../modules/ai/assets/js/editor/components/prompt-dialog.js":
576 /*!******************************************************************!*\
577 !*** ../modules/ai/assets/js/editor/components/prompt-dialog.js ***!
578 \******************************************************************/
579 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
580
581 "use strict";
582
583
584 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
585 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
586 Object.defineProperty(exports, "__esModule", ({
587 value: true
588 }));
589 exports["default"] = void 0;
590 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
591 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
592 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
593 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
594 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
595 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
596 var _reactDraggable = _interopRequireDefault(__webpack_require__(/*! react-draggable */ "../node_modules/react-draggable/build/cjs/cjs.js"));
597 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
598 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); }
599 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; }
600 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; }
601 var DraggablePaper = function DraggablePaper(props) {
602 var _useState = (0, _react.useState)({
603 x: 0,
604 y: 0
605 }),
606 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
607 position = _useState2[0],
608 setPosition = _useState2[1];
609 var paperRef = (0, _react.useRef)(null);
610 var timeout = (0, _react.useRef)(null);
611 var onDrag = function onDrag(_e, _ref) {
612 var x = _ref.x,
613 y = _ref.y;
614 return setPosition({
615 x: x,
616 y: y
617 });
618 };
619 var handlePositionBoundaries = function handlePositionBoundaries() {
620 clearTimeout(timeout.current);
621
622 // Ensuring the dialog header, which is used as the dialog dragging handle, does not exceed the screen.
623 timeout.current = setTimeout(function () {
624 var _paperRef$current;
625 var dialogTop = (_paperRef$current = paperRef.current) === null || _paperRef$current === void 0 ? void 0 : _paperRef$current.getBoundingClientRect().top;
626 if (dialogTop < 0) {
627 setPosition(function (prev) {
628 return _objectSpread(_objectSpread({}, prev), {}, {
629 y: prev.y - dialogTop
630 });
631 });
632 }
633 }, 50);
634 };
635 (0, _react.useEffect)(function () {
636 var resizeObserver = new ResizeObserver(handlePositionBoundaries);
637 resizeObserver.observe(paperRef.current);
638 return function () {
639 resizeObserver.disconnect();
640 };
641 }, []);
642 return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
643 position: position,
644 onDrag: onDrag,
645 handle: ".MuiAppBar-root",
646 cancel: '[class*="MuiDialogContent-root"]',
647 bounds: "parent"
648 }, /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
649 ref: paperRef
650 })));
651 };
652 var PromptDialog = function PromptDialog(props) {
653 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
654 scroll: "paper",
655 open: true,
656 fullWidth: true,
657 hideBackdrop: true,
658 PaperComponent: DraggablePaper,
659 disableScrollLock: true,
660 sx: {
661 '& .MuiDialog-container': {
662 alignItems: 'flex-start',
663 mt: '18vh'
664 }
665 },
666 PaperProps: {
667 sx: {
668 m: 0,
669 maxHeight: '76vh'
670 }
671 }
672 }, props), props.children);
673 };
674 PromptDialog.propTypes = {
675 onClose: _propTypes.default.func.isRequired,
676 children: _propTypes.default.node,
677 maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])
678 };
679 PromptDialog.Header = _dialogHeader.default;
680 PromptDialog.Content = _ui.DialogContent;
681 var _default = exports["default"] = PromptDialog;
682
683 /***/ }),
684
685 /***/ "../modules/ai/assets/js/editor/components/prompt-error-message.js":
686 /*!*************************************************************************!*\
687 !*** ../modules/ai/assets/js/editor/components/prompt-error-message.js ***!
688 \*************************************************************************/
689 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
690
691 "use strict";
692 /* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
693
694
695 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
696 Object.defineProperty(exports, "__esModule", ({
697 value: true
698 }));
699 exports["default"] = void 0;
700 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
701 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
702 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
703 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
704 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
705 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
706 var _excluded = ["error", "onRetry", "actionPosition"];
707 var PromptErrorMessage = function PromptErrorMessage(_ref) {
708 var error = _ref.error,
709 _ref$onRetry = _ref.onRetry,
710 onRetry = _ref$onRetry === void 0 ? function () {} : _ref$onRetry,
711 _ref$actionPosition = _ref.actionPosition,
712 actionPosition = _ref$actionPosition === void 0 ? 'default' : _ref$actionPosition,
713 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
714 function getQuotaReachedTrailMessage(featureName) {
715 if (!featureName) {
716 return {
717 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('It\'s time to upgrade.', 'elementor')),
718 description: (0, _i18n.__)('Enjoy the free trial? Upgrade now for unlimited access to built-in image, text and custom code generators.', 'elementor'),
719 buttonText: (0, _i18n.__)('Upgrade', 'elementor'),
720 buttonAction: function buttonAction() {
721 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
722 }
723 };
724 }
725 return {
726 // Translators: %s is the feature name.
727 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, sprintf((0, _i18n.__)('You\'ve used all AI credits for %s.', 'elementor'), featureName.toLowerCase())),
728 description: (0, _i18n.__)('Upgrade now to keep using this feature. You still have credits for other AI features (Text, Code, Images, Containers, etc.)', 'elementor'),
729 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
730 buttonAction: function buttonAction() {
731 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
732 }
733 };
734 }
735 function getErrorMessage() {
736 var _error$extra_data;
737 var errMsg = error.message || error;
738 var featureName = (_error$extra_data = error.extra_data) === null || _error$extra_data === void 0 ? void 0 : _error$extra_data.featureName;
739 var messages = {
740 default: {
741 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
742 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
743 buttonText: (0, _i18n.__)('Try again', 'elementor'),
744 buttonAction: onRetry
745 },
746 service_outage_internal: {
747 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
748 description: (0, _i18n.__)('Wait a moment and give it another go.', 'elementor'),
749 buttonText: (0, _i18n.__)('Try again', 'elementor'),
750 buttonAction: onRetry
751 },
752 invalid_connect_data: {
753 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
754 description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
755 href: "https://elementor.com/help/disconnecting-reconnecting-your-elementor-account/",
756 target: "_blank",
757 rel: "noreferrer"
758 }, (0, _i18n.__)('Show me how', 'elementor'))),
759 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
760 buttonAction: function buttonAction() {
761 return window.open(window.ElementorAiConfig.connect_url);
762 }
763 },
764 not_connected: {
765 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('You aren\'t connected to Elementor AI.', 'elementor')),
766 description: (0, _i18n.__)('Elementor AI is just a few clicks away. Connect your account to instantly create texts and custom code.', 'elementor'),
767 buttonText: (0, _i18n.__)('Connect', 'elementor'),
768 buttonAction: function buttonAction() {
769 return window.open(window.ElementorAiConfig.connect_url);
770 }
771 },
772 quota_reached_trail: getQuotaReachedTrailMessage(featureName),
773 quota_reached_subscription: {
774 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Looks like you\'re out of credits.', 'elementor')),
775 description: (0, _i18n.__)('Ready to take it to the next level?', 'elementor'),
776 buttonText: (0, _i18n.__)('Upgrade now', 'elementor'),
777 buttonAction: function buttonAction() {
778 return window.open('https://go.elementor.com/ai-popup-purchase-limit-reached/', '_blank');
779 }
780 },
781 rate_limit_network: {
782 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Whoa! Slow down there.', 'elementor')),
783 description: (0, _i18n.__)('We can’t process that many requests so fast. Try again in 15 minutes.', 'elementor')
784 },
785 invalid_prompts: {
786 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('We were unable to generate that prompt.', 'elementor')),
787 description: (0, _i18n.__)('Seems like the prompt contains words that could generate harmful content. Write a different prompt to continue.', 'elementor')
788 },
789 service_unavailable: {
790 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
791 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
792 buttonText: (0, _i18n.__)('Try again', 'elementor'),
793 buttonAction: onRetry
794 },
795 request_timeout_error: {
796 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('There was a glitch.', 'elementor')),
797 description: (0, _i18n.__)('Wait a moment and give it another go, or try tweaking the prompt.', 'elementor'),
798 buttonText: (0, _i18n.__)('Try again', 'elementor'),
799 buttonAction: onRetry
800 },
801 invalid_token: {
802 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Try again', 'elementor')),
803 description: (0, _i18n.__)('Try exiting Elementor and sign in again.', 'elementor'),
804 buttonText: (0, _i18n.__)('Reconnect', 'elementor'),
805 buttonAction: onRetry
806 },
807 file_too_large: {
808 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The file is too large.', 'elementor')),
809 description: (0, _i18n.__)('Please upload a file that is less than 4MB.', 'elementor')
810 },
811 image_resolution_maximum_exceeded: {
812 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('The image resolution exceeds the maximum allowed size.', 'elementor')),
813 description: (0, _i18n.__)('Please upload a file with dimensions less than 2048x2048 pixels.', 'elementor')
814 },
815 external_service_unavailable: {
816 text: /*#__PURE__*/_react.default.createElement(_ui.AlertTitle, null, (0, _i18n.__)('Temporary external service issue', 'elementor')),
817 description: (0, _i18n.__)('It seems that one of our partner services is temporarily unavailable. Please try again in a few minutes.', 'elementor'),
818 buttonText: (0, _i18n.__)('Try Again', 'elementor'),
819 buttonAction: onRetry
820 }
821 };
822 return messages[errMsg] || messages.default;
823 }
824 var message = getErrorMessage();
825 var action = (message === null || message === void 0 ? void 0 : message.buttonText) && /*#__PURE__*/_react.default.createElement(_ui.Button, {
826 color: "inherit",
827 size: "small",
828 variant: "outlined",
829 onClick: message.buttonAction
830 }, message.buttonText);
831 return /*#__PURE__*/_react.default.createElement(_ui.Alert, (0, _extends2.default)({
832 severity: message.severity || 'error',
833 action: 'default' === actionPosition && action
834 }, props), message.text, message.description, 'bottom' === actionPosition && /*#__PURE__*/_react.default.createElement(_ui.Box, {
835 sx: {
836 mt: 1
837 }
838 }, action));
839 };
840 PromptErrorMessage.propTypes = {
841 error: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
842 onRetry: _propTypes.default.func,
843 actionPosition: _propTypes.default.oneOf(['default', 'bottom'])
844 };
845 var _default = exports["default"] = PromptErrorMessage;
846
847 /***/ }),
848
849 /***/ "../modules/ai/assets/js/editor/components/prompt-library-link.js":
850 /*!************************************************************************!*\
851 !*** ../modules/ai/assets/js/editor/components/prompt-library-link.js ***!
852 \************************************************************************/
853 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
854
855 "use strict";
856
857
858 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
859 Object.defineProperty(exports, "__esModule", ({
860 value: true
861 }));
862 exports["default"] = void 0;
863 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
864 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
865 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
866 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
867 var PromptLibraryLink = function PromptLibraryLink(props) {
868 return /*#__PURE__*/_react.default.createElement(_ui.Typography, {
869 variant: "body2",
870 color: "text.secondary"
871 }, (0, _i18n.__)('For more suggestions, explore our'), ' ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
872 href: props.libraryLink,
873 className: "elementor-clickable",
874 target: "_blank"
875 }, (0, _i18n.__)('prompt library')));
876 };
877 PromptLibraryLink.propTypes = {
878 libraryLink: _propTypes.default.string
879 };
880 var _default = exports["default"] = PromptLibraryLink;
881
882 /***/ }),
883
884 /***/ "../modules/ai/assets/js/editor/components/upgrade-chip.js":
885 /*!*****************************************************************!*\
886 !*** ../modules/ai/assets/js/editor/components/upgrade-chip.js ***!
887 \*****************************************************************/
888 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
889
890 "use strict";
891
892
893 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
894 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
895 Object.defineProperty(exports, "__esModule", ({
896 value: true
897 }));
898 exports["default"] = void 0;
899 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
900 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
901 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
902 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
903 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
904 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
905 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); }
906 var popoverId = 'e-ai-upgrade-popover';
907 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
908 var theme = _ref.theme;
909 return {
910 position: 'relative',
911 '[data-popper-placement="top"] &': {
912 marginBottom: theme.spacing(2.5)
913 },
914 '[data-popper-placement="bottom"] &': {
915 marginTop: theme.spacing(2.5)
916 },
917 padding: theme.spacing(3),
918 boxShadow: theme.shadows[4],
919 zIndex: '9999'
920 };
921 });
922 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
923 var theme = _ref2.theme;
924 return {
925 width: theme.spacing(5),
926 height: theme.spacing(2.5),
927 position: 'absolute',
928 overflow: 'hidden',
929 // Override Popper inline styles.
930 left: '50% !important',
931 transform: 'translateX(-50%) rotate(var(--rotate, 0deg)) !important',
932 '[data-popper-placement="top"] &': {
933 top: '100%'
934 },
935 '[data-popper-placement="bottom"] &': {
936 '--rotate': '180deg',
937 top: "calc(".concat(theme.spacing(2.5), " * -1)")
938 },
939 '&::after': {
940 backgroundColor: theme.palette.background.paper,
941 content: '""',
942 display: 'block',
943 position: 'absolute',
944 width: theme.spacing(2.5),
945 height: theme.spacing(2.5),
946 top: 0,
947 left: '50%',
948 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
949 boxShadow: '1px 1px 5px 0px rgba(0, 0, 0, 0.2)',
950 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
951 }
952 };
953 });
954 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')];
955 var Chip = (0, _ui.styled)(_ui.Chip)(function () {
956 return {
957 '& .MuiChip-label': {
958 lineHeight: 1.5
959 },
960 '& .MuiSvgIcon-root.MuiChip-icon': {
961 fontSize: '1.25rem'
962 }
963 };
964 });
965 var UpgradeChip = function UpgradeChip(_ref3) {
966 var _ref3$hasSubscription = _ref3.hasSubscription,
967 hasSubscription = _ref3$hasSubscription === void 0 ? false : _ref3$hasSubscription,
968 _ref3$usagePercentage = _ref3.usagePercentage,
969 usagePercentage = _ref3$usagePercentage === void 0 ? 0 : _ref3$usagePercentage;
970 var _useState = (0, _react.useState)(false),
971 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
972 isPopoverOpen = _useState2[0],
973 setIsPopoverOpen = _useState2[1];
974 var anchorEl = (0, _react.useRef)(null);
975 var arrowEl = (0, _react.useRef)(null);
976 var showPopover = function showPopover() {
977 return setIsPopoverOpen(true);
978 };
979 var hidePopover = function hidePopover() {
980 return setIsPopoverOpen(false);
981 };
982 var actionUrl = 'https://go.elementor.com/ai-popup-purchase-dropdown/';
983 if (hasSubscription) {
984 actionUrl = usagePercentage >= 100 ? 'https://go.elementor.com/ai-popup-upgrade-limit-reached/' : 'https://go.elementor.com/ai-popup-upgrade-limit-reached-80-percent/';
985 }
986 var actionLabel = hasSubscription ? (0, _i18n.__)('Upgrade Elementor AI', 'elementor') : (0, _i18n.__)('Get Elementor AI', 'elementor');
987 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
988 component: "span",
989 "aria-owns": isPopoverOpen ? popoverId : undefined,
990 "aria-haspopup": "true",
991 onMouseEnter: showPopover,
992 onMouseLeave: hidePopover,
993 ref: anchorEl,
994 display: "flex",
995 alignItems: "center"
996 }, /*#__PURE__*/_react.default.createElement(Chip, {
997 color: "promotion",
998 label: (0, _i18n.__)('Upgrade', 'elementor'),
999 icon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1000 size: "small"
1001 }), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
1002 open: isPopoverOpen,
1003 anchorEl: anchorEl.current,
1004 sx: {
1005 zIndex: '170001',
1006 maxWidth: 300
1007 },
1008 modifiers: [{
1009 name: 'arrow',
1010 enabled: true,
1011 options: {
1012 element: arrowEl.current
1013 }
1014 }]
1015 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
1016 ref: arrowEl
1017 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1018 variant: "h5",
1019 color: "text.primary"
1020 }, (0, _i18n.__)('Unlimited access to Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.List, {
1021 sx: {
1022 mb: 1
1023 }
1024 }, upgradeBullets.map(function (bullet, index) {
1025 return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
1026 key: index,
1027 disableGutters: true,
1028 sx: {
1029 alignItems: 'flex-start'
1030 }
1031 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.CheckedCircleIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.ListItemText, {
1032 sx: {
1033 m: 0
1034 }
1035 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1036 variant: "body2"
1037 }, bullet)));
1038 })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
1039 variant: "contained",
1040 color: "promotion",
1041 size: "small",
1042 href: actionUrl,
1043 target: "_blank",
1044 startIcon: /*#__PURE__*/_react.default.createElement(_icons.AIIcon, null),
1045 sx: {
1046 '&:hover': {
1047 color: 'promotion.contrastText'
1048 }
1049 }
1050 }, actionLabel))));
1051 };
1052 var _default = exports["default"] = UpgradeChip;
1053 UpgradeChip.propTypes = {
1054 hasSubscription: _propTypes.default.bool,
1055 usagePercentage: _propTypes.default.number
1056 };
1057
1058 /***/ }),
1059
1060 /***/ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js":
1061 /*!**************************************************************************!*\
1062 !*** ../modules/ai/assets/js/editor/components/voice-promotion-alert.js ***!
1063 \**************************************************************************/
1064 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1065
1066 "use strict";
1067
1068
1069 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1070 Object.defineProperty(exports, "__esModule", ({
1071 value: true
1072 }));
1073 exports["default"] = exports.VoicePromotionAlert = void 0;
1074 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1075 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1076 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1077 var _bulbIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/bulb-icon */ "../modules/ai/assets/js/editor/icons/bulb-icon.js"));
1078 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
1079 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1080 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1081 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; }
1082 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; }
1083 var VoicePromotionAlert = exports.VoicePromotionAlert = function VoicePromotionAlert(props) {
1084 var _useIntroduction = (0, _useIntroduction2.default)(props.introductionKey),
1085 isViewed = _useIntroduction.isViewed,
1086 markAsViewed = _useIntroduction.markAsViewed;
1087 if (isViewed) {
1088 return null;
1089 }
1090 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
1091 sx: _objectSpread({
1092 mt: 2
1093 }, props.sx),
1094 alignItems: "top"
1095 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
1096 severity: "info",
1097 variant: "standard",
1098 icon: /*#__PURE__*/_react.default.createElement(_bulbIcon.default, {
1099 sx: {
1100 alignSelf: 'flex-start'
1101 }
1102 }),
1103 onClose: markAsViewed
1104 }, (0, _i18n.__)('Get improved results from AI by adding personal context.', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
1105 onClick: function onClick() {
1106 return $e.route('panel/global/menu');
1107 },
1108 className: "elementor-clickable",
1109 style: {
1110 textDecoration: 'none'
1111 },
1112 color: "info.main",
1113 href: "#"
1114 }, (0, _i18n.__)('Let’s do it', 'elementor'))));
1115 };
1116 VoicePromotionAlert.propTypes = {
1117 sx: _propTypes.default.object,
1118 introductionKey: _propTypes.default.string
1119 };
1120 var _default = exports["default"] = VoicePromotionAlert;
1121
1122 /***/ }),
1123
1124 /***/ "../modules/ai/assets/js/editor/components/wizard-dialog.js":
1125 /*!******************************************************************!*\
1126 !*** ../modules/ai/assets/js/editor/components/wizard-dialog.js ***!
1127 \******************************************************************/
1128 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1129
1130 "use strict";
1131
1132
1133 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1134 Object.defineProperty(exports, "__esModule", ({
1135 value: true
1136 }));
1137 exports["default"] = void 0;
1138 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1139 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1140 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1141 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1142 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1143 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1144 var _dialogHeader = _interopRequireDefault(__webpack_require__(/*! ./dialog-header */ "../modules/ai/assets/js/editor/components/dialog-header.js"));
1145 var _excluded = ["sx"];
1146 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; }
1147 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; }
1148 var WizardDialog = function WizardDialog(props) {
1149 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
1150 open: true,
1151 onClose: props.onClose,
1152 fullWidth: true,
1153 hideBackdrop: true,
1154 maxWidth: "lg",
1155 PaperProps: {
1156 sx: {
1157 height: '88vh'
1158 }
1159 },
1160 sx: {
1161 zIndex: 9999
1162 }
1163 }, props.children);
1164 };
1165 WizardDialog.propTypes = {
1166 onClose: _propTypes.default.func.isRequired,
1167 children: _propTypes.default.node.isRequired
1168 };
1169 var WizardDialogContent = function WizardDialogContent(_ref) {
1170 var _ref$sx = _ref.sx,
1171 sx = _ref$sx === void 0 ? {} : _ref$sx,
1172 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1173 return /*#__PURE__*/_react.default.createElement(_ui.DialogContent, (0, _extends2.default)({}, props, {
1174 sx: _objectSpread({
1175 display: 'flex',
1176 flexDirection: 'column',
1177 justifyContent: 'center'
1178 }, sx)
1179 }));
1180 };
1181 WizardDialogContent.propTypes = {
1182 sx: _propTypes.default.object
1183 };
1184 WizardDialog.Header = _dialogHeader.default;
1185 WizardDialog.Content = WizardDialogContent;
1186 var _default = exports["default"] = WizardDialog;
1187
1188 /***/ }),
1189
1190 /***/ "../modules/ai/assets/js/editor/context/requests-ids.js":
1191 /*!**************************************************************!*\
1192 !*** ../modules/ai/assets/js/editor/context/requests-ids.js ***!
1193 \**************************************************************/
1194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1195
1196 "use strict";
1197
1198
1199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1200 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1201 Object.defineProperty(exports, "__esModule", ({
1202 value: true
1203 }));
1204 exports["default"] = exports.RequestIdsProvider = void 0;
1205 exports.generateIds = generateIds;
1206 exports.useRequestIds = exports.getUniqueId = void 0;
1207 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1208 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1209 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1210 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); }
1211 var Context = (0, _react.createContext)({});
1212 var useRequestIds = exports.useRequestIds = function useRequestIds() {
1213 var context = (0, _react.useContext)(Context);
1214 if (!context) {
1215 throw new Error('useRequestIds must be used within a RequestIdsProvider');
1216 }
1217 return context;
1218 };
1219 var getUniqueId = exports.getUniqueId = function getUniqueId(prefix) {
1220 return prefix + '-' + Math.random().toString(16).substr(2, 7);
1221 };
1222 window.EDITOR_SESSION_ID = window.EDITOR_SESSION_ID || getUniqueId('editor-session');
1223 function generateIds(template) {
1224 var _template$elements;
1225 template.id = getUniqueId().toString();
1226 if ((_template$elements = template.elements) !== null && _template$elements !== void 0 && _template$elements.length) {
1227 template.elements.map(function (child) {
1228 return generateIds(child);
1229 });
1230 }
1231 return template;
1232 }
1233 var RequestIdsProvider = exports.RequestIdsProvider = function RequestIdsProvider(props) {
1234 var editorSessionId = (0, _react.useRef)(window.EDITOR_SESSION_ID);
1235 var sessionId = (0, _react.useRef)('');
1236 var generateId = (0, _react.useRef)('');
1237 var batchId = (0, _react.useRef)('');
1238 var requestId = (0, _react.useRef)('');
1239 sessionId.current = getUniqueId('session');
1240 var setGenerate = function setGenerate() {
1241 generateId.current = getUniqueId('generate');
1242 return generateId;
1243 };
1244 var setBatch = function setBatch() {
1245 batchId.current = getUniqueId('batch');
1246 return batchId;
1247 };
1248 var setRequest = function setRequest() {
1249 requestId.current = getUniqueId('request');
1250 return requestId;
1251 };
1252 var _useState = (0, _react.useState)(0),
1253 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1254 usagePercentage = _useState2[0],
1255 setUsagePercentage = _useState2[1];
1256 var updateUsagePercentage = function updateUsagePercentage(newPercentage) {
1257 setUsagePercentage(newPercentage);
1258 };
1259 return /*#__PURE__*/_react.default.createElement(Context.Provider, {
1260 value: {
1261 editorSessionId: editorSessionId,
1262 sessionId: sessionId,
1263 generateId: generateId,
1264 batchId: batchId,
1265 requestId: requestId,
1266 setGenerate: setGenerate,
1267 setBatch: setBatch,
1268 setRequest: setRequest,
1269 usagePercentage: usagePercentage,
1270 updateUsagePercentage: updateUsagePercentage
1271 }
1272 }, props.children);
1273 };
1274 RequestIdsProvider.propTypes = {
1275 children: _propTypes.default.node.isRequired
1276 };
1277 var _default = exports["default"] = Context;
1278
1279 /***/ }),
1280
1281 /***/ "../modules/ai/assets/js/editor/hooks/use-introduction.js":
1282 /*!****************************************************************!*\
1283 !*** ../modules/ai/assets/js/editor/hooks/use-introduction.js ***!
1284 \****************************************************************/
1285 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1286
1287 "use strict";
1288
1289
1290 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1291 Object.defineProperty(exports, "__esModule", ({
1292 value: true
1293 }));
1294 exports["default"] = useIntroduction;
1295 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1296 var _react = __webpack_require__(/*! react */ "react");
1297 function useIntroduction(key) {
1298 var _window$elementor$con, _window$elementorAdmi, _globalConfig$introdu;
1299 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;
1300 var _useState = (0, _react.useState)(!!(globalConfig !== null && globalConfig !== void 0 && (_globalConfig$introdu = globalConfig.introduction) !== null && _globalConfig$introdu !== void 0 && _globalConfig$introdu[key])),
1301 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1302 isViewed = _useState2[0],
1303 setIsViewed = _useState2[1];
1304 function markAsViewed() {
1305 if (!key) {
1306 return Promise.reject();
1307 }
1308 return new Promise(function (resolve, reject) {
1309 if (isViewed) {
1310 reject();
1311 }
1312 setIsViewed(true);
1313 elementorCommon.ajax.addRequest('introduction_viewed', {
1314 data: {
1315 introductionKey: key
1316 },
1317 error: function error() {
1318 setIsViewed(false);
1319 reject();
1320 },
1321 success: function success() {
1322 setIsViewed(true);
1323 if (globalConfig !== null && globalConfig !== void 0 && globalConfig.introduction) {
1324 globalConfig.introduction[key] = true;
1325 }
1326 resolve();
1327 }
1328 });
1329 });
1330 }
1331 return {
1332 isViewed: isViewed,
1333 markAsViewed: markAsViewed
1334 };
1335 }
1336
1337 /***/ }),
1338
1339 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js":
1340 /*!*******************************************************************!*\
1341 !*** ../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js ***!
1342 \*******************************************************************/
1343 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1344
1345 "use strict";
1346
1347
1348 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1349 Object.defineProperty(exports, "__esModule", ({
1350 value: true
1351 }));
1352 exports["default"] = void 0;
1353 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1354 var _usePrompt2 = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
1355 var _config = __webpack_require__(/*! ../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
1356 var enhancePromptMap = new Map([['media', _api.getImagePromptEnhanced], ['layout', _api.getLayoutPromptEnhanced]]);
1357 var getResult = function getResult(prompt, type, enhanceType) {
1358 if (!enhancePromptMap.has(type)) {
1359 throw new Error("Invalid prompt type: ".concat(type));
1360 }
1361 return enhancePromptMap.get(type)(prompt, enhanceType);
1362 };
1363
1364 /**
1365 * Hook to enhance a prompt.
1366 *
1367 * @param {string} prompt
1368 * @param {'media' | 'layout'} type
1369 * @return {{enhancedPrompt: string | undefined, isEnhancing: boolean, enhance: (function(...[*]): Promise)}}
1370 */
1371 var usePromptEnhancer = function usePromptEnhancer(prompt, type) {
1372 var _useConfig = (0, _config.useConfig)(),
1373 mode = _useConfig.mode;
1374 var _usePrompt = (0, _usePrompt2.default)(function () {
1375 return getResult(prompt, type, mode);
1376 }, prompt),
1377 enhancedData = _usePrompt.data,
1378 isEnhancing = _usePrompt.isLoading,
1379 enhance = _usePrompt.send;
1380 return {
1381 enhance: enhance,
1382 isEnhancing: isEnhancing,
1383 enhancedPrompt: enhancedData === null || enhancedData === void 0 ? void 0 : enhancedData.result
1384 };
1385 };
1386 var _default = exports["default"] = usePromptEnhancer;
1387
1388 /***/ }),
1389
1390 /***/ "../modules/ai/assets/js/editor/hooks/use-prompt.js":
1391 /*!**********************************************************!*\
1392 !*** ../modules/ai/assets/js/editor/hooks/use-prompt.js ***!
1393 \**********************************************************/
1394 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1395
1396 "use strict";
1397
1398
1399 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1400 Object.defineProperty(exports, "__esModule", ({
1401 value: true
1402 }));
1403 exports["default"] = void 0;
1404 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1405 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1406 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1407 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1408 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
1409 var _react = __webpack_require__(/*! react */ "react");
1410 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1411 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
1412 var _excluded = ["text", "response_id", "usage", "images"];
1413 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; }
1414 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; }
1415 var normalizeResponse = function normalizeResponse(_ref) {
1416 var text = _ref.text,
1417 responseId = _ref.response_id,
1418 usage = _ref.usage,
1419 images = _ref.images,
1420 optional = (0, _objectWithoutProperties2.default)(_ref, _excluded);
1421 var creditsData = usage ? usage.quota - usage.usedQuota : 0;
1422 var credits = Math.max(creditsData, 0);
1423 var result = text || images;
1424 var normalized = {
1425 result: result,
1426 responseId: responseId,
1427 credits: credits,
1428 usagePercentage: usage === null || usage === void 0 ? void 0 : usage.usagePercentage
1429 };
1430 if (optional.base_template_id) {
1431 normalized.baseTemplateId = optional.base_template_id;
1432 }
1433 normalized.type = optional.template_type;
1434 return normalized;
1435 };
1436 var usePrompt = function usePrompt(fetchData, initialState) {
1437 var _useState = (0, _react.useState)(false),
1438 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1439 isLoading = _useState2[0],
1440 setIsLoading = _useState2[1];
1441 var _useState3 = (0, _react.useState)(''),
1442 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1443 error = _useState4[0],
1444 setError = _useState4[1];
1445 var _useState5 = (0, _react.useState)(initialState),
1446 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1447 data = _useState6[0],
1448 setData = _useState6[1];
1449 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
1450 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
1451 usagePercentage = _useRequestIds.usagePercentage;
1452 var send = (0, _react.useRef)(/*#__PURE__*/function () {
1453 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
1454 return _regenerator.default.wrap(function (_context) {
1455 while (1) switch (_context.prev = _context.next) {
1456 case 0:
1457 return _context.abrupt("return", payload);
1458 case 1:
1459 case "end":
1460 return _context.stop();
1461 }
1462 }, _callee);
1463 }));
1464 return function (_x) {
1465 return _ref2.apply(this, arguments);
1466 };
1467 }());
1468 var sendUsageData = (0, _react.useRef)(function () {});
1469 (0, _react.useEffect)(function () {
1470 var newUsageValue = data === null || data === void 0 ? void 0 : data.usagePercentage;
1471 if (newUsageValue && newUsageValue !== usagePercentage) {
1472 updateUsagePercentage(newUsageValue);
1473 }
1474 }, [data, usagePercentage, updateUsagePercentage]);
1475 var _useRequestIds2 = (0, _requestsIds.useRequestIds)(),
1476 setRequest = _useRequestIds2.setRequest,
1477 editorSessionId = _useRequestIds2.editorSessionId,
1478 sessionId = _useRequestIds2.sessionId,
1479 generateId = _useRequestIds2.generateId,
1480 batchId = _useRequestIds2.batchId;
1481 send.current = (0, _react.useCallback)(/*#__PURE__*/function () {
1482 var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(payload) {
1483 return _regenerator.default.wrap(function (_context2) {
1484 while (1) switch (_context2.prev = _context2.next) {
1485 case 0:
1486 return _context2.abrupt("return", new Promise(function (resolve, reject) {
1487 setError('');
1488 setIsLoading(true);
1489 var requestId = setRequest();
1490 var requestIds = {
1491 editorSessionId: editorSessionId.current,
1492 sessionId: sessionId.current,
1493 generateId: generateId.current,
1494 batchId: batchId.current,
1495 requestId: requestId.current
1496 };
1497 payload = _objectSpread(_objectSpread({}, payload), {}, {
1498 requestIds: requestIds
1499 });
1500 fetchData(payload).then(function (result) {
1501 var normalizedData = normalizeResponse(result);
1502 setData(normalizedData);
1503 resolve(normalizedData);
1504 }).catch(function (err) {
1505 var finalError = (err === null || err === void 0 ? void 0 : err.responseText) || err;
1506 setError(finalError);
1507 reject(finalError);
1508 }).finally(function () {
1509 return setIsLoading(false);
1510 });
1511 }));
1512 case 1:
1513 case "end":
1514 return _context2.stop();
1515 }
1516 }, _callee2);
1517 }));
1518 return function (_x2) {
1519 return _ref3.apply(this, arguments);
1520 };
1521 }(), [batchId, editorSessionId, fetchData, generateId, sessionId, setRequest]);
1522 sendUsageData.current = (0, _react.useCallback)(function () {
1523 var usageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : data;
1524 return usageData.responseId && (0, _api.setStatusFeedback)(usageData.responseId);
1525 }, [data]);
1526 var reset = function reset() {
1527 setData(function (_ref4) {
1528 var credits = _ref4.credits;
1529 return {
1530 credits: credits,
1531 result: '',
1532 responseId: ''
1533 };
1534 });
1535 setError('');
1536 setIsLoading(false);
1537 };
1538 var setResult = function setResult(result) {
1539 var responseId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1540 var updatedResult = _objectSpread({}, data);
1541 updatedResult.result = result;
1542 if (responseId) {
1543 updatedResult.responseId = responseId;
1544 }
1545 setData(updatedResult);
1546 };
1547 return {
1548 isLoading: isLoading,
1549 error: error,
1550 data: data,
1551 setResult: setResult,
1552 reset: reset,
1553 send: send.current,
1554 sendUsageData: sendUsageData.current
1555 };
1556 };
1557 var _default = exports["default"] = usePrompt;
1558
1559 /***/ }),
1560
1561 /***/ "../modules/ai/assets/js/editor/hooks/use-timeout.js":
1562 /*!***********************************************************!*\
1563 !*** ../modules/ai/assets/js/editor/hooks/use-timeout.js ***!
1564 \***********************************************************/
1565 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1566
1567 "use strict";
1568
1569
1570 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1571 Object.defineProperty(exports, "__esModule", ({
1572 value: true
1573 }));
1574 exports.useTimeout = void 0;
1575 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1576 var _react = __webpack_require__(/*! react */ "react");
1577 var useTimeout = exports.useTimeout = function useTimeout(delay) {
1578 var _useState = (0, _react.useState)(false),
1579 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1580 isTimeout = _useState2[0],
1581 setIsTimeout = _useState2[1];
1582 var timeoutIdRef = (0, _react.useRef)(null);
1583 var turnOffTimeout = function turnOffTimeout() {
1584 clearTimeout(timeoutIdRef.current);
1585 setIsTimeout(false);
1586 };
1587 (0, _react.useEffect)(function () {
1588 timeoutIdRef.current = setTimeout(function () {
1589 setIsTimeout(true);
1590 }, delay);
1591 return function () {
1592 clearTimeout(timeoutIdRef.current);
1593 };
1594 }, [delay]);
1595 return [isTimeout, turnOffTimeout];
1596 };
1597
1598 /***/ }),
1599
1600 /***/ "../modules/ai/assets/js/editor/hooks/use-user-info.js":
1601 /*!*************************************************************!*\
1602 !*** ../modules/ai/assets/js/editor/hooks/use-user-info.js ***!
1603 \*************************************************************/
1604 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1605
1606 "use strict";
1607
1608
1609 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1610 Object.defineProperty(exports, "__esModule", ({
1611 value: true
1612 }));
1613 exports["default"] = void 0;
1614 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1615 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1616 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1617 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1618 var _react = __webpack_require__(/*! react */ "react");
1619 var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js");
1620 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1621 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; }
1622 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; }
1623 var useUserInfo = function useUserInfo() {
1624 var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1625 var _useState = (0, _react.useState)(false),
1626 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1627 isLoaded = _useState2[0],
1628 setIsLoaded = _useState2[1];
1629 var _useState3 = (0, _react.useState)(false),
1630 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1631 isLoading = _useState4[0],
1632 setIsLoading = _useState4[1];
1633 var _useState5 = (0, _react.useState)({
1634 is_connected: false,
1635 is_get_started: false,
1636 connect_url: '',
1637 usage: {
1638 hasAiSubscription: false,
1639 quota: 0,
1640 usedQuota: 0
1641 }
1642 }),
1643 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1644 userInfo = _useState6[0],
1645 setUserInfo = _useState6[1];
1646 var credits = userInfo.usage.quota - userInfo.usage.usedQuota;
1647 var usagePercentage = userInfo.usage.quota ? userInfo.usage.usedQuota / userInfo.usage.quota * 100 : 0;
1648 var fetchData = /*#__PURE__*/function () {
1649 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1650 var userInfoResult;
1651 return _regenerator.default.wrap(function (_context) {
1652 while (1) switch (_context.prev = _context.next) {
1653 case 0:
1654 setIsLoading(true);
1655 _context.next = 1;
1656 return (0, _api.getUserInformation)(immediately);
1657 case 1:
1658 userInfoResult = _context.sent;
1659 setUserInfo(function (prevState) {
1660 return _objectSpread(_objectSpread({}, prevState), userInfoResult);
1661 });
1662 setIsLoaded(true);
1663 setIsLoading(false);
1664 case 2:
1665 case "end":
1666 return _context.stop();
1667 }
1668 }, _callee);
1669 }));
1670 return function fetchData() {
1671 return _ref.apply(this, arguments);
1672 };
1673 }();
1674 if (!isLoaded && !isLoading) {
1675 fetchData();
1676 }
1677 return {
1678 isLoading: isLoading,
1679 isLoaded: isLoaded,
1680 isConnected: userInfo.is_connected,
1681 isGetStarted: userInfo.is_get_started,
1682 connectUrl: userInfo.connect_url,
1683 builderUrl: userInfo.usage.builderUrl,
1684 hasSubscription: userInfo.usage.hasAiSubscription,
1685 credits: credits < 0 ? 0 : credits,
1686 usagePercentage: Math.round(usagePercentage),
1687 fetchData: fetchData
1688 };
1689 };
1690 useUserInfo.propTypes = {
1691 immediately: _propTypes.default.bool
1692 };
1693 var _default = exports["default"] = useUserInfo;
1694
1695 /***/ }),
1696
1697 /***/ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js":
1698 /*!***************************************************************!*\
1699 !*** ../modules/ai/assets/js/editor/icons/arrow-left-icon.js ***!
1700 \***************************************************************/
1701 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1702
1703 "use strict";
1704
1705
1706 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1707 Object.defineProperty(exports, "__esModule", ({
1708 value: true
1709 }));
1710 exports["default"] = void 0;
1711 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1712 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1713 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1714 var ArrowLeftIcon = _react.default.forwardRef(function (props, ref) {
1715 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1716 viewBox: "0 0 24 24"
1717 }, props, {
1718 ref: ref
1719 }), /*#__PURE__*/_react.default.createElement("path", {
1720 fillRule: "evenodd",
1721 clipRule: "evenodd",
1722 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"
1723 }));
1724 });
1725 var _default = exports["default"] = ArrowLeftIcon;
1726
1727 /***/ }),
1728
1729 /***/ "../modules/ai/assets/js/editor/icons/bulb-icon.js":
1730 /*!*********************************************************!*\
1731 !*** ../modules/ai/assets/js/editor/icons/bulb-icon.js ***!
1732 \*********************************************************/
1733 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1734
1735 "use strict";
1736
1737
1738 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1739 Object.defineProperty(exports, "__esModule", ({
1740 value: true
1741 }));
1742 exports["default"] = void 0;
1743 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1744 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1745 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1746 var BulbIcon = _react.default.forwardRef(function (props, ref) {
1747 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({}, props, {
1748 ref: ref
1749 }), /*#__PURE__*/_react.default.createElement("svg", {
1750 width: "22",
1751 height: "22",
1752 viewBox: "0 0 22 22",
1753 fill: "none",
1754 xmlns: "http://www.w3.org/2000/svg"
1755 }, /*#__PURE__*/_react.default.createElement("g", {
1756 clipPath: "url(#clip0_10743_8902)"
1757 }, /*#__PURE__*/_react.default.createElement("path", {
1758 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",
1759 stroke: "#2563EB",
1760 strokeWidth: "1.5",
1761 strokeLinecap: "round",
1762 strokeLinejoin: "round"
1763 }), /*#__PURE__*/_react.default.createElement("path", {
1764 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",
1765 stroke: "#2563EB",
1766 strokeWidth: "1.5",
1767 strokeLinecap: "round",
1768 strokeLinejoin: "round"
1769 }), /*#__PURE__*/_react.default.createElement("path", {
1770 d: "M10.0833 16.5H11.9166",
1771 stroke: "#2563EB",
1772 strokeWidth: "1.5",
1773 strokeLinecap: "round",
1774 strokeLinejoin: "round"
1775 })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("clipPath", {
1776 id: "clip0_10743_8902"
1777 }, /*#__PURE__*/_react.default.createElement("rect", {
1778 width: "22",
1779 height: "22",
1780 fill: "white"
1781 })))));
1782 });
1783 var _default = exports["default"] = BulbIcon;
1784
1785 /***/ }),
1786
1787 /***/ "../modules/ai/assets/js/editor/icons/copy-page-icon.js":
1788 /*!**************************************************************!*\
1789 !*** ../modules/ai/assets/js/editor/icons/copy-page-icon.js ***!
1790 \**************************************************************/
1791 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1792
1793 "use strict";
1794
1795
1796 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1797 Object.defineProperty(exports, "__esModule", ({
1798 value: true
1799 }));
1800 exports["default"] = void 0;
1801 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1802 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1803 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1804 var CopyPageIcon = _react.default.forwardRef(function (props, ref) {
1805 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1806 viewBox: "0 0 24 24"
1807 }, props, {
1808 ref: ref
1809 }), /*#__PURE__*/_react.default.createElement("path", {
1810 fillRule: "evenodd",
1811 clipRule: "evenodd",
1812 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"
1813 }));
1814 });
1815 var _default = exports["default"] = CopyPageIcon;
1816
1817 /***/ }),
1818
1819 /***/ "../modules/ai/assets/js/editor/icons/edit-icon.js":
1820 /*!*********************************************************!*\
1821 !*** ../modules/ai/assets/js/editor/icons/edit-icon.js ***!
1822 \*********************************************************/
1823 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1824
1825 "use strict";
1826
1827
1828 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1829 Object.defineProperty(exports, "__esModule", ({
1830 value: true
1831 }));
1832 exports["default"] = void 0;
1833 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1834 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1835 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1836 var EditIcon = _react.default.forwardRef(function (props, ref) {
1837 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1838 viewBox: "0 0 24 24"
1839 }, props, {
1840 ref: ref
1841 }), /*#__PURE__*/_react.default.createElement("path", {
1842 fillRule: "evenodd",
1843 clipRule: "evenodd",
1844 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"
1845 }), /*#__PURE__*/_react.default.createElement("path", {
1846 fillRule: "evenodd",
1847 clipRule: "evenodd",
1848 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"
1849 }));
1850 });
1851 var _default = exports["default"] = EditIcon;
1852
1853 /***/ }),
1854
1855 /***/ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js":
1856 /*!********************************************************************!*\
1857 !*** ../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js ***!
1858 \********************************************************************/
1859 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1860
1861 "use strict";
1862
1863
1864 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1865 Object.defineProperty(exports, "__esModule", ({
1866 value: true
1867 }));
1868 exports["default"] = void 0;
1869 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1870 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1871 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1872 var ExpandDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1873 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1874 viewBox: "0 0 24 24"
1875 }, props, {
1876 ref: ref
1877 }), /*#__PURE__*/_react.default.createElement("path", {
1878 fillRule: "evenodd",
1879 clipRule: "evenodd",
1880 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"
1881 }));
1882 });
1883 var _default = exports["default"] = ExpandDiagonalIcon;
1884
1885 /***/ }),
1886
1887 /***/ "../modules/ai/assets/js/editor/icons/lock-icon.js":
1888 /*!*********************************************************!*\
1889 !*** ../modules/ai/assets/js/editor/icons/lock-icon.js ***!
1890 \*********************************************************/
1891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1892
1893 "use strict";
1894
1895
1896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1897 Object.defineProperty(exports, "__esModule", ({
1898 value: true
1899 }));
1900 exports["default"] = void 0;
1901 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1902 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1903 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1904 var LockIcon = _react.default.forwardRef(function (props, ref) {
1905 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1906 viewBox: "0 0 24 24"
1907 }, props, {
1908 ref: ref
1909 }), /*#__PURE__*/_react.default.createElement("path", {
1910 fillRule: "evenodd",
1911 clipRule: "evenodd",
1912 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"
1913 }), /*#__PURE__*/_react.default.createElement("path", {
1914 fillRule: "evenodd",
1915 clipRule: "evenodd",
1916 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"
1917 }), /*#__PURE__*/_react.default.createElement("path", {
1918 d: "M6 12H19V20H6V12Z"
1919 }));
1920 });
1921 var _default = exports["default"] = LockIcon;
1922
1923 /***/ }),
1924
1925 /***/ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js":
1926 /*!**********************************************************************!*\
1927 !*** ../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js ***!
1928 \**********************************************************************/
1929 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1930
1931 "use strict";
1932
1933
1934 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1935 Object.defineProperty(exports, "__esModule", ({
1936 value: true
1937 }));
1938 exports["default"] = void 0;
1939 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1940 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1941 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1942 var MinimizeDiagonalIcon = _react.default.forwardRef(function (props, ref) {
1943 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1944 viewBox: "0 0 24 24"
1945 }, props, {
1946 ref: ref
1947 }), /*#__PURE__*/_react.default.createElement("path", {
1948 fillRule: "evenodd",
1949 clipRule: "evenodd",
1950 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"
1951 }));
1952 });
1953 var _default = exports["default"] = MinimizeDiagonalIcon;
1954
1955 /***/ }),
1956
1957 /***/ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js":
1958 /*!****************************************************************!*\
1959 !*** ../modules/ai/assets/js/editor/icons/plus-circle-icon.js ***!
1960 \****************************************************************/
1961 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1962
1963 "use strict";
1964
1965
1966 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1967 Object.defineProperty(exports, "__esModule", ({
1968 value: true
1969 }));
1970 exports["default"] = void 0;
1971 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1972 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1973 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1974 var PlusCircleIcon = _react.default.forwardRef(function (props, ref) {
1975 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
1976 viewBox: "0 0 24 24"
1977 }, props, {
1978 ref: ref
1979 }), /*#__PURE__*/_react.default.createElement("path", {
1980 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"
1981 }));
1982 });
1983 var _default = exports["default"] = PlusCircleIcon;
1984
1985 /***/ }),
1986
1987 /***/ "../modules/ai/assets/js/editor/icons/refresh-icon.js":
1988 /*!************************************************************!*\
1989 !*** ../modules/ai/assets/js/editor/icons/refresh-icon.js ***!
1990 \************************************************************/
1991 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1992
1993 "use strict";
1994
1995
1996 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1997 Object.defineProperty(exports, "__esModule", ({
1998 value: true
1999 }));
2000 exports["default"] = void 0;
2001 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2002 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2003 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2004 var RefreshIcon = _react.default.forwardRef(function (props, ref) {
2005 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2006 viewBox: "0 0 24 24"
2007 }, props, {
2008 ref: ref
2009 }), /*#__PURE__*/_react.default.createElement("path", {
2010 fillRule: "evenodd",
2011 clipRule: "evenodd",
2012 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"
2013 }), /*#__PURE__*/_react.default.createElement("path", {
2014 fillRule: "evenodd",
2015 clipRule: "evenodd",
2016 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"
2017 }));
2018 });
2019 var _default = exports["default"] = RefreshIcon;
2020
2021 /***/ }),
2022
2023 /***/ "../modules/ai/assets/js/editor/icons/wand-icon.js":
2024 /*!*********************************************************!*\
2025 !*** ../modules/ai/assets/js/editor/icons/wand-icon.js ***!
2026 \*********************************************************/
2027 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2028
2029 "use strict";
2030
2031
2032 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2033 Object.defineProperty(exports, "__esModule", ({
2034 value: true
2035 }));
2036 exports["default"] = void 0;
2037 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2038 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2039 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2040 var WandIcon = _react.default.forwardRef(function (props, ref) {
2041 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2042 viewBox: "0 0 24 24"
2043 }, props, {
2044 ref: ref
2045 }), /*#__PURE__*/_react.default.createElement("path", {
2046 fillRule: "evenodd",
2047 clipRule: "evenodd",
2048 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"
2049 }), /*#__PURE__*/_react.default.createElement("path", {
2050 fillRule: "evenodd",
2051 clipRule: "evenodd",
2052 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"
2053 }), /*#__PURE__*/_react.default.createElement("path", {
2054 fillRule: "evenodd",
2055 clipRule: "evenodd",
2056 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"
2057 }));
2058 });
2059 var _default = exports["default"] = WandIcon;
2060
2061 /***/ }),
2062
2063 /***/ "../modules/ai/assets/js/editor/icons/website-icon.js":
2064 /*!************************************************************!*\
2065 !*** ../modules/ai/assets/js/editor/icons/website-icon.js ***!
2066 \************************************************************/
2067 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2068
2069 "use strict";
2070
2071
2072 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2073 Object.defineProperty(exports, "__esModule", ({
2074 value: true
2075 }));
2076 exports["default"] = void 0;
2077 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2078 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2079 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2080 var WebsiteIcon = _react.default.forwardRef(function (props, ref) {
2081 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2082 viewBox: "0 0 24 24"
2083 }, props, {
2084 ref: ref
2085 }), /*#__PURE__*/_react.default.createElement("path", {
2086 fillRule: "evenodd",
2087 clipRule: "evenodd",
2088 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"
2089 }));
2090 });
2091 var _default = exports["default"] = WebsiteIcon;
2092
2093 /***/ }),
2094
2095 /***/ "../modules/ai/assets/js/editor/icons/x-circle-icon.js":
2096 /*!*************************************************************!*\
2097 !*** ../modules/ai/assets/js/editor/icons/x-circle-icon.js ***!
2098 \*************************************************************/
2099 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2100
2101 "use strict";
2102
2103
2104 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2105 Object.defineProperty(exports, "__esModule", ({
2106 value: true
2107 }));
2108 exports["default"] = void 0;
2109 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2110 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2111 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2112 var XCircleIcon = _react.default.forwardRef(function (props, ref) {
2113 return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
2114 viewBox: "0 0 24 24"
2115 }, props, {
2116 ref: ref
2117 }), /*#__PURE__*/_react.default.createElement("path", {
2118 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"
2119 }));
2120 });
2121 var _default = exports["default"] = XCircleIcon;
2122
2123 /***/ }),
2124
2125 /***/ "../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js":
2126 /*!********************************************************************************************!*\
2127 !*** ../modules/ai/assets/js/editor/integration/library/apply-template-for-ai-behavior.js ***!
2128 \********************************************************************************************/
2129 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2130
2131 "use strict";
2132
2133
2134 var _require = __webpack_require__(/*! ../../utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js"),
2135 renderLayoutApp = _require.renderLayoutApp,
2136 importToEditor = _require.importToEditor;
2137 var _require2 = __webpack_require__(/*! ../../pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js"),
2138 MODE_VARIATION = _require2.MODE_VARIATION;
2139 var _require3 = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"),
2140 __ = _require3.__;
2141 var _require4 = __webpack_require__(/*! ../../pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"),
2142 ATTACHMENT_TYPE_JSON = _require4.ATTACHMENT_TYPE_JSON,
2143 ELEMENTOR_LIBRARY_SOURCE = _require4.ELEMENTOR_LIBRARY_SOURCE;
2144 var ApplyTemplateForAiBehavior;
2145 ApplyTemplateForAiBehavior = Marionette.Behavior.extend({
2146 ui: {
2147 applyButton: '.elementor-template-library-template-apply-ai',
2148 generateVariation: '.elementor-template-library-template-generate-variation'
2149 },
2150 events: {
2151 'click @ui.applyButton': 'onApplyButtonClick',
2152 'click @ui.generateVariation': 'onGenerateVariationClick'
2153 },
2154 onGenerateVariationClick: function onGenerateVariationClick() {
2155 var _libraryComponent$man;
2156 var args = {
2157 model: this.view.model
2158 };
2159 var libraryComponent = $e.components.get('library');
2160 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;
2161 libraryComponent.downloadTemplate(args, function (data) {
2162 var model = args.model;
2163 var attachment = {
2164 type: ATTACHMENT_TYPE_JSON,
2165 previewHTML: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
2166 content: data.content[0],
2167 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
2168 source: ELEMENTOR_LIBRARY_SOURCE
2169 };
2170 renderLayoutApp({
2171 parentContainer: elementor.getPreviewContainer(),
2172 mode: MODE_VARIATION,
2173 at: at,
2174 attachments: [attachment],
2175 onInsert: function onInsert(template) {
2176 importToEditor({
2177 parentContainer: elementor.getPreviewContainer(),
2178 at: at,
2179 template: template,
2180 historyTitle: __('AI Variation from library', 'elementor')
2181 });
2182 }
2183 });
2184 $e.run('library/close');
2185 });
2186 },
2187 onApplyButtonClick: function onApplyButtonClick() {
2188 var args = {
2189 model: this.view.model
2190 };
2191 this.ui.applyButton.addClass('elementor-disabled');
2192 var activeSource = args.model.get('source');
2193
2194 /**
2195 * Filter template source.
2196 *
2197 * @param bool isRemote - If `true` the source is a remote source.
2198 * @param string activeSource - The current template source.
2199 */
2200 var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
2201 if (isRemote && !elementor.config.library_connect.is_connected) {
2202 $e.route('library/connect', args);
2203 return;
2204 }
2205 $e.run('library/generate-ai-variation', args);
2206 }
2207 });
2208 module.exports = ApplyTemplateForAiBehavior;
2209
2210 /***/ }),
2211
2212 /***/ "../modules/ai/assets/js/editor/layout-app-wrapper.js":
2213 /*!************************************************************!*\
2214 !*** ../modules/ai/assets/js/editor/layout-app-wrapper.js ***!
2215 \************************************************************/
2216 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2217
2218 "use strict";
2219
2220
2221 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2222 Object.defineProperty(exports, "__esModule", ({
2223 value: true
2224 }));
2225 exports["default"] = void 0;
2226 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2227 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2228 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2229 var LayoutAppWrapper = function LayoutAppWrapper(props) {
2230 return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
2231 rtl: props.isRTL
2232 }, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
2233 colorScheme: props.colorScheme
2234 }, props.children));
2235 };
2236 LayoutAppWrapper.propTypes = {
2237 children: _propTypes.default.node,
2238 isRTL: _propTypes.default.bool,
2239 colorScheme: _propTypes.default.oneOf(['auto', 'light', 'dark'])
2240 };
2241 var _default = exports["default"] = LayoutAppWrapper;
2242
2243 /***/ }),
2244
2245 /***/ "../modules/ai/assets/js/editor/layout-app.js":
2246 /*!****************************************************!*\
2247 !*** ../modules/ai/assets/js/editor/layout-app.js ***!
2248 \****************************************************/
2249 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2250
2251 "use strict";
2252
2253
2254 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2255 Object.defineProperty(exports, "__esModule", ({
2256 value: true
2257 }));
2258 exports["default"] = void 0;
2259 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2260 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2261 var _layoutContent = _interopRequireDefault(__webpack_require__(/*! ./layout-content */ "../modules/ai/assets/js/editor/layout-content.js"));
2262 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2263 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2264 var _remoteConfig = __webpack_require__(/*! ./pages/form-layout/context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
2265 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2266 var LayoutApp = function LayoutApp(props) {
2267 return /*#__PURE__*/_react.default.createElement(_remoteConfig.RemoteConfigProvider, {
2268 onError: props.onClose
2269 }, /*#__PURE__*/_react.default.createElement(_requestsIds.RequestIdsProvider, null, /*#__PURE__*/_react.default.createElement(_config.ConfigProvider, {
2270 mode: props.mode,
2271 attachmentsTypes: props.attachmentsTypes,
2272 onClose: props.onClose,
2273 onConnect: props.onConnect,
2274 onData: props.onData,
2275 onInsert: props.onInsert,
2276 onSelect: props.onSelect,
2277 onGenerate: props.onGenerate,
2278 currentContext: props.currentContext,
2279 hasPro: props.hasPro
2280 }, /*#__PURE__*/_react.default.createElement(_layoutContent.default, {
2281 attachments: props.attachments
2282 }))));
2283 };
2284 LayoutApp.propTypes = {
2285 mode: _propTypes.default.oneOf(_config.LAYOUT_APP_MODES).isRequired,
2286 attachmentsTypes: _attachment.AttachmentsTypesPropType,
2287 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
2288 onClose: _propTypes.default.func.isRequired,
2289 onConnect: _propTypes.default.func.isRequired,
2290 onData: _propTypes.default.func.isRequired,
2291 onInsert: _propTypes.default.func.isRequired,
2292 onSelect: _propTypes.default.func.isRequired,
2293 onGenerate: _propTypes.default.func.isRequired,
2294 currentContext: _propTypes.default.object,
2295 hasPro: _propTypes.default.bool
2296 };
2297 var _default = exports["default"] = LayoutApp;
2298
2299 /***/ }),
2300
2301 /***/ "../modules/ai/assets/js/editor/layout-content.js":
2302 /*!********************************************************!*\
2303 !*** ../modules/ai/assets/js/editor/layout-content.js ***!
2304 \********************************************************/
2305 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2306
2307 "use strict";
2308
2309
2310 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2311 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2312 Object.defineProperty(exports, "__esModule", ({
2313 value: true
2314 }));
2315 exports["default"] = void 0;
2316 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2317 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2318 var _connect = _interopRequireDefault(__webpack_require__(/*! ./pages/connect */ "../modules/ai/assets/js/editor/pages/connect/index.js"));
2319 var _formLayout = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout */ "../modules/ai/assets/js/editor/pages/form-layout/index.js"));
2320 var _getStarted = _interopRequireDefault(__webpack_require__(/*! ./pages/get-started */ "../modules/ai/assets/js/editor/pages/get-started/index.js"));
2321 var _loader = _interopRequireDefault(__webpack_require__(/*! ./components/loader */ "../modules/ai/assets/js/editor/components/loader.js"));
2322 var _upgradeChip = _interopRequireDefault(__webpack_require__(/*! ./components/upgrade-chip */ "../modules/ai/assets/js/editor/components/upgrade-chip.js"));
2323 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
2324 var _wizardDialog = _interopRequireDefault(__webpack_require__(/*! ./components/wizard-dialog */ "../modules/ai/assets/js/editor/components/wizard-dialog.js"));
2325 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./pages/form-layout/components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
2326 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2327 var _attachment = __webpack_require__(/*! ./types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2328 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
2329 var _requestsIds = __webpack_require__(/*! ./context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
2330 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); }
2331 var LayoutContent = function LayoutContent(props) {
2332 var _useUserInfo = (0, _useUserInfo2.default)(),
2333 isLoading = _useUserInfo.isLoading,
2334 isConnected = _useUserInfo.isConnected,
2335 isGetStarted = _useUserInfo.isGetStarted,
2336 connectUrl = _useUserInfo.connectUrl,
2337 fetchData = _useUserInfo.fetchData,
2338 hasSubscription = _useUserInfo.hasSubscription,
2339 initialUsagePercentage = _useUserInfo.usagePercentage;
2340 var _useConfig = (0, _config.useConfig)(),
2341 onClose = _useConfig.onClose,
2342 onConnect = _useConfig.onConnect;
2343 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
2344 updateUsagePercentage = _useRequestIds.updateUsagePercentage,
2345 usagePercentage = _useRequestIds.usagePercentage;
2346 var _useState = (0, _react.useState)(false),
2347 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2348 isInitUsageDone = _useState2[0],
2349 setIsInitUsageDone = _useState2[1];
2350 (0, _react.useEffect)(function () {
2351 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
2352 updateUsagePercentage(initialUsagePercentage);
2353 setIsInitUsageDone(true);
2354 }
2355 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
2356 if (isLoading || !isInitUsageDone) {
2357 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2358 onClose: onClose
2359 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, {
2360 onClose: onClose
2361 }), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, {
2362 dividers: true
2363 }, /*#__PURE__*/_react.default.createElement(_loader.default, {
2364 BoxProps: {
2365 sx: {
2366 px: 3
2367 }
2368 }
2369 })));
2370 }
2371 if (!isConnected) {
2372 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2373 onClose: onClose
2374 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2375 onClose: onClose
2376 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2377 dividers: true
2378 }, /*#__PURE__*/_react.default.createElement(_connect.default, {
2379 connectUrl: connectUrl,
2380 onSuccess: function onSuccess(data) {
2381 onConnect(data);
2382 fetchData();
2383 }
2384 })));
2385 }
2386 if (!isGetStarted) {
2387 return /*#__PURE__*/_react.default.createElement(_wizardDialog.default, {
2388 onClose: onClose
2389 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
2390 onClose: onClose
2391 }), /*#__PURE__*/_react.default.createElement(_wizardDialog.default.Content, {
2392 dividers: true
2393 }, /*#__PURE__*/_react.default.createElement(_getStarted.default, {
2394 onSuccess: fetchData
2395 })));
2396 }
2397 var showUpgradeChip = !hasSubscription || 80 <= usagePercentage;
2398 return /*#__PURE__*/_react.default.createElement(_formLayout.default, {
2399 attachments: props.attachments,
2400 DialogHeaderProps: {
2401 children: showUpgradeChip && /*#__PURE__*/_react.default.createElement(_upgradeChip.default, {
2402 hasSubscription: hasSubscription,
2403 usagePercentage: usagePercentage
2404 })
2405 }
2406 });
2407 };
2408 LayoutContent.propTypes = {
2409 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
2410 };
2411 var _default = exports["default"] = LayoutContent;
2412
2413 /***/ }),
2414
2415 /***/ "../modules/ai/assets/js/editor/pages/connect/index.js":
2416 /*!*************************************************************!*\
2417 !*** ../modules/ai/assets/js/editor/pages/connect/index.js ***!
2418 \*************************************************************/
2419 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2420
2421 "use strict";
2422
2423
2424 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2425 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2426 Object.defineProperty(exports, "__esModule", ({
2427 value: true
2428 }));
2429 exports["default"] = void 0;
2430 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2431 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2432 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2433 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2434 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2435 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); }
2436 var Connect = function Connect(_ref) {
2437 var connectUrl = _ref.connectUrl,
2438 onSuccess = _ref.onSuccess;
2439 var approveButtonRef = (0, _react.useRef)();
2440 (0, _react.useEffect)(function () {
2441 // On local dev (as a standalone app), the connect lib is not loaded.
2442 if (!jQuery.fn.elementorConnect) {
2443 return;
2444 }
2445 jQuery(approveButtonRef.current).elementorConnect({
2446 success: function success(_, data) {
2447 return onSuccess(data);
2448 },
2449 error: function error() {
2450 throw new Error('Elementor AI: Failed to connect.');
2451 }
2452 });
2453 }, []);
2454 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2455 alignItems: "center",
2456 gap: 2
2457 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
2458 sx: {
2459 color: 'text.primary',
2460 fontSize: '60px',
2461 mb: 1
2462 }
2463 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2464 variant: "h4",
2465 sx: {
2466 color: 'text.primary'
2467 }
2468 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2469 variant: "body2"
2470 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2471 variant: "caption",
2472 sx: {
2473 maxWidth: 520,
2474 textAlign: 'center'
2475 }
2476 }, (0, _i18n.__)('By clicking "Connect", I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
2477 href: "https://go.elementor.com/ai-terms/",
2478 target: "_blank",
2479 color: "info.main"
2480 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
2481 href: "https://go.elementor.com/ai-privacy-policy/",
2482 target: "_blank",
2483 color: "info.main"
2484 }, (0, _i18n.__)('Privacy Policy', 'elementor')), (0, _i18n.__)(' of the Elementor AI service.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
2485 ref: approveButtonRef,
2486 href: connectUrl,
2487 variant: "contained",
2488 sx: {
2489 mt: 1,
2490 '&:hover': {
2491 color: 'primary.contrastText'
2492 }
2493 }
2494 }, (0, _i18n.__)('Connect', 'elementor')));
2495 };
2496 Connect.propTypes = {
2497 connectUrl: _propTypes.default.string.isRequired,
2498 onSuccess: _propTypes.default.func.isRequired
2499 };
2500 var _default = exports["default"] = Connect;
2501
2502 /***/ }),
2503
2504 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js":
2505 /*!**********************************************************************************!*\
2506 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js ***!
2507 \**********************************************************************************/
2508 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2509
2510 "use strict";
2511
2512
2513 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2514 Object.defineProperty(exports, "__esModule", ({
2515 value: true
2516 }));
2517 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;
2518 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2519 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2520 var _menu = __webpack_require__(/*! ./attachments/menu */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js");
2521 var _thumbnailJson = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-json */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js"));
2522 var _thumbnailUrl = _interopRequireDefault(__webpack_require__(/*! ./attachments/thumbnail-url */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js"));
2523 var _websiteIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/website-icon */ "../modules/ai/assets/js/editor/icons/website-icon.js"));
2524 var _copyPageIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/copy-page-icon */ "../modules/ai/assets/js/editor/icons/copy-page-icon.js"));
2525 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2526 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2527 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2528 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2529 var ATTACHMENT_TYPE_JSON = exports.ATTACHMENT_TYPE_JSON = 'json';
2530 var ATTACHMENT_TYPE_URL = exports.ATTACHMENT_TYPE_URL = 'url';
2531 var MENU_TYPE_LIBRARY = exports.MENU_TYPE_LIBRARY = 'library';
2532 var USER_VARIATION_SOURCE = exports.USER_VARIATION_SOURCE = 'user-variation';
2533 var ELEMENTOR_LIBRARY_SOURCE = exports.ELEMENTOR_LIBRARY_SOURCE = 'elementor-library';
2534 var USER_URL_SOURCE = exports.USER_URL_SOURCE = 'user-url';
2535 var Attachments = function Attachments(props) {
2536 if (!props.attachments.length) {
2537 return /*#__PURE__*/_react.default.createElement(_menu.Menu, {
2538 disabled: props.disabled,
2539 onAttach: props.onAttach,
2540 items: [{
2541 title: (0, _i18n.__)('Reference a website', 'elementor'),
2542 icon: _websiteIcon.default,
2543 type: ATTACHMENT_TYPE_URL
2544 }, {
2545 title: (0, _i18n.__)('Create variations from Template Library', 'elementor'),
2546 icon: _copyPageIcon.default,
2547 type: MENU_TYPE_LIBRARY
2548 }]
2549 });
2550 }
2551 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2552 direction: "row",
2553 spacing: 1
2554 }, props.attachments.map(function (attachment, index) {
2555 switch (attachment.type) {
2556 case ATTACHMENT_TYPE_JSON:
2557 return /*#__PURE__*/_react.default.createElement(_thumbnailJson.default, (0, _extends2.default)({
2558 key: index
2559 }, props));
2560 case ATTACHMENT_TYPE_URL:
2561 return /*#__PURE__*/_react.default.createElement(_thumbnailUrl.default, (0, _extends2.default)({
2562 key: index
2563 }, props));
2564 default:
2565 return null;
2566 }
2567 }));
2568 };
2569 Attachments.propTypes = {
2570 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2571 onAttach: _propTypes.default.func.isRequired,
2572 onDetach: _propTypes.default.func,
2573 disabled: _propTypes.default.bool
2574 };
2575 var _default = exports["default"] = Attachments;
2576
2577 /***/ }),
2578
2579 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js":
2580 /*!************************************************************************************************!*\
2581 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js ***!
2582 \************************************************************************************************/
2583 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2584
2585 "use strict";
2586
2587
2588 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2589 Object.defineProperty(exports, "__esModule", ({
2590 value: true
2591 }));
2592 exports["default"] = exports.AttachDialog = void 0;
2593 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2594 var _urlDialog = __webpack_require__(/*! ./url-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js");
2595 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2596 var _libraryDialog = __webpack_require__(/*! ./library-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js");
2597 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2598 var AttachDialog = exports.AttachDialog = function AttachDialog(props) {
2599 var type = props.type;
2600 var url = props.url;
2601 switch (type) {
2602 case _attachments.ATTACHMENT_TYPE_URL:
2603 return /*#__PURE__*/_react.default.createElement(_urlDialog.UrlDialog, {
2604 url: url,
2605 onAttach: props.onAttach,
2606 onClose: props.onClose
2607 });
2608 case _attachments.MENU_TYPE_LIBRARY:
2609 return /*#__PURE__*/_react.default.createElement(_libraryDialog.LibraryDialog, {
2610 onAttach: props.onAttach,
2611 onClose: props.onClose
2612 });
2613 }
2614 return null;
2615 };
2616 AttachDialog.propTypes = {
2617 type: _propTypes.default.string,
2618 onAttach: _propTypes.default.func,
2619 onClose: _propTypes.default.func,
2620 url: _propTypes.default.string
2621 };
2622 var _default = exports["default"] = AttachDialog;
2623
2624 /***/ }),
2625
2626 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js":
2627 /*!*************************************************************************************************!*\
2628 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/library-dialog.js ***!
2629 \*************************************************************************************************/
2630 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2631
2632 "use strict";
2633
2634
2635 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2636 Object.defineProperty(exports, "__esModule", ({
2637 value: true
2638 }));
2639 exports.LibraryDialog = void 0;
2640 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2641 var _react = __webpack_require__(/*! react */ "react");
2642 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
2643 var LibraryDialog = exports.LibraryDialog = function LibraryDialog(props) {
2644 var isApplyingTemplate = (0, _react.useRef)(false);
2645 (0, _react.useEffect)(function () {
2646 var onLibraryHide = function onLibraryHide() {
2647 if (isApplyingTemplate.current) {
2648 return;
2649 }
2650 props.onClose();
2651 };
2652 $e.components.get('library').layout.getModal().on('hide', onLibraryHide);
2653 return function () {
2654 $e.components.get('library').layout.getModal().off('hide', onLibraryHide);
2655 };
2656 }, [props]);
2657 (0, _react.useEffect)(function () {
2658 var onMessage = function onMessage(event) {
2659 var _event$data = event.data,
2660 type = _event$data.type,
2661 json = _event$data.json,
2662 html = _event$data.html,
2663 label = _event$data.label,
2664 source = _event$data.source;
2665 switch (type) {
2666 case 'library/attach:start':
2667 isApplyingTemplate.current = true;
2668 break;
2669 case 'library/attach':
2670 props.onAttach([{
2671 type: _attachments.ATTACHMENT_TYPE_JSON,
2672 previewHTML: html,
2673 content: json,
2674 label: label,
2675 source: source
2676 }]);
2677 isApplyingTemplate.current = false;
2678 props.onClose();
2679 break;
2680 }
2681 };
2682 window.addEventListener('message', onMessage);
2683 return function () {
2684 window.removeEventListener('message', onMessage);
2685 };
2686 });
2687 $e.run('library/open', {
2688 toDefault: true,
2689 mode: 'ai-attachment'
2690 });
2691 isApplyingTemplate.current = false;
2692 return null;
2693 };
2694 LibraryDialog.propTypes = {
2695 onAttach: _propTypes.default.func.isRequired,
2696 onClose: _propTypes.default.func.isRequired
2697 };
2698
2699 /***/ }),
2700
2701 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js":
2702 /*!***************************************************************************************!*\
2703 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/menu.js ***!
2704 \***************************************************************************************/
2705 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2706
2707 "use strict";
2708
2709
2710 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2711 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2712 Object.defineProperty(exports, "__esModule", ({
2713 value: true
2714 }));
2715 exports.Menu = void 0;
2716 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2717 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2718 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2719 var _xCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/x-circle-icon */ "../modules/ai/assets/js/editor/icons/x-circle-icon.js"));
2720 var _plusCircleIcon = _interopRequireDefault(__webpack_require__(/*! ../../../../icons/plus-circle-icon */ "../modules/ai/assets/js/editor/icons/plus-circle-icon.js"));
2721 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2722 var _attachDialog = __webpack_require__(/*! ./attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js");
2723 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2724 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); }
2725 var Menu = exports.Menu = function Menu(props) {
2726 var _useState = (0, _react.useState)(false),
2727 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2728 isOpen = _useState2[0],
2729 setIsOpen = _useState2[1];
2730 var _useState3 = (0, _react.useState)(null),
2731 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2732 selectedType = _useState4[0],
2733 setSelectedType = _useState4[1];
2734 var _useTheme = (0, _ui.useTheme)(),
2735 direction = _useTheme.direction;
2736 var anchorRef = (0, _react.useRef)(null);
2737 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-attachment-badge'),
2738 isViewed = _useIntroduction.isViewed,
2739 markAsViewed = _useIntroduction.markAsViewed;
2740 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2741 size: "small",
2742 ref: anchorRef,
2743 disabled: props.disabled,
2744 onClick: function onClick() {
2745 setIsOpen(true);
2746 if (!isViewed) {
2747 markAsViewed();
2748 }
2749 },
2750 color: "secondary"
2751 }, function () {
2752 if (isOpen) {
2753 return /*#__PURE__*/_react.default.createElement(_xCircleIcon.default, {
2754 fontSize: "small"
2755 });
2756 } else if (isViewed) {
2757 return /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2758 fontSize: "small"
2759 });
2760 }
2761 return /*#__PURE__*/_react.default.createElement(_ui.Badge, {
2762 color: "primary",
2763 badgeContent: " ",
2764 variant: "dot"
2765 }, /*#__PURE__*/_react.default.createElement(_plusCircleIcon.default, {
2766 fontSize: "small"
2767 }));
2768 }()), /*#__PURE__*/_react.default.createElement(_ui.Popover, {
2769 open: isOpen,
2770 anchorEl: anchorRef.current,
2771 onClose: function onClose() {
2772 return setIsOpen(false);
2773 },
2774 anchorOrigin: {
2775 vertical: 'bottom',
2776 horizontal: 'rtl' === direction ? 'right' : 'left'
2777 },
2778 transformOrigin: {
2779 vertical: 'top',
2780 horizontal: 'rtl' === direction ? 'right' : 'left'
2781 }
2782 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
2783 sx: {
2784 width: 440
2785 }
2786 }, props.items.map(function (item) {
2787 var IconComponent = item.icon;
2788 return /*#__PURE__*/_react.default.createElement(_ui.MenuItem, {
2789 key: item.type,
2790 onClick: function onClick() {
2791 setSelectedType(item.type);
2792 setIsOpen(false);
2793 }
2794 }, /*#__PURE__*/_react.default.createElement(_ui.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(IconComponent, null)), item.title);
2795 }))), /*#__PURE__*/_react.default.createElement(_attachDialog.AttachDialog, {
2796 type: selectedType,
2797 onAttach: props.onAttach,
2798 onClose: function onClose() {
2799 setIsOpen(false);
2800 setSelectedType(null);
2801 }
2802 }));
2803 };
2804 Menu.propTypes = {
2805 items: _propTypes.default.arrayOf(_propTypes.default.shape({
2806 title: _propTypes.default.string.isRequired,
2807 type: _propTypes.default.string.isRequired,
2808 icon: _propTypes.default.elementType
2809 })).isRequired,
2810 onAttach: _propTypes.default.func.isRequired,
2811 disabled: _propTypes.default.bool
2812 };
2813
2814 /***/ }),
2815
2816 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js":
2817 /*!******************************************************************************************************!*\
2818 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js ***!
2819 \******************************************************************************************************/
2820 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2821
2822 "use strict";
2823
2824
2825 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2826 Object.defineProperty(exports, "__esModule", ({
2827 value: true
2828 }));
2829 exports.PromptPowerNotice = void 0;
2830 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2831 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2832 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2833 var _useIntroduction2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-introduction */ "../modules/ai/assets/js/editor/hooks/use-introduction.js"));
2834 var PromptPowerNotice = exports.PromptPowerNotice = function PromptPowerNotice() {
2835 var _useIntroduction = (0, _useIntroduction2.default)('e-ai-builder-attachments-power'),
2836 isViewed = _useIntroduction.isViewed,
2837 markAsViewed = _useIntroduction.markAsViewed;
2838 if (isViewed) {
2839 return null;
2840 }
2841 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2842 sx: {
2843 pt: 2,
2844 px: 2,
2845 pb: 0
2846 }
2847 }, /*#__PURE__*/_react.default.createElement(_ui.Alert, {
2848 severity: "info",
2849 onClose: function onClose() {
2850 return markAsViewed();
2851 }
2852 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2853 variant: "body2",
2854 display: "inline-block",
2855 sx: {
2856 paddingInlineEnd: 1
2857 }
2858 }, (0, _i18n.__)('You’ve got the power.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
2859 variant: "body2",
2860 display: "inline-block"
2861 }, (0, _i18n.__)('Craft your prompt to affect content, images and/or colors - whichever you decide.', 'elementor'))));
2862 };
2863
2864 /***/ }),
2865
2866 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js":
2867 /*!*************************************************************************************************!*\
2868 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-json.js ***!
2869 \*************************************************************************************************/
2870 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2871
2872 "use strict";
2873
2874
2875 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2876 Object.defineProperty(exports, "__esModule", ({
2877 value: true
2878 }));
2879 exports["default"] = exports.ThumbnailJson = void 0;
2880 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2881 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2882 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2883 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2884 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2885 var ThumbnailJson = exports.ThumbnailJson = function ThumbnailJson(props) {
2886 var _props$attachments;
2887 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2888 return 'json' === item.type;
2889 });
2890 if (!attachment) {
2891 return null;
2892 }
2893 if (!attachment.previewHTML) {
2894 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
2895 animation: "wave",
2896 variant: "rounded",
2897 width: 60,
2898 height: 60
2899 });
2900 }
2901 return /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2902 html: attachment.previewHTML,
2903 disabled: props.disabled
2904 });
2905 };
2906 ThumbnailJson.propTypes = {
2907 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2908 disabled: _propTypes.default.bool
2909 };
2910 var _default = exports["default"] = ThumbnailJson;
2911
2912 /***/ }),
2913
2914 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js":
2915 /*!************************************************************************************************!*\
2916 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail-url.js ***!
2917 \************************************************************************************************/
2918 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2919
2920 "use strict";
2921
2922
2923 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2924 Object.defineProperty(exports, "__esModule", ({
2925 value: true
2926 }));
2927 exports["default"] = exports.ThumbnailUrl = void 0;
2928 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2929 var _thumbnail = __webpack_require__(/*! ./thumbnail */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js");
2930 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2931 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
2932 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
2933 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
2934 var _attachment = __webpack_require__(/*! ../../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
2935 var ThumbnailUrl = exports.ThumbnailUrl = function ThumbnailUrl(props) {
2936 var _props$attachments;
2937 var attachment = (_props$attachments = props.attachments) === null || _props$attachments === void 0 ? void 0 : _props$attachments.find(function (item) {
2938 return 'url' === item.type;
2939 });
2940 if (!attachment) {
2941 return null;
2942 }
2943 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
2944 sx: {
2945 position: 'relative',
2946 '&:hover::before': {
2947 content: '""',
2948 position: 'absolute',
2949 userSelect: 'none',
2950 inset: 0,
2951 backgroundColor: 'rgba(0,0,0,0.6)',
2952 borderRadius: 1,
2953 zIndex: 1
2954 },
2955 '&:hover .remove-attachment': {
2956 display: 'flex'
2957 }
2958 }
2959 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
2960 className: "remove-attachment",
2961 size: "small",
2962 "aria-label": (0, _i18n.__)('Remove', 'elementor'),
2963 disabled: props.disabled,
2964 onClick: function onClick(event) {
2965 event.stopPropagation();
2966 props.onDetach();
2967 },
2968 sx: {
2969 display: 'none',
2970 position: 'absolute',
2971 insetInlineEnd: 4,
2972 insetBlockStart: 4,
2973 backgroundColor: 'secondary.main',
2974 zIndex: 1,
2975 borderRadius: 1,
2976 p: '3px',
2977 '&:hover': {
2978 backgroundColor: 'secondary.dark'
2979 }
2980 }
2981 }, /*#__PURE__*/_react.default.createElement(_icons.TrashIcon, {
2982 sx: {
2983 fontSize: '1.125rem',
2984 color: 'common.white'
2985 }
2986 })), /*#__PURE__*/_react.default.createElement(_thumbnail.Thumbnail, {
2987 disabled: props.disabled,
2988 html: attachment.previewHTML
2989 }));
2990 };
2991 ThumbnailUrl.propTypes = {
2992 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType).isRequired,
2993 disabled: _propTypes.default.bool,
2994 onDetach: _propTypes.default.func
2995 };
2996 var _default = exports["default"] = ThumbnailUrl;
2997
2998 /***/ }),
2999
3000 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js":
3001 /*!********************************************************************************************!*\
3002 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/thumbnail.js ***!
3003 \********************************************************************************************/
3004 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3005
3006 "use strict";
3007
3008
3009 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3010 Object.defineProperty(exports, "__esModule", ({
3011 value: true
3012 }));
3013 exports.Thumbnail = exports.THUMBNAIL_SIZE = void 0;
3014 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3015 var _taggedTemplateLiteral2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js"));
3016 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3017 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3018 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3019 var _templateObject;
3020 var THUMBNAIL_SIZE = exports.THUMBNAIL_SIZE = 64;
3021 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);
3022 var Thumbnail = exports.Thumbnail = function Thumbnail(props) {
3023 var _props$html$match, _props$html$match2;
3024 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;
3025 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;
3026 var width = dataWidth ? parseInt(dataWidth) : THUMBNAIL_SIZE;
3027 var height = dataHeight ? parseInt(dataHeight) : THUMBNAIL_SIZE;
3028 var scaleFactor = Math.min(height, width);
3029 var scale = THUMBNAIL_SIZE / scaleFactor;
3030
3031 // Center the preview
3032 var top = height > width ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (height / width)) / 2 : 0;
3033 var left = width > height ? (THUMBNAIL_SIZE - THUMBNAIL_SIZE * (width / height)) / 2 : 0;
3034 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3035 dir: "ltr",
3036 sx: {
3037 position: 'relative',
3038 cursor: 'default',
3039 overflow: 'hidden',
3040 border: '1px solid',
3041 borderColor: 'grey.300',
3042 borderRadius: 1,
3043 boxSizing: 'border-box',
3044 width: THUMBNAIL_SIZE,
3045 height: THUMBNAIL_SIZE,
3046 opacity: props.disabled ? 0.5 : 1
3047 }
3048 }, /*#__PURE__*/_react.default.createElement("iframe", {
3049 title: (0, _i18n.__)('Preview', 'elementor'),
3050 sandbox: "",
3051 srcDoc: "<style>" + StyledBody.componentStyle.rules.join('') + "</style>" + props.html,
3052 style: {
3053 border: 'none',
3054 overflow: 'hidden',
3055 width: width,
3056 height: height,
3057 transform: "scale(".concat(scale, ")"),
3058 transformOrigin: "".concat(left, "px ").concat(top, "px")
3059 }
3060 }));
3061 };
3062 Thumbnail.propTypes = {
3063 html: _propTypes.default.string.isRequired,
3064 disabled: _propTypes.default.bool
3065 };
3066
3067 /***/ }),
3068
3069 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js":
3070 /*!*********************************************************************************************!*\
3071 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/attachments/url-dialog.js ***!
3072 \*********************************************************************************************/
3073 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3074
3075 "use strict";
3076
3077
3078 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3079 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3080 Object.defineProperty(exports, "__esModule", ({
3081 value: true
3082 }));
3083 exports.UrlDialog = void 0;
3084 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3085 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3086 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3087 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3088 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3089 var _alertDialog = __webpack_require__(/*! ../../../../components/alert-dialog */ "../modules/ai/assets/js/editor/components/alert-dialog.js");
3090 var _useTimeout3 = __webpack_require__(/*! ../../../../hooks/use-timeout */ "../modules/ai/assets/js/editor/hooks/use-timeout.js");
3091 var _attachments = __webpack_require__(/*! ../attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
3092 var _remoteConfig = __webpack_require__(/*! ../../context/remote-config */ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js");
3093 var _useUserInfo2 = _interopRequireDefault(__webpack_require__(/*! ../../../../hooks/use-user-info */ "../modules/ai/assets/js/editor/hooks/use-user-info.js"));
3094 var _requestsIds = __webpack_require__(/*! ../../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
3095 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); }
3096 var UrlDialog = exports.UrlDialog = function UrlDialog(props) {
3097 var _useTimeout = (0, _useTimeout3.useTimeout)(10000),
3098 _useTimeout2 = (0, _slicedToArray2.default)(_useTimeout, 2),
3099 isTimeout = _useTimeout2[0],
3100 turnOffTimeout = _useTimeout2[1];
3101 var _useUserInfo = (0, _useUserInfo2.default)(),
3102 isLoading = _useUserInfo.isLoading,
3103 initialUsagePercentage = _useUserInfo.usagePercentage;
3104 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
3105 updateUsagePercentage = _useRequestIds.updateUsagePercentage;
3106 var _useState = (0, _react.useState)(false),
3107 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3108 isInitUsageDone = _useState2[0],
3109 setIsInitUsageDone = _useState2[1];
3110 var _useRemoteConfig = (0, _remoteConfig.useRemoteConfig)(),
3111 remoteConfig = _useRemoteConfig.remoteConfig;
3112 var builderUrl = remoteConfig[_remoteConfig.CONFIG_KEYS.WEB_BASED_BUILDER_URL];
3113 var urlObject = builderUrl ? new URL(builderUrl) : {};
3114 var iframeOrigin = urlObject.origin;
3115 var isOpen = (0, _react.useRef)(false);
3116 (0, _react.useEffect)(function () {
3117 if (!isInitUsageDone && !isLoading && (initialUsagePercentage || 0 === initialUsagePercentage)) {
3118 updateUsagePercentage(initialUsagePercentage);
3119 setIsInitUsageDone(true);
3120 }
3121 }, [isLoading, initialUsagePercentage, isInitUsageDone, updateUsagePercentage]);
3122 (0, _react.useEffect)(function () {
3123 if (!isOpen.current) {
3124 try {
3125 window.$e.run('ai-integration/open-choose-element', {
3126 url: props.url
3127 });
3128 isOpen.current = true;
3129 } catch (error) {
3130 // eslint-disable-next-line no-console
3131 console.error(error);
3132 }
3133 }
3134 }, [isOpen.current]);
3135 (0, _react.useEffect)(function () {
3136 var onMessage = function onMessage(event) {
3137 if (event.origin !== iframeOrigin) {
3138 return;
3139 }
3140 var _event$data = event.data,
3141 type = _event$data.type,
3142 html = _event$data.html,
3143 url = _event$data.url;
3144 switch (type) {
3145 case 'element-selector/close':
3146 isOpen.current = false;
3147 props.onClose();
3148 break;
3149 case 'element-selector/loaded':
3150 turnOffTimeout();
3151 isOpen.current = true;
3152 break;
3153 case 'element-selector/attach':
3154 props.onAttach([{
3155 type: 'url',
3156 previewHTML: html,
3157 content: html,
3158 label: url ? new URL(url).href : '',
3159 source: _attachments.USER_URL_SOURCE
3160 }]);
3161 break;
3162 }
3163 };
3164 window.addEventListener('message', onMessage);
3165 return function () {
3166 window.removeEventListener('message', onMessage);
3167 };
3168 }, [iframeOrigin, props, turnOffTimeout]);
3169 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isOpen.current && !isTimeout && /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
3170 open: true,
3171 maxWidth: "lg"
3172 }, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3173 sx: {
3174 textAlign: 'center',
3175 padding: 3
3176 }
3177 }, (0, _i18n.__)('Loading...', 'elementor'))), isTimeout && /*#__PURE__*/_react.default.createElement(_alertDialog.AlertDialog, {
3178 message: (0, _i18n.__)('The app is not responding. Please try again later. (#408)', 'elementor'),
3179 onClose: props.onClose
3180 }));
3181 };
3182 UrlDialog.propTypes = {
3183 onAttach: _propTypes.default.func.isRequired,
3184 onClose: _propTypes.default.func.isRequired,
3185 url: _propTypes.default.string
3186 };
3187
3188 /***/ }),
3189
3190 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js":
3191 /*!************************************************************************************!*\
3192 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js ***!
3193 \************************************************************************************/
3194 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3195
3196 "use strict";
3197
3198
3199 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3200 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3201 Object.defineProperty(exports, "__esModule", ({
3202 value: true
3203 }));
3204 exports["default"] = void 0;
3205 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3206 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3207 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3208 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3209 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3210 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3211 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3212 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3213 var _promptDialog = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-dialog */ "../modules/ai/assets/js/editor/components/prompt-dialog.js"));
3214 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
3215 var _excluded = ["sx", "PaperProps"];
3216 function _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); }
3217 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; }
3218 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; }
3219 var StyledDialog = (0, _ui.styled)(_promptDialog.default)(function () {
3220 return {
3221 '& .MuiDialog-container': {
3222 marginTop: 0,
3223 alignItems: 'flex-end',
3224 paddingBottom: '16vh'
3225 },
3226 '& .MuiPaper-root': {
3227 margin: 0,
3228 maxHeight: '80vh'
3229 }
3230 };
3231 });
3232 var DialogHeader = function DialogHeader(_ref) {
3233 var onClose = _ref.onClose,
3234 children = _ref.children;
3235 return /*#__PURE__*/_react.default.createElement(_ui.AppBar, {
3236 sx: {
3237 fontWeight: 'normal'
3238 },
3239 color: "transparent",
3240 position: "relative"
3241 }, /*#__PURE__*/_react.default.createElement(_ui.Toolbar, {
3242 variant: "dense"
3243 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
3244 sx: {
3245 mr: 1
3246 }
3247 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3248 component: "span",
3249 variant: "subtitle2",
3250 sx: {
3251 fontWeight: 'bold',
3252 textTransform: 'uppercase'
3253 }
3254 }, (0, _i18n.__)('AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3255 label: (0, _i18n.__)('Beta', 'elementor'),
3256 color: "default",
3257 size: "small",
3258 sx: {
3259 ml: 1
3260 }
3261 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3262 direction: "row",
3263 spacing: 1,
3264 alignItems: "center",
3265 sx: {
3266 ml: 'auto'
3267 }
3268 }, children, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3269 size: "small",
3270 "aria-label": "close",
3271 onClick: onClose,
3272 sx: {
3273 '&.MuiButtonBase-root': {
3274 mr: -1
3275 }
3276 }
3277 }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, null)))));
3278 };
3279 DialogHeader.propTypes = {
3280 children: _propTypes.default.node,
3281 onClose: _propTypes.default.func.isRequired
3282 };
3283 var StyledDialogContent = (0, _ui.styled)(_promptDialog.default.Content)(function () {
3284 return {
3285 '&.MuiDialogContent-root': {
3286 padding: 0
3287 }
3288 };
3289 });
3290 var LayoutDialog = function LayoutDialog(_ref2) {
3291 var _ref2$sx = _ref2.sx,
3292 sx = _ref2$sx === void 0 ? {} : _ref2$sx,
3293 _ref2$PaperProps = _ref2.PaperProps,
3294 PaperProps = _ref2$PaperProps === void 0 ? {} : _ref2$PaperProps,
3295 props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
3296 var _useState = (0, _react.useState)({
3297 pointerEvents: 'none'
3298 }),
3299 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3300 sxStyle = _useState2[0],
3301 setSxStyle = _useState2[1];
3302 var timeoutRef = (0, _react.useRef)(null);
3303
3304 /**
3305 * The PromptDialog is using disableScrollLock in order to allow scrolling the page when the Dialog is opened.
3306 * When using the react-draggable library inside the editor, the background page scroll is not working smoothly.
3307 * Therefore, we need to delay the pointerEvents: none, which allowing to scroll the page content.
3308 */
3309 return /*#__PURE__*/_react.default.createElement(StyledDialog, (0, _extends2.default)({
3310 maxWidth: "md",
3311 PaperProps: _objectSpread({
3312 sx: {
3313 pointerEvents: 'auto'
3314 },
3315 onMouseEnter: function onMouseEnter() {
3316 clearTimeout(timeoutRef.current);
3317 setSxStyle({
3318 pointerEvents: 'all'
3319 });
3320 },
3321 onMouseLeave: function onMouseLeave() {
3322 clearTimeout(timeoutRef.current);
3323 timeoutRef.current = setTimeout(function () {
3324 setSxStyle({
3325 pointerEvents: 'none'
3326 });
3327 }, 200);
3328 }
3329 }, PaperProps)
3330 }, props, {
3331 sx: _objectSpread(_objectSpread({}, sxStyle), sx)
3332 }));
3333 };
3334 LayoutDialog.propTypes = {
3335 sx: _propTypes.default.object,
3336 PaperProps: _propTypes.default.object
3337 };
3338 LayoutDialog.Header = DialogHeader;
3339 LayoutDialog.Content = StyledDialogContent;
3340 var _default = exports["default"] = LayoutDialog;
3341
3342 /***/ }),
3343
3344 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js":
3345 /*!*********************************************************************************************!*\
3346 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js ***!
3347 \*********************************************************************************************/
3348 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3349
3350 "use strict";
3351
3352
3353 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3354 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3355 Object.defineProperty(exports, "__esModule", ({
3356 value: true
3357 }));
3358 exports.ProTemplateIndicator = void 0;
3359 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3360 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3361 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3362 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3363 var _lockIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/lock-icon */ "../modules/ai/assets/js/editor/icons/lock-icon.js"));
3364 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); }
3365 var popoverId = 'e-pro-upgrade-popover';
3366 var StyledContent = (0, _ui.styled)(_ui.Paper)(function (_ref) {
3367 var theme = _ref.theme;
3368 return {
3369 position: 'relative',
3370 padding: theme.spacing(3),
3371 boxShadow: theme.shadows[4],
3372 zIndex: '9999'
3373 };
3374 });
3375 var StyledArrow = (0, _ui.styled)(_ui.Box)(function (_ref2) {
3376 var theme = _ref2.theme;
3377 return {
3378 position: 'absolute',
3379 width: theme.spacing(5),
3380 height: theme.spacing(5),
3381 overflow: 'hidden',
3382 // Override Popper inline styles.
3383 left: '100% !important',
3384 transform: 'translateX(-50%) translateY(-50%) rotate(var(--rotate, 0deg)) !important',
3385 '&::after': {
3386 backgroundColor: theme.palette.background.paper,
3387 content: '""',
3388 display: 'block',
3389 position: 'absolute',
3390 width: theme.spacing(2.5),
3391 height: theme.spacing(2.5),
3392 top: '50%',
3393 left: '50%',
3394 transform: 'translateX(-50%) translateY(-50%) rotate(45deg)',
3395 boxShadow: '5px -5px 5px 0px rgba(0, 0, 0, 0.2)',
3396 backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))'
3397 }
3398 };
3399 });
3400 var ProTemplateIndicator = exports.ProTemplateIndicator = function ProTemplateIndicator() {
3401 var actionUrl = 'https://go.elementor.com/go-pro-ai/';
3402 var actionLabel = (0, _i18n.__)('Go Pro', 'elementor');
3403 var _useState = (0, _react.useState)(false),
3404 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3405 isPopoverOpen = _useState2[0],
3406 setIsPopoverOpen = _useState2[1];
3407 var anchorEl = (0, _react.useRef)(null);
3408 var arrowEl = (0, _react.useRef)(null);
3409 var showPopover = function showPopover() {
3410 return setIsPopoverOpen(true);
3411 };
3412 var hidePopover = function hidePopover() {
3413 return setIsPopoverOpen(false);
3414 };
3415 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3416 flexDirection: "row-reverse",
3417 component: "span",
3418 display: "flex",
3419 onMouseLeave: hidePopover,
3420 alignItems: "center"
3421 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
3422 ref: anchorEl,
3423 onMouseEnter: showPopover,
3424 onClick: function onClick(e) {
3425 return e.stopPropagation();
3426 } /* Do nothing */,
3427 "aria-owns": isPopoverOpen ? popoverId : undefined,
3428 "aria-haspopup": "true",
3429 sx: {
3430 m: 1,
3431 '&:hover': {
3432 backgroundColor: 'action.selected'
3433 }
3434 }
3435 }, /*#__PURE__*/_react.default.createElement(_lockIcon.default, {
3436 sx: {
3437 color: 'text.primary'
3438 }
3439 })), /*#__PURE__*/_react.default.createElement(_ui.Popper, {
3440 open: isPopoverOpen,
3441 popperOptions: {
3442 placement: 'left-start',
3443 modifiers: [{
3444 name: 'arrow',
3445 enabled: true,
3446 options: {
3447 element: arrowEl.current,
3448 padding: 5
3449 }
3450 }, {
3451 name: 'offset',
3452 options: {
3453 offset: [0, 10]
3454 }
3455 }]
3456 },
3457 anchorEl: anchorEl.current,
3458 sx: {
3459 zIndex: '9999',
3460 maxWidth: 300
3461 }
3462 }, /*#__PURE__*/_react.default.createElement(StyledContent, null, /*#__PURE__*/_react.default.createElement(StyledArrow, {
3463 ref: arrowEl
3464 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3465 alignItems: "start",
3466 spacing: 2
3467 }, /*#__PURE__*/_react.default.createElement(_ui.Chip, {
3468 color: "promotion",
3469 variant: "outlined",
3470 size: "small",
3471 label: (0, _i18n.__)('Pro', 'elementor'),
3472 icon: /*#__PURE__*/_react.default.createElement(_lockIcon.default, null)
3473 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3474 variant: "body2"
3475 }, (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, {
3476 variant: "contained",
3477 color: "promotion",
3478 size: "small",
3479 href: actionUrl,
3480 target: "_blank",
3481 sx: {
3482 alignSelf: 'flex-end'
3483 }
3484 }, actionLabel)))));
3485 };
3486
3487 /***/ }),
3488
3489 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js":
3490 /*!******************************************************************************************!*\
3491 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js ***!
3492 \******************************************************************************************/
3493 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3494
3495 "use strict";
3496
3497
3498 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3499 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3500 Object.defineProperty(exports, "__esModule", ({
3501 value: true
3502 }));
3503 exports["default"] = void 0;
3504 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3505 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3506 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3507 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3508 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3509 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3510 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3511 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3512 var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js"));
3513 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3514 var _excluded = ["onSubmit"];
3515 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); }
3516 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; }
3517 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; }
3518 var TextInput = (0, _react.forwardRef)(function (props, ref) {
3519 return /*#__PURE__*/_react.default.createElement(_ui.TextField
3520 // eslint-disable-next-line jsx-a11y/no-autofocus
3521 , (0, _extends2.default)({
3522 autoFocus: true,
3523 multiline: true,
3524 size: "small",
3525 maxRows: 3,
3526 color: "secondary",
3527 variant: "standard"
3528 }, props, {
3529 inputRef: ref,
3530 InputProps: _objectSpread(_objectSpread({}, props.InputProps), {}, {
3531 type: 'search',
3532 sx: {
3533 pt: 0
3534 }
3535 })
3536 }));
3537 });
3538 TextInput.propTypes = {
3539 InputProps: _propTypes.default.object
3540 };
3541 var PaperComponent = function PaperComponent(props) {
3542 var _useConfig = (0, _config.useConfig)(),
3543 mode = _useConfig.mode;
3544 var libraryLink = _config.MODE_VARIATION === mode ? 'https://go.elementor.com/ai-prompt-library-variations/' : 'https://go.elementor.com/ai-prompt-library-containers/';
3545 return /*#__PURE__*/_react.default.createElement(_ui.Paper, (0, _extends2.default)({}, props, {
3546 elevation: 8,
3547 sx: {
3548 borderRadius: 2
3549 }
3550 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
3551 component: _ui.Box,
3552 color: function color(theme) {
3553 return theme.palette.text.tertiary;
3554 },
3555 variant: "caption",
3556 paddingX: 2,
3557 paddingY: 1
3558 }, (0, _i18n.__)('Suggested Prompts', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Divider, null), props.children, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3559 sx: {
3560 m: 2
3561 }
3562 }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, {
3563 libraryLink: libraryLink
3564 })));
3565 };
3566 PaperComponent.propTypes = {
3567 children: _propTypes.default.node
3568 };
3569 var PromptAutocomplete = function PromptAutocomplete(_ref) {
3570 var onSubmit = _ref.onSubmit,
3571 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3572 var _useState = (0, _react.useState)(false),
3573 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3574 showSuggestions = _useState2[0],
3575 setShowSuggestions = _useState2[1];
3576 var theme = (0, _ui.useTheme)();
3577 var itemHeight = parseInt(theme.spacing(4));
3578 var maxItems = 5;
3579 return /*#__PURE__*/_react.default.createElement(_ui.Autocomplete, (0, _extends2.default)({
3580 PaperComponent: PaperComponent,
3581 ListboxProps: {
3582 sx: {
3583 maxHeight: maxItems * itemHeight
3584 }
3585 },
3586 renderOption: function renderOption(optionProps, option) {
3587 return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({}, optionProps, {
3588 title: option.text,
3589 noWrap: true,
3590 variant: "body2",
3591 component: _ui.Box,
3592 sx: {
3593 '&.MuiAutocomplete-option': {
3594 display: 'block',
3595 minHeight: itemHeight
3596 }
3597 }
3598 }), option.text);
3599 },
3600 freeSolo: true,
3601 fullWidth: true,
3602 disableClearable: true,
3603 open: showSuggestions,
3604 onClose: function onClose(e) {
3605 var _e$relatedTarget;
3606 return setShowSuggestions('A' === ((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : _e$relatedTarget.tagName));
3607 },
3608 onKeyDown: function onKeyDown(e) {
3609 if ('Enter' === e.key && !e.shiftKey && !showSuggestions) {
3610 onSubmit(e);
3611 } else if ('/' === e.key && '' === e.target.value) {
3612 e.preventDefault();
3613 setShowSuggestions(true);
3614 }
3615 }
3616 }, props));
3617 };
3618 PromptAutocomplete.propTypes = {
3619 onSubmit: _propTypes.default.func.isRequired
3620 };
3621 PromptAutocomplete.TextInput = TextInput;
3622 var _default = exports["default"] = PromptAutocomplete;
3623
3624 /***/ }),
3625
3626 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js":
3627 /*!**********************************************************************************!*\
3628 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js ***!
3629 \**********************************************************************************/
3630 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3631
3632 "use strict";
3633
3634
3635 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3636 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3637 Object.defineProperty(exports, "__esModule", ({
3638 value: true
3639 }));
3640 exports["default"] = void 0;
3641 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3642 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3643 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3644 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
3645 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3646 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3647 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3648 var _promptAutocomplete = _interopRequireDefault(__webpack_require__(/*! ./prompt-autocomplete */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-autocomplete.js"));
3649 var _enhanceButton = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/enhance-button */ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js"));
3650 var _generateSubmit = _interopRequireDefault(__webpack_require__(/*! ../../form-media/components/generate-submit */ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js"));
3651 var _arrowLeftIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/arrow-left-icon */ "../modules/ai/assets/js/editor/icons/arrow-left-icon.js"));
3652 var _editIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/edit-icon */ "../modules/ai/assets/js/editor/icons/edit-icon.js"));
3653 var _usePromptEnhancer2 = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt-enhancer */ "../modules/ai/assets/js/editor/hooks/use-prompt-enhancer.js"));
3654 var _attachments = _interopRequireDefault(__webpack_require__(/*! ./attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js"));
3655 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
3656 var _attachment = __webpack_require__(/*! ../../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
3657 var _excluded = ["tooltip"];
3658 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); }
3659 var PROMPT_SUGGESTIONS = Object.freeze([
3660 // Translators: [Topic] is a placeholder for the user - please translate it as well
3661 {
3662 text: (0, _i18n.__)('Hero section on [topic] with heading, text, buttons on the right, and an image on the left', 'elementor.com')
3663 },
3664 // Translators: [Topic] is a placeholder for the user - please translate it as well
3665 {
3666 text: (0, _i18n.__)('About Us section on [topic] with heading, text, and big image below', 'elementor.com')
3667 }, {
3668 text: (0, _i18n.__)('Team section with four image boxes showcasing team members', 'elementor.com')
3669 },
3670 // Translators: [Topic] is a placeholder for the user - please translate it as well
3671 {
3672 text: (0, _i18n.__)('FAQ section with a toggle widget showcasing FAQs about [topic]', 'elementor.com')
3673 }, {
3674 text: (0, _i18n.__)('Gallery section with a carousel displaying three images at once', 'elementor.com')
3675 },
3676 // Translators: [Topic] is a placeholder for the user - please translate it as well
3677 {
3678 text: (0, _i18n.__)('Contact section with a form for [topic]', 'elementor.com')
3679 }, {
3680 text: (0, _i18n.__)('Client section featuring companies\' logos', 'elementor.com')
3681 },
3682 // Translators: [Topic] is a placeholder for the user - please translate it as well
3683 {
3684 text: (0, _i18n.__)('Testimonial section with testimonials, each featuring a star rating and an image', 'elementor.com')
3685 },
3686 // Translators: [Topic] is a placeholder for the user - please translate it as well
3687 {
3688 text: (0, _i18n.__)('Service section about [topic], showcasing four services with buttons', 'elementor.com')
3689 },
3690 // Translators: [Topic] is a placeholder for the user - please translate it as well
3691 {
3692 text: (0, _i18n.__)('Stats section with counters displaying data about [topic]', 'elementor.com')
3693 }, {
3694 text: (0, _i18n.__)('Quote section with colored background, featuring a centered quote', 'elementor.com')
3695 },
3696 // Translators: [Topic] is a placeholder for the user - please translate it as well
3697 {
3698 text: (0, _i18n.__)('Pricing section for [topic] with a pricing list', 'elementor.com')
3699 },
3700 // Translators: [Topic] is a placeholder for the user - please translate it as well
3701 {
3702 text: (0, _i18n.__)('Subscribe section featuring a simple email form, inviting users to stay informed on [topic]', 'elementor.com')
3703 }]);
3704 var IconButtonWithTooltip = function IconButtonWithTooltip(_ref) {
3705 var tooltip = _ref.tooltip,
3706 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
3707 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
3708 title: tooltip
3709 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
3710 component: "span",
3711 sx: {
3712 cursor: props.disabled ? 'default' : 'pointer'
3713 }
3714 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, props)));
3715 };
3716 IconButtonWithTooltip.propTypes = {
3717 tooltip: _propTypes.default.string,
3718 disabled: _propTypes.default.bool
3719 };
3720 var BackButton = function BackButton(props) {
3721 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3722 size: "small",
3723 color: "secondary",
3724 tooltip: (0, _i18n.__)('Back to results', 'elementor')
3725 }, props), /*#__PURE__*/_react.default.createElement(_arrowLeftIcon.default, null));
3726 };
3727 var EditButton = function EditButton(props) {
3728 return /*#__PURE__*/_react.default.createElement(IconButtonWithTooltip, (0, _extends2.default)({
3729 size: "small",
3730 color: "primary",
3731 tooltip: (0, _i18n.__)('Edit prompt', 'elementor')
3732 }, props), /*#__PURE__*/_react.default.createElement(_editIcon.default, null));
3733 };
3734 var GenerateButton = function GenerateButton(props) {
3735 return /*#__PURE__*/_react.default.createElement(_generateSubmit.default, (0, _extends2.default)({
3736 size: "small",
3737 fullWidth: false
3738 }, props), (0, _i18n.__)('Generate', 'elementor'));
3739 };
3740 var PromptForm = (0, _react.forwardRef)(function (_ref2, ref) {
3741 var _attachments$;
3742 var attachments = _ref2.attachments,
3743 isActive = _ref2.isActive,
3744 isLoading = _ref2.isLoading,
3745 _ref2$showActions = _ref2.showActions,
3746 showActions = _ref2$showActions === void 0 ? false : _ref2$showActions,
3747 onAttach = _ref2.onAttach,
3748 onDetach = _ref2.onDetach,
3749 _onSubmit = _ref2.onSubmit,
3750 onBack = _ref2.onBack,
3751 onEdit = _ref2.onEdit,
3752 _ref2$shouldResetProm = _ref2.shouldResetPrompt,
3753 shouldResetPrompt = _ref2$shouldResetProm === void 0 ? false : _ref2$shouldResetProm;
3754 var _useState = (0, _react.useState)(''),
3755 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3756 prompt = _useState2[0],
3757 setPrompt = _useState2[1];
3758 (0, _react.useEffect)(function () {
3759 if (shouldResetPrompt) {
3760 setPrompt('');
3761 }
3762 }, [shouldResetPrompt]);
3763 var _usePromptEnhancer = (0, _usePromptEnhancer2.default)(prompt, 'layout'),
3764 isEnhancing = _usePromptEnhancer.isEnhancing,
3765 enhance = _usePromptEnhancer.enhance;
3766 var previousPrompt = (0, _react.useRef)('');
3767 var _useConfig = (0, _config.useConfig)(),
3768 attachmentsTypes = _useConfig.attachmentsTypes;
3769 var isInputDisabled = isLoading || isEnhancing || !isActive;
3770 var isInputEmpty = '' === prompt && !attachments.length;
3771 var isGenerateDisabled = isInputDisabled || isInputEmpty;
3772 var attachmentsType = ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) || '';
3773 var attachmentsConfig = attachmentsTypes[attachmentsType];
3774 var promptSuggestions = (attachmentsConfig === null || attachmentsConfig === void 0 ? void 0 : attachmentsConfig.promptSuggestions) || PROMPT_SUGGESTIONS;
3775 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');
3776 var handleBack = function handleBack() {
3777 setPrompt(previousPrompt.current);
3778 onBack();
3779 };
3780 var handleEdit = function handleEdit() {
3781 previousPrompt.current = prompt;
3782 onEdit();
3783 };
3784 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3785 component: "form",
3786 onSubmit: function onSubmit(e) {
3787 return _onSubmit(e, prompt);
3788 },
3789 direction: "row",
3790 sx: {
3791 p: 3
3792 },
3793 alignItems: "start",
3794 gap: 1
3795 }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
3796 direction: "row",
3797 alignItems: "start",
3798 flexGrow: 1,
3799 spacing: 2
3800 }, showActions && (isActive ? /*#__PURE__*/_react.default.createElement(BackButton, {
3801 disabled: isLoading || isEnhancing,
3802 onClick: handleBack
3803 }) : /*#__PURE__*/_react.default.createElement(EditButton, {
3804 disabled: isLoading,
3805 onClick: handleEdit
3806 })), /*#__PURE__*/_react.default.createElement(_attachments.default, {
3807 attachments: attachments,
3808 onAttach: onAttach,
3809 onDetach: onDetach,
3810 disabled: isInputDisabled
3811 }), /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default, {
3812 value: prompt,
3813 disabled: isInputDisabled,
3814 onSubmit: function onSubmit(e) {
3815 return _onSubmit(e, prompt);
3816 },
3817 options: promptSuggestions,
3818 onChange: function onChange(_, selectedValue) {
3819 return setPrompt(selectedValue.text + ' ');
3820 },
3821 renderInput: function renderInput(params) {
3822 return /*#__PURE__*/_react.default.createElement(_promptAutocomplete.default.TextInput, (0, _extends2.default)({}, params, {
3823 ref: ref,
3824 onChange: function onChange(e) {
3825 return setPrompt(e.target.value);
3826 },
3827 placeholder: promptPlaceholder
3828 }));
3829 }
3830 })), /*#__PURE__*/_react.default.createElement(_enhanceButton.default, {
3831 size: "small",
3832 disabled: isGenerateDisabled || '' === prompt,
3833 isLoading: isEnhancing,
3834 onClick: function onClick() {
3835 return enhance().then(function (_ref3) {
3836 var result = _ref3.result;
3837 return setPrompt(result);
3838 });
3839 }
3840 }), /*#__PURE__*/_react.default.createElement(GenerateButton, {
3841 disabled: isGenerateDisabled
3842 }));
3843 });
3844 PromptForm.propTypes = {
3845 isActive: _propTypes.default.bool,
3846 onAttach: _propTypes.default.func,
3847 onDetach: _propTypes.default.func,
3848 isLoading: _propTypes.default.bool,
3849 showActions: _propTypes.default.bool,
3850 onSubmit: _propTypes.default.func.isRequired,
3851 onBack: _propTypes.default.func.isRequired,
3852 onEdit: _propTypes.default.func.isRequired,
3853 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType),
3854 shouldResetPrompt: _propTypes.default.bool
3855 };
3856 var _default = exports["default"] = PromptForm;
3857
3858 /***/ }),
3859
3860 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js":
3861 /*!*******************************************************************************************!*\
3862 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js ***!
3863 \*******************************************************************************************/
3864 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3865
3866 "use strict";
3867
3868
3869 Object.defineProperty(exports, "__esModule", ({
3870 value: true
3871 }));
3872 exports["default"] = void 0;
3873 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3874 var ScreenshotContainer = (0, _ui.styled)(_ui.Box, {
3875 shouldForwardProp: function shouldForwardProp(prop) {
3876 return prop !== 'outlineOffset';
3877 }
3878 })(function (_ref) {
3879 var theme = _ref.theme,
3880 selected = _ref.selected,
3881 height = _ref.height,
3882 disabled = _ref.disabled,
3883 _ref$outlineOffset = _ref.outlineOffset,
3884 outlineOffset = _ref$outlineOffset === void 0 ? '0px' : _ref$outlineOffset;
3885 var outlineColor = selected ? theme.palette.text.primary : theme.palette.text.disabled;
3886 var outline = "2px solid ".concat(outlineColor);
3887 return {
3888 height: height,
3889 cursor: disabled ? 'default' : 'pointer',
3890 overflow: 'hidden',
3891 boxSizing: 'border-box',
3892 backgroundPosition: 'top center',
3893 backgroundSize: '100% auto',
3894 backgroundRepeat: 'no-repeat',
3895 backgroundColor: theme.palette.common.white,
3896 borderRadius: theme.shape.borderRadius * 0.5,
3897 outlineOffset: outlineOffset,
3898 outline: outline,
3899 opacity: disabled ? '0.4' : '1',
3900 transition: "all 50ms linear",
3901 '&:hover': disabled ? {} : {
3902 outlineColor: theme.palette.text.primary
3903 }
3904 };
3905 });
3906 var _default = exports["default"] = ScreenshotContainer;
3907
3908 /***/ }),
3909
3910 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js":
3911 /*!*********************************************************************************************!*\
3912 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js ***!
3913 \*********************************************************************************************/
3914 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3915
3916 "use strict";
3917
3918
3919 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3920 Object.defineProperty(exports, "__esModule", ({
3921 value: true
3922 }));
3923 exports["default"] = ScreenshotUnavailable;
3924 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3925 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
3926 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3927 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3928 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3929 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3930 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; }
3931 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; }
3932 function ScreenshotUnavailable(props) {
3933 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, (0, _extends2.default)({}, props, {
3934 sx: _objectSpread(_objectSpread({}, props.sx || {}), {}, {
3935 display: 'flex',
3936 alignItems: 'center',
3937 justifyContent: 'center',
3938 backgroundColor: 'background.paper',
3939 color: 'text.tertiary',
3940 fontStyle: 'italic',
3941 fontSize: '12px',
3942 paddingInline: 12,
3943 textAlign: 'center',
3944 lineHeight: 1.5
3945 })
3946 }), (0, _i18n.__)('Preview unavailable', 'elementor'));
3947 }
3948 ScreenshotUnavailable.propTypes = {
3949 sx: _propTypes.default.object
3950 };
3951
3952 /***/ }),
3953
3954 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js":
3955 /*!*********************************************************************************!*\
3956 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js ***!
3957 \*********************************************************************************/
3958 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3959
3960 "use strict";
3961
3962
3963 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3964 Object.defineProperty(exports, "__esModule", ({
3965 value: true
3966 }));
3967 exports["default"] = void 0;
3968 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3969 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3970 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
3971 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3972 var _screenshotContainer = _interopRequireDefault(__webpack_require__(/*! ./screenshot-container */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-container.js"));
3973 var _screenshotUnavailable = _interopRequireDefault(__webpack_require__(/*! ./screenshot-unavailable */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot-unavailable.js"));
3974 var _templateBadge = _interopRequireDefault(__webpack_require__(/*! ./template-badge */ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js"));
3975 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; }
3976 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; }
3977 var SCREENSHOT_HEIGHT = '138px';
3978 var Screenshot = function Screenshot(_ref) {
3979 var url = _ref.url,
3980 type = _ref.type,
3981 _ref$isLoading = _ref.isLoading,
3982 isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
3983 _ref$isSelected = _ref.isSelected,
3984 isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
3985 isPlaceholder = _ref.isPlaceholder,
3986 disabled = _ref.disabled,
3987 onClick = _ref.onClick,
3988 _ref$sx = _ref.sx,
3989 sx = _ref$sx === void 0 ? {} : _ref$sx,
3990 outlineOffset = _ref.outlineOffset;
3991 if (isPlaceholder) {
3992 return /*#__PURE__*/_react.default.createElement(_ui.Box, {
3993 sx: _objectSpread({
3994 height: SCREENSHOT_HEIGHT
3995 }, sx)
3996 });
3997 }
3998 if (isLoading) {
3999 return /*#__PURE__*/_react.default.createElement(_ui.Skeleton, {
4000 width: "100%",
4001 animation: "wave",
4002 variant: "rounded",
4003 height: SCREENSHOT_HEIGHT,
4004 sx: sx
4005 });
4006 }
4007 if (!url) {
4008 return /*#__PURE__*/_react.default.createElement(_screenshotUnavailable.default, {
4009 selected: isSelected,
4010 disabled: disabled,
4011 sx: sx,
4012 onClick: onClick,
4013 height: SCREENSHOT_HEIGHT,
4014 outlineOffset: outlineOffset
4015 });
4016 }
4017 return /*#__PURE__*/_react.default.createElement(_screenshotContainer.default, {
4018 selected: isSelected,
4019 disabled: disabled,
4020 sx: _objectSpread({
4021 backgroundImage: "url('".concat(url, "')")
4022 }, sx),
4023 onClick: onClick,
4024 height: SCREENSHOT_HEIGHT,
4025 outlineOffset: outlineOffset
4026 }, /*#__PURE__*/_react.default.createElement(_templateBadge.default, {
4027 type: type
4028 }));
4029 };
4030 Screenshot.propTypes = {
4031 isSelected: _propTypes.default.bool,
4032 isLoading: _propTypes.default.bool,
4033 isPlaceholder: _propTypes.default.bool,
4034 disabled: _propTypes.default.bool,
4035 onClick: _propTypes.default.func.isRequired,
4036 url: _propTypes.default.string,
4037 type: _propTypes.default.string,
4038 sx: _propTypes.default.object,
4039 outlineOffset: _propTypes.default.string
4040 };
4041 var _default = exports["default"] = Screenshot;
4042
4043 /***/ }),
4044
4045 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js":
4046 /*!*************************************************************************************!*\
4047 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/template-badge.js ***!
4048 \*************************************************************************************/
4049 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4050
4051 "use strict";
4052
4053
4054 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4055 Object.defineProperty(exports, "__esModule", ({
4056 value: true
4057 }));
4058 exports["default"] = void 0;
4059 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4060 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4061 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4062 var _proTemplateIndicator = __webpack_require__(/*! ./pro-template-indicator */ "../modules/ai/assets/js/editor/pages/form-layout/components/pro-template-indicator.js");
4063 var TemplateBadge = function TemplateBadge(props) {
4064 var _useConfig = (0, _config.useConfig)(),
4065 hasPro = _useConfig.hasPro;
4066 if ('Pro' === props.type && !hasPro) {
4067 return /*#__PURE__*/_react.default.createElement(_proTemplateIndicator.ProTemplateIndicator, null);
4068 }
4069 return null;
4070 };
4071 var _default = exports["default"] = TemplateBadge;
4072 TemplateBadge.propTypes = {
4073 type: _propTypes.default.string
4074 };
4075
4076 /***/ }),
4077
4078 /***/ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js":
4079 /*!********************************************************************************************!*\
4080 !*** ../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js ***!
4081 \********************************************************************************************/
4082 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4083
4084 "use strict";
4085
4086
4087 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4088 Object.defineProperty(exports, "__esModule", ({
4089 value: true
4090 }));
4091 exports["default"] = void 0;
4092 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4093 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4094 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4095 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4096 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4097 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4098 var _excluded = ["onClose", "onCancel", "title", "text"];
4099 var UnsavedChangesAlert = function UnsavedChangesAlert(_ref) {
4100 var onClose = _ref.onClose,
4101 onCancel = _ref.onCancel,
4102 title = _ref.title,
4103 text = _ref.text,
4104 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
4105 return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({
4106 "aria-labelledby": "unsaved-changes-alert-title",
4107 "aria-describedby": "unsaved-changes-alert-description"
4108 }, props), /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, {
4109 id: "unsaved-changes-alert-title"
4110 }, title), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ui.DialogContentText, {
4111 id: "unsaved-changes-alert-description"
4112 }, text)), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
4113 onClick: onCancel,
4114 color: "secondary"
4115 }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Button, {
4116 onClick: onClose,
4117 color: "error",
4118 variant: "contained"
4119 }, (0, _i18n.__)('Yes, leave', 'elementor'))));
4120 };
4121 UnsavedChangesAlert.propTypes = {
4122 title: _propTypes.default.string,
4123 text: _propTypes.default.string,
4124 onCancel: _propTypes.default.func,
4125 onClose: _propTypes.default.func
4126 };
4127 var _default = exports["default"] = UnsavedChangesAlert;
4128
4129 /***/ }),
4130
4131 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js":
4132 /*!**************************************************************************!*\
4133 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/config.js ***!
4134 \**************************************************************************/
4135 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4136
4137 "use strict";
4138
4139
4140 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4141 Object.defineProperty(exports, "__esModule", ({
4142 value: true
4143 }));
4144 exports.useConfig = exports["default"] = exports.MODE_VARIATION = exports.MODE_LAYOUT = exports.LAYOUT_APP_MODES = exports.ConfigProvider = void 0;
4145 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4146 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4147 var MODE_LAYOUT = exports.MODE_LAYOUT = 'layout';
4148 var MODE_VARIATION = exports.MODE_VARIATION = 'variation';
4149 var LAYOUT_APP_MODES = exports.LAYOUT_APP_MODES = [MODE_LAYOUT, MODE_VARIATION];
4150 var ConfigContext = _react.default.createContext({});
4151 var useConfig = exports.useConfig = function useConfig() {
4152 return _react.default.useContext(ConfigContext);
4153 };
4154 var ConfigProvider = exports.ConfigProvider = function ConfigProvider(props) {
4155 return /*#__PURE__*/_react.default.createElement(ConfigContext.Provider, {
4156 value: {
4157 mode: props.mode,
4158 attachmentsTypes: props.attachmentsTypes,
4159 onClose: props.onClose,
4160 onConnect: props.onConnect,
4161 onData: props.onData,
4162 onInsert: props.onInsert,
4163 onSelect: props.onSelect,
4164 onGenerate: props.onGenerate,
4165 currentContext: props.currentContext,
4166 hasPro: props.hasPro
4167 }
4168 }, props.children);
4169 };
4170 ConfigProvider.propTypes = {
4171 mode: _propTypes.default.oneOf(LAYOUT_APP_MODES).isRequired,
4172 children: _propTypes.default.node.isRequired,
4173 attachmentsTypes: _propTypes.default.object.isRequired,
4174 onClose: _propTypes.default.func.isRequired,
4175 onConnect: _propTypes.default.func.isRequired,
4176 onData: _propTypes.default.func.isRequired,
4177 onInsert: _propTypes.default.func.isRequired,
4178 onSelect: _propTypes.default.func.isRequired,
4179 onGenerate: _propTypes.default.func.isRequired,
4180 currentContext: _propTypes.default.object,
4181 hasPro: _propTypes.default.bool
4182 };
4183 var _default = exports["default"] = ConfigContext;
4184
4185 /***/ }),
4186
4187 /***/ "../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js":
4188 /*!*********************************************************************************!*\
4189 !*** ../modules/ai/assets/js/editor/pages/form-layout/context/remote-config.js ***!
4190 \*********************************************************************************/
4191 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4192
4193 "use strict";
4194
4195
4196 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4197 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4198 Object.defineProperty(exports, "__esModule", ({
4199 value: true
4200 }));
4201 exports.useRemoteConfig = exports.RemoteConfigProvider = exports.CONFIG_KEYS = void 0;
4202 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4203 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4204 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4205 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4206 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4207 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4208 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); }
4209 var RemoteConfigContext = _react.default.createContext({});
4210 var useRemoteConfig = exports.useRemoteConfig = function useRemoteConfig() {
4211 return _react.default.useContext(RemoteConfigContext);
4212 };
4213 var CONFIG_KEYS = exports.CONFIG_KEYS = {
4214 WEB_BASED_BUILDER_URL: 'webBasedBuilderUrl',
4215 AUTH_TOKEN: 'jwt'
4216 };
4217 var RemoteConfigProvider = exports.RemoteConfigProvider = function RemoteConfigProvider(props) {
4218 var _useState = (0, _react.useState)(false),
4219 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4220 isLoading = _useState2[0],
4221 setIsLoading = _useState2[1];
4222 var _useState3 = (0, _react.useState)(false),
4223 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4224 isLoaded = _useState4[0],
4225 setIsLoaded = _useState4[1];
4226 var _useState5 = (0, _react.useState)(false),
4227 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4228 isError = _useState6[0],
4229 setIsError = _useState6[1];
4230 var _useState7 = (0, _react.useState)({}),
4231 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4232 remoteConfig = _useState8[0],
4233 setRemoteConfig = _useState8[1];
4234 var fetchData = /*#__PURE__*/function () {
4235 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
4236 var result, _t;
4237 return _regenerator.default.wrap(function (_context) {
4238 while (1) switch (_context.prev = _context.next) {
4239 case 0:
4240 setIsLoading(true);
4241 setIsError(false);
4242 _context.prev = 1;
4243 _context.next = 2;
4244 return (0, _api.getRemoteConfig)().finally(function () {
4245 setIsLoaded(true);
4246 setIsLoading(false);
4247 });
4248 case 2:
4249 result = _context.sent;
4250 if (result.config) {
4251 _context.next = 3;
4252 break;
4253 }
4254 throw new Error('Invalid remote config');
4255 case 3:
4256 setRemoteConfig(result.config);
4257 _context.next = 5;
4258 break;
4259 case 4:
4260 _context.prev = 4;
4261 _t = _context["catch"](1);
4262 setIsError(true);
4263 setIsLoaded(true);
4264 setIsLoading(false);
4265 case 5:
4266 case "end":
4267 return _context.stop();
4268 }
4269 }, _callee, null, [[1, 4]]);
4270 }));
4271 return function fetchData() {
4272 return _ref.apply(this, arguments);
4273 };
4274 }();
4275 (0, _react.useEffect)(function () {
4276 window.addEventListener('elementor/connect/success', fetchData);
4277 return function () {
4278 window.removeEventListener('elementor/connect/success', fetchData);
4279 };
4280 }, []);
4281 if (!isLoaded && !isLoading) {
4282 fetchData();
4283 }
4284 return /*#__PURE__*/_react.default.createElement(RemoteConfigContext.Provider, {
4285 value: {
4286 isLoading: isLoading,
4287 isLoaded: isLoaded,
4288 isError: isError,
4289 remoteConfig: remoteConfig
4290 }
4291 }, props.children);
4292 };
4293 RemoteConfigProvider.propTypes = {
4294 children: _propTypes.default.node.isRequired,
4295 onError: _propTypes.default.func.isRequired
4296 };
4297
4298 /***/ }),
4299
4300 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js":
4301 /*!***********************************************************************************!*\
4302 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js ***!
4303 \***********************************************************************************/
4304 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4305
4306 "use strict";
4307
4308
4309 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4310 Object.defineProperty(exports, "__esModule", ({
4311 value: true
4312 }));
4313 exports["default"] = void 0;
4314 var _api = __webpack_require__(/*! ../../../api */ "../modules/ai/assets/js/editor/api/index.js");
4315 var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ../../../hooks/use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js"));
4316 var useLayoutPrompt = function useLayoutPrompt(type, initialValue) {
4317 return (0, _usePrompt.default)(function (requestBody, signal) {
4318 requestBody.variationType = type;
4319 return (0, _api.generateLayout)(requestBody, signal);
4320 }, initialValue);
4321 };
4322 var _default = exports["default"] = useLayoutPrompt;
4323
4324 /***/ }),
4325
4326 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js":
4327 /*!********************************************************************************!*\
4328 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js ***!
4329 \********************************************************************************/
4330 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4331
4332 "use strict";
4333
4334
4335 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4336 Object.defineProperty(exports, "__esModule", ({
4337 value: true
4338 }));
4339 exports["default"] = void 0;
4340 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4341 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4342 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4343 var _react = __webpack_require__(/*! react */ "react");
4344 var _useLayoutPrompt = _interopRequireDefault(__webpack_require__(/*! ./use-layout-prompt */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-layout-prompt.js"));
4345 var ERROR_INITIAL_VALUE = '';
4346 var useScreenshot = function useScreenshot(type, onData) {
4347 var _useState = (0, _react.useState)(ERROR_INITIAL_VALUE),
4348 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4349 error = _useState2[0],
4350 setError = _useState2[1];
4351 var _useState3 = (0, _react.useState)(false),
4352 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4353 isLoading = _useState4[0],
4354 setIsLoading = _useState4[1];
4355 var layoutData = (0, _useLayoutPrompt.default)(type, null);
4356 var generate = function generate(requestBody, signal) {
4357 setIsLoading(true);
4358 setError(ERROR_INITIAL_VALUE);
4359 return layoutData.send(requestBody, signal).then(/*#__PURE__*/function () {
4360 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
4361 var createdScreenshot;
4362 return _regenerator.default.wrap(function (_context) {
4363 while (1) switch (_context.prev = _context.next) {
4364 case 0:
4365 _context.next = 1;
4366 return onData(data.result);
4367 case 1:
4368 createdScreenshot = _context.sent;
4369 createdScreenshot.sendUsageData = function () {
4370 return layoutData.sendUsageData(data);
4371 };
4372 createdScreenshot.baseTemplateId = data.baseTemplateId;
4373 createdScreenshot.type = data.type;
4374 return _context.abrupt("return", createdScreenshot);
4375 case 2:
4376 case "end":
4377 return _context.stop();
4378 }
4379 }, _callee);
4380 }));
4381 return function (_x) {
4382 return _ref.apply(this, arguments);
4383 };
4384 }()).catch(function (err) {
4385 setError(err.extra_data ? err : err.message || err);
4386 throw err;
4387 }).finally(function () {
4388 return setIsLoading(false);
4389 });
4390 };
4391 return {
4392 generate: generate,
4393 error: error,
4394 isLoading: isLoading
4395 };
4396 };
4397 var _default = exports["default"] = useScreenshot;
4398
4399 /***/ }),
4400
4401 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js":
4402 /*!*********************************************************************************!*\
4403 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js ***!
4404 \*********************************************************************************/
4405 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4406
4407 "use strict";
4408
4409
4410 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4411 Object.defineProperty(exports, "__esModule", ({
4412 value: true
4413 }));
4414 exports["default"] = void 0;
4415 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
4416 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4417 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
4418 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4419 var _react = __webpack_require__(/*! react */ "react");
4420 var _useScreenshot = _interopRequireDefault(__webpack_require__(/*! ./use-screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshot.js"));
4421 var _config = __webpack_require__(/*! ../context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4422 var _requestsIds = __webpack_require__(/*! ../../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
4423 var PENDING_VALUE = {
4424 isPending: true
4425 };
4426 var useScreenshots = function useScreenshots(_ref) {
4427 var onData = _ref.onData;
4428 var _useState = (0, _react.useState)([]),
4429 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4430 screenshots = _useState2[0],
4431 setScreenshots = _useState2[1];
4432
4433 /**
4434 * The ids for each request are:
4435 * - editorSessionId: a unique id for each editor opening
4436 * - sessionId: a unique id for each session. (open the AI builder)
4437 * - generateId: a unique id for each generate request. (prompt change)
4438 * - batchId: a unique id for each batch of generate requests. (generate, regenerate)
4439 * - requestId: a unique id for each generate request.
4440 */
4441
4442 var _useConfig = (0, _config.useConfig)(),
4443 currentContext = _useConfig.currentContext;
4444 var _useRequestIds = (0, _requestsIds.useRequestIds)(),
4445 editorSessionId = _useRequestIds.editorSessionId,
4446 sessionId = _useRequestIds.sessionId,
4447 setRequest = _useRequestIds.setRequest,
4448 setBatch = _useRequestIds.setBatch,
4449 setGenerate = _useRequestIds.setGenerate;
4450 var generateIdRef = (0, _react.useRef)('');
4451 var batchId = setBatch();
4452 var screenshotsData = [(0, _useScreenshot.default)(0, onData), (0, _useScreenshot.default)(1, onData), (0, _useScreenshot.default)(2, onData)];
4453 var screenshotsGroupCount = screenshotsData.length;
4454 var error = screenshotsData.every(function (s) {
4455 return s === null || s === void 0 ? void 0 : s.error;
4456 }) ? screenshotsData[0].error : '';
4457 var isLoading = screenshotsData.some(function (s) {
4458 return s === null || s === void 0 ? void 0 : s.isLoading;
4459 });
4460 var abortController = (0, _react.useRef)(null);
4461 var abort = function abort() {
4462 var _abortController$curr;
4463 return (_abortController$curr = abortController.current) === null || _abortController$curr === void 0 ? void 0 : _abortController$curr.abort();
4464 };
4465 var createScreenshots = /*#__PURE__*/function () {
4466 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(prompt, attachments) {
4467 var onGenerate, onError, promises, results, isAllFailed;
4468 return _regenerator.default.wrap(function (_context) {
4469 while (1) switch (_context.prev = _context.next) {
4470 case 0:
4471 abortController.current = new AbortController();
4472 onGenerate = function onGenerate(screenshot) {
4473 setScreenshots(function (prev) {
4474 var updatedData = (0, _toConsumableArray2.default)(prev);
4475 var pendingIndex = updatedData.indexOf(PENDING_VALUE);
4476 updatedData[pendingIndex] = screenshot;
4477 return updatedData;
4478 });
4479 return true;
4480 };
4481 onError = function onError() {
4482 setScreenshots(function (prev) {
4483 var updatedData = (0, _toConsumableArray2.default)(prev);
4484 var pendingIndex = updatedData.lastIndexOf(PENDING_VALUE);
4485 updatedData[pendingIndex] = {
4486 isError: true
4487 };
4488 return updatedData;
4489 });
4490 return false;
4491 };
4492 promises = screenshotsData.map(function (_ref3) {
4493 var generate = _ref3.generate;
4494 var prevGeneratedIds = screenshots.map(function (screenshot) {
4495 return screenshot.baseTemplateId || '';
4496 });
4497 var requestBody = {
4498 prompt: prompt,
4499 prevGeneratedIds: prevGeneratedIds,
4500 currentContext: currentContext,
4501 ids: {
4502 editorSessionId: editorSessionId.current,
4503 sessionId: sessionId.current,
4504 generateId: generateIdRef.current,
4505 batchId: batchId.current,
4506 requestId: setRequest().current
4507 },
4508 attachments: attachments.map(function (_ref4) {
4509 var type = _ref4.type,
4510 content = _ref4.content,
4511 label = _ref4.label,
4512 source = _ref4.source;
4513 // Send only the data that is needed for the generation.
4514 return {
4515 type: type,
4516 content: content,
4517 label: label,
4518 source: source
4519 };
4520 })
4521 };
4522 return generate(requestBody, abortController.current.signal).then(onGenerate).catch(onError);
4523 });
4524 _context.next = 1;
4525 return Promise.all(promises);
4526 case 1:
4527 results = _context.sent;
4528 isAllFailed = results.every(function (value) {
4529 return false === value;
4530 });
4531 if (isAllFailed) {
4532 setScreenshots(function (prev) {
4533 var updatedData = (0, _toConsumableArray2.default)(prev);
4534 updatedData.splice(screenshotsGroupCount * -1);
4535 return updatedData;
4536 });
4537 }
4538 case 2:
4539 case "end":
4540 return _context.stop();
4541 }
4542 }, _callee);
4543 }));
4544 return function createScreenshots(_x, _x2) {
4545 return _ref2.apply(this, arguments);
4546 };
4547 }();
4548 var generate = function generate(prompt, attachments) {
4549 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4550 generateIdRef.current = setGenerate().current;
4551 setScreenshots(placeholders);
4552 createScreenshots(prompt, attachments);
4553 };
4554 var regenerate = function regenerate(prompt, attachments) {
4555 var placeholders = Array(screenshotsGroupCount).fill(PENDING_VALUE);
4556 setScreenshots(function (prev) {
4557 return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(placeholders));
4558 });
4559 createScreenshots(prompt, attachments);
4560 };
4561 return {
4562 generate: generate,
4563 regenerate: regenerate,
4564 screenshots: screenshots,
4565 isLoading: isLoading,
4566 error: error,
4567 abort: abort
4568 };
4569 };
4570 var _default = exports["default"] = useScreenshots;
4571
4572 /***/ }),
4573
4574 /***/ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js":
4575 /*!****************************************************************************!*\
4576 !*** ../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js ***!
4577 \****************************************************************************/
4578 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4579
4580 "use strict";
4581
4582
4583 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4584 Object.defineProperty(exports, "__esModule", ({
4585 value: true
4586 }));
4587 exports["default"] = exports.SCREENSHOTS_PER_PAGE = exports.MAX_PAGES = void 0;
4588 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4589 var _react = __webpack_require__(/*! react */ "react");
4590 var SCREENSHOTS_PER_PAGE = exports.SCREENSHOTS_PER_PAGE = 3;
4591 var MAX_PAGES = exports.MAX_PAGES = 5;
4592 var useSlider = function useSlider() {
4593 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4594 _ref$slidesCount = _ref.slidesCount,
4595 slidesCount = _ref$slidesCount === void 0 ? 0 : _ref$slidesCount,
4596 _ref$slidesPerPage = _ref.slidesPerPage,
4597 slidesPerPage = _ref$slidesPerPage === void 0 ? SCREENSHOTS_PER_PAGE : _ref$slidesPerPage,
4598 _ref$gapPercentage = _ref.gapPercentage,
4599 gapPercentage = _ref$gapPercentage === void 0 ? 2 : _ref$gapPercentage;
4600 var _useState = (0, _react.useState)(1),
4601 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4602 currentPage = _useState2[0],
4603 setCurrentPage = _useState2[1];
4604 var gapsCount = slidesPerPage - 1;
4605 var slideWidthPercentage = (100 - gapPercentage * gapsCount) / slidesPerPage;
4606 var offsetXPercentage = (slideWidthPercentage + gapPercentage) * slidesPerPage * (currentPage - 1) * -1;
4607 var pagesCount = Math.ceil(slidesCount / slidesPerPage);
4608 (0, _react.useEffect)(function () {
4609 // In cases when the slidesCount value was reduced, we need to navigate to the last page.
4610 if (currentPage > 1 && currentPage > pagesCount) {
4611 setCurrentPage(pagesCount);
4612 }
4613 }, [pagesCount]);
4614 return {
4615 currentPage: currentPage,
4616 setCurrentPage: setCurrentPage,
4617 pagesCount: pagesCount,
4618 slidesPerPage: slidesPerPage,
4619 gapPercentage: gapPercentage,
4620 offsetXPercentage: offsetXPercentage,
4621 slideWidthPercentage: slideWidthPercentage
4622 };
4623 };
4624 var _default = exports["default"] = useSlider;
4625
4626 /***/ }),
4627
4628 /***/ "../modules/ai/assets/js/editor/pages/form-layout/index.js":
4629 /*!*****************************************************************!*\
4630 !*** ../modules/ai/assets/js/editor/pages/form-layout/index.js ***!
4631 \*****************************************************************/
4632 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4633
4634 "use strict";
4635
4636
4637 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4638 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4639 Object.defineProperty(exports, "__esModule", ({
4640 value: true
4641 }));
4642 exports["default"] = void 0;
4643 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4644 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4645 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
4646 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4647 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
4648 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
4649 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
4650 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4651 var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js"));
4652 var _unsavedChangesAlert = _interopRequireDefault(__webpack_require__(/*! ./components/unsaved-changes-alert */ "../modules/ai/assets/js/editor/pages/form-layout/components/unsaved-changes-alert.js"));
4653 var _layoutDialog = _interopRequireDefault(__webpack_require__(/*! ./components/layout-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/layout-dialog.js"));
4654 var _promptForm = _interopRequireDefault(__webpack_require__(/*! ./components/prompt-form */ "../modules/ai/assets/js/editor/pages/form-layout/components/prompt-form.js"));
4655 var _refreshIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/refresh-icon */ "../modules/ai/assets/js/editor/icons/refresh-icon.js"));
4656 var _screenshot = _interopRequireDefault(__webpack_require__(/*! ./components/screenshot */ "../modules/ai/assets/js/editor/pages/form-layout/components/screenshot.js"));
4657 var _useScreenshots2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-screenshots */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-screenshots.js"));
4658 var _useSlider2 = _interopRequireWildcard(__webpack_require__(/*! ./hooks/use-slider */ "../modules/ai/assets/js/editor/pages/form-layout/hooks/use-slider.js"));
4659 var _minimizeDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/minimize-diagonal-icon */ "../modules/ai/assets/js/editor/icons/minimize-diagonal-icon.js"));
4660 var _expandDiagonalIcon = _interopRequireDefault(__webpack_require__(/*! ../../icons/expand-diagonal-icon */ "../modules/ai/assets/js/editor/icons/expand-diagonal-icon.js"));
4661 var _config = __webpack_require__(/*! ./context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
4662 var _attachment = __webpack_require__(/*! ../../types/attachment */ "../modules/ai/assets/js/editor/types/attachment.js");
4663 var _promptPowerNotice = __webpack_require__(/*! ./components/attachments/prompt-power-notice */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/prompt-power-notice.js");
4664 var _attachments = __webpack_require__(/*! ./components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
4665 var _attachDialog = _interopRequireDefault(__webpack_require__(/*! ./components/attachments/attach-dialog */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments/attach-dialog.js"));
4666 var _isURL = _interopRequireDefault(__webpack_require__(/*! validator/lib/isURL */ "../node_modules/validator/lib/isURL.js"));
4667 var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js");
4668 var _excluded = ["children"];
4669 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); }
4670 var DirectionalMinimizeDiagonalIcon = (0, _ui.withDirection)(_minimizeDiagonalIcon.default);
4671 var DirectionalExpandDiagonalIcon = (0, _ui.withDirection)(_expandDiagonalIcon.default);
4672
4673 /**
4674 * @typedef {Object} Attachment
4675 * @property {('json')} type - The type of the attachment, currently only `json` is supported.
4676 * @property {string} previewHTML - HTML content as a string, representing a preview.
4677 * @property {string} content - Actual content of the attachment as a string.
4678 * @property {string} label - Label for the attachment.
4679 */
4680
4681 var RegenerateButton = function RegenerateButton(props) {
4682 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4683 size: "small",
4684 color: "secondary",
4685 startIcon: /*#__PURE__*/_react.default.createElement(_refreshIcon.default, null)
4686 }, props), (0, _i18n.__)('Regenerate', 'elementor'));
4687 };
4688 var UseLayoutButton = function UseLayoutButton(props) {
4689 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
4690 size: "small",
4691 variant: "contained"
4692 }, props), (0, _i18n.__)('Use Layout', 'elementor'));
4693 };
4694 UseLayoutButton.propTypes = {
4695 sx: _propTypes.default.object
4696 };
4697 var isRegenerateButtonDisabled = function isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive) {
4698 if (isLoading || isPromptFormActive) {
4699 return true;
4700 }
4701 return screenshots.length >= _useSlider2.SCREENSHOTS_PER_PAGE * _useSlider2.MAX_PAGES;
4702 };
4703 var FormLayout = function FormLayout(_ref) {
4704 var _screenshots$selected, _screenshots$2;
4705 var _ref$DialogHeaderProp = _ref.DialogHeaderProps,
4706 DialogHeaderProps = _ref$DialogHeaderProp === void 0 ? {} : _ref$DialogHeaderProp,
4707 _ref$DialogContentPro = _ref.DialogContentProps,
4708 DialogContentProps = _ref$DialogContentPro === void 0 ? {} : _ref$DialogContentPro,
4709 initialAttachments = _ref.attachments;
4710 var _useConfig = (0, _config.useConfig)(),
4711 attachmentsTypes = _useConfig.attachmentsTypes,
4712 onData = _useConfig.onData,
4713 onInsert = _useConfig.onInsert,
4714 onSelect = _useConfig.onSelect,
4715 onClose = _useConfig.onClose,
4716 onGenerate = _useConfig.onGenerate;
4717 var _useScreenshots = (0, _useScreenshots2.default)({
4718 onData: onData
4719 }),
4720 screenshots = _useScreenshots.screenshots,
4721 generate = _useScreenshots.generate,
4722 regenerate = _useScreenshots.regenerate,
4723 isLoading = _useScreenshots.isLoading,
4724 error = _useScreenshots.error,
4725 abort = _useScreenshots.abort;
4726 var screenshotOutlineOffset = '2px';
4727 var _useSlider = (0, _useSlider2.default)({
4728 slidesCount: screenshots.length
4729 }),
4730 currentPage = _useSlider.currentPage,
4731 setCurrentPage = _useSlider.setCurrentPage,
4732 pagesCount = _useSlider.pagesCount,
4733 gapPercentage = _useSlider.gapPercentage,
4734 slidesPerPage = _useSlider.slidesPerPage,
4735 offsetXPercentage = _useSlider.offsetXPercentage,
4736 slideWidthPercentage = _useSlider.slideWidthPercentage;
4737 var _useState = (0, _react.useState)(-1),
4738 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4739 selectedScreenshotIndex = _useState2[0],
4740 setSelectedScreenshotIndex = _useState2[1];
4741 var _useState3 = (0, _react.useState)(false),
4742 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
4743 showUnsavedChangesAlert = _useState4[0],
4744 setShowUnsavedChangesAlert = _useState4[1];
4745 var _useState5 = (0, _react.useState)(true),
4746 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
4747 isPromptEditable = _useState6[0],
4748 setIsPromptEditable = _useState6[1];
4749 var _useState7 = (0, _react.useState)([]),
4750 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
4751 attachments = _useState8[0],
4752 setAttachments = _useState8[1];
4753 var _useState9 = (0, _react.useState)(false),
4754 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
4755 shouldRenderWebApp = _useState0[0],
4756 setShouldRenderWebApp = _useState0[1];
4757 var _useState1 = (0, _react.useState)(false),
4758 _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
4759 isMinimized = _useState10[0],
4760 setIsMinimized = _useState10[1];
4761 var lastRun = (0, _react.useRef)(function () {});
4762 var promptInputRef = (0, _react.useRef)(null);
4763 var selectedTemplate = (_screenshots$selected = screenshots[selectedScreenshotIndex]) === null || _screenshots$selected === void 0 ? void 0 : _screenshots$selected.template;
4764 var dialogContentChildren = DialogContentProps.children,
4765 dialogContentProps = (0, _objectWithoutProperties2.default)(DialogContentProps, _excluded);
4766
4767 // When there are no screenshots the prompt field should be editable.
4768 var shouldFallbackToEditPrompt = !!(error && 0 === screenshots.length);
4769 var isPromptFormActive = isPromptEditable || shouldFallbackToEditPrompt;
4770 var abortAndClose = function abortAndClose() {
4771 abort();
4772 onClose();
4773 };
4774 var onCloseIntent = function onCloseIntent() {
4775 var hasUnsavedChanges = promptInputRef.current.value.trim() !== '' || screenshots.length > 0;
4776 if (hasUnsavedChanges) {
4777 return setShowUnsavedChangesAlert(true);
4778 }
4779 abortAndClose();
4780 };
4781 var handleGenerate = function handleGenerate(event, prompt) {
4782 event.preventDefault();
4783 if ('' === prompt.trim() && 0 === attachments.length) {
4784 return;
4785 }
4786 if ((0, _isURL.default)(prompt)) {
4787 setShouldRenderWebApp(true);
4788 return;
4789 }
4790 onGenerate();
4791 lastRun.current = function () {
4792 setSelectedScreenshotIndex(-1);
4793 generate(prompt, attachments);
4794 };
4795 lastRun.current();
4796 setIsPromptEditable(false);
4797 setCurrentPage(1);
4798 };
4799 var handleRegenerate = function handleRegenerate() {
4800 lastRun.current = function () {
4801 regenerate(promptInputRef.current.value, attachments);
4802 // Changing the current page to the next page number.
4803 setCurrentPage(pagesCount + 1);
4804 };
4805 lastRun.current();
4806 };
4807 var applyTemplate = function applyTemplate() {
4808 onInsert(selectedTemplate);
4809 screenshots[selectedScreenshotIndex].sendUsageData();
4810 abortAndClose();
4811 };
4812 var handleScreenshotClick = function handleScreenshotClick(index, template) {
4813 return function () {
4814 if (isPromptFormActive) {
4815 return;
4816 }
4817 setSelectedScreenshotIndex(index);
4818 onSelect(template);
4819 };
4820 };
4821
4822 /**
4823 * @param {Attachment[]} items
4824 */
4825 var onAttach = function onAttach(items) {
4826 items.forEach(function (item) {
4827 if (!attachmentsTypes[item.type]) {
4828 throw new Error("Invalid attachment type: ".concat(item.type));
4829 }
4830 var typeConfig = attachmentsTypes[item.type];
4831 if (!item.previewHTML && typeConfig.previewGenerator) {
4832 typeConfig.previewGenerator(item.content).then(function (html) {
4833 item.previewHTML = html;
4834 setAttachments(function (prev) {
4835 // Replace the attachment with the updated one.
4836 return prev.map(function (attachment) {
4837 if (attachment.content === item.content) {
4838 return item;
4839 }
4840 return attachment;
4841 });
4842 });
4843 });
4844 }
4845 });
4846 setAttachments(items);
4847 setShouldRenderWebApp(false);
4848 setIsPromptEditable(true);
4849 };
4850 (0, _react.useEffect)(function () {
4851 var _screenshots$;
4852 var isFirstTemplateExist = (_screenshots$ = screenshots[0]) === null || _screenshots$ === void 0 ? void 0 : _screenshots$.template;
4853 if (isFirstTemplateExist) {
4854 onSelect(screenshots[0].template);
4855 setSelectedScreenshotIndex(0);
4856 }
4857 }, [(_screenshots$2 = screenshots[0]) === null || _screenshots$2 === void 0 ? void 0 : _screenshots$2.template]);
4858 (0, _react.useEffect)(function () {
4859 if (initialAttachments !== null && initialAttachments !== void 0 && initialAttachments.length) {
4860 onAttach(initialAttachments);
4861 }
4862 }, []);
4863 return /*#__PURE__*/_react.default.createElement(_layoutDialog.default, {
4864 onClose: onCloseIntent
4865 }, /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Header, (0, _extends2.default)({
4866 onClose: onCloseIntent
4867 }, DialogHeaderProps), DialogHeaderProps.children, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
4868 title: isMinimized ? (0, _i18n.__)('Expand', 'elementor') : (0, _i18n.__)('Minimize', 'elementor')
4869 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
4870 size: "small",
4871 "aria-label": "minimize",
4872 onClick: function onClick() {
4873 return setIsMinimized(function (prev) {
4874 return !prev;
4875 });
4876 }
4877 }, isMinimized ? /*#__PURE__*/_react.default.createElement(DirectionalExpandDiagonalIcon, null) : /*#__PURE__*/_react.default.createElement(DirectionalMinimizeDiagonalIcon, null)))), /*#__PURE__*/_react.default.createElement(_layoutDialog.default.Content, (0, _extends2.default)({
4878 dividers: true
4879 }, dialogContentProps), /*#__PURE__*/_react.default.createElement(_ui.Collapse, {
4880 in: !isMinimized
4881 }, dialogContentChildren && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4882 sx: {
4883 pt: 2,
4884 px: 2,
4885 pb: 0
4886 }
4887 }, dialogContentChildren), attachments.length > 0 && /*#__PURE__*/_react.default.createElement(_promptPowerNotice.PromptPowerNotice, null), error && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4888 sx: {
4889 pt: 2,
4890 px: 2,
4891 pb: 0
4892 }
4893 }, /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, {
4894 error: error,
4895 onRetry: lastRun.current
4896 })), showUnsavedChangesAlert && /*#__PURE__*/_react.default.createElement(_unsavedChangesAlert.default, {
4897 open: showUnsavedChangesAlert,
4898 title: (0, _i18n.__)('Leave Elementor AI?', 'elementor'),
4899 text: (0, _i18n.__)("Your progress will be deleted, and can't be recovered.", 'elementor'),
4900 onClose: abortAndClose,
4901 onCancel: function onCancel() {
4902 return setShowUnsavedChangesAlert(false);
4903 }
4904 }), shouldRenderWebApp && /*#__PURE__*/_react.default.createElement(_attachDialog.default, {
4905 type: _attachments.ATTACHMENT_TYPE_URL,
4906 url: promptInputRef.current.value,
4907 onAttach: onAttach,
4908 onClose: function onClose() {
4909 setShouldRenderWebApp(false);
4910 }
4911 }), /*#__PURE__*/_react.default.createElement(_promptForm.default, {
4912 shouldResetPrompt: shouldRenderWebApp,
4913 ref: promptInputRef,
4914 isActive: isPromptFormActive,
4915 isLoading: isLoading,
4916 showActions: screenshots.length > 0 || isLoading,
4917 attachmentsTypes: attachmentsTypes,
4918 attachments: attachments,
4919 onAttach: onAttach,
4920 onDetach: function onDetach(index) {
4921 setAttachments(function (prev) {
4922 var newAttachments = (0, _toConsumableArray2.default)(prev);
4923 newAttachments.splice(index, 1);
4924 return newAttachments;
4925 });
4926 setIsPromptEditable(true);
4927 },
4928 onSubmit: handleGenerate,
4929 onBack: function onBack() {
4930 return setIsPromptEditable(false);
4931 },
4932 onEdit: function onEdit() {
4933 return setIsPromptEditable(true);
4934 }
4935 }), (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, {
4936 sx: {
4937 p: 1.5
4938 }
4939 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4940 sx: {
4941 overflow: 'hidden',
4942 p: 0.5
4943 }
4944 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
4945 sx: {
4946 display: 'flex',
4947 transition: 'all 0.4s ease',
4948 gap: "".concat(gapPercentage, "%"),
4949 transform: "translateX(".concat(offsetXPercentage, "%)")
4950 }
4951 }, screenshots.map(function (_ref2, index) {
4952 var screenshot = _ref2.screenshot,
4953 type = _ref2.type,
4954 template = _ref2.template,
4955 isError = _ref2.isError,
4956 isPending = _ref2.isPending;
4957 return /*#__PURE__*/_react.default.createElement(_screenshot.default, {
4958 key: index,
4959 url: screenshot,
4960 type: type,
4961 disabled: isPromptFormActive,
4962 isPlaceholder: isError,
4963 isLoading: isPending,
4964 isSelected: selectedScreenshotIndex === index,
4965 onClick: handleScreenshotClick(index, template),
4966 outlineOffset: screenshotOutlineOffset,
4967 sx: {
4968 flex: "0 0 ".concat(slideWidthPercentage, "%")
4969 }
4970 });
4971 }))), /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, {
4972 introductionKey: "ai-context-layout-promotion"
4973 })), screenshots.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
4974 sx: {
4975 pt: 0,
4976 px: 2,
4977 pb: 2
4978 },
4979 display: "grid",
4980 gridTemplateColumns: "repeat(3, 1fr)",
4981 justifyItems: "center"
4982 }, /*#__PURE__*/_react.default.createElement(RegenerateButton, {
4983 onClick: handleRegenerate,
4984 disabled: isRegenerateButtonDisabled(screenshots, isLoading, isPromptFormActive),
4985 sx: {
4986 justifySelf: 'start'
4987 }
4988 }), screenshots.length > slidesPerPage && /*#__PURE__*/_react.default.createElement(_ui.Pagination, {
4989 page: currentPage,
4990 count: pagesCount,
4991 disabled: isPromptFormActive,
4992 onChange: function onChange(_, page) {
4993 return setCurrentPage(page);
4994 }
4995 }), /*#__PURE__*/_react.default.createElement(UseLayoutButton, {
4996 onClick: applyTemplate,
4997 disabled: isPromptFormActive || -1 === selectedScreenshotIndex,
4998 sx: {
4999 justifySelf: 'end',
5000 gridColumn: 3
5001 }
5002 }))))));
5003 };
5004 FormLayout.propTypes = {
5005 DialogHeaderProps: _propTypes.default.object,
5006 DialogContentProps: _propTypes.default.object,
5007 attachments: _propTypes.default.arrayOf(_attachment.AttachmentPropType)
5008 };
5009 var _default = exports["default"] = FormLayout;
5010
5011 /***/ }),
5012
5013 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js":
5014 /*!************************************************************************************!*\
5015 !*** ../modules/ai/assets/js/editor/pages/form-media/components/enhance-button.js ***!
5016 \************************************************************************************/
5017 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5018
5019 "use strict";
5020
5021
5022 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5023 Object.defineProperty(exports, "__esModule", ({
5024 value: true
5025 }));
5026 exports["default"] = void 0;
5027 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5028 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5029 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
5030 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5031 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5032 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5033 var _wandIcon = _interopRequireDefault(__webpack_require__(/*! ../../../icons/wand-icon */ "../modules/ai/assets/js/editor/icons/wand-icon.js"));
5034 var _excluded = ["isLoading"];
5035 var StyledWandIcon = (0, _ui.withDirection)(_wandIcon.default);
5036 var EnhanceButton = function EnhanceButton(_ref) {
5037 var isLoading = _ref.isLoading,
5038 props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
5039 return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
5040 title: (0, _i18n.__)('Enhance prompt', 'elementor')
5041 }, /*#__PURE__*/_react.default.createElement(_ui.Box, {
5042 component: "span",
5043 sx: {
5044 cursor: props.disabled ? 'default' : 'pointer'
5045 }
5046 }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, (0, _extends2.default)({
5047 size: "small",
5048 color: "secondary"
5049 }, props), isLoading ? /*#__PURE__*/_react.default.createElement(_ui.CircularProgress, {
5050 color: "secondary",
5051 size: 20
5052 }) : /*#__PURE__*/_react.default.createElement(StyledWandIcon, {
5053 fontSize: "small"
5054 }))));
5055 };
5056 EnhanceButton.propTypes = {
5057 disabled: _propTypes.default.bool,
5058 isLoading: _propTypes.default.bool
5059 };
5060 var _default = exports["default"] = EnhanceButton;
5061
5062 /***/ }),
5063
5064 /***/ "../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js":
5065 /*!*************************************************************************************!*\
5066 !*** ../modules/ai/assets/js/editor/pages/form-media/components/generate-submit.js ***!
5067 \*************************************************************************************/
5068 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5069
5070 "use strict";
5071
5072
5073 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5074 Object.defineProperty(exports, "__esModule", ({
5075 value: true
5076 }));
5077 exports["default"] = void 0;
5078 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5079 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
5080 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5081 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5082 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5083 var GenerateSubmit = function GenerateSubmit(props) {
5084 return /*#__PURE__*/_react.default.createElement(_ui.Button, (0, _extends2.default)({
5085 fullWidth: true,
5086 size: "medium",
5087 type: "submit",
5088 variant: "contained"
5089 }, props), props.children || (0, _i18n.__)('Generate', 'elementor'));
5090 };
5091 GenerateSubmit.propTypes = {
5092 children: _propTypes.default.node
5093 };
5094 var _default = exports["default"] = GenerateSubmit;
5095
5096 /***/ }),
5097
5098 /***/ "../modules/ai/assets/js/editor/pages/get-started/index.js":
5099 /*!*****************************************************************!*\
5100 !*** ../modules/ai/assets/js/editor/pages/get-started/index.js ***!
5101 \*****************************************************************/
5102 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5103
5104 "use strict";
5105
5106
5107 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5108 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5109 Object.defineProperty(exports, "__esModule", ({
5110 value: true
5111 }));
5112 exports["default"] = void 0;
5113 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
5114 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5115 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5116 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
5117 var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
5118 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5119 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5120 var _api = __webpack_require__(/*! ../../api */ "../modules/ai/assets/js/editor/api/index.js");
5121 var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
5122 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); }
5123 var GetStarted = function GetStarted(_ref) {
5124 var onSuccess = _ref.onSuccess;
5125 var _useState = (0, _react.useState)(false),
5126 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5127 isTermsChecked = _useState2[0],
5128 setIsTermsChecked = _useState2[1];
5129 var onGetStartedClick = /*#__PURE__*/function () {
5130 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
5131 return _regenerator.default.wrap(function (_context) {
5132 while (1) switch (_context.prev = _context.next) {
5133 case 0:
5134 _context.next = 1;
5135 return (0, _api.setGetStarted)();
5136 case 1:
5137 onSuccess();
5138 case 2:
5139 case "end":
5140 return _context.stop();
5141 }
5142 }, _callee);
5143 }));
5144 return function onGetStartedClick() {
5145 return _ref2.apply(this, arguments);
5146 };
5147 }();
5148 return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5149 alignItems: "center",
5150 gap: 1.5
5151 }, /*#__PURE__*/_react.default.createElement(_icons.AIIcon, {
5152 sx: {
5153 color: 'text.primary',
5154 fontSize: '60px',
5155 mb: 1
5156 }
5157 }), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5158 variant: "h4",
5159 sx: {
5160 color: 'text.primary'
5161 }
5162 }, (0, _i18n.__)('Step into the future with Elementor AI', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5163 variant: "body2"
5164 }, (0, _i18n.__)('Create smarter with AI text and code generators built right into the editor.', 'elementor')), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
5165 direction: "row",
5166 gap: 1.5,
5167 alignItems: "flex-start"
5168 }, /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
5169 id: "e-ai-terms-approval",
5170 color: "secondary",
5171 checked: isTermsChecked,
5172 onClick: function onClick() {
5173 return setIsTermsChecked(function (prevState) {
5174 return !prevState;
5175 });
5176 }
5177 }), /*#__PURE__*/_react.default.createElement(_ui.Stack, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
5178 variant: "caption",
5179 sx: {
5180 maxWidth: 520
5181 },
5182 component: "label",
5183 htmlFor: "e-ai-terms-approval"
5184 }, (0, _i18n.__)('I approve the ', 'elementor'), /*#__PURE__*/_react.default.createElement(_ui.Link, {
5185 href: "https://go.elementor.com/ai-terms/",
5186 target: "_blank",
5187 color: "info.main"
5188 }, (0, _i18n.__)('Terms of Service', 'elementor')), ' & ', /*#__PURE__*/_react.default.createElement(_ui.Link, {
5189 href: "https://go.elementor.com/ai-privacy-policy/",
5190 target: "_blank",
5191 color: "info.main"
5192 }, (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, {
5193 disabled: !isTermsChecked,
5194 variant: "contained",
5195 onClick: onGetStartedClick,
5196 sx: {
5197 mt: 1,
5198 '&:hover': {
5199 color: 'primary.contrastText'
5200 }
5201 }
5202 }, (0, _i18n.__)('Get Started', 'elementor')));
5203 };
5204 GetStarted.propTypes = {
5205 onSuccess: _propTypes.default.func.isRequired
5206 };
5207 var _default = exports["default"] = GetStarted;
5208
5209 /***/ }),
5210
5211 /***/ "../modules/ai/assets/js/editor/types/attachment.js":
5212 /*!**********************************************************!*\
5213 !*** ../modules/ai/assets/js/editor/types/attachment.js ***!
5214 \**********************************************************/
5215 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5216
5217 "use strict";
5218
5219
5220 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5221 Object.defineProperty(exports, "__esModule", ({
5222 value: true
5223 }));
5224 exports.AttachmentsTypesPropType = exports.AttachmentPropType = void 0;
5225 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
5226 var AttachmentPropType = exports.AttachmentPropType = _propTypes.default.shape({
5227 type: _propTypes.default.string,
5228 previewHTML: _propTypes.default.string,
5229 content: _propTypes.default.string,
5230 label: _propTypes.default.string,
5231 source: _propTypes.default.string
5232 });
5233 var AttachmentsTypesPropType = exports.AttachmentsTypesPropType = _propTypes.default.shape({
5234 type: _propTypes.default.shape({
5235 promptPlaceholder: _propTypes.default.string,
5236 promptSuggestions: _propTypes.default.arrayOf(_propTypes.default.shape({
5237 text: _propTypes.default.string.isRequired
5238 })),
5239 previewGenerator: _propTypes.default.func
5240 })
5241 });
5242
5243 /***/ }),
5244
5245 /***/ "../modules/ai/assets/js/editor/utils/editor-integration.js":
5246 /*!******************************************************************!*\
5247 !*** ../modules/ai/assets/js/editor/utils/editor-integration.js ***!
5248 \******************************************************************/
5249 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5250
5251 "use strict";
5252
5253
5254 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5255 Object.defineProperty(exports, "__esModule", ({
5256 value: true
5257 }));
5258 exports.renderLayoutApp = exports.openPanel = exports.onConnect = exports.importToEditor = exports.getUiConfig = exports.closePanel = exports.WEB_BASED_PROMPTS = exports.VARIATIONS_PROMPTS = void 0;
5259 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5260 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5261 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5262 var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
5263 var _previewContainer = __webpack_require__(/*! ./preview-container */ "../modules/ai/assets/js/editor/utils/preview-container.js");
5264 var _layoutApp = _interopRequireDefault(__webpack_require__(/*! ../layout-app */ "../modules/ai/assets/js/editor/layout-app.js"));
5265 var _screenshot = __webpack_require__(/*! ./screenshot */ "../modules/ai/assets/js/editor/utils/screenshot.js");
5266 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5267 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
5268 var _layoutAppWrapper = _interopRequireDefault(__webpack_require__(/*! ../layout-app-wrapper */ "../modules/ai/assets/js/editor/layout-app-wrapper.js"));
5269 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5270 var closePanel = exports.closePanel = function closePanel() {
5271 $e.run('panel/close');
5272 $e.components.get('panel').blockUserInteractions();
5273 };
5274 var openPanel = exports.openPanel = function openPanel() {
5275 $e.run('panel/open');
5276 $e.components.get('panel').unblockUserInteractions();
5277 };
5278 var onConnect = exports.onConnect = function onConnect(data) {
5279 elementorCommon.config.library_connect.is_connected = true;
5280 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
5281 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
5282 };
5283 var getUiConfig = exports.getUiConfig = function getUiConfig() {
5284 var _elementor, _elementor$getPrefere;
5285 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';
5286 var isRTL = elementorCommon.config.isRTL;
5287 return {
5288 colorScheme: colorScheme,
5289 isRTL: isRTL
5290 };
5291 };
5292 var VARIATIONS_PROMPTS = exports.VARIATIONS_PROMPTS = [{
5293 text: (0, _i18n.__)('Minimalist design with bold typography about', 'elementor')
5294 }, {
5295 text: (0, _i18n.__)('Elegant style with serif fonts discussing', 'elementor')
5296 }, {
5297 text: (0, _i18n.__)('Retro vibe with muted colors and classic fonts about', 'elementor')
5298 }, {
5299 text: (0, _i18n.__)('Futuristic design with neon accents about', 'elementor')
5300 }, {
5301 text: (0, _i18n.__)('Professional look with clean lines for', 'elementor')
5302 }, {
5303 text: (0, _i18n.__)('Earthy tones and organic shapes featuring', 'elementor')
5304 }, {
5305 text: (0, _i18n.__)('Luxurious theme with rich colors discussing', 'elementor')
5306 }, {
5307 text: (0, _i18n.__)('Tech-inspired style with modern fonts about', 'elementor')
5308 }, {
5309 text: (0, _i18n.__)('Warm hues with comforting visuals about', 'elementor')
5310 }];
5311 var WEB_BASED_PROMPTS = exports.WEB_BASED_PROMPTS = [{
5312 text: (0, _i18n.__)('Change the content to be about [topic]', 'elementor')
5313 }, {
5314 text: (0, _i18n.__)('Generate lorem ipsum placeholder text for all paragraphs', 'elementor')
5315 }, {
5316 text: (0, _i18n.__)('Revise the content to focus on [topic] and then translate it into Spanish', 'elementor')
5317 }, {
5318 text: (0, _i18n.__)('Shift the focus of the content to [topic] in order to showcase our company\'s mission and values', 'elementor')
5319 }, {
5320 text: (0, _i18n.__)('Alter the content to provide helpful tips related to [topic]', 'elementor')
5321 }, {
5322 text: (0, _i18n.__)('Adjust the content to include FAQs and answers for common inquiries about [topic]', 'elementor')
5323 }];
5324 var PROMPT_PLACEHOLDER = (0, _i18n.__)("Press '/' for suggestions or describe the changes you want to apply (optional)...", 'elementor');
5325 var renderLayoutApp = exports.renderLayoutApp = function renderLayoutApp() {
5326 var _options$onRenderApp;
5327 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
5328 parentContainer: null,
5329 mode: '',
5330 at: null,
5331 onClose: null,
5332 onGenerate: null,
5333 onInsert: null,
5334 onRenderApp: null,
5335 onSelect: null,
5336 attachments: []
5337 };
5338 closePanel();
5339 var previewContainer = (0, _previewContainer.createPreviewContainer)(options.parentContainer, {
5340 // Create the container at the "drag widget here" area position.
5341 at: options.at
5342 });
5343 var _getUiConfig = getUiConfig(),
5344 colorScheme = _getUiConfig.colorScheme,
5345 isRTL = _getUiConfig.isRTL;
5346 var rootElement = document.createElement('div');
5347 document.body.append(rootElement);
5348 var bodyStyle = window.elementorFrontend.elements.$window[0].getComputedStyle(window.elementorFrontend.elements.$body[0]);
5349 var _ReactUtils$render = _react2.default.render(/*#__PURE__*/_react.default.createElement(_layoutAppWrapper.default, {
5350 isRTL: isRTL,
5351 colorScheme: colorScheme
5352 }, /*#__PURE__*/_react.default.createElement(_layoutApp.default, {
5353 mode: options.mode,
5354 currentContext: {
5355 body: {
5356 backgroundColor: bodyStyle.backgroundColor,
5357 backgroundImage: bodyStyle.backgroundImage
5358 }
5359 },
5360 attachmentsTypes: {
5361 json: {
5362 promptSuggestions: VARIATIONS_PROMPTS,
5363 promptPlaceholder: PROMPT_PLACEHOLDER,
5364 previewGenerator: function () {
5365 var _previewGenerator = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(json) {
5366 var screenshot;
5367 return _regenerator.default.wrap(function (_context) {
5368 while (1) switch (_context.prev = _context.next) {
5369 case 0:
5370 _context.next = 1;
5371 return (0, _screenshot.takeScreenshot)(json);
5372 case 1:
5373 screenshot = _context.sent;
5374 return _context.abrupt("return", "<img src=\"".concat(screenshot, "\" />"));
5375 case 2:
5376 case "end":
5377 return _context.stop();
5378 }
5379 }, _callee);
5380 }));
5381 function previewGenerator(_x) {
5382 return _previewGenerator.apply(this, arguments);
5383 }
5384 return previewGenerator;
5385 }()
5386 },
5387 url: {
5388 promptPlaceholder: PROMPT_PLACEHOLDER,
5389 promptSuggestions: WEB_BASED_PROMPTS
5390 }
5391 },
5392 attachments: options.attachments || [],
5393 onClose: function onClose() {
5394 var _options$onClose;
5395 previewContainer.destroy();
5396 (_options$onClose = options.onClose) === null || _options$onClose === void 0 || _options$onClose.call(options);
5397 unmount();
5398 rootElement.remove();
5399 openPanel();
5400 },
5401 onConnect: onConnect,
5402 onGenerate: function onGenerate() {
5403 var _options$onGenerate;
5404 (_options$onGenerate = options.onGenerate) === null || _options$onGenerate === void 0 || _options$onGenerate.call(options, {
5405 previewContainer: previewContainer
5406 });
5407 },
5408 onData: (/*#__PURE__*/function () {
5409 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(template) {
5410 var screenshot;
5411 return _regenerator.default.wrap(function (_context2) {
5412 while (1) switch (_context2.prev = _context2.next) {
5413 case 0:
5414 _context2.next = 1;
5415 return (0, _screenshot.takeScreenshot)(template);
5416 case 1:
5417 screenshot = _context2.sent;
5418 return _context2.abrupt("return", {
5419 screenshot: screenshot,
5420 template: template
5421 });
5422 case 2:
5423 case "end":
5424 return _context2.stop();
5425 }
5426 }, _callee2);
5427 }));
5428 return function (_x2) {
5429 return _ref.apply(this, arguments);
5430 };
5431 }()),
5432 onSelect: function onSelect(template) {
5433 var _options$onSelect;
5434 (_options$onSelect = options.onSelect) === null || _options$onSelect === void 0 || _options$onSelect.call(options);
5435 previewContainer.setContent(template);
5436 },
5437 onInsert: options.onInsert,
5438 hasPro: elementor.helpers.hasPro()
5439 })), rootElement),
5440 unmount = _ReactUtils$render.unmount;
5441 (_options$onRenderApp = options.onRenderApp) === null || _options$onRenderApp === void 0 || _options$onRenderApp.call(options, {
5442 previewContainer: previewContainer
5443 });
5444 };
5445 var importToEditor = exports.importToEditor = function importToEditor(_ref2) {
5446 var parentContainer = _ref2.parentContainer,
5447 at = _ref2.at,
5448 template = _ref2.template,
5449 historyTitle = _ref2.historyTitle,
5450 _ref2$replace = _ref2.replace,
5451 replace = _ref2$replace === void 0 ? false : _ref2$replace;
5452 var endHistoryLog = (0, _history.startHistoryLog)({
5453 type: 'import',
5454 title: historyTitle
5455 });
5456 if (replace) {
5457 $e.run('document/elements/delete', {
5458 container: parentContainer.children.at(at)
5459 });
5460 }
5461 $e.run('document/elements/create', {
5462 container: parentContainer,
5463 model: (0, _requestsIds.generateIds)(template),
5464 options: {
5465 at: at,
5466 edit: true
5467 }
5468 });
5469 endHistoryLog();
5470 };
5471
5472 /***/ }),
5473
5474 /***/ "../modules/ai/assets/js/editor/utils/history.js":
5475 /*!*******************************************************!*\
5476 !*** ../modules/ai/assets/js/editor/utils/history.js ***!
5477 \*******************************************************/
5478 /***/ ((__unused_webpack_module, exports) => {
5479
5480 "use strict";
5481
5482
5483 Object.defineProperty(exports, "__esModule", ({
5484 value: true
5485 }));
5486 exports.startHistoryLog = startHistoryLog;
5487 exports.toggleHistory = toggleHistory;
5488 function toggleHistory(isActive) {
5489 elementor.documents.getCurrent().history.setActive(isActive);
5490 }
5491
5492 /**
5493 * @param {Object} options
5494 * @param { 'add' | 'change' | 'disable' | 'duplicate' | 'enable' | 'import' | 'move' | 'paste' | 'paste_style' | 'remove' | 'reset_settings' | 'reset_style' | 'selected' } options.type
5495 * @param { string } options.title
5496 *
5497 * @return {*}
5498 */
5499 function startHistoryLog(_ref) {
5500 var type = _ref.type,
5501 title = _ref.title;
5502 var id = $e.internal('document/history/start-log', {
5503 type: type,
5504 title: title
5505 });
5506 return function () {
5507 return $e.internal('document/history/end-log', {
5508 id: id
5509 });
5510 };
5511 }
5512
5513 /***/ }),
5514
5515 /***/ "../modules/ai/assets/js/editor/utils/preview-container.js":
5516 /*!*****************************************************************!*\
5517 !*** ../modules/ai/assets/js/editor/utils/preview-container.js ***!
5518 \*****************************************************************/
5519 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5520
5521 "use strict";
5522
5523
5524 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5525 Object.defineProperty(exports, "__esModule", ({
5526 value: true
5527 }));
5528 exports.createPreviewContainer = createPreviewContainer;
5529 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5530 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5531 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5532 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; }
5533 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; }
5534 /**
5535 * @typedef {import('elementor/assets/dev/js/editor/container/container')} Container
5536 */
5537
5538 var PREFIX = 'e-ai-preview-container';
5539 var CLASS_HIDDEN = PREFIX + '--hidden';
5540 var CLASS_IDLE = PREFIX + '--idle';
5541
5542 /**
5543 * @param {Container} parentContainer
5544 * @param {{}} containerOptions
5545 * @return {{init, setContent, reset, destroy}}
5546 */
5547
5548 function createPreviewContainer(parentContainer) {
5549 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5550 var createdContainers = new Map();
5551 var idleContainer = createIdleContainer(parentContainer, containerOptions);
5552 function init() {
5553 showContainer(idleContainer);
5554 }
5555 function getAllContainers() {
5556 return [].concat((0, _toConsumableArray2.default)(createdContainers.values()), [idleContainer]);
5557 }
5558 function reset() {
5559 deleteContainers((0, _toConsumableArray2.default)(createdContainers.values()));
5560 createdContainers.clear();
5561 showContainer(idleContainer);
5562 }
5563 function setContent(template) {
5564 if (!template) {
5565 return;
5566 }
5567 hideContainers(getAllContainers());
5568 if (!createdContainers.has(template)) {
5569 var newContainer = createContainer(parentContainer, template, containerOptions);
5570 createdContainers.set(template, newContainer);
5571 }
5572 showContainer(createdContainers.get(template));
5573 }
5574 function destroy() {
5575 deleteContainers(getAllContainers());
5576 createdContainers.clear();
5577 }
5578 return {
5579 init: init,
5580 reset: reset,
5581 setContent: setContent,
5582 destroy: destroy
5583 };
5584 }
5585
5586 /**
5587 * @param {Container} parentContainer
5588 * @param {{}} model
5589 * @param {{}} options
5590 * @return {*}
5591 */
5592 function createContainer(parentContainer, model) {
5593 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5594 (0, _history.toggleHistory)(false);
5595 var container = $e.run('document/elements/create', {
5596 container: parentContainer,
5597 model: _objectSpread(_objectSpread({}, model), {}, {
5598 id: "".concat(PREFIX, "-").concat(elementorCommon.helpers.getUniqueId().toString())
5599 }),
5600 options: _objectSpread(_objectSpread({}, options), {}, {
5601 edit: false
5602 })
5603 });
5604 (0, _history.toggleHistory)(true);
5605 container.view.$el.addClass(CLASS_HIDDEN);
5606 return container;
5607 }
5608
5609 /**
5610 * @param {Container} parentContainer
5611 * @param {{}} containerOptions
5612 * @return {*}
5613 */
5614 function createIdleContainer(parentContainer) {
5615 var containerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5616 // Create an empty container that'll be used of UI purposes.
5617 var container = createContainer(parentContainer, {
5618 elType: 'container'
5619 }, containerOptions);
5620 container.view.$el.addClass(CLASS_IDLE);
5621 return container;
5622 }
5623 function hideContainers(containers) {
5624 containers.forEach(function (container) {
5625 container.view.$el.addClass(CLASS_HIDDEN);
5626 });
5627 }
5628 function showContainer(container) {
5629 container.view.$el.removeClass(CLASS_HIDDEN);
5630
5631 // Delay the scroll to avoid UI jumps when toggling between containers.
5632 setTimeout(function () {
5633 container.view.$el[0].scrollIntoView({
5634 behavior: 'smooth',
5635 block: 'start'
5636 });
5637 });
5638 }
5639 function deleteContainers(containers) {
5640 (0, _history.toggleHistory)(false);
5641 $e.run('document/elements/delete', {
5642 containers: containers
5643 });
5644 (0, _history.toggleHistory)(true);
5645 }
5646
5647 /***/ }),
5648
5649 /***/ "../modules/ai/assets/js/editor/utils/screenshot.js":
5650 /*!**********************************************************!*\
5651 !*** ../modules/ai/assets/js/editor/utils/screenshot.js ***!
5652 \**********************************************************/
5653 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5654
5655 "use strict";
5656
5657
5658 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5659 Object.defineProperty(exports, "__esModule", ({
5660 value: true
5661 }));
5662 exports.takeScreenshot = void 0;
5663 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
5664 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5665 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
5666 var _htmlToImage = __webpack_require__(/*! html-to-image */ "../node_modules/html-to-image/es/index.js");
5667 var _history = __webpack_require__(/*! ./history */ "../modules/ai/assets/js/editor/utils/history.js");
5668 var _requestsIds = __webpack_require__(/*! ../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js");
5669 var takeScreenshot = exports.takeScreenshot = /*#__PURE__*/function () {
5670 var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(template) {
5671 var hiddenWrapper, container, screenshot, _t;
5672 return _regenerator.default.wrap(function (_context) {
5673 while (1) switch (_context.prev = _context.next) {
5674 case 0:
5675 if (template) {
5676 _context.next = 1;
5677 break;
5678 }
5679 return _context.abrupt("return", '');
5680 case 1:
5681 // Disable history so the Editor won't show our hidden container as a user action.
5682 (0, _history.toggleHistory)(false);
5683 hiddenWrapper = createHiddenWrapper();
5684 container = createContainer(template);
5685 wrapContainer(container, hiddenWrapper);
5686 elementor.getPreviewView().$childViewContainer[0].appendChild(hiddenWrapper);
5687
5688 // Wait for the container to render.
5689 _context.next = 2;
5690 return waitForContainer(container.id);
5691 case 2:
5692 if (!template.elements.length) {
5693 _context.next = 3;
5694 break;
5695 }
5696 _context.next = 3;
5697 return Promise.all(template.elements.map(function (child) {
5698 return waitForContainer(child.id);
5699 }));
5700 case 3:
5701 _context.prev = 3;
5702 _context.next = 4;
5703 return screenshotNode(container.view.$el[0]);
5704 case 4:
5705 screenshot = _context.sent;
5706 _context.next = 6;
5707 break;
5708 case 5:
5709 _context.prev = 5;
5710 _t = _context["catch"](3);
5711 // Return an empty image url if the screenshot failed.
5712 screenshot = '';
5713 case 6:
5714 deleteContainer(container);
5715 hiddenWrapper.remove();
5716 (0, _history.toggleHistory)(true);
5717 return _context.abrupt("return", screenshot);
5718 case 7:
5719 case "end":
5720 return _context.stop();
5721 }
5722 }, _callee, null, [[3, 5]]);
5723 }));
5724 return function takeScreenshot(_x) {
5725 return _ref.apply(this, arguments);
5726 };
5727 }();
5728 function screenshotNode(node) {
5729 return toWebp(node, {
5730 quality: 0.01,
5731 // Transparent 1x1 pixel.
5732 imagePlaceholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
5733 });
5734 }
5735 function toWebp(_x2) {
5736 return _toWebp.apply(this, arguments);
5737 }
5738 function _toWebp() {
5739 _toWebp = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(node) {
5740 var _options$quality;
5741 var options,
5742 canvas,
5743 _args3 = arguments;
5744 return _regenerator.default.wrap(function (_context3) {
5745 while (1) switch (_context3.prev = _context3.next) {
5746 case 0:
5747 options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
5748 _context3.next = 1;
5749 return (0, _htmlToImage.toCanvas)(node, options);
5750 case 1:
5751 canvas = _context3.sent;
5752 return _context3.abrupt("return", canvas.toDataURL('image/webp', (_options$quality = options.quality) !== null && _options$quality !== void 0 ? _options$quality : 1));
5753 case 2:
5754 case "end":
5755 return _context3.stop();
5756 }
5757 }, _callee3);
5758 }));
5759 return _toWebp.apply(this, arguments);
5760 }
5761 function createHiddenWrapper() {
5762 var wrapper = document.createElement('div');
5763 wrapper.style.position = 'fixed';
5764 wrapper.style.opacity = '0';
5765 wrapper.style.inset = '0';
5766 return wrapper;
5767 }
5768 function createContainer(template) {
5769 var model = (0, _requestsIds.generateIds)(template);
5770
5771 // Set a custom ID, so it can be used later on in the backend.
5772 model.id = "e-ai-screenshot-container-".concat(model.id);
5773 return $e.run('document/elements/create', {
5774 container: elementor.getPreviewContainer(),
5775 model: model,
5776 options: {
5777 edit: false
5778 }
5779 });
5780 }
5781 function deleteContainer(container) {
5782 return $e.run('document/elements/delete', {
5783 container: container
5784 });
5785 }
5786 function waitForContainer(id) {
5787 var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5788 var timeoutPromise = sleep(timeout);
5789 var waitPromise = new Promise(function (resolve) {
5790 elementorFrontend.hooks.addAction('frontend/element_ready/global', /*#__PURE__*/function () {
5791 var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2($element) {
5792 var images;
5793 return _regenerator.default.wrap(function (_context2) {
5794 while (1) switch (_context2.prev = _context2.next) {
5795 case 0:
5796 if (!($element.data('id') === id)) {
5797 _context2.next = 2;
5798 break;
5799 }
5800 images = (0, _toConsumableArray2.default)($element[0].querySelectorAll('img')); // Wait for all images to load.
5801 _context2.next = 1;
5802 return Promise.all(images.map(waitForImage));
5803 case 1:
5804 resolve();
5805 case 2:
5806 case "end":
5807 return _context2.stop();
5808 }
5809 }, _callee2);
5810 }));
5811 return function (_x3) {
5812 return _ref2.apply(this, arguments);
5813 };
5814 }());
5815 });
5816 return Promise.any([timeoutPromise, waitPromise]);
5817 }
5818 function waitForImage(image) {
5819 if (image.complete) {
5820 return Promise.resolve();
5821 }
5822 return new Promise(function (resolve) {
5823 image.addEventListener('load', resolve);
5824 image.addEventListener('error', function () {
5825 // Remove the image to make sure it won't break the screenshot.
5826 image.remove();
5827 resolve();
5828 });
5829 });
5830 }
5831 function sleep(ms) {
5832 return new Promise(function (resolve) {
5833 return setTimeout(resolve, ms);
5834 });
5835 }
5836 function wrapContainer(container, wrapper) {
5837 var el = container.view.$el[0];
5838 el.parentNode.insertBefore(wrapper, el);
5839 wrapper.appendChild(el);
5840 }
5841
5842 /***/ }),
5843
5844 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
5845 /*!***************************************************************!*\
5846 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
5847 \***************************************************************/
5848 /***/ ((module) => {
5849
5850 function _OverloadYield(e, d) {
5851 this.v = e, this.k = d;
5852 }
5853 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
5854
5855 /***/ }),
5856
5857 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
5858 /*!******************************************************************!*\
5859 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
5860 \******************************************************************/
5861 /***/ ((module) => {
5862
5863 function _arrayLikeToArray(r, a) {
5864 (null == a || a > r.length) && (a = r.length);
5865 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
5866 return n;
5867 }
5868 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
5869
5870 /***/ }),
5871
5872 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
5873 /*!****************************************************************!*\
5874 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
5875 \****************************************************************/
5876 /***/ ((module) => {
5877
5878 function _arrayWithHoles(r) {
5879 if (Array.isArray(r)) return r;
5880 }
5881 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5882
5883 /***/ }),
5884
5885 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
5886 /*!*******************************************************************!*\
5887 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
5888 \*******************************************************************/
5889 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5890
5891 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
5892 function _arrayWithoutHoles(r) {
5893 if (Array.isArray(r)) return arrayLikeToArray(r);
5894 }
5895 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
5896
5897 /***/ }),
5898
5899 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
5900 /*!***********************************************************************!*\
5901 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
5902 \***********************************************************************/
5903 /***/ ((module) => {
5904
5905 function _assertThisInitialized(e) {
5906 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5907 return e;
5908 }
5909 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
5910
5911 /***/ }),
5912
5913 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
5914 /*!******************************************************************!*\
5915 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
5916 \******************************************************************/
5917 /***/ ((module) => {
5918
5919 function asyncGeneratorStep(n, t, e, r, o, a, c) {
5920 try {
5921 var i = n[a](c),
5922 u = i.value;
5923 } catch (n) {
5924 return void e(n);
5925 }
5926 i.done ? t(u) : Promise.resolve(u).then(r, o);
5927 }
5928 function _asyncToGenerator(n) {
5929 return function () {
5930 var t = this,
5931 e = arguments;
5932 return new Promise(function (r, o) {
5933 var a = n.apply(t, e);
5934 function _next(n) {
5935 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
5936 }
5937 function _throw(n) {
5938 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
5939 }
5940 _next(void 0);
5941 });
5942 };
5943 }
5944 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
5945
5946 /***/ }),
5947
5948 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
5949 /*!****************************************************************!*\
5950 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
5951 \****************************************************************/
5952 /***/ ((module) => {
5953
5954 function _classCallCheck(a, n) {
5955 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
5956 }
5957 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
5958
5959 /***/ }),
5960
5961 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
5962 /*!*************************************************************!*\
5963 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
5964 \*************************************************************/
5965 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5966
5967 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5968 function _defineProperties(e, r) {
5969 for (var t = 0; t < r.length; t++) {
5970 var o = r[t];
5971 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
5972 }
5973 }
5974 function _createClass(e, r, t) {
5975 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
5976 writable: !1
5977 }), e;
5978 }
5979 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
5980
5981 /***/ }),
5982
5983 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
5984 /*!****************************************************************!*\
5985 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
5986 \****************************************************************/
5987 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
5988
5989 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
5990 function _defineProperty(e, r, t) {
5991 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5992 value: t,
5993 enumerable: !0,
5994 configurable: !0,
5995 writable: !0
5996 }) : e[r] = t, e;
5997 }
5998 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
5999
6000 /***/ }),
6001
6002 /***/ "../node_modules/@babel/runtime/helpers/extends.js":
6003 /*!*********************************************************!*\
6004 !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
6005 \*********************************************************/
6006 /***/ ((module) => {
6007
6008 function _extends() {
6009 return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
6010 for (var e = 1; e < arguments.length; e++) {
6011 var t = arguments[e];
6012 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
6013 }
6014 return n;
6015 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
6016 }
6017 module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
6018
6019 /***/ }),
6020
6021 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
6022 /*!****************************************************************!*\
6023 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
6024 \****************************************************************/
6025 /***/ ((module) => {
6026
6027 function _getPrototypeOf(t) {
6028 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
6029 return t.__proto__ || Object.getPrototypeOf(t);
6030 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
6031 }
6032 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6033
6034 /***/ }),
6035
6036 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
6037 /*!**********************************************************!*\
6038 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
6039 \**********************************************************/
6040 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6041
6042 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
6043 function _inherits(t, e) {
6044 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
6045 t.prototype = Object.create(e && e.prototype, {
6046 constructor: {
6047 value: t,
6048 writable: !0,
6049 configurable: !0
6050 }
6051 }), Object.defineProperty(t, "prototype", {
6052 writable: !1
6053 }), e && setPrototypeOf(t, e);
6054 }
6055 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
6056
6057 /***/ }),
6058
6059 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
6060 /*!***********************************************************************!*\
6061 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
6062 \***********************************************************************/
6063 /***/ ((module) => {
6064
6065 function _interopRequireDefault(e) {
6066 return e && e.__esModule ? e : {
6067 "default": e
6068 };
6069 }
6070 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
6071
6072 /***/ }),
6073
6074 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
6075 /*!*****************************************************************!*\
6076 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
6077 \*****************************************************************/
6078 /***/ ((module) => {
6079
6080 function _iterableToArray(r) {
6081 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
6082 }
6083 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6084
6085 /***/ }),
6086
6087 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
6088 /*!**********************************************************************!*\
6089 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
6090 \**********************************************************************/
6091 /***/ ((module) => {
6092
6093 function _iterableToArrayLimit(r, l) {
6094 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
6095 if (null != t) {
6096 var e,
6097 n,
6098 i,
6099 u,
6100 a = [],
6101 f = !0,
6102 o = !1;
6103 try {
6104 if (i = (t = t.call(r)).next, 0 === l) {
6105 if (Object(t) !== t) return;
6106 f = !1;
6107 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
6108 } catch (r) {
6109 o = !0, n = r;
6110 } finally {
6111 try {
6112 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
6113 } finally {
6114 if (o) throw n;
6115 }
6116 }
6117 return a;
6118 }
6119 }
6120 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
6121
6122 /***/ }),
6123
6124 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
6125 /*!*****************************************************************!*\
6126 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
6127 \*****************************************************************/
6128 /***/ ((module) => {
6129
6130 function _nonIterableRest() {
6131 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6132 }
6133 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
6134
6135 /***/ }),
6136
6137 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
6138 /*!*******************************************************************!*\
6139 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
6140 \*******************************************************************/
6141 /***/ ((module) => {
6142
6143 function _nonIterableSpread() {
6144 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6145 }
6146 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
6147
6148 /***/ }),
6149
6150 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
6151 /*!*************************************************************************!*\
6152 !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
6153 \*************************************************************************/
6154 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6155
6156 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
6157 function _objectWithoutProperties(e, t) {
6158 if (null == e) return {};
6159 var o,
6160 r,
6161 i = objectWithoutPropertiesLoose(e, t);
6162 if (Object.getOwnPropertySymbols) {
6163 var n = Object.getOwnPropertySymbols(e);
6164 for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6165 }
6166 return i;
6167 }
6168 module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
6169
6170 /***/ }),
6171
6172 /***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
6173 /*!******************************************************************************!*\
6174 !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
6175 \******************************************************************************/
6176 /***/ ((module) => {
6177
6178 function _objectWithoutPropertiesLoose(r, e) {
6179 if (null == r) return {};
6180 var t = {};
6181 for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
6182 if (-1 !== e.indexOf(n)) continue;
6183 t[n] = r[n];
6184 }
6185 return t;
6186 }
6187 module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
6188
6189 /***/ }),
6190
6191 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
6192 /*!***************************************************************************!*\
6193 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
6194 \***************************************************************************/
6195 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6196
6197 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6198 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
6199 function _possibleConstructorReturn(t, e) {
6200 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
6201 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
6202 return assertThisInitialized(t);
6203 }
6204 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
6205
6206 /***/ }),
6207
6208 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
6209 /*!*************************************************************!*\
6210 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
6211 \*************************************************************/
6212 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6213
6214 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6215 function _regenerator() {
6216 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
6217 var e,
6218 t,
6219 r = "function" == typeof Symbol ? Symbol : {},
6220 n = r.iterator || "@@iterator",
6221 o = r.toStringTag || "@@toStringTag";
6222 function i(r, n, o, i) {
6223 var c = n && n.prototype instanceof Generator ? n : Generator,
6224 u = Object.create(c.prototype);
6225 return regeneratorDefine(u, "_invoke", function (r, n, o) {
6226 var i,
6227 c,
6228 u,
6229 f = 0,
6230 p = o || [],
6231 y = !1,
6232 G = {
6233 p: 0,
6234 n: 0,
6235 v: e,
6236 a: d,
6237 f: d.bind(e, 4),
6238 d: function d(t, r) {
6239 return i = t, c = 0, u = e, G.n = r, a;
6240 }
6241 };
6242 function d(r, n) {
6243 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
6244 var o,
6245 i = p[t],
6246 d = G.p,
6247 l = i[2];
6248 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));
6249 }
6250 if (o || r > 1) return a;
6251 throw y = !0, n;
6252 }
6253 return function (o, p, l) {
6254 if (f > 1) throw TypeError("Generator is already running");
6255 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
6256 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
6257 try {
6258 if (f = 2, i) {
6259 if (c || (o = "next"), t = i[o]) {
6260 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
6261 if (!t.done) return t;
6262 u = t.value, c < 2 && (c = 0);
6263 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
6264 i = e;
6265 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
6266 } catch (t) {
6267 i = e, c = 1, u = t;
6268 } finally {
6269 f = 1;
6270 }
6271 }
6272 return {
6273 value: t,
6274 done: y
6275 };
6276 };
6277 }(r, o, i), !0), u;
6278 }
6279 var a = {};
6280 function Generator() {}
6281 function GeneratorFunction() {}
6282 function GeneratorFunctionPrototype() {}
6283 t = Object.getPrototypeOf;
6284 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
6285 return this;
6286 }), t),
6287 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
6288 function f(e) {
6289 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
6290 }
6291 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 () {
6292 return this;
6293 }), regeneratorDefine(u, "toString", function () {
6294 return "[object Generator]";
6295 }), (module.exports = _regenerator = function _regenerator() {
6296 return {
6297 w: i,
6298 m: f
6299 };
6300 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6301 }
6302 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6303
6304 /***/ }),
6305
6306 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
6307 /*!******************************************************************!*\
6308 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
6309 \******************************************************************/
6310 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6311
6312 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6313 function _regeneratorAsync(n, e, r, t, o) {
6314 var a = regeneratorAsyncGen(n, e, r, t, o);
6315 return a.next().then(function (n) {
6316 return n.done ? n.value : a.next();
6317 });
6318 }
6319 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
6320
6321 /***/ }),
6322
6323 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
6324 /*!*********************************************************************!*\
6325 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
6326 \*********************************************************************/
6327 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6328
6329 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6330 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6331 function _regeneratorAsyncGen(r, e, t, o, n) {
6332 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
6333 }
6334 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
6335
6336 /***/ }),
6337
6338 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
6339 /*!**************************************************************************!*\
6340 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
6341 \**************************************************************************/
6342 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6343
6344 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6345 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
6346 function AsyncIterator(t, e) {
6347 function n(r, o, i, f) {
6348 try {
6349 var c = t[r](o),
6350 u = c.value;
6351 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
6352 n("next", t, i, f);
6353 }, function (t) {
6354 n("throw", t, i, f);
6355 }) : e.resolve(u).then(function (t) {
6356 c.value = t, i(c);
6357 }, function (t) {
6358 return n("throw", t, i, f);
6359 });
6360 } catch (t) {
6361 f(t);
6362 }
6363 }
6364 var r;
6365 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
6366 return this;
6367 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
6368 function f() {
6369 return new e(function (e, r) {
6370 n(t, i, e, r);
6371 });
6372 }
6373 return r = r ? r.then(f, f) : f();
6374 }, !0);
6375 }
6376 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
6377
6378 /***/ }),
6379
6380 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
6381 /*!*******************************************************************!*\
6382 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
6383 \*******************************************************************/
6384 /***/ ((module) => {
6385
6386 function _regeneratorDefine(e, r, n, t) {
6387 var i = Object.defineProperty;
6388 try {
6389 i({}, "", {});
6390 } catch (e) {
6391 i = 0;
6392 }
6393 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
6394 if (r) i ? i(e, r, {
6395 value: n,
6396 enumerable: !t,
6397 configurable: !t,
6398 writable: !t
6399 }) : e[r] = n;else {
6400 var o = function o(r, n) {
6401 _regeneratorDefine(e, r, function (e) {
6402 return this._invoke(r, n, e);
6403 });
6404 };
6405 o("next", 0), o("throw", 1), o("return", 2);
6406 }
6407 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
6408 }
6409 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
6410
6411 /***/ }),
6412
6413 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
6414 /*!*****************************************************************!*\
6415 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
6416 \*****************************************************************/
6417 /***/ ((module) => {
6418
6419 function _regeneratorKeys(e) {
6420 var n = Object(e),
6421 r = [];
6422 for (var t in n) r.unshift(t);
6423 return function e() {
6424 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
6425 return e.done = !0, e;
6426 };
6427 }
6428 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
6429
6430 /***/ }),
6431
6432 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
6433 /*!********************************************************************!*\
6434 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
6435 \********************************************************************/
6436 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6437
6438 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
6439 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
6440 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
6441 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
6442 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
6443 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
6444 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
6445 function _regeneratorRuntime() {
6446 "use strict";
6447
6448 var r = regenerator(),
6449 e = r.m(_regeneratorRuntime),
6450 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
6451 function n(r) {
6452 var e = "function" == typeof r && r.constructor;
6453 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
6454 }
6455 var o = {
6456 "throw": 1,
6457 "return": 2,
6458 "break": 3,
6459 "continue": 3
6460 };
6461 function a(r) {
6462 var e, t;
6463 return function (n) {
6464 e || (e = {
6465 stop: function stop() {
6466 return t(n.a, 2);
6467 },
6468 "catch": function _catch() {
6469 return n.v;
6470 },
6471 abrupt: function abrupt(r, e) {
6472 return t(n.a, o[r], e);
6473 },
6474 delegateYield: function delegateYield(r, o, a) {
6475 return e.resultName = o, t(n.d, regeneratorValues(r), a);
6476 },
6477 finish: function finish(r) {
6478 return t(n.f, r);
6479 }
6480 }, t = function t(r, _t, o) {
6481 n.p = e.prev, n.n = e.next;
6482 try {
6483 return r(_t, o);
6484 } finally {
6485 e.next = n.n;
6486 }
6487 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
6488 try {
6489 return r.call(this, e);
6490 } finally {
6491 n.p = e.prev, n.n = e.next;
6492 }
6493 };
6494 }
6495 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
6496 return {
6497 wrap: function wrap(e, t, n, o) {
6498 return r.w(a(e), t, n, o && o.reverse());
6499 },
6500 isGeneratorFunction: n,
6501 mark: r.m,
6502 awrap: function awrap(r, e) {
6503 return new OverloadYield(r, e);
6504 },
6505 AsyncIterator: regeneratorAsyncIterator,
6506 async: function async(r, e, t, o, u) {
6507 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
6508 },
6509 keys: regeneratorKeys,
6510 values: regeneratorValues
6511 };
6512 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
6513 }
6514 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6515
6516 /***/ }),
6517
6518 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
6519 /*!*******************************************************************!*\
6520 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
6521 \*******************************************************************/
6522 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6523
6524 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6525 function _regeneratorValues(e) {
6526 if (null != e) {
6527 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
6528 r = 0;
6529 if (t) return t.call(e);
6530 if ("function" == typeof e.next) return e;
6531 if (!isNaN(e.length)) return {
6532 next: function next() {
6533 return e && r >= e.length && (e = void 0), {
6534 value: e && e[r++],
6535 done: !e
6536 };
6537 }
6538 };
6539 }
6540 throw new TypeError(_typeof(e) + " is not iterable");
6541 }
6542 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
6543
6544 /***/ }),
6545
6546 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
6547 /*!****************************************************************!*\
6548 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
6549 \****************************************************************/
6550 /***/ ((module) => {
6551
6552 function _setPrototypeOf(t, e) {
6553 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
6554 return t.__proto__ = e, t;
6555 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
6556 }
6557 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
6558
6559 /***/ }),
6560
6561 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
6562 /*!***************************************************************!*\
6563 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
6564 \***************************************************************/
6565 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6566
6567 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
6568 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
6569 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6570 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
6571 function _slicedToArray(r, e) {
6572 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
6573 }
6574 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6575
6576 /***/ }),
6577
6578 /***/ "../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js":
6579 /*!***********************************************************************!*\
6580 !*** ../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js ***!
6581 \***********************************************************************/
6582 /***/ ((module) => {
6583
6584 function _taggedTemplateLiteral(e, t) {
6585 return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
6586 raw: {
6587 value: Object.freeze(t)
6588 }
6589 }));
6590 }
6591 module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
6592
6593 /***/ }),
6594
6595 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
6596 /*!*******************************************************************!*\
6597 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
6598 \*******************************************************************/
6599 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6600
6601 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
6602 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
6603 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
6604 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
6605 function _toConsumableArray(r) {
6606 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
6607 }
6608 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6609
6610 /***/ }),
6611
6612 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
6613 /*!*************************************************************!*\
6614 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
6615 \*************************************************************/
6616 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6617
6618 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6619 function toPrimitive(t, r) {
6620 if ("object" != _typeof(t) || !t) return t;
6621 var e = t[Symbol.toPrimitive];
6622 if (void 0 !== e) {
6623 var i = e.call(t, r || "default");
6624 if ("object" != _typeof(i)) return i;
6625 throw new TypeError("@@toPrimitive must return a primitive value.");
6626 }
6627 return ("string" === r ? String : Number)(t);
6628 }
6629 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
6630
6631 /***/ }),
6632
6633 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
6634 /*!***************************************************************!*\
6635 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
6636 \***************************************************************/
6637 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6638
6639 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
6640 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
6641 function toPropertyKey(t) {
6642 var i = toPrimitive(t, "string");
6643 return "symbol" == _typeof(i) ? i : i + "";
6644 }
6645 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
6646
6647 /***/ }),
6648
6649 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
6650 /*!********************************************************!*\
6651 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
6652 \********************************************************/
6653 /***/ ((module) => {
6654
6655 function _typeof(o) {
6656 "@babel/helpers - typeof";
6657
6658 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
6659 return typeof o;
6660 } : function (o) {
6661 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
6662 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
6663 }
6664 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
6665
6666 /***/ }),
6667
6668 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
6669 /*!****************************************************************************!*\
6670 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
6671 \****************************************************************************/
6672 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6673
6674 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
6675 function _unsupportedIterableToArray(r, a) {
6676 if (r) {
6677 if ("string" == typeof r) return arrayLikeToArray(r, a);
6678 var t = {}.toString.call(r).slice(8, -1);
6679 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;
6680 }
6681 }
6682 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
6683
6684 /***/ }),
6685
6686 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
6687 /*!***********************************************************!*\
6688 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
6689 \***********************************************************/
6690 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6691
6692 // TODO(Babel 8): Remove this file.
6693
6694 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
6695 module.exports = runtime;
6696
6697 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6698 try {
6699 regeneratorRuntime = runtime;
6700 } catch (accidentalStrictMode) {
6701 if (typeof globalThis === "object") {
6702 globalThis.regeneratorRuntime = runtime;
6703 } else {
6704 Function("r", "regeneratorRuntime = r")(runtime);
6705 }
6706 }
6707
6708
6709 /***/ }),
6710
6711 /***/ "../node_modules/html-to-image/es/apply-style.js":
6712 /*!*******************************************************!*\
6713 !*** ../node_modules/html-to-image/es/apply-style.js ***!
6714 \*******************************************************/
6715 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6716
6717 "use strict";
6718 __webpack_require__.r(__webpack_exports__);
6719 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6720 /* harmony export */ applyStyle: () => (/* binding */ applyStyle)
6721 /* harmony export */ });
6722 function applyStyle(node, options) {
6723 const { style } = node;
6724 if (options.backgroundColor) {
6725 style.backgroundColor = options.backgroundColor;
6726 }
6727 if (options.width) {
6728 style.width = `${options.width}px`;
6729 }
6730 if (options.height) {
6731 style.height = `${options.height}px`;
6732 }
6733 const manual = options.style;
6734 if (manual != null) {
6735 Object.keys(manual).forEach((key) => {
6736 style[key] = manual[key];
6737 });
6738 }
6739 return node;
6740 }
6741 //# sourceMappingURL=apply-style.js.map
6742
6743 /***/ }),
6744
6745 /***/ "../node_modules/html-to-image/es/clone-node.js":
6746 /*!******************************************************!*\
6747 !*** ../node_modules/html-to-image/es/clone-node.js ***!
6748 \******************************************************/
6749 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6750
6751 "use strict";
6752 __webpack_require__.r(__webpack_exports__);
6753 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6754 /* harmony export */ cloneNode: () => (/* binding */ cloneNode)
6755 /* harmony export */ });
6756 /* harmony import */ var _clone_pseudos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-pseudos */ "../node_modules/html-to-image/es/clone-pseudos.js");
6757 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6758 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
6759 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
6760
6761
6762
6763
6764 async function cloneCanvasElement(canvas) {
6765 const dataURL = canvas.toDataURL();
6766 if (dataURL === 'data:,') {
6767 return canvas.cloneNode(false);
6768 }
6769 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6770 }
6771 async function cloneVideoElement(video, options) {
6772 if (video.currentSrc) {
6773 const canvas = document.createElement('canvas');
6774 const ctx = canvas.getContext('2d');
6775 canvas.width = video.clientWidth;
6776 canvas.height = video.clientHeight;
6777 ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
6778 const dataURL = canvas.toDataURL();
6779 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6780 }
6781 const poster = video.poster;
6782 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_2__.getMimeType)(poster);
6783 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_3__.resourceToDataURL)(poster, contentType, options);
6784 return (0,_util__WEBPACK_IMPORTED_MODULE_1__.createImage)(dataURL);
6785 }
6786 async function cloneIFrameElement(iframe, options) {
6787 var _a;
6788 try {
6789 if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {
6790 return (await cloneNode(iframe.contentDocument.body, options, true));
6791 }
6792 }
6793 catch (_b) {
6794 // Failed to clone iframe
6795 }
6796 return iframe.cloneNode(false);
6797 }
6798 async function cloneSingleNode(node, options) {
6799 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLCanvasElement)) {
6800 return cloneCanvasElement(node);
6801 }
6802 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLVideoElement)) {
6803 return cloneVideoElement(node, options);
6804 }
6805 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(node, HTMLIFrameElement)) {
6806 return cloneIFrameElement(node, options);
6807 }
6808 return node.cloneNode(isSVGElement(node));
6809 }
6810 const isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';
6811 const isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';
6812 async function cloneChildren(nativeNode, clonedNode, options) {
6813 var _a, _b;
6814 if (isSVGElement(clonedNode)) {
6815 return clonedNode;
6816 }
6817 let children = [];
6818 if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {
6819 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.assignedNodes());
6820 }
6821 else if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6822 ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {
6823 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(nativeNode.contentDocument.body.childNodes);
6824 }
6825 else {
6826 children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);
6827 }
6828 if (children.length === 0 ||
6829 (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLVideoElement)) {
6830 return clonedNode;
6831 }
6832 await children.reduce((deferred, child) => deferred
6833 .then(() => cloneNode(child, options))
6834 .then((clonedChild) => {
6835 if (clonedChild) {
6836 clonedNode.appendChild(clonedChild);
6837 }
6838 }), Promise.resolve());
6839 return clonedNode;
6840 }
6841 function cloneCSSStyle(nativeNode, clonedNode, options) {
6842 const targetStyle = clonedNode.style;
6843 if (!targetStyle) {
6844 return;
6845 }
6846 const sourceStyle = window.getComputedStyle(nativeNode);
6847 if (sourceStyle.cssText) {
6848 targetStyle.cssText = sourceStyle.cssText;
6849 targetStyle.transformOrigin = sourceStyle.transformOrigin;
6850 }
6851 else {
6852 (0,_util__WEBPACK_IMPORTED_MODULE_1__.getStyleProperties)(options).forEach((name) => {
6853 let value = sourceStyle.getPropertyValue(name);
6854 if (name === 'font-size' && value.endsWith('px')) {
6855 const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;
6856 value = `${reducedFont}px`;
6857 }
6858 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLIFrameElement) &&
6859 name === 'display' &&
6860 value === 'inline') {
6861 value = 'block';
6862 }
6863 if (name === 'd' && clonedNode.getAttribute('d')) {
6864 value = `path(${clonedNode.getAttribute('d')})`;
6865 }
6866 targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));
6867 });
6868 }
6869 }
6870 function cloneInputValue(nativeNode, clonedNode) {
6871 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLTextAreaElement)) {
6872 clonedNode.innerHTML = nativeNode.value;
6873 }
6874 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLInputElement)) {
6875 clonedNode.setAttribute('value', nativeNode.value);
6876 }
6877 }
6878 function cloneSelectValue(nativeNode, clonedNode) {
6879 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(nativeNode, HTMLSelectElement)) {
6880 const clonedSelect = clonedNode;
6881 const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));
6882 if (selectedOption) {
6883 selectedOption.setAttribute('selected', '');
6884 }
6885 }
6886 }
6887 function decorate(nativeNode, clonedNode, options) {
6888 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
6889 cloneCSSStyle(nativeNode, clonedNode, options);
6890 (0,_clone_pseudos__WEBPACK_IMPORTED_MODULE_0__.clonePseudoElements)(nativeNode, clonedNode, options);
6891 cloneInputValue(nativeNode, clonedNode);
6892 cloneSelectValue(nativeNode, clonedNode);
6893 }
6894 return clonedNode;
6895 }
6896 async function ensureSVGSymbols(clone, options) {
6897 const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];
6898 if (uses.length === 0) {
6899 return clone;
6900 }
6901 const processedDefs = {};
6902 for (let i = 0; i < uses.length; i++) {
6903 const use = uses[i];
6904 const id = use.getAttribute('xlink:href');
6905 if (id) {
6906 const exist = clone.querySelector(id);
6907 const definition = document.querySelector(id);
6908 if (!exist && definition && !processedDefs[id]) {
6909 // eslint-disable-next-line no-await-in-loop
6910 processedDefs[id] = (await cloneNode(definition, options, true));
6911 }
6912 }
6913 }
6914 const nodes = Object.values(processedDefs);
6915 if (nodes.length) {
6916 const ns = 'http://www.w3.org/1999/xhtml';
6917 const svg = document.createElementNS(ns, 'svg');
6918 svg.setAttribute('xmlns', ns);
6919 svg.style.position = 'absolute';
6920 svg.style.width = '0';
6921 svg.style.height = '0';
6922 svg.style.overflow = 'hidden';
6923 svg.style.display = 'none';
6924 const defs = document.createElementNS(ns, 'defs');
6925 svg.appendChild(defs);
6926 for (let i = 0; i < nodes.length; i++) {
6927 defs.appendChild(nodes[i]);
6928 }
6929 clone.appendChild(svg);
6930 }
6931 return clone;
6932 }
6933 async function cloneNode(node, options, isRoot) {
6934 if (!isRoot && options.filter && !options.filter(node)) {
6935 return null;
6936 }
6937 return Promise.resolve(node)
6938 .then((clonedNode) => cloneSingleNode(clonedNode, options))
6939 .then((clonedNode) => cloneChildren(node, clonedNode, options))
6940 .then((clonedNode) => decorate(node, clonedNode, options))
6941 .then((clonedNode) => ensureSVGSymbols(clonedNode, options));
6942 }
6943 //# sourceMappingURL=clone-node.js.map
6944
6945 /***/ }),
6946
6947 /***/ "../node_modules/html-to-image/es/clone-pseudos.js":
6948 /*!*********************************************************!*\
6949 !*** ../node_modules/html-to-image/es/clone-pseudos.js ***!
6950 \*********************************************************/
6951 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6952
6953 "use strict";
6954 __webpack_require__.r(__webpack_exports__);
6955 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6956 /* harmony export */ clonePseudoElements: () => (/* binding */ clonePseudoElements)
6957 /* harmony export */ });
6958 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
6959
6960 function formatCSSText(style) {
6961 const content = style.getPropertyValue('content');
6962 return `${style.cssText} content: '${content.replace(/'|"/g, '')}';`;
6963 }
6964 function formatCSSProperties(style, options) {
6965 return (0,_util__WEBPACK_IMPORTED_MODULE_0__.getStyleProperties)(options)
6966 .map((name) => {
6967 const value = style.getPropertyValue(name);
6968 const priority = style.getPropertyPriority(name);
6969 return `${name}: ${value}${priority ? ' !important' : ''};`;
6970 })
6971 .join(' ');
6972 }
6973 function getPseudoElementStyle(className, pseudo, style, options) {
6974 const selector = `.${className}:${pseudo}`;
6975 const cssText = style.cssText
6976 ? formatCSSText(style)
6977 : formatCSSProperties(style, options);
6978 return document.createTextNode(`${selector}{${cssText}}`);
6979 }
6980 function clonePseudoElement(nativeNode, clonedNode, pseudo, options) {
6981 const style = window.getComputedStyle(nativeNode, pseudo);
6982 const content = style.getPropertyValue('content');
6983 if (content === '' || content === 'none') {
6984 return;
6985 }
6986 const className = (0,_util__WEBPACK_IMPORTED_MODULE_0__.uuid)();
6987 try {
6988 clonedNode.className = `${clonedNode.className} ${className}`;
6989 }
6990 catch (err) {
6991 return;
6992 }
6993 const styleElement = document.createElement('style');
6994 styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));
6995 clonedNode.appendChild(styleElement);
6996 }
6997 function clonePseudoElements(nativeNode, clonedNode, options) {
6998 clonePseudoElement(nativeNode, clonedNode, ':before', options);
6999 clonePseudoElement(nativeNode, clonedNode, ':after', options);
7000 }
7001 //# sourceMappingURL=clone-pseudos.js.map
7002
7003 /***/ }),
7004
7005 /***/ "../node_modules/html-to-image/es/dataurl.js":
7006 /*!***************************************************!*\
7007 !*** ../node_modules/html-to-image/es/dataurl.js ***!
7008 \***************************************************/
7009 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7010
7011 "use strict";
7012 __webpack_require__.r(__webpack_exports__);
7013 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7014 /* harmony export */ fetchAsDataURL: () => (/* binding */ fetchAsDataURL),
7015 /* harmony export */ isDataUrl: () => (/* binding */ isDataUrl),
7016 /* harmony export */ makeDataUrl: () => (/* binding */ makeDataUrl),
7017 /* harmony export */ resourceToDataURL: () => (/* binding */ resourceToDataURL)
7018 /* harmony export */ });
7019 function getContentFromDataUrl(dataURL) {
7020 return dataURL.split(/,/)[1];
7021 }
7022 function isDataUrl(url) {
7023 return url.search(/^(data:)/) !== -1;
7024 }
7025 function makeDataUrl(content, mimeType) {
7026 return `data:${mimeType};base64,${content}`;
7027 }
7028 async function fetchAsDataURL(url, init, process) {
7029 const res = await fetch(url, init);
7030 if (res.status === 404) {
7031 throw new Error(`Resource "${res.url}" not found`);
7032 }
7033 const blob = await res.blob();
7034 return new Promise((resolve, reject) => {
7035 const reader = new FileReader();
7036 reader.onerror = reject;
7037 reader.onloadend = () => {
7038 try {
7039 resolve(process({ res, result: reader.result }));
7040 }
7041 catch (error) {
7042 reject(error);
7043 }
7044 };
7045 reader.readAsDataURL(blob);
7046 });
7047 }
7048 const cache = {};
7049 function getCacheKey(url, contentType, includeQueryParams) {
7050 let key = url.replace(/\?.*/, '');
7051 if (includeQueryParams) {
7052 key = url;
7053 }
7054 // font resource
7055 if (/ttf|otf|eot|woff2?/i.test(key)) {
7056 key = key.replace(/.*\//, '');
7057 }
7058 return contentType ? `[${contentType}]${key}` : key;
7059 }
7060 async function resourceToDataURL(resourceUrl, contentType, options) {
7061 const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);
7062 if (cache[cacheKey] != null) {
7063 return cache[cacheKey];
7064 }
7065 // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
7066 if (options.cacheBust) {
7067 // eslint-disable-next-line no-param-reassign
7068 resourceUrl += (/\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();
7069 }
7070 let dataURL;
7071 try {
7072 const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {
7073 if (!contentType) {
7074 // eslint-disable-next-line no-param-reassign
7075 contentType = res.headers.get('Content-Type') || '';
7076 }
7077 return getContentFromDataUrl(result);
7078 });
7079 dataURL = makeDataUrl(content, contentType);
7080 }
7081 catch (error) {
7082 dataURL = options.imagePlaceholder || '';
7083 let msg = `Failed to fetch resource: ${resourceUrl}`;
7084 if (error) {
7085 msg = typeof error === 'string' ? error : error.message;
7086 }
7087 if (msg) {
7088 console.warn(msg);
7089 }
7090 }
7091 cache[cacheKey] = dataURL;
7092 return dataURL;
7093 }
7094 //# sourceMappingURL=dataurl.js.map
7095
7096 /***/ }),
7097
7098 /***/ "../node_modules/html-to-image/es/embed-images.js":
7099 /*!********************************************************!*\
7100 !*** ../node_modules/html-to-image/es/embed-images.js ***!
7101 \********************************************************/
7102 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7103
7104 "use strict";
7105 __webpack_require__.r(__webpack_exports__);
7106 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7107 /* harmony export */ embedImages: () => (/* binding */ embedImages)
7108 /* harmony export */ });
7109 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7110 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7111 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7112 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7113
7114
7115
7116
7117 async function embedProp(propName, node, options) {
7118 var _a;
7119 const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);
7120 if (propValue) {
7121 const cssString = await (0,_embed_resources__WEBPACK_IMPORTED_MODULE_0__.embedResources)(propValue, null, options);
7122 node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));
7123 return true;
7124 }
7125 return false;
7126 }
7127 async function embedBackground(clonedNode, options) {
7128 ;
7129 (await embedProp('background', clonedNode, options)) ||
7130 (await embedProp('background-image', clonedNode, options));
7131 (await embedProp('mask', clonedNode, options)) ||
7132 (await embedProp('-webkit-mask', clonedNode, options)) ||
7133 (await embedProp('mask-image', clonedNode, options)) ||
7134 (await embedProp('-webkit-mask-image', clonedNode, options));
7135 }
7136 async function embedImageNode(clonedNode, options) {
7137 const isImageElement = (0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, HTMLImageElement);
7138 if (!(isImageElement && !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.src)) &&
7139 !((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, SVGImageElement) &&
7140 !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(clonedNode.href.baseVal))) {
7141 return;
7142 }
7143 const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;
7144 const dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(url, (0,_mimes__WEBPACK_IMPORTED_MODULE_3__.getMimeType)(url), options);
7145 await new Promise((resolve, reject) => {
7146 clonedNode.onload = resolve;
7147 clonedNode.onerror = options.onImageErrorHandler
7148 ? (...attributes) => {
7149 try {
7150 resolve(options.onImageErrorHandler(...attributes));
7151 }
7152 catch (error) {
7153 reject(error);
7154 }
7155 }
7156 : reject;
7157 const image = clonedNode;
7158 if (image.decode) {
7159 image.decode = resolve;
7160 }
7161 if (image.loading === 'lazy') {
7162 image.loading = 'eager';
7163 }
7164 if (isImageElement) {
7165 clonedNode.srcset = '';
7166 clonedNode.src = dataURL;
7167 }
7168 else {
7169 clonedNode.href.baseVal = dataURL;
7170 }
7171 });
7172 }
7173 async function embedChildren(clonedNode, options) {
7174 const children = (0,_util__WEBPACK_IMPORTED_MODULE_1__.toArray)(clonedNode.childNodes);
7175 const deferreds = children.map((child) => embedImages(child, options));
7176 await Promise.all(deferreds).then(() => clonedNode);
7177 }
7178 async function embedImages(clonedNode, options) {
7179 if ((0,_util__WEBPACK_IMPORTED_MODULE_1__.isInstanceOfElement)(clonedNode, Element)) {
7180 await embedBackground(clonedNode, options);
7181 await embedImageNode(clonedNode, options);
7182 await embedChildren(clonedNode, options);
7183 }
7184 }
7185 //# sourceMappingURL=embed-images.js.map
7186
7187 /***/ }),
7188
7189 /***/ "../node_modules/html-to-image/es/embed-resources.js":
7190 /*!***********************************************************!*\
7191 !*** ../node_modules/html-to-image/es/embed-resources.js ***!
7192 \***********************************************************/
7193 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7194
7195 "use strict";
7196 __webpack_require__.r(__webpack_exports__);
7197 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7198 /* harmony export */ embed: () => (/* binding */ embed),
7199 /* harmony export */ embedResources: () => (/* binding */ embedResources),
7200 /* harmony export */ parseURLs: () => (/* binding */ parseURLs),
7201 /* harmony export */ shouldEmbed: () => (/* binding */ shouldEmbed)
7202 /* harmony export */ });
7203 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7204 /* harmony import */ var _mimes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mimes */ "../node_modules/html-to-image/es/mimes.js");
7205 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7206
7207
7208
7209 const URL_REGEX = /url\((['"]?)([^'"]+?)\1\)/g;
7210 const URL_WITH_FORMAT_REGEX = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g;
7211 const FONT_SRC_REGEX = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
7212 function toRegex(url) {
7213 // eslint-disable-next-line no-useless-escape
7214 const escaped = url.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
7215 return new RegExp(`(url\\(['"]?)(${escaped})(['"]?\\))`, 'g');
7216 }
7217 function parseURLs(cssText) {
7218 const urls = [];
7219 cssText.replace(URL_REGEX, (raw, quotation, url) => {
7220 urls.push(url);
7221 return raw;
7222 });
7223 return urls.filter((url) => !(0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.isDataUrl)(url));
7224 }
7225 async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {
7226 try {
7227 const resolvedURL = baseURL ? (0,_util__WEBPACK_IMPORTED_MODULE_0__.resolveUrl)(resourceURL, baseURL) : resourceURL;
7228 const contentType = (0,_mimes__WEBPACK_IMPORTED_MODULE_1__.getMimeType)(resourceURL);
7229 let dataURL;
7230 if (getContentFromUrl) {
7231 const content = await getContentFromUrl(resolvedURL);
7232 dataURL = (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.makeDataUrl)(content, contentType);
7233 }
7234 else {
7235 dataURL = await (0,_dataurl__WEBPACK_IMPORTED_MODULE_2__.resourceToDataURL)(resolvedURL, contentType, options);
7236 }
7237 return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);
7238 }
7239 catch (error) {
7240 // pass
7241 }
7242 return cssText;
7243 }
7244 function filterPreferredFontFormat(str, { preferredFontFormat }) {
7245 return !preferredFontFormat
7246 ? str
7247 : str.replace(FONT_SRC_REGEX, (match) => {
7248 // eslint-disable-next-line no-constant-condition
7249 while (true) {
7250 const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];
7251 if (!format) {
7252 return '';
7253 }
7254 if (format === preferredFontFormat) {
7255 return `src: ${src};`;
7256 }
7257 }
7258 });
7259 }
7260 function shouldEmbed(url) {
7261 return url.search(URL_REGEX) !== -1;
7262 }
7263 async function embedResources(cssText, baseUrl, options) {
7264 if (!shouldEmbed(cssText)) {
7265 return cssText;
7266 }
7267 const filteredCSSText = filterPreferredFontFormat(cssText, options);
7268 const urls = parseURLs(filteredCSSText);
7269 return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));
7270 }
7271 //# sourceMappingURL=embed-resources.js.map
7272
7273 /***/ }),
7274
7275 /***/ "../node_modules/html-to-image/es/embed-webfonts.js":
7276 /*!**********************************************************!*\
7277 !*** ../node_modules/html-to-image/es/embed-webfonts.js ***!
7278 \**********************************************************/
7279 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7280
7281 "use strict";
7282 __webpack_require__.r(__webpack_exports__);
7283 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7284 /* harmony export */ embedWebFonts: () => (/* binding */ embedWebFonts),
7285 /* harmony export */ getWebFontCSS: () => (/* binding */ getWebFontCSS)
7286 /* harmony export */ });
7287 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7288 /* harmony import */ var _dataurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataurl */ "../node_modules/html-to-image/es/dataurl.js");
7289 /* harmony import */ var _embed_resources__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./embed-resources */ "../node_modules/html-to-image/es/embed-resources.js");
7290
7291
7292
7293 const cssFetchCache = {};
7294 async function fetchCSS(url) {
7295 let cache = cssFetchCache[url];
7296 if (cache != null) {
7297 return cache;
7298 }
7299 const res = await fetch(url);
7300 const cssText = await res.text();
7301 cache = { url, cssText };
7302 cssFetchCache[url] = cache;
7303 return cache;
7304 }
7305 async function embedFonts(data, options) {
7306 let cssText = data.cssText;
7307 const regexUrl = /url\(["']?([^"')]+)["']?\)/g;
7308 const fontLocs = cssText.match(/url\([^)]+\)/g) || [];
7309 const loadFonts = fontLocs.map(async (loc) => {
7310 let url = loc.replace(regexUrl, '$1');
7311 if (!url.startsWith('https://')) {
7312 url = new URL(url, data.url).href;
7313 }
7314 return (0,_dataurl__WEBPACK_IMPORTED_MODULE_1__.fetchAsDataURL)(url, options.fetchRequestInit, ({ result }) => {
7315 cssText = cssText.replace(loc, `url(${result})`);
7316 return [loc, result];
7317 });
7318 });
7319 return Promise.all(loadFonts).then(() => cssText);
7320 }
7321 function parseCSS(source) {
7322 if (source == null) {
7323 return [];
7324 }
7325 const result = [];
7326 const commentsRegex = /(\/\*[\s\S]*?\*\/)/gi;
7327 // strip out comments
7328 let cssText = source.replace(commentsRegex, '');
7329 // eslint-disable-next-line prefer-regex-literals
7330 const keyframesRegex = new RegExp('((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})', 'gi');
7331 // eslint-disable-next-line no-constant-condition
7332 while (true) {
7333 const matches = keyframesRegex.exec(cssText);
7334 if (matches === null) {
7335 break;
7336 }
7337 result.push(matches[0]);
7338 }
7339 cssText = cssText.replace(keyframesRegex, '');
7340 const importRegex = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi;
7341 // to match css & media queries together
7342 const combinedCSSRegex = '((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]' +
7343 '*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})';
7344 // unified regex
7345 const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');
7346 // eslint-disable-next-line no-constant-condition
7347 while (true) {
7348 let matches = importRegex.exec(cssText);
7349 if (matches === null) {
7350 matches = unifiedRegex.exec(cssText);
7351 if (matches === null) {
7352 break;
7353 }
7354 else {
7355 importRegex.lastIndex = unifiedRegex.lastIndex;
7356 }
7357 }
7358 else {
7359 unifiedRegex.lastIndex = importRegex.lastIndex;
7360 }
7361 result.push(matches[0]);
7362 }
7363 return result;
7364 }
7365 async function getCSSRules(styleSheets, options) {
7366 const ret = [];
7367 const deferreds = [];
7368 // First loop inlines imports
7369 styleSheets.forEach((sheet) => {
7370 if ('cssRules' in sheet) {
7371 try {
7372 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item, index) => {
7373 if (item.type === CSSRule.IMPORT_RULE) {
7374 let importIndex = index + 1;
7375 const url = item.href;
7376 const deferred = fetchCSS(url)
7377 .then((metadata) => embedFonts(metadata, options))
7378 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7379 try {
7380 sheet.insertRule(rule, rule.startsWith('@import')
7381 ? (importIndex += 1)
7382 : sheet.cssRules.length);
7383 }
7384 catch (error) {
7385 console.error('Error inserting rule from remote css', {
7386 rule,
7387 error,
7388 });
7389 }
7390 }))
7391 .catch((e) => {
7392 console.error('Error loading remote css', e.toString());
7393 });
7394 deferreds.push(deferred);
7395 }
7396 });
7397 }
7398 catch (e) {
7399 const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];
7400 if (sheet.href != null) {
7401 deferreds.push(fetchCSS(sheet.href)
7402 .then((metadata) => embedFonts(metadata, options))
7403 .then((cssText) => parseCSS(cssText).forEach((rule) => {
7404 inline.insertRule(rule, inline.cssRules.length);
7405 }))
7406 .catch((err) => {
7407 console.error('Error loading remote stylesheet', err);
7408 }));
7409 }
7410 console.error('Error inlining remote css file', e);
7411 }
7412 }
7413 });
7414 return Promise.all(deferreds).then(() => {
7415 // Second loop parses rules
7416 styleSheets.forEach((sheet) => {
7417 if ('cssRules' in sheet) {
7418 try {
7419 (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(sheet.cssRules || []).forEach((item) => {
7420 ret.push(item);
7421 });
7422 }
7423 catch (e) {
7424 console.error(`Error while reading CSS rules from ${sheet.href}`, e);
7425 }
7426 }
7427 });
7428 return ret;
7429 });
7430 }
7431 function getWebFontRules(cssRules) {
7432 return cssRules
7433 .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)
7434 .filter((rule) => (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.shouldEmbed)(rule.style.getPropertyValue('src')));
7435 }
7436 async function parseWebFontRules(node, options) {
7437 if (node.ownerDocument == null) {
7438 throw new Error('Provided element is not within a Document');
7439 }
7440 const styleSheets = (0,_util__WEBPACK_IMPORTED_MODULE_0__.toArray)(node.ownerDocument.styleSheets);
7441 const cssRules = await getCSSRules(styleSheets, options);
7442 return getWebFontRules(cssRules);
7443 }
7444 function normalizeFontFamily(font) {
7445 return font.trim().replace(/["']/g, '');
7446 }
7447 function getUsedFonts(node) {
7448 const fonts = new Set();
7449 function traverse(node) {
7450 const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;
7451 fontFamily.split(',').forEach((font) => {
7452 fonts.add(normalizeFontFamily(font));
7453 });
7454 Array.from(node.children).forEach((child) => {
7455 if (child instanceof HTMLElement) {
7456 traverse(child);
7457 }
7458 });
7459 }
7460 traverse(node);
7461 return fonts;
7462 }
7463 async function getWebFontCSS(node, options) {
7464 const rules = await parseWebFontRules(node, options);
7465 const usedFonts = getUsedFonts(node);
7466 const cssTexts = await Promise.all(rules
7467 .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))
7468 .map((rule) => {
7469 const baseUrl = rule.parentStyleSheet
7470 ? rule.parentStyleSheet.href
7471 : null;
7472 return (0,_embed_resources__WEBPACK_IMPORTED_MODULE_2__.embedResources)(rule.cssText, baseUrl, options);
7473 }));
7474 return cssTexts.join('\n');
7475 }
7476 async function embedWebFonts(clonedNode, options) {
7477 const cssText = options.fontEmbedCSS != null
7478 ? options.fontEmbedCSS
7479 : options.skipFonts
7480 ? null
7481 : await getWebFontCSS(clonedNode, options);
7482 if (cssText) {
7483 const styleNode = document.createElement('style');
7484 const sytleContent = document.createTextNode(cssText);
7485 styleNode.appendChild(sytleContent);
7486 if (clonedNode.firstChild) {
7487 clonedNode.insertBefore(styleNode, clonedNode.firstChild);
7488 }
7489 else {
7490 clonedNode.appendChild(styleNode);
7491 }
7492 }
7493 }
7494 //# sourceMappingURL=embed-webfonts.js.map
7495
7496 /***/ }),
7497
7498 /***/ "../node_modules/html-to-image/es/index.js":
7499 /*!*************************************************!*\
7500 !*** ../node_modules/html-to-image/es/index.js ***!
7501 \*************************************************/
7502 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7503
7504 "use strict";
7505 __webpack_require__.r(__webpack_exports__);
7506 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7507 /* harmony export */ getFontEmbedCSS: () => (/* binding */ getFontEmbedCSS),
7508 /* harmony export */ toBlob: () => (/* binding */ toBlob),
7509 /* harmony export */ toCanvas: () => (/* binding */ toCanvas),
7510 /* harmony export */ toJpeg: () => (/* binding */ toJpeg),
7511 /* harmony export */ toPixelData: () => (/* binding */ toPixelData),
7512 /* harmony export */ toPng: () => (/* binding */ toPng),
7513 /* harmony export */ toSvg: () => (/* binding */ toSvg)
7514 /* harmony export */ });
7515 /* harmony import */ var _clone_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone-node */ "../node_modules/html-to-image/es/clone-node.js");
7516 /* harmony import */ var _embed_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./embed-images */ "../node_modules/html-to-image/es/embed-images.js");
7517 /* harmony import */ var _apply_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./apply-style */ "../node_modules/html-to-image/es/apply-style.js");
7518 /* harmony import */ var _embed_webfonts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embed-webfonts */ "../node_modules/html-to-image/es/embed-webfonts.js");
7519 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "../node_modules/html-to-image/es/util.js");
7520
7521
7522
7523
7524
7525 async function toSvg(node, options = {}) {
7526 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7527 const clonedNode = (await (0,_clone_node__WEBPACK_IMPORTED_MODULE_0__.cloneNode)(node, options, true));
7528 await (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.embedWebFonts)(clonedNode, options);
7529 await (0,_embed_images__WEBPACK_IMPORTED_MODULE_1__.embedImages)(clonedNode, options);
7530 (0,_apply_style__WEBPACK_IMPORTED_MODULE_2__.applyStyle)(clonedNode, options);
7531 const datauri = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.nodeToDataURL)(clonedNode, width, height);
7532 return datauri;
7533 }
7534 async function toCanvas(node, options = {}) {
7535 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7536 const svg = await toSvg(node, options);
7537 const img = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.createImage)(svg);
7538 const canvas = document.createElement('canvas');
7539 const context = canvas.getContext('2d');
7540 const ratio = options.pixelRatio || (0,_util__WEBPACK_IMPORTED_MODULE_4__.getPixelRatio)();
7541 const canvasWidth = options.canvasWidth || width;
7542 const canvasHeight = options.canvasHeight || height;
7543 canvas.width = canvasWidth * ratio;
7544 canvas.height = canvasHeight * ratio;
7545 if (!options.skipAutoScale) {
7546 (0,_util__WEBPACK_IMPORTED_MODULE_4__.checkCanvasDimensions)(canvas);
7547 }
7548 canvas.style.width = `${canvasWidth}`;
7549 canvas.style.height = `${canvasHeight}`;
7550 if (options.backgroundColor) {
7551 context.fillStyle = options.backgroundColor;
7552 context.fillRect(0, 0, canvas.width, canvas.height);
7553 }
7554 context.drawImage(img, 0, 0, canvas.width, canvas.height);
7555 return canvas;
7556 }
7557 async function toPixelData(node, options = {}) {
7558 const { width, height } = (0,_util__WEBPACK_IMPORTED_MODULE_4__.getImageSize)(node, options);
7559 const canvas = await toCanvas(node, options);
7560 const ctx = canvas.getContext('2d');
7561 return ctx.getImageData(0, 0, width, height).data;
7562 }
7563 async function toPng(node, options = {}) {
7564 const canvas = await toCanvas(node, options);
7565 return canvas.toDataURL();
7566 }
7567 async function toJpeg(node, options = {}) {
7568 const canvas = await toCanvas(node, options);
7569 return canvas.toDataURL('image/jpeg', options.quality || 1);
7570 }
7571 async function toBlob(node, options = {}) {
7572 const canvas = await toCanvas(node, options);
7573 const blob = await (0,_util__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas);
7574 return blob;
7575 }
7576 async function getFontEmbedCSS(node, options = {}) {
7577 return (0,_embed_webfonts__WEBPACK_IMPORTED_MODULE_3__.getWebFontCSS)(node, options);
7578 }
7579 //# sourceMappingURL=index.js.map
7580
7581 /***/ }),
7582
7583 /***/ "../node_modules/html-to-image/es/mimes.js":
7584 /*!*************************************************!*\
7585 !*** ../node_modules/html-to-image/es/mimes.js ***!
7586 \*************************************************/
7587 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7588
7589 "use strict";
7590 __webpack_require__.r(__webpack_exports__);
7591 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7592 /* harmony export */ getMimeType: () => (/* binding */ getMimeType)
7593 /* harmony export */ });
7594 const WOFF = 'application/font-woff';
7595 const JPEG = 'image/jpeg';
7596 const mimes = {
7597 woff: WOFF,
7598 woff2: WOFF,
7599 ttf: 'application/font-truetype',
7600 eot: 'application/vnd.ms-fontobject',
7601 png: 'image/png',
7602 jpg: JPEG,
7603 jpeg: JPEG,
7604 gif: 'image/gif',
7605 tiff: 'image/tiff',
7606 svg: 'image/svg+xml',
7607 webp: 'image/webp',
7608 };
7609 function getExtension(url) {
7610 const match = /\.([^./]*?)$/g.exec(url);
7611 return match ? match[1] : '';
7612 }
7613 function getMimeType(url) {
7614 const extension = getExtension(url).toLowerCase();
7615 return mimes[extension] || '';
7616 }
7617 //# sourceMappingURL=mimes.js.map
7618
7619 /***/ }),
7620
7621 /***/ "../node_modules/html-to-image/es/util.js":
7622 /*!************************************************!*\
7623 !*** ../node_modules/html-to-image/es/util.js ***!
7624 \************************************************/
7625 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7626
7627 "use strict";
7628 __webpack_require__.r(__webpack_exports__);
7629 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7630 /* harmony export */ canvasToBlob: () => (/* binding */ canvasToBlob),
7631 /* harmony export */ checkCanvasDimensions: () => (/* binding */ checkCanvasDimensions),
7632 /* harmony export */ createImage: () => (/* binding */ createImage),
7633 /* harmony export */ delay: () => (/* binding */ delay),
7634 /* harmony export */ getImageSize: () => (/* binding */ getImageSize),
7635 /* harmony export */ getPixelRatio: () => (/* binding */ getPixelRatio),
7636 /* harmony export */ getStyleProperties: () => (/* binding */ getStyleProperties),
7637 /* harmony export */ isInstanceOfElement: () => (/* binding */ isInstanceOfElement),
7638 /* harmony export */ nodeToDataURL: () => (/* binding */ nodeToDataURL),
7639 /* harmony export */ resolveUrl: () => (/* binding */ resolveUrl),
7640 /* harmony export */ svgToDataURL: () => (/* binding */ svgToDataURL),
7641 /* harmony export */ toArray: () => (/* binding */ toArray),
7642 /* harmony export */ uuid: () => (/* binding */ uuid)
7643 /* harmony export */ });
7644 function resolveUrl(url, baseUrl) {
7645 // url is absolute already
7646 if (url.match(/^[a-z]+:\/\//i)) {
7647 return url;
7648 }
7649 // url is absolute already, without protocol
7650 if (url.match(/^\/\//)) {
7651 return window.location.protocol + url;
7652 }
7653 // dataURI, mailto:, tel:, etc.
7654 if (url.match(/^[a-z]+:/i)) {
7655 return url;
7656 }
7657 const doc = document.implementation.createHTMLDocument();
7658 const base = doc.createElement('base');
7659 const a = doc.createElement('a');
7660 doc.head.appendChild(base);
7661 doc.body.appendChild(a);
7662 if (baseUrl) {
7663 base.href = baseUrl;
7664 }
7665 a.href = url;
7666 return a.href;
7667 }
7668 const uuid = (() => {
7669 // generate uuid for className of pseudo elements.
7670 // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.
7671 let counter = 0;
7672 // ref: http://stackoverflow.com/a/6248722/2519373
7673 const random = () =>
7674 // eslint-disable-next-line no-bitwise
7675 `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);
7676 return () => {
7677 counter += 1;
7678 return `u${random()}${counter}`;
7679 };
7680 })();
7681 function delay(ms) {
7682 return (args) => new Promise((resolve) => {
7683 setTimeout(() => resolve(args), ms);
7684 });
7685 }
7686 function toArray(arrayLike) {
7687 const arr = [];
7688 for (let i = 0, l = arrayLike.length; i < l; i++) {
7689 arr.push(arrayLike[i]);
7690 }
7691 return arr;
7692 }
7693 let styleProps = null;
7694 function getStyleProperties(options = {}) {
7695 if (styleProps) {
7696 return styleProps;
7697 }
7698 if (options.includeStyleProperties) {
7699 styleProps = options.includeStyleProperties;
7700 return styleProps;
7701 }
7702 styleProps = toArray(window.getComputedStyle(document.documentElement));
7703 return styleProps;
7704 }
7705 function px(node, styleProperty) {
7706 const win = node.ownerDocument.defaultView || window;
7707 const val = win.getComputedStyle(node).getPropertyValue(styleProperty);
7708 return val ? parseFloat(val.replace('px', '')) : 0;
7709 }
7710 function getNodeWidth(node) {
7711 const leftBorder = px(node, 'border-left-width');
7712 const rightBorder = px(node, 'border-right-width');
7713 return node.clientWidth + leftBorder + rightBorder;
7714 }
7715 function getNodeHeight(node) {
7716 const topBorder = px(node, 'border-top-width');
7717 const bottomBorder = px(node, 'border-bottom-width');
7718 return node.clientHeight + topBorder + bottomBorder;
7719 }
7720 function getImageSize(targetNode, options = {}) {
7721 const width = options.width || getNodeWidth(targetNode);
7722 const height = options.height || getNodeHeight(targetNode);
7723 return { width, height };
7724 }
7725 function getPixelRatio() {
7726 let ratio;
7727 let FINAL_PROCESS;
7728 try {
7729 FINAL_PROCESS = process;
7730 }
7731 catch (e) {
7732 // pass
7733 }
7734 const val = FINAL_PROCESS && FINAL_PROCESS.env
7735 ? FINAL_PROCESS.env.devicePixelRatio
7736 : null;
7737 if (val) {
7738 ratio = parseInt(val, 10);
7739 if (Number.isNaN(ratio)) {
7740 ratio = 1;
7741 }
7742 }
7743 return ratio || window.devicePixelRatio || 1;
7744 }
7745 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size
7746 const canvasDimensionLimit = 16384;
7747 function checkCanvasDimensions(canvas) {
7748 if (canvas.width > canvasDimensionLimit ||
7749 canvas.height > canvasDimensionLimit) {
7750 if (canvas.width > canvasDimensionLimit &&
7751 canvas.height > canvasDimensionLimit) {
7752 if (canvas.width > canvas.height) {
7753 canvas.height *= canvasDimensionLimit / canvas.width;
7754 canvas.width = canvasDimensionLimit;
7755 }
7756 else {
7757 canvas.width *= canvasDimensionLimit / canvas.height;
7758 canvas.height = canvasDimensionLimit;
7759 }
7760 }
7761 else if (canvas.width > canvasDimensionLimit) {
7762 canvas.height *= canvasDimensionLimit / canvas.width;
7763 canvas.width = canvasDimensionLimit;
7764 }
7765 else {
7766 canvas.width *= canvasDimensionLimit / canvas.height;
7767 canvas.height = canvasDimensionLimit;
7768 }
7769 }
7770 }
7771 function canvasToBlob(canvas, options = {}) {
7772 if (canvas.toBlob) {
7773 return new Promise((resolve) => {
7774 canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);
7775 });
7776 }
7777 return new Promise((resolve) => {
7778 const binaryString = window.atob(canvas
7779 .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)
7780 .split(',')[1]);
7781 const len = binaryString.length;
7782 const binaryArray = new Uint8Array(len);
7783 for (let i = 0; i < len; i += 1) {
7784 binaryArray[i] = binaryString.charCodeAt(i);
7785 }
7786 resolve(new Blob([binaryArray], {
7787 type: options.type ? options.type : 'image/png',
7788 }));
7789 });
7790 }
7791 function createImage(url) {
7792 return new Promise((resolve, reject) => {
7793 const img = new Image();
7794 img.onload = () => {
7795 img.decode().then(() => {
7796 requestAnimationFrame(() => resolve(img));
7797 });
7798 };
7799 img.onerror = reject;
7800 img.crossOrigin = 'anonymous';
7801 img.decoding = 'async';
7802 img.src = url;
7803 });
7804 }
7805 async function svgToDataURL(svg) {
7806 return Promise.resolve()
7807 .then(() => new XMLSerializer().serializeToString(svg))
7808 .then(encodeURIComponent)
7809 .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);
7810 }
7811 async function nodeToDataURL(node, width, height) {
7812 const xmlns = 'http://www.w3.org/2000/svg';
7813 const svg = document.createElementNS(xmlns, 'svg');
7814 const foreignObject = document.createElementNS(xmlns, 'foreignObject');
7815 svg.setAttribute('width', `${width}`);
7816 svg.setAttribute('height', `${height}`);
7817 svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
7818 foreignObject.setAttribute('width', '100%');
7819 foreignObject.setAttribute('height', '100%');
7820 foreignObject.setAttribute('x', '0');
7821 foreignObject.setAttribute('y', '0');
7822 foreignObject.setAttribute('externalResourcesRequired', 'true');
7823 svg.appendChild(foreignObject);
7824 foreignObject.appendChild(node);
7825 return svgToDataURL(svg);
7826 }
7827 const isInstanceOfElement = (node, instance) => {
7828 if (node instanceof instance)
7829 return true;
7830 const nodePrototype = Object.getPrototypeOf(node);
7831 if (nodePrototype === null)
7832 return false;
7833 return (nodePrototype.constructor.name === instance.name ||
7834 isInstanceOfElement(nodePrototype, instance));
7835 };
7836 //# sourceMappingURL=util.js.map
7837
7838 /***/ }),
7839
7840 /***/ "../node_modules/object-assign/index.js":
7841 /*!**********************************************!*\
7842 !*** ../node_modules/object-assign/index.js ***!
7843 \**********************************************/
7844 /***/ ((module) => {
7845
7846 "use strict";
7847 /*
7848 object-assign
7849 (c) Sindre Sorhus
7850 @license MIT
7851 */
7852
7853
7854 /* eslint-disable no-unused-vars */
7855 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
7856 var hasOwnProperty = Object.prototype.hasOwnProperty;
7857 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
7858
7859 function toObject(val) {
7860 if (val === null || val === undefined) {
7861 throw new TypeError('Object.assign cannot be called with null or undefined');
7862 }
7863
7864 return Object(val);
7865 }
7866
7867 function shouldUseNative() {
7868 try {
7869 if (!Object.assign) {
7870 return false;
7871 }
7872
7873 // Detect buggy property enumeration order in older V8 versions.
7874
7875 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
7876 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
7877 test1[5] = 'de';
7878 if (Object.getOwnPropertyNames(test1)[0] === '5') {
7879 return false;
7880 }
7881
7882 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7883 var test2 = {};
7884 for (var i = 0; i < 10; i++) {
7885 test2['_' + String.fromCharCode(i)] = i;
7886 }
7887 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
7888 return test2[n];
7889 });
7890 if (order2.join('') !== '0123456789') {
7891 return false;
7892 }
7893
7894 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
7895 var test3 = {};
7896 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
7897 test3[letter] = letter;
7898 });
7899 if (Object.keys(Object.assign({}, test3)).join('') !==
7900 'abcdefghijklmnopqrst') {
7901 return false;
7902 }
7903
7904 return true;
7905 } catch (err) {
7906 // We don't expect any of the above to throw, but better to be safe.
7907 return false;
7908 }
7909 }
7910
7911 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
7912 var from;
7913 var to = toObject(target);
7914 var symbols;
7915
7916 for (var s = 1; s < arguments.length; s++) {
7917 from = Object(arguments[s]);
7918
7919 for (var key in from) {
7920 if (hasOwnProperty.call(from, key)) {
7921 to[key] = from[key];
7922 }
7923 }
7924
7925 if (getOwnPropertySymbols) {
7926 symbols = getOwnPropertySymbols(from);
7927 for (var i = 0; i < symbols.length; i++) {
7928 if (propIsEnumerable.call(from, symbols[i])) {
7929 to[symbols[i]] = from[symbols[i]];
7930 }
7931 }
7932 }
7933 }
7934
7935 return to;
7936 };
7937
7938
7939 /***/ }),
7940
7941 /***/ "../node_modules/prop-types/checkPropTypes.js":
7942 /*!****************************************************!*\
7943 !*** ../node_modules/prop-types/checkPropTypes.js ***!
7944 \****************************************************/
7945 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7946
7947 "use strict";
7948 /**
7949 * Copyright (c) 2013-present, Facebook, Inc.
7950 *
7951 * This source code is licensed under the MIT license found in the
7952 * LICENSE file in the root directory of this source tree.
7953 */
7954
7955
7956
7957 var printWarning = function() {};
7958
7959 if (true) {
7960 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
7961 var loggedTypeFailures = {};
7962 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
7963
7964 printWarning = function(text) {
7965 var message = 'Warning: ' + text;
7966 if (typeof console !== 'undefined') {
7967 console.error(message);
7968 }
7969 try {
7970 // --- Welcome to debugging React ---
7971 // This error was thrown as a convenience so that you can use this stack
7972 // to find the callsite that caused this warning to fire.
7973 throw new Error(message);
7974 } catch (x) { /**/ }
7975 };
7976 }
7977
7978 /**
7979 * Assert that the values match with the type specs.
7980 * Error messages are memorized and will only be shown once.
7981 *
7982 * @param {object} typeSpecs Map of name to a ReactPropType
7983 * @param {object} values Runtime values that need to be type-checked
7984 * @param {string} location e.g. "prop", "context", "child context"
7985 * @param {string} componentName Name of the component for error messages.
7986 * @param {?Function} getStack Returns the component stack.
7987 * @private
7988 */
7989 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
7990 if (true) {
7991 for (var typeSpecName in typeSpecs) {
7992 if (has(typeSpecs, typeSpecName)) {
7993 var error;
7994 // Prop type validation may throw. In case they do, we don't want to
7995 // fail the render phase where it didn't fail before. So we log it.
7996 // After these have been cleaned up, we'll let them throw.
7997 try {
7998 // This is intentionally an invariant that gets caught. It's the same
7999 // behavior as without this statement except with a better message.
8000 if (typeof typeSpecs[typeSpecName] !== 'function') {
8001 var err = Error(
8002 (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
8003 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
8004 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
8005 );
8006 err.name = 'Invariant Violation';
8007 throw err;
8008 }
8009 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8010 } catch (ex) {
8011 error = ex;
8012 }
8013 if (error && !(error instanceof Error)) {
8014 printWarning(
8015 (componentName || 'React class') + ': type specification of ' +
8016 location + ' `' + typeSpecName + '` is invalid; the type checker ' +
8017 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
8018 'You may have forgotten to pass an argument to the type checker ' +
8019 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
8020 'shape all require an argument).'
8021 );
8022 }
8023 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8024 // Only monitor this failure once because there tends to be a lot of the
8025 // same error.
8026 loggedTypeFailures[error.message] = true;
8027
8028 var stack = getStack ? getStack() : '';
8029
8030 printWarning(
8031 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
8032 );
8033 }
8034 }
8035 }
8036 }
8037 }
8038
8039 /**
8040 * Resets warning cache when testing.
8041 *
8042 * @private
8043 */
8044 checkPropTypes.resetWarningCache = function() {
8045 if (true) {
8046 loggedTypeFailures = {};
8047 }
8048 }
8049
8050 module.exports = checkPropTypes;
8051
8052
8053 /***/ }),
8054
8055 /***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
8056 /*!*************************************************************!*\
8057 !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
8058 \*************************************************************/
8059 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8060
8061 "use strict";
8062 /**
8063 * Copyright (c) 2013-present, Facebook, Inc.
8064 *
8065 * This source code is licensed under the MIT license found in the
8066 * LICENSE file in the root directory of this source tree.
8067 */
8068
8069
8070
8071 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8072 var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
8073
8074 var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
8075 var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
8076 var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
8077
8078 var printWarning = function() {};
8079
8080 if (true) {
8081 printWarning = function(text) {
8082 var message = 'Warning: ' + text;
8083 if (typeof console !== 'undefined') {
8084 console.error(message);
8085 }
8086 try {
8087 // --- Welcome to debugging React ---
8088 // This error was thrown as a convenience so that you can use this stack
8089 // to find the callsite that caused this warning to fire.
8090 throw new Error(message);
8091 } catch (x) {}
8092 };
8093 }
8094
8095 function emptyFunctionThatReturnsNull() {
8096 return null;
8097 }
8098
8099 module.exports = function(isValidElement, throwOnDirectAccess) {
8100 /* global Symbol */
8101 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8102 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8103
8104 /**
8105 * Returns the iterator method function contained on the iterable object.
8106 *
8107 * Be sure to invoke the function with the iterable as context:
8108 *
8109 * var iteratorFn = getIteratorFn(myIterable);
8110 * if (iteratorFn) {
8111 * var iterator = iteratorFn.call(myIterable);
8112 * ...
8113 * }
8114 *
8115 * @param {?object} maybeIterable
8116 * @return {?function}
8117 */
8118 function getIteratorFn(maybeIterable) {
8119 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8120 if (typeof iteratorFn === 'function') {
8121 return iteratorFn;
8122 }
8123 }
8124
8125 /**
8126 * Collection of methods that allow declaration and validation of props that are
8127 * supplied to React components. Example usage:
8128 *
8129 * var Props = require('ReactPropTypes');
8130 * var MyArticle = React.createClass({
8131 * propTypes: {
8132 * // An optional string prop named "description".
8133 * description: Props.string,
8134 *
8135 * // A required enum prop named "category".
8136 * category: Props.oneOf(['News','Photos']).isRequired,
8137 *
8138 * // A prop named "dialog" that requires an instance of Dialog.
8139 * dialog: Props.instanceOf(Dialog).isRequired
8140 * },
8141 * render: function() { ... }
8142 * });
8143 *
8144 * A more formal specification of how these methods are used:
8145 *
8146 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8147 * decl := ReactPropTypes.{type}(.isRequired)?
8148 *
8149 * Each and every declaration produces a function with the same signature. This
8150 * allows the creation of custom validation functions. For example:
8151 *
8152 * var MyLink = React.createClass({
8153 * propTypes: {
8154 * // An optional string or URI prop named "href".
8155 * href: function(props, propName, componentName) {
8156 * var propValue = props[propName];
8157 * if (propValue != null && typeof propValue !== 'string' &&
8158 * !(propValue instanceof URI)) {
8159 * return new Error(
8160 * 'Expected a string or an URI for ' + propName + ' in ' +
8161 * componentName
8162 * );
8163 * }
8164 * }
8165 * },
8166 * render: function() {...}
8167 * });
8168 *
8169 * @internal
8170 */
8171
8172 var ANONYMOUS = '<<anonymous>>';
8173
8174 // Important!
8175 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8176 var ReactPropTypes = {
8177 array: createPrimitiveTypeChecker('array'),
8178 bigint: createPrimitiveTypeChecker('bigint'),
8179 bool: createPrimitiveTypeChecker('boolean'),
8180 func: createPrimitiveTypeChecker('function'),
8181 number: createPrimitiveTypeChecker('number'),
8182 object: createPrimitiveTypeChecker('object'),
8183 string: createPrimitiveTypeChecker('string'),
8184 symbol: createPrimitiveTypeChecker('symbol'),
8185
8186 any: createAnyTypeChecker(),
8187 arrayOf: createArrayOfTypeChecker,
8188 element: createElementTypeChecker(),
8189 elementType: createElementTypeTypeChecker(),
8190 instanceOf: createInstanceTypeChecker,
8191 node: createNodeChecker(),
8192 objectOf: createObjectOfTypeChecker,
8193 oneOf: createEnumTypeChecker,
8194 oneOfType: createUnionTypeChecker,
8195 shape: createShapeTypeChecker,
8196 exact: createStrictShapeTypeChecker,
8197 };
8198
8199 /**
8200 * inlined Object.is polyfill to avoid requiring consumers ship their own
8201 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8202 */
8203 /*eslint-disable no-self-compare*/
8204 function is(x, y) {
8205 // SameValue algorithm
8206 if (x === y) {
8207 // Steps 1-5, 7-10
8208 // Steps 6.b-6.e: +0 != -0
8209 return x !== 0 || 1 / x === 1 / y;
8210 } else {
8211 // Step 6.a: NaN == NaN
8212 return x !== x && y !== y;
8213 }
8214 }
8215 /*eslint-enable no-self-compare*/
8216
8217 /**
8218 * We use an Error-like object for backward compatibility as people may call
8219 * PropTypes directly and inspect their output. However, we don't use real
8220 * Errors anymore. We don't inspect their stack anyway, and creating them
8221 * is prohibitively expensive if they are created too often, such as what
8222 * happens in oneOfType() for any type before the one that matched.
8223 */
8224 function PropTypeError(message, data) {
8225 this.message = message;
8226 this.data = data && typeof data === 'object' ? data: {};
8227 this.stack = '';
8228 }
8229 // Make `instanceof Error` still work for returned errors.
8230 PropTypeError.prototype = Error.prototype;
8231
8232 function createChainableTypeChecker(validate) {
8233 if (true) {
8234 var manualPropTypeCallCache = {};
8235 var manualPropTypeWarningCount = 0;
8236 }
8237 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8238 componentName = componentName || ANONYMOUS;
8239 propFullName = propFullName || propName;
8240
8241 if (secret !== ReactPropTypesSecret) {
8242 if (throwOnDirectAccess) {
8243 // New behavior only for users of `prop-types` package
8244 var err = new Error(
8245 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8246 'Use `PropTypes.checkPropTypes()` to call them. ' +
8247 'Read more at http://fb.me/use-check-prop-types'
8248 );
8249 err.name = 'Invariant Violation';
8250 throw err;
8251 } else if ( true && typeof console !== 'undefined') {
8252 // Old behavior for people using React.PropTypes
8253 var cacheKey = componentName + ':' + propName;
8254 if (
8255 !manualPropTypeCallCache[cacheKey] &&
8256 // Avoid spamming the console because they are often not actionable except for lib authors
8257 manualPropTypeWarningCount < 3
8258 ) {
8259 printWarning(
8260 'You are manually calling a React.PropTypes validation ' +
8261 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
8262 'and will throw in the standalone `prop-types` package. ' +
8263 'You may be seeing this warning due to a third-party PropTypes ' +
8264 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
8265 );
8266 manualPropTypeCallCache[cacheKey] = true;
8267 manualPropTypeWarningCount++;
8268 }
8269 }
8270 }
8271 if (props[propName] == null) {
8272 if (isRequired) {
8273 if (props[propName] === null) {
8274 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8275 }
8276 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8277 }
8278 return null;
8279 } else {
8280 return validate(props, propName, componentName, location, propFullName);
8281 }
8282 }
8283
8284 var chainedCheckType = checkType.bind(null, false);
8285 chainedCheckType.isRequired = checkType.bind(null, true);
8286
8287 return chainedCheckType;
8288 }
8289
8290 function createPrimitiveTypeChecker(expectedType) {
8291 function validate(props, propName, componentName, location, propFullName, secret) {
8292 var propValue = props[propName];
8293 var propType = getPropType(propValue);
8294 if (propType !== expectedType) {
8295 // `propValue` being instance of, say, date/regexp, pass the 'object'
8296 // check, but we can offer a more precise error message here rather than
8297 // 'of type `object`'.
8298 var preciseType = getPreciseType(propValue);
8299
8300 return new PropTypeError(
8301 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
8302 {expectedType: expectedType}
8303 );
8304 }
8305 return null;
8306 }
8307 return createChainableTypeChecker(validate);
8308 }
8309
8310 function createAnyTypeChecker() {
8311 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
8312 }
8313
8314 function createArrayOfTypeChecker(typeChecker) {
8315 function validate(props, propName, componentName, location, propFullName) {
8316 if (typeof typeChecker !== 'function') {
8317 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8318 }
8319 var propValue = props[propName];
8320 if (!Array.isArray(propValue)) {
8321 var propType = getPropType(propValue);
8322 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8323 }
8324 for (var i = 0; i < propValue.length; i++) {
8325 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8326 if (error instanceof Error) {
8327 return error;
8328 }
8329 }
8330 return null;
8331 }
8332 return createChainableTypeChecker(validate);
8333 }
8334
8335 function createElementTypeChecker() {
8336 function validate(props, propName, componentName, location, propFullName) {
8337 var propValue = props[propName];
8338 if (!isValidElement(propValue)) {
8339 var propType = getPropType(propValue);
8340 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8341 }
8342 return null;
8343 }
8344 return createChainableTypeChecker(validate);
8345 }
8346
8347 function createElementTypeTypeChecker() {
8348 function validate(props, propName, componentName, location, propFullName) {
8349 var propValue = props[propName];
8350 if (!ReactIs.isValidElementType(propValue)) {
8351 var propType = getPropType(propValue);
8352 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
8353 }
8354 return null;
8355 }
8356 return createChainableTypeChecker(validate);
8357 }
8358
8359 function createInstanceTypeChecker(expectedClass) {
8360 function validate(props, propName, componentName, location, propFullName) {
8361 if (!(props[propName] instanceof expectedClass)) {
8362 var expectedClassName = expectedClass.name || ANONYMOUS;
8363 var actualClassName = getClassName(props[propName]);
8364 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8365 }
8366 return null;
8367 }
8368 return createChainableTypeChecker(validate);
8369 }
8370
8371 function createEnumTypeChecker(expectedValues) {
8372 if (!Array.isArray(expectedValues)) {
8373 if (true) {
8374 if (arguments.length > 1) {
8375 printWarning(
8376 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
8377 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
8378 );
8379 } else {
8380 printWarning('Invalid argument supplied to oneOf, expected an array.');
8381 }
8382 }
8383 return emptyFunctionThatReturnsNull;
8384 }
8385
8386 function validate(props, propName, componentName, location, propFullName) {
8387 var propValue = props[propName];
8388 for (var i = 0; i < expectedValues.length; i++) {
8389 if (is(propValue, expectedValues[i])) {
8390 return null;
8391 }
8392 }
8393
8394 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
8395 var type = getPreciseType(value);
8396 if (type === 'symbol') {
8397 return String(value);
8398 }
8399 return value;
8400 });
8401 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8402 }
8403 return createChainableTypeChecker(validate);
8404 }
8405
8406 function createObjectOfTypeChecker(typeChecker) {
8407 function validate(props, propName, componentName, location, propFullName) {
8408 if (typeof typeChecker !== 'function') {
8409 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8410 }
8411 var propValue = props[propName];
8412 var propType = getPropType(propValue);
8413 if (propType !== 'object') {
8414 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8415 }
8416 for (var key in propValue) {
8417 if (has(propValue, key)) {
8418 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8419 if (error instanceof Error) {
8420 return error;
8421 }
8422 }
8423 }
8424 return null;
8425 }
8426 return createChainableTypeChecker(validate);
8427 }
8428
8429 function createUnionTypeChecker(arrayOfTypeCheckers) {
8430 if (!Array.isArray(arrayOfTypeCheckers)) {
8431 true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
8432 return emptyFunctionThatReturnsNull;
8433 }
8434
8435 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8436 var checker = arrayOfTypeCheckers[i];
8437 if (typeof checker !== 'function') {
8438 printWarning(
8439 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8440 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
8441 );
8442 return emptyFunctionThatReturnsNull;
8443 }
8444 }
8445
8446 function validate(props, propName, componentName, location, propFullName) {
8447 var expectedTypes = [];
8448 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8449 var checker = arrayOfTypeCheckers[i];
8450 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
8451 if (checkerResult == null) {
8452 return null;
8453 }
8454 if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
8455 expectedTypes.push(checkerResult.data.expectedType);
8456 }
8457 }
8458 var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
8459 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
8460 }
8461 return createChainableTypeChecker(validate);
8462 }
8463
8464 function createNodeChecker() {
8465 function validate(props, propName, componentName, location, propFullName) {
8466 if (!isNode(props[propName])) {
8467 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8468 }
8469 return null;
8470 }
8471 return createChainableTypeChecker(validate);
8472 }
8473
8474 function invalidValidatorError(componentName, location, propFullName, key, type) {
8475 return new PropTypeError(
8476 (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
8477 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
8478 );
8479 }
8480
8481 function createShapeTypeChecker(shapeTypes) {
8482 function validate(props, propName, componentName, location, propFullName) {
8483 var propValue = props[propName];
8484 var propType = getPropType(propValue);
8485 if (propType !== 'object') {
8486 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8487 }
8488 for (var key in shapeTypes) {
8489 var checker = shapeTypes[key];
8490 if (typeof checker !== 'function') {
8491 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8492 }
8493 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8494 if (error) {
8495 return error;
8496 }
8497 }
8498 return null;
8499 }
8500 return createChainableTypeChecker(validate);
8501 }
8502
8503 function createStrictShapeTypeChecker(shapeTypes) {
8504 function validate(props, propName, componentName, location, propFullName) {
8505 var propValue = props[propName];
8506 var propType = getPropType(propValue);
8507 if (propType !== 'object') {
8508 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8509 }
8510 // We need to check all keys in case some are required but missing from props.
8511 var allKeys = assign({}, props[propName], shapeTypes);
8512 for (var key in allKeys) {
8513 var checker = shapeTypes[key];
8514 if (has(shapeTypes, key) && typeof checker !== 'function') {
8515 return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
8516 }
8517 if (!checker) {
8518 return new PropTypeError(
8519 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8520 '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8521 '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8522 );
8523 }
8524 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8525 if (error) {
8526 return error;
8527 }
8528 }
8529 return null;
8530 }
8531
8532 return createChainableTypeChecker(validate);
8533 }
8534
8535 function isNode(propValue) {
8536 switch (typeof propValue) {
8537 case 'number':
8538 case 'string':
8539 case 'undefined':
8540 return true;
8541 case 'boolean':
8542 return !propValue;
8543 case 'object':
8544 if (Array.isArray(propValue)) {
8545 return propValue.every(isNode);
8546 }
8547 if (propValue === null || isValidElement(propValue)) {
8548 return true;
8549 }
8550
8551 var iteratorFn = getIteratorFn(propValue);
8552 if (iteratorFn) {
8553 var iterator = iteratorFn.call(propValue);
8554 var step;
8555 if (iteratorFn !== propValue.entries) {
8556 while (!(step = iterator.next()).done) {
8557 if (!isNode(step.value)) {
8558 return false;
8559 }
8560 }
8561 } else {
8562 // Iterator will provide entry [k,v] tuples rather than values.
8563 while (!(step = iterator.next()).done) {
8564 var entry = step.value;
8565 if (entry) {
8566 if (!isNode(entry[1])) {
8567 return false;
8568 }
8569 }
8570 }
8571 }
8572 } else {
8573 return false;
8574 }
8575
8576 return true;
8577 default:
8578 return false;
8579 }
8580 }
8581
8582 function isSymbol(propType, propValue) {
8583 // Native Symbol.
8584 if (propType === 'symbol') {
8585 return true;
8586 }
8587
8588 // falsy value can't be a Symbol
8589 if (!propValue) {
8590 return false;
8591 }
8592
8593 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8594 if (propValue['@@toStringTag'] === 'Symbol') {
8595 return true;
8596 }
8597
8598 // Fallback for non-spec compliant Symbols which are polyfilled.
8599 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8600 return true;
8601 }
8602
8603 return false;
8604 }
8605
8606 // Equivalent of `typeof` but with special handling for array and regexp.
8607 function getPropType(propValue) {
8608 var propType = typeof propValue;
8609 if (Array.isArray(propValue)) {
8610 return 'array';
8611 }
8612 if (propValue instanceof RegExp) {
8613 // Old webkits (at least until Android 4.0) return 'function' rather than
8614 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8615 // passes PropTypes.object.
8616 return 'object';
8617 }
8618 if (isSymbol(propType, propValue)) {
8619 return 'symbol';
8620 }
8621 return propType;
8622 }
8623
8624 // This handles more types than `getPropType`. Only used for error messages.
8625 // See `createPrimitiveTypeChecker`.
8626 function getPreciseType(propValue) {
8627 if (typeof propValue === 'undefined' || propValue === null) {
8628 return '' + propValue;
8629 }
8630 var propType = getPropType(propValue);
8631 if (propType === 'object') {
8632 if (propValue instanceof Date) {
8633 return 'date';
8634 } else if (propValue instanceof RegExp) {
8635 return 'regexp';
8636 }
8637 }
8638 return propType;
8639 }
8640
8641 // Returns a string that is postfixed to a warning about an invalid type.
8642 // For example, "undefined" or "of type array"
8643 function getPostfixForTypeWarning(value) {
8644 var type = getPreciseType(value);
8645 switch (type) {
8646 case 'array':
8647 case 'object':
8648 return 'an ' + type;
8649 case 'boolean':
8650 case 'date':
8651 case 'regexp':
8652 return 'a ' + type;
8653 default:
8654 return type;
8655 }
8656 }
8657
8658 // Returns class name of the object, if any.
8659 function getClassName(propValue) {
8660 if (!propValue.constructor || !propValue.constructor.name) {
8661 return ANONYMOUS;
8662 }
8663 return propValue.constructor.name;
8664 }
8665
8666 ReactPropTypes.checkPropTypes = checkPropTypes;
8667 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
8668 ReactPropTypes.PropTypes = ReactPropTypes;
8669
8670 return ReactPropTypes;
8671 };
8672
8673
8674 /***/ }),
8675
8676 /***/ "../node_modules/prop-types/index.js":
8677 /*!*******************************************!*\
8678 !*** ../node_modules/prop-types/index.js ***!
8679 \*******************************************/
8680 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8681
8682 /**
8683 * Copyright (c) 2013-present, Facebook, Inc.
8684 *
8685 * This source code is licensed under the MIT license found in the
8686 * LICENSE file in the root directory of this source tree.
8687 */
8688
8689 if (true) {
8690 var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
8691
8692 // By explicitly using `prop-types` you are opting into new development behavior.
8693 // http://fb.me/prop-types-in-prod
8694 var throwOnDirectAccess = true;
8695 module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
8696 } else // removed by dead control flow
8697 {}
8698
8699
8700 /***/ }),
8701
8702 /***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
8703 /*!**************************************************************!*\
8704 !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8705 \**************************************************************/
8706 /***/ ((module) => {
8707
8708 "use strict";
8709 /**
8710 * Copyright (c) 2013-present, Facebook, Inc.
8711 *
8712 * This source code is licensed under the MIT license found in the
8713 * LICENSE file in the root directory of this source tree.
8714 */
8715
8716
8717
8718 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8719
8720 module.exports = ReactPropTypesSecret;
8721
8722
8723 /***/ }),
8724
8725 /***/ "../node_modules/prop-types/lib/has.js":
8726 /*!*********************************************!*\
8727 !*** ../node_modules/prop-types/lib/has.js ***!
8728 \*********************************************/
8729 /***/ ((module) => {
8730
8731 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
8732
8733
8734 /***/ }),
8735
8736 /***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
8737 /*!************************************************************************************!*\
8738 !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
8739 \************************************************************************************/
8740 /***/ ((__unused_webpack_module, exports) => {
8741
8742 "use strict";
8743 /** @license React v16.13.1
8744 * react-is.development.js
8745 *
8746 * Copyright (c) Facebook, Inc. and its affiliates.
8747 *
8748 * This source code is licensed under the MIT license found in the
8749 * LICENSE file in the root directory of this source tree.
8750 */
8751
8752
8753
8754
8755
8756 if (true) {
8757 (function() {
8758 'use strict';
8759
8760 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
8761 // nor polyfill, then a plain number is used for performance.
8762 var hasSymbol = typeof Symbol === 'function' && Symbol.for;
8763 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
8764 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
8765 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
8766 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
8767 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
8768 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
8769 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
8770 // (unstable) APIs that have been removed. Can we remove the symbols?
8771
8772 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
8773 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
8774 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
8775 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
8776 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
8777 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
8778 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
8779 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
8780 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
8781 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
8782 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
8783
8784 function isValidElementType(type) {
8785 return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
8786 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);
8787 }
8788
8789 function typeOf(object) {
8790 if (typeof object === 'object' && object !== null) {
8791 var $$typeof = object.$$typeof;
8792
8793 switch ($$typeof) {
8794 case REACT_ELEMENT_TYPE:
8795 var type = object.type;
8796
8797 switch (type) {
8798 case REACT_ASYNC_MODE_TYPE:
8799 case REACT_CONCURRENT_MODE_TYPE:
8800 case REACT_FRAGMENT_TYPE:
8801 case REACT_PROFILER_TYPE:
8802 case REACT_STRICT_MODE_TYPE:
8803 case REACT_SUSPENSE_TYPE:
8804 return type;
8805
8806 default:
8807 var $$typeofType = type && type.$$typeof;
8808
8809 switch ($$typeofType) {
8810 case REACT_CONTEXT_TYPE:
8811 case REACT_FORWARD_REF_TYPE:
8812 case REACT_LAZY_TYPE:
8813 case REACT_MEMO_TYPE:
8814 case REACT_PROVIDER_TYPE:
8815 return $$typeofType;
8816
8817 default:
8818 return $$typeof;
8819 }
8820
8821 }
8822
8823 case REACT_PORTAL_TYPE:
8824 return $$typeof;
8825 }
8826 }
8827
8828 return undefined;
8829 } // AsyncMode is deprecated along with isAsyncMode
8830
8831 var AsyncMode = REACT_ASYNC_MODE_TYPE;
8832 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
8833 var ContextConsumer = REACT_CONTEXT_TYPE;
8834 var ContextProvider = REACT_PROVIDER_TYPE;
8835 var Element = REACT_ELEMENT_TYPE;
8836 var ForwardRef = REACT_FORWARD_REF_TYPE;
8837 var Fragment = REACT_FRAGMENT_TYPE;
8838 var Lazy = REACT_LAZY_TYPE;
8839 var Memo = REACT_MEMO_TYPE;
8840 var Portal = REACT_PORTAL_TYPE;
8841 var Profiler = REACT_PROFILER_TYPE;
8842 var StrictMode = REACT_STRICT_MODE_TYPE;
8843 var Suspense = REACT_SUSPENSE_TYPE;
8844 var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
8845
8846 function isAsyncMode(object) {
8847 {
8848 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
8849 hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
8850
8851 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.');
8852 }
8853 }
8854
8855 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
8856 }
8857 function isConcurrentMode(object) {
8858 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
8859 }
8860 function isContextConsumer(object) {
8861 return typeOf(object) === REACT_CONTEXT_TYPE;
8862 }
8863 function isContextProvider(object) {
8864 return typeOf(object) === REACT_PROVIDER_TYPE;
8865 }
8866 function isElement(object) {
8867 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8868 }
8869 function isForwardRef(object) {
8870 return typeOf(object) === REACT_FORWARD_REF_TYPE;
8871 }
8872 function isFragment(object) {
8873 return typeOf(object) === REACT_FRAGMENT_TYPE;
8874 }
8875 function isLazy(object) {
8876 return typeOf(object) === REACT_LAZY_TYPE;
8877 }
8878 function isMemo(object) {
8879 return typeOf(object) === REACT_MEMO_TYPE;
8880 }
8881 function isPortal(object) {
8882 return typeOf(object) === REACT_PORTAL_TYPE;
8883 }
8884 function isProfiler(object) {
8885 return typeOf(object) === REACT_PROFILER_TYPE;
8886 }
8887 function isStrictMode(object) {
8888 return typeOf(object) === REACT_STRICT_MODE_TYPE;
8889 }
8890 function isSuspense(object) {
8891 return typeOf(object) === REACT_SUSPENSE_TYPE;
8892 }
8893
8894 exports.AsyncMode = AsyncMode;
8895 exports.ConcurrentMode = ConcurrentMode;
8896 exports.ContextConsumer = ContextConsumer;
8897 exports.ContextProvider = ContextProvider;
8898 exports.Element = Element;
8899 exports.ForwardRef = ForwardRef;
8900 exports.Fragment = Fragment;
8901 exports.Lazy = Lazy;
8902 exports.Memo = Memo;
8903 exports.Portal = Portal;
8904 exports.Profiler = Profiler;
8905 exports.StrictMode = StrictMode;
8906 exports.Suspense = Suspense;
8907 exports.isAsyncMode = isAsyncMode;
8908 exports.isConcurrentMode = isConcurrentMode;
8909 exports.isContextConsumer = isContextConsumer;
8910 exports.isContextProvider = isContextProvider;
8911 exports.isElement = isElement;
8912 exports.isForwardRef = isForwardRef;
8913 exports.isFragment = isFragment;
8914 exports.isLazy = isLazy;
8915 exports.isMemo = isMemo;
8916 exports.isPortal = isPortal;
8917 exports.isProfiler = isProfiler;
8918 exports.isStrictMode = isStrictMode;
8919 exports.isSuspense = isSuspense;
8920 exports.isValidElementType = isValidElementType;
8921 exports.typeOf = typeOf;
8922 })();
8923 }
8924
8925
8926 /***/ }),
8927
8928 /***/ "../node_modules/prop-types/node_modules/react-is/index.js":
8929 /*!*****************************************************************!*\
8930 !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
8931 \*****************************************************************/
8932 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8933
8934 "use strict";
8935
8936
8937 if (false) // removed by dead control flow
8938 {} else {
8939 module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
8940 }
8941
8942
8943 /***/ }),
8944
8945 /***/ "../node_modules/react-dom/client.js":
8946 /*!*******************************************!*\
8947 !*** ../node_modules/react-dom/client.js ***!
8948 \*******************************************/
8949 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8950
8951 "use strict";
8952
8953
8954 var m = __webpack_require__(/*! react-dom */ "react-dom");
8955 if (false) // removed by dead control flow
8956 {} else {
8957 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
8958 exports.createRoot = function(c, o) {
8959 i.usingClientEntryPoint = true;
8960 try {
8961 return m.createRoot(c, o);
8962 } finally {
8963 i.usingClientEntryPoint = false;
8964 }
8965 };
8966 exports.hydrateRoot = function(c, h, o) {
8967 i.usingClientEntryPoint = true;
8968 try {
8969 return m.hydrateRoot(c, h, o);
8970 } finally {
8971 i.usingClientEntryPoint = false;
8972 }
8973 };
8974 }
8975
8976
8977 /***/ }),
8978
8979 /***/ "../node_modules/react-draggable/build/cjs/Draggable.js":
8980 /*!**************************************************************!*\
8981 !*** ../node_modules/react-draggable/build/cjs/Draggable.js ***!
8982 \**************************************************************/
8983 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8984
8985 "use strict";
8986
8987
8988 Object.defineProperty(exports, "__esModule", ({
8989 value: true
8990 }));
8991 Object.defineProperty(exports, "DraggableCore", ({
8992 enumerable: true,
8993 get: function () {
8994 return _DraggableCore.default;
8995 }
8996 }));
8997 exports["default"] = void 0;
8998 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
8999 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9000 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9001 var _clsx = _interopRequireDefault(__webpack_require__(/*! clsx */ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js"));
9002 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9003 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9004 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9005 var _DraggableCore = _interopRequireDefault(__webpack_require__(/*! ./DraggableCore */ "../node_modules/react-draggable/build/cjs/DraggableCore.js"));
9006 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9007 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9008 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); }
9009 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; }
9010 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); }
9011 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; }
9012 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9013 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';*/
9014 /*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/
9015 /*:: import type {Element as ReactElement} from 'react';*/
9016 /*:: type DraggableState = {
9017 dragging: boolean,
9018 dragged: boolean,
9019 x: number, y: number,
9020 slackX: number, slackY: number,
9021 isElementSVG: boolean,
9022 prevPropsPosition: ?ControlPosition,
9023 };*/
9024 /*:: export type DraggableDefaultProps = {
9025 ...DraggableCoreDefaultProps,
9026 axis: 'both' | 'x' | 'y' | 'none',
9027 bounds: Bounds | string | false,
9028 defaultClassName: string,
9029 defaultClassNameDragging: string,
9030 defaultClassNameDragged: string,
9031 defaultPosition: ControlPosition,
9032 scale: number,
9033 };*/
9034 /*:: export type DraggableProps = {
9035 ...DraggableCoreProps,
9036 ...DraggableDefaultProps,
9037 positionOffset: PositionOffsetControlPosition,
9038 position: ControlPosition,
9039 };*/
9040 //
9041 // Define <Draggable>
9042 //
9043 class Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{
9044 // React 16.3+
9045 // Arity (props, state)
9046 static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{
9047 let {
9048 position
9049 } /*: DraggableProps*/ = _ref /*: DraggableProps*/;
9050 let {
9051 prevPropsPosition
9052 } /*: DraggableState*/ = _ref2 /*: DraggableState*/;
9053 // Set x/y if a new position is provided in props that is different than the previous.
9054 if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {
9055 (0, _log.default)('Draggable: getDerivedStateFromProps %j', {
9056 position,
9057 prevPropsPosition
9058 });
9059 return {
9060 x: position.x,
9061 y: position.y,
9062 prevPropsPosition: {
9063 ...position
9064 }
9065 };
9066 }
9067 return null;
9068 }
9069 constructor(props /*: DraggableProps*/) {
9070 super(props);
9071 _defineProperty(this, "onDragStart", (e, coreData) => {
9072 (0, _log.default)('Draggable: onDragStart: %j', coreData);
9073
9074 // Short-circuit if user's callback killed it.
9075 const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));
9076 // Kills start event on core as well, so move handlers are never bound.
9077 if (shouldStart === false) return false;
9078 this.setState({
9079 dragging: true,
9080 dragged: true
9081 });
9082 });
9083 _defineProperty(this, "onDrag", (e, coreData) => {
9084 if (!this.state.dragging) return false;
9085 (0, _log.default)('Draggable: onDrag: %j', coreData);
9086 const uiData = (0, _positionFns.createDraggableData)(this, coreData);
9087 const newState = {
9088 x: uiData.x,
9089 y: uiData.y,
9090 slackX: 0,
9091 slackY: 0
9092 };
9093
9094 // Keep within bounds.
9095 if (this.props.bounds) {
9096 // Save original x and y.
9097 const {
9098 x,
9099 y
9100 } = newState;
9101
9102 // Add slack to the values used to calculate bound position. This will ensure that if
9103 // we start removing slack, the element won't react to it right away until it's been
9104 // completely removed.
9105 newState.x += this.state.slackX;
9106 newState.y += this.state.slackY;
9107
9108 // Get bound position. This will ceil/floor the x and y within the boundaries.
9109 const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);
9110 newState.x = newStateX;
9111 newState.y = newStateY;
9112
9113 // Recalculate slack by noting how much was shaved by the boundPosition handler.
9114 newState.slackX = this.state.slackX + (x - newState.x);
9115 newState.slackY = this.state.slackY + (y - newState.y);
9116
9117 // Update the event we fire to reflect what really happened after bounds took effect.
9118 uiData.x = newState.x;
9119 uiData.y = newState.y;
9120 uiData.deltaX = newState.x - this.state.x;
9121 uiData.deltaY = newState.y - this.state.y;
9122 }
9123
9124 // Short-circuit if user's callback killed it.
9125 const shouldUpdate = this.props.onDrag(e, uiData);
9126 if (shouldUpdate === false) return false;
9127 this.setState(newState);
9128 });
9129 _defineProperty(this, "onDragStop", (e, coreData) => {
9130 if (!this.state.dragging) return false;
9131
9132 // Short-circuit if user's callback killed it.
9133 const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));
9134 if (shouldContinue === false) return false;
9135 (0, _log.default)('Draggable: onDragStop: %j', coreData);
9136 const newState /*: Partial<DraggableState>*/ = {
9137 dragging: false,
9138 slackX: 0,
9139 slackY: 0
9140 };
9141
9142 // If this is a controlled component, the result of this operation will be to
9143 // revert back to the old position. We expect a handler on `onDragStop`, at the least.
9144 const controlled = Boolean(this.props.position);
9145 if (controlled) {
9146 const {
9147 x,
9148 y
9149 } = this.props.position;
9150 newState.x = x;
9151 newState.y = y;
9152 }
9153 this.setState(newState);
9154 });
9155 this.state = {
9156 // Whether or not we are currently dragging.
9157 dragging: false,
9158 // Whether or not we have been dragged before.
9159 dragged: false,
9160 // Current transform x and y.
9161 x: props.position ? props.position.x : props.defaultPosition.x,
9162 y: props.position ? props.position.y : props.defaultPosition.y,
9163 prevPropsPosition: {
9164 ...props.position
9165 },
9166 // Used for compensating for out-of-bounds drags
9167 slackX: 0,
9168 slackY: 0,
9169 // Can only determine if SVG after mounting
9170 isElementSVG: false
9171 };
9172 if (props.position && !(props.onDrag || props.onStop)) {
9173 // eslint-disable-next-line no-console
9174 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.');
9175 }
9176 }
9177 componentDidMount() {
9178 // Check to see if the element passed is an instanceof SVGElement
9179 if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {
9180 this.setState({
9181 isElementSVG: true
9182 });
9183 }
9184 }
9185 componentWillUnmount() {
9186 this.setState({
9187 dragging: false
9188 }); // prevents invariant if unmounted while dragging
9189 }
9190
9191 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9192 // the underlying DOM node ourselves. See the README for more information.
9193 findDOMNode() /*: ?HTMLElement*/{
9194 var _this$props$nodeRef$c, _this$props;
9195 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);
9196 }
9197 render() /*: ReactElement<any>*/{
9198 const {
9199 axis,
9200 bounds,
9201 children,
9202 defaultPosition,
9203 defaultClassName,
9204 defaultClassNameDragging,
9205 defaultClassNameDragged,
9206 position,
9207 positionOffset,
9208 scale,
9209 ...draggableCoreProps
9210 } = this.props;
9211 let style = {};
9212 let svgTransform = null;
9213
9214 // If this is controlled, we don't want to move it - unless it's dragging.
9215 const controlled = Boolean(position);
9216 const draggable = !controlled || this.state.dragging;
9217 const validPosition = position || defaultPosition;
9218 const transformOpts = {
9219 // Set left if horizontal drag is enabled
9220 x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,
9221 // Set top if vertical drag is enabled
9222 y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y
9223 };
9224
9225 // If this element was SVG, we use the `transform` attribute.
9226 if (this.state.isElementSVG) {
9227 svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);
9228 } else {
9229 // Add a CSS transform to move the element around. This allows us to move the element around
9230 // without worrying about whether or not it is relatively or absolutely positioned.
9231 // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>
9232 // has a clean slate.
9233 style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);
9234 }
9235
9236 // Mark with class while dragging
9237 const className = (0, _clsx.default)(children.props.className || '', defaultClassName, {
9238 [defaultClassNameDragging]: this.state.dragging,
9239 [defaultClassNameDragged]: this.state.dragged
9240 });
9241
9242 // Reuse the child provided
9243 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9244 return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {
9245 onStart: this.onDragStart,
9246 onDrag: this.onDrag,
9247 onStop: this.onDragStop
9248 }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {
9249 className: className,
9250 style: {
9251 ...children.props.style,
9252 ...style
9253 },
9254 transform: svgTransform
9255 }));
9256 }
9257 }
9258 exports["default"] = Draggable;
9259 _defineProperty(Draggable, "displayName", 'Draggable');
9260 _defineProperty(Draggable, "propTypes", {
9261 // Accepts all props <DraggableCore> accepts.
9262 ..._DraggableCore.default.propTypes,
9263 /**
9264 * `axis` determines which axis the draggable can move.
9265 *
9266 * Note that all callbacks will still return data as normal. This only
9267 * controls flushing to the DOM.
9268 *
9269 * 'both' allows movement horizontally and vertically.
9270 * 'x' limits movement to horizontal axis.
9271 * 'y' limits movement to vertical axis.
9272 * 'none' limits all movement.
9273 *
9274 * Defaults to 'both'.
9275 */
9276 axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),
9277 /**
9278 * `bounds` determines the range of movement available to the element.
9279 * Available values are:
9280 *
9281 * 'parent' restricts movement within the Draggable's parent node.
9282 *
9283 * Alternatively, pass an object with the following properties, all of which are optional:
9284 *
9285 * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}
9286 *
9287 * All values are in px.
9288 *
9289 * Example:
9290 *
9291 * ```jsx
9292 * let App = React.createClass({
9293 * render: function () {
9294 * return (
9295 * <Draggable bounds={{right: 300, bottom: 300}}>
9296 * <div>Content</div>
9297 * </Draggable>
9298 * );
9299 * }
9300 * });
9301 * ```
9302 */
9303 bounds: _propTypes.default.oneOfType([_propTypes.default.shape({
9304 left: _propTypes.default.number,
9305 right: _propTypes.default.number,
9306 top: _propTypes.default.number,
9307 bottom: _propTypes.default.number
9308 }), _propTypes.default.string, _propTypes.default.oneOf([false])]),
9309 defaultClassName: _propTypes.default.string,
9310 defaultClassNameDragging: _propTypes.default.string,
9311 defaultClassNameDragged: _propTypes.default.string,
9312 /**
9313 * `defaultPosition` specifies the x and y that the dragged item should start at
9314 *
9315 * Example:
9316 *
9317 * ```jsx
9318 * let App = React.createClass({
9319 * render: function () {
9320 * return (
9321 * <Draggable defaultPosition={{x: 25, y: 25}}>
9322 * <div>I start with transformX: 25px and transformY: 25px;</div>
9323 * </Draggable>
9324 * );
9325 * }
9326 * });
9327 * ```
9328 */
9329 defaultPosition: _propTypes.default.shape({
9330 x: _propTypes.default.number,
9331 y: _propTypes.default.number
9332 }),
9333 positionOffset: _propTypes.default.shape({
9334 x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
9335 y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
9336 }),
9337 /**
9338 * `position`, if present, defines the current position of the element.
9339 *
9340 * This is similar to how form elements in React work - if no `position` is supplied, the component
9341 * is uncontrolled.
9342 *
9343 * Example:
9344 *
9345 * ```jsx
9346 * let App = React.createClass({
9347 * render: function () {
9348 * return (
9349 * <Draggable position={{x: 25, y: 25}}>
9350 * <div>I start with transformX: 25px and transformY: 25px;</div>
9351 * </Draggable>
9352 * );
9353 * }
9354 * });
9355 * ```
9356 */
9357 position: _propTypes.default.shape({
9358 x: _propTypes.default.number,
9359 y: _propTypes.default.number
9360 }),
9361 /**
9362 * These properties should be defined on the child, not here.
9363 */
9364 className: _shims.dontSetMe,
9365 style: _shims.dontSetMe,
9366 transform: _shims.dontSetMe
9367 });
9368 _defineProperty(Draggable, "defaultProps", {
9369 ..._DraggableCore.default.defaultProps,
9370 axis: 'both',
9371 bounds: false,
9372 defaultClassName: 'react-draggable',
9373 defaultClassNameDragging: 'react-draggable-dragging',
9374 defaultClassNameDragged: 'react-draggable-dragged',
9375 defaultPosition: {
9376 x: 0,
9377 y: 0
9378 },
9379 scale: 1
9380 });
9381
9382 /***/ }),
9383
9384 /***/ "../node_modules/react-draggable/build/cjs/DraggableCore.js":
9385 /*!******************************************************************!*\
9386 !*** ../node_modules/react-draggable/build/cjs/DraggableCore.js ***!
9387 \******************************************************************/
9388 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9389
9390 "use strict";
9391
9392
9393 Object.defineProperty(exports, "__esModule", ({
9394 value: true
9395 }));
9396 exports["default"] = void 0;
9397 var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
9398 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
9399 var _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ "react-dom"));
9400 var _domFns = __webpack_require__(/*! ./utils/domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
9401 var _positionFns = __webpack_require__(/*! ./utils/positionFns */ "../node_modules/react-draggable/build/cjs/utils/positionFns.js");
9402 var _shims = __webpack_require__(/*! ./utils/shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9403 var _log = _interopRequireDefault(__webpack_require__(/*! ./utils/log */ "../node_modules/react-draggable/build/cjs/utils/log.js"));
9404 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9405 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); }
9406 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; }
9407 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; }
9408 function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9409 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); }
9410 /*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/
9411 /*:: import type {Element as ReactElement} from 'react';*/
9412 // Simple abstraction for dragging events names.
9413 const eventsFor = {
9414 touch: {
9415 start: 'touchstart',
9416 move: 'touchmove',
9417 stop: 'touchend'
9418 },
9419 mouse: {
9420 start: 'mousedown',
9421 move: 'mousemove',
9422 stop: 'mouseup'
9423 }
9424 };
9425
9426 // Default to mouse events.
9427 let dragEventFor = eventsFor.mouse;
9428 /*:: export type DraggableData = {
9429 node: HTMLElement,
9430 x: number, y: number,
9431 deltaX: number, deltaY: number,
9432 lastX: number, lastY: number,
9433 };*/
9434 /*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/
9435 /*:: export type ControlPosition = {x: number, y: number};*/
9436 /*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/
9437 /*:: export type DraggableCoreDefaultProps = {
9438 allowAnyClick: boolean,
9439 disabled: boolean,
9440 enableUserSelectHack: boolean,
9441 onStart: DraggableEventHandler,
9442 onDrag: DraggableEventHandler,
9443 onStop: DraggableEventHandler,
9444 onMouseDown: (e: MouseEvent) => void,
9445 scale: number,
9446 };*/
9447 /*:: export type DraggableCoreProps = {
9448 ...DraggableCoreDefaultProps,
9449 cancel: string,
9450 children: ReactElement<any>,
9451 offsetParent: HTMLElement,
9452 grid: [number, number],
9453 handle: string,
9454 nodeRef?: ?React.ElementRef<any>,
9455 };*/
9456 //
9457 // Define <DraggableCore>.
9458 //
9459 // <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can
9460 // work well with libraries that require more control over the element.
9461 //
9462
9463 class DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{
9464 constructor() {
9465 super(...arguments);
9466 _defineProperty(this, "dragging", false);
9467 // Used while dragging to determine deltas.
9468 _defineProperty(this, "lastX", NaN);
9469 _defineProperty(this, "lastY", NaN);
9470 _defineProperty(this, "touchIdentifier", null);
9471 _defineProperty(this, "mounted", false);
9472 _defineProperty(this, "handleDragStart", e => {
9473 // Make it possible to attach event handlers on top of this one.
9474 this.props.onMouseDown(e);
9475
9476 // Only accept left-clicks.
9477 if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;
9478
9479 // Get nodes. Be sure to grab relative document (could be iframed)
9480 const thisNode = this.findDOMNode();
9481 if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {
9482 throw new Error('<DraggableCore> not mounted on DragStart!');
9483 }
9484 const {
9485 ownerDocument
9486 } = thisNode;
9487
9488 // Short circuit if handle or cancel prop was provided and selector doesn't match.
9489 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)) {
9490 return;
9491 }
9492
9493 // Prevent scrolling on mobile devices, like ipad/iphone.
9494 // Important that this is after handle/cancel.
9495 if (e.type === 'touchstart') e.preventDefault();
9496
9497 // Set touch identifier in component state if this is a touch event. This allows us to
9498 // distinguish between individual touches on multitouch screens by identifying which
9499 // touchpoint was set to this element.
9500 const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);
9501 this.touchIdentifier = touchIdentifier;
9502
9503 // Get the current drag point from the event. This is used as the offset.
9504 const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);
9505 if (position == null) return; // not possible but satisfies flow
9506 const {
9507 x,
9508 y
9509 } = position;
9510
9511 // Create an event object with all the data parents need to make a decision here.
9512 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9513 (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);
9514
9515 // Call event handler. If it returns explicit false, cancel.
9516 (0, _log.default)('calling', this.props.onStart);
9517 const shouldUpdate = this.props.onStart(e, coreEvent);
9518 if (shouldUpdate === false || this.mounted === false) return;
9519
9520 // Add a style to the body to disable user-select. This prevents text from
9521 // being selected all over the page.
9522 if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);
9523
9524 // Initiate dragging. Set the current x and y as offsets
9525 // so we know how much we've moved during the drag. This allows us
9526 // to drag elements around even if they have been moved, without issue.
9527 this.dragging = true;
9528 this.lastX = x;
9529 this.lastY = y;
9530
9531 // Add events to the document directly so we catch when the user's mouse/touch moves outside of
9532 // this element. We use different events depending on whether or not we have detected that this
9533 // is a touch-capable device.
9534 (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);
9535 (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);
9536 });
9537 _defineProperty(this, "handleDrag", e => {
9538 // Get the current drag point from the event. This is used as the offset.
9539 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9540 if (position == null) return;
9541 let {
9542 x,
9543 y
9544 } = position;
9545
9546 // Snap to grid if prop has been provided
9547 if (Array.isArray(this.props.grid)) {
9548 let deltaX = x - this.lastX,
9549 deltaY = y - this.lastY;
9550 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9551 if (!deltaX && !deltaY) return; // skip useless drag
9552 x = this.lastX + deltaX, y = this.lastY + deltaY;
9553 }
9554 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9555 (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);
9556
9557 // Call event handler. If it returns explicit false, trigger end.
9558 const shouldUpdate = this.props.onDrag(e, coreEvent);
9559 if (shouldUpdate === false || this.mounted === false) {
9560 try {
9561 // $FlowIgnore
9562 this.handleDragStop(new MouseEvent('mouseup'));
9563 } catch (err) {
9564 // Old browsers
9565 const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);
9566 // I see why this insanity was deprecated
9567 // $FlowIgnore
9568 event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
9569 this.handleDragStop(event);
9570 }
9571 return;
9572 }
9573 this.lastX = x;
9574 this.lastY = y;
9575 });
9576 _defineProperty(this, "handleDragStop", e => {
9577 if (!this.dragging) return;
9578 const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);
9579 if (position == null) return;
9580 let {
9581 x,
9582 y
9583 } = position;
9584
9585 // Snap to grid if prop has been provided
9586 if (Array.isArray(this.props.grid)) {
9587 let deltaX = x - this.lastX || 0;
9588 let deltaY = y - this.lastY || 0;
9589 [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);
9590 x = this.lastX + deltaX, y = this.lastY + deltaY;
9591 }
9592 const coreEvent = (0, _positionFns.createCoreData)(this, x, y);
9593
9594 // Call event handler
9595 const shouldContinue = this.props.onStop(e, coreEvent);
9596 if (shouldContinue === false || this.mounted === false) return false;
9597 const thisNode = this.findDOMNode();
9598 if (thisNode) {
9599 // Remove user-select hack
9600 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);
9601 }
9602 (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);
9603
9604 // Reset the el.
9605 this.dragging = false;
9606 this.lastX = NaN;
9607 this.lastY = NaN;
9608 if (thisNode) {
9609 // Remove event handlers
9610 (0, _log.default)('DraggableCore: Removing handlers');
9611 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);
9612 (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);
9613 }
9614 });
9615 _defineProperty(this, "onMouseDown", e => {
9616 dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse
9617
9618 return this.handleDragStart(e);
9619 });
9620 _defineProperty(this, "onMouseUp", e => {
9621 dragEventFor = eventsFor.mouse;
9622 return this.handleDragStop(e);
9623 });
9624 // Same as onMouseDown (start drag), but now consider this a touch device.
9625 _defineProperty(this, "onTouchStart", e => {
9626 // We're on a touch device now, so change the event handlers
9627 dragEventFor = eventsFor.touch;
9628 return this.handleDragStart(e);
9629 });
9630 _defineProperty(this, "onTouchEnd", e => {
9631 // We're on a touch device now, so change the event handlers
9632 dragEventFor = eventsFor.touch;
9633 return this.handleDragStop(e);
9634 });
9635 }
9636 componentDidMount() {
9637 this.mounted = true;
9638 // Touch handlers must be added with {passive: false} to be cancelable.
9639 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9640 const thisNode = this.findDOMNode();
9641 if (thisNode) {
9642 (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9643 passive: false
9644 });
9645 }
9646 }
9647 componentWillUnmount() {
9648 this.mounted = false;
9649 // Remove any leftover event handlers. Remove both touch and mouse handlers in case
9650 // some browser quirk caused a touch event to fire during a mouse move, or vice versa.
9651 const thisNode = this.findDOMNode();
9652 if (thisNode) {
9653 const {
9654 ownerDocument
9655 } = thisNode;
9656 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);
9657 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);
9658 (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);
9659 (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);
9660 (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {
9661 passive: false
9662 });
9663 if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);
9664 }
9665 }
9666
9667 // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find
9668 // the underlying DOM node ourselves. See the README for more information.
9669 findDOMNode() /*: ?HTMLElement*/{
9670 var _this$props, _this$props2;
9671 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);
9672 }
9673 render() /*: React.Element<any>*/{
9674 // Reuse the child provided
9675 // This makes it flexible to use whatever element is wanted (div, ul, etc)
9676 return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {
9677 // Note: mouseMove handler is attached to document so it will still function
9678 // when the user drags quickly and leaves the bounds of the element.
9679 onMouseDown: this.onMouseDown,
9680 onMouseUp: this.onMouseUp,
9681 // onTouchStart is added on `componentDidMount` so they can be added with
9682 // {passive: false}, which allows it to cancel. See
9683 // https://developers.google.com/web/updates/2017/01/scrolling-intervention
9684 onTouchEnd: this.onTouchEnd
9685 });
9686 }
9687 }
9688 exports["default"] = DraggableCore;
9689 _defineProperty(DraggableCore, "displayName", 'DraggableCore');
9690 _defineProperty(DraggableCore, "propTypes", {
9691 /**
9692 * `allowAnyClick` allows dragging using any mouse button.
9693 * By default, we only accept the left button.
9694 *
9695 * Defaults to `false`.
9696 */
9697 allowAnyClick: _propTypes.default.bool,
9698 children: _propTypes.default.node.isRequired,
9699 /**
9700 * `disabled`, if true, stops the <Draggable> from dragging. All handlers,
9701 * with the exception of `onMouseDown`, will not fire.
9702 */
9703 disabled: _propTypes.default.bool,
9704 /**
9705 * By default, we add 'user-select:none' attributes to the document body
9706 * to prevent ugly text selection during drag. If this is causing problems
9707 * for your app, set this to `false`.
9708 */
9709 enableUserSelectHack: _propTypes.default.bool,
9710 /**
9711 * `offsetParent`, if set, uses the passed DOM node to compute drag offsets
9712 * instead of using the parent node.
9713 */
9714 offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {
9715 if (props[propName] && props[propName].nodeType !== 1) {
9716 throw new Error('Draggable\'s offsetParent must be a DOM Node.');
9717 }
9718 },
9719 /**
9720 * `grid` specifies the x and y that dragging should snap to.
9721 */
9722 grid: _propTypes.default.arrayOf(_propTypes.default.number),
9723 /**
9724 * `handle` specifies a selector to be used as the handle that initiates drag.
9725 *
9726 * Example:
9727 *
9728 * ```jsx
9729 * let App = React.createClass({
9730 * render: function () {
9731 * return (
9732 * <Draggable handle=".handle">
9733 * <div>
9734 * <div className="handle">Click me to drag</div>
9735 * <div>This is some other content</div>
9736 * </div>
9737 * </Draggable>
9738 * );
9739 * }
9740 * });
9741 * ```
9742 */
9743 handle: _propTypes.default.string,
9744 /**
9745 * `cancel` specifies a selector to be used to prevent drag initialization.
9746 *
9747 * Example:
9748 *
9749 * ```jsx
9750 * let App = React.createClass({
9751 * render: function () {
9752 * return(
9753 * <Draggable cancel=".cancel">
9754 * <div>
9755 * <div className="cancel">You can't drag from here</div>
9756 * <div>Dragging here works fine</div>
9757 * </div>
9758 * </Draggable>
9759 * );
9760 * }
9761 * });
9762 * ```
9763 */
9764 cancel: _propTypes.default.string,
9765 /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.
9766 * Unfortunately, in order for <Draggable> to work properly, we need raw access
9767 * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`
9768 * as in this example:
9769 *
9770 * function MyComponent() {
9771 * const nodeRef = React.useRef(null);
9772 * return (
9773 * <Draggable nodeRef={nodeRef}>
9774 * <div ref={nodeRef}>Example Target</div>
9775 * </Draggable>
9776 * );
9777 * }
9778 *
9779 * This can be used for arbitrarily nested components, so long as the ref ends up
9780 * pointing to the actual child DOM node and not a custom component.
9781 */
9782 nodeRef: _propTypes.default.object,
9783 /**
9784 * Called when dragging starts.
9785 * If this function returns the boolean false, dragging will be canceled.
9786 */
9787 onStart: _propTypes.default.func,
9788 /**
9789 * Called while dragging.
9790 * If this function returns the boolean false, dragging will be canceled.
9791 */
9792 onDrag: _propTypes.default.func,
9793 /**
9794 * Called when dragging stops.
9795 * If this function returns the boolean false, the drag will remain active.
9796 */
9797 onStop: _propTypes.default.func,
9798 /**
9799 * A workaround option which can be passed if onMouseDown needs to be accessed,
9800 * since it'll always be blocked (as there is internal use of onMouseDown)
9801 */
9802 onMouseDown: _propTypes.default.func,
9803 /**
9804 * `scale`, if set, applies scaling while dragging an element
9805 */
9806 scale: _propTypes.default.number,
9807 /**
9808 * These properties should be defined on the child, not here.
9809 */
9810 className: _shims.dontSetMe,
9811 style: _shims.dontSetMe,
9812 transform: _shims.dontSetMe
9813 });
9814 _defineProperty(DraggableCore, "defaultProps", {
9815 allowAnyClick: false,
9816 // by default only accept left click
9817 disabled: false,
9818 enableUserSelectHack: true,
9819 onStart: function () {},
9820 onDrag: function () {},
9821 onStop: function () {},
9822 onMouseDown: function () {},
9823 scale: 1
9824 });
9825
9826 /***/ }),
9827
9828 /***/ "../node_modules/react-draggable/build/cjs/cjs.js":
9829 /*!********************************************************!*\
9830 !*** ../node_modules/react-draggable/build/cjs/cjs.js ***!
9831 \********************************************************/
9832 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9833
9834 "use strict";
9835
9836
9837 const {
9838 default: Draggable,
9839 DraggableCore
9840 } = __webpack_require__(/*! ./Draggable */ "../node_modules/react-draggable/build/cjs/Draggable.js");
9841
9842 // 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'.
9843 // See https://github.com/mzabriskie/react-draggable/pull/254
9844 // and https://github.com/mzabriskie/react-draggable/issues/266
9845 module.exports = Draggable;
9846 module.exports["default"] = Draggable;
9847 module.exports.DraggableCore = DraggableCore;
9848
9849 /***/ }),
9850
9851 /***/ "../node_modules/react-draggable/build/cjs/utils/domFns.js":
9852 /*!*****************************************************************!*\
9853 !*** ../node_modules/react-draggable/build/cjs/utils/domFns.js ***!
9854 \*****************************************************************/
9855 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9856
9857 "use strict";
9858
9859
9860 Object.defineProperty(exports, "__esModule", ({
9861 value: true
9862 }));
9863 exports.addClassName = addClassName;
9864 exports.addEvent = addEvent;
9865 exports.addUserSelectStyles = addUserSelectStyles;
9866 exports.createCSSTransform = createCSSTransform;
9867 exports.createSVGTransform = createSVGTransform;
9868 exports.getTouch = getTouch;
9869 exports.getTouchIdentifier = getTouchIdentifier;
9870 exports.getTranslation = getTranslation;
9871 exports.innerHeight = innerHeight;
9872 exports.innerWidth = innerWidth;
9873 exports.matchesSelector = matchesSelector;
9874 exports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;
9875 exports.offsetXYFromParent = offsetXYFromParent;
9876 exports.outerHeight = outerHeight;
9877 exports.outerWidth = outerWidth;
9878 exports.removeClassName = removeClassName;
9879 exports.removeEvent = removeEvent;
9880 exports.removeUserSelectStyles = removeUserSelectStyles;
9881 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
9882 var _getPrefix = _interopRequireWildcard(__webpack_require__(/*! ./getPrefix */ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js"));
9883 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); }
9884 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; }
9885 /*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/
9886 let matchesSelectorFunc = '';
9887 function matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{
9888 if (!matchesSelectorFunc) {
9889 matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {
9890 // $FlowIgnore: Doesn't think elements are indexable
9891 return (0, _shims.isFunction)(el[method]);
9892 });
9893 }
9894
9895 // Might not be found entirely (not an Element?) - in that case, bail
9896 // $FlowIgnore: Doesn't think elements are indexable
9897 if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;
9898
9899 // $FlowIgnore: Doesn't think elements are indexable
9900 return el[matchesSelectorFunc](selector);
9901 }
9902
9903 // Works up the tree to the draggable itself attempting to match selector.
9904 function matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{
9905 let node = el;
9906 do {
9907 if (matchesSelector(node, selector)) return true;
9908 if (node === baseNode) return false;
9909 // $FlowIgnore[incompatible-type]
9910 node = node.parentNode;
9911 } while (node);
9912 return false;
9913 }
9914 function addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9915 if (!el) return;
9916 const options = {
9917 capture: true,
9918 ...inputOptions
9919 };
9920 // $FlowIgnore[method-unbinding]
9921 if (el.addEventListener) {
9922 el.addEventListener(event, handler, options);
9923 } else if (el.attachEvent) {
9924 el.attachEvent('on' + event, handler);
9925 } else {
9926 // $FlowIgnore: Doesn't think elements are indexable
9927 el['on' + event] = handler;
9928 }
9929 }
9930 function removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{
9931 if (!el) return;
9932 const options = {
9933 capture: true,
9934 ...inputOptions
9935 };
9936 // $FlowIgnore[method-unbinding]
9937 if (el.removeEventListener) {
9938 el.removeEventListener(event, handler, options);
9939 } else if (el.detachEvent) {
9940 el.detachEvent('on' + event, handler);
9941 } else {
9942 // $FlowIgnore: Doesn't think elements are indexable
9943 el['on' + event] = null;
9944 }
9945 }
9946 function outerHeight(node /*: HTMLElement*/) /*: number*/{
9947 // This is deliberately excluding margin for our calculations, since we are using
9948 // offsetTop which is including margin. See getBoundPosition
9949 let height = node.clientHeight;
9950 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9951 height += (0, _shims.int)(computedStyle.borderTopWidth);
9952 height += (0, _shims.int)(computedStyle.borderBottomWidth);
9953 return height;
9954 }
9955 function outerWidth(node /*: HTMLElement*/) /*: number*/{
9956 // This is deliberately excluding margin for our calculations, since we are using
9957 // offsetLeft which is including margin. See getBoundPosition
9958 let width = node.clientWidth;
9959 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9960 width += (0, _shims.int)(computedStyle.borderLeftWidth);
9961 width += (0, _shims.int)(computedStyle.borderRightWidth);
9962 return width;
9963 }
9964 function innerHeight(node /*: HTMLElement*/) /*: number*/{
9965 let height = node.clientHeight;
9966 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9967 height -= (0, _shims.int)(computedStyle.paddingTop);
9968 height -= (0, _shims.int)(computedStyle.paddingBottom);
9969 return height;
9970 }
9971 function innerWidth(node /*: HTMLElement*/) /*: number*/{
9972 let width = node.clientWidth;
9973 const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
9974 width -= (0, _shims.int)(computedStyle.paddingLeft);
9975 width -= (0, _shims.int)(computedStyle.paddingRight);
9976 return width;
9977 }
9978 /*:: interface EventWithOffset {
9979 clientX: number, clientY: number
9980 }*/
9981 // Get from offsetParent
9982 function offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{
9983 const isBody = offsetParent === offsetParent.ownerDocument.body;
9984 const offsetParentRect = isBody ? {
9985 left: 0,
9986 top: 0
9987 } : offsetParent.getBoundingClientRect();
9988 const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;
9989 const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;
9990 return {
9991 x,
9992 y
9993 };
9994 }
9995 function createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{
9996 const translation = getTranslation(controlPos, positionOffset, 'px');
9997 return {
9998 [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation
9999 };
10000 }
10001 function createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{
10002 const translation = getTranslation(controlPos, positionOffset, '');
10003 return translation;
10004 }
10005 function getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{
10006 let {
10007 x,
10008 y
10009 } /*: ControlPosition*/ = _ref /*: ControlPosition*/;
10010 let translation = "translate(".concat(x).concat(unitSuffix, ",").concat(y).concat(unitSuffix, ")");
10011 if (positionOffset) {
10012 const defaultX = "".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);
10013 const defaultY = "".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);
10014 translation = "translate(".concat(defaultX, ", ").concat(defaultY, ")") + translation;
10015 }
10016 return translation;
10017 }
10018 function getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{
10019 return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);
10020 }
10021 function getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{
10022 if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
10023 if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
10024 }
10025
10026 // User-select Hacks:
10027 //
10028 // Useful for preventing blue highlights all over everything when dragging.
10029
10030 // Note we're passing `document` b/c we could be iframed
10031 function addUserSelectStyles(doc /*: ?Document*/) {
10032 if (!doc) return;
10033 let styleEl = doc.getElementById('react-draggable-style-el');
10034 if (!styleEl) {
10035 styleEl = doc.createElement('style');
10036 styleEl.type = 'text/css';
10037 styleEl.id = 'react-draggable-style-el';
10038 styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n';
10039 styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\n';
10040 doc.getElementsByTagName('head')[0].appendChild(styleEl);
10041 }
10042 if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');
10043 }
10044 function removeUserSelectStyles(doc /*: ?Document*/) {
10045 if (!doc) return;
10046 try {
10047 if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');
10048 // $FlowIgnore: IE
10049 if (doc.selection) {
10050 // $FlowIgnore: IE
10051 doc.selection.empty();
10052 } else {
10053 // Remove selection caused by scroll, unless it's a focused input
10054 // (we use doc.defaultView in case we're in an iframe)
10055 const selection = (doc.defaultView || window).getSelection();
10056 if (selection && selection.type !== 'Caret') {
10057 selection.removeAllRanges();
10058 }
10059 }
10060 } catch (e) {
10061 // probably IE
10062 }
10063 }
10064 function addClassName(el /*: HTMLElement*/, className /*: string*/) {
10065 if (el.classList) {
10066 el.classList.add(className);
10067 } else {
10068 if (!el.className.match(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)")))) {
10069 el.className += " ".concat(className);
10070 }
10071 }
10072 }
10073 function removeClassName(el /*: HTMLElement*/, className /*: string*/) {
10074 if (el.classList) {
10075 el.classList.remove(className);
10076 } else {
10077 el.className = el.className.replace(new RegExp("(?:^|\\s)".concat(className, "(?!\\S)"), 'g'), '');
10078 }
10079 }
10080
10081 /***/ }),
10082
10083 /***/ "../node_modules/react-draggable/build/cjs/utils/getPrefix.js":
10084 /*!********************************************************************!*\
10085 !*** ../node_modules/react-draggable/build/cjs/utils/getPrefix.js ***!
10086 \********************************************************************/
10087 /***/ ((__unused_webpack_module, exports) => {
10088
10089 "use strict";
10090
10091
10092 Object.defineProperty(exports, "__esModule", ({
10093 value: true
10094 }));
10095 exports.browserPrefixToKey = browserPrefixToKey;
10096 exports.browserPrefixToStyle = browserPrefixToStyle;
10097 exports["default"] = void 0;
10098 exports.getPrefix = getPrefix;
10099 const prefixes = ['Moz', 'Webkit', 'O', 'ms'];
10100 function getPrefix() /*: string*/{
10101 var _window$document;
10102 let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';
10103 // Ensure we're running in an environment where there is actually a global
10104 // `window` obj
10105 if (typeof window === 'undefined') return '';
10106
10107 // If we're in a pseudo-browser server-side environment, this access
10108 // path may not exist, so bail out if it doesn't.
10109 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;
10110 if (!style) return '';
10111 if (prop in style) return '';
10112 for (let i = 0; i < prefixes.length; i++) {
10113 if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
10114 }
10115 return '';
10116 }
10117 function browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{
10118 return prefix ? "".concat(prefix).concat(kebabToTitleCase(prop)) : prop;
10119 }
10120 function browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{
10121 return prefix ? "-".concat(prefix.toLowerCase(), "-").concat(prop) : prop;
10122 }
10123 function kebabToTitleCase(str /*: string*/) /*: string*/{
10124 let out = '';
10125 let shouldCapitalize = true;
10126 for (let i = 0; i < str.length; i++) {
10127 if (shouldCapitalize) {
10128 out += str[i].toUpperCase();
10129 shouldCapitalize = false;
10130 } else if (str[i] === '-') {
10131 shouldCapitalize = true;
10132 } else {
10133 out += str[i];
10134 }
10135 }
10136 return out;
10137 }
10138
10139 // Default export is the prefix itself, like 'Moz', 'Webkit', etc
10140 // Note that you may have to re-test for certain things; for instance, Chrome 50
10141 // can handle unprefixed `transform`, but not unprefixed `user-select`
10142 var _default = exports["default"] = (getPrefix() /*: string*/);
10143
10144 /***/ }),
10145
10146 /***/ "../node_modules/react-draggable/build/cjs/utils/log.js":
10147 /*!**************************************************************!*\
10148 !*** ../node_modules/react-draggable/build/cjs/utils/log.js ***!
10149 \**************************************************************/
10150 /***/ ((__unused_webpack_module, exports) => {
10151
10152 "use strict";
10153
10154
10155 Object.defineProperty(exports, "__esModule", ({
10156 value: true
10157 }));
10158 exports["default"] = log;
10159 /*eslint no-console:0*/
10160 function log() {
10161 if (false) // removed by dead control flow
10162 {}
10163 }
10164
10165 /***/ }),
10166
10167 /***/ "../node_modules/react-draggable/build/cjs/utils/positionFns.js":
10168 /*!**********************************************************************!*\
10169 !*** ../node_modules/react-draggable/build/cjs/utils/positionFns.js ***!
10170 \**********************************************************************/
10171 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10172
10173 "use strict";
10174
10175
10176 Object.defineProperty(exports, "__esModule", ({
10177 value: true
10178 }));
10179 exports.canDragX = canDragX;
10180 exports.canDragY = canDragY;
10181 exports.createCoreData = createCoreData;
10182 exports.createDraggableData = createDraggableData;
10183 exports.getBoundPosition = getBoundPosition;
10184 exports.getControlPosition = getControlPosition;
10185 exports.snapToGrid = snapToGrid;
10186 var _shims = __webpack_require__(/*! ./shims */ "../node_modules/react-draggable/build/cjs/utils/shims.js");
10187 var _domFns = __webpack_require__(/*! ./domFns */ "../node_modules/react-draggable/build/cjs/utils/domFns.js");
10188 /*:: import type Draggable from '../Draggable';*/
10189 /*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/
10190 /*:: import type DraggableCore from '../DraggableCore';*/
10191 function getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{
10192 // If no bounds, short-circuit and move on
10193 if (!draggable.props.bounds) return [x, y];
10194
10195 // Clone new bounds
10196 let {
10197 bounds
10198 } = draggable.props;
10199 bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);
10200 const node = findDOMNode(draggable);
10201 if (typeof bounds === 'string') {
10202 const {
10203 ownerDocument
10204 } = node;
10205 const ownerWindow = ownerDocument.defaultView;
10206 let boundNode;
10207 if (bounds === 'parent') {
10208 boundNode = node.parentNode;
10209 } else {
10210 boundNode = ownerDocument.querySelector(bounds);
10211 }
10212 if (!(boundNode instanceof ownerWindow.HTMLElement)) {
10213 throw new Error('Bounds selector "' + bounds + '" could not find an element.');
10214 }
10215 const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly
10216 const nodeStyle = ownerWindow.getComputedStyle(node);
10217 const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
10218 // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.
10219 bounds = {
10220 left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),
10221 top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),
10222 right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),
10223 bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)
10224 };
10225 }
10226
10227 // Keep x and y below right and bottom limits...
10228 if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);
10229 if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);
10230
10231 // But above left and top limits.
10232 if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);
10233 if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);
10234 return [x, y];
10235 }
10236 function snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{
10237 const x = Math.round(pendingX / grid[0]) * grid[0];
10238 const y = Math.round(pendingY / grid[1]) * grid[1];
10239 return [x, y];
10240 }
10241 function canDragX(draggable /*: Draggable*/) /*: boolean*/{
10242 return draggable.props.axis === 'both' || draggable.props.axis === 'x';
10243 }
10244 function canDragY(draggable /*: Draggable*/) /*: boolean*/{
10245 return draggable.props.axis === 'both' || draggable.props.axis === 'y';
10246 }
10247
10248 // Get {x, y} positions from event.
10249 function getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{
10250 const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;
10251 if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch
10252 const node = findDOMNode(draggableCore);
10253 // User can provide an offsetParent if desired.
10254 const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;
10255 return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);
10256 }
10257
10258 // Create an data object exposed by <DraggableCore>'s events
10259 function createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{
10260 const isStart = !(0, _shims.isNum)(draggable.lastX);
10261 const node = findDOMNode(draggable);
10262 if (isStart) {
10263 // If this is our first move, use the x and y as last coords.
10264 return {
10265 node,
10266 deltaX: 0,
10267 deltaY: 0,
10268 lastX: x,
10269 lastY: y,
10270 x,
10271 y
10272 };
10273 } else {
10274 // Otherwise calculate proper values.
10275 return {
10276 node,
10277 deltaX: x - draggable.lastX,
10278 deltaY: y - draggable.lastY,
10279 lastX: draggable.lastX,
10280 lastY: draggable.lastY,
10281 x,
10282 y
10283 };
10284 }
10285 }
10286
10287 // Create an data exposed by <Draggable>'s events
10288 function createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{
10289 const scale = draggable.props.scale;
10290 return {
10291 node: coreData.node,
10292 x: draggable.state.x + coreData.deltaX / scale,
10293 y: draggable.state.y + coreData.deltaY / scale,
10294 deltaX: coreData.deltaX / scale,
10295 deltaY: coreData.deltaY / scale,
10296 lastX: draggable.state.x,
10297 lastY: draggable.state.y
10298 };
10299 }
10300
10301 // A lot faster than stringify/parse
10302 function cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{
10303 return {
10304 left: bounds.left,
10305 top: bounds.top,
10306 right: bounds.right,
10307 bottom: bounds.bottom
10308 };
10309 }
10310 function findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{
10311 const node = draggable.findDOMNode();
10312 if (!node) {
10313 throw new Error('<DraggableCore>: Unmounted during event!');
10314 }
10315 // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME
10316 return node;
10317 }
10318
10319 /***/ }),
10320
10321 /***/ "../node_modules/react-draggable/build/cjs/utils/shims.js":
10322 /*!****************************************************************!*\
10323 !*** ../node_modules/react-draggable/build/cjs/utils/shims.js ***!
10324 \****************************************************************/
10325 /***/ ((__unused_webpack_module, exports) => {
10326
10327 "use strict";
10328
10329
10330 Object.defineProperty(exports, "__esModule", ({
10331 value: true
10332 }));
10333 exports.dontSetMe = dontSetMe;
10334 exports.findInArray = findInArray;
10335 exports.int = int;
10336 exports.isFunction = isFunction;
10337 exports.isNum = isNum;
10338 // @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc
10339 function findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{
10340 for (let i = 0, length = array.length; i < length; i++) {
10341 if (callback.apply(callback, [array[i], i, array])) return array[i];
10342 }
10343 }
10344 function isFunction(func /*: any*/) /*: boolean %checks*/{
10345 // $FlowIgnore[method-unbinding]
10346 return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';
10347 }
10348 function isNum(num /*: any*/) /*: boolean %checks*/{
10349 return typeof num === 'number' && !isNaN(num);
10350 }
10351 function int(a /*: string*/) /*: number*/{
10352 return parseInt(a, 10);
10353 }
10354 function dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{
10355 if (props[propName]) {
10356 return new Error("Invalid prop ".concat(propName, " passed to ").concat(componentName, " - do not set this, set it on the child."));
10357 }
10358 }
10359
10360 /***/ }),
10361
10362 /***/ "../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js":
10363 /*!************************************************************************!*\
10364 !*** ../node_modules/react-draggable/node_modules/clsx/dist/clsx.m.js ***!
10365 \************************************************************************/
10366 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10367
10368 "use strict";
10369 __webpack_require__.r(__webpack_exports__);
10370 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10371 /* harmony export */ clsx: () => (/* binding */ clsx),
10372 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10373 /* harmony export */ });
10374 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);
10375
10376 /***/ }),
10377
10378 /***/ "../node_modules/validator/lib/isFQDN.js":
10379 /*!***********************************************!*\
10380 !*** ../node_modules/validator/lib/isFQDN.js ***!
10381 \***********************************************/
10382 /***/ ((module, exports, __webpack_require__) => {
10383
10384 "use strict";
10385
10386
10387 Object.defineProperty(exports, "__esModule", ({
10388 value: true
10389 }));
10390 exports["default"] = isFQDN;
10391 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10392 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10393 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10394 var default_fqdn_options = {
10395 require_tld: true,
10396 allow_underscores: false,
10397 allow_trailing_dot: false,
10398 allow_numeric_tld: false,
10399 allow_wildcard: false,
10400 ignore_max_length: false
10401 };
10402 function isFQDN(str, options) {
10403 (0, _assertString.default)(str);
10404 options = (0, _merge.default)(options, default_fqdn_options);
10405
10406 /* Remove the optional trailing dot before checking validity */
10407 if (options.allow_trailing_dot && str[str.length - 1] === '.') {
10408 str = str.substring(0, str.length - 1);
10409 }
10410
10411 /* Remove the optional wildcard before checking validity */
10412 if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
10413 str = str.substring(2);
10414 }
10415 var parts = str.split('.');
10416 var tld = parts[parts.length - 1];
10417 if (options.require_tld) {
10418 // disallow fqdns without tld
10419 if (parts.length < 2) {
10420 return false;
10421 }
10422 if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
10423 return false;
10424 }
10425
10426 // disallow spaces
10427 if (/\s/.test(tld)) {
10428 return false;
10429 }
10430 }
10431
10432 // reject numeric TLDs
10433 if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
10434 return false;
10435 }
10436 return parts.every(function (part) {
10437 if (part.length > 63 && !options.ignore_max_length) {
10438 return false;
10439 }
10440 if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
10441 return false;
10442 }
10443
10444 // disallow full-width chars
10445 if (/[\uff01-\uff5e]/.test(part)) {
10446 return false;
10447 }
10448
10449 // disallow parts starting or ending with hyphen
10450 if (/^-|-$/.test(part)) {
10451 return false;
10452 }
10453 if (!options.allow_underscores && /_/.test(part)) {
10454 return false;
10455 }
10456 return true;
10457 });
10458 }
10459 module.exports = exports.default;
10460 module.exports["default"] = exports.default;
10461
10462 /***/ }),
10463
10464 /***/ "../node_modules/validator/lib/isIP.js":
10465 /*!*********************************************!*\
10466 !*** ../node_modules/validator/lib/isIP.js ***!
10467 \*********************************************/
10468 /***/ ((module, exports, __webpack_require__) => {
10469
10470 "use strict";
10471
10472
10473 Object.defineProperty(exports, "__esModule", ({
10474 value: true
10475 }));
10476 exports["default"] = isIP;
10477 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10478 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10479 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); }
10480 /**
10481 11.3. Examples
10482
10483 The following addresses
10484
10485 fe80::1234 (on the 1st link of the node)
10486 ff02::5678 (on the 5th link of the node)
10487 ff08::9abc (on the 10th organization of the node)
10488
10489 would be represented as follows:
10490
10491 fe80::1234%1
10492 ff02::5678%5
10493 ff08::9abc%10
10494
10495 (Here we assume a natural translation from a zone index to the
10496 <zone_id> part, where the Nth zone of any scope is translated into
10497 "N".)
10498
10499 If we use interface names as <zone_id>, those addresses could also be
10500 represented as follows:
10501
10502 fe80::1234%ne0
10503 ff02::5678%pvc1.3
10504 ff08::9abc%interface10
10505
10506 where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
10507 to the 5th link, and "interface10" belongs to the 10th organization.
10508 * * */
10509 var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
10510 var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
10511 var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
10512 var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
10513 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,})?$');
10514 function isIP(ipAddress) {
10515 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10516 (0, _assertString.default)(ipAddress);
10517
10518 // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])
10519 // eslint-disable-next-line prefer-rest-params
10520 var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';
10521 if (!version) {
10522 return isIP(ipAddress, {
10523 version: 4
10524 }) || isIP(ipAddress, {
10525 version: 6
10526 });
10527 }
10528 if (version.toString() === '4') {
10529 return IPv4AddressRegExp.test(ipAddress);
10530 }
10531 if (version.toString() === '6') {
10532 return IPv6AddressRegExp.test(ipAddress);
10533 }
10534 return false;
10535 }
10536 module.exports = exports.default;
10537 module.exports["default"] = exports.default;
10538
10539 /***/ }),
10540
10541 /***/ "../node_modules/validator/lib/isURL.js":
10542 /*!**********************************************!*\
10543 !*** ../node_modules/validator/lib/isURL.js ***!
10544 \**********************************************/
10545 /***/ ((module, exports, __webpack_require__) => {
10546
10547 "use strict";
10548
10549
10550 Object.defineProperty(exports, "__esModule", ({
10551 value: true
10552 }));
10553 exports["default"] = isURL;
10554 var _assertString = _interopRequireDefault(__webpack_require__(/*! ./util/assertString */ "../node_modules/validator/lib/util/assertString.js"));
10555 var _checkHost = _interopRequireDefault(__webpack_require__(/*! ./util/checkHost */ "../node_modules/validator/lib/util/checkHost.js"));
10556 var _includesString = _interopRequireDefault(__webpack_require__(/*! ./util/includesString */ "../node_modules/validator/lib/util/includesString.js"));
10557 var _isFQDN = _interopRequireDefault(__webpack_require__(/*! ./isFQDN */ "../node_modules/validator/lib/isFQDN.js"));
10558 var _isIP = _interopRequireDefault(__webpack_require__(/*! ./isIP */ "../node_modules/validator/lib/isIP.js"));
10559 var _merge = _interopRequireDefault(__webpack_require__(/*! ./util/merge */ "../node_modules/validator/lib/util/merge.js"));
10560 function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10561 function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10562 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."); }
10563 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; } }
10564 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; }
10565 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; } }
10566 function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
10567 /*
10568 options for isURL method
10569
10570 protocols - valid protocols can be modified with this option.
10571 require_tld - If set to false isURL will not check if the URL's host includes a top-level domain.
10572 require_protocol - if set to true isURL will return false if protocol is not present in the URL.
10573 require_host - if set to false isURL will not check if host is present in the URL.
10574 require_port - if set to true isURL will check if port is present in the URL.
10575 require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.
10576 allow_underscores - if set to true, the validator will allow underscores in the URL.
10577 host_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings
10578 defined in it, the validation fails.
10579 host_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings
10580 defined in it, the validation fails.
10581 allow_trailing_dot - if set to true, the validator will allow the domain to end with
10582 a `.` character.
10583 allow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.
10584 allow_fragments - if set to false isURL will return false if fragments are present.
10585 allow_query_components - if set to false isURL will return false if query components are present.
10586 disallow_auth - if set to true, the validator will fail if the URL contains an authentication
10587 component, e.g. `http://username:password@example.com`
10588 validate_length - if set to false isURL will skip string length validation. `max_allowed_length`
10589 will be ignored if this is set as `false`.
10590 max_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is
10591 2084 that IE maximum URL length).
10592
10593 */
10594
10595 var default_url_options = {
10596 protocols: ['http', 'https', 'ftp'],
10597 require_tld: true,
10598 require_protocol: false,
10599 require_host: true,
10600 require_port: false,
10601 require_valid_protocol: true,
10602 allow_underscores: false,
10603 allow_trailing_dot: false,
10604 allow_protocol_relative_urls: false,
10605 allow_fragments: true,
10606 allow_query_components: true,
10607 validate_length: true,
10608 max_allowed_length: 2084
10609 };
10610 var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
10611 function isURL(url, options) {
10612 (0, _assertString.default)(url);
10613 if (!url || /[\s<>]/.test(url)) {
10614 return false;
10615 }
10616 if (url.indexOf('mailto:') === 0) {
10617 return false;
10618 }
10619 options = (0, _merge.default)(options, default_url_options);
10620 if (options.validate_length && url.length > options.max_allowed_length) {
10621 return false;
10622 }
10623 if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {
10624 return false;
10625 }
10626 if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {
10627 return false;
10628 }
10629 var protocol, auth, host, hostname, port, port_str, split, ipv6;
10630 split = url.split('#');
10631 url = split.shift();
10632 split = url.split('?');
10633 url = split.shift();
10634 split = url.split('://');
10635 if (split.length > 1) {
10636 protocol = split.shift().toLowerCase();
10637 if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
10638 return false;
10639 }
10640 } else if (options.require_protocol) {
10641 return false;
10642 } else if (url.slice(0, 2) === '//') {
10643 if (!options.allow_protocol_relative_urls) {
10644 return false;
10645 }
10646 split[0] = url.slice(2);
10647 }
10648 url = split.join('://');
10649 if (url === '') {
10650 return false;
10651 }
10652 split = url.split('/');
10653 url = split.shift();
10654 if (url === '' && !options.require_host) {
10655 return true;
10656 }
10657 split = url.split('@');
10658 if (split.length > 1) {
10659 if (options.disallow_auth) {
10660 return false;
10661 }
10662 if (split[0] === '') {
10663 return false;
10664 }
10665 auth = split.shift();
10666 if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
10667 return false;
10668 }
10669 var _auth$split = auth.split(':'),
10670 _auth$split2 = _slicedToArray(_auth$split, 2),
10671 user = _auth$split2[0],
10672 password = _auth$split2[1];
10673 if (user === '' && password === '') {
10674 return false;
10675 }
10676 }
10677 hostname = split.join('@');
10678 port_str = null;
10679 ipv6 = null;
10680 var ipv6_match = hostname.match(wrapped_ipv6);
10681 if (ipv6_match) {
10682 host = '';
10683 ipv6 = ipv6_match[1];
10684 port_str = ipv6_match[2] || null;
10685 } else {
10686 split = hostname.split(':');
10687 host = split.shift();
10688 if (split.length) {
10689 port_str = split.join(':');
10690 }
10691 }
10692 if (port_str !== null && port_str.length > 0) {
10693 port = parseInt(port_str, 10);
10694 if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
10695 return false;
10696 }
10697 } else if (options.require_port) {
10698 return false;
10699 }
10700 if (options.host_whitelist) {
10701 return (0, _checkHost.default)(host, options.host_whitelist);
10702 }
10703 if (host === '' && !options.require_host) {
10704 return true;
10705 }
10706 if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
10707 return false;
10708 }
10709 host = host || ipv6;
10710 if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {
10711 return false;
10712 }
10713 return true;
10714 }
10715 module.exports = exports.default;
10716 module.exports["default"] = exports.default;
10717
10718 /***/ }),
10719
10720 /***/ "../node_modules/validator/lib/util/assertString.js":
10721 /*!**********************************************************!*\
10722 !*** ../node_modules/validator/lib/util/assertString.js ***!
10723 \**********************************************************/
10724 /***/ ((module, exports) => {
10725
10726 "use strict";
10727
10728
10729 Object.defineProperty(exports, "__esModule", ({
10730 value: true
10731 }));
10732 exports["default"] = assertString;
10733 function assertString(input) {
10734 if (input === undefined || input === null) throw new TypeError("Expected a string but received a ".concat(input));
10735 if (input.constructor.name !== 'String') throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
10736 }
10737 module.exports = exports.default;
10738 module.exports["default"] = exports.default;
10739
10740 /***/ }),
10741
10742 /***/ "../node_modules/validator/lib/util/checkHost.js":
10743 /*!*******************************************************!*\
10744 !*** ../node_modules/validator/lib/util/checkHost.js ***!
10745 \*******************************************************/
10746 /***/ ((module, exports) => {
10747
10748 "use strict";
10749
10750
10751 Object.defineProperty(exports, "__esModule", ({
10752 value: true
10753 }));
10754 exports["default"] = checkHost;
10755 function isRegExp(obj) {
10756 return Object.prototype.toString.call(obj) === '[object RegExp]';
10757 }
10758 function checkHost(host, matches) {
10759 for (var i = 0; i < matches.length; i++) {
10760 var match = matches[i];
10761 if (host === match || isRegExp(match) && match.test(host)) {
10762 return true;
10763 }
10764 }
10765 return false;
10766 }
10767 module.exports = exports.default;
10768 module.exports["default"] = exports.default;
10769
10770 /***/ }),
10771
10772 /***/ "../node_modules/validator/lib/util/includesString.js":
10773 /*!************************************************************!*\
10774 !*** ../node_modules/validator/lib/util/includesString.js ***!
10775 \************************************************************/
10776 /***/ ((module, exports) => {
10777
10778 "use strict";
10779
10780
10781 Object.defineProperty(exports, "__esModule", ({
10782 value: true
10783 }));
10784 exports["default"] = void 0;
10785 var includes = function includes(str, val) {
10786 return str.indexOf(val) !== -1;
10787 };
10788 var _default = exports["default"] = includes;
10789 module.exports = exports.default;
10790 module.exports["default"] = exports.default;
10791
10792 /***/ }),
10793
10794 /***/ "../node_modules/validator/lib/util/merge.js":
10795 /*!***************************************************!*\
10796 !*** ../node_modules/validator/lib/util/merge.js ***!
10797 \***************************************************/
10798 /***/ ((module, exports) => {
10799
10800 "use strict";
10801
10802
10803 Object.defineProperty(exports, "__esModule", ({
10804 value: true
10805 }));
10806 exports["default"] = merge;
10807 function merge() {
10808 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10809 var defaults = arguments.length > 1 ? arguments[1] : undefined;
10810 for (var key in defaults) {
10811 if (typeof obj[key] === 'undefined') {
10812 obj[key] = defaults[key];
10813 }
10814 }
10815 return obj;
10816 }
10817 module.exports = exports.default;
10818 module.exports["default"] = exports.default;
10819
10820 /***/ }),
10821
10822 /***/ "@elementor/icons":
10823 /*!************************************!*\
10824 !*** external "elementorV2.icons" ***!
10825 \************************************/
10826 /***/ ((module) => {
10827
10828 "use strict";
10829 module.exports = elementorV2.icons;
10830
10831 /***/ }),
10832
10833 /***/ "@elementor/ui":
10834 /*!*********************************!*\
10835 !*** external "elementorV2.ui" ***!
10836 \*********************************/
10837 /***/ ((module) => {
10838
10839 "use strict";
10840 module.exports = elementorV2.ui;
10841
10842 /***/ }),
10843
10844 /***/ "@wordpress/i18n":
10845 /*!**************************!*\
10846 !*** external "wp.i18n" ***!
10847 \**************************/
10848 /***/ ((module) => {
10849
10850 "use strict";
10851 module.exports = wp.i18n;
10852
10853 /***/ }),
10854
10855 /***/ "react":
10856 /*!************************!*\
10857 !*** external "React" ***!
10858 \************************/
10859 /***/ ((module) => {
10860
10861 "use strict";
10862 module.exports = React;
10863
10864 /***/ }),
10865
10866 /***/ "react-dom":
10867 /*!***************************!*\
10868 !*** external "ReactDOM" ***!
10869 \***************************/
10870 /***/ ((module) => {
10871
10872 "use strict";
10873 module.exports = ReactDOM;
10874
10875 /***/ })
10876
10877 /******/ });
10878 /************************************************************************/
10879 /******/ // The module cache
10880 /******/ var __webpack_module_cache__ = {};
10881 /******/
10882 /******/ // The require function
10883 /******/ function __webpack_require__(moduleId) {
10884 /******/ // Check if module is in cache
10885 /******/ var cachedModule = __webpack_module_cache__[moduleId];
10886 /******/ if (cachedModule !== undefined) {
10887 /******/ return cachedModule.exports;
10888 /******/ }
10889 /******/ // Create a new module (and put it into the cache)
10890 /******/ var module = __webpack_module_cache__[moduleId] = {
10891 /******/ // no module.id needed
10892 /******/ // no module.loaded needed
10893 /******/ exports: {}
10894 /******/ };
10895 /******/
10896 /******/ // Execute the module function
10897 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
10898 /******/
10899 /******/ // Return the exports of the module
10900 /******/ return module.exports;
10901 /******/ }
10902 /******/
10903 /************************************************************************/
10904 /******/ /* webpack/runtime/define property getters */
10905 /******/ (() => {
10906 /******/ // define getter functions for harmony exports
10907 /******/ __webpack_require__.d = (exports, definition) => {
10908 /******/ for(var key in definition) {
10909 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
10910 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
10911 /******/ }
10912 /******/ }
10913 /******/ };
10914 /******/ })();
10915 /******/
10916 /******/ /* webpack/runtime/hasOwnProperty shorthand */
10917 /******/ (() => {
10918 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
10919 /******/ })();
10920 /******/
10921 /******/ /* webpack/runtime/make namespace object */
10922 /******/ (() => {
10923 /******/ // define __esModule on exports
10924 /******/ __webpack_require__.r = (exports) => {
10925 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
10926 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
10927 /******/ }
10928 /******/ Object.defineProperty(exports, '__esModule', { value: true });
10929 /******/ };
10930 /******/ })();
10931 /******/
10932 /************************************************************************/
10933 var __webpack_exports__ = {};
10934 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
10935 (() => {
10936 "use strict";
10937 var exports = __webpack_exports__;
10938 /*!*******************************************************!*\
10939 !*** ../modules/ai/assets/js/editor/layout-module.js ***!
10940 \*******************************************************/
10941
10942
10943 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
10944 Object.defineProperty(exports, "__esModule", ({
10945 value: true
10946 }));
10947 exports["default"] = exports.AI_ATTACHMENT = void 0;
10948 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
10949 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
10950 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
10951 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
10952 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
10953 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
10954 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
10955 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
10956 var _aiLayoutBehavior = _interopRequireDefault(__webpack_require__(/*! ./ai-layout-behavior */ "../modules/ai/assets/js/editor/ai-layout-behavior.js"));
10957 var _editorIntegration = __webpack_require__(/*! ./utils/editor-integration */ "../modules/ai/assets/js/editor/utils/editor-integration.js");
10958 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
10959 var _config = __webpack_require__(/*! ./pages/form-layout/context/config */ "../modules/ai/assets/js/editor/pages/form-layout/context/config.js");
10960 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"));
10961 var _attachments = __webpack_require__(/*! ./pages/form-layout/components/attachments */ "../modules/ai/assets/js/editor/pages/form-layout/components/attachments.js");
10962 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)); }
10963 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10964 var AI_ATTACHMENT = exports.AI_ATTACHMENT = 'ai-attachment';
10965 var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
10966 function Module() {
10967 var _this;
10968 (0, _classCallCheck2.default)(this, Module);
10969 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10970 args[_key] = arguments[_key];
10971 }
10972 _this = _callSuper(this, Module, [].concat(args));
10973 (0, _defineProperty2.default)(_this, "registerVariationsContextMenu", function (groups, currentElement) {
10974 var saveGroup = groups.find(function (group) {
10975 return 'save' === group.name;
10976 });
10977 if (!saveGroup) {
10978 return groups;
10979 }
10980 var contextMenu = {
10981 name: 'ai',
10982 icon: 'eicon-ai',
10983 isEnabled: function isEnabled() {
10984 return 0 !== currentElement.getContainer().children.length;
10985 },
10986 title: (0, _i18n.__)('Generate variations with AI', 'elementor'),
10987 callback: function () {
10988 var _callback = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
10989 var container, json, attachments;
10990 return _regenerator.default.wrap(function (_context) {
10991 while (1) switch (_context.prev = _context.next) {
10992 case 0:
10993 container = currentElement.getContainer();
10994 json = container.model.toJSON({
10995 remove: ['default']
10996 });
10997 attachments = [{
10998 type: 'json',
10999 previewHTML: '',
11000 content: json,
11001 label: container.model.get('title'),
11002 source: _attachments.USER_VARIATION_SOURCE
11003 }];
11004 (0, _editorIntegration.renderLayoutApp)({
11005 parentContainer: container.parent,
11006 mode: _config.MODE_VARIATION,
11007 at: container.view._index,
11008 attachments: attachments,
11009 onSelect: function onSelect() {
11010 container.view.$el.hide();
11011 },
11012 onClose: function onClose() {
11013 container.view.$el.show();
11014 },
11015 onInsert: function onInsert(template) {
11016 (0, _editorIntegration.importToEditor)({
11017 parentContainer: container.parent,
11018 at: container.view._index,
11019 template: template,
11020 historyTitle: (0, _i18n.__)('AI Variation', 'elementor'),
11021 replace: true
11022 });
11023 }
11024 });
11025 case 1:
11026 case "end":
11027 return _context.stop();
11028 }
11029 }, _callee);
11030 }));
11031 function callback() {
11032 return _callback.apply(this, arguments);
11033 }
11034 return callback;
11035 }()
11036 };
11037
11038 // Add on top of save group actions
11039 saveGroup.actions.unshift(contextMenu);
11040 return groups;
11041 });
11042 return _this;
11043 }
11044 (0, _inherits2.default)(Module, _elementorModules$edi);
11045 return (0, _createClass2.default)(Module, [{
11046 key: "onElementorInit",
11047 value: function onElementorInit() {
11048 var _this2 = this;
11049 elementor.hooks.addFilter('views/add-section/behaviors', this.registerAiLayoutBehavior);
11050 elementor.hooks.addFilter('elements/container/contextMenuGroups', this.registerVariationsContextMenu);
11051 elementor.hooks.addFilter('elementor/editor/template-library/template/behaviors', this.registerLibraryActionButtonBehavior);
11052 elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', this.filterLibraryActionButtonTemplate, 11);
11053 $e.commands.register('library', 'generate-ai-variation', function (args) {
11054 return _this2.applyTemplate(args);
11055 });
11056 }
11057 }, {
11058 key: "applyTemplate",
11059 value: function applyTemplate(args) {
11060 window.postMessage({
11061 type: 'library/attach:start'
11062 });
11063 $e.components.get('library').downloadTemplate(args, function (data) {
11064 var model = args.model;
11065 window.postMessage({
11066 type: 'library/attach',
11067 json: data.content[0],
11068 html: "<img src=\"".concat(model.get('thumbnail'), "\" />"),
11069 label: "".concat(model.get('template_id'), " - ").concat(model.get('title')),
11070 source: _attachments.ELEMENTOR_LIBRARY_SOURCE
11071 }, window.location.origin);
11072 });
11073 }
11074 }, {
11075 key: "registerLibraryActionButtonBehavior",
11076 value: function registerLibraryActionButtonBehavior(behaviors) {
11077 behaviors.applyAiTemplate = {
11078 behaviorClass: _applyTemplateForAiBehavior.default
11079 };
11080 return behaviors;
11081 }
11082 }, {
11083 key: "registerAiLayoutBehavior",
11084 value: function registerAiLayoutBehavior(behaviors) {
11085 behaviors.ai = {
11086 behaviorClass: _aiLayoutBehavior.default,
11087 context: {
11088 documentType: window.elementor.documents.getCurrent().config.type
11089 }
11090 };
11091 return behaviors;
11092 }
11093 }, {
11094 key: "filterLibraryActionButtonTemplate",
11095 value: function filterLibraryActionButtonTemplate(viewId) {
11096 var modalConfig = $e.components.get('library').manager.modalConfig;
11097 var originalCoreViewId = '#tmpl-elementor-template-library-insert-button';
11098 if (originalCoreViewId !== viewId) {
11099 return viewId;
11100 }
11101 if ($e.routes.current.library !== 'library/templates/blocks') {
11102 return viewId;
11103 }
11104 if (AI_ATTACHMENT === modalConfig.mode) {
11105 viewId = '#tmpl-elementor-template-library-apply-ai-button';
11106 } else {
11107 viewId = '#tmpl-elementor-template-library-insert-and-ai-variations-buttons';
11108 }
11109 return viewId;
11110 }
11111 }]);
11112 }(elementorModules.editor.utils.Module);
11113 new Module();
11114 })();
11115
11116 /******/ })()
11117 ;
11118 //# sourceMappingURL=ai-layout.js.map