{"version":3,"file":"static/js/626bf426f935ac2ecf18.bundle.js","mappings":"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","sources":["webpack://sgi-bookstore/./src/themes/sgi-theme/views/ratings-histogram.view.tsx?8cab","webpack://sgi-bookstore/./lib/ratings-histogram/module-registration.js?bc1d","webpack://sgi-bookstore/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://sgi-bookstore/./src/actions/ratings-reviews-state-data-action.ts?26cd","webpack://sgi-bookstore/./src/modules/ratings-histogram/component/components.tsx?f324","webpack://sgi-bookstore/./src/modules/ratings-histogram/ratings-histogram.tsx?f6bc","webpack://sgi-bookstore/./src/modules/ratings-histogram/ratings-histogram.view.tsx?5bff","webpack://sgi-bookstore/./src/modules/adventureworks/views/ratings-histogram.view.tsx?bb5b","webpack://sgi-bookstore/external var \"React\"?0d3b","webpack://sgi-bookstore/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { RatingComponent } from '@msdyn365-commerce/components';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\nimport { IHistogramItemViewProps, IRatingsHistogramData, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { format, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IRatingsHistogramProps, IRatingsHistogramResources } from '../definition-extensions/ratings-histogram.ext.props.autogenerated';\r\n\r\n/**\r\n * Histogram item.\r\n * @param props - Histogram Item ViewProps.\r\n * @returns Histogram Item node.\r\n */\r\nconst histogramItem = (props: IHistogramItemViewProps) => {\r\n return (\r\n \r\n {props.starLabel}\r\n {props.bar}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Average ratings.\r\n * @param data - Props data.\r\n * @param context - Histogram Item ViewProps.\r\n * @param typeName - Histogram Item ViewProps.\r\n * @param componentId - Histogram Item ViewProps.\r\n * @param resources - Module resource strings.\r\n * @returns Average ratings.\r\n */\r\nconst averageRating = (\r\n data: IRatingsHistogramData,\r\n context: ICoreContext,\r\n typeName: string,\r\n componentId: string,\r\n resources: IRatingsHistogramResources\r\n) => {\r\n const defaultAverageRating: number = 0;\r\n const reviewsCount = data.ratingsSummary.result?.reviewsCount ?? defaultAverageRating;\r\n const reviewsCountString = resources.numberOfReviewsString\r\n ? format(resources.numberOfReviewsString, reviewsCount)\r\n : `${reviewsCount} reviews`;\r\n\r\n return (\r\n
\r\n
{data.ratingsSummary.result?.averageRating}
\r\n
\r\n \r\n
\r\n
{reviewsCountString}
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Histogram view.\r\n * @param props - Ratings HistogramV iewProps.\r\n * @returns Histogram view module.\r\n */\r\nconst RatingsHistogramView: React.FC> = props => {\r\n const { heading, histogramItems, histogramProps, moduleProps, data, resources } = props;\r\n const context = props.context;\r\n const typeName = props.typeName;\r\n const moduleId = props.id;\r\n\r\n return (\r\n \r\n {heading}\r\n
\r\n {averageRating(data, context, typeName, moduleId, resources)}\r\n \r\n {histogramItems.map(item => {\r\n return histogramItem(item);\r\n })}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RatingsHistogramView;\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['ratings-histogram'] = {\n c: () => require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/ratings-histogram/ratings-histogram'),\n $type: 'contentModule',\n da: [{name:'ratingsReviewsState', path:'@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action', runOn: 1},{name:'ratingsSummary', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'ratings-histogram',\n p: 'ratings-reviews',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/ratings-histogram'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action';\n let dataAction = require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/actions/ratings-reviews-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-ratings-summary');\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 export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|sgi-theme|views|ratings-histogram'] = {\n c: () => require('partner/themes/sgi-theme/views/ratings-histogram.view.tsx'),\n cn: '__local__-__local__-ratings-histogram'\n };\nviewDictionary['@msdyn365-commerce-modules|fabrikam-design-kit|modules|fabrikam|views|ratings-histogram'] = {\n c: () => require('@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/ratings-histogram.view.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-ratings-histogram'\n };\nviewDictionary['@msdyn365-commerce-modules|ratings-reviews|modules|ratings-histogram|ratings-histogram'] = {\n c: () => require('@msdyn365-commerce-modules/ratings-reviews/dist/lib/modules/ratings-histogram/ratings-histogram.view.js'),\n cn: '@msdyn365-commerce-modules-ratings-reviews-ratings-histogram'\n };\nviewDictionary['@msdyn365-commerce-theme|adventureworks-theme-kit|modules|adventureworks|views|ratings-histogram'] = {\n c: () => require('@msdyn365-commerce-theme/adventureworks-theme-kit/dist/lib/modules/adventureworks/views/ratings-histogram.view.js'),\n cn: '@msdyn365-commerce-theme-adventureworks-theme-kit-ratings-histogram'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nexport interface IRatingsReviewsState {\n filterKey: string;\n}\n\nexport function createRatingsReviewsStateInput(result: IRatingsReviewsState): GenericInput {\n return new GenericInput('ratingsReviewsState', result, 'ratingsReviewsStateInput');\n}\n\nconst createInternalRatingsReviewsStateInput = (): IActionInput => {\n return createRatingsReviewsStateInput({ filterKey: '1;2;3;4;5' });\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createInternalRatingsReviewsStateInput\n});\n\nexport default getGenericActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RatingsSummary } from '@msdyn365-commerce/commerce-entities';\nimport { format, INodeProps, Progress } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IHistogramItemsProps {\n ratingsSummary: RatingsSummary;\n resources: IHistogramItemsResources;\n locale: string;\n onClick(stars: number): void;\n}\n\nexport interface IHistogramItemsResources {\n barItemAriaLabel: string;\n}\n\nexport interface IHistogramItemViewProps {\n starLabel: React.ReactElement;\n bar: React.ReactElement;\n percentage: React.ReactElement;\n buttonProps: INodeProps;\n}\n\n/**\n * CartLineItems component.\n */\n\nexport const HistogramItems = (props: IHistogramItemsProps): IHistogramItemViewProps[] => {\n const { ratingsSummary } = props;\n const totalRatingsCount: number = ratingsSummary.totalRatingsCount || 0;\n if (totalRatingsCount === 0) {\n return [];\n }\n return [\n renderItem(props, 5, ratingsSummary.star5Count, totalRatingsCount),\n renderItem(props, 4, ratingsSummary.star4Count, totalRatingsCount),\n renderItem(props, 3, ratingsSummary.star3Count, totalRatingsCount),\n renderItem(props, 2, ratingsSummary.star2Count, totalRatingsCount),\n renderItem(props, 1, ratingsSummary.star1Count, totalRatingsCount)\n ];\n};\n\nconst renderItem = (props: IHistogramItemsProps, stars: number, count?: number, totalCount?: number): IHistogramItemViewProps => {\n count = count || 0;\n totalCount = totalCount || 0;\n const percentage = totalCount === 0 ? 0 : count / totalCount;\n const formattedPercent = new Intl.NumberFormat(props.locale, { style: 'percent' }).format(percentage);\n const ariaLabel = format(props.resources.barItemAriaLabel, stars, formattedPercent);\n\n return {\n starLabel: (\n \n ),\n percentage: (\n \n ),\n bar: ,\n buttonProps: {\n tag: 'button',\n className: 'ms-ratings-histogram__item',\n onClick: () => {\n props.onClick(stars);\n }\n }\n };\n};\n\nexport const AverageRatingNumber: React.FC<{ summary: RatingsSummary }> = (props: { summary: RatingsSummary }) => {\n return (\n

\n {props.summary.averageRating}\n {` `}/ 5\n

\n );\n};\n\nexport const TotalReviews: React.FC<{ summary: RatingsSummary }> = (props: { summary: RatingsSummary }) => {\n return

{props.summary.totalRatingsCount}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RatingComponent } from '@msdyn365-commerce/components';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createRatingsReviewsStateInput } from '../../actions/ratings-reviews-state-data-action';\nimport { AverageRatingNumber, HistogramItems, IHistogramItemViewProps, TotalReviews } from './component/components';\nimport { IRatingsHistogramData } from './ratings-histogram.data';\nimport { IRatingsHistogramProps } from './ratings-histogram.props.autogenerated';\n\nexport interface IRatingsHistogramViewProps extends IRatingsHistogramProps {\n className: string;\n histogramItems: IHistogramItemViewProps[];\n moduleProps: IModuleProps;\n heading: React.ReactNode;\n averageRating: React.ReactNode;\n averageNumber: React.ReactNode;\n totalReviews: React.ReactNode;\n histogramProps: INodeProps;\n ratingsSummaryProps: INodeProps;\n callbacks: IRatingsHistogramCallbacks;\n}\n\nexport interface IRatingsHistogramCallbacks {\n selectFilterBy(stars: number): void;\n}\n\n/**\n * RatingsHistogram component.\n * @extends {React.Component>}\n */\n@observer\nclass RatingsHistogram extends React.PureComponent> {\n constructor(props: IRatingsHistogramProps) {\n super(props);\n this.selectFilterBy = this.selectFilterBy.bind(this);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { className, heading } = this.props.config;\n const {\n ratingsSummary: { result: ratingsSummary }\n } = this.props.data;\n const ratingCount = ratingsSummary && ratingsSummary.totalRatingsCount ? `${ratingsSummary.totalRatingsCount}` : '0';\n\n const completeClass = classname('ms-ratings-histogram', className);\n const viewProps: IRatingsHistogramViewProps = {\n ...this.props,\n className: completeClass,\n callbacks: {\n selectFilterBy: this.selectFilterBy\n },\n moduleProps: {\n moduleProps: this.props,\n className: completeClass\n },\n histogramItems: ratingsSummary\n ? HistogramItems({\n ratingsSummary,\n resources: { ...resources },\n locale: this.props.context.request.locale,\n onClick: this.selectFilterBy\n })\n : [],\n averageRating: ratingsSummary && (\n \n ),\n averageNumber: ratingsSummary && ,\n totalReviews: ratingsSummary && ,\n ratingsSummaryProps: { className: 'ms-ratings-histogram__summary' },\n heading: heading && (\n \n ),\n histogramProps: { className: 'ms-ratings-histogram__histogram' }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public selectFilterBy(stars: number): void {\n const filterKey = `${stars}`;\n this.props.context.actionContext.update(createRatingsReviewsStateInput({ filterKey }), { filterKey });\n }\n}\n\nexport default RatingsHistogram;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHistogramItemViewProps } from './component/components';\nimport { IRatingsHistogramViewProps } from './ratings-histogram';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RatingComponent } from '@msdyn365-commerce/components';\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport { IHistogramItemViewProps, IRatingsHistogramData, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { format, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IRatingsHistogramProps, IRatingsHistogramResources } from '../definition-extensions/ratings-histogram.ext.props.autogenerated';\n\n/**\n * Histogram item.\n * @param props - Histogram Item ViewProps.\n * @returns Histogram Item node.\n */\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n \n );\n};\n\n/**\n * Average ratings.\n * @param data - Props data.\n * @param context - Histogram Item ViewProps.\n * @param typeName - Histogram Item ViewProps.\n * @param componentId - Histogram Item ViewProps.\n * @param resources - Module resource strings.\n * @returns Average ratings.\n */\nconst averageRating = (\n data: IRatingsHistogramData,\n context: ICoreContext,\n typeName: string,\n componentId: string,\n resources: IRatingsHistogramResources\n) => {\n const defaultAverageRating: number = 0;\n const reviewsCount = data.ratingsSummary.result?.reviewsCount ?? defaultAverageRating;\n const reviewsCountString = resources.numberOfReviewsString\n ? format(resources.numberOfReviewsString, reviewsCount)\n : `${reviewsCount} reviews`;\n\n return (\n
\n
{data.ratingsSummary.result?.averageRating}
\n
\n \n
\n
{reviewsCountString}
\n
\n );\n};\n\n/**\n * Histogram view.\n * @param props - Ratings HistogramV iewProps.\n * @returns Histogram view module.\n */\nconst RatingsHistogramView: React.FC> = props => {\n const { heading, histogramItems, histogramProps, moduleProps, data, resources } = props;\n const context = props.context;\n const typeName = props.typeName;\n const moduleId = props.id;\n\n return (\n \n {heading}\n
\n {averageRating(data, context, typeName, moduleId, resources)}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n
\n
\n );\n};\n\nexport default RatingsHistogramView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["props","heading","histogramItems","histogramProps","moduleProps","data","resources","context","typeName","moduleId","id","React","Module","Object","assign","className","averageRating","componentId","_data$ratingsSummary$","_data$ratingsSummary$2","_data$ratingsSummary$3","_data$ratingsSummary$4","_data$ratingsSummary$5","_data$ratingsSummary$6","reviewsCount","ratingsSummary","result","reviewsCountString","numberOfReviewsString","format","RatingComponent","avgRating","readOnly","ariaLabel","averageRatingAriaLabel","Node","map","item","buttonProps","starLabel","bar","histogramItem","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","percentage","createRatingsReviewsStateInput","GenericInput","getGenericActionDataAction","createObservableDataAction","action","getGenericAction","input","createInternalRatingsReviewsStateInput","filterKey","HistogramItems","totalRatingsCount","renderItem","star5Count","star4Count","star3Count","star2Count","star1Count","stars","count","totalCount","formattedPercent","Intl","NumberFormat","locale","style","barItemAriaLabel","Progress","value","max","tag","onClick","AverageRatingNumber","summary","TotalReviews","RatingsHistogram","constructor","super","handleHeadingChange","event","this","config","text","target","selectFilterBy","bind","render","ratingCount","completeClass","classname","viewProps","callbacks","request","hideCount","averageNumber","totalReviews","ratingsSummaryProps","Msdyn365","editProps","onEdit","requestContext","renderView","actionContext","update","__decorate","observer","module","exports","ReactDOM"],"sourceRoot":""}