1(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[6120],{ 2 3/***/ 832692: 4/***/ (function(__unused_webpack_module, exports) { 5 6"use strict"; 7 8Object.defineProperty(exports, "__esModule", ({ value: true })); 9exports.BLOCKS = void 0; 10/** 11 * Map of all Contentful block types. Blocks contain inline or block nodes. 12 */ 13var BLOCKS; 14(function (BLOCKS) { 15 BLOCKS["DOCUMENT"] = "document"; 16 BLOCKS["PARAGRAPH"] = "paragraph"; 17 BLOCKS["HEADING_1"] = "heading-1"; 18 BLOCKS["HEADING_2"] = "heading-2"; 19 BLOCKS["HEADING_3"] = "heading-3"; 20 BLOCKS["HEADING_4"] = "heading-4"; 21 BLOCKS["HEADING_5"] = "heading-5"; 22 BLOCKS["HEADING_6"] = "heading-6"; 23 BLOCKS["OL_LIST"] = "ordered-list"; 24 BLOCKS["UL_LIST"] = "unordered-list"; 25 BLOCKS["LIST_ITEM"] = "list-item"; 26 BLOCKS["HR"] = "hr"; 27 BLOCKS["QUOTE"] = "blockquote"; 28 BLOCKS["EMBEDDED_ENTRY"] = "embedded-entry-block"; 29 BLOCKS["EMBEDDED_ASSET"] = "embedded-asset-block"; 30 BLOCKS["TABLE"] = "table"; 31 BLOCKS["TABLE_ROW"] = "table-row"; 32 BLOCKS["TABLE_CELL"] = "table-cell"; 33 BLOCKS["TABLE_HEADER_CELL"] = "table-header-cell"; 34})(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {})); 35//# sourceMappingURL=blocks.js.map 36 37/***/ }), 38 39/***/ 551928: 40/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 41 42"use strict"; 43 44Object.defineProperty(exports, "__esModule", ({ value: true })); 45var blocks_1 = __webpack_require__(832692); 46/** 47 * A rich text document considered to be empty. 48 * Any other document structure than this is not considered empty. 49 */ 50var EMPTY_DOCUMENT = { 51 nodeType: blocks_1.BLOCKS.DOCUMENT, 52 data: {}, 53 content: [ 54 { 55 nodeType: blocks_1.BLOCKS.PARAGRAPH, 56 data: {}, 57 content: [ 58 { 59 nodeType: 'text', 60 value: '', 61 marks: [], 62 data: {}, 63 }, 64 ], 65 }, 66 ], 67}; 68exports["default"] = EMPTY_DOCUMENT; 69//# sourceMappingURL=emptyDocument.js.map 70 71/***/ }), 72 73/***/ 486061: 74/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 75 76"use strict"; 77 78Object.defineProperty(exports, "__esModule", ({ value: true })); 79exports.isText = exports.isBlock = exports.isInline = void 0; 80var blocks_1 = __webpack_require__(832692); 81var inlines_1 = __webpack_require__(407845); 82/** 83 * Tiny replacement for Object.values(object).includes(key) to 84 * avoid including CoreJS polyfills 85 */ 86function hasValue(obj, value) { 87 for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { 88 var key = _a[_i]; 89 if (value === obj[key]) { 90 return true; 91 } 92 } 93 return false; 94} 95/** 96 * Checks if the node is an instance of Inline. 97 */ 98function isInline(node) { 99 return hasValue(inlines_1.INLINES, node.nodeType); 100} 101exports.isInline = isInline; 102/** 103 * Checks if the node is an instance of Block. 104 */ 105function isBlock(node) { 106 return hasValue(blocks_1.BLOCKS, node.nodeType); 107} 108exports.isBlock = isBlock; 109/** 110 * Checks if the node is an instance of Text. 111 */ 112function isText(node) { 113 return node.nodeType === 'text'; 114} 115exports.isText = isText; 116//# sourceMappingURL=helpers.js.map 117 118/***/ }), 119 120/***/ 886437: 121/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 122 123"use strict"; 124 125var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 126 if (k2 === undefined) k2 = k; 127 var desc = Object.getOwnPropertyDescriptor(m, k); 128 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { 129 desc = { enumerable: true, get: function() { return m[k]; } }; 130 } 131 Object.defineProperty(o, k2, desc); 132}) : (function(o, m, k, k2) { 133 if (k2 === undefined) k2 = k; 134 o[k2] = m[k]; 135})); 136var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 137 Object.defineProperty(o, "default", { enumerable: true, value: v }); 138}) : function(o, v) { 139 o["default"] = v; 140}); 141var __exportStar = (this && this.__exportStar) || function(m, exports) { 142 for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); 143}; 144var __importStar = (this && this.__importStar) || function (mod) { 145 if (mod && mod.__esModule) return mod; 146 var result = {}; 147 if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 148 __setModuleDefault(result, mod); 149 return result; 150}; 151var __importDefault = (this && this.__importDefault) || function (mod) { 152 return (mod && mod.__esModule) ? mod : { "default": mod }; 153}; 154Object.defineProperty(exports, "__esModule", ({ value: true })); 155exports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0; 156var blocks_1 = __webpack_require__(832692); 157Object.defineProperty(exports, "BLOCKS", ({ enumerable: true, get: function () { return blocks_1.BLOCKS; } })); 158var inlines_1 = __webpack_require__(407845);
159Object.defineProperty(exports, "INLINES", ({ enumerable: true, get: function () { return inlines_1.INLINES; } })); 160var marks_1 = __webpack_require__(831376); 161Object.defineProperty(exports, "MARKS", ({ enumerable: true, get: function () { return __importDefault(marks_1).default; } })); 162__exportStar(__webpack_require__(297951), exports); 163__exportStar(__webpack_require__(80167), exports); 164__exportStar(__webpack_require__(311911), exports); 165var emptyDocument_1 = __webpack_require__(551928); 166Object.defineProperty(exports, "EMPTY_DOCUMENT", ({ enumerable: true, get: function () { return __importDefault(emptyDocument_1).default; } })); 167var helpers = __importStar(__webpack_require__(486061)); 168exports.helpers = helpers; 169//# sourceMappingURL=index.js.map 170 171/***/ }), 172 173/***/ 407845: 174/***/ (function(__unused_webpack_module, exports) { 175 176"use strict"; 177 178Object.defineProperty(exports, "__esModule", ({ value: true })); 179exports.INLINES = void 0; 180/** 181 * Map of all Contentful inline types. Inline contain inline or text nodes. 182 */ 183var INLINES; 184(function (INLINES) { 185 INLINES["HYPERLINK"] = "hyperlink"; 186 INLINES["ENTRY_HYPERLINK"] = "entry-hyperlink"; 187 INLINES["ASSET_HYPERLINK"] = "asset-hyperlink"; 188 INLINES["EMBEDDED_ENTRY"] = "embedded-entry-inline"; 189})(INLINES = exports.INLINES || (exports.INLINES = {})); 190//# sourceMappingURL=inlines.js.map 191 192/***/ }), 193 194/***/ 831376: 195/***/ (function(__unused_webpack_module, exports) { 196 197"use strict"; 198 199Object.defineProperty(exports, "__esModule", ({ value: true })); 200/** 201 * Map of all Contentful marks. 202 */ 203var MARKS; 204(function (MARKS) { 205 MARKS["BOLD"] = "bold"; 206 MARKS["ITALIC"] = "italic"; 207 MARKS["UNDERLINE"] = "underline"; 208 MARKS["CODE"] = "code"; 209 MARKS["SUPERSCRIPT"] = "superscript"; 210 MARKS["SUBSCRIPT"] = "subscript"; 211})(MARKS || (MARKS = {})); 212exports["default"] = MARKS; 213//# sourceMappingURL=marks.js.map 214 215/***/ }), 216 217/***/ 311911: 218/***/ (function(__unused_webpack_module, exports) { 219 220"use strict"; 221 222Object.defineProperty(exports, "__esModule", ({ value: true })); 223//# sourceMappingURL=nodeTypes.js.map 224 225/***/ }), 226 227/***/ 297951: 228/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 229 230"use strict"; 231 232var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { 233 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 234 if (ar || !(i in from)) { 235 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 236 ar[i] = from[i]; 237 } 238 } 239 return to.concat(ar || Array.prototype.slice.call(from)); 240}; 241var __importDefault = (this && this.__importDefault) || function (mod) { 242 return (mod && mod.__esModule) ? mod : { "default": mod }; 243}; 244var _a; 245Object.defineProperty(exports, "__esModule", ({ value: true })); 246exports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0; 247var blocks_1 = __webpack_require__(832692); 248var inlines_1 = __webpack_require__(407845); 249var marks_1 = __importDefault(__webpack_require__(831376)); 250/** 251 * Array of all top level block types. 252 * Only these block types can be the direct children of the document. 253 */ 254exports.TOP_LEVEL_BLOCKS = [ 255 blocks_1.BLOCKS.PARAGRAPH, 256 blocks_1.BLOCKS.HEADING_1, 257 blocks_1.BLOCKS.HEADING_2, 258 blocks_1.BLOCKS.HEADING_3, 259 blocks_1.BLOCKS.HEADING_4, 260 blocks_1.BLOCKS.HEADING_5, 261 blocks_1.BLOCKS.HEADING_6, 262 blocks_1.BLOCKS.OL_LIST, 263 blocks_1.BLOCKS.UL_LIST, 264 blocks_1.BLOCKS.HR, 265 blocks_1.BLOCKS.QUOTE, 266 blocks_1.BLOCKS.EMBEDDED_ENTRY, 267 blocks_1.BLOCKS.EMBEDDED_ASSET, 268 blocks_1.BLOCKS.TABLE, 269]; 270/** 271 * Array of all allowed block types inside list items 272 */ 273exports.LIST_ITEM_BLOCKS = [ 274 blocks_1.BLOCKS.PARAGRAPH, 275 blocks_1.BLOCKS.HEADING_1, 276 blocks_1.BLOCKS.HEADING_2, 277 blocks_1.BLOCKS.HEADING_3, 278 blocks_1.BLOCKS.HEADING_4, 279 blocks_1.BLOCKS.HEADING_5, 280 blocks_1.BLOCKS.HEADING_6, 281 blocks_1.BLOCKS.OL_LIST, 282 blocks_1.BLOCKS.UL_LIST, 283 blocks_1.BLOCKS.HR, 284 blocks_1.BLOCKS.QUOTE, 285 blocks_1.BLOCKS.EMBEDDED_ENTRY, 286 blocks_1.BLOCKS.EMBEDDED_ASSET, 287]; 288exports.TABLE_BLOCKS = [ 289 blocks_1.BLOCKS.TABLE, 290 blocks_1.BLOCKS.TABLE_ROW, 291 blocks_1.BLOCKS.TABLE_CELL, 292 blocks_1.BLOCKS.TABLE_HEADER_CELL, 293]; 294/** 295 * Array of all void block types 296 */ 297exports.VOID_BLOCKS = [blocks_1.BLOCKS.HR, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET]; 298/** 299 * Dictionary of all container block types, and the set block types they accept as children. 300 *
301 * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS` 302 */ 303exports.CONTAINERS = (_a = {}, 304 _a[blocks_1.BLOCKS.OL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], 305 _a[blocks_1.BLOCKS.UL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], 306 _a[blocks_1.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS, 307 _a[blocks_1.BLOCKS.QUOTE] = [blocks_1.BLOCKS.PARAGRAPH], 308 _a[blocks_1.BLOCKS.TABLE] = [blocks_1.BLOCKS.TABLE_ROW], 309 _a[blocks_1.BLOCKS.TABLE_ROW] = [blocks_1.BLOCKS.TABLE_CELL, blocks_1.BLOCKS.TABLE_HEADER_CELL], 310 _a[blocks_1.BLOCKS.TABLE_CELL] = [blocks_1.BLOCKS.PARAGRAPH], 311 _a[blocks_1.BLOCKS.TABLE_HEADER_CELL] = [blocks_1.BLOCKS.PARAGRAPH], 312 _a); 313/** 314 * Array of all heading levels 315 */ 316exports.HEADINGS = [ 317 blocks_1.BLOCKS.HEADING_1, 318 blocks_1.BLOCKS.HEADING_2, 319 blocks_1.BLOCKS.HEADING_3, 320 blocks_1.BLOCKS.HEADING_4, 321 blocks_1.BLOCKS.HEADING_5, 322 blocks_1.BLOCKS.HEADING_6, 323]; 324/** 325 * Array of all block types that may contain text and inline nodes. 326 */ 327exports.TEXT_CONTAINERS = __spreadArray([blocks_1.BLOCKS.PARAGRAPH], exports.HEADINGS, true); 328/** 329 * Node types before `tables` release. 330 */ 331exports.V1_NODE_TYPES = [ 332 blocks_1.BLOCKS.DOCUMENT, 333 blocks_1.BLOCKS.PARAGRAPH, 334 blocks_1.BLOCKS.HEADING_1, 335 blocks_1.BLOCKS.HEADING_2, 336 blocks_1.BLOCKS.HEADING_3, 337 blocks_1.BLOCKS.HEADING_4, 338 blocks_1.BLOCKS.HEADING_5, 339 blocks_1.BLOCKS.HEADING_6, 340 blocks_1.BLOCKS.OL_LIST, 341 blocks_1.BLOCKS.UL_LIST, 342 blocks_1.BLOCKS.LIST_ITEM, 343 blocks_1.BLOCKS.HR, 344 blocks_1.BLOCKS.QUOTE, 345 blocks_1.BLOCKS.EMBEDDED_ENTRY, 346 blocks_1.BLOCKS.EMBEDDED_ASSET, 347 inlines_1.INLINES.HYPERLINK, 348 inlines_1.INLINES.ENTRY_HYPERLINK, 349 inlines_1.INLINES.ASSET_HYPERLINK, 350 inlines_1.INLINES.EMBEDDED_ENTRY, 351 'text', 352]; 353/** 354 * Marks before `superscript` & `subscript` release. 355 */ 356exports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE]; 357//# sourceMappingURL=schemaConstraints.js.map 358 359/***/ }), 360 361/***/ 80167: 362/***/ (function(__unused_webpack_module, exports) { 363 364"use strict"; 365 366Object.defineProperty(exports, "__esModule", ({ value: true })); 367//# sourceMappingURL=types.js.map 368 369/***/ }), 370 371/***/ 895759: 372/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 373 374 375 (window.__NEXT_P = window.__NEXT_P || []).push([ 376 "/[[...slug]]", 377 function () { 378 return __webpack_require__(124127); 379 } 380 ]); 381 if(false) {} 382 383 384/***/ }), 385 386/***/ 19396: 387/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 388 389"use strict"; 390/* harmony export */ __webpack_require__.d(__webpack_exports__, { 391/* harmony export */ H: function() { return /* binding */ JsonLdScript; } 392/* harmony export */ }); 393/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893); 394/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(809008); 395/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__); 396/* harmony import */ var _Lib_structured_data_jsonLd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(262333); 397 398 399 400function JsonLdScript(param) { 401 let { id, schema } = param; 402 return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), { 403 children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("script", { 404 type: "application/ld+json", 405 dangerouslySetInnerHTML: { 406 __html: (0,_Lib_structured_data_jsonLd__WEBPACK_IMPORTED_MODULE_2__/* .escapeJsonForScript */ .F3)(JSON.stringify(schema)) 407 } 408 }, id) 409 }); 410} 411 412 413/***/ }), 414 415/***/ 198911: 416/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 417 418"use strict"; 419 420// EXPORTS 421__webpack_require__.d(__webpack_exports__, { 422 wg: function() { return /* reexport */ buildBreadcrumbList; }, 423 il: function() { return /* reexport */ buildOrganizationSchema; }, 424 _f: function() { return /* reexport */ buildProductSchema; }, 425 uZ: function() { return /* reexport */ buildRecipeSchema; }, 426 Q6: function() { return /* reexport */ buildWebSiteSchema; } 427}); 428 429// UNUSED EXPORTS: escapeJsonForScript, minutesToIsoDuration, prefixHttpsIfProtocolRelative, richTextToStringArray 430 431;// CONCATENATED MODULE: ./src/lib/structured-data/organization.ts 432function buildSameAsArray(sameAs) { 433 if (!sameAs) return []; 434 return Object.values(sameAs).filter((url)=>Boolean(url)); 435} 436function buildAddress(address) { 437 if (!address.streetAddress) return undefined; 438 return { 439 "@type": "PostalAddress", 440 streetAddress: address.streetAddress, 441 addressLocality: address.addressLocality, 442 addressRegion: address.addressRegion, 443 postalCode: address.postalCode, 444 addressCountry: address.addressCountry 445 }; 446} 447function buildOrganizationSchema(config, orgId, publicUrl) { 448 const sameAsArray = buildSameAsArray(config.sameAs); 449 const address = buildAddress(config.address); 450 return { 451 "@context": "https://schema.org", 452 "@type": "Organization", 453 "@id": orgId, 454 name: config.name, 455 legalName: config.legalName, 456 url: "".concat(publicUrl, "/"), 457 logo: { 458 "@type": "ImageObject", 459 url: "".concat(publicUrl).concat(config.logoUrl), 460 width: 1000, 461 height: 1000 462 }, 463 description: config.description, 464 parentOrganization: { 465 "@type": "Organization", 466 "@id": "https://jbsfoodsgroup.com/#organization", 467 name: "JBS Foods", 468 url: "https://jbsfoodsgroup.com/" 469 }, 470 contactPoint: [ 471 { 472 "@type": "ContactPoint", 473 contactType: "customer service", 474 telephone: config.contactPoint.telephone, 475 email: config.contactPoint.email, 476 hoursAvailable: [ 477 { 478 "@type": "OpeningHoursSpecification", 479 dayOfWeek: config.contactPoint.supportDays, 480 opens: config.contactPoint.supportOpens, 481 closes: config.contactPoint.supportCloses 482 } 483 ] 484 } 485 ], 486 hasOfferCatalog: { 487 "@type": "OfferCatalog", 488 name: config.offerCatalog.name, 489 itemListElement: config.offerCatalog.categories.map((cat)=>({ 490 "@type": "OfferCatalog", 491 name: cat.name 492 })) 493 },
494 ...config.foundingDate && { 495 foundingDate: config.foundingDate 496 }, 497 ...address && { 498 address 499 }, 500 ...sameAsArray.length > 0 && { 501 sameAs: sameAsArray 502 } 503 }; 504} 505 506;// CONCATENATED MODULE: ./src/lib/structured-data/website.ts 507function buildWebSiteSchema(config, orgId, siteId, publicUrl) { 508 return { 509 "@context": "https://schema.org", 510 "@type": "WebSite", 511 "@id": siteId, 512 name: config.name, 513 url: "".concat(publicUrl, "/"), 514 inLanguage: config.inLanguage, 515 publisher: { 516 "@id": orgId 517 }, 518 potentialAction: { 519 "@type": "SearchAction", 520 target: { 521 "@type": "EntryPoint", 522 urlTemplate: "".concat(publicUrl, "/search?query={search_term_string}") 523 }, 524 "query-input": "required name=search_term_string" 525 } 526 }; 527} 528 529// EXTERNAL MODULE: ./node_modules/@contentful/rich-text-types/dist/index.js 530var dist = __webpack_require__(886437); 531// EXTERNAL MODULE: ./src/lib/structured-data/jsonLd.ts 532var jsonLd = __webpack_require__(262333); 533;// CONCATENATED MODULE: ./src/lib/structured-data/recipe.ts 534 535 536const AUTHOR = { 537 "@type": "Organization", 538 name: "Wild Fork Foods" 539}; 540function formatIngredient(ingredient) { 541 var _ingredient_fields; 542 const { amountNeededForRecipe, name } = (_ingredient_fields = ingredient.fields) !== null && _ingredient_fields !== void 0 ? _ingredient_fields : {}; 543 if (!name) return ""; 544 return [ 545 amountNeededForRecipe, 546 name 547 ].filter(Boolean).join(" ").trim(); 548} 549function buildIngredients(entry) { 550 var _entry_fields_wfIngredientList; 551 const wf = ((_entry_fields_wfIngredientList = entry.fields.wfIngredientList) !== null && _entry_fields_wfIngredientList !== void 0 ? _entry_fields_wfIngredientList : []).map(formatIngredient).filter(Boolean); 552 const nonWf = (0,jsonLd/* richTextToStringArray */.V)(entry.fields.nonWfIngredients, dist.BLOCKS.PARAGRAPH); 553 return [ 554 ...wf, 555 ...nonWf 556 ]; 557} 558function buildInstructions(entry) { 559 return (0,jsonLd/* richTextToStringArray */.V)(entry.fields.cookingDirections, dist.BLOCKS.LIST_ITEM).map((text)=>({ 560 "@type": "HowToStep", 561 text 562 })); 563} 564function resolveTotalTime(prepMinutes, cookMinutes, explicitTotal) { 565 const explicit = (0,jsonLd/* minutesToIsoDuration */.Ry)(explicitTotal); 566 if (explicit) return explicit; 567 const sum = (prepMinutes !== null && prepMinutes !== void 0 ? prepMinutes : 0) + (cookMinutes !== null && cookMinutes !== void 0 ? cookMinutes : 0); 568 return (0,jsonLd/* minutesToIsoDuration */.Ry)(sum); 569} 570function buildRecipeSchema(entry, publicUrl) { 571 var _fields_media_fields_asset_fields_file, _fields_media_fields_asset_fields, _fields_media_fields_asset, _fields_media_fields, _fields_media, _fields_badgeList; 572 const { fields, sys } = entry; 573 var _fields_slug; 574 const slug = ((_fields_slug = fields.slug) !== null && _fields_slug !== void 0 ? _fields_slug : "").replace(/^\//, ""); 575 const id = "".concat(publicUrl, "/recipes/").concat(slug); 576 const image = (0,jsonLd/* prefixHttpsIfProtocolRelative */.xi)((_fields_media = fields.media) === null || _fields_media === void 0 ? void 0 : (_fields_media_fields = _fields_media.fields) === null || _fields_media_fields === void 0 ? void 0 : (_fields_media_fields_asset = _fields_media_fields.asset) === null || _fields_media_fields_asset === void 0 ? void 0 : (_fields_media_fields_asset_fields = _fields_media_fields_asset.fields) === null || _fields_media_fields_asset_fields === void 0 ? void 0 : (_fields_media_fields_asset_fields_file = _fields_media_fields_asset_fields.file) === null || _fields_media_fields_asset_fields_file === void 0 ? void 0 : _fields_media_fields_asset_fields_file.url); 577 const prepTime = (0,jsonLd/* minutesToIsoDuration */.Ry)(fields.prepTimeInMinutes); 578 const cookTime = (0,jsonLd/* minutesToIsoDuration */.Ry)(fields.cookTimeInMinutes); 579 const totalTime = resolveTotalTime(fields.prepTimeInMinutes, fields.cookTimeInMinutes, fields.totalTimeInMinutes); 580 const recipeYield = fields.servings ? "".concat(fields.servings, " servings") : undefined;
581 const keywords = ((_fields_badgeList = fields.badgeList) === null || _fields_badgeList === void 0 ? void 0 : _fields_badgeList.length) ? fields.badgeList.join(", ") : undefined; 582 const ingredients = buildIngredients(entry); 583 const instructions = buildInstructions(entry); 584 return { 585 "@context": "https://schema.org", 586 "@type": "Recipe", 587 "@id": id, 588 name: fields.title, 589 ...fields.description && { 590 description: fields.description 591 }, 592 ...image && { 593 image 594 }, 595 author: AUTHOR, 596 ...sys.createdAt && { 597 datePublished: sys.createdAt.slice(0, 10) 598 }, 599 ...prepTime && { 600 prepTime 601 }, 602 ...cookTime && { 603 cookTime 604 }, 605 ...totalTime && { 606 totalTime 607 }, 608 ...recipeYield && { 609 recipeYield 610 }, 611 ...keywords && { 612 keywords 613 }, 614 ...ingredients.length > 0 && { 615 recipeIngredient: ingredients 616 }, 617 ...instructions.length > 0 && { 618 recipeInstructions: instructions 619 } 620 }; 621} 622 623;// CONCATENATED MODULE: ./src/lib/structured-data/product.ts 624 625/** UN/CEFACT Recommendation 20 code for the pound. */ const POUND_UNIT_CODE = "LBR"; 626const isUsable = (value)=>typeof value === "number" && Number.isFinite(value) && value > 0; 627const asDecimal = (value)=>value.toFixed(2); 628/** 629 * Google reconciles the product feed against this node, so the unit basis has 630 * to be stated explicitly rather than implied by the total. 631 */ function buildUnitPriceSpecification(pricePerLb, currency) { 632 return { 633 "@type": "UnitPriceSpecification", 634 price: asDecimal(pricePerLb), 635 priceCurrency: currency, 636 unitCode: POUND_UNIT_CODE, 637 referenceQuantity: { 638 "@type": "QuantitativeValue", 639 value: "1", 640 unitCode: POUND_UNIT_CODE 641 } 642 }; 643} 644function buildOffer(param) { 645 let { canonicalUrl, currency, inStock, pricePerLb, totalPrice, uom } = param; 646 if (!isUsable(totalPrice)) return undefined; 647 // The specification only carries a per-pound rate, so a product priced by any 648 // other unit gets no node at all rather than a mislabelled one. 649 const priceSpecification = uom === "LB" && isUsable(pricePerLb) ? buildUnitPriceSpecification(pricePerLb, currency) : undefined; 650 return { 651 "@type": "Offer", 652 price: asDecimal(totalPrice), 653 priceCurrency: currency, 654 availability: inStock ? "https://schema.org/InStock" : "https://schema.org/OutOfStock", 655 url: canonicalUrl, 656 ...priceSpecification && { 657 priceSpecification 658 } 659 }; 660} 661function buildProductSchema(input) { 662 const { brand, canonicalUrl, description, name, sku } = input; 663 const image = (0,jsonLd/* prefixHttpsIfProtocolRelative */.xi)(input.image); 664 const offers = buildOffer(input); 665 return { 666 "@context": "https://schema.org", 667 "@type": "Product", 668 "@id": "".concat(canonicalUrl, "#product"), 669 name, 670 ...description && { 671 description 672 }, 673 ...image && { 674 image 675 }, 676 ...sku && { 677 sku 678 }, 679 url: canonicalUrl, 680 ...brand && { 681 brand: { 682 "@type": "Brand", 683 name: brand 684 } 685 }, 686 ...offers && { 687 offers 688 } 689 }; 690} 691 692;// CONCATENATED MODULE: ./src/lib/structured-data/breadcrumb.ts 693function buildBreadcrumbList(items) { 694 return { 695 "@context": "https://schema.org", 696 "@type": "BreadcrumbList", 697 itemListElement: items.map((entry, index)=>({ 698 "@type": "ListItem", 699 position: index + 1, 700 name: entry.name, 701 ...entry.item && { 702 item: entry.item 703 } 704 })) 705 }; 706} 707 708;// CONCATENATED MODULE: ./src/lib/structured-data/index.ts 709 710 711 712 713 714 715 716 717/***/ }), 718 719/***/ 262333: 720/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 721 722"use strict"; 723/* harmony export */ __webpack_require__.d(__webpack_exports__, { 724/* harmony export */ F3: function() { return /* binding */ escapeJsonForScript; }, 725/* harmony export */ Ry: function() { return /* binding */ minutesToIsoDuration; }, 726/* harmony export */ V: function() { return /* binding */ richTextToStringArray; }, 727/* harmony export */ xi: function() { return /* binding */ prefixHttpsIfProtocolRelative; } 728/* harmony export */ }); 729function escapeJsonForScript(json) { 730 return json.replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026"); 731} 732function minutesToIsoDuration(minutes) { 733 if (!minutes || minutes < 0) return undefined; 734 const hours = Math.floor(minutes / 60); 735 const remaining = minutes % 60; 736 if (hours === 0) return "PT".concat(remaining, "M"); 737 if (remaining === 0) return "PT".concat(hours, "H"); 738 return "PT".concat(hours, "H").concat(remaining, "M"); 739} 740function prefixHttpsIfProtocolRelative(url) { 741 if (!url) return undefined; 742 return url.startsWith("//") ? "https:".concat(url) : url; 743} 744function extractTextValue(node) { 745 if (!node || typeof node !== "object") return ""; 746 const n = node; 747 var _n_value; 748 if (n.nodeType === "text") return (_n_value = n.value) !== null && _n_value !== void 0 ? _n_value : ""; 749 if (!n.content) return ""; 750 return n.content.map(extractTextValue).join(""); 751} 752function richTextToStringArray(doc, blockType) { 753 if (!doc) return []; 754 const results = []; 755 function walk(nodes) { 756 for (const node of nodes){ 757 if (!node || typeof node !== "object") continue; 758 const n = node; 759 if (n.nodeType === blockType) { 760 const text = extractTextValue(n).trim(); 761 if (text) results.push(text); 762 } else if (n.content) { 763 walk(n.content); 764 } 765 } 766 } 767 walk(doc.content); 768 return results; 769} 770 771 772/***/ }), 773 774/***/ 124127: 775/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 776 777"use strict";
778// ESM COMPAT FLAG 779__webpack_require__.r(__webpack_exports__); 780 781// EXPORTS 782__webpack_require__.d(__webpack_exports__, { 783 __N_SSG: function() { return /* binding */ __N_SSG; }, 784 "default": function() { return /* binding */ _slug_; } 785}); 786 787// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js 788var jsx_runtime = __webpack_require__(785893); 789// EXTERNAL MODULE: ./node_modules/react/index.js 790var react = __webpack_require__(667294); 791// EXTERNAL MODULE: ./node_modules/next/dynamic.js 792var dynamic = __webpack_require__(505152); 793var dynamic_default = /*#__PURE__*/__webpack_require__.n(dynamic); 794// EXTERNAL MODULE: ./src/lib/constants/common.ts 795var common = __webpack_require__(339114); 796// EXTERNAL MODULE: ./src/lib/store/environmentSlice.ts 797var environmentSlice = __webpack_require__(221473); 798// EXTERNAL MODULE: ./src/lib/store/hooks.ts 799var hooks = __webpack_require__(267097); 800// EXTERNAL MODULE: ./src/lib/utils/cookies.ts 801var cookies = __webpack_require__(701636); 802// EXTERNAL MODULE: ./src/components/layout/AppPage.tsx + 10 modules 803var AppPage = __webpack_require__(422832); 804// EXTERNAL MODULE: ./src/lib/configs/environment.ts 805var environment = __webpack_require__(208891); 806;// CONCATENATED MODULE: ./src/lib/constants/structuredData.ts 807const US_CONFIG = { 808 name: "Wild Fork Foods", 809 legalName: "Food Ventures North America, Inc.", 810 description: "Wild Fork Foods offers premium quality meats and seafood delivered directly to your door. Shop our wide selection of steaks, chicken, pork, seafood, and more.", 811 foundingDate: "2017", 812 logoUrl: "/wf_logo_square.png", 813 address: { 814 streetAddress: "7 NW 25TH ST", 815 addressLocality: "Doral", 816 addressRegion: "FL", 817 postalCode: "33172", 818 addressCountry: "US" 819 }, 820 contactPoint: { 821 telephone: "+1-833-300-9453", 822 email: "[email protected]", 823 supportOpens: "08:00", 824 supportCloses: "22:00", 825 supportDays: [ 826 "Monday", 827 "Tuesday", 828 "Wednesday", 829 "Thursday", 830 "Friday", 831 "Saturday", 832 "Sunday" 833 ] 834 }, 835 sameAs: { 836 instagram: "https://www.instagram.com/wildforkfoods", 837 facebook: "https://www.facebook.com/WildForkFoods", 838 linkedin: "https://www.linkedin.com/company/wild-fork-foods", 839 tiktok: "https://www.tiktok.com/@wildfork", 840 youtube: "https://www.youtube.com/c/WildFork" 841 }, 842 offerCatalog: { 843 name: "Wild Fork Foods Product Catalog", 844 categories: [ 845 { 846 name: "Beef & Steaks", 847 url: "/collections/beef-and-steaks/" 848 }, 849 { 850 name: "Chicken", 851 url: "/collections/chicken/" 852 }, 853 { 854 name: "Seafood", 855 url: "/collections/seafood/" 856 }, 857 { 858 name: "Pork", 859 url: "/collections/pork/" 860 }, 861 { 862 name: "Ground Meats", 863 url: "/collections/ground-meats/" 864 }, 865 { 866 name: "Lamb", 867 url: "/collections/lamb/" 868 } 869 ] 870 }, 871 inLanguage: "en-US" 872}; 873const CA_EN_CONFIG = { 874 name: "Wild Fork Canada", 875 legalName: "Food Ventures North America Canada, Inc.", 876 description: "Wild Fork Canada offers premium quality meats and seafood delivered directly to your door. Shop our wide selection of steaks, chicken, pork, seafood, and more.", 877 foundingDate: "2021", 878 logoUrl: "/wf_logo_square.png", 879 // Address is omitted from the schema until streetAddress is filled (buildAddress 880 // guards on it); locality/region are pre-wired for when business supplies street + postal. 881 address: { 882 streetAddress: "", 883 addressLocality: "Vaughan", 884 addressRegion: "ON", 885 postalCode: "", 886 addressCountry: "CA" 887 }, 888 contactPoint: { 889 telephone: "+1-833-300-9453", 890 email: "[email protected]", 891 supportOpens: "08:00", 892 supportCloses: "22:00", 893 supportDays: [ 894 "Monday", 895 "Tuesday", 896 "Wednesday", 897 "Thursday", 898 "Friday", 899 "Saturday", 900 "Sunday" 901 ] 902 }, 903 sameAs: {
904 instagram: "https://www.instagram.com/wildforkcanada", 905 facebook: "https://www.facebook.com/WildForkCanada", 906 linkedin: "https://www.linkedin.com/company/wild-fork-canada", 907 tiktok: "https://www.tiktok.com/@wildfork", 908 youtube: "https://www.youtube.com/c/WildFork" 909 }, 910 offerCatalog: { 911 name: "Wild Fork Canada Product Catalog", 912 categories: [ 913 { 914 name: "Beef", 915 url: "/en-CA/collections/beef/" 916 }, 917 { 918 name: "Chicken & Turkey", 919 url: "/en-CA/collections/ChickenTurkey/" 920 }, 921 { 922 name: "Seafood", 923 url: "/en-CA/collections/seafood/" 924 }, 925 { 926 name: "Pork", 927 url: "/en-CA/collections/pork/" 928 }, 929 { 930 name: "Ground Meats", 931 url: "/en-CA/collections/ground-meats/" 932 }, 933 { 934 name: "Lamb", 935 url: "/en-CA/collections/lamb/" 936 } 937 ] 938 }, 939 inLanguage: "en-CA" 940}; 941const CA_FR_CONFIG = { 942 ...CA_EN_CONFIG, 943 inLanguage: "fr-CA" 944}; 945const CONFIG_BY_LOCALE = { 946 "en-US": US_CONFIG, 947 "en-CA": CA_EN_CONFIG, 948 "fr-CA": CA_FR_CONFIG 949}; 950function getOrganizationConfigForLocale(locale) { 951 return CONFIG_BY_LOCALE[locale]; 952} 953 954// EXTERNAL MODULE: ./src/lib/structured-data/index.ts + 5 modules 955var structured_data = __webpack_require__(198911); 956// EXTERNAL MODULE: ./src/components/structured-data/JsonLdScript.tsx 957var JsonLdScript = __webpack_require__(19396); 958;// CONCATENATED MODULE: ./src/components/structured-data/HomepageStructuredData.tsx 959 960 961 962 963 964function HomepageStructuredData() { 965 let { locale = environment.nextAppEnv.application.locale, publicUrl: rawPublicUrl = environment.nextAppEnv.application.publicUrl } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; 966 const config = getOrganizationConfigForLocale(locale); 967 if (!config) return null; 968 const publicUrl = rawPublicUrl.replace(/\/$/, ""); 969 const orgId = "".concat(publicUrl, "/#organization"); 970 const siteId = "".concat(publicUrl, "/#website"); 971 return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { 972 children: [ 973 /*#__PURE__*/ (0,jsx_runtime.jsx)(JsonLdScript/* JsonLdScript */.H, { 974 id: "ld-organization", 975 schema: (0,structured_data/* buildOrganizationSchema */.il)(config, orgId, publicUrl) 976 }), 977 /*#__PURE__*/ (0,jsx_runtime.jsx)(JsonLdScript/* JsonLdScript */.H, { 978 id: "ld-website", 979 schema: (0,structured_data/* buildWebSiteSchema */.Q6)(config, orgId, siteId, publicUrl) 980 }) 981 ] 982 }); 983} 984 985// EXTERNAL MODULE: ./src/lib/dynamic-yield/dynamicYield.ts + 1 modules 986var dynamicYield = __webpack_require__(85325); 987// EXTERNAL MODULE: ./src/lib/hooks/useFavorites.ts 988var useFavorites = __webpack_require__(111758); 989// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/utils/Logger.js 990var Logger = __webpack_require__(101914); 991var Logger_default = /*#__PURE__*/__webpack_require__.n(Logger); 992;// CONCATENATED MODULE: ./src/components/templates/PageSectionRenderer/pageSectionRegistry.ts 993/** 994 * Page Section Registry module. 995 * 996 * This is a very special module that allows a data-driven way to load components 997 * based on the content in a page. 998 */ 999/** 1000 * This is the core map that helps the PageSectionRenderer component choose the 1001 * correct React component for each page section. 1002 */ const pageSectionRegistry = { 1003 notSupported: dynamic_default()(()=>__webpack_require__.e(/* import() */ 4953).then(__webpack_require__.bind(__webpack_require__, 624953)), { 1004 loadableGenerated: { 1005 webpack: ()=>[ 1006 /*require.resolve*/(624953) 1007 ] 1008 } 1009 }), 1010 pageSectionProductCarousels: dynamic_default()(()=>Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 434094)), { 1011 loadableGenerated: { 1012 webpack: ()=>[ 1013 /*require.resolve*/(434094) 1014 ] 1015 } 1016 }), 1017 dividerSection: dynamic_default()(()=>__webpack_require__.e(/* import() */ 6538).then(__webpack_require__.bind(__webpack_require__, 496538)), { 1018 loadableGenerated: { 1019 webpack: ()=>[ 1020 /*require.resolve*/(496538) 1021 ] 1022 } 1023 }), 1024 bannerCollectionSection: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(7967)]).then(__webpack_require__.bind(__webpack_require__, 457967)), { 1025 loadableGenerated: { 1026 webpack: ()=>[ 1027 /*require.resolve*/(457967) 1028 ] 1029 } 1030 }), 1031 containerGalleryRow: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(4689), __webpack_require__.e(9843)]).then(__webpack_require__.bind(__webpack_require__, 329843)), { 1032 loadableGenerated: { 1033 webpack: ()=>[ 1034 /*require.resolve*/(329843) 1035 ] 1036 } 1037 }), 1038 containerGalleryRowMediaTiles: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(4689), __webpack_require__.e(9095)]).then(__webpack_require__.bind(__webpack_require__, 329095)), { 1039 loadableGenerated: { 1040 webpack: ()=>[ 1041 /*require.resolve*/(329095) 1042 ] 1043 } 1044 }), 1045 mediaTileCollection: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(9986)]).then(__webpack_require__.bind(__webpack_require__, 559986)), { 1046 loadableGenerated: { 1047 webpack: ()=>[ 1048 /*require.resolve*/(559986) 1049 ] 1050 } 1051 }), 1052 richTextPageSection: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(2565)]).then(__webpack_require__.bind(__webpack_require__, 122565)), { 1053 loadableGenerated: { 1054 webpack: ()=>[ 1055 /*require.resolve*/(122565) 1056 ] 1057 } 1058 }), 1059 containerForm: dynamic_default()(()=>__webpack_require__.e(/* import() */ 7271).then(__webpack_require__.bind(__webpack_require__, 257271)), { 1060 loadableGenerated: { 1061 webpack: ()=>[ 1062 /*require.resolve*/(257271) 1063 ] 1064 } 1065 }), 1066 menuGroupContainer: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(1047), __webpack_require__.e(2185), __webpack_require__.e(777), __webpack_require__.e(4927), __webpack_require__.e(9469), __webpack_require__.e(4087), __webpack_require__.e(2066), __webpack_require__.e(3477), __webpack_require__.e(794), __webpack_require__.e(5799), __webpack_require__.e(8407), __webpack_require__.e(6710), __webpack_require__.e(17), __webpack_require__.e(9359), __webpack_require__.e(7539), __webpack_require__.e(5105), __webpack_require__.e(3833), __webpack_require__.e(8303), __webpack_require__.e(2409), __webpack_require__.e(5124), __webpack_require__.e(4070)]).then(__webpack_require__.bind(__webpack_require__, 974
1066070)), { 1067 loadableGenerated: { 1068 webpack: ()=>[ 1069 /*require.resolve*/(974070) 1070 ] 1071 } 1072 }), 1073 pageSectionSignupFooter: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(6215)]).then(__webpack_require__.bind(__webpack_require__, 406215)), { 1074 loadableGenerated: { 1075 webpack: ()=>[ 1076 /*require.resolve*/(406215) 1077 ] 1078 } 1079 }), 1080 pageSectionFaqSection: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(4749)]).then(__webpack_require__.t.bind(__webpack_require__, 724749, 23)), { 1081 loadableGenerated: { 1082 webpack: ()=>[ 1083 /*require.resolve*/(724749) 1084 ] 1085 } 1086 }), 1087 pageSectionListsCardsContainers: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(5154)]).then(__webpack_require__.bind(__webpack_require__, 835154)), { 1088 loadableGenerated: { 1089 webpack: ()=>[ 1090 /*require.resolve*/(835154) 1091 ] 1092 } 1093 }), 1094 pageSectionMembershipSurveySection: dynamic_default()(()=>__webpack_require__.e(/* import() */ 9609).then(__webpack_require__.t.bind(__webpack_require__, 279609, 23)), { 1095 loadableGenerated: { 1096 webpack: ()=>[ 1097 /*require.resolve*/(279609) 1098 ] 1099 } 1100 }), 1101 IFrameContent: dynamic_default()(()=>__webpack_require__.e(/* import() */ 1153).then(__webpack_require__.t.bind(__webpack_require__, 111153, 23)), { 1102 loadableGenerated: { 1103 webpack: ()=>[ 1104 /*require.resolve*/(111153) 1105 ] 1106 } 1107 }), 1108 pageSectionKlaviyoForm: dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(2599), __webpack_require__.e(1123)]).then(__webpack_require__.bind(__webpack_require__, 91123)), { 1109 loadableGenerated: { 1110 webpack: ()=>[ 1111 /*require.resolve*/(91123) 1112 ] 1113 } 1114 }), 1115 plpMiniNav: dynamic_default()(()=>__webpack_require__.e(/* import() */ 6311).then(__webpack_require__.t.bind(__webpack_require__, 266311, 23)), { 1116 loadableGenerated: { 1117 webpack: ()=>[ 1118 /*require.resolve*/(266311) 1119 ] 1120 } 1121 }) 1122}; 1123 1124;// CONCATENATED MODULE: ./src/components/templates/PageSectionRenderer/PageSectionRenderer.tsx 1125 1126 1127 1128const PageSectionRenderer = (props)=>{ 1129 const { data: { pageSections = [] } = {} } = props; 1130 /** 1131 * validSectionsStr: 1132 * is a debugging string holding the list of successfully rendered page sections. 1133 * This string helps find the exact location of the Contentful's content model 1134 * that is not supported and failing to load in the page. 1135 */ let validSectionsStr = ""; 1136 const pageSectionComponents = pageSections.map((pageSection)=>{ 1137 /** 1138 * When determining how to map a page section entry to a React component, start 1139 * by getting the content type. 1140 * 1141 * Then use the content type to see if there is a React component in the 1142 * pageSectionRegistry. 1143 * 1144 * If there is no entry for this component, use the `notSupported` entry. This 1145 * helps aid development, as it provides a placeholder in the React component 1146 * tree in addition to providing a sensible logging message that the page 1147 * section is not supported. 1148 */ let contentType; 1149 /** 1150 * Check If it is a valid pageSection or skip it and log its location 1151 */ try { 1152 contentType = pageSection.sys.contentType.sys.id; 1153 validSectionsStr = "".concat(validSectionsStr).concat(contentType, "-->"); 1154 } catch (err) { 1155 validSectionsStr = "".concat(validSectionsStr, "xxNotSupportedxx->"); 1156 Logger_default().info("Contentful Error loading Page Section: ", validSectionsStr); 1157 } 1158 const existing = pageSectionRegistry[contentType] || pageSectionRegistry["notSupported"]; 1159 /** 1160 * Ultimately, if there is no react component -- simply return null. 1161 */ if (!existing) { 1162 return ()=>null; 1163 } 1164 return existing; 1165 }); 1166 return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { 1167 children: pageSectionComponents.map((component, idx)=>{ 1168 const Elem = component; 1169 const pageSection = pageSections[idx];
1170 const key = pageSection.sys.id; 1171 return /*#__PURE__*/ (0,jsx_runtime.jsx)(Elem, { 1172 data: pageSection 1173 }, key); 1174 }) 1175 }); 1176}; 1177 1178;// CONCATENATED MODULE: ./src/components/templates/PageSectionRenderer/index.ts 1179 1180/* harmony default export */ var templates_PageSectionRenderer = (PageSectionRenderer); 1181 1182;// CONCATENATED MODULE: ./src/components/templates/CatchAllTemplate/CatchAllTemplate.tsx 1183 1184 1185 1186 1187 1188 1189 1190// TODO from Jared: need props type. (Comment to this comment, the props type is declared here: FC<PageDataModel>. No action is required) 1191const CatchAllTemplate = (props)=>{ 1192 var _props_data_pageEntry_fields, _props_data_pageEntry, _props_data, _props_data1; 1193 const { getFavoritesList } = (0,useFavorites/* useFavorites */.r)(); 1194 (0,react.useEffect)(()=>{ 1195 var _props_data_pageEntry_fields, _props_data_pageEntry, _props_data; 1196 (0,dynamicYield/* setDYContext */.al)((props === null || props === void 0 ? void 0 : (_props_data = props.data) === null || _props_data === void 0 ? void 0 : (_props_data_pageEntry = _props_data.pageEntry) === null || _props_data_pageEntry === void 0 ? void 0 : (_props_data_pageEntry_fields = _props_data_pageEntry.fields) === null || _props_data_pageEntry_fields === void 0 ? void 0 : _props_data_pageEntry_fields.slug) === "/" ? "HOMEPAGE" : "OTHER"); 1197 getFavoritesList(); 1198 }, [ 1199 props === null || props === void 0 ? void 0 : (_props_data = props.data) === null || _props_data === void 0 ? void 0 : (_props_data_pageEntry = _props_data.pageEntry) === null || _props_data_pageEntry === void 0 ? void 0 : (_props_data_pageEntry_fields = _props_data_pageEntry.fields) === null || _props_data_pageEntry_fields === void 0 ? void 0 : _props_data_pageEntry_fields.slug, 1200 getFavoritesList 1201 ]); 1202 if (props === null || props === void 0 ? void 0 : (_props_data1 = props.data) === null || _props_data1 === void 0 ? void 0 : _props_data1.pageEntry) { 1203 var _pageEntry_fields, _pageEntry_fields1, _pageEntry_fields2, _pageEntry_fields3; 1204 const { data: { pageEntry, footerEntry, headerEntry, pageRecommendations, pageMetadata, ctCategoryNameMap } } = props; 1205 var _pageEntry_fields_title; 1206 const pageTitle = (_pageEntry_fields_title = pageEntry === null || pageEntry === void 0 ? void 0 : (_pageEntry_fields = pageEntry.fields) === null || _pageEntry_fields === void 0 ? void 0 : _pageEntry_fields.title) !== null && _pageEntry_fields_title !== void 0 ? _pageEntry_fields_title : ""; 1207 var _pageEntry_fields_description; 1208 const pageDescription = (_pageEntry_fields_description = pageEntry === null || pageEntry === void 0 ? void 0 : (_pageEntry_fields1 = pageEntry.fields) === null || _pageEntry_fields1 === void 0 ? void 0 : _pageEntry_fields1.description) !== null && _pageEntry_fields_description !== void 0 ? _pageEntry_fields_description : ""; 1209 const canonicalURL = pageEntry === null || pageEntry === void 0 ? void 0 : (_pageEntry_fields2 = pageEntry.fields) === null || _pageEntry_fields2 === void 0 ? void 0 : _pageEntry_fields2.canonicalUrl; 1210 const isHome = (pageEntry === null || pageEntry === void 0 ? void 0 : (_pageEntry_fields3 = pageEntry.fields) === null || _pageEntry_fields3 === void 0 ? void 0 : _pageEntry_fields3.slug) === "/"; 1211 const { fields: { pageSections = [] } } = pageEntry; 1212 const extendedPageMetadata = { 1213 ...pageMetadata, 1214 canonicalURL 1215 }; 1216 return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { 1217 children: [ 1218 isHome && /*#__PURE__*/ (0,jsx_runtime.jsx)(HomepageStructuredData, {}), 1219 /*#__PURE__*/ (0,jsx_runtime.jsx)(AppPage/* default */.Z, { 1220 pageTitle: pageTitle, 1221 pageDescription: pageDescription, 1222 headerEntry: headerEntry, 1223 footerEntry: footerEntry, 1224 pageRecommendations: pageRecommendations, 1225 pageMetadata: extendedPageMetadata, 1226 ctCategoryNameMap: ctCategoryNameMap, 1227 children: /*#__PURE__*/ (0,jsx_runtime.jsx)(templates_PageSectionRenderer, { 1228 data: { 1229 pageSections 1230 } 1231 }) 1232 }) 1233 ] 1234 }); 1235 } else { 1236 return null; 1237 } 1238}; 1239 1240;// CONCATENATED MODULE: ./src/components/templates/CatchAllTemplate/index.ts 1241 1242/* harmony default export */ var templates_CatchAllTemplate = (CatchAllTemplate); 1243 1244;// CONCATENATED MODULE: ./src/pages/[[...slug]].tsx 1245/** 1246 * NextJS optional catch-all dynamic route. 1247 * 1248 * Ref: https://nextjs.org/docs/routing/dynamic-routes#optional-catch-all-routes 1249 * 1250 */ 1251 1252 1253 1254 1255 1256 1257 1258const ContentfulLivePreviewWrapper = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(3590), __webpack_require__.e(9092)]).then(__webpack_require__.bind(__webpack_require__, 779092)).then((mod)=>mod.ContentfulLivePreviewWrapper), { 1259 loadableGenerated: { 1260 webpack: ()=>[ 1261 /*require.resolve*/(779092) 1262 ] 1263 }, 1264 ssr: false 1265}); 1266const Slug = (props)=>{ 1267 var _data_pageEntry_fields, _data_pageEntry; 1268 const { data } = props; 1269 const contentfuLivePreview = (0,hooks/* useAppSelector */.C)(environmentSlice/* selectContentfulLivePreview */.Yw); 1270 const slug = data === null || data === void 0 ? void 0 : (_data_pageEntry = data.pageEntry) === null || _data_pageEntry === void 0 ? void 0 : (_data_pageEntry_fields = _data_pageEntry.fields) === null || _data_pageEntry_fields === void 0 ? void 0 : _data_pageEntry_fields.slug;
1271 // Redirect region-specific users to their dedicated become-a-member page. 1272 (0,react.useEffect)(()=>{ 1273 if (slug !== common/* BECOME_A_MEMBER_URL */.rE) return; 1274 const regionSlug = common/* BECOME_A_MEMBER_REGION_SLUG_MAP */.kN[(0,cookies/* getRegionIdStoredInCookie */.SC)()]; 1275 if (regionSlug) window.location.replace(regionSlug); 1276 }, [ 1277 slug 1278 ]); 1279 if (contentfuLivePreview && (data === null || data === void 0 ? void 0 : data.pageEntry) && (data === null || data === void 0 ? void 0 : data.headerEntry)) { 1280 return /*#__PURE__*/ (0,jsx_runtime.jsx)(ContentfulLivePreviewWrapper, { 1281 entries: [ 1282 data.pageEntry, 1283 data.headerEntry 1284 ], 1285 children: (param)=>{ 1286 let { updatedEntries } = param; 1287 const [pageEntry, headerEntry] = updatedEntries; 1288 return /*#__PURE__*/ (0,jsx_runtime.jsx)(templates_CatchAllTemplate, { 1289 data: { 1290 ...data, 1291 pageEntry, 1292 headerEntry 1293 } 1294 }); 1295 } 1296 }); 1297 } 1298 return /*#__PURE__*/ (0,jsx_runtime.jsx)(templates_CatchAllTemplate, { 1299 data: data 1300 }); 1301}; 1302var __N_SSG = true; 1303/* harmony default export */ var _slug_ = (Slug); 1304 1305 1306/***/ }) 1307 1308}, 1309/******/ function(__webpack_require__) { // webpackRuntimeModules 1310/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } 1311/******/ __webpack_require__.O(0, [8075,5432,1255,8867,3153,3949,3326,6382,68,4772,7987,5450,4523,737,6609,3436,9539,4483,2611,4263,1650,9786,5551,9013,3038,170,9277,29,5098,4243,4778,9864,8764,6246,7723,6593,2678,4582,4885,1061,71,678,641,9352,1772,5401,2914,3483,8735,6576,5218,9774,480,179], function() { return __webpack_exec__(895759); }); 1312/******/ var __webpack_exports__ = __webpack_require__.O(); 1313/******/ _N_E = __webpack_exports__; 1314/******/ } 1315]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.