{"version":3,"sources":["webpack:///./src/modules/product-skutitle/product-skutitle.tsx?e4dc","webpack:///./src/modules/pdp-dynamic-image/pdp-dynamic-image.tsx?0f59","webpack:///./src/modules/product-description/product-description.tsx?7e5c","webpack:///./src/modules/vineyard-map/vineyard-map.data-map.ts?07a2","webpack:///./src/modules/vineyard-map/vineyard-map-svg.tsx?cf41","webpack:///./src/modules/vineyard-map/vineyard-map-text.tsx?154a","webpack:///./src/modules/vineyard-map/vineyard-map.tsx?85fa","webpack:///./src/modules/smart-sticky-nav/smart-sticky-nav.props.autogenerated.ts?2b9e","webpack:///./src/modules/smart-sticky-nav/smart-sticky-nav.tsx?438e","webpack:///./src/modules/clickable-container/clickable-container.tsx?c8ae","webpack:///./src/modules/wine-club-content/wine-club-content.tsx?975d","webpack:///./src/modules/element-scroller/element-scroller.tsx?ff87"],"names":["ProductSkutitle","React","constructor","_productAttributeWineBottleSize","render","content","this","props","data","productSpecificationData","result","productAttribute","filter","attribute","Name","toUpperCase","length","TextValue","skuTitle","className","RichTextComponent","text","productDetails","product","PdpDynamicImage","productAttributes","ItemId","imageUrl","config","imageSearchUrl","http","XMLHttpRequest","open","send","status","Image","gridSettings","context","request","imageSettings","src","altText","ProductDescription","_productAttributeTastingNotes","_productAttributeCookbookDescriptions","cookbookAttribute","dataText","area","heading","dataSvg","path","d","transform","tspan","dy","x","VineyardMapSvg","viewBox","map","shape","shapeKey","assignActiveSvg","style","animationDelay","onClick","toggle","key","textKey","undefined","VineyardMapText","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","logoImage","Object","headerImage","_renderActiveText","find","activeArea","VineyardMap","super","advance","timer","interval","_toggle","bind","_autoAdvance","_assignActiveSvg","componentDidMount","window","setInterval","componentWillUnmount","clearInterval","__decorate","observable","observer","action","direction","SmartStickyNav","_lastKnownScrollPosition","_throttledScrollhandler","throttle","_scrollHandler","addEventListener","removeEventListener","_performAction","targetElement","actionFunction","actionClass","index","classList","targetClass","bidirectional","scrollDirection","selectedAction","currentPosition","scrollY","document","getElementsByClassName","add","bidirectionalActionFunction","down","up","ClickableContainer","link","classname","href","linkUrl","destinationUrl","target","_target","ariaLabel","_slots","openInNewTab","slots","clickableContent","slot","WineClubContent","leftRichText","wineClubPhoneNumber","rightRichText","ElementScroller","_throttledScrollHandler","_isAnyPartOfElementInViewport","_cachedDOMQueries","Map","_scrollConfig","forEach","scrollConfig","_selectElement","translateX","_calculateTranslateX","el","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","trigger","triggerElement","endingTrigger","endTriggerElement","animationAdjustments","_getScrollingAdjustments","triggerPos","offsetTop","endingTriggerPos","animationPercentCompletion","offset","translateValue","endTranslationValue","startTranslationValue","rate","telemetry","debug","selector","has","get","$el","querySelector","set","md","mobileAdjustments","tabletAdjustments","desktopAdjustments"],"mappings":"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","file":"static/js/17.ab6da84988c8a978b4af.chunk.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport { IProductSkutitleData } from './product-skutitle.data';\r\nimport { IProductSkutitleProps } from './product-skutitle.props.autogenerated';\r\n\r\n/**\r\n *\r\n * ProductSkutitle component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ProductSkutitle extends React.PureComponent> {\r\n private _productAttributeWineBottleSize: string = 'WINE BOTTLE SIZE';\r\n public render(): JSX.Element | null {\r\n const content: IProductSkutitleData = this.props.data;\r\n if (!(content && content.productSpecificationData && content.productSpecificationData.result)\r\n ) {\r\n return null;\r\n }\r\n const productAttributes = content.productSpecificationData.result;\r\n const productAttribute = productAttributes.filter(\r\n attribute => attribute.Name && attribute.Name.toUpperCase() === this._productAttributeWineBottleSize\r\n );\r\n if (\r\n productAttribute &&\r\n productAttribute.length &&\r\n productAttribute[0].TextValue\r\n ) {\r\n // DG: Removed hard-coded bottle text. Some 14 Hands SKUs are cans.\r\n // In the future, add a mechanism to identify bottles, or just include the bottle text in the back-end.\r\n // const skuTitle = productAttribute[0].TextValue.concat(' bottle');// need to followup for localization\r\n const skuTitle = productAttribute[0].TextValue;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n const productDetails: SimpleProduct | undefined = content.product && content.product.result;\r\n if (\r\n productDetails &&\r\n productDetails.Name\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\nexport default ProductSkutitle;\r\n","import * as React from 'react';\r\n\r\nimport { Image } from '@msdyn365-commerce/core';\r\nimport { IPdpDynamicImageData } from './pdp-dynamic-image.data';\r\nimport { IPdpDynamicImageProps } from './pdp-dynamic-image.props.autogenerated';\r\n\r\n/**\r\n *\r\n * PdpDynamicImage component\r\n * @extends {React.Component>}\r\n */\r\nclass PdpDynamicImage extends React.Component> {\r\n public render(): JSX.Element | null {\r\n const content = this.props.data;\r\n const productAttributes = content && content.product && content.product.result;\r\n if (productAttributes && productAttributes.ItemId) {\r\n const imageUrl = `${this.props.config.imageSearchUrl}${productAttributes.ItemId}_000_sec.png`;\r\n const http = new XMLHttpRequest();\r\n http.open('HEAD', imageUrl, false);\r\n http.send();\r\n if (http.status !== 404) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default PdpDynamicImage;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { IProductDescriptionData } from './product-description.data';\r\nimport { IProductDescriptionProps } from './product-description.props.autogenerated';\r\n\r\n/**\r\n *\r\n * ProductDescription component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ProductDescription extends React.PureComponent<\r\n IProductDescriptionProps\r\n > {\r\n private _productAttributeTastingNotes: string = 'TASTING NOTES';\r\n private _productAttributeCookbookDescriptions: string = 'COOKBOOKDESCRIPTION';\r\n public render(): JSX.Element | null {\r\n const content: IProductDescriptionData = this.props.data;\r\n if (\r\n !(\r\n content &&\r\n content.productSpecificationData &&\r\n content.productSpecificationData.result\r\n )\r\n ) {\r\n return null;\r\n }\r\n const productAttributes = content.productSpecificationData.result;\r\n const productAttribute = productAttributes.filter(\r\n attribute =>\r\n attribute.Name!.toUpperCase() === this._productAttributeTastingNotes\r\n );\r\n if (\r\n productAttribute &&\r\n productAttribute.length &&\r\n productAttribute[0].TextValue\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n const cookbookAttribute = productAttributes.filter(\r\n attribute =>\r\n attribute.Name!.toUpperCase() === this._productAttributeCookbookDescriptions);\r\n if (\r\n cookbookAttribute &&\r\n cookbookAttribute.length &&\r\n cookbookAttribute[0].TextValue\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default ProductDescription;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n /* tslint:disable:max-line-length */\r\n\r\nexport const dataText = [\r\n {\r\n area: 0,\r\n heading: 'Explore',\r\n text: 'Roll over the vineyard blocks to discover what each varietal component contributes to the final blend of Col Solare.'\r\n },\r\n {\r\n area: 1,\r\n heading: 'Malbec',\r\n text: 'This varietal is prized for its spice notes and deep, rich color.'\r\n },\r\n {\r\n area: 2,\r\n heading: 'Petit Verdot',\r\n text: 'Used in the blend to enhance aromatics, depth, and color.'\r\n },\r\n {\r\n area: 3,\r\n heading: 'Cabernet Sauvignon',\r\n text: 'The base varietal for Col Solare, Cabernet Sauvignon offers power, dark fruit flavors, and structure to the final blend.'\r\n },\r\n {\r\n area: 4,\r\n heading: 'Merlot',\r\n text: 'This fruit-forward varietal contributes complexity and berry flavors.'\r\n },\r\n {\r\n area: 5,\r\n heading: 'Cabernet Franc',\r\n text: 'Offers texture, spice, and complexity.'\r\n },\r\n {\r\n area: 6,\r\n heading: 'Syrah',\r\n text: 'Contributes to the texture, richness, and overall mouthfeel of the final blend.'\r\n },\r\n {\r\n area: 7,\r\n heading: 'Carmenere',\r\n text: 'Rarely planted in Washington state, Carmenere adds spice and complexity when blended with other varietals.'\r\n },\r\n];\r\n\r\nexport const dataSvg = [\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M390.185,2.826L349.474,2.507C349.472,2.713,349.466,2.922,349.466,3.13C349.466,12.431000000000001,350.111,21.581,351.329,30.547L391.71000000000004,24.506C390.73,17.415,390.205,10.18,390.185,2.826Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,430.588,96.527)',\r\n tspan: [\r\n {\r\n content: 'cs 02',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M392.373,27.841L352.021,34.212C353.408,42.861000000000004,355.345,51.32300000000001,357.796,59.569L396.775,46.925000000000004C394.931,40.712,393.457,34.344,392.373,27.841Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.9903,-0.1392,0.1392,0.9903,434.398,123.705)',\r\n tspan: [\r\n {\r\n content: 'cs 06',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M401.337,59.06L394.704,60.943000000000005L393.57300000000004,54.660000000000004L399.08900000000006,53.003C398.69800000000004,51.889,398.29600000000005,50.778999999999996,397.93100000000004,49.651L358.742,61.688C361.894,71.688,365.81,81.349,370.41200000000003,90.60900000000001L406.94100000000003,71.68100000000001C404.888,67.574,403.033,63.358,401.337,59.06Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.9397,-0.342,0.342,0.9397,442.8415,150.13)',\r\n tspan: [\r\n {\r\n content: 'cs 08',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M408.638,74.984L372.55199999999996,94.794C376.79999999999995,102.85499999999999,381.566,110.6,386.82699999999994,117.967L419.26099999999997,92.314C415.365,86.785,411.818,80.997,408.638,74.984Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.866,-0.5,0.5,0.866,455.9065,176.4755)',\r\n tspan: [\r\n {\r\n content: 'cs 10',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M421.644,95.611L389.046,121.01C392.944,126.26,397.089,131.314,401.468,136.151L432.06600000000003,108.23500000000001C428.382,104.212,424.904,99.998,421.644,95.611Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7431,-0.6691,0.6691,0.7431,470.556,195.881)',\r\n tspan: [\r\n {\r\n content: 'cs 21',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M436.515,112.906L407.08099999999996,142.096C408.79799999999994,143.847,410.53999999999996,145.56900000000002,412.31699999999995,147.255L441.36199999999997,117.588C439.714,116.06,438.097,114.501,436.515,112.906Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7193,-0.6947,0.6947,0.7193,484.2215,210.0805)',\r\n tspan: [\r\n {\r\n content: 'cs 21',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 4,\r\n path: {\r\n d: 'M445.099,120.955L416.904,151.458C424.465,158.195,432.53499999999997,164.37199999999999,441.052,169.921L463.75300000000004,134.956C457.191,130.741,450.96,126.057,445.099,120.955Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.6428,-0.766,0.766,0.6428,500.3285,225.438)',\r\n tspan: [\r\n {\r\n content: 'mer 01',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 5,\r\n path: {\r\n d: 'M466.462,136.651L444.308,171.99400000000003C451.996,176.79400000000004,460.02299999999997,181.09600000000003,468.359,184.84200000000004L485.558,146.67200000000003C478.943,143.752,472.568,140.403,466.462,136.651Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.4226,-0.9063,0.9063,0.4226,524.933,240.7465)',\r\n tspan: [\r\n {\r\n content: 'cf 04',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 1,\r\n path: {\r\n d: 'M322.396,0.375H10.939L10.001,48.628H328.231C324.81,33.107,322.785,16.972,322.396,0.375Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,229.116,104.5015)',\r\n tspan: [\r\n {\r\n content: 'Malbec, clone 09',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: '1.87 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M198.8,60.5L20.5,60.5L9.7,65.7L8.3,135L7.8,161.3L264.5,60.5L198.8,60.5Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,143,172)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 191',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '1.62 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M7.176,193.863L332.388,64.8C331.91499999999996,63.183,331.43899999999996,61.57,330.99699999999996,59.937999999999995H264.47399999999993L7.818,160.792L7.176,193.863Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.9272,-0.3746,0.3746,0.9272,210,200)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon, clone 08, 1.19 acres',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M217.617,314.149L382.39,155.071C362.378,132.923,346.46999999999997,106.148,336.078,76.292L121.71399999999997,161.661C143.419,218.865,176.256,270.584,217.617,314.149Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,312.052,275.2205)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 21',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '3.96 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M387.826,160.86L222.941,319.635C241.082,338.114,260.785,355.053,281.825,370.253C307.122,347.921,423.87,233.076,451.93399999999997,205.42999999999998C428.041,195.124,406.343,179.895,387.826,160.86Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7193,-0.6947,0.6947,0.7193,397.4375,345.5565)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 08',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '2.34 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 5,\r\n path: {\r\n d: 'M461.691,209.322C458.402,208.117,455.15,206.814,451.93499999999995,205.428C423.8709999999999,233.074,307.121,347.91999999999996,281.8259999999999,370.254C294.5799999999999,379.464,307.82499999999993,388.04,321.5199999999999,395.923L424.6669999999999,296.51099999999997L461.691,209.322Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7071,-0.7071,0.7071,0.7071,424,400)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Franc',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: 'clone 04a, 1.04 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 7,\r\n path: {\r\n d: 'M489.703,292.532L489.703,315.15M458.414,346.81L458.414,314.774M458.414,314.774L533.81,314.774M436.925,280.847V351.342H480.466C480.466,351.342,470.476,350.587,467.083,342.483C467.083,342.483,455.77200000000005,343.802,451.43800000000005,336.64C447.10200000000003,329.477,442.391,327.404,442.391,327.404L440.88300000000004,321.561C440.88300000000004,321.561,439.37500000000006,316.65999999999997,443.14500000000004,311.572C446.915,306.482,445.78400000000005,303.843,445.78400000000005,303.843L447.85600000000005,301.77000000000004C447.85600000000005,301.77000000000004,444.84000000000003,299.69700000000006,447.66700000000003,290.83700000000005C450.495,281.98,450.11800000000005,284.24000000000007,449.93100000000004,280.65900000000005L436.925,280.847ZM540.972,274.438V340.033H522.5L519.107,334.567V326.463L511.00199999999995,329.28900000000004L509.68199999999996,324.76700000000005L511.94599999999997,320.2420000000001C511.94599999999997,320.2420000000001,528.3439999999999,317.0390000000001,525.8929999999999,295.7390000000001C525.892,295.737,538.898,290.647,540.972,274.438Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,548.9485,355)',\r\n tspan: [\r\n {\r\n content: 'Carmenere',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: '0.49 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 5,\r\n path: {\r\n d: 'M523.5,372.5L521.7,544.4L552.3,544.5L554.5,373C552,373.1,549.5,373.1,547,373.1C539.1,373.1,531.3,373,523.5,372.5L523.5,372.5Z'\r\n },\r\n text: {\r\n transform: 'matrix(0,-1,1,0,597,538.5)',\r\n tspan: [\r\n {\r\n content: 'Cab Franc',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: 'clone 214, 0.52 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 6,\r\n path: {\r\n d: 'M502.2,370.6C505.9,371,509.7,371.4,513.4,371.8L513.4,371.8C516.7,372.1,520,372.3,523.4,372.6L523.4,372.6L521.6,544.6L510.2,544.6L500.7,544.6L502.2,370.6'\r\n },\r\n text: {\r\n transform: 'matrix(0,-1,1,0,572.05,537.6)',\r\n tspan: [\r\n {\r\n content: 'Syrah, clone 77, 0.381 acres',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 6,\r\n path: {\r\n d: 'M502.2,370.5L500.7,544.4L467.9,544.3L471.3,365.6C481.5,367.6,491.8,369.3,502.2,370.5'\r\n },\r\n text: {\r\n transform: 'matrix(0,-1,1,0,544,535)',\r\n tspan: [\r\n {\r\n content: 'Syrah',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: 'clone 525, 0.92 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 5,\r\n path: {\r\n d: 'M376.785,543.263L455.894,543.587L459.343,362.206C457.69100000000003,361.809,456.036,361.41400000000004,454.392,360.995L376.785,543.263Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.3746,-0.9272,0.9272,0.3746,484,565)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Franc',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: 'clone 04b, 0.98 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M414.269,348.308L330.89,543.076L376.78499999999997,543.263L454.39199999999994,360.995C440.701,357.503,427.31,353.262,414.269,348.308Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.3907,-0.9205,0.9205,0.3907,452.641,525.7855)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-2.8515625'\r\n },\r\n {\r\n content: 'clone 08, 1.06 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 4,\r\n path: {\r\n d: 'M367.277,431.665C359.24199999999996,428.338,351.334,424.771,343.53499999999997,421.016L215.623,543.812L319.53499999999997,544.095L367.277,431.665ZM371.849,420.896L391.247,375.21000000000004L352.653,412.261C358.976,415.277,365.371,418.166,371.849,420.896Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7071,-0.7071,0.7071,0.7071,363.435,565)',\r\n tspan: [\r\n {\r\n content: 'Merlot, clone 15, 1.15 acres',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 4,\r\n path: {\r\n d: 'M312.501,404.615L168.211,543.682L215.62300000000002,543.812L343.535,421.016C332.96,415.928,322.613,410.456,312.501,404.615ZM391.248,375.21L424.668,296.514L321.52,395.923C331.656,401.758,342.044,407.204,352.654,412.261L391.248,375.21Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7193,-0.6947,0.6947,0.7193,320,557)',\r\n tspan: [\r\n {\r\n content: 'Merlot, clone 01, 1.1 acres',\r\n dy: '3.75'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M213.784,328.451L0.568,533.769L0.38199999999999995,543.224L168.21,543.682L312.501,404.616C276.244,383.668,243.049,358.016,213.784,328.451Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,250,516.0665)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 02',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '3.86 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M208.455,322.995C188.89600000000002,302.586,171.20100000000002,280.385,155.579,256.697L3.098,403.555L0.767,523.503L208.455,322.995Z'\r\n },\r\n text: {\r\n transform: 'matrix(0.7193,-0.6947,0.6947,0.7193,164.611,450)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 10',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '2.6 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n area: 3,\r\n path: {\r\n d: 'M109.286,166.611L6.914,207.381L3.099,403.553L155.57899999999998,256.697C137.066,228.629,121.475,198.466,109.286,166.611Z'\r\n },\r\n text: {\r\n transform: 'matrix(1,0,0,1,130,330)',\r\n tspan: [\r\n {\r\n content: 'Cabernet Sauvignon',\r\n dy: '-9.453125'\r\n },\r\n {\r\n content: 'clone 06',\r\n dy: '13.2',\r\n x: '0'\r\n },\r\n {\r\n content: '2.52 acres',\r\n dy: '13.2',\r\n x: '0'\r\n }\r\n ]\r\n }\r\n },\r\n];","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\nimport { dataSvg } from './vineyard-map.data-map';\r\n\r\n// =============================================================================\r\n// INTERFACES\r\n// =============================================================================\r\n\r\ninterface IVineyardMapSvgProps {\r\n toggle(area: number): undefined;\r\n assignActiveSvg(area: number): string;\r\n}\r\n\r\ninterface IDataSvg {\r\n area: number;\r\n path: {\r\n d: string;\r\n };\r\n text: {\r\n transform: string;\r\n tspan: {\r\n content: string;\r\n dy: string;\r\n x?: string;\r\n }[];\r\n };\r\n}\r\n\r\n/**\r\n *\r\n * VineyardMapSvg component: Renders vineyard areas from SVG map data and\r\n * toggles currently active vineyard area\r\n * @extends {React.Component}\r\n */\r\n\r\nclass VineyardMapSvg extends React.Component {\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n {\r\n // obtains SVG map data\r\n // renders each in \r\n // clicking each toggles active vineyard area\r\n dataSvg.map((shape: IDataSvg, shapeKey: number) => {\r\n return (\r\n this.props.toggle(shape.area)}\r\n key={shapeKey}\r\n >\r\n \r\n \r\n {\r\n // renders each in \r\n shape.text.tspan.map((tspan, textKey: number) => {\r\n return (\r\n \r\n {tspan.content}\r\n \r\n );\r\n })\r\n }\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VineyardMapSvg;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { dataText } from './vineyard-map.data-map';\r\nimport { IVineyardMapConfig } from './vineyard-map.props.autogenerated';\r\n\r\n// =============================================================================\r\n// INTERFACES\r\n// =============================================================================\r\n\r\ninterface IVineyardMapTextProps {\r\n activeArea: number;\r\n config: IVineyardMapConfig;\r\n context: ICoreContext;\r\n}\r\n\r\ninterface IDataText {\r\n area: number;\r\n heading: string;\r\n text: string;\r\n}\r\n\r\n/**\r\n *\r\n * VineyardMapText component: Renders the name and corresponding description of\r\n * the currently active vineyard area\r\n * @extends {React.Component}\r\n */\r\n\r\nclass VineyardMapText extends React.Component {\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public render(): JSX.Element {\r\n const config = this.props.config;\r\n const lazyloadConfig: boolean | undefined = (config && config.lazyload) || false;\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=148&h=174&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=148&h=174&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: lazyloadConfig\r\n };\r\n\r\n return (\r\n
\r\n {\r\n config.logoImage && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n {\r\n config.headerImage && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n
\r\n

\r\n {this._renderActiveText().heading}\r\n

\r\n

\r\n {this._renderActiveText().text}\r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n /**\r\n * obtains data of active vineyard area to render text, returns an object\r\n */\r\n private _renderActiveText(): IDataText {\r\n return dataText.find((shape: IDataText) => shape.area === this.props.activeArea) as IDataText;\r\n }\r\n}\r\n\r\nexport default VineyardMapText;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport VineyardMapSvg from './vineyard-map-svg';\r\nimport VineyardMapText from './vineyard-map-text';\r\nimport { IVineyardMapData } from './vineyard-map.data';\r\nimport { IVineyardMapProps } from './vineyard-map.props.autogenerated';\r\n\r\n/**\r\n *\r\n * VineyardMap component: Renders interactive map displaying different vineyard\r\n * areas that can be clicked to show corresponding information\r\n * @extends {React.Component>}\r\n */\r\n\r\n@observer\r\nclass VineyardMap extends React.Component> {\r\n\r\n // =========================================================================\r\n // OBSERVABLES\r\n // =========================================================================\r\n\r\n /**\r\n * tracks current active vineyard area\r\n */\r\n @observable private activeArea: number = 0;\r\n\r\n /**\r\n * toggle auto advance active area functionality\r\n */\r\n private advance: boolean = true;\r\n\r\n /**\r\n * time in milliseconds for auto advance active area\r\n */\r\n private timer: number = 10000;\r\n\r\n /**\r\n * stores interval from auto advance set interval function\r\n */\r\n private interval: number = 0;\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public constructor(props: IVineyardMapProps) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this._autoAdvance = this._autoAdvance.bind(this);\r\n this._assignActiveSvg = this._assignActiveSvg.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.advance\r\n ? this.interval = window.setInterval(this._autoAdvance, this.timer)\r\n : null;\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this.advance\r\n ? window.clearInterval(this.interval)\r\n : null;\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n /**\r\n * toggles active vineyard area clicked by the user, returns undefined\r\n */\r\n private _toggle(area: number): undefined {\r\n this.activeArea = area;\r\n return undefined;\r\n }\r\n\r\n /**\r\n * auto advances active vineyard area until back at 1, returns undefined\r\n */\r\n private _autoAdvance(): undefined {\r\n if (this.activeArea === 7) {\r\n this.activeArea = 1;\r\n window.clearInterval(this.interval);\r\n } else {\r\n this.activeArea = this.activeArea + 1;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * assigns a CSS class to active vineyard area, returns a string\r\n */\r\n private _assignActiveSvg(area: number): string {\r\n if (area !== 7) {\r\n return this.activeArea === area\r\n ? 'vineyard-map-area-active'\r\n : '';\r\n } else {\r\n return this.activeArea === area\r\n ? 'vineyard-map-area-active vineyard-map-area-exception'\r\n : 'vineyard-map-area-exception';\r\n }\r\n }\r\n}\r\n\r\nexport default VineyardMap;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * ISmartStickyNav contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum action {\r\n add = 'add',\r\n remove = 'remove'\r\n}\r\n\r\nexport const enum direction {\r\n up = 'up',\r\n down = 'down'\r\n}\r\n\r\nexport interface ISmartStickyNavConfig extends Msdyn365.IModuleConfig {\r\n targetClass: string;\r\n action: action;\r\n actionClass: string;\r\n direction: direction;\r\n bidirectional?: boolean;\r\n}\r\n\r\nexport interface ISmartStickyNavProps extends Msdyn365.IModule {\r\n config: ISmartStickyNavConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * SMART STICKY NAV\r\n * Applies classes dynamically, based on scroll direction\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport throttle from 'lodash/throttle';\r\nimport * as React from 'react';\r\n\r\nimport { action, direction, ISmartStickyNavProps } from './smart-sticky-nav.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITION\r\n// ==============================================================================\r\n/**\r\n *\r\n * SmartStickyNav component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass SmartStickyNav extends React.PureComponent> {\r\n // Throttled event handler\r\n private _throttledScrollhandler: () => void;\r\n private _lastKnownScrollPosition:number = 0;\r\n\r\n // --------------------------------------------------------------\r\n // Constructor\r\n // --------------------------------------------------------------\r\n constructor(props: ISmartStickyNavProps<{}>) {\r\n super(props);\r\n\r\n // Throttle the event handler to prevent event overloading\r\n this._throttledScrollhandler = throttle(this._scrollHandler.bind(this), 50);\r\n\r\n }\r\n\r\n // --------------------------------------------------------------\r\n // Attach event handler\r\n // --------------------------------------------------------------\r\n public componentDidMount(): void {\r\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\r\n window && window.addEventListener && window.addEventListener('scroll', this._throttledScrollhandler);\r\n }\r\n }\r\n\r\n // --------------------------------------------------------------\r\n // Detach event handler\r\n // --------------------------------------------------------------\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener && window.removeEventListener('scroll', this._throttledScrollhandler);\r\n }\r\n\r\n // --------------------------------------------------------------\r\n // Required, but doesn't do anything\r\n // --------------------------------------------------------------\r\n public render(): null {\r\n return null;\r\n }\r\n\r\n // --------------------------------------------------------------\r\n // Process the action\r\n // --------------------------------------------------------------\r\n private _performAction(targetElement:HTMLCollectionOf, actionFunction:'add' | 'remove'): void {\r\n const { actionClass } = this.props.config;\r\n // Peform the action\r\n for (let index = 0; index < targetElement.length; index++) {\r\n targetElement[index].classList[actionFunction](actionClass);\r\n }\r\n }\r\n\r\n private _scrollHandler(): void {\r\n const { targetClass, bidirectional, direction:scrollDirection, action:selectedAction } = this.props.config;\r\n\r\n // Get the current scroll position\r\n const currentPosition = window.scrollY;\r\n\r\n // Get the target element on DOM\r\n const targetElement = document.getElementsByClassName(targetClass);\r\n\r\n // Determine the appropriate function\r\n const actionFunction = (selectedAction === action.add) ? 'add' : 'remove';\r\n\r\n // Determine the appropriate function used when biderectional is true\r\n const bidirectionalActionFunction = (selectedAction === action.add) ? 'remove' : 'add';\r\n\r\n if (currentPosition > this._lastKnownScrollPosition) {\r\n // The user is Scrolling DOWN\r\n if (scrollDirection === direction.down) {\r\n this._performAction(targetElement, actionFunction);\r\n }\r\n\r\n if (bidirectional && scrollDirection === direction.up) {\r\n this._performAction(targetElement, bidirectionalActionFunction);\r\n }\r\n } else {\r\n // The user is Scrolling UP\r\n if (scrollDirection === direction.up) {\r\n this._performAction(targetElement, actionFunction);\r\n }\r\n\r\n if (bidirectional && scrollDirection === direction.down) {\r\n this._performAction(targetElement, bidirectionalActionFunction);\r\n }\r\n }\r\n\r\n this._lastKnownScrollPosition = currentPosition <= 0 ? 0 : currentPosition;\r\n }\r\n}\r\n\r\nexport default SmartStickyNav;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IClickableContainerData } from './clickable-container.data';\r\nimport { IClickableContainerProps } from './clickable-container.props.autogenerated';\r\n\r\n// ==========================================================================\r\n/**\r\n * ClickableContainer component\r\n * @extends {React.PureComponent>}\r\n */\r\n// ==========================================================================\r\nclass ClickableContainer extends React.PureComponent> {\r\n\r\n // =======================================================================\r\n // PUBLIC METHODS\r\n // =======================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n\r\n const {\r\n config: { link, className }\r\n } = this.props;\r\n\r\n return (\r\n \r\n {this._slots}\r\n \r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _target(): string | undefined {\r\n const link = this.props.config.link;\r\n return (link.openInNewTab) ? '_blank' : undefined;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _slots(): JSX.Element | null {\r\n const slots = this.props.slots.clickableContent;\r\n\r\n if (slots && slots.length) {\r\n return (\r\n <>\r\n {slots.map((slot, index) => (\r\n \r\n {slot}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n // No slots\r\n return null;\r\n }\r\n}\r\n\r\nexport default ClickableContainer;","import { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IWineClubContentData } from './wine-club-content.data';\r\nimport { IWineClubContentProps } from './wine-club-content.props.autogenerated';\r\n\r\n/**\r\n *\r\n * WineClubContent component\r\n * @extends {React.Component>}\r\n */\r\nclass WineClubContent extends React.Component> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default WineClubContent;\r\n","import * as React from 'react';\r\n\r\nimport throttle from 'lodash/throttle';\r\n\r\nimport { IElementScrollerProps, IScrollConfigData } from './element-scroller.props.autogenerated';\r\n\r\n/**\r\n *\r\n * ScrollAnimContainer component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass ElementScroller extends React.PureComponent> {\r\n\r\n /**\r\n * used to stop events from taking too much processing\r\n */\r\n private _throttledScrollHandler: () => void;\r\n\r\n /**\r\n * used to cache DOM elements to improve performance\r\n */\r\n private _cachedDOMQueries: Map;\r\n\r\n public constructor(props: IElementScrollerProps<{}>) {\r\n super(props);\r\n\r\n this._throttledScrollHandler = throttle(this._scrollHandler.bind(this), 25);\r\n this._isAnyPartOfElementInViewport = this._isAnyPartOfElementInViewport.bind(this);\r\n this._cachedDOMQueries = new Map();\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\r\n\r\n window && window.addEventListener &&\r\n window.addEventListener('scroll', this._throttledScrollHandler);\r\n\r\n this._scrollHandler();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (
);\r\n }\r\n\r\n private _scrollHandler(): void {\r\n // use this method for possible performance benefits\r\n // const isInViewport = this._isAnyPartOfElementInViewport(this._translateTarget);\r\n this._scrollConfig.forEach(scrollConfig => {\r\n const target = this._selectElement(scrollConfig.targetElement);\r\n if (target) {\r\n const translateX = this._calculateTranslateX(scrollConfig);\r\n target.style.transform = `translate(${translateX}%, 0)`;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * function by https://gist.github.com/StokeMasterJack\r\n */\r\n private _isAnyPartOfElementInViewport(el?: Element | null): boolean {\r\n if (!el) { return false; }\r\n\r\n const rect = el.getBoundingClientRect();\r\n // DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }\r\n const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\r\n const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\r\n\r\n // http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap\r\n const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);\r\n const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);\r\n\r\n return (vertInView && horInView);\r\n }\r\n\r\n private _calculateTranslateX(scrollConfig: IScrollConfigData): number | null {\r\n const trigger = this._selectElement(scrollConfig.triggerElement);\r\n const endingTrigger = this._selectElement(scrollConfig.endTriggerElement);\r\n\r\n // if the triggers don't exist, we can't calculate X\r\n if (!trigger || !endingTrigger) { return null; }\r\n\r\n const animationAdjustments = this._getScrollingAdjustments(scrollConfig);\r\n\r\n const triggerPos = trigger.offsetTop;\r\n const endingTriggerPos = endingTrigger.offsetTop;\r\n const clientPos = window.scrollY + window.innerHeight + animationAdjustments.offset;\r\n\r\n // converts the relative position of the clients scroll from the trigger locations to a percent value from [0,1]\r\n const animationPercentCompletion = (clientPos - triggerPos) / (endingTriggerPos - triggerPos);\r\n\r\n // transformation from a percent value to another percent value in a given range from the config\r\n let translateValue = (animationPercentCompletion * scrollConfig.endTranslationValue - animationPercentCompletion * scrollConfig.startTranslationValue) + scrollConfig.startTranslationValue;\r\n\r\n // rate adjuster\r\n translateValue *= animationAdjustments.rate;\r\n this.props.context.telemetry.debug(`[animationPercentCompletion] ${animationPercentCompletion}`);\r\n this.props.context.telemetry.debug(`[finalTranslateValue] ${translateValue}`);\r\n return translateValue;\r\n }\r\n\r\n private _selectElement(selector: string): HTMLElement | null {\r\n if (this._cachedDOMQueries.has(selector)) {\r\n return this._cachedDOMQueries.get(selector)!;\r\n }\r\n const $el = document.querySelector(selector);\r\n if (!$el) { return null; }\r\n this._cachedDOMQueries.set(selector, $el);\r\n return $el;\r\n }\r\n\r\n private _getScrollingAdjustments(config: IScrollConfigData): { rate: number; offset: number } {\r\n const { gridSettings } = this.props.context.request;\r\n const width = window.innerWidth;\r\n if (gridSettings) {\r\n const { lg, md } = gridSettings;\r\n if (md && width < md.w) { return { rate: config.mobileAdjustments.rate, offset: config.mobileAdjustments.offset }; }\r\n if (lg && width < lg.w) { return { rate: config.tabletAdjustments.rate, offset: config.tabletAdjustments.offset }; }\r\n // anything larger is a desktop\r\n return { rate: config.desktopAdjustments.rate, offset: config.desktopAdjustments.offset };\r\n }\r\n // if none were set somehow, default to 1, 0\r\n return {\r\n rate: 1,\r\n offset: 0\r\n };\r\n }\r\n\r\n private get _scrollConfig(): IScrollConfigData[] {\r\n return this.props.config.scrollConfig || [];\r\n\r\n // use this for testing\r\n // return [\r\n // {\r\n // triggerElement: `.ms-content-block__title`,\r\n // endTriggerElement: '.featured-heading-outline .ms-content-block__title',\r\n // targetElement: `.community-image-container`,\r\n // endTranslationValue: -100,\r\n // startTranslationValue: 100,\r\n // translationRate: 1,\r\n // startTriggerOffset: 0\r\n // }\r\n // ];\r\n }\r\n}\r\n\r\nexport default ElementScroller;\r\n"],"sourceRoot":""}