{"version":3,"file":"static/js/73d86825bc4a5ddc5e9d.bundle.js","mappings":"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","sources":["webpack://bju-press/./src/actions/get-accordion-state.ts?6d43","webpack://bju-press/./src/modules/accordion-item/accordion-item.tsx?bd70","webpack://bju-press/./src/modules/accordion-item/accordion-item.view.tsx?bac6","webpack://bju-press/./src/modules/accordion/accordion.props.autogenerated.ts?2c62","webpack://bju-press/./src/modules/accordion/accordion.tsx?3906","webpack://bju-press/./lib/accordion-item/module-registration.js?6301","webpack://bju-press/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://bju-press/external var \"React\"?0d3b","webpack://bju-press/external var \"ReactDOM\"?853b"],"sourcesContent":["import { createObservableDataAction, IAction, IActionContext, IActionInput, CacheType, ICreateActionContext } from '@msdyn365-commerce/core';\r\n\r\nexport interface AccordionStates {\r\n [key: string]: {\r\n isAllExpanded?: boolean;\r\n children?: {\r\n [key: string]: boolean;\r\n }\r\n };\r\n}\r\n\r\n//==========================================================\r\n// AccordionState Input Action\r\n//==========================================================\r\nexport class AccordionStateInput implements IActionInput {\r\n public result: AccordionStates;\r\n\r\n //------------------------------------------------------\r\n // Constructor\r\n //------------------------------------------------------\r\n constructor(result: AccordionStates) {\r\n this.result = result;\r\n }\r\n\r\n //------------------------------------------------------\r\n // Caching\r\n //------------------------------------------------------\r\n public getCacheKey = () => 'Accordion';\r\n public getCacheObjectType = () => 'AccordionState';\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n//==========================================================\r\n\r\nexport function createAccordionStateInput(result: AccordionStates): AccordionStateInput {\r\n return new AccordionStateInput(result);\r\n}\r\n\r\nconst createAccordionStateInputInternal = (): AccordionStateInput => {\r\n return createAccordionStateInput({});\r\n};\r\n\r\nasync function getAccordionStateAction(input: AccordionStateInput, ctx: IActionContext): Promise {\r\n return input.result;\r\n}\r\n\r\nexport const getAccordionStateDataAction = createObservableDataAction({\r\n id: 'get-accordion-state',\r\n action: >getAccordionStateAction,\r\n input: <(args: ICreateActionContext) => AccordionStateInput>createAccordionStateInputInternal\r\n});\r\n\r\nexport default getAccordionStateDataAction;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, IDrawerState } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { interactionStyle } from '../accordion/accordion.props.autogenerated';\r\nimport { IAccordionItemData } from './accordion-item.data';\r\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\r\n\r\nimport { updateAccordionStates, updateAccordionState } from '../accordion/accordion';\r\nimport { AccordionStates } from '../../actions/get-accordion-state';\r\n\r\nexport interface IAccordionItemViewProps {\r\n AccordionItemContainer: IModuleProps;\r\n drawer: INodeProps;\r\n accordionSlots: INodeProps;\r\n AccordionItemContent: INodeProps;\r\n className: string;\r\n}\r\n\r\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\r\n interactionStyle?: interactionStyle;\r\n}\r\n\r\n/**\r\n *\r\n * AccordionItem component.\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass AccordionItem extends React.Component {\r\n private readonly moduleClassName: string = 'ms-accordion-item';\r\n\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n constructor(props: IAccordionItemProps) {\r\n super(props);\r\n this._onToggle = this._onToggle.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\r\n if (this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { slots, renderView, config, data } = this.props;\r\n\r\n const accordionId = this.props.parentId || '0';\r\n const accordionItemId = this.props.id;\r\n const accordionStateResult = data.accordionState?.result|| {};\r\n const isAllExpanded = (accordionStateResult[accordionId] && accordionStateResult[accordionId].isAllExpanded === undefined)\r\n ? (data && config.isExpandedOnInitialLoad)\r\n : (accordionStateResult[accordionId] && accordionStateResult[accordionId].isAllExpanded);\r\n const isItemExpanded = accordionStateResult[accordionId] && accordionStateResult[accordionId].children && accordionStateResult[accordionId].children![accordionItemId];\r\n const isExpanded = isItemExpanded === undefined ? isAllExpanded : isItemExpanded;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n AccordionItemContainer: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, config.className)\r\n },\r\n AccordionItemContent: {\r\n className: 'ms-accordion-item-content'\r\n },\r\n drawer: {\r\n tag: ControlledDrawer,\r\n className: `${this.moduleClassName}__drawer`,\r\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\r\n collapseProps: { isOpen: isExpanded },\r\n onToggle: (state: IDrawerState) => this._onToggle(state, this.props.context, accordionStateResult, accordionId, accordionItemId, !isExpanded),\r\n onTextChange: this.handleHeadingChange,\r\n requestContext: this.props.context.request,\r\n telemetryContent: this.telemetryContent\r\n },\r\n accordionSlots: slots\r\n };\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\r\n\r\n private _onToggle(state: IDrawerState, context: Msdyn365.ICoreContext, accordionStateResult: AccordionStates, accordionId: string, accordionItemId: string, expand: boolean): void {\r\n if (!state.isOpen && this.props.interactionStyle as string === interactionStyle.ExpandOneItemOnly) {\r\n updateAccordionStates(context, accordionStateResult, accordionId, false);\r\n } else {\r\n updateAccordionState(context, accordionStateResult, accordionId, accordionItemId, expand);\r\n }\r\n }\r\n}\r\nexport default AccordionItem;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccordionItemViewProps } from './accordion-item';\r\n\r\nconst AccordionItemView: React.FC = props => {\r\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\r\n return (\r\n \r\n \r\n \r\n {accordionSlots &&\r\n accordionSlots.accordionItemContent &&\r\n accordionSlots.accordionItemContent.length &&\r\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((item: React.ReactNode, index: number) => {\r\n return {item};\r\n })\r\n : null}\r\n \r\n );\r\n};\r\nexport default AccordionItemView;\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 * IAccordion moduleDefinition 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\nimport * as React from 'react';\r\n\r\nexport const enum interactionStyle {\r\n Independent = 'Independent',\r\n ExpandOneItemOnly = 'ExpandOneItemOnly'\r\n}\r\n\r\nexport interface IAccordionConfig {\r\n heading?: IHeadingData;\r\n showToggleAll?: boolean;\r\n interactionStyle?: interactionStyle;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface IAccordionResources {\r\n collapseAllText: string;\r\n expandAllText: string;\r\n toggleAllSeparator: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface IAccordionProps extends Msdyn365.IModule {\r\n resources: IAccordionResources;\r\n config: IAccordionConfig;\r\n slots: {\r\n accordionItems: React.ReactNode[];\r\n };\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IModuleProps,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IAccordionData } from './accordion.data';\r\nimport { IAccordionProps } from './accordion.props.autogenerated';\r\n\r\nimport { createAccordionStateInput, AccordionStates } from '../../actions/get-accordion-state';\r\n\r\n\r\n/**\r\n *\r\n * Accordion component.\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nexport interface ICallToActionProps {\r\n link: INodeProps[];\r\n}\r\n\r\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\r\n heading?: React.ReactNode;\r\n AccordionContainer: IModuleProps;\r\n HeaderSection: INodeProps;\r\n HeadingWrapper: INodeProps;\r\n accordianButtonsContainer: INodeProps;\r\n accordionButtons: React.ReactNode;\r\n accordionItemContainer: INodeProps;\r\n accordionItems: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * Accordion component.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass Accordion extends React.PureComponent> {\r\n private readonly telemetryContent?: ITelemetryContent;\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\r\n\r\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\r\n\r\n constructor(props: IAccordionProps) {\r\n super(props);\r\n this._onExpandAll = this._onExpandAll.bind(this);\r\n this._onCollapseAll = this._onCollapseAll.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { context, data, slots } = this.props;\r\n const { heading, className } = this.props.config;\r\n const headingComponent = heading && heading.text && (\r\n \r\n );\r\n\r\n const accordionId = this.props.id;\r\n const accordionStateResult = data.accordionState?.result || {};\r\n\r\n const accordionViewProps = {\r\n ...this.props,\r\n AccordionContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-accordion', className)\r\n },\r\n HeaderSection: { className: 'ms-accordion-header-section' },\r\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\r\n heading: headingComponent,\r\n config: this.props && this.props.config,\r\n accordianButtonsContainer: {\r\n tag: 'div' as NodeTag,\r\n className: 'ms-accordion-header-section-toggle-button-container'\r\n },\r\n accordionButtons: this._renderAccordionButton(context, accordionStateResult, accordionId),\r\n accordionItemContainer: {\r\n tag: 'div' as NodeTag,\r\n className: 'ms-accordion-item-section'\r\n },\r\n accordionItems:\r\n slots &&\r\n slots.accordionItems &&\r\n slots.accordionItems.length > 0 &&\r\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\r\n };\r\n return this.props.renderView(accordionViewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\r\n\r\n private _renderAccordionButton(context: Msdyn365.ICoreContext, accordionStateResult: AccordionStates, accordionId: string): React.ReactNode | null {\r\n const { config, resources } = this.props;\r\n const { heading } = config;\r\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\r\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\r\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\r\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\r\n if (!config.showToggleAll) {\r\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n <>\r\n this._onExpandAll(context, accordionStateResult, accordionId)}\r\n ref={this.expandAllButtonRef}\r\n {...attributeExpandAll}\r\n >\r\n {resources.expandAllText}\r\n \r\n  \r\n {resources.toggleAllSeparator}\r\n  \r\n this._onCollapseAll(context, accordionStateResult, accordionId)}\r\n ref={this.collapseAllButtonRef}\r\n {...attributeCollapseAll}\r\n >\r\n {resources.collapseAllText}\r\n \r\n \r\n );\r\n }\r\n\r\n private _onExpandAll = (context: Msdyn365.ICoreContext, accordionStateResult: AccordionStates, accordionId: string): void => {\r\n updateAccordionStates(context, accordionStateResult, accordionId, true);\r\n resetAccordionStates(context, accordionStateResult, accordionId, true);\r\n };\r\n\r\n private _onCollapseAll = (context: Msdyn365.ICoreContext, accordionStateResult: AccordionStates, accordionId: string): void => {\r\n updateAccordionStates(context, accordionStateResult, accordionId, false);\r\n resetAccordionStates(context, accordionStateResult, accordionId, false);\r\n };\r\n\r\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\r\n return (\r\n \r\n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const updateAccordionStates = (context: Msdyn365.ICoreContext, result: AccordionStates, accordionId: string, isAllExpanded: boolean): void => {\r\n result[accordionId] ? result[accordionId].isAllExpanded = isAllExpanded : result[accordionId] = { isAllExpanded };\r\n context.actionContext.update(createAccordionStateInput(result), result);\r\n};\r\n\r\nexport const resetAccordionStates = (context: Msdyn365.ICoreContext, result: AccordionStates, accordionId: string, isAllExpanded: boolean): void => {\r\n const accordionChildren = result[accordionId]?.children;\r\n if (accordionChildren) {\r\n Object.keys(accordionChildren).forEach(child => {\r\n updateAccordionState(context, result, accordionId, child, isAllExpanded);\r\n });\r\n }\r\n};\r\n\r\nexport const updateAccordionState = (context: Msdyn365.ICoreContext, result: AccordionStates, accordionId: string, accordionItemId: string, isExpanded: boolean): void => {\r\n result[accordionId] ? (result[accordionId].children\r\n ? result[accordionId].children![accordionItemId] = isExpanded\r\n : result[accordionId].children = { [accordionItemId]: isExpanded }\r\n ) : (result[accordionId] = { children: { [accordionItemId]: isExpanded } });\r\n context.actionContext.update(createAccordionStateInput(result), result);\r\n};\r\n\r\nexport default Accordion;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['accordion-item'] = {\n c: () => require('partner/modules/accordion-item/accordion-item.tsx'),\n $type: 'moduleDefinition',\n da: [{name:'accordionState', path:'actions/get-accordion-state', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'accordion-item',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/accordion-item'\n });\n \n\n {\n const sanitizedActionPath = 'actions/get-accordion-state';\n let dataAction = require('partner/actions/get-accordion-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|accordion-item|accordion-item'] = {\n c: () => require('partner/modules/accordion-item/accordion-item.view.tsx'),\n cn: '__local__-__local__-accordion-item'\n };\nviewDictionary['@msdyn365-commerce-modules|accordion|modules|accordion-item|accordion-item'] = {\n c: () => require('@msdyn365-commerce-modules/accordion/dist/lib/modules/accordion-item/accordion-item.view.js'),\n cn: '@msdyn365-commerce-modules-accordion-accordion-item'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["AccordionStateInput","constructor","result","getCacheKey","getCacheObjectType","dataCacheType","this","createAccordionStateInput","getAccordionStateDataAction","createObservableDataAction","id","action","async","input","ctx","createAccordionStateInputInternal","AccordionItem","React","props","super","moduleClassName","handleHeadingChange","event","config","accordionItemTitle","target","value","_onToggle","bind","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","data","render","_data$accordionState","slots","renderView","accordionId","parentId","accordionItemId","accordionStateResult","accordionState","isAllExpanded","undefined","isExpandedOnInitialLoad","isItemExpanded","children","isExpanded","_objectSpread","AccordionItemContainer","moduleProps","className","classnames","AccordionItemContent","drawer","tag","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","state","onTextChange","requestContext","accordionSlots","expand","interactionStyle","ExpandOneItemOnly","updateAccordionState","updateAccordionStates","__decorate","observer","_renderAccordionItemContent","items","length","map","item","index","key","Module","Object","assign","Node","accordionItemContent","HeadingTag","Accordion","expandAllButtonRef","collapseAllButtonRef","heading","text","_onExpandAll","resetAccordionStates","_onCollapseAll","payLoad","getPayloadObject","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","onClick","ref","toggleAllSeparator","collapseAllText","error","actionContext","update","_result$accordionId","accordionChildren","keys","forEach","child","binding","modules","dataActions","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}