{"version":3,"file":"static/js/0573f493deff83607727.bundle.js","mappings":";0RAMIA,EAAMC,GAAAA,GAEV,MA2CMC,EAAeA,CAACC,EAAiBC,KACnCD,EAASE,KAAIC,IACT,MAAMC,EAAmBD,EAASE,IAAIC,QAAQ,GAAGL,aAAyB,IAC1EJ,EAAIU,KAAKH,EAAUD,EAASK,KAAM,CAAEC,QAAQ,QAI9CC,EAAYC,IACTd,EAAIe,cAAc,CAAEC,KAAM,SAAUC,MAAK,SAASN,IACnDO,EAAAA,EAAAA,QAAOP,EAAM,SAASG,klBC5B9B,MAAMK,UAAkCC,EAAAA,cAAxCC,kCACqB,KAAAC,kBAAsCC,EAAAA,EAAAA,oBACnDC,KAAKC,MAAMC,QAAQC,QAAQC,kBAC3BJ,KAAKC,MAAMI,aACXL,KAAKC,MAAMK,WAGRC,SACH,IAAIC,EAEJ,IACIA,EAAOR,KAAKC,MAAMO,KACpB,MAAOC,GAEL,OADAT,KAAKC,MAAMK,UAAUG,MAAM,8BAA8BA,KAClDb,EAAAA,cAAA,WAAMa,GAQjB,MAAMC,EAASC,EAAAA,EAAA,GACRX,KAAKC,OAAK,IACbW,mCAAoCZ,KAAKa,yBAAyBL,GAClEM,UAAWd,KAAKC,MAAMc,OAAOD,YAGjC,OAAOd,KAAKC,MAAMe,WAAWN,GAGzBO,gBACJ,MAAMC,GAAUC,EAAAA,EAAAA,kBAAiBC,EAAAA,GAAAA,gBAAgCpB,KAAKF,iBAAkBE,KAAKC,MAAMoB,UAAUC,cAAe,IACtHC,GAAaC,EAAAA,EAAAA,wBAAuBxB,KAAKF,iBAAkBoB,GAEjE,OACItB,EAAAA,cAAC6B,EAAAA,OAAMC,OAAAC,OAAA,CACHb,UAAW,oCACXc,MAAM,UACNC,QAASC,EACL9B,KAAKC,MAAMO,KAAKuB,QAAQC,OACxBhC,KAAKC,MAAMO,KAAKyB,kBAAkBD,OAClChC,KAAKC,MAAMC,QAAQC,QAAQ+B,YAAYtD,cAE3CuD,MAAOnC,KAAKC,MAAMoB,UAAUC,eACxBC,GAEHvB,KAAKC,MAAMoB,UAAUC,eAK1BT,yBAAyBuB,GAC7B,OAAOxC,EAAAA,cAAA,OAAKkB,UAAW,2CAA4Cd,KAAKiB,kBAIhF,MAAMa,EAAWA,CACbO,EACAC,EACAC,IACCC,eDrFL,OACIT,EACAE,EACArD,KAEA,MAAM6D,EAAiB,GAEvB,GAAIV,EAAS,CACT,MAAMW,EAAU,GAAG9D,aAAwBmD,EAAQY,cAC7CC,EAAW,GAAGb,EAAQY,cACK,CAAC,EAAG,EAAG,EAAG,EAAG,GAE/B9D,KAAIgE,GAAeJ,EAAKK,KAAK,GAAGF,MAAaC,QAAmB,GAAGH,MAAYG,WAG9Fd,GAAWE,GAAqBA,EAAkB,IAAMA,EAAkB,GAAGc,iBAC7Ed,EAAkB,GAAGc,gBAAgBlE,KAAImE,IACrC,MAAMN,EAAU,GAAG9D,aAAwBmD,EAAQY,YAAYK,EAAUC,mBACnEL,EAAW,GAAGb,EAAQY,YAAYK,EAAUC,mBACjB,CAAC,EAAG,EAAG,EAAG,EAAG,GAE/BpE,KAAIgE,GAAeJ,EAAKK,KAAK,GAAGF,MAAaC,QAAmB,GAAGH,MAAYG,cAItG,MAAMK,QAAkBC,QAAQC,IAC5BX,EAAK5D,KAAIG,GACLqE,MAAMrE,GAAKS,MAAK6D,GACK,MAAbA,EAAEC,OACK,CAAEpE,KAAMmE,EAAEnE,OAAQH,IAAKA,GAEvB,UAKvBN,EACIwE,EAAUM,QAAO1E,GAAyB,OAAbA,IAC7BF,GAEJS,EAAS0C,MAAAA,OAAO,EAAPA,EAASY,SC8CZc,CAAsBpB,EAAUC,EAAoBC,IAGxD,SAAUmB,EAAoBzD,GAChC,OAAOF,EAAAA,EAAAA,oBAAmBE,EAAMC,QAAQC,QAAQC,kBAAoBH,EAAMI,aAAcJ,EAAMK,WAGlG,wEC7FA,QAAgBL,GAERL,EAAAA,cAAA,MAAA8B,OAAAC,OAAA,CAAKb,UAAWb,EAAMa,UAAW6C,GAAI1D,EAAM0D,IAAQ1D,EAAM2D,uBAAuB3D,IAC3EA,EAAMW,yoBCXnB,MAAMiD,EAAU,CAAEC,QAAS,GAAIC,YAAa,IAmBlCC,EAA8BA,CAACC,EAAqBC,KAUlD,GADAL,EAAQE,YAAYE,GAAuBC,GACtCL,EAAQE,YAAYE,GAAqBE,QAC1C,MAAM,IAAIC,MAAM,oBAAsBH,EAAsB,mCAEhEJ,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUC,eAAiBL,EACxEJ,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUV,KAC3DE,EAAQE,YAAYF,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUV,IAAMM,IAMhGJ,EAAQC,QAAQ,gCAAkC,CAC/CS,EAAGA,IAAMC,EAAQ,MACjBC,MAAO,gBACPC,GAAI,CAAC,CAACC,KAAK,UAAYC,KAAK,0EAA2EC,MAAO,GAAG,CAACF,KAAK,oBAAsBC,KAAK,yFAA0FC,MAAO,IAEnPC,KAAK,EACLC,GAAI,YACJC,EAAG,+BACHC,EAAG,YAEHC,IAAK,GAGLC,GAAI,4CAOAnB,EAF4B,yFACXQ,EAAQ,MAQzBR,EAF4B,0EACXQ,EAAQ,KAMjCY,OAAOC,aAAeD,OAAOC,cAAgB,GAC7CD,OAAOC,aAAavB,QAAOnD,EAAAA,EAAA,GACpByE,OAAOC,aAAavB,SAAW,IAC/BD,EAAQC,SAGXsB,OAAOC,aAAatB,YAAWpD,EAAAA,EAAA,GAC5ByE,OAAOC,aAAatB,aAAe,IACnCF,EAAQE,aAEY,MAAMuB,EAAiB,GAC9BA,EAAe,yFAA2F,CAClHf,EAAGA,IAAMC,EAAQ,MACjBe,GAAI,oDAEpBH,OAAOC,aAAeD,OAAOC,cAAgB,GAC7CD,OAAOC,aAAaC,eAAc3E,EAAAA,EAAA,GACPyE,OAAOC,aAAaC,gBAAkB,IACtCA,UC1F3BE,EAAOC,QAAU7F,cCAjB4F,EAAOC,QAAUC","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/lobas-digital-asset-download/methods/createDownloadPackage.ts?96c8","webpack://Msdyn365.Commerce.Online/./src/modules/lobas-digital-asset-download/lobas-digital-asset-download.tsx?89cd","webpack://Msdyn365.Commerce.Online/./src/modules/lobas-digital-asset-download/lobas-digital-asset-download.view.tsx?da69","webpack://Msdyn365.Commerce.Online/./lib/lobas-digital-asset-download/module-registration.js?49ba","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/* eslint-disable no-debugger */\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { IDimensionForSelectedVariant } from '@msdyn365-commerce-modules/retail-actions';\r\nimport JSZip from 'jszip';\r\nimport { saveAs } from 'file-saver';\r\n\r\nvar zip = JSZip();\r\n\r\nexport default async (\r\n product: SimpleProduct | undefined,\r\n productDimensions: IDimensionForSelectedVariant[] | undefined,\r\n baseImageUrl: string | undefined\r\n) => {\r\n const urls: string[] = [];\r\n\r\n if (product) {\r\n const fullUrl = `${baseImageUrl}Products/${product.ItemId}_000_`;\r\n const imageUrl = `${product.ItemId}_000_`;\r\n const numberOfImages: number[] = [1, 2, 3, 4, 5];\r\n\r\n numberOfImages.map(imageNumber => urls.push(`${imageUrl}00${imageNumber}.png`, `${fullUrl}00${imageNumber}.png`));\r\n }\r\n\r\n if (product && productDimensions && productDimensions[0] && productDimensions[0].DimensionValues) {\r\n productDimensions[0].DimensionValues.map(dimension => {\r\n const fullUrl = `${baseImageUrl}Products/${product.ItemId} ^ ${dimension.DimensionId}_000_`;\r\n const imageUrl = `${product.ItemId} ^ ${dimension.DimensionId}_000_`;\r\n const numberOfImages: number[] = [1, 2, 3, 4, 5];\r\n\r\n numberOfImages.map(imageNumber => urls.push(`${imageUrl}00${imageNumber}.png`, `${fullUrl}00${imageNumber}.png`));\r\n });\r\n }\r\n\r\n const responses = await Promise.all(\r\n urls.map(url =>\r\n fetch(url).then(r => {\r\n if (r.status === 200) {\r\n return { blob: r.blob(), url: url };\r\n } else {\r\n return null;\r\n }\r\n })\r\n )\r\n );\r\n addToArchive(\r\n responses.filter(response => response !== null),\r\n baseImageUrl\r\n );\r\n download(product?.ItemId);\r\n};\r\n\r\nconst addToArchive = (reponses: any[], baseImageUrl: string | undefined) => {\r\n reponses.map(response => {\r\n const fileName: string = response.url.replace(`${baseImageUrl}Products/`, '');\r\n zip.file(fileName, response.blob, { binary: true });\r\n });\r\n};\r\n\r\nconst download = (itemId?: string) => {\r\n void zip.generateAsync({ type: 'blob' }).then(function(blob) {\r\n saveAs(blob, `LOBAS_${itemId}.zip`);\r\n });\r\n};\r\n","/* eslint-disable no-debugger */\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\nimport * as React from 'react';\r\n\r\nimport { ILobasDigitalAssetDownloadData } from './lobas-digital-asset-download.data';\r\nimport { ILobasDigitalAssetDownloadProps } from './lobas-digital-asset-download.props.autogenerated';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n ITelemetryContent\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { TelemetryEvent } from '@msdyn365-commerce/core';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { IDimensionForSelectedVariant } from '@msdyn365-commerce-modules/retail-actions';\r\nimport createDownloadPackage from './methods/createDownloadPackage';\r\n\r\nexport interface ILobasDigitalAssetDownloadViewProps extends ILobasDigitalAssetDownloadProps {\r\n lobasDigitalAssetDownloadContainer?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\n/**\r\n *\r\n * LobasDigitalAssetDownload component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LobasDigitalAssetDownload extends React.PureComponent> {\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public render(): JSX.Element | null {\r\n let data: ILobasDigitalAssetDownloadData;\r\n\r\n try {\r\n data = this.props.data;\r\n } catch (error) {\r\n this.props.telemetry.error(`Something went wrong ------${error}`);\r\n return
{error}
;\r\n }\r\n\r\n /*if (!data.productDimensions.result || data.productDimensions.result.length <= 0) {\r\n this.props.telemetry.error('Product dimensions content is empty, module wont render.');\r\n return null;\r\n }*/\r\n\r\n const viewProps = {\r\n ...this.props,\r\n lobasDigitalAssetDownloadContainer: this._createDownloadContainer(data),\r\n className: this.props.config.className\r\n } as ILobasDigitalAssetDownloadViewProps;\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n\r\n private _createButton(): JSX.Element {\r\n const payload = getPayloadObject(TelemetryEvent.ProductPageView, this.telemetryContent, this.props.resources.downloadLabel, '');\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payload);\r\n\r\n return (\r\n \r\n {this.props.resources.downloadLabel}\r\n \r\n );\r\n }\r\n\r\n private _createDownloadContainer(content: ILobasDigitalAssetDownloadData): JSX.Element | null {\r\n return
{this._createButton()}
;\r\n }\r\n}\r\n\r\nconst _onClick = (\r\n _product: SimpleProduct | undefined,\r\n _productDimensions: IDimensionForSelectedVariant[] | undefined,\r\n _baseImageUrl: string | undefined\r\n) => async () => {\r\n await createDownloadPackage(_product, _productDimensions, _baseImageUrl);\r\n};\r\n\r\nexport function getTelemetryContent(props: ILobasDigitalAssetDownloadProps): ITelemetryContent {\r\n return getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n}\r\n\r\nexport default LobasDigitalAssetDownload;\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\nimport * as React from 'react';\r\nimport { ILobasDigitalAssetDownloadViewProps } from './lobas-digital-asset-download';\r\n\r\nexport default (props: ILobasDigitalAssetDownloadViewProps) => {\r\n return (\r\n
\r\n {props.lobasDigitalAssetDownloadContainer}\r\n
\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['lobas-digital-asset-download'] = {\n c: () => require('partner/modules/lobas-digital-asset-download/lobas-digital-asset-download.tsx'),\n $type: 'contentModule',\n da: [{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productDimensions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'lobas-digital-asset-download',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/lobas-digital-asset-download'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-dimensions-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\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__|modules|lobas-digital-asset-download|lobas-digital-asset-download'] = {\n c: () => require('partner/modules/lobas-digital-asset-download/lobas-digital-asset-download.view.tsx'),\n cn: '__local__-__local__-lobas-digital-asset-download'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["zip","JSZip","addToArchive","reponses","baseImageUrl","map","response","fileName","url","replace","file","blob","binary","download","itemId","generateAsync","type","then","saveAs","LobasDigitalAssetDownload","React","constructor","telemetryContent","getTelemetryObject","this","props","context","request","telemetryPageName","friendlyName","telemetry","render","data","error","viewProps","_objectSpread","lobasDigitalAssetDownloadContainer","_createDownloadContainer","className","config","renderView","_createButton","payload","getPayloadObject","TelemetryEvent","resources","downloadLabel","attributes","getTelemetryAttributes","Button","Object","assign","color","onClick","_onClick","product","result","productDimensions","apiSettings","title","content","_product","_productDimensions","_baseImageUrl","async","urls","fullUrl","ItemId","imageUrl","imageNumber","push","DimensionValues","dimension","DimensionId","responses","Promise","all","fetch","r","status","filter","createDownloadPackage","getTelemetryContent","id","renderModuleAttributes","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__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}