{"version":3,"sources":["webpack:///src/utils/classnames.ts?8f2b","webpack:///src/modules/default-container-2-slots/default-container-2-slots.tsx?b218","webpack:///./src/modules/mailing-list/mailing-input-group.tsx?d1e4","webpack:///./src/modules/mailing-list/mailing-form.tsx?8e35","webpack:///./src/modules/mailing-list/mailing-list.tsx?749b","webpack:///src/components/container-background-image/container-background-image-helper.ts?d691","webpack:///src/components/container-background-image/container-backgroud-image.tsx?89dd","webpack:///src/components/base-components.tsx?5f88","webpack:///./src/modules/logo-14hands/logo-14hands.data-logo.ts?fd08","webpack:///./src/modules/logo-14hands/logo-14hands.tsx?6329","webpack:///src/modules/default-container-3-slots/default-container-3-slots.tsx?06cd","webpack:///src/modules/default-container/default-container.tsx?4334"],"names":["sizePattern","getColumnSizes","config","size","exec","cols","split","slice","translatedSize","prefix","toLowerCase","translatePrefix","sizePrefix","map","colWidth","showErrors","context","isDebug","isEditor","request","params","getColClassArray","options","xsmall","small","medium","large","filter","Boolean","colWidths","Map","Default2SlotContainer","React","PureComponent","constructor","props","super","handleTextChange","event","this","heading","headingText","target","value","_getColClassName","classNames","length","reduce","memo","left","right","push","render","slots","telemetry","data","log","LogLevel","Debug","values","id","typeName","content","slotsClassNames","Warning","headingProps","requestContext","Container","containerType","className","backgroundImage","backgroundImageRepeat","backgroundImageSize","moduleLayout","msdyn365__moduleLayout","HeadingComponent","Object","join","slot","index","key","MailingInputGroup","_internalValue","initialValue","_onInputChange","bind","_onBlur","label","type","onChange","onBlur","_renderValidation","onLoseFirstFocus","onValueChange","isValid","undefined","_validationMessage","validationMessage","__decorate","observable","observer","MailingFormComponent","_firstName","_zipCode","_email","_emailRegex","_zipCodeRegex","_onSubmitForm","_onFirstNameChange","_onZipCodeChange","_onEmailChange","_lostFocus","errorMessage","_isButtonDisabled","onClick","disabled","name","beenBlurred","_testForRequirement","code","_testForRegex","email","console","warn","onSubmit","firstName","zipCode","field","setState","regex","test","MailingList","_onSubmit","_formPage","_backgroundImage","userInfo","confirmationURL","image","imageURL","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","Image","gridSettings","imageSettings","marketingContactSupport","marketingDescription","_mailingListColType","dangerouslySetInnerHTML","getRichTextHtml","getBackgroundRepeatProperty","repeat","getBackgroundSizeProperty","buildBackgroundImageStylesByViewport","configs","styles","largestGridSettingViewportName","getLargestGridSettingViewportName","authoringViewPorts","moduleName","layout","msdyn365Commerce","isBrowser","authoringHelper","window","_msdyn365","constructViewportInformationForImage","themeSettings","getAuthoringViewport","imgSettings","sm","md","xl","skipWidthAndHeightSettings","keys","vp","viewport","minMaxWidth","getMinMaxWidth","urlSrc","getImageResizeUrl","src","externalProvider","apiSettings","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","style","getDataBgSetAttribute","dataBgSetAttributes","BackgroundImage","state","stylesByViewport","_getCurrentStyle","mounted","_componentResize","updateAttributes","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","shouldComponentUpdate","nextProps","nextState","children","processedAtributes","_processAttributes","_isLazyload","attributes","_getAttributes","_getDefaultAttributes","lazyLoad","role","getBackgroundImageLazyloadAttributes","getBackgroundImageAttributes","selectedStyle","winInnerWidth","innerWidth","Number","MAX_SAFE_INTEGER","_getDefaultStyle","disableLazyLoad","getContainerType","customClassName","containerContent","tag","textSize","Tag","classNameWithHeading","Text","text","editProps","onEdit","dataSvg","viewBox","paths","hover","d","Logo14hands","classname","_renderLogo","link","linkUrl","destinationUrl","href","ariaLabel","_renderSvg","path","_getActivePath","Default3SlotContainer","center","DefaultContainer","_getChildColClassName","childrenWidth","_getWidthClass","s","get"],"mappings":"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","file":"static/js/23.7dd19fb334f89fc87284.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core';\nimport * as twoSlots from '../modules/default-container-2-slots/default-container-2-slots.props.autogenerated';\nimport * as threeSlots from '../modules/default-container-3-slots/default-container-3-slots.props.autogenerated';\n\nconst sizePattern = /col(_(\\d|auto){1,2}){2,}/;\n\nexport interface IShowErrorOptions {\n isDebug?: boolean;\n isEditor?: boolean;\n}\n\nexport interface IViewPortOptions {\n xsmall?: threeSlots.xsmall | twoSlots.xsmall;\n small?: threeSlots.small | twoSlots.small;\n medium?: threeSlots.medium | twoSlots.medium;\n large?: threeSlots.large | twoSlots.large;\n}\n\nconst translatePrefix = (prefix: `large` | `medium` | `small` | `xsmall` | undefined) => {\n switch (prefix && prefix.toLowerCase()) {\n case 'large':\n return 'lg';\n case 'medium':\n return 'md';\n case 'small':\n return 'sm';\n case 'xsmall':\n default:\n return '';\n }\n};\n\n/**\n * converts config option and size to bootstrap col class name\n * If size is auto or config option is invalid col-auto will be returned\n * If size is xsmall or size is invalid col-{config} will be returned\n * @param config configuration option e.g. col_12_12\n * @param size bootstrap gridsize\n */\nexport const getColumnSizes = (config: string, size?: `large` | `medium` | `small` | `xsmall`): string[] | boolean => {\n if (!sizePattern.exec(config)) {\n return false;\n }\n const cols = config.split('_').slice(1);\n const translatedSize = translatePrefix(size);\n const sizePrefix = (translatedSize && `-${translatedSize}`) || '';\n return cols.map((colWidth: string) => `col${sizePrefix}-${colWidth}`);\n};\n\nexport const showErrors = (context?: ICoreContext): Boolean => {\n const { isDebug, isEditor }: IShowErrorOptions = (context && context.request && context.request.params) || {};\n return !!isDebug || !!isEditor;\n};\n\n/**\n * Converts viewport configuration into a two dimensional array of class names\n */\nexport const getColClassArray = (options: IViewPortOptions): string[][] =>\n (\n [\n options.xsmall && getColumnSizes(options.xsmall),\n options.small && getColumnSizes(options.small, 'small'),\n options.medium && getColumnSizes(options.medium, 'medium'),\n options.large && getColumnSizes(options.large, 'large')\n ].filter(Boolean)\n );\n\nexport const colWidths = new Map([\n ['one', 'col-md-1'],\n ['two', 'col-md-2'],\n ['three', 'col-md-3'],\n ['four', 'col-md-4'],\n ['six', 'col-md-6'],\n ['twelve', 'col-md-12']\n]);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer2SlotsData } from './default-container-2-slots.data';\nimport { IDefaultContainer2SlotsProps } from './default-container-2-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n right: string[];\n}\n\n/**\n * Default container that displays 2 modules\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default2SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer2SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default 2 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const content = slots && slots.content;\n const slotsClassNames = this._getColClassName();\n if (content && content.length > 2) {\n telemetry.log(LogLevel.Warning, 'Default 2 Slot Container passed more than 2 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (2)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, right]: string[]) => {\n memo.left.push(left);\n memo.right.push(right);\n return memo;\n },\n { left: [], right: [] }\n );\n };\n}\n\nexport default Default2SlotContainer;\n","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\ninterface IMailingInputGroupProps {\r\n label: string;\r\n isValid?: boolean;\r\n validationMessage?: string;\r\n initialValue: string;\r\n onValueChange(newValue: string): void;\r\n onLoseFirstFocus(labelBlurred: string): void;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * class definition for a control group for mailing\r\n */\r\n@observer\r\nexport class MailingInputGroup extends React.Component {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _internalValue: string = '';\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n public constructor(props: IMailingInputGroupProps) {\r\n super(props);\r\n this._internalValue = props.initialValue;\r\n\r\n this._onInputChange = this._onInputChange.bind(this);\r\n this._onBlur = this._onBlur.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n \r\n {this._renderValidation()}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n private _onBlur(): void {\r\n this.props.onLoseFirstFocus(this.props.label);\r\n }\r\n\r\n private _onInputChange(event: React.ChangeEvent): void {\r\n this._internalValue = event.target.value;\r\n this.props.onValueChange(event.target.value);\r\n }\r\n\r\n // ==========================================================================\r\n // PRIVATE METHODS\r\n // ==========================================================================\r\n\r\n private _renderValidation(): JSX.Element | void {\r\n if (!this.props.isValid && this.props.isValid !== undefined) {\r\n return (\r\n

\r\n {this._validationMessage}\r\n

\r\n );\r\n }\r\n }\r\n\r\n private get _validationMessage(): string {\r\n return (this.props.validationMessage) ? this.props.validationMessage : 'Field is required';\r\n }\r\n\r\n}","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { MailingInputGroup } from './mailing-input-group';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\nexport type mailingFormUserInfo = {\r\n firstName: string;\r\n zipCode: string;\r\n email: string;\r\n};\r\n\r\ntype validationField = {\r\n value: string;\r\n label: string;\r\n isValid?: boolean;\r\n errorMessage?: string;\r\n beenBlurred?: boolean;\r\n};\r\n\r\ninterface IMailingFormComponentProps {\r\n onSubmit(userInfo: mailingFormUserInfo): unknown;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * component responsible for gathering user information for mailing\r\n */\r\n@observer\r\nexport class MailingFormComponent extends React.Component {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _firstName: validationField = {\r\n label: 'First Name*',\r\n value: ''\r\n };\r\n\r\n @observable private _zipCode: validationField = {\r\n label: 'Zip Code*',\r\n value: ''\r\n };\r\n @observable private _email: validationField = {\r\n label: 'Email*',\r\n value: ''\r\n };\r\n\r\n private _emailRegex: RegExp = /^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]+(?:-+[a-z0-9]+)*\\.)+(?:xn--[a-z0-9]+|[a-z]{2,16})$/i;\r\n private _zipCodeRegex: RegExp = /^[0-9]{5}(?:-[0-9]{4})?$/;\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n public constructor(props: IMailingFormComponentProps) {\r\n super(props);\r\n\r\n this._onSubmitForm = this._onSubmitForm.bind(this);\r\n\r\n this._onFirstNameChange = this._onFirstNameChange.bind(this);\r\n this._onZipCodeChange = this._onZipCodeChange.bind(this);\r\n this._onEmailChange = this._onEmailChange.bind(this);\r\n this._lostFocus = this._lostFocus.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n SUBMIT\r\n \r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n //\r\n // ALL EVENTS ARE ALSO TIED TO THEIR RESPECTIVE VALIDATORS\r\n // ==========================================================================\r\n\r\n private _onFirstNameChange(name: string): void {\r\n this._firstName.value = name;\r\n if (!this._firstName.beenBlurred) { return; }\r\n this._testForRequirement(this._firstName, 'Please enter your first name.');\r\n }\r\n\r\n private _onZipCodeChange(code: string): void {\r\n this._zipCode.value = code;\r\n\r\n if (!this._zipCode.beenBlurred) { return; }\r\n this._testForRequirement(this._zipCode, 'Please enter your zip code.');\r\n if (this._zipCode.isValid) {\r\n this._testForRegex(this._zipCode, this._zipCodeRegex, 'Please enter a valid Zip Code.');\r\n }\r\n }\r\n private _onEmailChange(email: string): void {\r\n this._email.value = email;\r\n\r\n if (!this._email.beenBlurred) { return; }\r\n this._testForRequirement(this._email, 'Please enter your email address.');\r\n if (this._email.isValid) {\r\n this._testForRegex(this._email, this._emailRegex, 'Please enter a valid email address.');\r\n }\r\n }\r\n\r\n // ==========================================================================\r\n // PRIVATE METHODS\r\n // ==========================================================================\r\n\r\n /**\r\n * determines if the button is conditionally disabled currently\r\n */\r\n private _isButtonDisabled(): boolean {\r\n\r\n // button will only be disabled if all input fields are considered invalid\r\n // or undefined (meaning not filled out or touched)\r\n return !(this._firstName.isValid && this._zipCode.isValid && this._email.isValid);\r\n }\r\n\r\n /**\r\n * this method checks which field was blurred and sets the beenBlurred\r\n * boolean to true, meaning that it was noticed by the user and can now show\r\n * error messages\r\n *\r\n * @param label the label of the field that has lost its focus\r\n */\r\n private _lostFocus(label: string): unknown {\r\n\r\n // also run all change events related to the field so that the proper\r\n // errors propogate on blur\r\n switch (label) {\r\n case this._firstName.label:\r\n this._firstName.beenBlurred = true;\r\n return this._onFirstNameChange(this._firstName.value);\r\n case this._zipCode.label:\r\n this._zipCode.beenBlurred = true;\r\n return this._onZipCodeChange(this._zipCode.value);\r\n case this._email.label:\r\n this._email.beenBlurred = true;\r\n return this._onEmailChange(this._email.value);\r\n default:\r\n return console.warn('[mailing-form:MailingFormComponent._lostFocus] failed to link a field');\r\n }\r\n }\r\n\r\n /**\r\n * method responsible for sending all values submitted to the parent\r\n */\r\n private _onSubmitForm(): void {\r\n this.props.onSubmit({\r\n email: this._email.value,\r\n firstName: this._firstName.value,\r\n zipCode: this._zipCode.value\r\n });\r\n }\r\n\r\n // ==============================================================================\r\n // VALIDATION METHODS\r\n // ==============================================================================\r\n\r\n private _testForRequirement(field: validationField, errorMessage: string): void {\r\n if (field.value.length === 0) {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\r\n } else {\r\n field.isValid = true;\r\n }\r\n\r\n // hack for not re-rendering field value for first time after blur for some\r\n // reason\r\n this.setState({});\r\n }\r\n\r\n private _testForRegex(field: validationField, regex: RegExp, errorMessage: string): void {\r\n if (regex.test(field.value)) {\r\n field.isValid = true;\r\n } else {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\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\n\r\nimport { getRichTextHtml, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { MailingFormComponent, mailingFormUserInfo } from './mailing-form';\r\nimport { IMailingListData } from './mailing-list.data';\r\nimport { IMailingListProps } from './mailing-list.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n/**\r\n *\r\n * ColsolareMailingList component\r\n * @extends {React.Component>}\r\n */\r\nclass MailingList extends React.Component> {\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n public constructor(props: IMailingListProps) {\r\n super(props);\r\n\r\n this._onSubmit = this._onSubmit.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n {this._formPage}\r\n {this._backgroundImage}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n private _onSubmit(userInfo: mailingFormUserInfo): void {\r\n console.log(userInfo);\r\n\r\n // TODO: send info to add to contact form via data action then change\r\n // page state\r\n\r\n console.log('%cUser will be navigated away from this page and to a confirmation page', 'color: green; font-size:55px;');\r\n console.log(`%c${this.props.config.confirmationURL} <--- url to use`, 'color: green; font-size:25px;');\r\n\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT PAGES\r\n // ==========================================================================\r\n\r\n private get _backgroundImage(): JSX.Element | null {\r\n const image = this.props.config.imageURL;\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n if (image) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private get _formPage(): JSX.Element {\r\n const {\r\n marketingContactSupport,\r\n marketingDescription\r\n } = this.props.config;\r\n return (\r\n
\r\n

Mailings

\r\n {\r\n marketingDescription &&\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n }\r\n

Please Enter Your Information

\r\n \r\n {\r\n marketingContactSupport &&\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n private get _mailingListColType(): string {\r\n return (this.props.config.imageURL) ? 'col-4' : 'col';\r\n }\r\n}\r\n\r\nexport default MailingList;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, {\n constructViewportInformationForImage,\n getImageResizeUrl,\n getLargestGridSettingViewportName,\n getMinMaxWidth,\n IAny,\n IGeneric,\n IViewPort,\n Viewport\n} from '@msdyn365-commerce/core-internal';\nimport { cloneDeep as _cloneDeep } from 'lodash';\nimport {\n BackgroundImageRepeat,\n BackgroundImageSize,\n IBackgroundImageAttributes,\n IBackgroundImageLazyloadAttributes,\n IBackgroundImageProps,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst getBackgroundRepeatProperty = (size: string | undefined, repeat: string | undefined): BackgroundImageRepeat => {\n if (!size || size === 'cover') {\n return 'no-repeat';\n }\n switch (repeat) {\n case 'noRepeat':\n return 'no-repeat';\n case 'repeat':\n return 'repeat';\n default:\n return 'no-repeat';\n }\n};\n\nconst getBackgroundSizeProperty = (size: string | undefined): BackgroundImageSize => {\n switch (size) {\n case 'cover':\n return 'cover';\n case 'contain':\n return 'contain';\n case 'default':\n default:\n return undefined;\n }\n};\n\nconst getDefaultViewports = (): IViewPort => {\n return {\n xs: {\n w: 800,\n h: 600\n },\n sm: {\n w: 1200,\n h: 900\n },\n md: {\n w: 1600,\n h: 900\n },\n lg: {\n w: 1600,\n h: 700\n },\n xl: {\n w: 1600,\n h: 700\n }\n };\n};\n\nconst getAuthoringViewport = (moduleName: string | undefined, layout: string | undefined): IViewPort | undefined => {\n if (!msdyn365Commerce.isBrowser) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const authoringHelper = (window as any)._msdyn365.authoringHelper;\n if (!authoringHelper) {\n return;\n }\n\n // if authoring helper is setup, component is rendering from site builder. Build viewport based on layout selected.\n return constructViewportInformationForImage(moduleName, layout, 'backgroundImage', authoringHelper?.themeSettings) as IViewPort;\n};\n\nexport const buildBackgroundImageStylesByViewport = (props: IBackgroundImageProps): IGeneric => {\n const { containerType, image, request, configs } = props;\n\n const gridSettings = request.gridSettings ?? {};\n const imageSettings = image.imageSettings;\n\n const styles: IGeneric = {};\n\n const largestGridSettingViewportName = getLargestGridSettingViewportName(gridSettings);\n if (largestGridSettingViewportName && imageSettings) {\n // in site builder the layout may change, so use authoring viewports.\n const authoringViewPorts = getAuthoringViewport(containerType, configs?.layout);\n const imgSettings = {\n ...imageSettings,\n viewports: { ..._cloneDeep(authoringViewPorts || imageSettings.viewports || getDefaultViewports()) }\n };\n\n // Skip resizing width and height for background images.\n const skipWidthAndHeightSettings = true;\n Object.keys(imgSettings.viewports).map(vp => {\n const viewport = vp as Viewport;\n const minMaxWidth = getMinMaxWidth(gridSettings, imgSettings, viewport, largestGridSettingViewportName);\n const urlSrc = getImageResizeUrl(\n image.src,\n imgSettings.viewports[viewport],\n imgSettings,\n skipWidthAndHeightSettings,\n image?.externalProvider,\n request?.apiSettings\n );\n styles[viewport] = {\n maxWidth: minMaxWidth.max,\n minWidth: minMaxWidth.min,\n minHeight: imgSettings.viewports[viewport]?.h,\n backgroundImage: urlSrc,\n backgroundRepeat: getBackgroundRepeatProperty(configs?.size, configs?.repeat),\n backgroundSize: getBackgroundSizeProperty(configs?.size),\n backgroundPosition: 'center center'\n };\n });\n }\n\n return styles;\n};\n\nexport const setStyleAttribute = (currentStyle: IBackgroundImageStyle): IGeneric => {\n let style: IGeneric = {};\n if (currentStyle) {\n style = { ...currentStyle };\n style['minWidth'] = undefined;\n style['width'] = '100%';\n if (currentStyle.backgroundImage) {\n style['backgroundImage'] = `url('${currentStyle.backgroundImage}')`;\n }\n }\n return style;\n};\n\nexport const getBackgroundImageLazyloadAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined,\n styles: IGeneric\n): IBackgroundImageLazyloadAttributes => {\n const attributes = {\n role: 'img',\n className: `${className} lazyload`,\n 'data-bgset': getDataBgSetAttribute(styles)\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n // On lazyload, lazysizes plugin should pick which background image to use based on data-bgset attribute.\n attributes['style']['backgroundImage'] = undefined;\n }\n return attributes;\n};\n\nexport const getBackgroundImageAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined\n): IBackgroundImageAttributes => {\n const attributes = {\n role: 'img',\n className\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n }\n return attributes;\n};\n\nexport const getBgSetMinMaxWidthAttribute = (style: IBackgroundImageStyle): string => {\n if (style.maxWidth) {\n return `[(max-width: ${style.maxWidth}px)]`;\n }\n return '';\n};\n\nexport const getDataBgSetAttribute = (styles: IGeneric): string => {\n const dataBgSetAttributes: string[] = [];\n Object.keys(styles).map(vp => {\n if (styles[vp].backgroundImage) {\n dataBgSetAttributes.push(`${styles[vp].backgroundImage} ${getBgSetMinMaxWidthAttribute(styles[vp])}`);\n }\n });\n\n return dataBgSetAttributes.join(' | ');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { getLargestGridSettingViewportName, IGeneric } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isEqual as _isEqual } from 'lodash';\nimport {\n buildBackgroundImageStylesByViewport,\n getBackgroundImageAttributes,\n getBackgroundImageLazyloadAttributes\n} from './container-background-image-helper';\nimport {\n IBackgroundImageAttributes,\n IBackgroundImageProps,\n IBackgroundImageState,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst BACKGROUND_IMAGE_CLASS_NAME = 'ms-container-background-image';\n\n/**\n * BackgroundImage component\n * @extends {React.PureComponent}\n */\nexport class BackgroundImage extends React.PureComponent {\n private stylesByViewport: IGeneric;\n private currentStyle: IBackgroundImageStyle | undefined;\n private mounted: boolean;\n\n constructor(props: IBackgroundImageProps, state: IBackgroundImageState) {\n super(props);\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n this.mounted = false;\n this._componentResize = this._componentResize.bind(this);\n this._getCurrentStyle = this._getCurrentStyle.bind(this);\n this.state = { updateAttributes: false };\n }\n\n public componentDidMount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.addEventListener('resize', this._componentResize);\n this.mounted = true;\n this._componentResize();\n }\n }\n\n public componentWillUnmount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.removeEventListener('resize', this._componentResize);\n this.mounted = false;\n }\n }\n\n public shouldComponentUpdate(nextProps: IBackgroundImageProps, nextState: { updateAttributes: boolean }): boolean {\n if (\n this.state !== nextState ||\n this.props.request?.gridSettings !== nextProps.request?.gridSettings ||\n this.props.configs.repeat !== nextProps.configs.repeat ||\n this.props.configs.size !== nextProps.configs.size ||\n this.props.configs.layout !== nextProps.configs.layout ||\n this.props.image?.imageSettings !== nextProps.image?.imageSettings ||\n this.props.image?.src !== nextProps.image?.src\n ) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { children } = this.props;\n\n try {\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n\n if (this.currentStyle) {\n const processedAtributes = this._processAttributes(\n BACKGROUND_IMAGE_CLASS_NAME,\n this.currentStyle,\n this.stylesByViewport,\n this._isLazyload()\n );\n const attributes = this._getAttributes(processedAtributes);\n if (this.state.updateAttributes) {\n // Update component with the latest attributes.\n return
{children}
;\n } else if (this._isLazyload()) {\n // On lazyload, only include the class name on the first render.\n return
{children}
;\n } else {\n // On lazyload disabled, render the default attributes from server side.\n return
{children}
;\n }\n } else {\n // in no style is found, return the container content.\n return <>{children};\n }\n } catch {\n // in case of any failure, return the container content.\n return <>{children};\n }\n }\n\n private _processAttributes(\n className: string,\n currentStyle: IBackgroundImageStyle,\n stylesByViewport: IGeneric,\n lazyLoad: boolean\n ) {\n if (lazyLoad) {\n return getBackgroundImageLazyloadAttributes(className, currentStyle, stylesByViewport);\n } else {\n return getBackgroundImageAttributes(className, currentStyle);\n }\n }\n\n private _getAttributes(processedAtributes: IBackgroundImageAttributes) {\n return { ...processedAtributes, style: { ...processedAtributes?.style } };\n }\n\n private _componentResize(): void {\n if (msdyn365Commerce.isBrowser) {\n const selectedStyle = this._getCurrentStyle();\n\n if (this.mounted || (selectedStyle && !_isEqual(this.currentStyle, selectedStyle))) {\n this.setState({ updateAttributes: true });\n }\n }\n }\n\n private _getCurrentStyle(): IBackgroundImageStyle | undefined {\n if (msdyn365Commerce.isBrowser) {\n const winInnerWidth: number = window.innerWidth;\n let selectedStyle: IBackgroundImageStyle | undefined;\n Object.keys(this.stylesByViewport).map(vp => {\n if (\n (this.stylesByViewport[vp]?.minWidth || this.stylesByViewport[vp]?.maxWidth) &&\n (this.stylesByViewport[vp]?.minWidth || 0) <= winInnerWidth &&\n winInnerWidth <= (this.stylesByViewport[vp]?.maxWidth || Number.MAX_SAFE_INTEGER)\n ) {\n selectedStyle = this.stylesByViewport[vp];\n }\n });\n return selectedStyle;\n } else {\n return this._getDefaultStyle();\n }\n }\n\n private _isLazyload(): boolean {\n // Lazyload by default if nothing is specified\n return !this.props.image?.imageSettings?.disableLazyLoad;\n }\n\n private _getDefaultStyle(): IBackgroundImageStyle | undefined {\n const { request } = this.props;\n const largestGridSettingViewportName = getLargestGridSettingViewportName(request.gridSettings ?? {});\n return this.stylesByViewport[largestGridSettingViewportName];\n }\n\n private _getDefaultAttributes(): IBackgroundImageAttributes {\n const style = this._getDefaultStyle();\n const processedAtributes = style\n ? this._processAttributes(BACKGROUND_IMAGE_CLASS_NAME, style, this.stylesByViewport, this._isLazyload())\n : {};\n return this._getAttributes(processedAtributes);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, IImageData, IRequestContext, Text } from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { BackgroundImage } from './container-background-image/container-backgroud-image';\n\n/**\n * Heading options\n */\nexport interface IHeadingComponentProps {\n /**\n * Heading text\n */\n headingText?: string;\n /**\n * Heading tag (h1, h2, h3, h4, h5, h6)\n */\n tag?: HeadingTag;\n /**\n * Heading text size (sm, md, lg, xl)\n */\n textSize?: TextSize;\n\n requestContext: IRequestContext;\n\n handleTextChange(event: ContentEditableEvent): string;\n}\n\nexport type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\nexport type TextSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Container class options\n */\nexport interface IContainerProps {\n /**\n * CSS class name\n */\n className?: string;\n /**\n * Bootstrap supported container types\n */\n containerType?: string;\n /**\n * type name\n */\n typeName?: string;\n /**\n * id of container\n */\n id?: string;\n /**\n * React children\n */\n children: React.ReactNode;\n /**\n * Request context\n */\n request?: IRequestContext;\n /**\n * background image\n */\n backgroundImage?: IImageData;\n /**\n * background image repeat property\n */\n backgroundImageRepeat?: string;\n /**\n * background image size property\n */\n backgroundImageSize?: string;\n /**\n * module layout property\n */\n moduleLayout?: string;\n}\n\nconst getContainerType = (containerType: string | undefined) => {\n switch (containerType) {\n case 'container':\n return 'container';\n case 'fluid':\n default:\n return 'fluid';\n }\n};\n\n/**\n * HOC to create bootstrap container div. If no container type is specified children are rendered.\n * @param options IContainerClasses\n */\nexport const Container: React.SFC = (props: IContainerProps): JSX.Element => {\n const {\n containerType,\n className,\n typeName,\n id,\n children,\n backgroundImage,\n request,\n backgroundImageRepeat,\n backgroundImageSize,\n moduleLayout\n } = props;\n const customClassName = className ? ` ${className}` : '';\n\n let containerContent = children;\n if (containerType) {\n containerContent =
{containerContent}
;\n }\n\n if (backgroundImage && backgroundImage.src && backgroundImage.imageSettings && request) {\n containerContent = (\n \n {containerContent}\n \n );\n }\n\n return containerType ? (\n
{containerContent}
\n ) : (\n
{containerContent}
\n );\n};\n\nexport const HeadingComponent = (props: IHeadingComponentProps & { className: string }): JSX.Element | null => {\n const { tag, headingText, textSize, className } = props;\n const Tag = tag || 'h2';\n const classNameWithHeading = textSize ? `heading ${textSize} ${className}` : `heading ${className}`;\n return (\n (headingText && (\n \n )) ||\n null\n );\n};\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 dataSvg = {\r\n viewBox: '0 0 110 40',\r\n paths: [\r\n {\r\n hover: false,\r\n d: 'M52.809 14.858l1.939-4.156 2.035 4.156h-3.974zM74.347 8.13h1.862v7.458l-6.469-8.139h-5.097v0.681h1.862v11.758h-3.618l-6.373-12.938h-0.816l-6.037 12.938h-3.618v-11.758h1.862v-0.681h-7.093v0.681h1.862v5.413h-5.423v-5.413h1.862v-0.681h-7.093v0.681h1.862v11.758h-1.862v0.681h7.093v-0.681h-1.862v-5.663h5.423v5.663h-1.862v0.681h11.326v-0.681h-1.68l2.044-4.348h4.588l2.14 4.348h-1.756v0.681h11.642v-0.681h-1.862v-10.395l8.84 11.076h0.864v-12.439h1.862v-0.681h-4.482v0.681z'\r\n },\r\n {\r\n hover: false,\r\n d: 'M85.039 8.101c0.096-0.010 0.202-0.019 0.317-0.019 0.221 0 0.461-0.010 0.729-0.010 1.142 0 2.073 0.144 2.764 0.432 0.681 0.278 1.209 0.681 1.584 1.2 0.374 0.528 0.633 1.161 0.758 1.9 0.134 0.758 0.202 1.622 0.202 2.572 0 0.403-0.019 0.816-0.058 1.238s-0.115 0.864-0.24 1.296c-0.125 0.422-0.307 0.835-0.547 1.219-0.23 0.384-0.557 0.729-0.96 1.017-0.403 0.298-0.902 0.538-1.497 0.71s-1.334 0.269-2.188 0.269c-0.25 0-0.537-0.010-0.854-0.038v-11.786zM93.562 9.867c-0.47-0.489-1.027-0.902-1.632-1.219s-1.248-0.566-1.92-0.758c-0.681-0.192-1.373-0.317-2.044-0.394-1.401-0.144-2.697-0.115-4.012-0.077-0.691 0.019-1.373 0.019-2.064 0.019h-2.083v0.681h1.872v11.758h-1.862v0.681h2.083c0.768 0 1.536 0.010 2.294 0.019s1.526 0.019 2.304 0.019c0.537 0 1.123-0.038 1.737-0.106 0.624-0.067 1.267-0.202 1.9-0.394 0.633-0.182 1.257-0.442 1.852-0.749 0.605-0.317 1.142-0.729 1.603-1.219s0.845-1.085 1.123-1.756c0.278-0.672 0.422-1.469 0.422-2.361 0-0.902-0.144-1.699-0.422-2.38-0.288-0.681-0.672-1.277-1.152-1.766z'\r\n },\r\n {\r\n hover: false,\r\n d: 'M107.671 14.675c-0.269-0.422-0.614-0.797-1.037-1.094-0.413-0.288-0.893-0.537-1.44-0.729-0.509-0.182-1.056-0.355-1.612-0.509-0.547-0.154-1.085-0.307-1.603-0.441-0.509-0.144-0.96-0.307-1.344-0.489-0.374-0.182-0.691-0.403-0.921-0.653-0.211-0.23-0.317-0.528-0.317-0.893 0-0.24 0.067-0.47 0.192-0.701 0.134-0.23 0.326-0.451 0.595-0.643 0.259-0.202 0.585-0.355 0.979-0.489 0.384-0.125 0.845-0.182 1.363-0.182 0.624 0 1.142 0.096 1.545 0.278s0.739 0.432 0.998 0.739c0.269 0.307 0.49 0.662 0.672 1.046 0.182 0.403 0.346 0.806 0.509 1.219l0.058 0.134h0.624v-3.82h-0.672l-0.058 0.125c-0.077 0.163-0.125 0.211-0.134 0.221 0 0-0.048 0.029-0.24 0.029-0.144 0-0.298-0.029-0.47-0.096-0.202-0.067-0.432-0.144-0.691-0.23-0.259-0.077-0.566-0.154-0.902-0.23-0.355-0.077-0.749-0.115-1.219-0.115-0.72 0-1.401 0.106-2.025 0.326-0.614 0.211-1.161 0.499-1.612 0.854s-0.816 0.768-1.065 1.229c-0.259 0.47-0.394 0.969-0.394 1.478 0 0.672 0.125 1.248 0.384 1.708 0.25 0.451 0.595 0.845 1.008 1.142 0.413 0.307 0.883 0.557 1.392 0.739 0.49 0.182 1.017 0.346 1.555 0.489l1.536 0.403c0.47 0.125 0.912 0.278 1.296 0.461 0.365 0.182 0.653 0.403 0.864 0.662 0.202 0.25 0.307 0.566 0.307 0.95 0 0.211-0.048 0.461-0.154 0.758-0.096 0.288-0.269 0.566-0.509 0.825s-0.576 0.48-1.008 0.662c-0.432 0.182-0.998 0.278-1.68 0.278-0.202 0-0.422 0-0.653-0.010-0.221 0-0.451-0.038-0.701-0.096-0.25-0.067-0.509-0.163-0.787-0.298-0.269-0.125-0.547-0.317-0.854-0.595-0.269-0.221-0.499-0.47-0.681-0.729s-0.346-0.528-0.47-0.787c-0.125-0.25-0.211-0.489-0.278-0.72-0.067-0.221-0.115-0.403-0.134-0.538l-0.029-0.173h-0.701v4.386h0.681l0.058-0.134c0.067-0.173 0.134-0.221 0.134-0.221 0.019-0.010 0.096-0.048 0.288-0.048 0.086 0 0.25 0.019 0.566 0.096 0.278 0.067 0.595 0.144 0.96 0.221 0.355 0.077 0.749 0.144 1.161 0.221 0.442 0.077 0.854 0.115 1.277 0.115 0.854 0 1.651-0.125 2.342-0.355 0.701-0.24 1.315-0.566 1.833-0.969 0.509-0.403 0.912-0.893 1.2-1.44 0.278-0.557 0.432-1.142 0.432-1.756 0-0.633-0.144-1.171-0.413-1.612z'\r\n },\r\n {\r\n hover: false,\r\n d: 'M10.951 8.187l0.163-0.749h-7.592l-0.163 0.749h2.188l-2.467 11.268h-2.188l-0.163 0.758h7.592l0.163-0.758h-2.188l2.467-11.268z'\r\n },\r\n {\r\n hover: false,\r\n d: 'M28.852 0.489h-1.977c-0.912 0-1.305 0.451-1.718 1.027l-14.455 18.697h7.784l-1.181 5.385h3.772l1.181-5.385h5.193l0.288-1.315h-5.193l1.612-7.352h-0.566l-0.067 0.106c-0.442 0.768-1.373 2.38-3.551 2.524l-0.163 0.010-1.027 4.713h-6.152l16.614-17.008c0.278-0.298 0.413-0.451 0.47-0.72 0.048-0.221-0.019-0.355-0.086-0.442-0.192-0.24-0.557-0.24-0.777-0.24z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M29.773 29.658h-0.029c-0.259 0-0.461-0.211-0.461-0.47s0.211-0.47 0.461-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM31.482 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47s-0.211 0.47-0.461 0.47zM33.181 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM34.889 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47s-0.211 0.47-0.461 0.47zM36.588 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM38.296 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47s-0.202 0.47-0.461 0.47zM39.995 29.658h-0.029c-0.259 0-0.461-0.211-0.461-0.47s0.211-0.47 0.461-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM41.704 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47s-0.202 0.47-0.461 0.47zM43.403 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM45.111 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47-0.010 0.259-0.211 0.47-0.47 0.47zM46.81 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM48.518 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47zM50.227 29.658h-0.029c-0.259 0-0.461-0.211-0.461-0.47s0.211-0.47 0.461-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47-0.010 0.259-0.221 0.47-0.47 0.47zM51.926 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47 0.010 0.259-0.202 0.47-0.461 0.47zM53.634 29.658h-0.029c-0.259 0-0.461-0.211-0.461-0.47s0.211-0.47 0.461-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47-0.010 0.259-0.221 0.47-0.47 0.47zM55.333 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47 0.010 0.259-0.202 0.47-0.461 0.47zM57.041 29.658h-0.029c-0.259 0-0.461-0.211-0.461-0.47s0.211-0.47 0.461-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47-0.010 0.259-0.211 0.47-0.47 0.47zM58.74 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47 0.010 0.259-0.202 0.47-0.461 0.47zM60.449 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47-0.010 0.259-0.211 0.47-0.47 0.47zM62.148 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.461 0.211 0.461 0.47 0.010 0.259-0.202 0.47-0.461 0.47zM63.856 29.658h-0.029c-0.259 0-0.47-0.211-0.47-0.47s0.211-0.47 0.47-0.47h0.029c0.259 0 0.47 0.211 0.47 0.47s-0.211 0.47-0.47 0.47z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M66.515 26.846c-0.096-0.576-0.115-0.739-0.346-0.797l-0.269-0.048 0.038-0.221h2.304l-0.038 0.221-0.461 0.048c-0.115 0.019-0.24 0.048-0.24 0.221s0.029 0.346 0.048 0.509l0.442 3.311h0.019l1.929-4.223c0.125-0.058 0.259-0.096 0.422-0.096l0.825 4.31h0.019l1.181-2.755c0.24-0.566 0.403-1.027 0.403-1.142s-0.106-0.125-0.23-0.144l-0.413-0.048 0.038-0.221h1.92l-0.038 0.221-0.259 0.029c-0.355 0.038-0.557 0.614-0.873 1.305l-1.91 4.070c-0.173 0.086-0.317 0.115-0.518 0.134l-0.806-4.156h-0.019l-1.891 4.012c-0.192 0.106-0.278 0.115-0.509 0.134l-0.768-4.674z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M75.22 31.184l0.307-0.038c0.288-0.038 0.317-0.202 0.413-0.806l0.557-3.503c0.019-0.106 0.058-0.413 0.058-0.538 0-0.106 0-0.23-0.221-0.269l-0.307-0.038 0.038-0.221h2.217l-0.038 0.221-0.298 0.038c-0.298 0.038-0.317 0.211-0.413 0.806l-0.557 3.503c-0.038 0.221-0.067 0.422-0.067 0.538 0 0.096 0 0.24 0.221 0.269l0.307 0.038-0.038 0.221h-2.217l0.038-0.221z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M79.587 31.184l0.326-0.048c0.326-0.048 0.394-0.489 0.49-1.085l0.681-4.271c0.125-0.029 0.221-0.038 0.365-0.048l3.119 4.204 0.48-3.014c0.029-0.154 0.048-0.317 0.048-0.48 0-0.259-0.038-0.374-0.288-0.403l-0.365-0.038 0.038-0.221h1.872l-0.038 0.221-0.336 0.038c-0.326 0.038-0.384 0.413-0.451 0.883l-0.72 4.492c-0.144 0.048-0.202 0.048-0.374 0.067l-3.1-4.204-0.442 2.783c-0.038 0.269-0.067 0.538-0.067 0.701 0 0.24 0.086 0.365 0.25 0.384l0.413 0.048-0.038 0.221h-1.891l0.029-0.23z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M87.602 31.184l0.307-0.038c0.288-0.038 0.317-0.202 0.413-0.806l0.557-3.503c0.019-0.106 0.058-0.413 0.058-0.538 0-0.106 0-0.23-0.221-0.269l-0.307-0.038 0.038-0.221h3.887c0.010 0.106 0.010 0.25 0.010 0.346 0 0.269-0.096 0.902-0.125 1.065h-0.288c-0.038-0.864-0.154-1.113-0.931-1.113h-0.96l-0.355 2.256h0.797c0.547 0 0.71-0.029 0.797-0.326l0.106-0.346h0.269l-0.269 1.641h-0.269v-0.326c0-0.298-0.077-0.336-0.643-0.336h-0.835l-0.365 2.323c0.317 0.115 0.633 0.144 0.95 0.144 1.257 0 1.305-0.48 1.651-1.257l0.307 0.048c-0.058 0.403-0.288 1.113-0.49 1.497h-4.118l0.029-0.202z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M96.096 28.621h0.422c0.653 0 1.392-0.499 1.392-1.478 0-0.643-0.374-1.065-0.979-1.065-0.154 0-0.307 0.019-0.451 0.058l-0.384 2.486zM94.071 31.184l0.307-0.038c0.288-0.038 0.317-0.202 0.413-0.806l0.557-3.503c0.029-0.163 0.058-0.326 0.058-0.489 0-0.134 0-0.288-0.221-0.317l-0.307-0.038 0.038-0.221h2.275c1.094 0 1.872 0.317 1.872 1.334 0 0.969-1.037 1.43-1.373 1.536 0.067 0.259 0.346 1.075 0.653 1.718 0.355 0.758 0.49 0.825 0.749 0.825l-0.038 0.221h-0.758c-0.384 0-0.624-0.192-0.787-0.489-0.499-0.883-0.499-2.006-1.123-2.006h-0.336l-0.221 1.421c-0.038 0.221-0.067 0.422-0.067 0.538 0 0.096 0 0.24 0.221 0.269l0.307 0.038-0.038 0.221h-2.217l0.038-0.211z'\r\n },\r\n {\r\n hover: true,\r\n d: 'M101.346 31.184l0.461-0.048c0.336-0.038 0.346-0.202 0.413-0.624l0.134-0.864c0.019-0.106 0.019-0.192 0.019-0.278 0-0.067-0.038-0.346-0.077-0.47l-0.845-2.265c-0.163-0.432-0.278-0.557-0.432-0.585l-0.24-0.038 0.038-0.221h2.4l-0.038 0.221-0.48 0.048c-0.106 0.019-0.25 0.038-0.25 0.163 0 0.038 0.029 0.192 0.077 0.336l0.758 2.198 0.816-1.305c0.346-0.557 0.681-1.142 0.681-1.277 0-0.077-0.086-0.106-0.182-0.115l-0.442-0.048 0.038-0.221h1.92l-0.038 0.221-0.25 0.029c-0.115 0.019-0.307 0.115-0.528 0.422l-1.286 1.814c-0.336 0.48-0.547 0.893-0.624 1.363l-0.144 0.893c-0.019 0.115-0.038 0.24-0.038 0.355 0 0.192 0.096 0.24 0.259 0.259l0.442 0.048-0.038 0.221h-2.563l0.038-0.23z'\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 classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { ILogo14HandsData } from './logo-14hands.data';\r\nimport { dataSvg } from './logo-14hands.data-logo';\r\nimport { ILogo14handsConfig, ILogo14handsProps } from './logo-14hands.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// Interfaces\r\n// ==============================================================================\r\ninterface IDataSvgPath {\r\n hover: boolean;\r\n d: string;\r\n}\r\n\r\n// ==============================================================================\r\n/**\r\n * Logo14hands component\r\n * @extends {React.PureComponent>}\r\n */\r\n// ==============================================================================\r\nclass Logo14hands extends React.PureComponent> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n\r\n return (\r\n
\r\n {this._renderLogo(config)}\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderLogo(config: ILogo14handsConfig):JSX.Element {\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderSvg()}\r\n \r\n );\r\n } else {\r\n return this._renderSvg();\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderSvg():JSX.Element {\r\n return (\r\n \r\n {dataSvg.paths.map((path: IDataSvgPath, index: number) =>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _getActivePath(hover: boolean): string | null {\r\n return hover ? 'logo-14hands-path-active' : null;\r\n }\r\n}\r\n\r\nexport default Logo14hands;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer3SlotsData } from './default-container-3-slots.data';\nimport { IDefaultContainer3SlotsProps } from './default-container-3-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n center: string[];\n right: string[];\n}\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default3SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer3SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n\n const slotsClassNames = this._getColClassName();\n const content = slots && slots.content;\n\n telemetry.log(LogLevel.Debug, \"Default 3 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n if (content && content.length > 3) {\n telemetry.log(LogLevel.Warning, 'Default 3 Slot Container passed more than 3 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n {content && content[2] &&
{content[2]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (3)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n center: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, center, right]: string[]) => {\n memo.left.push(left);\n memo.center.push(center);\n memo.right.push(right);\n return memo;\n },\n { left: [], center: [], right: [] }\n );\n };\n}\n\nexport default Default3SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { colWidths } from '../../utils/classnames';\nimport { IDefaultContainerData } from './default-container.data';\nimport { childrenWidth as childrenWidthEnum, IDefaultContainerProps, layout as layoutEnum } from './default-container.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass DefaultContainer extends React.PureComponent> {\n constructor(props: IDefaultContainerProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n\n return (\n \n {heading && }\n {slots &&\n slots.content &&\n slots.content.map((children: React.ReactNode, index: number) => {\n return (\n
\n {children}\n
\n );\n })}\n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n\n private _getChildColClassName(): string {\n const {\n config: { layout, childrenWidth }\n } = this.props;\n switch (layout) {\n case layoutEnum.flow:\n return childrenWidth === childrenWidthEnum.auto ? 'col-12 col-md' : this._getWidthClass(childrenWidth);\n case layoutEnum.stacked:\n default:\n return 'col-12';\n }\n }\n\n private _getWidthClass(s?: childrenWidthEnum): string {\n return colWidths.get(s || childrenWidthEnum.four) || 'col-12';\n }\n}\n\nexport default DefaultContainer;\n"],"sourceRoot":""}