{"version":3,"file":"static/js/ebb705a6691b665adc55.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/business-partners/module-registration.js?62f3","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/search-bar.tsx?63c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/data-grid.tsx?ddec","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partner-users-table.tsx?c677","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partners-table.tsx?8b1d","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.tsx?57a6","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.view.tsx?b34e","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['business-partners'] = {\n c: () => require('@msdyn365-commerce-modules/business-partners/dist/lib/modules/business-partners/business-partners'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'business-partners',\n p: 'business-partners',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/business-partners/dist/lib/modules/business-partners'\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['@msdyn365-commerce-modules|business-partners|modules|business-partners|business-partners'] = {\n c: () => require('@msdyn365-commerce-modules/business-partners/dist/lib/modules/business-partners/business-partners.view.js'),\n cn: '@msdyn365-commerce-modules-business-partners-business-partners'\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 React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\n }\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { CommerceException } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n errorMessage: string;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n\n /**\n * Event when the table cell is clicked.\n */\n onClick?(item: Tdata): void;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n errorMessage: ''\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.errorMessage !== nextState.errorMessage\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.errorMessage) {\n return {this.state.errorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n
\n \n
\n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n let cell: JSX.Element = <>;\n if (column.onRender) {\n cell = column.onRender(item);\n } else if (column.fieldName) {\n cell = {((item as unknown) as { [key: string]: string })[column.fieldName]};\n }\n return (\n column.onClick?.(item)}>\n {cell}\n \n );\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch (e) {\n this.setState({\n isLoading: false,\n errorMessage: (e as { data: CommerceException })?.data?.LocalizedMessage || this.props.resources.genericErrorMessage\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { ReactNode } from 'react';\nimport { isMobile, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimit: ReactNode;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n isSearchable: true,\n fieldName: 'name',\n onClick: this.props.onSelect,\n onRender: (data: IBusinessPartnerUserViewModel) => {data.name}\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email',\n onClick: this.props.onSelect\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimit',\n onClick: !isMobileDevice ? this.props.onSelect : undefined\n }\n ];\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => {\n return {\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimit: (\n \n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''}\n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit) && user.SpendingLimit === 0 ? (\n \n