{"version":3,"file":"static/js/32.eb9dda00e6711f2cfe12.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-gift-card-balance-check/citta-gift-card-balance-check.tsx?23d3","webpack://Citta2.0/./src/modules/citta-gift-card-balance-check/citta-gift-card-balance-check.view.tsx?0578","webpack://Citta2.0/./src/modules/business-partners/components/search-bar.tsx?63c1","webpack://Citta2.0/./src/modules/business-partners/components/data-grid.tsx?ddec","webpack://Citta2.0/./src/modules/business-partners/components/business-partner-users-table.tsx?c677","webpack://Citta2.0/./src/modules/business-partners/components/business-partners-table.tsx?8b1d","webpack://Citta2.0/./src/modules/business-partners/business-partners.tsx?57a6","webpack://Citta2.0/./src/modules/business-partners/business-partners.view.tsx?b34e","webpack://Citta2.0/./src/modules/tile-list-item/components/links.tsx?c969","webpack://Citta2.0/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://Citta2.0/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { getGiftCardBalanceCheck, GiftCardBalanceCheckInput } from '../../data-actions/gift-card/get-card-balance';\r\nimport { ICittaGiftCardBalanceCheckData, ICittaGiftCardBalanceCheckResult } from './citta-gift-card-balance-check.data';\r\nimport { ICittaGiftCardBalanceCheckProps } from './citta-gift-card-balance-check.props.autogenerated';\r\ntype CittaGiftCardBalanceCheckStateKeys = 'c' | 'p';\r\n\r\ninterface ICittaGiftCardBalanceCheckState {\r\n /**\r\n * The gift card number\r\n */\r\n card: string;\r\n /**\r\n * The gift card pin\r\n */\r\n pin: string;\r\n\r\n /**\r\n * The balance check result\r\n */\r\n result?: ICittaGiftCardBalanceCheckResult;\r\n\r\n /**\r\n * Flag to determine if we are processing a lookup request\r\n */\r\n processing: boolean;\r\n}\r\n\r\nexport interface ICittaGiftCardBalanceCheckViewProps extends ICittaGiftCardBalanceCheckProps, ICittaGiftCardBalanceCheckState {\r\n GiftCardBalanceCheckModuleProps: IModuleProps;\r\n GiftCardBalanceCheckCardNodeProps: INodeProps;\r\n GiftCardBalanceCheckCardNode: React.ReactNode;\r\n GiftCardBalanceCheckPinNodeProps: INodeProps;\r\n GiftCardBalanceCheckPinNode: React.ReactNode;\r\n GiftCardBalanceCheckResultNode: React.ReactNode;\r\n GiftCardBalanceCheckButtonNode: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CittaGiftCardBalanceCheck component\r\n * @extends {React.PureComponent, ICittaGiftCardBalanceCheckState>}\r\n */\r\nclass CittaGiftCardBalanceCheck extends React.PureComponent, ICittaGiftCardBalanceCheckState> {\r\n private static defaultConfig: string[] = ['Card Number', 'Pin Number', 'Checking...'];\r\n private static propsIndex: string[] = ['cardNumberPlaceholderText', 'pinNumberPlaceholderText', 'lookupWaitText'];\r\n /**\r\n * Gift Card Ref\r\n */\r\n private cardRef: React.RefObject;\r\n /**\r\n * Pin for gift card Ref\r\n */\r\n private pinRef: React.RefObject;\r\n\r\n public constructor(props: ICittaGiftCardBalanceCheckProps) {\r\n super(props);\r\n\r\n // binds\r\n this._checkBalance = this._checkBalance.bind(this);\r\n this._areRefsValid = this._areRefsValid.bind(this);\r\n this._renderLookupResult = this._renderLookupResult.bind(this);\r\n this._renderFailure = this._renderFailure.bind(this);\r\n\r\n // refs\r\n this.cardRef = React.createRef();\r\n this.pinRef = React.createRef();\r\n\r\n // state init\r\n this.state = { card: '', pin: '', processing: false };\r\n }\r\n public render(): JSX.Element | null {\r\n const config = this.props.config;\r\n this._mergeWithDefaults();\r\n\r\n const CittaGiftCardBalanceCheckViewProps = {\r\n ...this.props,\r\n GiftCardBalanceCheckModuleProps: {\r\n moduleProps: this.props,\r\n className: classnames('citta-gift-card-balance-check', config.className)\r\n },\r\n GiftCardBalanceCheckCardNodeProps: {\r\n className: 'card-number-wrapper input-wrapper'\r\n },\r\n GiftCardBalanceCheckCardNode: this._renderCard(),\r\n GiftCardBalanceCheckPinNodeProps: {\r\n className: 'card-pin-wrapper input-wrapper'\r\n },\r\n GiftCardBalanceCheckPinNode: this._renderPin(),\r\n GiftCardBalanceCheckResultNode: this._renderLookupResult(),\r\n GiftCardBalanceCheckButtonNode: this._renderCheckBalance()\r\n };\r\n\r\n return this.props.renderView(CittaGiftCardBalanceCheckViewProps) as React.ReactElement;\r\n }\r\n\r\n private _mergeWithDefaults(): void {\r\n const propsIndex = CittaGiftCardBalanceCheck.propsIndex;\r\n const defaultConfig = CittaGiftCardBalanceCheck.defaultConfig;\r\n const config = this.props.config;\r\n for (let keyIndex = 0; keyIndex < propsIndex.length; keyIndex++) {\r\n const keyName = propsIndex[keyIndex];\r\n config[keyName] = config[keyName] || defaultConfig[keyIndex];\r\n }\r\n }\r\n\r\n private _renderCard(): React.ReactNode {\r\n const { cardNumberPlaceholderText } = this.props.config;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderPin(): React.ReactNode {\r\n const { pinNumberPlaceholderText } = this.props.config;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderCheckBalance(): React.ReactNode {\r\n const submitButtonProps: React.ButtonHTMLAttributes<{}> = {\r\n // disable if we're invalid or if we're processing a request\r\n disabled: !this._areRefsValid() || this.state.processing\r\n } as React.ButtonHTMLAttributes<{}>;\r\n return (\r\n \r\n {this.props.resources.buttonTextForGiftCardBalanceCheck || 'check balance'}\r\n \r\n );\r\n }\r\n\r\n private _renderLookupResult = (): React.ReactNode | null => {\r\n const { result } = this.state;\r\n if (!result) {\r\n return;\r\n }\r\n if (this.state.processing) {\r\n return
{this.props.config.lookupWaitText}
;\r\n }\r\n const { success, balance, message } = result;\r\n const className = success ? 'success' : 'fail';\r\n return (\r\n
\r\n {\r\n success ? this._renderSuccess(message, balance) : this._renderFailure(message)\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _renderFailure(message?: string): React.ReactNode | null {\r\n return
{message || this.props.config.lookupFailureMessage}
;\r\n }\r\n\r\n private _renderSuccess(message?: string, balance?: number): React.ReactNode | null {\r\n const formattedBalance: string = this.props.context.cultureFormatter.formatCurrency(balance || '' as React.ReactText);\r\n return (\r\n <>\r\n {message &&
{message}
}\r\n
{this.props.resources.labelForSuccessfulGiftCardBalanceCheckResponse || 'Balance: '} {formattedBalance}
\r\n \r\n );\r\n }\r\n\r\n private _areRefsValid(): boolean {\r\n const refKeys = ['cardRef', 'pinRef'];\r\n for (let keyIndex = 0; keyIndex < refKeys.length; keyIndex++) {\r\n const ref: React.RefObject | undefined = this[refKeys[keyIndex]];\r\n if (!ref || !ref.current || !ref.current.value) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private _capture = (key: CittaGiftCardBalanceCheckStateKeys) => (event: React.ChangeEvent) => {\r\n const newState = { [key]: event.target.value };\r\n // @ts-ignore -- type is valid\r\n this.setState(newState);\r\n }\r\n\r\n private _checkBalance(): void {\r\n this.setState(previousState => {\r\n return {\r\n ...previousState,\r\n processing: true\r\n };\r\n // tslint:disable-next-line:align\r\n }, () => {\r\n // tslint:disable-next-line:no-floating-promises\r\n getGiftCardBalanceCheck(new GiftCardBalanceCheckInput(this.cardRef.current!.value, this.pinRef.current!.value), this.props.context.actionContext)\r\n .then((result) => {\r\n this.cardRef && this.cardRef.current && this.cardRef.current.value ? this.cardRef.current.value = '' : null;\r\n this.pinRef && this.pinRef.current && this.pinRef.current.value ? this.pinRef.current.value = '' : null;\r\n this.setState({\r\n result,\r\n processing: false\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default CittaGiftCardBalanceCheck;\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaGiftCardBalanceCheckViewProps } from './citta-gift-card-balance-check';\r\nexport default (props: ICittaGiftCardBalanceCheckViewProps) => {\r\n const { GiftCardBalanceCheckModuleProps,\r\n GiftCardBalanceCheckCardNodeProps,\r\n GiftCardBalanceCheckCardNode,\r\n GiftCardBalanceCheckPinNodeProps,\r\n GiftCardBalanceCheckPinNode,\r\n GiftCardBalanceCheckResultNode,\r\n GiftCardBalanceCheckButtonNode } = props;\r\n return (\r\n \r\n \r\n {GiftCardBalanceCheckCardNode}\r\n \r\n \r\n {GiftCardBalanceCheckPinNode}\r\n \r\n {GiftCardBalanceCheckResultNode}\r\n {GiftCardBalanceCheckButtonNode}\r\n \r\n );\r\n};\r\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