← All changes
|
assets/js/packages/site-builder/site-builder.js
+2
-1267
4.2.0-dev2
→
4.1.0-beta3
View file →
| @@ -1,1268 +1,3 @@ | ||
| 1 | -/******/ (function() { // webpackBootstrap | |
| 2 | -/******/ "use strict"; | |
| 3 | -/******/ var __webpack_modules__ = ({ | |
| 4 | - | |
| 5 | -/***/ "./packages/apps/site-builder/src/components/app.tsx": | |
| 6 | -/*!***********************************************************!*\ | |
| 7 | - !*** ./packages/apps/site-builder/src/components/app.tsx ***! | |
| 8 | - \***********************************************************/ | |
| 9 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 10 | - | |
| 11 | -__webpack_require__.r(__webpack_exports__); | |
| 12 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 13 | -/* harmony export */ App: function() { return /* binding */ App; } | |
| 14 | -/* harmony export */ }); | |
| 15 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 16 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 17 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 18 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__); | |
| 19 | -/* harmony import */ var _connect_auth_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../connect-auth-schema */ "./packages/apps/site-builder/src/connect-auth-schema.ts"); | |
| 20 | -/* harmony import */ var _hooks_use_site_builder_iframe_messaging__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/use-site-builder-iframe-messaging */ "./packages/apps/site-builder/src/hooks/use-site-builder-iframe-messaging.ts"); | |
| 21 | -/* harmony import */ var _site_builder_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../site-builder-config */ "./packages/apps/site-builder/src/site-builder-config.ts"); | |
| 22 | - | |
| 23 | - | |
| 24 | - | |
| 25 | - | |
| 26 | - | |
| 27 | - | |
| 28 | -const iframeStyle = { | |
| 29 | - position: 'fixed', | |
| 30 | - top: 0, | |
| 31 | - left: 0, | |
| 32 | - width: '100vw', | |
| 33 | - height: '100vh', | |
| 34 | - border: 'none', | |
| 35 | - zIndex: 10000 | |
| 36 | -}; | |
| 37 | -function App() { | |
| 38 | - const iframeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); | |
| 39 | - const [siteBuilderParams, setSiteBuilderParams] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}); | |
| 40 | - const [connectAuth, setConnectAuth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); | |
| 41 | - const iframeUrl = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,_site_builder_config__WEBPACK_IMPORTED_MODULE_4__.getSiteBuilderConfig)()?.iframeUrl ?? '', []); | |
| 42 | - (0,_hooks_use_site_builder_iframe_messaging__WEBPACK_IMPORTED_MODULE_3__.useSiteBuilderIframeMessaging)({ | |
| 43 | - iframeRef, | |
| 44 | - iframeUrl, | |
| 45 | - siteBuilderParams, | |
| 46 | - connectAuth | |
| 47 | - }); | |
| 48 | - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { | |
| 49 | - const fetchConnectAuth = async () => { | |
| 50 | - try { | |
| 51 | - const json = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default()({ | |
| 52 | - path: '/elementor/v1/site-builder/auth' | |
| 53 | - }); | |
| 54 | - if (json.success && json.data && (0,_connect_auth_schema__WEBPACK_IMPORTED_MODULE_2__.isValidConnectAuth)(json.data)) { | |
| 55 | - setConnectAuth(json.data); | |
| 56 | - } else { | |
| 57 | - throw new Error('Invalid auth response: missing required Connect fields'); | |
| 58 | - } | |
| 59 | - } catch (err) { | |
| 60 | - // eslint-disable-next-line no-console | |
| 61 | - console.error('Failed to fetch connectAuth:', err); | |
| 62 | - } | |
| 63 | - }; | |
| 64 | - fetchConnectAuth(); | |
| 65 | - }, []); | |
| 66 | - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { | |
| 67 | - if (!window.opener) { | |
| 68 | - return; | |
| 69 | - } | |
| 70 | - const onInit = event => { | |
| 71 | - if (event.source !== window.opener) { | |
| 72 | - return; | |
| 73 | - } | |
| 74 | - if (event.origin !== window.location.origin) { | |
| 75 | - return; | |
| 76 | - } | |
| 77 | - if (event.data?.type !== 'site-builder/init') { | |
| 78 | - return; | |
| 79 | - } | |
| 80 | - setSiteBuilderParams(event.data.payload ?? {}); | |
| 81 | - window.removeEventListener('message', onInit); | |
| 82 | - }; | |
| 83 | - window.addEventListener('message', onInit); | |
| 84 | - window.opener.postMessage({ | |
| 85 | - type: 'site-builder/ready' | |
| 86 | - }, window.location.origin); | |
| 87 | - return () => window.removeEventListener('message', onInit); | |
| 88 | - }, []); | |
| 89 | - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { | |
| 90 | - const wpApiSettings = window.wpApiSettings; | |
| 91 | - const nonce = wpApiSettings?.nonce || ''; | |
| 92 | - if (!nonce) { | |
| 93 | - return; | |
| 94 | - } | |
| 95 | - _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default()({ | |
| 96 | - path: '/elementor/v1/site-builder/snapshot', | |
| 97 | - method: 'POST', | |
| 98 | - data: { | |
| 99 | - value: {} | |
| 100 | - } | |
| 101 | - }).catch(() => {}); | |
| 102 | - }, []); | |
| 103 | - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("iframe", { | |
| 104 | - ref: iframeRef, | |
| 105 | - src: iframeUrl, | |
| 106 | - style: iframeStyle, | |
| 107 | - title: "Website Planner", | |
| 108 | - allow: "clipboard-read; clipboard-write" | |
| 109 | - }); | |
| 110 | -} | |
| 111 | - | |
| 112 | -/***/ }), | |
| 113 | - | |
| 114 | -/***/ "./packages/apps/site-builder/src/components/index.ts": | |
| 115 | -/*!************************************************************!*\ | |
| 116 | - !*** ./packages/apps/site-builder/src/components/index.ts ***! | |
| 117 | - \************************************************************/ | |
| 118 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 119 | - | |
| 120 | -__webpack_require__.r(__webpack_exports__); | |
| 121 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 122 | -/* harmony export */ App: function() { return /* reexport safe */ _app__WEBPACK_IMPORTED_MODULE_0__.App; } | |
| 123 | -/* harmony export */ }); | |
| 124 | -/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app */ "./packages/apps/site-builder/src/components/app.tsx"); | |
| 125 | - | |
| 126 | - | |
| 127 | -/***/ }), | |
| 128 | - | |
| 129 | -/***/ "./packages/apps/site-builder/src/connect-auth-schema.ts": | |
| 130 | -/*!***************************************************************!*\ | |
| 131 | - !*** ./packages/apps/site-builder/src/connect-auth-schema.ts ***! | |
| 132 | - \***************************************************************/ | |
| 133 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 134 | - | |
| 135 | -__webpack_require__.r(__webpack_exports__); | |
| 136 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 137 | -/* harmony export */ connectAuthSchema: function() { return /* binding */ connectAuthSchema; }, | |
| 138 | -/* harmony export */ isValidConnectAuth: function() { return /* binding */ isValidConnectAuth; } | |
| 139 | -/* harmony export */ }); | |
| 140 | -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema"); | |
| 141 | -/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_0__); | |
| 142 | - | |
| 143 | -const connectAuthSchema = _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.object({ | |
| 144 | - signature: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().min(1), | |
| 145 | - accessToken: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().min(1), | |
| 146 | - clientId: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().min(1), | |
| 147 | - homeUrl: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().min(1), | |
| 148 | - siteKey: _elementor_schema__WEBPACK_IMPORTED_MODULE_0__.z.string().min(1) | |
| 149 | -}); | |
| 150 | -function isValidConnectAuth(data) { | |
| 151 | - return connectAuthSchema.safeParse(data).success; | |
| 152 | -} | |
| 153 | - | |
| 154 | -/***/ }), | |
| 155 | - | |
| 156 | -/***/ "./packages/apps/site-builder/src/deploy/can-redirect-after-deploy.ts": | |
| 157 | -/*!****************************************************************************!*\ | |
| 158 | - !*** ./packages/apps/site-builder/src/deploy/can-redirect-after-deploy.ts ***! | |
| 159 | - \****************************************************************************/ | |
| 160 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 161 | - | |
| 162 | -__webpack_require__.r(__webpack_exports__); | |
| 163 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 164 | -/* harmony export */ canRedirectToEditorAfterDeploy: function() { return /* binding */ canRedirectToEditorAfterDeploy; }, | |
| 165 | -/* harmony export */ resolveEditorRedirectPageId: function() { return /* binding */ resolveEditorRedirectPageId; } | |
| 166 | -/* harmony export */ }); | |
| 167 | -const blockingErrorPrefixes = ['pages:', 'home_page:']; | |
| 168 | -const hasBlockingDeployErrors = errors => errors?.some(err => blockingErrorPrefixes.some(prefix => String(err).startsWith(prefix))) ?? false; | |
| 169 | -function resolveEditorRedirectPageId(args) { | |
| 170 | - if (hasBlockingDeployErrors(args.errors)) { | |
| 171 | - return null; | |
| 172 | - } | |
| 173 | - if (args.isIncremental) { | |
| 174 | - const lastPlannerPage = args.pages?.[args.pages.length - 1]; | |
| 175 | - if (!lastPlannerPage || !args.pageIdMap) { | |
| 176 | - return null; | |
| 177 | - } | |
| 178 | - return args.pageIdMap[lastPlannerPage.id] ?? null; | |
| 179 | - } | |
| 180 | - return args.homePageId ?? null; | |
| 181 | -} | |
| 182 | -function canRedirectToEditorAfterDeploy(args) { | |
| 183 | - return resolveEditorRedirectPageId(args) !== null; | |
| 184 | -} | |
| 185 | - | |
| 186 | -/***/ }), | |
| 187 | - | |
| 188 | -/***/ "./packages/apps/site-builder/src/deploy/deploy-editor-redirect.ts": | |
| 189 | -/*!*************************************************************************!*\ | |
| 190 | - !*** ./packages/apps/site-builder/src/deploy/deploy-editor-redirect.ts ***! | |
| 191 | - \*************************************************************************/ | |
| 192 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 193 | - | |
| 194 | -__webpack_require__.r(__webpack_exports__); | |
| 195 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 196 | -/* harmony export */ EDITOR_REDIRECT_ACKNOWLEDGE_FALLBACK_MS: function() { return /* binding */ EDITOR_REDIRECT_ACKNOWLEDGE_FALLBACK_MS; }, | |
| 197 | -/* harmony export */ clearPendingEditorRedirect: function() { return /* binding */ clearPendingEditorRedirect; }, | |
| 198 | -/* harmony export */ completeEditorRedirectOnDeployAcknowledge: function() { return /* binding */ completeEditorRedirectOnDeployAcknowledge; }, | |
| 199 | -/* harmony export */ scheduleEditorRedirectAfterDeploy: function() { return /* binding */ scheduleEditorRedirectAfterDeploy; } | |
| 200 | -/* harmony export */ }); | |
| 201 | -const EDITOR_REDIRECT_ACKNOWLEDGE_FALLBACK_MS = 3000; | |
| 202 | -function scheduleEditorRedirectAfterDeploy(redirectUrl, options = {}) { | |
| 203 | - const fallbackMs = options.fallbackMs ?? EDITOR_REDIRECT_ACKNOWLEDGE_FALLBACK_MS; | |
| 204 | - const navigate = options.navigate ?? (url => { | |
| 205 | - window.location.href = url; | |
| 206 | - }); | |
| 207 | - const pending = { | |
| 208 | - redirectUrl, | |
| 209 | - fallbackTimerId: null | |
| 210 | - }; | |
| 211 | - pending.fallbackTimerId = setTimeout(() => { | |
| 212 | - if (pending.redirectUrl !== redirectUrl) { | |
| 213 | - return; | |
| 214 | - } | |
| 215 | - pending.redirectUrl = null; | |
| 216 | - pending.fallbackTimerId = null; | |
| 217 | - navigate(redirectUrl); | |
| 218 | - }, fallbackMs); | |
| 219 | - return pending; | |
| 220 | -} | |
| 221 | -function clearPendingEditorRedirect(pending) { | |
| 222 | - if (!pending) { | |
| 223 | - return; | |
| 224 | - } | |
| 225 | - if (pending.fallbackTimerId) { | |
| 226 | - clearTimeout(pending.fallbackTimerId); | |
| 227 | - pending.fallbackTimerId = null; | |
| 228 | - } | |
| 229 | - pending.redirectUrl = null; | |
| 230 | -} | |
| 231 | -function completeEditorRedirectOnDeployAcknowledge(pending, navigate = url => { | |
| 232 | - window.location.href = url; | |
| 233 | -}) { | |
| 234 | - const redirectUrl = pending?.redirectUrl; | |
| 235 | - clearPendingEditorRedirect(pending); | |
| 236 | - if (redirectUrl) { | |
| 237 | - navigate(redirectUrl); | |
| 238 | - } | |
| 239 | -} | |
| 240 | - | |
| 241 | -/***/ }), | |
| 242 | - | |
| 243 | -/***/ "./packages/apps/site-builder/src/deploy/index.ts": | |
| 244 | -/*!********************************************************!*\ | |
| 245 | - !*** ./packages/apps/site-builder/src/deploy/index.ts ***! | |
| 246 | - \********************************************************/ | |
| 247 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 248 | - | |
| 249 | -__webpack_require__.r(__webpack_exports__); | |
| 250 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 251 | -/* harmony export */ deployWebsite: function() { return /* binding */ deployWebsite; } | |
| 252 | -/* harmony export */ }); | |
| 253 | -/* harmony import */ var _steps_global_classes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./steps/global-classes */ "./packages/apps/site-builder/src/deploy/steps/global-classes.ts"); | |
| 254 | -/* harmony import */ var _steps_global_variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./steps/global-variables */ "./packages/apps/site-builder/src/deploy/steps/global-variables.ts"); | |
| 255 | -/* harmony import */ var _steps_kit_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./steps/kit-settings */ "./packages/apps/site-builder/src/deploy/steps/kit-settings.ts"); | |
| 256 | -/* harmony import */ var _steps_logo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./steps/logo */ "./packages/apps/site-builder/src/deploy/steps/logo.ts"); | |
| 257 | -/* harmony import */ var _steps_menus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./steps/menus */ "./packages/apps/site-builder/src/deploy/steps/menus.ts"); | |
| 258 | -/* harmony import */ var _steps_pages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./steps/pages */ "./packages/apps/site-builder/src/deploy/steps/pages.ts"); | |
| 259 | -/* harmony import */ var _steps_sample_posts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./steps/sample-posts */ "./packages/apps/site-builder/src/deploy/steps/sample-posts.ts"); | |
| 260 | -/* harmony import */ var _steps_site_metadata__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./steps/site-metadata */ "./packages/apps/site-builder/src/deploy/steps/site-metadata.ts"); | |
| 261 | -/* harmony import */ var _steps_theme_parts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./steps/theme-parts */ "./packages/apps/site-builder/src/deploy/steps/theme-parts.ts"); | |
| 262 | -/* harmony import */ var _steps_wire_menu_widgets__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./steps/wire-menu-widgets */ "./packages/apps/site-builder/src/deploy/steps/wire-menu-widgets.ts"); | |
| 263 | - | |
| 264 | - | |
| 265 | - | |
| 266 | - | |
| 267 | - | |
| 268 | - | |
| 269 | - | |
| 270 | - | |
| 271 | - | |
| 272 | - | |
| 273 | -async function deployWebsite(payload) { | |
| 274 | - const errors = []; | |
| 275 | - const mode = payload.mode === 'incremental' ? 'incremental' : 'full'; | |
| 276 | - if (mode === 'incremental') { | |
| 277 | - let pageIdMap = {}; | |
| 278 | - try { | |
| 279 | - ({ | |
| 280 | - pageIdMap | |
| 281 | - } = await (0,_steps_pages__WEBPACK_IMPORTED_MODULE_5__.createPages)(payload.pages)); | |
| 282 | - } catch (e) { | |
| 283 | - errors.push(`pages: ${e.message}`); | |
| 284 | - } | |
| 285 | - return { | |
| 286 | - status: errors.length ? 'error' : 'success', | |
| 287 | - homeUrl: window.location.origin, | |
| 288 | - pageIdMap, | |
| 289 | - ...(errors.length ? { | |
| 290 | - errors, | |
| 291 | - error: errors[0] | |
| 292 | - } : {}) | |
| 293 | - }; | |
| 294 | - } | |
| 295 | - if (payload.siteMeta) { | |
| 296 | - try { | |
| 297 | - await (0,_steps_site_metadata__WEBPACK_IMPORTED_MODULE_7__.setSiteMetadata)(payload.siteMeta); | |
| 298 | - } catch (e) { | |
| 299 | - errors.push(`site_metadata: ${e.message}`); | |
| 300 | - } | |
| 301 | - } | |
| 302 | - if (payload.logo) { | |
| 303 | - try { | |
| 304 | - await (0,_steps_logo__WEBPACK_IMPORTED_MODULE_3__.uploadLogo)(payload.logo); | |
| 305 | - } catch (e) { | |
| 306 | - errors.push(`logo: ${e.message}`); | |
| 307 | - } | |
| 308 | - } | |
| 309 | - if (payload.kitSettings) { | |
| 310 | - try { | |
| 311 | - await (0,_steps_kit_settings__WEBPACK_IMPORTED_MODULE_2__.updateKitSettings)(payload.kitSettings); | |
| 312 | - } catch (e) { | |
| 313 | - errors.push(`kit_settings: ${e.message}`); | |
| 314 | - } | |
| 315 | - } | |
| 316 | - if (payload.globalVariables) { | |
| 317 | - try { | |
| 318 | - await (0,_steps_global_variables__WEBPACK_IMPORTED_MODULE_1__.deployGlobalVariables)(payload.globalVariables); | |
| 319 | - } catch (e) { | |
| 320 | - errors.push(`global_variables: ${e.message}`); | |
| 321 | - } | |
| 322 | - } | |
| 323 | - if (payload.globalClasses) { | |
| 324 | - try { | |
| 325 | - await (0,_steps_global_classes__WEBPACK_IMPORTED_MODULE_0__.deployGlobalClasses)(payload.globalClasses); | |
| 326 | - } catch (e) { | |
| 327 | - errors.push(`global_classes: ${e.message}`); | |
| 328 | - } | |
| 329 | - } | |
| 330 | - let pageIdMap = {}; | |
| 331 | - let pageUrlMap = {}; | |
| 332 | - try { | |
| 333 | - ({ | |
| 334 | - pageIdMap, | |
| 335 | - pageUrlMap | |
| 336 | - } = await (0,_steps_pages__WEBPACK_IMPORTED_MODULE_5__.createPages)(payload.pages)); | |
| 337 | - } catch (e) { | |
| 338 | - errors.push(`pages: ${e.message}`); | |
| 339 | - } | |
| 340 | - const homeWpId = resolveHomePageId(payload.pages, pageIdMap); | |
| 341 | - if (homeWpId) { | |
| 342 | - try { | |
| 343 | - await (0,_steps_pages__WEBPACK_IMPORTED_MODULE_5__.setHomePage)(homeWpId); | |
| 344 | - } catch (e) { | |
| 345 | - errors.push(`home_page: ${e.message}`); | |
| 346 | - } | |
| 347 | - } | |
| 348 | - let createdMenus = {}; | |
| 349 | - try { | |
| 350 | - createdMenus = await (0,_steps_menus__WEBPACK_IMPORTED_MODULE_4__.createMenus)(payload.menus, pageIdMap); | |
| 351 | - } catch (e) { | |
| 352 | - errors.push(`menus: ${e.message}`); | |
| 353 | - } | |
| 354 | - if (payload.header) { | |
| 355 | - (0,_steps_wire_menu_widgets__WEBPACK_IMPORTED_MODULE_9__.wireMenuWidgets)(payload.header.content, { | |
| 356 | - items: payload.menus?.header ?? [], | |
| 357 | - pageUrlMap, | |
| 358 | - menuSlug: createdMenus.header?.slug | |
| 359 | - }); | |
| 360 | - } | |
| 361 | - if (payload.footer) { | |
| 362 | - (0,_steps_wire_menu_widgets__WEBPACK_IMPORTED_MODULE_9__.wireMenuWidgets)(payload.footer.content, { | |
| 363 | - items: payload.menus?.footer ?? [], | |
| 364 | - pageUrlMap, | |
| 365 | - menuSlug: createdMenus.footer?.slug | |
| 366 | - }); | |
| 367 | - } | |
| 368 | - const themeParts = []; | |
| 369 | - if (payload.header) { | |
| 370 | - themeParts.push({ | |
| 371 | - key: 'header', | |
| 372 | - part: payload.header | |
| 373 | - }); | |
| 374 | - } | |
| 375 | - if (payload.footer) { | |
| 376 | - themeParts.push({ | |
| 377 | - key: 'footer', | |
| 378 | - part: payload.footer | |
| 379 | - }); | |
| 380 | - } | |
| 381 | - if (payload.error404) { | |
| 382 | - themeParts.push({ | |
| 383 | - key: 'error404', | |
| 384 | - part: payload.error404 | |
| 385 | - }); | |
| 386 | - } | |
| 387 | - if (payload.singlePost) { | |
| 388 | - themeParts.push({ | |
| 389 | - key: 'singlePost', | |
| 390 | - part: payload.singlePost | |
| 391 | - }); | |
| 392 | - } | |
| 393 | - if (themeParts.length) { | |
| 394 | - try { | |
| 395 | - await (0,_steps_theme_parts__WEBPACK_IMPORTED_MODULE_8__.createThemeParts)(themeParts); | |
| 396 | - } catch (e) { | |
| 397 | - errors.push(`theme_parts: ${e.message}`); | |
| 398 | - } | |
| 399 | - } | |
| 400 | - if (payload.samplePosts?.length) { | |
| 401 | - try { | |
| 402 | - await (0,_steps_sample_posts__WEBPACK_IMPORTED_MODULE_6__.createSamplePosts)(payload.samplePosts); | |
| 403 | - } catch (e) { | |
| 404 | - errors.push(`sample_posts: ${e.message}`); | |
| 405 | - } | |
| 406 | - } | |
| 407 | - const result = { | |
| 408 | - status: errors.length ? 'error' : 'success', | |
| 409 | - homeUrl: window.location.origin, | |
| 410 | - homePageId: homeWpId || 0, | |
| 411 | - pageIdMap, | |
| 412 | - ...(errors.length ? { | |
| 413 | - errors, | |
| 414 | - error: errors[0] | |
| 415 | - } : {}) | |
| 416 | - }; | |
| 417 | - return result; | |
| 418 | -} | |
| 419 | -function resolveHomePageId(pages, pageIdMap) { | |
| 420 | - if (pageIdMap.home) { | |
| 421 | - return pageIdMap.home; | |
| 422 | - } | |
| 423 | - const homePage = pages[0]; | |
| 424 | - if (homePage && pageIdMap[homePage.id]) { | |
| 425 | - return pageIdMap[homePage.id]; | |
| 426 | - } | |
| 427 | - return undefined; | |
| 428 | -} | |
| 429 | - | |
| 430 | -/***/ }), | |
| 431 | - | |
| 432 | -/***/ "./packages/apps/site-builder/src/deploy/steps/global-classes.ts": | |
| 433 | -/*!***********************************************************************!*\ | |
| 434 | - !*** ./packages/apps/site-builder/src/deploy/steps/global-classes.ts ***! | |
| 435 | - \***********************************************************************/ | |
| 436 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 437 | - | |
| 438 | -__webpack_require__.r(__webpack_exports__); | |
| 439 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 440 | -/* harmony export */ deployGlobalClasses: function() { return /* binding */ deployGlobalClasses; } | |
| 441 | -/* harmony export */ }); | |
| 442 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 443 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 444 | -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types */ "./packages/apps/site-builder/src/deploy/types.ts"); | |
| 445 | - | |
| 446 | - | |
| 447 | -async function deployGlobalClasses(globalClasses) { | |
| 448 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 449 | - path: _types__WEBPACK_IMPORTED_MODULE_1__.DEPLOY_DESIGN_SYSTEM_PATH, | |
| 450 | - method: 'POST', | |
| 451 | - data: { | |
| 452 | - globalClasses | |
| 453 | - } | |
| 454 | - }); | |
| 455 | -} | |
| 456 | - | |
| 457 | -/***/ }), | |
| 458 | - | |
| 459 | -/***/ "./packages/apps/site-builder/src/deploy/steps/global-variables.ts": | |
| 460 | -/*!*************************************************************************!*\ | |
| 461 | - !*** ./packages/apps/site-builder/src/deploy/steps/global-variables.ts ***! | |
| 462 | - \*************************************************************************/ | |
| 463 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 464 | - | |
| 465 | -__webpack_require__.r(__webpack_exports__); | |
| 466 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 467 | -/* harmony export */ deployGlobalVariables: function() { return /* binding */ deployGlobalVariables; } | |
| 468 | -/* harmony export */ }); | |
| 469 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 470 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 471 | -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types */ "./packages/apps/site-builder/src/deploy/types.ts"); | |
| 472 | - | |
| 473 | - | |
| 474 | -async function deployGlobalVariables(globalVariables) { | |
| 475 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 476 | - path: _types__WEBPACK_IMPORTED_MODULE_1__.DEPLOY_DESIGN_SYSTEM_PATH, | |
| 477 | - method: 'POST', | |
| 478 | - data: { | |
| 479 | - globalVariables | |
| 480 | - } | |
| 481 | - }); | |
| 482 | -} | |
| 483 | - | |
| 484 | -/***/ }), | |
| 485 | - | |
| 486 | -/***/ "./packages/apps/site-builder/src/deploy/steps/kit-settings.ts": | |
| 487 | -/*!*********************************************************************!*\ | |
| 488 | - !*** ./packages/apps/site-builder/src/deploy/steps/kit-settings.ts ***! | |
| 489 | - \*********************************************************************/ | |
| 490 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 491 | - | |
| 492 | -__webpack_require__.r(__webpack_exports__); | |
| 493 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 494 | -/* harmony export */ updateKitSettings: function() { return /* binding */ updateKitSettings; } | |
| 495 | -/* harmony export */ }); | |
| 496 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 497 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 498 | - | |
| 499 | -async function updateKitSettings(kitSettings) { | |
| 500 | - const res = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 501 | - path: '/elementor/v1/settings/elementor_active_kit' | |
| 502 | - }); | |
| 503 | - const kitId = res?.data?.value; | |
| 504 | - if (!kitId) { | |
| 505 | - throw new Error('Could not resolve active kit ID'); | |
| 506 | - } | |
| 507 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 508 | - path: `/wp/v2/elementor_library/${kitId}`, | |
| 509 | - method: 'POST', | |
| 510 | - data: { | |
| 511 | - meta: { | |
| 512 | - _elementor_page_settings: kitSettings | |
| 513 | - } | |
| 514 | - } | |
| 515 | - }); | |
| 516 | -} | |
| 517 | - | |
| 518 | -/***/ }), | |
| 519 | - | |
| 520 | -/***/ "./packages/apps/site-builder/src/deploy/steps/logo.ts": | |
| 521 | -/*!*************************************************************!*\ | |
| 522 | - !*** ./packages/apps/site-builder/src/deploy/steps/logo.ts ***! | |
| 523 | - \*************************************************************/ | |
| 524 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 525 | - | |
| 526 | -__webpack_require__.r(__webpack_exports__); | |
| 527 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 528 | -/* harmony export */ uploadLogo: function() { return /* binding */ uploadLogo; } | |
| 529 | -/* harmony export */ }); | |
| 530 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 531 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 532 | - | |
| 533 | -async function uploadLogo(logo) { | |
| 534 | - const imageResponse = await fetch(logo.url); | |
| 535 | - if (!imageResponse.ok) { | |
| 536 | - throw new Error(`Failed to download logo: ${imageResponse.status}`); | |
| 537 | - } | |
| 538 | - const imageBlob = await imageResponse.blob(); | |
| 539 | - const media = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 540 | - path: '/wp/v2/media', | |
| 541 | - method: 'POST', | |
| 542 | - body: imageBlob, | |
| 543 | - headers: { | |
| 544 | - 'Content-Disposition': `attachment; filename="${logo.filename}"`, | |
| 545 | - 'Content-Type': imageBlob.type || 'image/png' | |
| 546 | - } | |
| 547 | - }); | |
| 548 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 549 | - path: '/wp/v2/settings', | |
| 550 | - method: 'POST', | |
| 551 | - data: { | |
| 552 | - site_logo: media.id | |
| 553 | - } | |
| 554 | - }); | |
| 555 | -} | |
| 556 | - | |
| 557 | -/***/ }), | |
| 558 | - | |
| 559 | -/***/ "./packages/apps/site-builder/src/deploy/steps/menu-locations.ts": | |
| 560 | -/*!***********************************************************************!*\ | |
| 561 | - !*** ./packages/apps/site-builder/src/deploy/steps/menu-locations.ts ***! | |
| 562 | - \***********************************************************************/ | |
| 563 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 564 | - | |
| 565 | -__webpack_require__.r(__webpack_exports__); | |
| 566 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 567 | -/* harmony export */ fetchMenuLocationSlugs: function() { return /* binding */ fetchMenuLocationSlugs; }, | |
| 568 | -/* harmony export */ isInvalidMenuLocationError: function() { return /* binding */ isInvalidMenuLocationError; }, | |
| 569 | -/* harmony export */ resolveMenuLocation: function() { return /* binding */ resolveMenuLocation; } | |
| 570 | -/* harmony export */ }); | |
| 571 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 572 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 573 | - | |
| 574 | -async function fetchMenuLocationSlugs() { | |
| 575 | - const locations = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 576 | - path: '/wp/v2/menu-locations' | |
| 577 | - }); | |
| 578 | - if (!locations) { | |
| 579 | - return []; | |
| 580 | - } | |
| 581 | - if (Array.isArray(locations)) { | |
| 582 | - return locations.map(location => location.name).filter(Boolean); | |
| 583 | - } | |
| 584 | - return Object.keys(locations); | |
| 585 | -} | |
| 586 | -function resolveMenuLocation(availableSlugs, candidates, fallbackPattern) { | |
| 587 | - for (const candidate of candidates) { | |
| 588 | - if (availableSlugs.includes(candidate)) { | |
| 589 | - return candidate; | |
| 590 | - } | |
| 591 | - } | |
| 592 | - if (fallbackPattern) { | |
| 593 | - const matched = availableSlugs.find(slug => fallbackPattern.test(slug)); | |
| 594 | - if (matched) { | |
| 595 | - return matched; | |
| 596 | - } | |
| 597 | - } | |
| 598 | - return undefined; | |
| 599 | -} | |
| 600 | -function isInvalidMenuLocationError(error) { | |
| 601 | - if (!error || typeof error !== 'object') { | |
| 602 | - return false; | |
| 603 | - } | |
| 604 | - const err = error; | |
| 605 | - if (err.code === 'rest_invalid_param' && err.data?.details?.locations?.code === 'rest_invalid_menu_location') { | |
| 606 | - return true; | |
| 607 | - } | |
| 608 | - return err.code === 'rest_invalid_menu_location'; | |
| 609 | -} | |
| 610 | - | |
| 611 | -/***/ }), | |
| 612 | - | |
| 613 | -/***/ "./packages/apps/site-builder/src/deploy/steps/menus.ts": | |
| 614 | -/*!**************************************************************!*\ | |
| 615 | - !*** ./packages/apps/site-builder/src/deploy/steps/menus.ts ***! | |
| 616 | - \**************************************************************/ | |
| 617 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 618 | - | |
| 619 | -__webpack_require__.r(__webpack_exports__); | |
| 620 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 621 | -/* harmony export */ createMenus: function() { return /* binding */ createMenus; } | |
| 622 | -/* harmony export */ }); | |
| 623 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 624 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 625 | -/* harmony import */ var _menu_locations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./menu-locations */ "./packages/apps/site-builder/src/deploy/steps/menu-locations.ts"); | |
| 626 | - | |
| 627 | - | |
| 628 | -async function postMenu(data) { | |
| 629 | - return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 630 | - path: '/wp/v2/menus', | |
| 631 | - method: 'POST', | |
| 632 | - data | |
| 633 | - }); | |
| 634 | -} | |
| 635 | -async function createMenu(args) { | |
| 636 | - const { | |
| 637 | - name, | |
| 638 | - items, | |
| 639 | - pageIdMap, | |
| 640 | - locationCandidates, | |
| 641 | - fallbackPattern | |
| 642 | - } = args; | |
| 643 | - const availableSlugs = await (0,_menu_locations__WEBPACK_IMPORTED_MODULE_1__.fetchMenuLocationSlugs)(); | |
| 644 | - const location = (0,_menu_locations__WEBPACK_IMPORTED_MODULE_1__.resolveMenuLocation)(availableSlugs, locationCandidates, fallbackPattern); | |
| 645 | - const baseData = { | |
| 646 | - name, | |
| 647 | - auto_add: false | |
| 648 | - }; | |
| 649 | - let menu; | |
| 650 | - try { | |
| 651 | - menu = await postMenu(location ? { | |
| 652 | - ...baseData, | |
| 653 | - locations: [location] | |
| 654 | - } : baseData); | |
| 655 | - } catch (error) { | |
| 656 | - if (!location || !(0,_menu_locations__WEBPACK_IMPORTED_MODULE_1__.isInvalidMenuLocationError)(error)) { | |
| 657 | - throw error; | |
| 658 | - } | |
| 659 | - menu = await postMenu(baseData); | |
| 660 | - } | |
| 661 | - const menuItemPromises = items.map((item, index) => { | |
| 662 | - const objectId = pageIdMap[item.pageId]; | |
| 663 | - if (!objectId) { | |
| 664 | - return Promise.resolve(); | |
| 665 | - } | |
| 666 | - return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 667 | - path: '/wp/v2/menu-items', | |
| 668 | - method: 'POST', | |
| 669 | - data: { | |
| 670 | - title: item.title, | |
| 671 | - object_id: objectId, | |
| 672 | - menus: menu.id, | |
| 673 | - object: 'page', | |
| 674 | - type: 'post_type', | |
| 675 | - status: 'publish', | |
| 676 | - menu_order: index + 1, | |
| 677 | - parent: 0 | |
| 678 | - } | |
| 679 | - }); | |
| 680 | - }); | |
| 681 | - await Promise.all(menuItemPromises); | |
| 682 | - return menu; | |
| 683 | -} | |
| 684 | -async function createMenus(menus, pageIdMap) { | |
| 685 | - const created = {}; | |
| 686 | - if (menus?.header?.length) { | |
| 687 | - created.header = await createMenu({ | |
| 688 | - name: `Header-${Date.now()}`, | |
| 689 | - items: menus.header, | |
| 690 | - pageIdMap, | |
| 691 | - locationCandidates: ['header', 'menu-1', 'main', 'navigation'], | |
| 692 | - fallbackPattern: /header|main|navigation/i | |
| 693 | - }); | |
| 694 | - } | |
| 695 | - if (menus?.footer?.length) { | |
| 696 | - created.footer = await createMenu({ | |
| 697 | - name: `Footer-${Date.now()}`, | |
| 698 | - items: menus.footer, | |
| 699 | - pageIdMap, | |
| 700 | - locationCandidates: ['footer', 'footer-menu', 'secondary'], | |
| 701 | - fallbackPattern: /footer/i | |
| 702 | - }); | |
| 703 | - } | |
| 704 | - return created; | |
| 705 | -} | |
| 706 | - | |
| 707 | -/***/ }), | |
| 708 | - | |
| 709 | -/***/ "./packages/apps/site-builder/src/deploy/steps/pages.ts": | |
| 710 | -/*!**************************************************************!*\ | |
| 711 | - !*** ./packages/apps/site-builder/src/deploy/steps/pages.ts ***! | |
| 712 | - \**************************************************************/ | |
| 713 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 714 | - | |
| 715 | -__webpack_require__.r(__webpack_exports__); | |
| 716 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 717 | -/* harmony export */ createPages: function() { return /* binding */ createPages; }, | |
| 718 | -/* harmony export */ setHomePage: function() { return /* binding */ setHomePage; } | |
| 719 | -/* harmony export */ }); | |
| 720 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 721 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 722 | - | |
| 723 | -async function createPages(pages) { | |
| 724 | - const pageIdMap = {}; | |
| 725 | - const pageUrlMap = {}; | |
| 726 | - for (const page of pages) { | |
| 727 | - const created = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 728 | - path: '/wp/v2/pages', | |
| 729 | - method: 'POST', | |
| 730 | - data: { | |
| 731 | - title: page.title, | |
| 732 | - status: 'publish', | |
| 733 | - meta: { | |
| 734 | - _elementor_edit_mode: 'builder', | |
| 735 | - _elementor_template_type: 'wp-page', | |
| 736 | - _elementor_data: JSON.stringify(page.content) | |
| 737 | - } | |
| 738 | - } | |
| 739 | - }); | |
| 740 | - pageIdMap[page.id] = created.id; | |
| 741 | - if (created.link) { | |
| 742 | - pageUrlMap[page.id] = created.link; | |
| 743 | - } | |
| 744 | - } | |
| 745 | - return { | |
| 746 | - pageIdMap, | |
| 747 | - pageUrlMap | |
| 748 | - }; | |
| 749 | -} | |
| 750 | -async function setHomePage(homePageWpId) { | |
| 751 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 752 | - path: '/wp/v2/settings', | |
| 753 | - method: 'POST', | |
| 754 | - data: { | |
| 755 | - page_on_front: homePageWpId, | |
| 756 | - show_on_front: 'page' | |
| 757 | - } | |
| 758 | - }); | |
| 759 | -} | |
| 760 | - | |
| 761 | -/***/ }), | |
| 762 | - | |
| 763 | -/***/ "./packages/apps/site-builder/src/deploy/steps/sample-posts.ts": | |
| 764 | -/*!*********************************************************************!*\ | |
| 765 | - !*** ./packages/apps/site-builder/src/deploy/steps/sample-posts.ts ***! | |
| 766 | - \*********************************************************************/ | |
| 767 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 768 | - | |
| 769 | -__webpack_require__.r(__webpack_exports__); | |
| 770 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 771 | -/* harmony export */ createSamplePosts: function() { return /* binding */ createSamplePosts; } | |
| 772 | -/* harmony export */ }); | |
| 773 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 774 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 775 | - | |
| 776 | -async function createSamplePosts(posts) { | |
| 777 | - for (const post of posts) { | |
| 778 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 779 | - path: '/wp/v2/posts', | |
| 780 | - method: 'POST', | |
| 781 | - data: { | |
| 782 | - title: post.title, | |
| 783 | - content: post.content, | |
| 784 | - status: 'publish' | |
| 785 | - } | |
| 786 | - }); | |
| 787 | - } | |
| 788 | -} | |
| 789 | - | |
| 790 | -/***/ }), | |
| 791 | - | |
| 792 | -/***/ "./packages/apps/site-builder/src/deploy/steps/site-metadata.ts": | |
| 793 | -/*!**********************************************************************!*\ | |
| 794 | - !*** ./packages/apps/site-builder/src/deploy/steps/site-metadata.ts ***! | |
| 795 | - \**********************************************************************/ | |
| 796 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 797 | - | |
| 798 | -__webpack_require__.r(__webpack_exports__); | |
| 799 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 800 | -/* harmony export */ setSiteMetadata: function() { return /* binding */ setSiteMetadata; } | |
| 801 | -/* harmony export */ }); | |
| 802 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 803 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 804 | - | |
| 805 | -async function setSiteMetadata(siteMeta) { | |
| 806 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 807 | - path: '/wp/v2/settings', | |
| 808 | - method: 'POST', | |
| 809 | - data: { | |
| 810 | - title: siteMeta.title, | |
| 811 | - description: siteMeta.tagline | |
| 812 | - } | |
| 813 | - }); | |
| 814 | -} | |
| 815 | - | |
| 816 | -/***/ }), | |
| 817 | - | |
| 818 | -/***/ "./packages/apps/site-builder/src/deploy/steps/theme-parts.ts": | |
| 819 | -/*!********************************************************************!*\ | |
| 820 | - !*** ./packages/apps/site-builder/src/deploy/steps/theme-parts.ts ***! | |
| 821 | - \********************************************************************/ | |
| 822 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 823 | - | |
| 824 | -__webpack_require__.r(__webpack_exports__); | |
| 825 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 826 | -/* harmony export */ createThemeParts: function() { return /* binding */ createThemeParts; } | |
| 827 | -/* harmony export */ }); | |
| 828 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); | |
| 829 | -/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0__); | |
| 830 | - | |
| 831 | -async function getSupportedDocumentTypes() { | |
| 832 | - try { | |
| 833 | - const schema = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 834 | - path: '/wp/v2/elementor_library', | |
| 835 | - method: 'OPTIONS' | |
| 836 | - }); | |
| 837 | - return schema?.schema?.properties?.meta?.properties?._elementor_template_type?.enum || []; | |
| 838 | - } catch { | |
| 839 | - return []; | |
| 840 | - } | |
| 841 | -} | |
| 842 | -function getConditionBucket(type) { | |
| 843 | - if (type === 'header') { | |
| 844 | - return 'header'; | |
| 845 | - } | |
| 846 | - if (type === 'footer') { | |
| 847 | - return 'footer'; | |
| 848 | - } | |
| 849 | - return 'single'; | |
| 850 | -} | |
| 851 | -async function createThemeParts(parts) { | |
| 852 | - const supportedTypes = await getSupportedDocumentTypes(); | |
| 853 | - const supported = parts.filter(({ | |
| 854 | - part | |
| 855 | - }) => supportedTypes.includes(part.type)); | |
| 856 | - if (!supported.length) { | |
| 857 | - return; | |
| 858 | - } | |
| 859 | - const templateIds = {}; | |
| 860 | - for (const { | |
| 861 | - key, | |
| 862 | - part | |
| 863 | - } of supported) { | |
| 864 | - const created = await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 865 | - path: '/wp/v2/elementor_library', | |
| 866 | - method: 'POST', | |
| 867 | - data: { | |
| 868 | - title: part.title, | |
| 869 | - status: 'publish', | |
| 870 | - meta: { | |
| 871 | - _elementor_edit_mode: 'builder', | |
| 872 | - _elementor_template_type: part.type, | |
| 873 | - _elementor_data: JSON.stringify(part.content), | |
| 874 | - _elementor_conditions: part.themeBuilderCondition || 'include/general' | |
| 875 | - } | |
| 876 | - } | |
| 877 | - }); | |
| 878 | - templateIds[key] = created.id; | |
| 879 | - } | |
| 880 | - const conditions = {}; | |
| 881 | - for (const { | |
| 882 | - key, | |
| 883 | - part | |
| 884 | - } of supported) { | |
| 885 | - const tid = templateIds[key]; | |
| 886 | - if (!tid) { | |
| 887 | - continue; | |
| 888 | - } | |
| 889 | - const conditionValue = part.themeBuilderCondition || 'include/general'; | |
| 890 | - const bucket = getConditionBucket(part.type); | |
| 891 | - if (!conditions[bucket]) { | |
| 892 | - conditions[bucket] = {}; | |
| 893 | - } | |
| 894 | - conditions[bucket][tid] = [conditionValue]; | |
| 895 | - } | |
| 896 | - await _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_0___default()({ | |
| 897 | - path: '/elementor/v1/settings/elementor_pro_theme_builder_conditions', | |
| 898 | - method: 'POST', | |
| 899 | - data: { | |
| 900 | - value: conditions | |
| 901 | - } | |
| 902 | - }); | |
| 903 | -} | |
| 904 | - | |
| 905 | -/***/ }), | |
| 906 | - | |
| 907 | -/***/ "./packages/apps/site-builder/src/deploy/steps/wire-menu-widgets.ts": | |
| 908 | -/*!**************************************************************************!*\ | |
| 909 | - !*** ./packages/apps/site-builder/src/deploy/steps/wire-menu-widgets.ts ***! | |
| 910 | - \**************************************************************************/ | |
| 911 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 912 | - | |
| 913 | -__webpack_require__.r(__webpack_exports__); | |
| 914 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 915 | -/* harmony export */ wireMenuWidgets: function() { return /* binding */ wireMenuWidgets; } | |
| 916 | -/* harmony export */ }); | |
| 917 | -const MEGA_MENU_WIDGET_TYPE = 'mega-menu'; | |
| 918 | -const NAV_MENU_WIDGET_TYPE = 'nav-menu'; | |
| 919 | -function buildItemLink(url) { | |
| 920 | - return { | |
| 921 | - url, | |
| 922 | - is_external: '', | |
| 923 | - nofollow: '' | |
| 924 | - }; | |
| 925 | -} | |
| 926 | -function wireMegaMenu(node, items, pageUrlMap) { | |
| 927 | - const menuItems = node.settings?.menu_items; | |
| 928 | - if (!Array.isArray(menuItems)) { | |
| 929 | - return 0; | |
| 930 | - } | |
| 931 | - let patched = 0; | |
| 932 | - menuItems.forEach((menuItem, index) => { | |
| 933 | - const item = items[index]; | |
| 934 | - if (!item || typeof menuItem !== 'object' || menuItem === null) { | |
| 935 | - return; | |
| 936 | - } | |
| 937 | - const url = pageUrlMap[item.pageId]; | |
| 938 | - if (!url) { | |
| 939 | - return; | |
| 940 | - } | |
| 941 | - menuItem.item_link = buildItemLink(url); | |
| 942 | - patched += 1; | |
| 943 | - }); | |
| 944 | - return patched; | |
| 945 | -} | |
| 946 | -function wireNavMenu(node, menuSlug) { | |
| 947 | - if (!menuSlug || !node.settings) { | |
| 948 | - return 0; | |
| 949 | - } | |
| 950 | - node.settings.menu = menuSlug; | |
| 951 | - return 1; | |
| 952 | -} | |
| 953 | -function wireMenuWidgets(content, options) { | |
| 954 | - const walk = nodes => { | |
| 955 | - for (const node of nodes) { | |
| 956 | - if (node.widgetType === MEGA_MENU_WIDGET_TYPE) { | |
| 957 | - wireMegaMenu(node, options.items, options.pageUrlMap); | |
| 958 | - } else if (node.widgetType === NAV_MENU_WIDGET_TYPE) { | |
| 959 | - wireNavMenu(node, options.menuSlug); | |
| 960 | - } | |
| 961 | - if (Array.isArray(node.elements)) { | |
| 962 | - walk(node.elements); | |
| 963 | - } | |
| 964 | - } | |
| 965 | - }; | |
| 966 | - walk(content); | |
| 967 | -} | |
| 968 | - | |
| 969 | -/***/ }), | |
| 970 | - | |
| 971 | -/***/ "./packages/apps/site-builder/src/deploy/types.ts": | |
| 972 | -/*!********************************************************!*\ | |
| 973 | - !*** ./packages/apps/site-builder/src/deploy/types.ts ***! | |
| 974 | - \********************************************************/ | |
| 975 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 976 | - | |
| 977 | -__webpack_require__.r(__webpack_exports__); | |
| 978 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 979 | -/* harmony export */ DEPLOY_DESIGN_SYSTEM_PATH: function() { return /* binding */ DEPLOY_DESIGN_SYSTEM_PATH; } | |
| 980 | -/* harmony export */ }); | |
| 981 | -const DEPLOY_DESIGN_SYSTEM_PATH = '/elementor/v1/site-builder/deploy-design-system'; | |
| 982 | - | |
| 983 | -/***/ }), | |
| 984 | - | |
| 985 | -/***/ "./packages/apps/site-builder/src/hooks/use-site-builder-iframe-messaging.ts": | |
| 986 | -/*!***********************************************************************************!*\ | |
| 987 | - !*** ./packages/apps/site-builder/src/hooks/use-site-builder-iframe-messaging.ts ***! | |
| 988 | - \***********************************************************************************/ | |
| 989 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 990 | - | |
| 991 | -__webpack_require__.r(__webpack_exports__); | |
| 992 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 993 | -/* harmony export */ useSiteBuilderIframeMessaging: function() { return /* binding */ useSiteBuilderIframeMessaging; } | |
| 994 | -/* harmony export */ }); | |
| 995 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 996 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 997 | -/* harmony import */ var _deploy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../deploy */ "./packages/apps/site-builder/src/deploy/index.ts"); | |
| 998 | -/* harmony import */ var _deploy_can_redirect_after_deploy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../deploy/can-redirect-after-deploy */ "./packages/apps/site-builder/src/deploy/can-redirect-after-deploy.ts"); | |
| 999 | -/* harmony import */ var _deploy_deploy_editor_redirect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../deploy/deploy-editor-redirect */ "./packages/apps/site-builder/src/deploy/deploy-editor-redirect.ts"); | |
| 1000 | -/* harmony import */ var _site_builder_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../site-builder-config */ "./packages/apps/site-builder/src/site-builder-config.ts"); | |
| 1001 | - | |
| 1002 | - | |
| 1003 | - | |
| 1004 | - | |
| 1005 | - | |
| 1006 | -function sendReferrerInfo(iframe, event, targetOrigin, siteBuilderParams, connectAuth) { | |
| 1007 | - const config = (0,_site_builder_config__WEBPACK_IMPORTED_MODULE_4__.getSiteBuilderConfig)(); | |
| 1008 | - iframe.contentWindow?.postMessage({ | |
| 1009 | - type: 'referrer/info', | |
| 1010 | - instanceId: event.data?.payload?.instanceId ?? '', | |
| 1011 | - info: { | |
| 1012 | - connectAuth, | |
| 1013 | - exitTo: config?.exitTo, | |
| 1014 | - page: { | |
| 1015 | - url: window.location.href, | |
| 1016 | - elementorAiCurrentContext: (0,_site_builder_config__WEBPACK_IMPORTED_MODULE_4__.getElementorAiCurrentContext)() | |
| 1017 | - }, | |
| 1018 | - user: { | |
| 1019 | - isAdmin: config?.isAdmin ?? false | |
| 1020 | - }, | |
| 1021 | - siteBuilderParams | |
| 1022 | - } | |
| 1023 | - }, targetOrigin); | |
| 1024 | -} | |
| 1025 | -async function handleDeploy(iframe, event) { | |
| 1026 | - const origin = event.origin || '*'; | |
| 1027 | - const payload = event.data?.payload; | |
| 1028 | - const isIncremental = payload?.mode === 'incremental'; | |
| 1029 | - if (!payload) { | |
| 1030 | - iframe?.contentWindow?.postMessage({ | |
| 1031 | - type: 'site-planner/deploy-website/result', | |
| 1032 | - payload: { | |
| 1033 | - status: 'error', | |
| 1034 | - error: 'Missing deploy payload' | |
| 1035 | - } | |
| 1036 | - }, origin); | |
| 1037 | - return null; | |
| 1038 | - } | |
| 1039 | - try { | |
| 1040 | - const result = await (0,_deploy__WEBPACK_IMPORTED_MODULE_1__.deployWebsite)(payload); | |
| 1041 | - iframe?.contentWindow?.postMessage({ | |
| 1042 | - type: 'site-planner/deploy-website/result', | |
| 1043 | - payload: result | |
| 1044 | - }, origin); | |
| 1045 | - const editorPageId = (0,_deploy_can_redirect_after_deploy__WEBPACK_IMPORTED_MODULE_2__.resolveEditorRedirectPageId)({ | |
| 1046 | - isIncremental, | |
| 1047 | - homePageId: result.homePageId, | |
| 1048 | - pageIdMap: result.pageIdMap, | |
| 1049 | - pages: payload.pages, | |
| 1050 | - errors: result.errors | |
| 1051 | - }); | |
| 1052 | - if (editorPageId) { | |
| 1053 | - return `/wp-admin/post.php?post=${editorPageId}&action=elementor`; | |
| 1054 | - } | |
| 1055 | - return null; | |
| 1056 | - } catch (err) { | |
| 1057 | - iframe?.contentWindow?.postMessage({ | |
| 1058 | - type: 'site-planner/deploy-website/result', | |
| 1059 | - payload: { | |
| 1060 | - status: 'error', | |
| 1061 | - error: err instanceof Error ? err.message : 'Deploy failed' | |
| 1062 | - } | |
| 1063 | - }, origin); | |
| 1064 | - return null; | |
| 1065 | - } | |
| 1066 | -} | |
| 1067 | -function useSiteBuilderIframeMessaging({ | |
| 1068 | - iframeRef, | |
| 1069 | - iframeUrl, | |
| 1070 | - siteBuilderParams, | |
| 1071 | - connectAuth | |
| 1072 | -}) { | |
| 1073 | - const pendingRedirectRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); | |
| 1074 | - const allowedOrigin = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { | |
| 1075 | - try { | |
| 1076 | - return new URL(iframeUrl).origin; | |
| 1077 | - } catch { | |
| 1078 | - return ''; | |
| 1079 | - } | |
| 1080 | - }, [iframeUrl]); | |
| 1081 | - const handleMessage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async event => { | |
| 1082 | - if (!allowedOrigin) { | |
| 1083 | - return; | |
| 1084 | - } | |
| 1085 | - if (event.origin !== allowedOrigin) { | |
| 1086 | - return; | |
| 1087 | - } | |
| 1088 | - if (event.source !== iframeRef.current?.contentWindow) { | |
| 1089 | - return; | |
| 1090 | - } | |
| 1091 | - const { | |
| 1092 | - type | |
| 1093 | - } = event.data ?? {}; | |
| 1094 | - if (type === 'get/referrer/info') { | |
| 1095 | - const iframe = iframeRef.current; | |
| 1096 | - if (iframe?.contentWindow) { | |
| 1097 | - sendReferrerInfo(iframe, event, allowedOrigin, siteBuilderParams, connectAuth); | |
| 1098 | - } | |
| 1099 | - return; | |
| 1100 | - } | |
| 1101 | - if (type === 'site-planner/deploy-website') { | |
| 1102 | - (0,_deploy_deploy_editor_redirect__WEBPACK_IMPORTED_MODULE_3__.clearPendingEditorRedirect)(pendingRedirectRef.current); | |
| 1103 | - pendingRedirectRef.current = null; | |
| 1104 | - const redirectUrl = await handleDeploy(iframeRef.current, event); | |
| 1105 | - if (redirectUrl) { | |
| 1106 | - pendingRedirectRef.current = (0,_deploy_deploy_editor_redirect__WEBPACK_IMPORTED_MODULE_3__.scheduleEditorRedirectAfterDeploy)(redirectUrl); | |
| 1107 | - } | |
| 1108 | - return; | |
| 1109 | - } | |
| 1110 | - if (type === 'site-planner/deploy-website/acknowledge') { | |
| 1111 | - (0,_deploy_deploy_editor_redirect__WEBPACK_IMPORTED_MODULE_3__.completeEditorRedirectOnDeployAcknowledge)(pendingRedirectRef.current); | |
| 1112 | - pendingRedirectRef.current = null; | |
| 1113 | - return; | |
| 1114 | - } | |
| 1115 | - if (type === 'element-selector/close') { | |
| 1116 | - const exitTo = (0,_site_builder_config__WEBPACK_IMPORTED_MODULE_4__.getSiteBuilderConfig)()?.exitTo; | |
| 1117 | - if (window.top && exitTo && typeof exitTo === 'string') { | |
| 1118 | - window.top.location.href = exitTo; | |
| 1119 | - } | |
| 1120 | - } | |
| 1121 | - }, [allowedOrigin, siteBuilderParams, connectAuth, iframeRef]); | |
| 1122 | - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { | |
| 1123 | - window.addEventListener('message', handleMessage); | |
| 1124 | - return () => window.removeEventListener('message', handleMessage); | |
| 1125 | - }, [handleMessage]); | |
| 1126 | - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { | |
| 1127 | - return () => (0,_deploy_deploy_editor_redirect__WEBPACK_IMPORTED_MODULE_3__.clearPendingEditorRedirect)(pendingRedirectRef.current); | |
| 1128 | - }, []); | |
| 1129 | -} | |
| 1130 | - | |
| 1131 | -/***/ }), | |
| 1132 | - | |
| 1133 | -/***/ "./packages/apps/site-builder/src/site-builder-config.ts": | |
| 1134 | -/*!***************************************************************!*\ | |
| 1135 | - !*** ./packages/apps/site-builder/src/site-builder-config.ts ***! | |
| 1136 | - \***************************************************************/ | |
| 1137 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 1138 | - | |
| 1139 | -__webpack_require__.r(__webpack_exports__); | |
| 1140 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 1141 | -/* harmony export */ getElementorAiCurrentContext: function() { return /* binding */ getElementorAiCurrentContext; }, | |
| 1142 | -/* harmony export */ getSiteBuilderConfig: function() { return /* binding */ getSiteBuilderConfig; } | |
| 1143 | -/* harmony export */ }); | |
| 1144 | -function getSiteBuilderConfig() { | |
| 1145 | - return window.elementorAppConfig?.['site-builder']; | |
| 1146 | -} | |
| 1147 | -function getElementorAiCurrentContext() { | |
| 1148 | - return getSiteBuilderConfig()?.elementorAiCurrentContext || {}; | |
| 1149 | -} | |
| 1150 | - | |
| 1151 | -/***/ }), | |
| 1152 | - | |
| 1153 | -/***/ "@elementor/schema": | |
| 1154 | -/*!*****************************************!*\ | |
| 1155 | - !*** external ["elementorV2","schema"] ***! | |
| 1156 | - \*****************************************/ | |
| 1157 | -/***/ (function(module) { | |
| 1158 | - | |
| 1159 | -module.exports = window["elementorV2"]["schema"]; | |
| 1160 | - | |
| 1161 | -/***/ }), | |
| 1162 | - | |
| 1163 | -/***/ "@wordpress/api-fetch": | |
| 1164 | -/*!**********************************!*\ | |
| 1165 | - !*** external ["wp","apiFetch"] ***! | |
| 1166 | - \**********************************/ | |
| 1167 | -/***/ (function(module) { | |
| 1168 | - | |
| 1169 | -module.exports = window["wp"]["apiFetch"]; | |
| 1170 | - | |
| 1171 | -/***/ }), | |
| 1172 | - | |
| 1173 | -/***/ "react": | |
| 1174 | -/*!**************************!*\ | |
| 1175 | - !*** external ["React"] ***! | |
| 1176 | - \**************************/ | |
| 1177 | -/***/ (function(module) { | |
| 1178 | - | |
| 1179 | -module.exports = window["React"]; | |
| 1180 | - | |
| 1181 | -/***/ }) | |
| 1182 | - | |
| 1183 | -/******/ }); | |
| 1184 | -/************************************************************************/ | |
| 1185 | -/******/ // The module cache | |
| 1186 | -/******/ var __webpack_module_cache__ = {}; | |
| 1187 | -/******/ | |
| 1188 | -/******/ // The require function | |
| 1189 | -/******/ function __webpack_require__(moduleId) { | |
| 1190 | -/******/ // Check if module is in cache | |
| 1191 | -/******/ var cachedModule = __webpack_module_cache__[moduleId]; | |
| 1192 | -/******/ if (cachedModule !== undefined) { | |
| 1193 | -/******/ return cachedModule.exports; | |
| 1194 | -/******/ } | |
| 1195 | -/******/ // Create a new module (and put it into the cache) | |
| 1196 | -/******/ var module = __webpack_module_cache__[moduleId] = { | |
| 1197 | -/******/ // no module.id needed | |
| 1198 | -/******/ // no module.loaded needed | |
| 1199 | -/******/ exports: {} | |
| 1200 | -/******/ }; | |
| 1201 | -/******/ | |
| 1202 | -/******/ // Execute the module function | |
| 1203 | -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); | |
| 1204 | -/******/ | |
| 1205 | -/******/ // Return the exports of the module | |
| 1206 | -/******/ return module.exports; | |
| 1207 | -/******/ } | |
| 1208 | -/******/ | |
| 1209 | -/************************************************************************/ | |
| 1210 | -/******/ /* webpack/runtime/compat get default export */ | |
| 1211 | -/******/ !function() { | |
| 1212 | -/******/ // getDefaultExport function for compatibility with non-harmony modules | |
| 1213 | -/******/ __webpack_require__.n = function(module) { | |
| 1214 | -/******/ var getter = module && module.__esModule ? | |
| 1215 | -/******/ function() { return module['default']; } : | |
| 1216 | -/******/ function() { return module; }; | |
| 1217 | -/******/ __webpack_require__.d(getter, { a: getter }); | |
| 1218 | -/******/ return getter; | |
| 1219 | -/******/ }; | |
| 1220 | -/******/ }(); | |
| 1221 | -/******/ | |
| 1222 | -/******/ /* webpack/runtime/define property getters */ | |
| 1223 | -/******/ !function() { | |
| 1224 | -/******/ // define getter functions for harmony exports | |
| 1225 | -/******/ __webpack_require__.d = function(exports, definition) { | |
| 1226 | -/******/ for(var key in definition) { | |
| 1227 | -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { | |
| 1228 | -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); | |
| 1229 | -/******/ } | |
| 1230 | -/******/ } | |
| 1231 | -/******/ }; | |
| 1232 | -/******/ }(); | |
| 1233 | -/******/ | |
| 1234 | -/******/ /* webpack/runtime/hasOwnProperty shorthand */ | |
| 1235 | -/******/ !function() { | |
| 1236 | -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } | |
| 1237 | -/******/ }(); | |
| 1238 | -/******/ | |
| 1239 | -/******/ /* webpack/runtime/make namespace object */ | |
| 1240 | -/******/ !function() { | |
| 1241 | -/******/ // define __esModule on exports | |
| 1242 | -/******/ __webpack_require__.r = function(exports) { | |
| 1243 | -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | |
| 1244 | -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | |
| 1245 | -/******/ } | |
| 1246 | -/******/ Object.defineProperty(exports, '__esModule', { value: true }); | |
| 1247 | -/******/ }; | |
| 1248 | -/******/ }(); | |
| 1249 | -/******/ | |
| 1250 | -/************************************************************************/ | |
| 1251 | -var __webpack_exports__ = {}; | |
| 1252 | -// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. | |
| 1253 | -!function() { | |
| 1254 | -/*!*************************************************!*\ | |
| 1255 | - !*** ./packages/apps/site-builder/src/index.ts ***! | |
| 1256 | - \*************************************************/ | |
| 1257 | -__webpack_require__.r(__webpack_exports__); | |
| 1258 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 1259 | -/* harmony export */ App: function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_0__.App; } | |
| 1260 | -/* harmony export */ }); | |
| 1261 | -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components */ "./packages/apps/site-builder/src/components/index.ts"); | |
| 1262 | - | |
| 1263 | -}(); | |
| 1264 | -(window.elementorV2 = window.elementorV2 || {}).siteBuilder = __webpack_exports__; | |
| 1265 | -/******/ })() | |
| 1266 | -; | |
| 1267 | -window.elementorV2.siteBuilder?.init?.(); | |
| 1 | +/*! For license information please see site-builder.js.LICENSE.txt */ | |
| 2 | +!function(){"use strict";var e={"./packages/apps/site-builder/src/components/app.tsx":function(e,t,s){s.r(t),s.d(t,{App:function(){return App}});var a=s("react"),o=s("./packages/apps/site-builder/src/deploy/index.ts");const r={position:"fixed",top:0,left:0,width:"100vw",height:"100vh",border:"none",zIndex:1e4};function getConfig(){return window.elementorAppConfig?.["site-builder"]}function App(){const e=(0,a.useRef)(null),t=(0,a.useMemo)(()=>getConfig()?.iframeUrl??"",[]),s=(0,a.useMemo)(()=>{try{return new URL(t).origin}catch{return""}},[t]),n=(0,a.useCallback)(async t=>{if(!s)return;if(t.origin!==s)return;if(t.source!==e.current?.contentWindow)return;const{type:a}=t.data??{};if("get/referrer/info"===a){const a=e.current;return void(a?.contentWindow&&function sendReferrerInfo(e,t,s){const a=getConfig();e.contentWindow?.postMessage({type:"referrer/info",instanceId:t.data?.payload?.instanceId??"",info:{connectAuth:a?.connectAuth,exitTo:a?.exitTo,page:{url:window.location.href,elementorAiCurrentContext:getConfig()?.elementorAiCurrentContext||{}},user:{isAdmin:a?.isAdmin??!1}}},s)}(a,t,s))}if("site-planner/deploy-website"===a&&await async function handleDeploy(e,t){const s=t.origin||"*";try{const a=await(0,o.deployWebsite)(t.data.payload);e?.contentWindow?.postMessage({type:"site-planner/deploy-website/result",payload:a},s),"success"===a.status&&a.homePageId&&(window.location.href=`/wp-admin/post.php?post=${a.homePageId}&action=elementor`)}catch(t){e?.contentWindow?.postMessage({type:"site-planner/deploy-website/result",payload:{status:"error",error:t instanceof Error?t.message:"Deploy failed"}},s)}}(e.current,t),"element-selector/close"===a){const e=getConfig()?.exitTo;window.top&&e&&"string"==typeof e&&(window.top.location.href=e)}},[s]);return(0,a.useEffect)(()=>(window.addEventListener("message",n),()=>window.removeEventListener("message",n)),[n]),(0,a.useEffect)(()=>{const e=window.wpApiSettings,t=e?.nonce||"";if(!t)return;fetch(`${e?.root||"/wp-json/"}elementor/v1/site-builder/snapshot`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","X-WP-Nonce":t},body:JSON.stringify({value:{}})}).catch(()=>{})},[]),a.createElement("iframe",{ref:e,src:t,style:r,title:"Website Planner",allow:"clipboard-read; clipboard-write"})}},"./packages/apps/site-builder/src/components/index.ts":function(e,t,s){s.r(t),s.d(t,{App:function(){return a.App}});var a=s("./packages/apps/site-builder/src/components/app.tsx")},"./packages/apps/site-builder/src/deploy/index.ts":function(e,t,s){s.r(t),s.d(t,{deployWebsite:function(){return deployWebsite}});var a=s("./packages/apps/site-builder/src/deploy/steps/global-classes.ts"),o=s("./packages/apps/site-builder/src/deploy/steps/global-variables.ts"),r=s("./packages/apps/site-builder/src/deploy/steps/kit-settings.ts"),n=s("./packages/apps/site-builder/src/deploy/steps/logo.ts"),i=s("./packages/apps/site-builder/src/deploy/steps/menus.ts"),p=s("./packages/apps/site-builder/src/deploy/steps/pages.ts"),c=s("./packages/apps/site-builder/src/deploy/steps/sample-posts.ts"),l=s("./packages/apps/site-builder/src/deploy/steps/site-metadata.ts"),d=s("./packages/apps/site-builder/src/deploy/steps/theme-parts.ts");async function deployWebsite(e){const t=[];try{await(0,l.setSiteMetadata)(e.siteMeta)}catch(e){t.push(`site_metadata: ${e.message}`)}if(e.logo)try{await(0,n.uploadLogo)(e.logo)}catch(e){t.push(`logo: ${e.message}`)}try{await(0,r.updateKitSettings)(e.kitSettings)}catch(e){t.push(`kit_settings: ${e.message}`)}if(e.globalVariables)try{await(0,o.deployGlobalVariables)(e.globalVariables)}catch(e){t.push(`global_variables: ${e.message}`)}if(e.globalClasses)try{await(0,a.deployGlobalClasses)(e.globalClasses)}catch(e){t.push(`global_classes: ${e.message}`)}let s={};try{s=await(0,p.createPages)(e.pages)}catch(e){t.push(`pages: ${e.message}`)}const u=s.home;if(u)try{await(0,p.setHomePage)(u)}catch(e){t.push(`home_page: ${e.message}`)}const g=[];if(e.header&&g.push({key:"header",part:e.header}),e.footer&&g.push({key:"footer",part:e.footer}),e.error404&&g.push({key:"error404",part:e.error404}),e.singlePost&&g.push({key:"singlePost",part:e.singlePost}),g.length)try{await(0,d.createThemeParts)(g)}catch(e){t.push(`theme_parts: ${e.message}`)}if(e.samplePosts?.length)try{await(0,c.createSamplePosts)(e.samplePosts)}catch(e){t.push(`sample_posts: ${e.message}`)}try{await(0,i.createMenus)(e.menus,s)}catch(e){t.push(`menus: ${e.message}`)}return{status:t.length?"error":"success",homeUrl:window.location.origin,homePageId:s.home||0,...t.length?{errors:t,error:t[0]}:{}}}},"./packages/apps/site-builder/src/deploy/steps/global-classes.ts":function(e,t,s){s.r(t),s.d(t,{deployGlobalClasses:function(){return deployGlobalClasses}});var a=s("@wordpress/api-fetch"),o=s.n(a),r=s("./packages/apps/site-builder/src/deploy/types.ts");async function deployGlobalClasses(e){await o()({path:r.DEPLOY_DESIGN_SYSTEM_PATH,method:"POST",data:{globalClasses:e}})}},"./packages/apps/site-builder/src/deploy/steps/global-variables.ts":function(e,t,s){s.r(t),s.d(t,{deployGlobalVariables:function(){return deployGlobalVariables}});var a=s("@wordpress/api-fetch"),o=s.n(a),r=s("./packages/apps/site-builder/src/deploy/types.ts");async function deployGlobalVariables(e){await o()({path:r.DEPLOY_DESIGN_SYSTEM_PATH,method:"POST",data:{globalVariables:e}})}},"./packages/apps/site-builder/src/deploy/steps/kit-settings.ts":function(e,t,s){s.r(t),s.d(t,{updateKitSettings:function(){return updateKitSettings}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function updateKitSettings(e){const t=await o()({path:"/elementor/v1/settings/elementor_active_kit"}),s=t?.data?.value;if(!s)throw new Error("Could not resolve active kit ID");await o()({path:`/wp/v2/elementor_library/${s}`,method:"POST",data:{meta:{_elementor_page_settings:e}}})}},"./packages/apps/site-builder/src/deploy/steps/logo.ts":function(e,t,s){s.r(t),s.d(t,{uploadLogo:function(){return uploadLogo}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function uploadLogo(e){const t=await fetch(e.url);if(!t.ok)throw new Error(`Failed to download logo: ${t.status}`);const s=await t.blob(),a=await o()({path:"/wp/v2/media",method:"POST",body:s,headers:{"Content-Disposition":`attachment; filename="${e.filename}"`,"Content-Type":s.type||"image/png"}});await o()({path:"/wp/v2/settings",method:"POST",data:{site_logo:a.id}})}},"./packages/apps/site-builder/src/deploy/steps/menus.ts":function(e,t,s){s.r(t),s.d(t,{createMenus:function(){return createMenus}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function createMenu(e,t,s,a){const r=await o()({path:"/wp/v2/menus",method:"POST",data:{name:e,auto_add:!1,locations:[a]}}),n=t.map((e,t)=>{const a=s[e.pageId];return a?o()({path:"/wp/v2/menu-items",method:"POST",data:{title:e.title,object_id:a,menus:r.id,object:"page",type:"post_type",status:"publish",menu_order:t+1,parent:0}}):Promise.resolve()});await Promise.all(n)}async function createMenus(e,t){e.header?.length&&await createMenu(`Header-${Date.now()}`,e.header,t,"primary"),e.footer?.length&&await createMenu(`Footer-${Date.now()}`,e.footer,t,"footer")}},"./packages/apps/site-builder/src/deploy/steps/pages.ts":function(e,t,s){s.r(t),s.d(t,{createPages:function(){return createPages},setHomePage:function(){return setHomePage}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function createPages(e){const t={};for(const s of e){const e=await o()({path:"/wp/v2/pages",method:"POST",data:{title:s.title,status:"publish",meta:{_elementor_edit_mode:"builder",_elementor_template_type:"wp-page",_elementor_data:JSON.stringify(s.content)}}});t[s.id]=e.id}return t}async function setHomePage(e){await o()({path:"/wp/v2/settings",method:"POST",data:{page_on_front:e,show_on_front:"page"}})}},"./packages/apps/site-builder/src/deploy/steps/sample-posts.ts":function(e,t,s){s.r(t),s.d(t,{createSamplePosts:function(){return createSamplePosts}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function createSamplePosts(e){for(const t of e)await o()({path:"/wp/v2/posts",method:"POST",data:{title:t.title,content:t.content,status:"publish"}})}},"./packages/apps/site-builder/src/deploy/steps/site-metadata.ts":function(e,t,s){s.r(t),s.d(t,{setSiteMetadata:function(){return setSiteMetadata}});var a=s("@wordpress/api-fetch"),o=s.n(a);async function setSiteMetadata(e){await o()({path:"/wp/v2/settings",method:"POST",data:{title:e.title,description:e.tagline}})}},"./packages/apps/site-builder/src/deploy/steps/theme-parts.ts":function(e,t,s){s.r(t),s.d(t,{createThemeParts:function(){return createThemeParts}});var a=s("@wordpress/api-fetch"),o=s.n(a);function getConditionBucket(e){return"header"===e?"header":"footer"===e?"footer":"single"}async function createThemeParts(e){const t=await async function getSupportedDocumentTypes(){try{const e=await o()({path:"/wp/v2/elementor_library",method:"OPTIONS"});return e?.schema?.properties?.meta?.properties?._elementor_template_type?.enum||[]}catch{return[]}}(),s=e.filter(({part:e})=>t.includes(e.type));if(!s.length)return;const a={};for(const{key:e,part:t}of s){const s=await o()({path:"/wp/v2/elementor_library",method:"POST",data:{title:t.title,status:"publish",meta:{_elementor_edit_mode:"builder",_elementor_template_type:t.type,_elementor_data:JSON.stringify(t.content),_elementor_conditions:t.themeBuilderCondition||"include/general"}}});a[e]=s.id}const r={};for(const{key:e,part:t}of s){const s=a[e];if(!s)continue;const o=t.themeBuilderCondition||"include/general",n=getConditionBucket(t.type);r[n]||(r[n]={}),r[n][s]=[o]}await o()({path:"/elementor/v1/settings/elementor_pro_theme_builder_conditions",method:"POST",data:{value:r}})}},"./packages/apps/site-builder/src/deploy/types.ts":function(e,t,s){s.r(t),s.d(t,{DEPLOY_DESIGN_SYSTEM_PATH:function(){return a}});const a="/elementor/v1/site-builder/deploy-design-system"},"@wordpress/api-fetch":function(e){e.exports=window.wp.apiFetch},react:function(e){e.exports=window.React}},t={};function __webpack_require__(s){var a=t[s];if(void 0!==a)return a.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var s in t)__webpack_require__.o(t,s)&&!__webpack_require__.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};!function(){__webpack_require__.r(s),__webpack_require__.d(s,{App:function(){return e.App}});var e=__webpack_require__("./packages/apps/site-builder/src/components/index.ts")}(),(window.elementorV2=window.elementorV2||{}).siteBuilder=s}(),window.elementorV2.siteBuilder?.init?.(); | |
| 1268 | 3 | //# sourceMappingURL=site-builder.js.map |