{"version":3,"file":"static/js/9a4240176dbb57865e06.bundle.js","mappings":"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","sources":["webpack://henrys-ecommerce/./src/common/utilities/createCanonicalUrl.ts?7ccf","webpack://henrys-ecommerce/./src/modules/category-page-summary/category-page-summary.action.ts?ff83","webpack://henrys-ecommerce/./lib/category-page-summary/module-registration.js?c2e4","webpack://henrys-ecommerce/./src/modules/default-page-summary/default-page-summary.tsx?0c78","webpack://henrys-ecommerce/external var \"React\"?0d3b","webpack://henrys-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["import { IActionContext } from '@msdyn365-commerce/core';\r\n\r\nexport const createCanonicalUrl = (context: IActionContext, paths: string[], page: string) => {\r\n let canonicalDomainHost = `https://${context.requestContext.canonicalDomain}`;\r\n if (process.env.NODE_ENV === 'development') {\r\n canonicalDomainHost = '';\r\n }\r\n\r\n const sitePath = context.requestContext.sitePath ?? '';\r\n\r\n const url = `${canonicalDomainHost}${sitePath}/${paths\r\n .map(p => toSlug(p))\r\n .filter(s => s.length > 0)\r\n .join('/')}/${page}`;\r\n return url;\r\n};\r\n\r\nconst toSlug = (text: string) => {\r\n const slug = text\r\n .toLowerCase()\r\n .replace(/[^A-Za-z\\u00C0-\\u017F0-9]/g, '-')\r\n .replace(/--+/g, '-')\r\n .replace(/^-/, '')\r\n .replace(/-$/, '');\r\n\r\n return slug;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n getFriendlyName,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICreateActionContext,\r\n IRequestContext\r\n} from '@msdyn365-commerce/core';\r\nimport {\r\n ArrayExtensions,\r\n buildCacheKeyWithUrlTokens,\r\n CategoriesInput,\r\n CurrentCategoryInput,\r\n getCategoriesHierarchy\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { ICategoryPageSummaryConfig } from './category-page-summary.props.autogenerated';\r\nimport { IDefaultPageSummaryConfig } from '@msdyn365-commerce-modules/page-summary';\r\nimport { IPageSummaryData } from '@msdyn365-commerce-modules/page-summary';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { createCanonicalUrl } from '../../common/utilities/createCanonicalUrl';\r\n\r\n/**\r\n * Category Page Summary Input\r\n */\r\nexport class CategoryPageSummaryInput implements IActionInput {\r\n public requestContext: IRequestContext;\r\n\r\n public config: ICategoryPageSummaryConfig | IDefaultPageSummaryConfig;\r\n\r\n constructor(config: ICategoryPageSummaryConfig | IDefaultPageSummaryConfig, requestContext: IRequestContext) {\r\n this.config = config || {};\r\n this.requestContext = requestContext;\r\n }\r\n\r\n public getCacheObjectType = (): string => 'CategoryPageSummary';\r\n\r\n public getCacheKey = (): string =>\r\n `${buildCacheKeyWithUrlTokens(`CategoryPageSummary-${this.requestContext.locale}`, this.requestContext)}-${this.requestContext\r\n .locale ?? ''}`;\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createGetCurrentCategoryInput = (\r\n inputData: IActionContext,\r\n config?: ICategoryPageSummaryConfig | IDefaultPageSummaryConfig\r\n): CurrentCategoryInput => {\r\n if (inputData && inputData.requestContext) {\r\n let includeRootCategory: boolean | undefined;\r\n if (config) {\r\n includeRootCategory = (config as ICategoryPageSummaryConfig).includeRootCategory;\r\n }\r\n return new CurrentCategoryInput(inputData.requestContext, includeRootCategory);\r\n }\r\n\r\n throw new Error('Please specify categoryId query string in request.');\r\n};\r\n\r\nconst action = async (input: CategoryPageSummaryInput, context: IActionContext): Promise => {\r\n const { config } = input;\r\n let categoryHierarchy: CategoryHierarchy[] | null = null;\r\n try {\r\n const getCurrentCategoryInput = createGetCurrentCategoryInput(context, input.config);\r\n const fullCategoryHierarchy = await getCategoriesHierarchy(new CategoriesInput(context.requestContext, true, 1000), context);\r\n categoryHierarchy = findCategoryHierarchy(fullCategoryHierarchy, getCurrentCategoryInput.categoryId!);\r\n } catch {\r\n // Do nothing, if the action fails fallback to values defined in data\r\n }\r\n if (ArrayExtensions.hasElements(categoryHierarchy)) {\r\n const currentCategory = categoryHierarchy[0];\r\n\r\n const locale = context.requestContext.locale;\r\n let names = categoryHierarchy.map(c => getFriendlyName(locale, c.NameTranslations) ?? '').reverse();\r\n\r\n if (locale === 'fr-CA') {\r\n names = ['catégories', ...names];\r\n } else {\r\n names = ['categories', ...names];\r\n }\r\n\r\n let canonicalUrl = createCanonicalUrl(context, names, `${currentCategory.RecordId}.c`);\r\n\r\n const page = context.requestContext.url.requestUrl.searchParams?.get('page');\r\n if (page) {\r\n canonicalUrl = `${canonicalUrl}?page=${page}`;\r\n }\r\n\r\n const title = currentCategory.ExtensionProperties?.find(ep => ep.Key === 'l10nKeyword')?.Value?.StringValue ?? currentCategory.Name;\r\n\r\n return {\r\n title: `${title} | Henry\\'s`,\r\n description: currentCategory.ExtensionProperties?.find(ep => ep.Key === 'l10nDesc')?.Value?.StringValue,\r\n // keywords: currentCategory.ExtensionProperties?.find(ep => ep.Key === 'l10nKeyword')?.Value?.StringValue,\r\n sharingImageUrl: currentCategory.OfflineImage,\r\n canonicalUrl,\r\n faviconUrl: config && config.faviconUrl\r\n };\r\n\r\n // If the action fails fallback to values defined from data\r\n } else if (config) {\r\n return {\r\n title: config.title,\r\n sharingImageUrl: config.sharingImage && config.sharingImage.src,\r\n faviconUrl: config && config.faviconUrl\r\n };\r\n }\r\n return {};\r\n};\r\n\r\n/**\r\n * Finds the given category in the list of categories and returns an array with the info on where it's located.\r\n * @param categories - Categories list to search from.\r\n * @param categoryId - The category id to find.\r\n * @returns A list of categories starting from the given category id, ending up the root parent.\r\n */\r\nconst findCategoryHierarchy = (categories: CategoryHierarchy[], categoryId: number): CategoryHierarchy[] | null => {\r\n for (const category of categories) {\r\n if (category.RecordId === categoryId) {\r\n return [category];\r\n }\r\n\r\n if (ArrayExtensions.hasElements(category.Children)) {\r\n const innerCategoryHierarchy = findCategoryHierarchy(category.Children, categoryId);\r\n if (ArrayExtensions.hasElements(innerCategoryHierarchy)) {\r\n innerCategoryHierarchy.push(category);\r\n return innerCategoryHierarchy;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/page-summary/category-page-summary',\r\n action: >action,\r\n input: (args: ICreateActionContext) => {\r\n return new CategoryPageSummaryInput(args.config, args.requestContext);\r\n }\r\n});\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['category-page-summary'] = {\n c: () => require('@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary'),\n $type: 'htmlHeadTagsModule',\n da: [{name:'pageSummary', path:'modules/category-page-summary/category-page-summary.action', runOn: 0}],\n \n iNM: true,\n ns: '__local__',\n n: 'category-page-summary',\n p: '__local__',\n \n pdp: 'node_modules/@msdyn365-commerce-modules/page-summary/dist/lib/modules/default-page-summary/default-page-summary.definition.json',\n \n \n md: 'src/modules/category-page-summary'\n });\n \n\n {\n const sanitizedActionPath = 'modules/category-page-summary/category-page-summary.action';\n let dataAction = require('partner/modules/category-page-summary/category-page-summary.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += appConfig.pageTitleSuffix as string;\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["createCanonicalUrl","context","paths","page","_context$requestConte","requestContext","canonicalDomain","sitePath","map","p","toSlug","filter","s","length","join","text","toLowerCase","replace","CategoryPageSummaryInput","constructor","config","getCacheObjectType","getCacheKey","_this$requestContext$","buildCacheKeyWithUrlTokens","this","locale","dataCacheType","findCategoryHierarchy","categories","categoryId","category","RecordId","ArrayExtensions","hasElements","Children","innerCategoryHierarchy","push","createObservableDataAction","id","action","async","input","categoryHierarchy","getCurrentCategoryInput","createGetCurrentCategoryInput","inputData","includeRootCategory","CurrentCategoryInput","Error","fullCategoryHierarchy","getCategoriesHierarchy","CategoriesInput","_unused","_currentCategory$Exte","_currentCategory$Exte2","_currentCategory$Exte3","currentCategory","names","c","_getFriendlyName","getFriendlyName","NameTranslations","reverse","canonicalUrl","url","requestUrl","searchParams","get","title","ExtensionProperties","find","ep","Key","Value","StringValue","Name","description","sharingImageUrl","OfflineImage","faviconUrl","sharingImage","src","args","binding","modules","dataActions","require","$type","da","name","path","runOn","iNM","ns","n","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","window","__bindings__","_objectSpread","DefaultPageSummary","React","render","undefined","props","data","pageSummary","result","keywords","pageTitle","_constructPageTitle","request","app","HtmlHeadInclude","content","rel","href","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","module","exports","ReactDOM"],"sourceRoot":""}