{"version":3,"file":"static/js/c43e82ee2d63c63cc52e.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/components/search-bar.tsx?51b1","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/components/data-grid.tsx?2b45","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/components/business-partner-users-table.tsx?9849","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/components/dlvry-business-partners-table.tsx?4383","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/dlvry-business-partners.tsx?7104","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-business-partners/dlvry-business-partners.view.tsx?460e","webpack://Msdyn365.Commerce.Online/./lib/dlvry-business-partners/module-registration.js?51f2","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable no-duplicate-imports */\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\n/* eslint-disable no-duplicate-imports */\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 '../dlvry-business-partners';\nimport { IDlvryBusinessPartnersResources } from '../dlvry-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: IDlvryBusinessPartnersResources;\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 void 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 return (\n column.onClick?.(item)}>\n {column.fieldName ? (\n {((item as unknown) as { [key: string]: string })[column.fieldName]}\n ) : (\n column.onRender?.(item)\n )}\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\n/* eslint-disable no-duplicate-imports */\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 { IDlvryBusinessPartnersResources } from '../dlvry-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: IDlvryBusinessPartnersResources;\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 fieldName: 'name',\n isSearchable: true,\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