�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`�
Warning: session_start(): Session cannot be started after headers have already been sent in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 124

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 131

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 132

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 133

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 134

Warning: Cannot modify header information - headers already sent by (output started at /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php:1) in /home/mciraet/www/wp-includes/php-ai-client/src/Providers/Enums/Documentsoliders.php on line 135
0x0x
PHP 8.2.31
Preview: 6669.js.map Size: 181.38 KB
/home/m/c/i/mciraet/www/wp-content/plugins/woocommerce-payments/dist/chunks/6669.js.map
{"version":3,"file":"chunks/6669.js?ver=681fd7be3daf150834a8","mappings":"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","sources":["webpack://woocommerce-payments/./node_modules/@wordpress/icons/build-module/library/close-small.js","webpack://woocommerce-payments/./client/components/clickable-cell/index.tsx","webpack://woocommerce-payments/./client/components/details-link/index.tsx","webpack://woocommerce-payments/./client/components/download-button/index.tsx","webpack://woocommerce-payments/./client/components/order-link/index.tsx","webpack://woocommerce-payments/./client/components/pill/index.tsx","webpack://woocommerce-payments/./client/components/risk-level/index.tsx","webpack://woocommerce-payments/./client/components/risk-level/strings.ts","webpack://woocommerce-payments/./client/components/test-mode-notice/index.tsx","webpack://woocommerce-payments/./client/data/transactions/action-types.js","webpack://woocommerce-payments/./client/data/transactions/actions.js","webpack://woocommerce-payments/./client/data/transactions/hooks.ts","webpack://woocommerce-payments/./client/data/transactions/reducer.js","webpack://woocommerce-payments/./client/data/transactions/resolvers.js","webpack://woocommerce-payments/./client/data/transactions/selectors.js","webpack://woocommerce-payments/./client/data/transactions/store.js","webpack://woocommerce-payments/./client/deposits/strings.ts","webpack://woocommerce-payments/./client/hooks/use-persisted-table-column-visibility.ts","webpack://woocommerce-payments/./client/hooks/use-report-export.ts","webpack://woocommerce-payments/./client/payment-details/payment-method/p24/bank-list.ts","webpack://woocommerce-payments/./client/transactions/list/deposit.tsx","webpack://woocommerce-payments/./client/transactions/list/converted-amount.tsx","webpack://woocommerce-payments/./client/transactions/autocompleter.tsx","webpack://woocommerce-payments/./client/transactions/filters/config.ts","webpack://woocommerce-payments/./client/transactions/filters/index.tsx","webpack://woocommerce-payments/./client/transactions/list/index.tsx","webpack://woocommerce-payments/./client/transactions/strings.ts","webpack://woocommerce-payments/./client/constants/payment-method.ts","webpack://woocommerce-payments/./client/transactions/utils/getTransactionPaymentMethodTitle.ts","webpack://woocommerce-payments/./client/utils/charge/index.ts","webpack://woocommerce-payments/./client/utils/compute-suggestion-match.ts","webpack://woocommerce-payments/./client/utils/data.js","webpack://woocommerce-payments/./node_modules/gridicons/dist/sync.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst closeSmall = /*#__PURE__*/_jsx(SVG, {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\",\n  children: /*#__PURE__*/_jsx(Path, {\n    d: \"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z\"\n  })\n});\nexport default closeSmall;\n//# sourceMappingURL=close-small.js.map","/** @format **/\n\n/**\n * External dependencies\n */\nimport { Link } from '@woocommerce/components';\nimport React, { ReactNode, ComponentProps } from 'react';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\ninterface ClickableCellProps\n\textends Omit< ComponentProps< typeof Link >, 'href' > {\n\thref?: string;\n\tchildren: ReactNode;\n}\n\nconst ClickableCell = ( {\n\thref,\n\tchildren,\n\t...linkProps\n}: ClickableCellProps ) =>\n\thref ? (\n\t\t<Link\n\t\t\thref={ href }\n\t\t\tclassName=\"woocommerce-table__clickable-cell\"\n\t\t\ttabIndex=\"-1\"\n\t\t\t{ ...linkProps }\n\t\t>\n\t\t\t{ children }\n\t\t</Link>\n\t) : (\n\t\t<>{ children }</>\n\t);\n\nexport default ClickableCell;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport InfoOutlineIcon from 'gridicons/dist/info-outline';\nimport { Link } from '@woocommerce/components';\n\n/**\n * Internal dependencies\n */\nimport { getAdminUrl } from 'wcpay/utils';\n\n/**\n * The parent segment is the first part of the URL after the /payments/ path.\n */\ntype ParentSegment = 'payouts' | 'transactions';\n\nexport const getDetailsURL = (\n\t/**\n\t * The ID of the object to link to.\n\t */\n\tid: string,\n\t/**\n\t * The parent segment is the first part of the URL after the /payments/ path.\n\t */\n\tparentSegment: ParentSegment\n): string =>\n\tgetAdminUrl( {\n\t\tpage: 'wc-admin',\n\t\tpath: `/payments/${ parentSegment }/details`,\n\t\tid,\n\t} );\n\ninterface DetailsLinkProps {\n\t/**\n\t * The ID of the object to link to.\n\t */\n\tid?: string;\n\t/**\n\t * The parent segment is the first part of the URL after the /payments/ path.\n\t */\n\tparentSegment: ParentSegment;\n}\nconst DetailsLink: React.FC< DetailsLinkProps > = ( { id, parentSegment } ) =>\n\tid ? (\n\t\t<Link href={ getDetailsURL( id, parentSegment ) }>\n\t\t\t<InfoOutlineIcon size={ 18 } />\n\t\t</Link>\n\t) : null;\n\nexport default DetailsLink;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\ninterface DownloadButtonProps {\n\tisDisabled: boolean;\n\tisBusy?: boolean;\n\tonClick: ( event: any ) => void;\n}\n\nconst DownloadButton: React.FunctionComponent<\n\tReact.PropsWithChildren< DownloadButtonProps >\n> = ( { isDisabled, isBusy, onClick } ) => (\n\t<Button\n\t\tclassName=\"woocommerce-table__download-button\"\n\t\tdisabled={ isDisabled }\n\t\tonClick={ onClick }\n\t\tisBusy={ isBusy }\n\t\t__next40pxDefaultSize\n\t>\n\t\t<svg\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\twidth=\"24\"\n\t\t\theight=\"24\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"currentColor\"\n\t\t>\n\t\t\t<path d=\"M18.5 15v5H20v-5h-1.5zM4 15v5h1.5v-5H4zm0 5h16v-1.5H4V20z\" />\n\t\t\t<path\n\t\t\t\td=\"M12.25 16L6.5 10.75M12.25 16V3M12.25 16l5.25-5.25\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeWidth=\"1.5\"\n\t\t\t\tfill=\"none\"\n\t\t\t/>\n\t\t</svg>\n\t\t<span className=\"woocommerce-table__download-button__label\">\n\t\t\t{ __( 'Export', 'woocommerce-payments' ) }\n\t\t</span>\n\t</Button>\n);\n\nexport default DownloadButton;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport { Link } from '@woocommerce/components';\nimport React from 'react';\n\n/**\n * Internal dependencies.\n */\n\nconst OrderLink = ( props: {\n\torder: null | OrderDetails | SubscriptionDetails;\n} ): JSX.Element => {\n\tconst order = props.order;\n\tif ( order && order.number ) {\n\t\treturn (\n\t\t\t<Link href={ order.url } type=\"external\">\n\t\t\t\t{ order.number }\n\t\t\t</Link>\n\t\t);\n\t}\n\n\treturn <span>&ndash;</span>;\n};\n\nexport default OrderLink;\n","/**\n * External dependencies\n */\nimport React, { FC, ReactNode } from 'react';\nimport { Pill as WC_Pill } from '@woocommerce/components';\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\nexport type PillType = 'primary' | 'success' | 'alert' | 'danger' | 'light';\n\ntype PillProps = {\n\ttype?: PillType;\n\tclassName?: string;\n\tchildren?: ReactNode;\n};\n\nconst Pill: FC< React.PropsWithChildren< PillProps > > = ( {\n\ttype = '',\n\tclassName = '',\n\tchildren,\n} ) => {\n\tconst types = [ 'primary', 'success', 'alert', 'danger', 'light' ];\n\n\tconst classes = clsx(\n\t\t`wcpay-pill${ types.includes( type ) ? '__' + type : '' }`,\n\t\tclassName\n\t);\n\n\treturn <WC_Pill className={ classes }>{ children }</WC_Pill>;\n};\n\nexport default Pill;\n","/** @format */\n\n/**\n * External dependencies\n */\nimport React from 'react';\n\n/**\n * Internal dependencies\n */\nimport riskMappings from './strings';\nimport Pill from '../pill';\n\ntype RiskLevelNames = 'normal' | 'elevated' | 'highest' | 'not_assessed';\n\ntype RiskLevelColors = 'success' | 'alert' | 'danger' | 'light';\n\nconst riskOrder: RiskLevelNames[] = [ 'normal', 'elevated', 'highest' ];\n\nconst colorMappings: Record< RiskLevelNames, RiskLevelColors > = {\n\tnormal: 'success',\n\televated: 'alert',\n\thighest: 'danger',\n\tnot_assessed: 'light',\n};\n\nexport function calculateRiskMapping( risk: number ): string {\n\tconst riskLevel = riskOrder[ risk ];\n\treturn riskMappings[ riskLevel ] || riskMappings.not_assessed;\n}\n\nconst RiskLevel = ( { risk }: { risk: number } ): JSX.Element => {\n\tconst riskLevel = riskOrder[ risk ];\n\n\treturn (\n\t\t<Pill type={ colorMappings[ riskLevel ] }>\n\t\t\t{ calculateRiskMapping( risk ) }\n\t\t</Pill>\n\t);\n};\n\nexport default RiskLevel;\n","/** @format */\n\n/**\n * External dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default {\n\tnormal: __( 'Normal', 'woocommerce-payments' ),\n\televated: __( 'Elevated', 'woocommerce-payments' ),\n\thighest: __( 'Highest', 'woocommerce-payments' ),\n\tnot_assessed: __( 'N/A', 'woocommerce-payments' ),\n\tunknown: __( 'N/A', 'woocommerce-payments' ),\n};\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport { __, _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getPaymentSettingsUrl, isInDevMode, isInTestMode } from 'utils';\nimport BannerNotice from '../banner-notice';\nimport interpolateComponents from '@automattic/interpolate-components';\nimport { ExternalLink } from '@wordpress/components';\nimport { recordEvent } from 'wcpay/tracks';\n\ntype CurrentPage =\n\t| 'overview'\n\t| 'documents'\n\t| 'deposits'\n\t| 'disputes'\n\t| 'loans'\n\t| 'payments'\n\t| 'transactions';\n\ninterface Props {\n\tcurrentPage: CurrentPage;\n\tactions?: React.ComponentProps< typeof BannerNotice >[ 'actions' ];\n\tisDetailsView?: boolean;\n\tisTestModeOnboarding?: boolean;\n}\n\nconst nounToUse = {\n\tdocuments: __( 'document', 'woocommerce-payments' ),\n\tdeposits: __( 'payout', 'woocommerce-payments' ),\n\tdisputes: __( 'dispute', 'woocommerce-payments' ),\n\tloans: __( 'loan', 'woocommerce-payments' ),\n\tpayments: __( 'order', 'woocommerce-payments' ),\n\ttransactions: __( 'order', 'woocommerce-payments' ),\n};\n\nconst verbToUse = {\n\tdocuments: __( 'created', 'woocommerce-payments' ),\n\tdeposits: __( 'created', 'woocommerce-payments' ),\n\tdisputes: __( 'created', 'woocommerce-payments' ),\n\tloans: __( 'created', 'woocommerce-payments' ),\n\tpayments: __( 'placed', 'woocommerce-payments' ),\n\ttransactions: __( 'placed', 'woocommerce-payments' ),\n};\n\nconst getNoticeContent = (\n\tcurrentPage: CurrentPage,\n\tisDetailsView: boolean,\n\tisTestModeOnboarding: boolean,\n\tisDevMode: boolean\n): JSX.Element => {\n\tswitch ( currentPage ) {\n\t\tcase 'overview':\n\t\t\tif ( isTestModeOnboarding ) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %1$s: WooPayments */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'{{strong}}%1$s is in sandbox mode.{{/strong}} You need to set up a live %1$s account before you can accept real transactions.',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t'WooPayments'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( isDevMode ) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %1$s: WooPayments */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'{{strong}}%1$s is in test mode{{/strong}} because your store is running in a development or staging environment. ' +\n\t\t\t\t\t\t\t\t\t\t'To use live mode, switch to a production {{wpEnvLink}}WordPress environment{{/wpEnvLink}} or remove the WCPAY_DEV_MODE constant. ' +\n\t\t\t\t\t\t\t\t\t\t'{{learnMoreLink}}Learn more{{/learnMoreLink}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t'WooPayments'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t\twpEnvLink: (\n\t\t\t\t\t\t\t\t\t// @ts-expect-error: children is provided when interpolating the component\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t'https://make.wordpress.org/core/2020/08/27/wordpress-environment-types/'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tlearnMoreLink: (\n\t\t\t\t\t\t\t\t\t// @ts-expect-error: children is provided when interpolating the component\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t'https://woocommerce.com/document/woopayments/testing-and-troubleshooting/sandbox-mode/'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\trecordEvent(\n\t\t\t\t\t\t\t\t\t\t\t\t'wcpay_overview_test_mode_learn_more_clicked'\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t/* translators: %1$s: WooPayments */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'{{strong}}%1$s is in test mode.{{/strong}} All transactions will be simulated. {{learnMoreLink}}Learn more{{/learnMoreLink}}',\n\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t'WooPayments'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\tlearnMoreLink: (\n\t\t\t\t\t\t\t\t// Link content is in the format string above. Consider disabling jsx-a11y/anchor-has-content.\n\t\t\t\t\t\t\t\t// @ts-expect-error: children is provided when interpolating the component\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t'https://woocommerce.com/document/woopayments/testing-and-troubleshooting/sandbox-mode/'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\trecordEvent(\n\t\t\t\t\t\t\t\t\t\t\t'wcpay_overview_test_mode_learn_more_clicked'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t</>\n\t\t\t);\n\t\tcase 'documents':\n\t\tcase 'deposits':\n\t\tcase 'disputes':\n\t\tcase 'payments':\n\t\tcase 'loans':\n\t\tcase 'transactions':\n\t\t\tif ( isDevMode ) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %1$s: resource name (e.g. \"transactions\") */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Viewing test %1$s. Test mode is active because your store is in a development or staging environment. ' +\n\t\t\t\t\t\t\t\t\t\t'{{learnMoreLink}}Learn more{{/learnMoreLink}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tcurrentPage === 'deposits'\n\t\t\t\t\t\t\t\t\t? 'payouts'\n\t\t\t\t\t\t\t\t\t: currentPage\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\t\tlearnMoreLink: (\n\t\t\t\t\t\t\t\t\t// @ts-expect-error: children is provided when interpolating the component\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t'https://woocommerce.com/document/woopayments/testing-and-troubleshooting/sandbox-mode/'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( isDetailsView ) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %1$s: WooPayments */\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%1$s was in test mode when this %2$s was %3$s. To view live %2$ss, disable test mode in {{settingsLink}}%1$s settings{{/settingsLink}}.',\n\t\t\t\t\t\t\t\t\t'%1$s was in test mode when these %2$ss were %3$s. To view live %2$ss, disable test mode in {{settingsLink}}%1$s settings{{/settingsLink}}.',\n\t\t\t\t\t\t\t\t\tcurrentPage === 'deposits' ? 2 : 1,\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t'WooPayments',\n\t\t\t\t\t\t\t\tnounToUse[ currentPage ],\n\t\t\t\t\t\t\t\tverbToUse[ currentPage ]\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\t\tsettingsLink: (\n\t\t\t\t\t\t\t\t\t// Link content is in the format string above. Consider disabling jsx-a11y/anchor-has-content.\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t<a href={ getPaymentSettingsUrl() } />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\t\tmixedString: sprintf(\n\t\t\t\t\t\t\t/* translators: %1$s: WooPayments */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Viewing test %1$s. To view live %1s, disable test mode in {{settingsLink}}%2s settings{{/settingsLink}}.',\n\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcurrentPage === 'deposits'\n\t\t\t\t\t\t\t\t? 'payouts'\n\t\t\t\t\t\t\t\t: currentPage,\n\t\t\t\t\t\t\t'WooPayments'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcomponents: {\n\t\t\t\t\t\t\tsettingsLink: (\n\t\t\t\t\t\t\t\t// Link content is in the format string above. Consider disabling jsx-a11y/anchor-has-content.\n\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t<a href={ getPaymentSettingsUrl() } />\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t</>\n\t\t\t);\n\t}\n};\n\nexport const TestModeNotice: React.FC< Props > = ( {\n\tcurrentPage,\n\tactions,\n\tisDetailsView = false,\n\tisTestModeOnboarding = false,\n} ) => {\n\tif ( ! isInTestMode() ) return null;\n\n\treturn (\n\t\t<BannerNotice\n\t\t\tstatus=\"warning\"\n\t\t\tisDismissible={ false }\n\t\t\tactions={ actions }\n\t\t>\n\t\t\t{ getNoticeContent(\n\t\t\t\tcurrentPage,\n\t\t\t\tisDetailsView,\n\t\t\t\tisTestModeOnboarding,\n\t\t\t\tisInDevMode()\n\t\t\t) }\n\t\t</BannerNotice>\n\t);\n};\n","/** @format */\n\nexport default {\n\tSET_TRANSACTIONS: 'SET_TRANSACTIONS',\n\tSET_ERROR_FOR_TRANSACTIONS: 'SET_ERROR_FOR_TRANSACTIONS',\n\tSET_TRANSACTIONS_SUMMARY: 'SET_TRANSACTIONS_SUMMARY',\n\tSET_ERROR_FOR_TRANSACTIONS_SUMMARY: 'SET_ERROR_FOR_TRANSACTIONS_SUMMARY',\n\tSET_FRAUD_OUTCOME_TRANSACTIONS: 'SET_FRAUD_OUTCOME_TRANSACTIONS',\n\tSET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS:\n\t\t'SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS',\n\tSET_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY:\n\t\t'SET_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY',\n\tSET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY:\n\t\t'SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY',\n};\n","/** @format */\n\n/**\n * Internal Dependencies\n */\nimport TYPES from './action-types';\n\nexport function updateTransactions( query, data ) {\n\treturn {\n\t\ttype: TYPES.SET_TRANSACTIONS,\n\t\tquery,\n\t\tdata,\n\t};\n}\n\nexport function updateErrorForTransactions( query, data, error ) {\n\treturn {\n\t\ttype: TYPES.SET_ERROR_FOR_TRANSACTIONS,\n\t\tquery,\n\t\tdata,\n\t\terror,\n\t};\n}\n\nexport function updateTransactionsSummary( query, data ) {\n\treturn {\n\t\ttype: TYPES.SET_TRANSACTIONS_SUMMARY,\n\t\tquery,\n\t\tdata,\n\t};\n}\n\nexport function updateErrorForTransactionsSummary( query, data, error ) {\n\treturn {\n\t\ttype: TYPES.SET_ERROR_FOR_TRANSACTIONS_SUMMARY,\n\t\tquery,\n\t\tdata,\n\t\terror,\n\t};\n}\n\nexport function updateFraudOutcomeTransactions( status, query, data ) {\n\treturn {\n\t\ttype: TYPES.SET_FRAUD_OUTCOME_TRANSACTIONS,\n\t\tstatus,\n\t\tquery,\n\t\tdata,\n\t};\n}\n\nexport function updateErrorForFraudOutcomeTransactions( status, query, error ) {\n\treturn {\n\t\ttype: TYPES.SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS,\n\t\tstatus,\n\t\tquery,\n\t\tdata: null,\n\t\terror,\n\t};\n}\n\nexport function updateFraudOutcomeTransactionsSummary( status, query, data ) {\n\treturn {\n\t\ttype: TYPES.SET_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY,\n\t\tstatus,\n\t\tquery,\n\t\tdata,\n\t};\n}\n\nexport function updateErrorForFraudOutcomeTransactionsSummary(\n\tstatus,\n\tquery,\n\terror\n) {\n\treturn {\n\t\ttype: TYPES.SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY,\n\t\tstatus,\n\t\tquery,\n\t\tdata: null,\n\t\terror,\n\t};\n}\n","/** @format */\n/* eslint-disable react-hooks/exhaustive-deps -- useSelect dep arrays intentionally use JSON.stringify for object comparison */\n/**\n * External dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport moment from 'moment';\nimport type { Query } from '@woocommerce/navigation';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from './store';\nimport type { DepositStatus } from 'wcpay/types/deposits';\nimport PAYMENT_METHOD_IDS, {\n\tPAYMENT_METHOD_BRANDS,\n} from 'wcpay/constants/payment-method';\n\nexport type TransactionType =\n\t| 'charge'\n\t| 'refund'\n\t| 'card_reader_fee'\n\t| 'financing_payout'\n\t| 'financing_paydown'\n\t| 'fee_refund'\n\t| 'network_costs';\n\nexport type TransactionSource =\n\t| 'ach_credit_transfer'\n\t| 'ach_debit'\n\t| 'acss_debit'\n\t| 'stripe_account'\n\t| ( typeof PAYMENT_METHOD_IDS )[ keyof typeof PAYMENT_METHOD_IDS ]\n\t| ( typeof PAYMENT_METHOD_BRANDS )[ keyof typeof PAYMENT_METHOD_BRANDS ];\n\n// TODO: refine this type with more detailed information.\nexport interface Transaction {\n\tamount: number;\n\torder: OrderDetails;\n\tcharge_id: string;\n\tfees: number;\n\tnet: number;\n\trisk_level: number;\n\tcustomer_amount: number;\n\tcustomer_name: string;\n\tcustomer_email: string;\n\tcustomer_country: string;\n\tcustomer_currency: string;\n\tdeposit_id?: string;\n\tdeposit_status?: DepositStatus;\n\tavailable_on: string;\n\tcurrency: string;\n\ttransaction_id: string;\n\tdate: string;\n\ttype: TransactionType;\n\tchannel: 'in_person' | 'in_person_pos' | 'online';\n\t// A field to identify the payment's source.\n\t// Usually last 4 digits for card payments, bank name for bank transfers...\n\tsource_identifier: string;\n\tsource_device?: string;\n\tsource: TransactionSource;\n\tloan_id?: string;\n\tmetadata?: {\n\t\tcharge_type: 'card_reader_fee';\n\t\tinterval_from: string;\n\t\tinterval_to: string;\n\t};\n\tpayment_intent_id?: string;\n}\n\ninterface Transactions {\n\ttransactions: Transaction[];\n\ttransactionsError?: string;\n\tisLoading: boolean;\n}\ninterface TransactionsSummary {\n\ttransactionsSummary: {\n\t\tcount?: number;\n\t\ttotal?: number;\n\t\tfees?: number;\n\t\tnet?: number;\n\t\tcurrency?: string;\n\t\tstore_currencies?: string[];\n\t\tcustomer_currencies?: string[];\n\t\tsources?: Transaction[ 'source' ][];\n\t};\n\tisLoading: boolean;\n}\n\nexport type FraudOutcomeStatus = 'allow' | 'review' | 'block';\nexport type FraudMetaBoxType =\n\t| 'allow'\n\t| 'block'\n\t| 'not_card'\n\t| 'not_wcpay'\n\t| 'payment_started'\n\t| 'review'\n\t| 'review_allowed'\n\t| 'review_blocked'\n\t| 'review_expired'\n\t| 'review_failed'\n\t| 'terminal_payment';\n\nexport interface FraudOutcomeTransaction {\n\tamount: number;\n\tcreated: string;\n\tcurrency: string;\n\tcustomer_name: string;\n\torder_id: number;\n\tpayment_intent: {\n\t\tid: string;\n\t\tstatus: string;\n\t};\n\tstatus: FraudOutcomeStatus;\n\tfraud_meta_box_type: FraudMetaBoxType;\n}\n\ninterface FraudOutcomeTransactions {\n\ttransactions: FraudOutcomeTransaction[];\n\ttransactionsError?: string;\n\tisLoading: boolean;\n}\n\ninterface FraudOutcomeTransactionsSummary {\n\ttransactionsSummary: {\n\t\tcount?: number;\n\t\ttotal?: number;\n\t\tcurrencies?: string[];\n\t};\n\tisLoading: boolean;\n}\n\nexport const useTransactions = (\n\t{\n\t\tpaged,\n\t\tper_page: perPage,\n\t\torderby,\n\t\torder,\n\t\tmatch,\n\t\tdate_before: dateBefore,\n\t\tdate_after: dateAfter,\n\t\tdate_between: dateBetween,\n\t\ttype_is: typeIs,\n\t\ttype_is_not: typeIsNot,\n\t\ttype_is_in: typeIsIn,\n\t\tsource_device_is: sourceDeviceIs,\n\t\tsource_device_is_not: sourceDeviceIsNot,\n\t\tchannel_is: channelIs,\n\t\tchannel_is_not: channelIsNot,\n\t\tcustomer_country_is: customerCountryIs,\n\t\tcustomer_country_is_not: customerCountryIsNot,\n\t\trisk_level_is: riskLevelIs,\n\t\trisk_level_is_not: riskLevelIsNot,\n\t\tstore_currency_is: storeCurrencyIs,\n\t\tcustomer_currency_is: customerCurrencyIs,\n\t\tcustomer_currency_is_not: customerCurrencyIsNot,\n\t\tsource_is: sourceIs,\n\t\tsource_is_not: sourceIsNot,\n\t\tloan_id_is: loanIdIs,\n\t\tsearch,\n\t}: Query,\n\tdepositId: string\n): Transactions =>\n\tuseSelect(\n\t\t( select ) => {\n\t\t\tconst { getTransactions, getTransactionsError, isResolving } =\n\t\t\t\tselect( STORE_NAME );\n\n\t\t\tconst query = {\n\t\t\t\tpaged: Number.isNaN( parseInt( paged ?? '', 10 ) )\n\t\t\t\t\t? '1'\n\t\t\t\t\t: paged,\n\t\t\t\tperPage: Number.isNaN( parseInt( perPage ?? '', 10 ) )\n\t\t\t\t\t? '25'\n\t\t\t\t\t: perPage,\n\t\t\t\torderby: orderby || 'date',\n\t\t\t\torder: order || 'desc',\n\t\t\t\tmatch,\n\t\t\t\tdateBefore,\n\t\t\t\tdateAfter,\n\t\t\t\tdateBetween:\n\t\t\t\t\tdateBetween &&\n\t\t\t\t\tdateBetween.sort( ( a, b ) =>\n\t\t\t\t\t\tmoment( a ).diff( moment( b ) )\n\t\t\t\t\t),\n\t\t\t\ttypeIs,\n\t\t\t\ttypeIsNot,\n\t\t\t\ttypeIsIn,\n\t\t\t\tsourceDeviceIs,\n\t\t\t\tsourceDeviceIsNot,\n\t\t\t\tstoreCurrencyIs,\n\t\t\t\tcustomerCurrencyIs,\n\t\t\t\tcustomerCurrencyIsNot,\n\t\t\t\tsourceIs,\n\t\t\t\tsourceIsNot,\n\t\t\t\tchannelIs,\n\t\t\t\tchannelIsNot,\n\t\t\t\tcustomerCountryIs,\n\t\t\t\tcustomerCountryIsNot,\n\t\t\t\triskLevelIs,\n\t\t\t\triskLevelIsNot,\n\t\t\t\tloanIdIs,\n\t\t\t\tdepositId,\n\t\t\t\tsearch,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\ttransactions: getTransactions( query ),\n\t\t\t\ttransactionsError: getTransactionsError( query ),\n\t\t\t\tisLoading: isResolving( 'getTransactions', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tpaged,\n\t\t\tperPage,\n\t\t\torderby,\n\t\t\torder,\n\t\t\tmatch,\n\t\t\tdateBefore,\n\t\t\tdateAfter,\n\t\t\tJSON.stringify( dateBetween ),\n\t\t\ttypeIs,\n\t\t\ttypeIsNot,\n\t\t\tJSON.stringify( typeIsIn ),\n\t\t\tsourceDeviceIs,\n\t\t\tsourceDeviceIsNot,\n\t\t\tstoreCurrencyIs,\n\t\t\tcustomerCurrencyIs,\n\t\t\tcustomerCurrencyIsNot,\n\t\t\tsourceIs,\n\t\t\tsourceIsNot,\n\t\t\tchannelIs,\n\t\t\tchannelIsNot,\n\t\t\tcustomerCountryIs,\n\t\t\tcustomerCountryIsNot,\n\t\t\triskLevelIs,\n\t\t\triskLevelIsNot,\n\t\t\tloanIdIs,\n\t\t\tdepositId,\n\t\t\tJSON.stringify( search ),\n\t\t]\n\t);\n\nexport const useTransactionsSummary = (\n\t{\n\t\tmatch,\n\t\tdate_before: dateBefore,\n\t\tdate_after: dateAfter,\n\t\tdate_between: dateBetween,\n\t\ttype_is: typeIs,\n\t\ttype_is_not: typeIsNot,\n\t\ttype_is_in: typeIsIn,\n\t\tsource_device_is: sourceDeviceIs,\n\t\tsource_device_is_not: sourceDeviceIsNot,\n\t\tstore_currency_is: storeCurrencyIs,\n\t\tcustomer_currency_is: customerCurrencyIs,\n\t\tcustomer_currency_is_not: customerCurrencyIsNot,\n\t\tsource_is: sourceIs,\n\t\tsource_is_not: sourceIsNot,\n\t\tchannel_is: channelIs,\n\t\tchannel_is_not: channelIsNot,\n\t\tcustomer_country_is: customerCountryIs,\n\t\tcustomer_country_is_not: customerCountryIsNot,\n\t\trisk_level_is: riskLevelIs,\n\t\trisk_level_is_not: riskLevelIsNot,\n\t\tloan_id_is: loanIdIs,\n\t\tsearch,\n\t}: Query,\n\tdepositId: string\n): TransactionsSummary =>\n\tuseSelect(\n\t\t( select ) => {\n\t\t\tconst { getTransactionsSummary, isResolving } =\n\t\t\t\tselect( STORE_NAME );\n\n\t\t\tconst query = {\n\t\t\t\tmatch,\n\t\t\t\tdateBefore,\n\t\t\t\tdateAfter,\n\t\t\t\tdateBetween,\n\t\t\t\ttypeIs,\n\t\t\t\ttypeIsNot,\n\t\t\t\ttypeIsIn,\n\t\t\t\tsourceDeviceIs,\n\t\t\t\tsourceDeviceIsNot,\n\t\t\t\tstoreCurrencyIs,\n\t\t\t\tcustomerCurrencyIs,\n\t\t\t\tcustomerCurrencyIsNot,\n\t\t\t\tsourceIs,\n\t\t\t\tsourceIsNot,\n\t\t\t\tchannelIs,\n\t\t\t\tchannelIsNot,\n\t\t\t\tcustomerCountryIs,\n\t\t\t\tcustomerCountryIsNot,\n\t\t\t\triskLevelIs,\n\t\t\t\triskLevelIsNot,\n\t\t\t\tloanIdIs,\n\t\t\t\tdepositId,\n\t\t\t\tsearch,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\ttransactionsSummary: getTransactionsSummary( query ),\n\t\t\t\tisLoading: isResolving( 'getTransactionsSummary', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tmatch,\n\t\t\tdateBefore,\n\t\t\tdateAfter,\n\t\t\tJSON.stringify( dateBetween ),\n\t\t\ttypeIs,\n\t\t\ttypeIsNot,\n\t\t\tJSON.stringify( typeIsIn ),\n\t\t\tsourceDeviceIs,\n\t\t\tsourceDeviceIsNot,\n\t\t\tstoreCurrencyIs,\n\t\t\tcustomerCurrencyIs,\n\t\t\tcustomerCurrencyIsNot,\n\t\t\tsourceIs,\n\t\t\tsourceIsNot,\n\t\t\tchannelIs,\n\t\t\tchannelIsNot,\n\t\t\tcustomerCountryIs,\n\t\t\tcustomerCountryIsNot,\n\t\t\triskLevelIs,\n\t\t\triskLevelIsNot,\n\t\t\tloanIdIs,\n\t\t\tdepositId,\n\t\t\tJSON.stringify( search ),\n\t\t]\n\t);\n\nexport const useFraudOutcomeTransactions = (\n\tstatus: string,\n\t{ paged, per_page: perPage, orderby, order, search }: Query,\n\tadditionalStatus?: string\n): FraudOutcomeTransactions =>\n\tuseSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetFraudOutcomeTransactions,\n\t\t\t\tgetFraudOutcomeTransactionsError,\n\t\t\t\tisResolving,\n\t\t\t} = select( STORE_NAME );\n\n\t\t\tconst query = {\n\t\t\t\tpaged: Number.isNaN( parseInt( paged ?? '', 10 ) )\n\t\t\t\t\t? '1'\n\t\t\t\t\t: paged,\n\t\t\t\tperPage: Number.isNaN( parseInt( perPage ?? '', 10 ) )\n\t\t\t\t\t? '25'\n\t\t\t\t\t: perPage,\n\t\t\t\torderby: orderby || 'date',\n\t\t\t\torder: order || 'desc',\n\t\t\t\tsearch,\n\t\t\t\tadditionalStatus,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\ttransactions: getFraudOutcomeTransactions( status, query ),\n\t\t\t\ttransactionsError: getFraudOutcomeTransactionsError(\n\t\t\t\t\tstatus,\n\t\t\t\t\tquery\n\t\t\t\t),\n\t\t\t\tisLoading: isResolving( 'getFraudOutcomeTransactions', [\n\t\t\t\t\tstatus,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ paged, perPage, orderby, order, JSON.stringify( search ) ]\n\t);\n\nexport const useFraudOutcomeTransactionsSummary = (\n\tstatus: string,\n\t{ search }: Query,\n\tadditionalStatus?: string\n): FraudOutcomeTransactionsSummary =>\n\tuseSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetFraudOutcomeTransactionsSummary,\n\t\t\t\tgetFraudOutcomeTransactionsSummaryError,\n\t\t\t\tisResolving,\n\t\t\t} = select( STORE_NAME );\n\n\t\t\tconst query = { search, additionalStatus };\n\n\t\t\treturn {\n\t\t\t\ttransactionsSummary: getFraudOutcomeTransactionsSummary(\n\t\t\t\t\tstatus,\n\t\t\t\t\tquery\n\t\t\t\t),\n\t\t\t\ttransactionsSummaryError:\n\t\t\t\t\tgetFraudOutcomeTransactionsSummaryError( status, query ),\n\t\t\t\tisLoading: isResolving( 'getFraudOutcomeTransactionsSummary', [\n\t\t\t\t\tstatus,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ status, JSON.stringify( search ) ]\n\t);\n","/** @format */\n\n/**\n * Internal dependencies\n */\nimport TYPES from './action-types';\nimport { getResourceId } from 'utils/data';\n\nconst defaultState = {\n\tsummary: {},\n\tfraudProtection: {\n\t\treview: {\n\t\t\tsummary: {},\n\t\t},\n\t\tblock: {\n\t\t\tsummary: {},\n\t\t},\n\t},\n};\n\nconst receiveTransactions = (\n\tstate = defaultState,\n\t{ type, query = {}, data = [], error, status }\n) => {\n\tconst index = getResourceId( query );\n\n\tswitch ( type ) {\n\t\tcase TYPES.SET_TRANSACTIONS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ index ]: {\n\t\t\t\t\tdata: data,\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_ERROR_FOR_TRANSACTIONS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ index ]: {\n\t\t\t\t\terror: error,\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_TRANSACTIONS_SUMMARY:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tsummary: {\n\t\t\t\t\t...state.summary,\n\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_ERROR_FOR_TRANSACTIONS_SUMMARY:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tsummary: {\n\t\t\t\t\t...state.summary,\n\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\terror: error,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_FRAUD_OUTCOME_TRANSACTIONS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tfraudProtection: {\n\t\t\t\t\t...state.fraudProtection,\n\t\t\t\t\t[ status ]: {\n\t\t\t\t\t\t...( state.fraudProtection?.[ status ] || {} ),\n\t\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tfraudProtection: {\n\t\t\t\t\t...state.fraudProtection,\n\t\t\t\t\t[ status ]: {\n\t\t\t\t\t\t...( state.fraudProtection?.[ status ] || {} ),\n\t\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tfraudProtection: {\n\t\t\t\t\t...state.fraudProtection,\n\t\t\t\t\t[ status ]: {\n\t\t\t\t\t\t...( state.fraudProtection?.[ status ] || {} ),\n\t\t\t\t\t\tsummary: {\n\t\t\t\t\t\t\t...( state.fraudProtection?.[ status ]?.summary ||\n\t\t\t\t\t\t\t\t{} ),\n\t\t\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\tcase TYPES.SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tfraudProtection: {\n\t\t\t\t\t...state.fraudProtection,\n\t\t\t\t\t[ status ]: {\n\t\t\t\t\t\t...( state.fraudProtection?.[ status ] || {} ),\n\t\t\t\t\t\tsummary: {\n\t\t\t\t\t\t\t...( state.fraudProtection?.[ status ]?.summary ||\n\t\t\t\t\t\t\t\t{} ),\n\t\t\t\t\t\t\t[ index ]: {\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t}\n\n\t// Fallback to returning the same state.\n\treturn state;\n};\n\nexport default receiveTransactions;\n","/** @format */\n\n/**\n * External dependencies\n */\nimport { apiFetch } from '@wordpress/data-controls';\nimport { controls } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { NAMESPACE } from '../constants';\nimport {\n\tupdateTransactions,\n\tupdateErrorForTransactions,\n\tupdateTransactionsSummary,\n\tupdateErrorForTransactionsSummary,\n\tupdateFraudOutcomeTransactions,\n\tupdateErrorForFraudOutcomeTransactions,\n\tupdateFraudOutcomeTransactionsSummary,\n\tupdateErrorForFraudOutcomeTransactionsSummary,\n} from './actions';\nimport { formatDateValue, getUserTimeZone } from 'utils';\n\nexport const formatQueryFilters = ( query ) => ( {\n\tuser_email: query.userEmail,\n\tmatch: query.match,\n\tdate_before: formatDateValue( query.dateBefore, true ),\n\tdate_after: formatDateValue( query.dateAfter ),\n\tdate_between: query.dateBetween && [\n\t\tformatDateValue( query.dateBetween[ 0 ] ),\n\t\tformatDateValue( query.dateBetween[ 1 ], true ),\n\t],\n\ttype_is: query.typeIs,\n\ttype_is_not: query.typeIsNot,\n\ttype_is_in: query.typeIsIn,\n\tsource_device_is: query.sourceDeviceIs,\n\tsource_device_is_not: query.sourceDeviceIsNot,\n\tchannel_is: query.channelIs,\n\tchannel_is_not: query.channelIsNot,\n\tcustomer_country_is: query.customerCountryIs,\n\tcustomer_country_is_not: query.customerCountryIsNot,\n\trisk_level_is: query.riskLevelIs,\n\trisk_level_is_not: query.riskLevelIsNot,\n\tstore_currency_is: query.storeCurrencyIs,\n\tloan_id_is: query.loanIdIs,\n\tdeposit_id: query.depositId,\n\tcustomer_currency_is: query.customerCurrencyIs,\n\tcustomer_currency_is_not: query.customerCurrencyIsNot,\n\tsource_is: query.sourceIs,\n\tsource_is_not: query.sourceIsNot,\n\tsearch: query.search,\n\tuser_timezone: getUserTimeZone(),\n\tlocale: query.locale,\n} );\n\n/**\n * Retrieves a series of transactions from the transactions list API.\n *\n * @param {string} query Data on which to parameterize the selection.\n */\nexport function* getTransactions( query ) {\n\tconst path = addQueryArgs( `${ NAMESPACE }/transactions`, {\n\t\tpage: query.paged,\n\t\tpagesize: query.perPage,\n\t\tsort: query.orderby,\n\t\tdirection: query.order,\n\t\t...formatQueryFilters( query ),\n\t} );\n\n\ttry {\n\t\tconst results = yield apiFetch( { path } );\n\t\tyield updateTransactions( query, results.data || [] );\n\t} catch ( e ) {\n\t\tyield controls.dispatch(\n\t\t\t'core/notices',\n\t\t\t'createErrorNotice',\n\t\t\t__( 'Error retrieving transactions.', 'woocommerce-payments' )\n\t\t);\n\t\tyield updateErrorForTransactions( query, null, e );\n\t}\n}\n\nexport const transactionsDownloadEndpoint = `${ NAMESPACE }/transactions/download`;\nexport function getTransactionsCSVRequestURL( query ) {\n\tconst path = addQueryArgs(\n\t\ttransactionsDownloadEndpoint,\n\t\tformatQueryFilters( query )\n\t);\n\n\treturn path;\n}\n\n/**\n * Retrieves the transactions summary from the summary API.\n *\n * @param {string} query Data on which to parameterize the selection.\n */\nexport function* getTransactionsSummary( query ) {\n\tconst path = addQueryArgs(\n\t\t`${ NAMESPACE }/transactions/summary`,\n\t\tformatQueryFilters( query )\n\t);\n\n\ttry {\n\t\tconst summary = yield apiFetch( { path } );\n\t\tyield updateTransactionsSummary( query, summary );\n\t} catch ( e ) {\n\t\tyield updateErrorForTransactionsSummary( query, null, e );\n\t}\n}\n\n/**\n * Retrieves the blocked transactions.\n *\n * @param { string } status Fraud outcome status to be filtered.\n * @param { string } query  Data on which to parameterize the selection.\n */\nexport function* getFraudOutcomeTransactions( status, query ) {\n\tconst path = addQueryArgs( `${ NAMESPACE }/transactions/fraud-outcomes`, {\n\t\tstatus,\n\t\tpage: query.paged,\n\t\tsort: query.orderby,\n\t\tpagesize: query.perPage,\n\t\tdirection: query.order,\n\t\tadditional_status: query.additionalStatus,\n\t\t...formatQueryFilters( query ),\n\t} );\n\n\ttry {\n\t\tconst results = yield apiFetch( { path } );\n\t\tyield updateFraudOutcomeTransactions(\n\t\t\tstatus,\n\t\t\tquery,\n\t\t\tresults.data || []\n\t\t);\n\t} catch ( e ) {\n\t\tif ( e.code === 'wcpay_fraud_outcome_not_found' ) {\n\t\t\tyield updateFraudOutcomeTransactions( status, query, [] );\n\t\t\treturn;\n\t\t}\n\n\t\tyield controls.dispatch(\n\t\t\t'core/notices',\n\t\t\t'createErrorNotice',\n\t\t\t__( 'Error retrieving transactions.', 'woocommerce-payments' )\n\t\t);\n\t\tyield updateErrorForFraudOutcomeTransactions( status, query, e );\n\t}\n}\n\n/**\n * Retrieves the on review transactions.\n *\n * @param { string } status Fraud outcome status to be filtered.\n * @param { string } query  Data on which to parameterize the selection.\n */\nexport function* getFraudOutcomeTransactionsSummary( status, query ) {\n\tconst path = addQueryArgs(\n\t\t`${ NAMESPACE }/transactions/fraud-outcomes/summary`,\n\t\t{\n\t\t\tstatus,\n\t\t\tadditional_status: query.additionalStatus,\n\t\t}\n\t);\n\n\tconst summaryFallback = {\n\t\tcount: 0,\n\t\ttotal: 0,\n\t};\n\n\ttry {\n\t\tconst result = yield apiFetch( { path } );\n\t\tyield updateFraudOutcomeTransactionsSummary(\n\t\t\tstatus,\n\t\t\tquery,\n\t\t\tresult || summaryFallback\n\t\t);\n\t} catch ( e ) {\n\t\tif ( e.code === 'wcpay_fraud_outcome_not_found' ) {\n\t\t\tyield updateFraudOutcomeTransactionsSummary(\n\t\t\t\tstatus,\n\t\t\t\tquery,\n\t\t\t\tsummaryFallback\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tyield controls.dispatch(\n\t\t\t'core/notices',\n\t\t\t'createErrorNotice',\n\t\t\t__(\n\t\t\t\t'Error retrieving on review transactions.',\n\t\t\t\t'woocommerce-payments'\n\t\t\t)\n\t\t);\n\t\tyield updateErrorForFraudOutcomeTransactionsSummary( status, query, e );\n\t}\n}\n\nexport function getFraudOutcomeTransactionsExport( status, query ) {\n\tconst path = addQueryArgs(\n\t\t`${ NAMESPACE }/transactions/fraud-outcomes/download`,\n\t\t{\n\t\t\tstatus,\n\t\t\tsort: query.orderby,\n\t\t\tdirection: query.order,\n\t\t\tadditional_status: query.additionalStatus,\n\t\t\t...formatQueryFilters( query ),\n\t\t}\n\t);\n\n\treturn path;\n}\n","/** @format */\n\n/**\n * Internal dependencies\n */\nimport { getResourceId } from 'utils/data';\n\n/**\n * Retrieves the transactions state from the wp.data store if the state\n * has been initialized, otherwise returns an empty state.\n *\n * @param {Object} state Current wp.data state.\n *\n * @return {Object} The transactions state.\n */\nconst getTransactionsState = ( state ) => {\n\tif ( ! state ) {\n\t\treturn {};\n\t}\n\n\treturn state.transactions || {};\n};\n\n/**\n * Retrieves the transactions corresponding to the provided query or a sane\n * default if they don't exist.\n *\n * @param {Object} state Current wp.data state.\n * @param {Object} query The transactions query.\n *\n * @return {Object} The list of transactions for the given query.\n */\nconst getTransactionsForQuery = ( state, query ) => {\n\tconst index = getResourceId( query );\n\treturn getTransactionsState( state )[ index ] || {};\n};\n\nexport const getTransactions = ( state, query ) => {\n\treturn getTransactionsForQuery( state, query ).data || [];\n};\n\nexport const getTransactionsError = ( state, query ) => {\n\treturn getTransactionsForQuery( state, query ).error || {};\n};\n\n/**\n * Retrieves the transaction summary corresponding to the provided query.\n *\n * @param {Object} state Current wp.data state.\n * @param {Object} query The transactions summary query.\n *\n * @return {Object} The transaction summary for the given query.\n */\nconst getTransactionsSummaryForQuery = ( state, query ) => {\n\tconst index = getResourceId( query );\n\treturn getTransactionsState( state ).summary[ index ] || {};\n};\n\nexport const getTransactionsSummary = ( state, query ) => {\n\treturn getTransactionsSummaryForQuery( state, query ).data || {};\n};\n\nexport const getTransactionsSummaryError = ( state, query ) => {\n\treturn getTransactionsSummaryForQuery( state, query ).error || {};\n};\n\nconst getFraudOutcomeTransactionsForQuery = ( state, status, query ) => {\n\tconst index = getResourceId( query );\n\treturn (\n\t\tgetTransactionsState( state ).fraudProtection?.[ status ]?.[ index ] ||\n\t\t{}\n\t);\n};\n\nexport const getFraudOutcomeTransactions = ( state, status, query ) => {\n\treturn (\n\t\tgetFraudOutcomeTransactionsForQuery( state, status, query ).data || []\n\t);\n};\n\nexport const getFraudOutcomeTransactionsError = ( state, status, query ) => {\n\treturn (\n\t\tgetFraudOutcomeTransactionsForQuery( state, status, query ).error || {}\n\t);\n};\n\nconst getFraudOutcomeTransactionsSummaryForQuery = ( state, status, query ) => {\n\tconst index = getResourceId( query );\n\treturn (\n\t\tgetTransactionsState( state ).fraudProtection?.[ status ]?.summary[\n\t\t\tindex\n\t\t] || {}\n\t);\n};\n\nexport const getFraudOutcomeTransactionsSummary = ( state, status, query ) => {\n\treturn (\n\t\tgetFraudOutcomeTransactionsSummaryForQuery( state, status, query )\n\t\t\t.data || {}\n\t);\n};\n\nexport const getFraudOutcomeTransactionsSummaryError = (\n\tstate,\n\tstatus,\n\tquery\n) => {\n\treturn (\n\t\tgetFraudOutcomeTransactionsSummaryForQuery( state, status, query )\n\t\t\t.error || {}\n\t);\n};\n","/** @format */\n\n/**\n * External dependencies\n */\nimport { createReduxStore, register, combineReducers } from '@wordpress/data';\nimport { controls } from '@wordpress/data-controls';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport * as resolvers from './resolvers';\nimport { TRANSACTIONS_STORE_NAME } from '../store-names';\n\nexport const STORE_NAME = TRANSACTIONS_STORE_NAME;\n\n// The reducer is nested under its slice key so selectors keep reading\n// `state.transactions.…`, exactly as they did under the old combined store.\nexport const store = createReduxStore( STORE_NAME, {\n\treducer: combineReducers( { transactions: reducer } ),\n\tactions,\n\tselectors,\n\tresolvers,\n\tcontrols,\n} );\n\nregister( store );\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n\nimport type { DepositStatus, PayoutFailureCode } from 'wcpay/types/deposits';\n\nexport const displayType = {\n\tdeposit: __( 'Payout', 'woocommerce-payments' ),\n\twithdrawal: __( 'Withdrawal', 'woocommerce-payments' ),\n};\n\n/**\n * Labels to display for each deposit status.\n *\n * 'deducted' represents a deposit of the type 'withdrawal' and status 'paid'.\n */\nexport const depositStatusLabels: Record< DepositStatus | 'deducted', string > =\n\t{\n\t\tpaid: __( 'Completed (paid)', 'woocommerce-payments' ),\n\t\tdeducted: __( 'Completed (deducted)', 'woocommerce-payments' ),\n\t\tpending: __( 'Pending', 'woocommerce-payments' ),\n\t\tin_transit: __( 'In transit', 'woocommerce-payments' ),\n\t\tcanceled: __( 'Canceled', 'woocommerce-payments' ),\n\t\tfailed: __( 'Failed', 'woocommerce-payments' ),\n\t};\n\n/**\n * Mapping of payout failure code to display string.\n */\nexport const payoutFailureMessages: Record< PayoutFailureCode, string > = {\n\tinsufficient_funds: __(\n\t\t'Your account has insufficient funds to cover your negative balance.',\n\t\t'woocommerce-payments'\n\t),\n\tbank_account_restricted: __(\n\t\t'The bank account has restrictions on either the type or number of transfers allowed. This normally indicates that the bank account is a savings or other non-checking account.',\n\t\t'woocommerce-payments'\n\t),\n\tdebit_not_authorized: __(\n\t\t'Debit transactions are not approved on your bank account. Bank accounts need to be set up for both credit and debit transfers.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_card: __(\n\t\t'The card used was invalid. This usually means the card number is invalid or the account has been closed.',\n\t\t'woocommerce-payments'\n\t),\n\tdeclined: __(\n\t\t'The bank has declined this transfer. Please contact the bank for more information.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_transaction: __(\n\t\t'The transfer was refused by the issuing bank because this type of payment is not permitted for this card. Please contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\trefer_to_card_issuer: __(\n\t\t'The transfer was refused by the card issuer. Please contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\tunsupported_card: __(\n\t\t'The bank no longer supports transfers to this card.',\n\t\t'woocommerce-payments'\n\t),\n\tlost_or_stolen_card: __(\n\t\t'The card used has been reported lost or stolen. Please contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_issuer: __(\n\t\t'The issuer specified by the card number does not exist. Please verify card details.',\n\t\t'woocommerce-payments'\n\t),\n\texpired_card: __(\n\t\t'The card used has expired. Please switch to a different card or payment method. Contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\tcould_not_process: __(\n\t\t// The same failure code is used if processing is failed by the bank or Stripe.\n\t\t'The bank or the payment processor could not process this transfer.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_account_number: __(\n\t\t'The bank account details on file are probably incorrect. While the routing number appears correct, the account number is invalid.',\n\t\t'woocommerce-payments'\n\t),\n\tincorrect_account_holder_name: __(\n\t\t'The bank account holder name on file appears to be incorrect.',\n\t\t'woocommerce-payments'\n\t),\n\taccount_closed: __(\n\t\t'The bank account has been closed.',\n\t\t'woocommerce-payments'\n\t),\n\tno_account: __(\n\t\t'The bank account details on file are probably incorrect. No bank account could be located with those details.',\n\t\t'woocommerce-payments'\n\t),\n\texceeds_amount_limit: __(\n\t\t'The card issuer has declined the transaction as it will exceed the card limit. Please switch to a different card or payment method. Contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\taccount_frozen: __(\n\t\t'The bank account has been frozen.',\n\t\t'woocommerce-payments'\n\t),\n\tissuer_unavailable: __(\n\t\t'The issuing bank is currently unavailable. Our system will automatically try again on your next payout date, or you can switch to a different payout method.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_currency: __(\n\t\t'The bank was unable to process this transfer because of its currency. This is probably because the bank account cannot accept payments in that currency.',\n\t\t'woocommerce-payments'\n\t),\n\tincorrect_account_type: __(\n\t\t'The bank account type is incorrect. This value can only be checking or savings in most countries. In Japan, it can only be futsu or toza.',\n\t\t'woocommerce-payments'\n\t),\n\tincorrect_account_holder_details: __(\n\t\t'The bank could not process this transfer. Please check that the entered bank account details match the corresponding account bank statement exactly.',\n\t\t'woocommerce-payments'\n\t),\n\tbank_ownership_changed: __(\n\t\t'The destination bank account is no longer valid because its branch has changed ownership.',\n\t\t'woocommerce-payments'\n\t),\n\texceeds_count_limit: __(\n\t\t'The selected card has exceeded its card usage frequency limit. Please switch to a different card or payment method. Contact the issuing bank for clarification.',\n\t\t'woocommerce-payments'\n\t),\n\tincorrect_account_holder_address: __(\n\t\t'Your bank notified us that the bank account holder address on file is incorrect.',\n\t\t'woocommerce-payments'\n\t),\n\tincorrect_account_holder_tax_id: __(\n\t\t'Your bank notified us that the bank account holder tax ID on file is incorrect.',\n\t\t'woocommerce-payments'\n\t),\n\tinvalid_account_number_length: __(\n\t\t'Your bank notified us that the bank account number is too long.',\n\t\t'woocommerce-payments'\n\t),\n};\n","/**\n * External dependencies\n */\nimport { useMemo } from 'react';\nimport { useUserPreferences } from '@woocommerce/data';\nimport type { TableCardColumn } from '@woocommerce/components';\n\n/**\n * Type for user preferences returned from useUserPreferences hook.\n *\n * These preference keys are defined and managed in:\n *\n * @see WC_Payments::add_user_data_fields() in includes/class-wc-payments.php\n *\n * Note: This interface must stay in sync with the PHP implementation\n */\ninterface UserPreferences {\n\twc_payments_transactions_hidden_columns: string[] | '';\n\twc_payments_transactions_blocked_hidden_columns: string[] | '';\n\twc_payments_transactions_risk_review_hidden_columns: string[] | '';\n\twc_payments_transactions_uncaptured_hidden_columns: string[] | '';\n\twc_payments_payouts_hidden_columns: string[] | '';\n\twc_payments_disputes_hidden_columns: string[] | '';\n\twc_payments_documents_hidden_columns: string[] | '';\n}\n\n/**\n * Hook to manage column visibility for a TableCard component.\n *\n * This hook is used to manage the visibility of columns in a TableCard component.\n * It uses the `@woocommerce/data` `useUserPreferences` hook to get the user's preferences and store them in the `wp_usermeta` table.\n */\nexport const usePersistedColumnVisibility = <\n\tColumnType extends TableCardColumn\n>(\n\t/**\n\t * The key used to store the user's preference for hidden columns in the `wp_usermeta` table.\n\t *\n\t * This value will be prepended with `woocommerce_admin_` and used as the `meta_key` in the DB.\n\t */\n\tcolumnPrefsKey: keyof UserPreferences,\n\t/**\n\t * The array of all columns to be passed to the `TableCard` component.\n\t *\n\t * Visibility of each column will adhere to stored user preferences using the column's `visible` prop.\n\t *\n\t * If the user's preference is not found, the default visibility value provided in the column's `visible` prop is used.\n\t */\n\tallColumns: ColumnType[]\n): {\n\t/**\n\t * A function to be passed to the `TableCard` component's `onColumnsChange` prop.\n\t *\n\t * This function is used to update the user's preference for hidden columns on each column visibility change event.\n\t */\n\tonColumnsChange: ( shownColumns: string[] ) => void;\n\t/**\n\t * An array of columns to be passed to the `TableCard` component's `columns` prop, with visibility of columns adhering to stored user preferences.\n\t *\n\t * If the user's preference is not found, the default visibility value of each column is used.\n\t */\n\tcolumnsToDisplay: ColumnType[];\n} => {\n\tconst { updateUserPreferences, ...userPrefs } = useUserPreferences();\n\n\t// If returned value is undefined or empty string, use default visibility value.\n\tconst userPrefHiddenColumns =\n\t\t( userPrefs as unknown as UserPreferences )[ columnPrefsKey ] ?? '';\n\n\t// When the user changes the column visibility, update the user's preference for hidden columns.\n\tconst onColumnsChange = ( shownColumns: string[] ) => {\n\t\tconst columns = allColumns.map( ( column ) => column.key );\n\t\tconst hiddenColumns = columns.filter(\n\t\t\t( column ) => ! shownColumns.includes( column )\n\t\t);\n\t\tif ( columnPrefsKey ) {\n\t\t\tconst userDataFields = {\n\t\t\t\t[ columnPrefsKey ]: hiddenColumns,\n\t\t\t};\n\t\t\tupdateUserPreferences( userDataFields );\n\t\t}\n\t};\n\n\t// When the user's preference for hidden columns is updated, update the columns to display.\n\tconst columnsToDisplay = useMemo( () => {\n\t\t// If the user preference is not set (is empty string), return all columns with default visibility.\n\t\tif ( ! Array.isArray( userPrefHiddenColumns ) ) {\n\t\t\treturn allColumns;\n\t\t}\n\n\t\t// If the user preference is set, hide the column.\n\t\treturn allColumns.map( ( column ) => {\n\t\t\treturn {\n\t\t\t\t...column,\n\t\t\t\tvisible: ! userPrefHiddenColumns.includes( column.key ),\n\t\t\t};\n\t\t} );\n\t}, [ allColumns, userPrefHiddenColumns ] );\n\n\treturn {\n\t\tonColumnsChange,\n\t\tcolumnsToDisplay,\n\t};\n};\n","/**\n * External dependencies\n */\nimport { useEffect, useRef, useState } from 'react';\nimport apiFetch from '@wordpress/api-fetch';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * The response from the export POST request, which returns an export ID.\n */\ninterface ExportResponse {\n\t/**\n\t * The export ID, used to check if the export is ready to be downloaded when polling.\n\t */\n\texport_id?: string;\n}\n\n/**\n * The response from the export URL GET request, which returns the URL to download the file.\n */\ninterface ExportURLResponse {\n\tstatus: string;\n\tdownload_url?: string;\n}\n\nconst maxRetries = 5;\n\n/**\n * Hook for requesting and polling for a CSV export. E.g. Transactions, Payouts, Disputes.\n *\n * @example\n * const { requestReportExport, isExportInProgress } = useReportExport();\n * requestReportExport( {\n * \texportRequestURL: '/wc/v3/payments/transactions/download?queryParam=value',\n * \texportFileAvailabilityEndpoint: '/wc/v3/payments/transactions/download',\n * \tuserEmail: 'test@example.com',\n * } );\n */\nexport const useReportExport = () => {\n\tconst [ isExportInProgress, setIsExportInProgress ] = useState( false );\n\tconst { createNotice } = useDispatch( 'core/notices' );\n\tconst timeoutIdRef = useRef< NodeJS.Timeout | null >( null );\n\n\tuseEffect( () => {\n\t\t// Cancel the timeout if the component unmounts.\n\t\treturn () => {\n\t\t\tif ( timeoutIdRef.current ) {\n\t\t\t\tclearTimeout( timeoutIdRef.current );\n\t\t\t}\n\t\t};\n\t}, [ timeoutIdRef ] );\n\n\tinterface PollForFileProps {\n\t\t/**\n\t\t * The URL to check for the exported file. E.g. \"/wc/v3/payments/transactions/download/{export_id}\"\n\t\t */\n\t\tcheckFileURL: string;\n\t\t/**\n\t\t * The email address the export will be sent to.\n\t\t */\n\t\tuserEmail: string;\n\t\t/**\n\t\t * The interval in milliseconds to poll the server.\n\t\t */\n\t\tinterval?: number;\n\t\t/**\n\t\t * The retry count for the current polling chain.\n\t\t */\n\t\tretryCount?: number;\n\t\t/**\n\t\t * Callback invoked when the export is ready for download.\n\t\t */\n\t\tonSuccess?: () => void;\n\t\t/**\n\t\t * Callback invoked when polling times out after the maximum number of retries.\n\t\t */\n\t\tonError?: ( details: { reason: 'request' | 'timeout' } ) => void;\n\t}\n\n\t/**\n\t * Polls the server to check if the exported file is ready.\n\t */\n\tasync function pollForFile( {\n\t\tcheckFileURL,\n\t\tuserEmail,\n\t\tinterval = 1000,\n\t\tretryCount = 0,\n\t\tonSuccess,\n\t\tonError,\n\t}: PollForFileProps ) {\n\t\ttimeoutIdRef.current = setTimeout( async () => {\n\t\t\tconst nextRetryCount = retryCount + 1;\n\t\t\tlet exportedFileURLResponse;\n\t\t\ttry {\n\t\t\t\texportedFileURLResponse = await apiFetch< ExportURLResponse >( {\n\t\t\t\t\tpath: checkFileURL,\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t} );\n\t\t\t} catch ( error ) {\n\t\t\t\t// If there's an error (like 500), continue with retry logic\n\t\t\t\texportedFileURLResponse = { status: 'error' };\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\texportedFileURLResponse.status === 'success' &&\n\t\t\t\texportedFileURLResponse.download_url\n\t\t\t) {\n\t\t\t\t// The file is available, so we can download it.\n\t\t\t\t// Create a link element to trigger the download.\n\t\t\t\tconst link = document.createElement( 'a' );\n\t\t\t\t// Add force_download=true to the URL to force the download, which adds the appropriate `Content-Disposition: attachment` header when using production server.\n\t\t\t\tlink.href =\n\t\t\t\t\texportedFileURLResponse.download_url +\n\t\t\t\t\t'?force_download=true';\n\t\t\t\tlink.click();\n\n\t\t\t\tsetIsExportInProgress( false );\n\t\t\t\tonSuccess?.();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( nextRetryCount < maxRetries ) {\n\t\t\t\t// If the file is not available, check again after 1 second.\n\t\t\t\tpollForFile( {\n\t\t\t\t\tcheckFileURL,\n\t\t\t\t\tuserEmail,\n\t\t\t\t\tretryCount: nextRetryCount,\n\t\t\t\t\tonSuccess,\n\t\t\t\t\tonError,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\t// If the file is not available after the maximum number of retries, show that it will be emailed.\n\t\t\t\tsetIsExportInProgress( false );\n\t\t\t\tonError?.( { reason: 'timeout' } );\n\t\t\t}\n\t\t}, interval );\n\t}\n\n\tinterface RequestReportExportProps {\n\t\t/**\n\t\t * The URL for requesting the export. E.g. \"/wc/v3/payments/transactions/download?param=value\"\n\t\t */\n\t\texportRequestURL: string;\n\t\t/**\n\t\t * The endpoint for retrieving the file's download URL. E.g. \"/wc/v3/payments/transactions/download/\"\n\t\t */\n\t\texportFileAvailabilityEndpoint: string;\n\t\t/**\n\t\t * The email address to send the export to.\n\t\t */\n\t\tuserEmail: string;\n\t\t/**\n\t\t * Callback invoked when the export is ready for download.\n\t\t */\n\t\tonSuccess?: () => void;\n\t\t/**\n\t\t * Callback invoked when the export request fails or polling times out.\n\t\t */\n\t\tonError?: ( details: { reason: 'request' | 'timeout' } ) => void;\n\t}\n\n\t/**\n\t * Requests a CSV export to be prepared.\n\t */\n\tasync function requestReportExport( {\n\t\texportRequestURL,\n\t\texportFileAvailabilityEndpoint,\n\t\tuserEmail,\n\t\tonSuccess,\n\t\tonError,\n\t}: RequestReportExportProps ) {\n\t\ttry {\n\t\t\tsetIsExportInProgress( true );\n\n\t\t\t// Request the report download.\n\t\t\tconst response = await apiFetch< ExportResponse >( {\n\t\t\t\tpath: exportRequestURL,\n\t\t\t\tmethod: 'POST',\n\t\t\t} );\n\n\t\t\t// If the export request was successful, start polling to see if the exported file is ready.\n\t\t\tif ( response.export_id ) {\n\t\t\t\tconst checkFileURL = `${ exportFileAvailabilityEndpoint }/${ response.export_id }`;\n\t\t\t\tpollForFile( {\n\t\t\t\t\tcheckFileURL,\n\t\t\t\t\tuserEmail,\n\t\t\t\t\tonSuccess,\n\t\t\t\t\tonError,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\t// A 2xx response without an export_id means the request did not\n\t\t\t\t// produce an export. Recover the UI and surface the failure so\n\t\t\t\t// the button doesn't stay stuck and the outcome is tracked.\n\t\t\t\tsetIsExportInProgress( false );\n\t\t\t\tonError?.( { reason: 'request' } );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tsetIsExportInProgress( false );\n\t\t\tonError?.( { reason: 'request' } );\n\t\t\tcreateNotice(\n\t\t\t\t'error',\n\t\t\t\t__(\n\t\t\t\t\t'There was a problem generating your export.',\n\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn {\n\t\t/**\n\t\t * Requests a report export to be prepared and starts polling for the exported file.\n\t\t */\n\t\trequestReportExport,\n\t\t/**\n\t\t * Whether a report download request has been made and polling is in progress.\n\t\t */\n\t\tisExportInProgress,\n\t};\n};\n","const banks: Record< string, string > = {\n\talior_bank: 'Alior Bank',\n\tbank_millennium: 'Bank Millenium',\n\tbank_nowy_bfg_sa: 'Bank Nowy BFG S.A.',\n\tbank_pekao_sa: 'Bank PEKAO S.A',\n\tbanki_spbdzielcze: 'Banki SpBdzielcze',\n\tblik: 'Blik via redirect',\n\tbnp_paribas: 'BNP Paribas',\n\tboz: 'BOZ',\n\tciti_handlowy: 'CitiHandlowy',\n\tcredit_agricole: 'Credit Agricole',\n\tenvelobank: 'EnveloBank',\n\tetransfer_pocztowy24: 'e-Transfer Poctowy24',\n\tgetin_bank: 'Getin Bank',\n\tideabank: 'IdeaBank',\n\ting: 'ING',\n\tinteligo: 'inteligo',\n\tmbank_mtransfer: 'mBank-mtransfer',\n\tnest_przelew: 'Nest Przelew',\n\tnoble_pay: 'Noble Pay',\n\tpbac_z_ipko: 'PBac z iPKO (PKO+BP)',\n\tplus_bank: 'Plus Bank',\n\tsantander_przelew24: 'Santander-przelew24',\n\ttmobile_usbugi_bankowe: 'T-Mobile Usbugi Bankowe',\n\ttoyota_bank: 'Toyota Bank',\n\tvolkswagen_bank: 'Volkswagen Bank',\n};\n\nexport default banks;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport interpolateComponents from '@automattic/interpolate-components';\nimport { ExternalLink } from '@wordpress/components';\nimport { Link } from '@woocommerce/components';\nimport InfoOutlineIcon from 'gridicons/dist/info-outline';\n\n/**\n * Internal dependencies\n */\nimport { getAdminUrl } from 'utils';\nimport { ClickTooltip } from 'components/tooltip';\nimport { formatDateTimeFromString } from 'wcpay/utils/date-time';\n\ninterface DepositProps {\n\tdepositId?: string;\n\tdateAvailable?: string;\n}\n\nconst Deposit: React.FC< DepositProps > = ( { depositId, dateAvailable } ) => {\n\tif ( depositId && dateAvailable ) {\n\t\tconst depositUrl = getAdminUrl( {\n\t\t\tpage: 'wc-admin',\n\t\t\tpath: '/payments/payouts/details',\n\t\t\tid: depositId,\n\t\t} );\n\n\t\tconst formattedDateAvailable =\n\t\t\tformatDateTimeFromString( dateAvailable );\n\t\treturn <Link href={ depositUrl }>{ formattedDateAvailable }</Link>;\n\t}\n\n\t// Show an icon with a tooltip to communicate that the payout will be available in the future.\n\treturn (\n\t\t<>\n\t\t\t{ __( 'Future payout', 'woocommerce-payments' ) }\n\t\t\t<ClickTooltip\n\t\t\t\tcontent={ interpolateComponents( {\n\t\t\t\t\tmixedString: __(\n\t\t\t\t\t\t'This transaction will be included in an upcoming automated payout. The date of the payout will be displayed here once it is scheduled. {{learnMoreLink}}Learn more{{/learnMoreLink}}',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\tcomponents: {\n\t\t\t\t\t\tlearnMoreLink: (\n\t\t\t\t\t\t\t// @ts-expect-error: children is provided when interpolating the component\n\t\t\t\t\t\t\t<ExternalLink href=\"https://woocommerce.com/document/woopayments/payouts/payout-schedule/#pending-funds\" />\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t} ) }\n\t\t\t\tbuttonIcon={ <InfoOutlineIcon /> }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default Deposit;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport React from 'react';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Tooltip } from '@wordpress/components';\nimport SyncIcon from 'gridicons/dist/sync';\n\n/**\n * Internal dependencies\n */\nimport { formatExplicitCurrency } from 'multi-currency/interface/functions';\n\ninterface ConversionIndicatorProps {\n\tamount: number;\n\tcurrency: string;\n\tbaseCurrency: string;\n\tfallback?: boolean;\n}\n\nconst ConversionIndicator = ( {\n\tamount,\n\tcurrency,\n\tbaseCurrency,\n}: ConversionIndicatorProps ): React.ReactElement => {\n\treturn (\n\t\t<Tooltip\n\t\t\ttext={ sprintf(\n\t\t\t\t/* translators: %s is a monetary amount */\n\t\t\t\t__( 'Converted from %s', 'woocommerce-payments' ),\n\t\t\t\tformatExplicitCurrency( amount, currency, false, baseCurrency )\n\t\t\t) }\n\t\t\tplacement=\"bottom\"\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName=\"conversion-indicator\"\n\t\t\t\tdata-testid=\"conversion-indicator\"\n\t\t\t\tstyle={ { height: '18px', width: '18px' } }\n\t\t\t>\n\t\t\t\t<SyncIcon size={ 18 } />\n\t\t\t</span>\n\t\t</Tooltip>\n\t);\n};\n\ninterface ConvertedAmountProps {\n\tamount: number;\n\tcurrency: string;\n\tfromAmount: number;\n\tfromCurrency: string;\n}\n\nconst ConvertedAmount = ( {\n\tamount,\n\tcurrency,\n\tfromAmount,\n\tfromCurrency,\n}: ConvertedAmountProps ): JSX.Element => {\n\tconst formattedCurrency = formatExplicitCurrency( amount, currency );\n\n\t// No conversion if currencies match.\n\tif ( currency === fromCurrency ) {\n\t\treturn <>{ formattedCurrency }</>;\n\t}\n\n\treturn (\n\t\t<div className=\"converted-amount\">\n\t\t\t<ConversionIndicator\n\t\t\t\tamount={ fromAmount }\n\t\t\t\tcurrency={ fromCurrency }\n\t\t\t\tbaseCurrency={ currency }\n\t\t\t/>\n\t\t\t{ formattedCurrency }\n\t\t</div>\n\t);\n};\n\nexport default ConvertedAmount;\n","/**\n * External dependencies\n */\nimport React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\nimport interpolateComponents from '@automattic/interpolate-components';\n\n/**\n * Internal dependencies\n */\nimport computeSuggestionMatch from 'utils/compute-suggestion-match';\n\n/**\n * @typedef {Object} Completer\n */\n\ninterface CompletionOption {\n\tkey: string;\n\tlabel: string;\n}\n\n/**\n * A transaction completer.\n * See https://github.com/WordPress/gutenberg/tree/master/packages/components/src/autocomplete#the-completer-interface\n *\n * @type {Completer}\n */\nexport default {\n\tname: 'transactions',\n\tclassName: 'woocommerce-search__transactions-result',\n\toptions( term: string ): Promise< CompletionOption[] > {\n\t\tconst query = term ? { search_term: term } : {};\n\t\treturn apiFetch( {\n\t\t\tpath: addQueryArgs( '/wc/v3/payments/transactions/search', query ),\n\t\t} );\n\t},\n\tisDebounced: true,\n\tgetOptionIdentifier( option: CompletionOption ): string {\n\t\treturn option.label;\n\t},\n\tgetOptionKeywords( option: CompletionOption ): string[] {\n\t\treturn [ option.label ];\n\t},\n\tgetFreeTextOptions( query: string ): {\n\t\tkey: string;\n\t\tlabel: JSX.Element;\n\t\tvalue: { label: string };\n\t}[] {\n\t\tconst label = (\n\t\t\t<span key=\"name\" className=\"woocommerce-search__result-name\">\n\t\t\t\t{ interpolateComponents( {\n\t\t\t\t\tmixedString: __(\n\t\t\t\t\t\t'All transactions with customer names or billing emails that include {{query /}}',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\tcomponents: {\n\t\t\t\t\t\tquery: (\n\t\t\t\t\t\t\t<strong className=\"components-form-token-field__suggestion-match\">\n\t\t\t\t\t\t\t\t{ query }\n\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t} ) }\n\t\t\t</span>\n\t\t);\n\t\tconst nameOption = {\n\t\t\tkey: 'all',\n\t\t\tlabel,\n\t\t\tvalue: { label: query },\n\t\t};\n\n\t\treturn [ nameOption ];\n\t},\n\tgetOptionLabel( option: CompletionOption, query: string ): JSX.Element {\n\t\tconst match = computeSuggestionMatch( option.label, query );\n\n\t\treturn (\n\t\t\t<span\n\t\t\t\tkey=\"name\"\n\t\t\t\tclassName=\"woocommerce-search__result-name\"\n\t\t\t\taria-label={ option.label }\n\t\t\t>\n\t\t\t\t{ match?.suggestionBeforeMatch }\n\t\t\t\t<strong className=\"components-form-token-field__suggestion-match\">\n\t\t\t\t\t{ match?.suggestionMatch }\n\t\t\t\t</strong>\n\t\t\t\t{ match?.suggestionAfterMatch }\n\t\t\t</span>\n\t\t);\n\t},\n\t// This is slightly different than gutenberg/Autocomplete, we don't support different methods\n\t// of replace/insertion, so we can just return the value.\n\tgetOptionCompletion( option: CompletionOption ): CompletionOption {\n\t\treturn {\n\t\t\tkey: option.label,\n\t\t\tlabel: option.label,\n\t\t};\n\t},\n};\n","/**\n * External dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getSetting } from 'wcpay/utils/wc-settings';\nimport {\n\tdisplayType,\n\tsourceDevice,\n\tchannel,\n\triskLevel,\n} from 'transactions/strings';\n\ninterface TransactionsFilterEntryType {\n\tlabel: string;\n\tvalue: string;\n}\n\nexport interface TransactionsFilterType {\n\tlabel: string;\n\tparam: string;\n\tstaticParams: string[];\n\tshowFilters: () => boolean;\n\tfilters: TransactionsFilterEntryType[];\n\tdefaultValue?: string;\n}\n\nconst transactionTypesOptions = Object.entries( displayType )\n\t.map( ( [ type, label ] ) => {\n\t\treturn { label, value: type };\n\t} )\n\t.filter( function ( el ) {\n\t\treturn el != null;\n\t} );\n\nconst transactionSourceDeviceOptions = Object.entries( sourceDevice ).map(\n\t( [ type, label ] ) => {\n\t\treturn { label, value: type };\n\t}\n);\n\nconst transactionChannelOptions = Object.entries( channel ).map(\n\t( [ type, label ] ) => {\n\t\treturn { label, value: type };\n\t}\n);\n\nconst transactionRiskLevelOptions = Object.entries( riskLevel ).map(\n\t( [ type, label ] ) => {\n\t\treturn { label, value: type };\n\t}\n);\n\nconst transactionCustomerCounryOptions = Object.entries(\n\twcSettings.countries\n).map( ( [ type, label ] ) => {\n\treturn { label, value: type };\n} );\n\nexport const getFilters = (\n\tdepositCurrencyOptions: TransactionsFilterEntryType[],\n\tshowDepositCurrencyFilter: boolean\n): [ TransactionsFilterType, TransactionsFilterType ] => {\n\treturn [\n\t\t{\n\t\t\tlabel: __( 'Deposit currency', 'woocommerce-payments' ),\n\t\t\tparam: 'store_currency_is',\n\t\t\tstaticParams: [\n\t\t\t\t'paged',\n\t\t\t\t'per_page',\n\t\t\t\t'orderby',\n\t\t\t\t'order',\n\t\t\t\t'search',\n\t\t\t\t'filter',\n\t\t\t\t'type_is',\n\t\t\t\t'type_is_not',\n\t\t\t\t'type_is_in',\n\t\t\t\t'date_before',\n\t\t\t\t'date_after',\n\t\t\t\t'date_between',\n\t\t\t\t'source_device_is',\n\t\t\t\t'source_device_is_not',\n\t\t\t\t'channel_is',\n\t\t\t\t'channel_is_not',\n\t\t\t\t'customer_country_is',\n\t\t\t\t'customer_country_is_not',\n\t\t\t\t'risk_level_is',\n\t\t\t\t'risk_level_is_not',\n\t\t\t],\n\t\t\tshowFilters: () => showDepositCurrencyFilter,\n\t\t\tfilters: [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'All currencies', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: '---',\n\t\t\t\t},\n\t\t\t\t...depositCurrencyOptions,\n\t\t\t],\n\t\t\tdefaultValue: '---',\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Show', 'woocommerce-payments' ),\n\t\t\tparam: 'filter',\n\t\t\tstaticParams: [\n\t\t\t\t'paged',\n\t\t\t\t'per_page',\n\t\t\t\t'orderby',\n\t\t\t\t'order',\n\t\t\t\t'search',\n\t\t\t\t'store_currency_is',\n\t\t\t],\n\t\t\tshowFilters: () => true,\n\t\t\tfilters: [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'All transactions', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: 'all',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Advanced filters', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: 'advanced',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n};\n\n/**\n * TODO: Add an interface here for advanced filters, or adjust ESLint rules to allow using inferred type.\n */\n\n/*eslint-disable max-len*/\nexport const getAdvancedFilters = (\n\tcustomerCurrencyOptions?: TransactionsFilterEntryType[],\n\ttransactionSourceOptions?: TransactionsFilterEntryType[]\n): any => {\n\t// TODO: Remove this and all the checks once we drop support of WooCommerce 7.7 and below.\n\tconst wooCommerceVersionString = getSetting( 'wcVersion' );\n\tconst wooCommerceVersion = parseFloat( wooCommerceVersionString ); // This will parse 7.7.1 to 7.7, but it's fine for this purpose\n\n\tconst advancedFilters: any = {\n\t\t/** translators: A sentence describing filters for Transactions. */\n\t\ttitle:\n\t\t\twooCommerceVersion < 7.8\n\t\t\t\t? __(\n\t\t\t\t\t\t'Transactions match {{select /}} filters',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t  )\n\t\t\t\t: __(\n\t\t\t\t\t\t'Transactions match <select /> filters',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t  ),\n\t\tfilters: {\n\t\t\tdate: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Date', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction date filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction date filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction date filter. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Date{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Date</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction date',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'before',\n\t\t\t\t\t\tlabel: __( 'Before', 'woocommerce-payments' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'after',\n\t\t\t\t\t\tlabel: __( 'After', 'woocommerce-payments' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'between',\n\t\t\t\t\t\tlabel: __( 'Between', 'woocommerce-payments' ),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'Date',\n\t\t\t\t},\n\t\t\t},\n\t\t\tcustomer_currency: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Customer currency', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction customer currency filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction customer currency filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction customer currency filter. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Customer currency{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Customer currency</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a customer currency',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen presentment currency. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'transaction customer currency',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen presentment currency. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'transaction customer currency',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: customerCurrencyOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsource: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Payment method', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove payment method filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a payment method filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t'<title>Payment method</title> <rule /> <filter />',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a payment method',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen payment method. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'payment method',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen payment method. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'payment method',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionSourceOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Type', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction type filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction type filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction type filter. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Type{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Type</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction type',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen transaction type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'transaction type',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen transaction type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'transaction type',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionTypesOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsource_device: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Device Type', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction device type filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction device type filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction Device Type filter. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Device type{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Device type</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction device type',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen transaction type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'Source device',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen transaction type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'Source device',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionSourceDeviceOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\tchannel: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Sales channel', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction sales channel filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction sales channel filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Sales channel{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Sales channel</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction sales channel',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen transaction sales channel type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'Sales channel',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen transaction sales channel type. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'Sales channel',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionChannelOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\tcustomer_country: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Customer Country', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction customer country filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction customer country filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction customer country. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Customer country{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Customer country</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction customer country',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen transaction customer country. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is',\n\t\t\t\t\t\t\t'Customer Country',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen transaction customer country. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'Customer Country',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionCustomerCounryOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t\trisk_level: {\n\t\t\t\tlabels: {\n\t\t\t\t\tadd: __( 'Risk Level', 'woocommerce-payments' ),\n\t\t\t\t\tremove: __(\n\t\t\t\t\t\t'Remove transaction Risk Level filter',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\trule: __(\n\t\t\t\t\t\t'Select a transaction Risk Level filter match',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\t/* translators: A sentence describing a Transaction Risk Level filter. */\n\t\t\t\t\ttitle:\n\t\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'{{title}}Risk Level{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'<title>Risk Level</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tfilter: __(\n\t\t\t\t\t\t'Select a transaction Risk Level',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\trules: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is\" refers to searching for transactions matching a chosen transaction risk level. */\n\t\t\t\t\t\tlabel: _x( 'Is', 'Risk Level', 'woocommerce-payments' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'is_not',\n\t\t\t\t\t\t/* translators: Sentence fragment, logical, \"Is not\" refers to searching for transactions that don\\'t match a chosen transaction risk level. */\n\t\t\t\t\t\tlabel: _x(\n\t\t\t\t\t\t\t'Is not',\n\t\t\t\t\t\t\t'Risk Level',\n\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinput: {\n\t\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\t\toptions: transactionRiskLevelOptions,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\tconst loanDefinitions = wcpaySettings?.accountLoans?.loans ?? [];\n\n\tconst loanSelectionOptions = loanDefinitions.map( ( loanDefinition ) => {\n\t\tconst loanDefinitionSplitted = loanDefinition.split( '|' );\n\t\tconst loanDisplayValue = sprintf(\n\t\t\t'ID: %s | %s',\n\t\t\tloanDefinitionSplitted[ 0 ],\n\t\t\tloanDefinitionSplitted[ 1 ] === 'active'\n\t\t\t\t? __( 'In Progress', 'woocommerce-payments' )\n\t\t\t\t: __( 'Paid in Full', 'woocommerce-payments' )\n\t\t);\n\n\t\treturn {\n\t\t\tlabel: loanDisplayValue,\n\t\t\tvalue: loanDefinitionSplitted[ 0 ],\n\t\t};\n\t}, [] );\n\n\tif ( loanSelectionOptions.length > 0 ) {\n\t\tadvancedFilters.filters.loan_id_is = {\n\t\t\tlabels: {\n\t\t\t\tadd: __( 'Loan', 'woocommerce-payments' ),\n\t\t\t\tremove: __( 'Remove loan filter', 'woocommerce-payments' ),\n\t\t\t\trule: __( 'Select a loan', 'woocommerce-payments' ),\n\t\t\t\t/* translators: A sentence describing a Loan ID filter. */\n\t\t\t\ttitle:\n\t\t\t\t\twooCommerceVersion < 7.8\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'{{title}}Loan{{/title}} {{rule /}} {{filter /}}',\n\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t  )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'<title>Loan</title> <rule /> <filter />',\n\t\t\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t\t  ),\n\t\t\t\tfilter: __( 'Select a loan', 'woocommerce-payments' ),\n\t\t\t},\n\t\t\tinput: {\n\t\t\t\tcomponent: 'SelectControl',\n\t\t\t\ttype: 'loans',\n\t\t\t\toptions: loanSelectionOptions,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn advancedFilters;\n};\n/*eslint-enable max-len*/\n","/**\n * External dependencies\n */\nimport React, { useMemo } from 'react';\nimport { ReportFilters } from '@woocommerce/components';\nimport { getQuery } from '@woocommerce/navigation';\n\n/**\n * Internal dependencies\n */\nimport { getFilters, getAdvancedFilters } from './config';\nimport { formatCurrencyName } from 'multi-currency/interface/functions';\nimport { recordEvent } from 'tracks';\nimport { Transaction } from 'wcpay/data/transactions';\nimport { getTransactionPaymentMethodTitle } from 'wcpay/transactions/utils/getTransactionPaymentMethodTitle';\n\ninterface TransactionsFiltersProps {\n\tstoreCurrencies: string[];\n\tcustomerCurrencies: string[];\n\ttransactionSources: Transaction[ 'source' ][];\n}\n\nexport const TransactionsFilters = ( {\n\tstoreCurrencies,\n\tcustomerCurrencies,\n\ttransactionSources,\n}: TransactionsFiltersProps ): JSX.Element => {\n\tconst advancedFilters = useMemo(\n\t\t() =>\n\t\t\tgetAdvancedFilters(\n\t\t\t\tcustomerCurrencies.map( ( currencyCode: string ) => ( {\n\t\t\t\t\tlabel: formatCurrencyName( currencyCode ),\n\t\t\t\t\tvalue: currencyCode,\n\t\t\t\t} ) ),\n\t\t\t\ttypeof transactionSources === 'undefined'\n\t\t\t\t\t? []\n\t\t\t\t\t: transactionSources.map( ( source ) => ( {\n\t\t\t\t\t\t\tlabel: getTransactionPaymentMethodTitle( source ),\n\t\t\t\t\t\t\tvalue: source,\n\t\t\t\t\t  } ) )\n\t\t\t),\n\t\t[ customerCurrencies, transactionSources ]\n\t);\n\n\tconst filters = useMemo(\n\t\t() =>\n\t\t\tgetFilters(\n\t\t\t\tstoreCurrencies.map( ( currencyCode: string ) => ( {\n\t\t\t\t\tlabel: formatCurrencyName( currencyCode ),\n\t\t\t\t\tvalue: currencyCode,\n\t\t\t\t} ) ),\n\t\t\t\tstoreCurrencies.length > 1\n\t\t\t),\n\t\t[ storeCurrencies ]\n\t);\n\n\treturn (\n\t\t<div className=\"woocommerce-filters-transactions\">\n\t\t\t<ReportFilters\n\t\t\t\tkey={ customerCurrencies?.length }\n\t\t\t\tfilters={ filters }\n\t\t\t\tadvancedFilters={ advancedFilters }\n\t\t\t\tshowDatePicker={ false }\n\t\t\t\tpath=\"/payments/transactions\"\n\t\t\t\tquery={ getQuery() }\n\t\t\t\tonAdvancedFilterAction={ ( event ) => {\n\t\t\t\t\tif ( event === 'filter' ) {\n\t\t\t\t\t\trecordEvent( 'page_view', {\n\t\t\t\t\t\t\tpath: 'payments_transactions',\n\t\t\t\t\t\t\tfilter: 'advanced',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default TransactionsFilters;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport React, { Fragment } from 'react';\nimport { uniq } from 'lodash';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tTableCard,\n\tSearch,\n\tLink,\n\tTableCardColumn,\n} from '@woocommerce/components';\nimport {\n\tonQueryChange,\n\tgetQuery,\n\tupdateQueryString,\n} from '@woocommerce/navigation';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseTransactions,\n\tuseTransactionsSummary,\n} from 'wcpay/data/transactions';\nimport { Transaction } from 'wcpay/data/transactions/hooks';\nimport OrderLink from 'wcpay/components/order-link';\nimport RiskLevel, { calculateRiskMapping } from 'wcpay/components/risk-level';\nimport ClickableCell from 'wcpay/components/clickable-cell';\nimport { getDetailsURL } from 'wcpay/components/details-link';\nimport { displayType } from 'wcpay/transactions/strings';\nimport { depositStatusLabels } from 'wcpay/deposits/strings';\nimport { formatStringValue, applyThousandSeparator } from 'wcpay/utils';\nimport {\n\tformatCurrency,\n\tformatExplicitCurrency,\n\tformatExportAmount,\n} from 'multi-currency/interface/functions';\nimport { getTransactionChannel } from 'wcpay/utils/charge';\nimport Deposit from './deposit';\nimport ConvertedAmount from './converted-amount';\nimport autocompleter from 'wcpay/transactions/autocompleter';\nimport './style.scss';\nimport TransactionsFilters from '../filters';\nimport Page from '../../components/page';\nimport { recordEvent } from 'tracks';\nimport DownloadButton from 'wcpay/components/download-button';\nimport {\n\tgetTransactionsCSVRequestURL,\n\ttransactionsDownloadEndpoint,\n} from 'wcpay/data/transactions/resolvers';\nimport p24BankList from '../../payment-details/payment-method/p24/bank-list';\nimport { HoverTooltip } from 'wcpay/components/tooltip';\nimport { formatDateTimeFromString } from 'wcpay/utils/date-time';\nimport { usePersistedColumnVisibility } from 'wcpay/hooks/use-persisted-table-column-visibility';\nimport { useReportExport } from 'wcpay/hooks/use-report-export';\nimport { getTransactionPaymentMethodTitle } from 'wcpay/transactions/utils/getTransactionPaymentMethodTitle';\n\ninterface TransactionsListProps {\n\tdepositId?: string;\n}\n\ninterface Column extends TableCardColumn {\n\tkey:\n\t\t| 'transaction_id'\n\t\t| 'date'\n\t\t| 'type'\n\t\t| 'channel'\n\t\t| 'amount'\n\t\t| 'fees'\n\t\t| 'net'\n\t\t| 'order'\n\t\t| 'subscriptions'\n\t\t| 'source'\n\t\t| 'customer_name'\n\t\t| 'customer_email'\n\t\t| 'customer_country'\n\t\t| 'risk_level'\n\t\t| 'deposit';\n\tvisible?: boolean;\n\tcellClassName?: string;\n}\n\n// FLAG: PAYMENT_METHODS_LIST\n// If your payment method needs a custom display on the transactions list, you can add it here.\nconst getPaymentSourceDetails = ( txn: Transaction ) => {\n\tif ( ! txn.source_identifier ) {\n\t\treturn <Fragment></Fragment>;\n\t}\n\n\tswitch ( txn.source ) {\n\t\tcase 'giropay':\n\t\t\treturn <Fragment>&nbsp;&nbsp;{ txn.source_identifier }</Fragment>;\n\t\tcase 'p24':\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t&nbsp;&nbsp;\n\t\t\t\t\t{ p24BankList[ txn.source_identifier ] ?? '' }\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t&nbsp;&bull;&bull;&bull;&bull;&nbsp;{ ' ' }\n\t\t\t\t\t{ txn.source_identifier }\n\t\t\t\t</Fragment>\n\t\t\t);\n\t}\n};\n\nconst getSourceDeviceIcon = ( txn: Transaction ) => {\n\tlet tooltipDescription = '';\n\n\tif ( txn.source_device === 'ios' ) {\n\t\ttooltipDescription = __(\n\t\t\t'Tap to Pay on iPhone',\n\t\t\t'woocommerce-payments'\n\t\t);\n\t} else if ( txn.source_device === 'android' ) {\n\t\ttooltipDescription = __(\n\t\t\t'Tap to Pay on Android',\n\t\t\t'woocommerce-payments'\n\t\t);\n\t}\n\n\treturn (\n\t\t<HoverTooltip isVisible={ false } content={ tooltipDescription }>\n\t\t\t<span className=\"woocommerce-taptopay__icon\"></span>\n\t\t</HoverTooltip>\n\t);\n};\n\nconst getColumns = (\n\tincludeDeposit: boolean,\n\tincludeSubscription: boolean\n): Column[] =>\n\t[\n\t\t{\n\t\t\tkey: 'transaction_id',\n\t\t\tlabel: __( 'Transaction ID', 'woocommerce-payments' ),\n\t\t\tvisible: false,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'date',\n\t\t\tlabel: __( 'Date / Time', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Date and time', 'woocommerce-payments' ),\n\t\t\trequired: true,\n\t\t\tisLeftAligned: true,\n\t\t\tdefaultOrder: 'desc',\n\t\t\tcellClassName: 'date-time',\n\t\t\tisSortable: true,\n\t\t\tdefaultSort: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'type',\n\t\t\tlabel: __( 'Type', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Type', 'woocommerce-payments' ),\n\t\t\trequired: true,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'channel',\n\t\t\tlabel: __( 'Sales channel', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Sales channel', 'woocommerce-payments' ),\n\t\t\trequired: true,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'customer_currency',\n\t\t\tlabel: __( 'Paid Currency', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __(\n\t\t\t\t'Customer Currency',\n\t\t\t\t'woocommerce-payments'\n\t\t\t),\n\t\t\tisSortable: true,\n\t\t\tvisible: false,\n\t\t},\n\t\t{\n\t\t\tkey: 'customer_amount',\n\t\t\tlabel: __( 'Amount Paid', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __(\n\t\t\t\t'Amount in Customer Currency',\n\t\t\t\t'woocommerce-payments'\n\t\t\t),\n\t\t\tisNumeric: true,\n\t\t\tisSortable: true,\n\t\t\tvisible: false,\n\t\t},\n\t\t{\n\t\t\tkey: 'currency',\n\t\t\tlabel: __( 'Payout Currency', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Payout Currency', 'woocommerce-payments' ),\n\t\t\tisSortable: true,\n\t\t\tvisible: false,\n\t\t},\n\t\t{\n\t\t\tkey: 'amount',\n\t\t\tlabel: __( 'Amount', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __(\n\t\t\t\t'Amount in Payout Currency',\n\t\t\t\t'woocommerce-payments'\n\t\t\t),\n\t\t\tisNumeric: true,\n\t\t\tisSortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'fees',\n\t\t\tlabel: __( 'Fees', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Fees', 'woocommerce-payments' ),\n\t\t\tisNumeric: true,\n\t\t\tisSortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'net',\n\t\t\tlabel: __( 'Net', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Net', 'woocommerce-payments' ),\n\t\t\tisNumeric: true,\n\t\t\trequired: true,\n\t\t\tisSortable: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'order',\n\t\t\tlabel: __( 'Order #', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Order number', 'woocommerce-payments' ),\n\t\t\trequired: true,\n\t\t},\n\t\tincludeSubscription && {\n\t\t\tkey: 'subscriptions',\n\t\t\tlabel: __( 'Subscription #', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __(\n\t\t\t\t'Subscription number',\n\t\t\t\t'woocommerce-payments'\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tkey: 'source',\n\t\t\tlabel: __( 'Payment Method', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Payment Method', 'woocommerce-payments' ),\n\t\t\tcellClassName: 'is-center-aligned',\n\t\t},\n\t\t{\n\t\t\tkey: 'customer_name',\n\t\t\tlabel: __( 'Customer', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Customer', 'woocommerce-payments' ),\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'customer_email',\n\t\t\tlabel: __( 'Email', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Email', 'woocommerce-payments' ),\n\t\t\tvisible: false,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'customer_country',\n\t\t\tlabel: __( 'Country', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Country', 'woocommerce-payments' ),\n\t\t\tvisible: false,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\t{\n\t\t\tkey: 'risk_level',\n\t\t\tlabel: __( 'Risk level', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Risk level', 'woocommerce-payments' ),\n\t\t\tvisible: false,\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\tincludeDeposit && {\n\t\t\tkey: 'deposit_id',\n\t\t\tlabel: __( 'Payout ID', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Payout ID', 'woocommerce-payments' ),\n\t\t\tcellClassName: 'deposit',\n\t\t\tisLeftAligned: true,\n\t\t\tvisible: false,\n\t\t},\n\t\tincludeDeposit && {\n\t\t\tkey: 'deposit',\n\t\t\tlabel: __( 'Payout date', 'woocommerce-payments' ),\n\t\t\tscreenReaderLabel: __( 'Payout date', 'woocommerce-payments' ),\n\t\t\tcellClassName: 'deposit',\n\t\t\tisLeftAligned: true,\n\t\t},\n\t\tincludeDeposit && {\n\t\t\tkey: 'deposit_status',\n\t\t\tlabel: __( 'Payout status', 'woocommerce-payments' ),\n\t\t\tvisible: false,\n\t\t},\n\t].filter( Boolean ) as Column[]; // We explicitly define the type because TypeScript can't infer the type post-filtering.\n\nexport const TransactionsList = (\n\tprops: TransactionsListProps\n): JSX.Element => {\n\tconst { transactions, isLoading } = useTransactions(\n\t\tgetQuery(),\n\t\tprops.depositId ?? ''\n\t);\n\tconst { transactionsSummary, isLoading: isSummaryLoading } =\n\t\tuseTransactionsSummary( getQuery(), props.depositId ?? '' );\n\n\tconst { requestReportExport, isExportInProgress } = useReportExport();\n\n\tconst { createNotice } = useDispatch( 'core/notices' );\n\n\tconst { onColumnsChange, columnsToDisplay } =\n\t\tusePersistedColumnVisibility< Column >(\n\t\t\t'wc_payments_transactions_hidden_columns',\n\t\t\tgetColumns( ! props.depositId, wcpaySettings.isSubscriptionsActive )\n\t\t);\n\n\tconst totalRows = transactionsSummary.count || 0;\n\tconst rows = transactions.map( ( txn ) => {\n\t\tconst detailsURL =\n\t\t\tgetDetailsURL(\n\t\t\t\ttxn.payment_intent_id || txn.charge_id,\n\t\t\t\t'transactions'\n\t\t\t) +\n\t\t\t'&transaction_id=' +\n\t\t\ttxn.transaction_id +\n\t\t\t'&transaction_type=' +\n\t\t\t( txn.metadata && txn.metadata.charge_type === 'card_reader_fee'\n\t\t\t\t? txn.metadata.charge_type\n\t\t\t\t: txn.type );\n\t\tconst clickable =\n\t\t\ttxn.type !== 'financing_payout' &&\n\t\t\ttxn.type !== 'network_costs' &&\n\t\t\t! ( txn.type === 'financing_paydown' && txn.charge_id === '' )\n\t\t\t\t? ( children: React.ReactNode ) => (\n\t\t\t\t\t\t<ClickableCell href={ detailsURL }>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</ClickableCell>\n\t\t\t\t  )\n\t\t\t\t: ( children: React.ReactNode ) => children;\n\n\t\tconst orderUrl = txn.order ? (\n\t\t\t<OrderLink order={ txn.order } />\n\t\t) : (\n\t\t\t__( 'N/A', 'woocommerce-payments' )\n\t\t);\n\t\tconst orderSubscriptions = txn.order && txn.order.subscriptions;\n\t\tconst subscriptionsValue =\n\t\t\twcpaySettings.isSubscriptionsActive && orderSubscriptions\n\t\t\t\t? orderSubscriptions\n\t\t\t\t\t\t.map( ( subscription ) => subscription.number )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t: '';\n\t\tconst subscriptions =\n\t\t\twcpaySettings.isSubscriptionsActive && orderSubscriptions\n\t\t\t\t? orderSubscriptions.map( ( subscription, i, all ) => [\n\t\t\t\t\t\t<OrderLink key={ i } order={ subscription } />,\n\t\t\t\t\t\ti !== all.length - 1 && ', ',\n\t\t\t\t  ] )\n\t\t\t\t: [];\n\t\tconst riskLevel = <RiskLevel risk={ txn.risk_level } />;\n\n\t\tconst customerName =\n\t\t\ttxn.order && txn.order.customer_url ? (\n\t\t\t\t<Link href={ txn.order.customer_url ?? '' }>\n\t\t\t\t\t{ txn.customer_name }\n\t\t\t\t</Link>\n\t\t\t) : (\n\t\t\t\ttxn.customer_name\n\t\t\t);\n\t\tconst customerEmail = txn.order ? (\n\t\t\t<Link href={ txn.order.customer_url ?? '' }>\n\t\t\t\t{ txn.customer_email }\n\t\t\t</Link>\n\t\t) : (\n\t\t\ttxn.customer_email\n\t\t);\n\n\t\tconst currency = txn.currency.toUpperCase();\n\n\t\tconst dataType = txn.metadata ? txn.metadata.charge_type : txn.type;\n\t\tconst formatAmount = () => {\n\t\t\tconst amount = txn.metadata ? 0 : txn.amount;\n\t\t\tconst fromAmount = txn.customer_amount ? txn.customer_amount : 0;\n\n\t\t\treturn {\n\t\t\t\tvalue: formatExportAmount( amount, currency ),\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\t<ConvertedAmount\n\t\t\t\t\t\tamount={ amount }\n\t\t\t\t\t\tcurrency={ currency }\n\t\t\t\t\t\tfromAmount={ fromAmount }\n\t\t\t\t\t\tfromCurrency={ txn.customer_currency.toUpperCase() }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t};\n\t\t};\n\t\tconst formatFees = () => {\n\t\t\tconst isCardReader =\n\t\t\t\ttxn.metadata && txn.metadata.charge_type === 'card_reader_fee';\n\t\t\tconst feeAmount = formatExportAmount(\n\t\t\t\tisCardReader ? txn.amount : txn.fees * -1,\n\t\t\t\tcurrency\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tvalue: feeAmount,\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\tformatCurrency(\n\t\t\t\t\t\tisCardReader ? txn.amount : txn.fees * -1,\n\t\t\t\t\t\tcurrency\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t};\n\t\t};\n\t\tconst formatCustomerAmount = () => {\n\t\t\treturn {\n\t\t\t\tvalue: formatExportAmount(\n\t\t\t\t\ttxn.customer_amount,\n\t\t\t\t\ttxn.customer_currency\n\t\t\t\t),\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\tformatCurrency( txn.customer_amount, txn.customer_currency )\n\t\t\t\t),\n\t\t\t};\n\t\t};\n\n\t\tconst isFinancingType =\n\t\t\t[ 'financing_payout', 'financing_paydown' ].indexOf( txn.type ) !==\n\t\t\t-1;\n\n\t\tconst isReaderFee = dataType === 'card_reader_fee';\n\n\t\tconst isNetworkCosts = txn.type === 'network_costs';\n\n\t\tconst deposit = ! isFinancingType && (\n\t\t\t<Deposit\n\t\t\t\tdepositId={ txn.deposit_id }\n\t\t\t\tdateAvailable={ txn.available_on }\n\t\t\t/>\n\t\t);\n\n\t\tconst depositStatus = txn.deposit_status\n\t\t\t? depositStatusLabels[ txn.deposit_status ]\n\t\t\t: '';\n\n\t\tconst accountCountry = wcpaySettings?.accountStatus?.country || 'US';\n\n\t\t// Map transaction into table row.\n\t\tconst data = {\n\t\t\ttransaction_id: {\n\t\t\t\tvalue: txn.transaction_id,\n\t\t\t\tdisplay: clickable( txn.transaction_id ),\n\t\t\t},\n\t\t\tdate: {\n\t\t\t\tvalue: txn.date,\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\tformatDateTimeFromString( txn.date, {\n\t\t\t\t\t\tincludeTime: true,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\t},\n\t\t\tchannel: {\n\t\t\t\tvalue: getTransactionChannel( txn.channel ),\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{ getTransactionChannel( txn.channel ) }\n\t\t\t\t\t\t{ txn.source_device && getSourceDeviceIcon( txn ) }\n\t\t\t\t\t</Fragment>\n\t\t\t\t),\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\tvalue: displayType[ dataType ],\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\tdisplayType[ dataType ] || formatStringValue( dataType )\n\t\t\t\t),\n\t\t\t},\n\t\t\tsource: {\n\t\t\t\tvalue: txn.source,\n\t\t\t\tdisplay:\n\t\t\t\t\t! isFinancingType && ! isReaderFee && ! isNetworkCosts ? (\n\t\t\t\t\t\tclickable(\n\t\t\t\t\t\t\t<span className=\"payment-method-details-list-item\">\n\t\t\t\t\t\t\t\t<HoverTooltip\n\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\tcontent={ getTransactionPaymentMethodTitle(\n\t\t\t\t\t\t\t\t\t\ttxn.source\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={ `payment-method__brand payment-method__brand--${\n\t\t\t\t\t\t\t\t\t\t\ttxn.source\n\t\t\t\t\t\t\t\t\t\t} account-country--${ accountCountry?.toLowerCase() }` }\n\t\t\t\t\t\t\t\t\t\taria-label={ getTransactionPaymentMethodTitle(\n\t\t\t\t\t\t\t\t\t\t\ttxn.source\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t\t{ getPaymentSourceDetails( txn ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span className=\"payment-method__brand\">—</span>\n\t\t\t\t\t),\n\t\t\t},\n\t\t\torder: {\n\t\t\t\tvalue: txn.order && txn.order.number,\n\t\t\t\tdisplay: orderUrl,\n\t\t\t},\n\t\t\tsubscriptions: {\n\t\t\t\tvalue: subscriptionsValue,\n\t\t\t\tdisplay: subscriptions,\n\t\t\t},\n\t\t\tcustomer_name: {\n\t\t\t\tvalue: txn.customer_name,\n\t\t\t\tdisplay:\n\t\t\t\t\t! isFinancingType && ! isReaderFee && ! isNetworkCosts\n\t\t\t\t\t\t? customerName\n\t\t\t\t\t\t: __( 'N/A', 'woocommerce-payments' ),\n\t\t\t},\n\t\t\tcustomer_email: {\n\t\t\t\tvalue: txn.customer_email,\n\t\t\t\tdisplay:\n\t\t\t\t\t! isFinancingType && ! isReaderFee && ! isNetworkCosts\n\t\t\t\t\t\t? customerEmail\n\t\t\t\t\t\t: __( 'N/A', 'woocommerce-payments' ),\n\t\t\t},\n\t\t\tcustomer_country: {\n\t\t\t\tvalue: txn.customer_country,\n\t\t\t\tdisplay: clickable( txn.customer_country ),\n\t\t\t},\n\t\t\tcustomer_currency: {\n\t\t\t\tvalue: txn.customer_currency.toUpperCase(),\n\t\t\t\tdisplay: clickable( txn.customer_currency.toUpperCase() ),\n\t\t\t},\n\t\t\tcustomer_amount: formatCustomerAmount(),\n\t\t\tcurrency: {\n\t\t\t\tvalue: txn.currency.toUpperCase(),\n\t\t\t\tdisplay: clickable( txn.currency.toUpperCase() ),\n\t\t\t},\n\t\t\tamount: formatAmount(),\n\t\t\t// fees should display as negative. The format $-9.99 is determined by WC-Admin\n\t\t\tfees: formatFees(),\n\t\t\tnet: {\n\t\t\t\tvalue: formatExportAmount( txn.net, currency ),\n\t\t\t\tdisplay: clickable(\n\t\t\t\t\tformatExplicitCurrency( txn.net, currency )\n\t\t\t\t),\n\t\t\t},\n\t\t\trisk_level: {\n\t\t\t\tvalue: calculateRiskMapping( txn.risk_level ),\n\t\t\t\tdisplay: clickable( riskLevel ),\n\t\t\t},\n\t\t\tdeposit_id: {\n\t\t\t\tvalue: txn.deposit_id,\n\t\t\t\tdisplay: txn.deposit_id,\n\t\t\t},\n\t\t\tdeposit: { value: txn.available_on, display: deposit },\n\t\t\tdeposit_status: {\n\t\t\t\tvalue: depositStatus,\n\t\t\t\tdisplay: depositStatus,\n\t\t\t},\n\t\t};\n\n\t\treturn columnsToDisplay.map(\n\t\t\t( { key } ) => data[ key ] || { display: null }\n\t\t);\n\t} );\n\n\tconst searchedLabels =\n\t\tgetQuery().search &&\n\t\tgetQuery().search?.map( ( v ) => ( {\n\t\t\tkey: v,\n\t\t\tlabel: v,\n\t\t} ) );\n\n\tconst onSearchChange = ( values: Column[] ) => {\n\t\tupdateQueryString( {\n\t\t\tsearch: values.length\n\t\t\t\t? uniq( values.map( ( v ) => v.label ) )\n\t\t\t\t: undefined,\n\t\t} );\n\t};\n\n\tlet searchPlaceholder = wcpaySettings.isSubscriptionsActive\n\t\t? __(\n\t\t\t\t'Search by order number, subscription number, customer name, or billing email',\n\t\t\t\t'woocommerce-payments'\n\t\t  )\n\t\t: __(\n\t\t\t\t'Search by order number, customer name, or billing email',\n\t\t\t\t'woocommerce-payments'\n\t\t  );\n\n\tconst title = __( 'Transactions', 'woocommerce-payments' );\n\n\tconst downloadable = !! rows.length;\n\n\tconst { path } = getQuery();\n\tconst onExport = async () => {\n\t\trecordEvent( 'wcpay_csv_export_click', {\n\t\t\trow_type: 'transactions',\n\t\t\tsource: path,\n\t\t\texported_row_count: transactionsSummary.count,\n\t\t} );\n\n\t\tconst locale = wcSettings.locale.userLocale;\n\t\tconst userEmail = wcpaySettings.currentUserEmail;\n\t\tconst depositId = props.depositId;\n\n\t\tconst {\n\t\t\tdate_after: dateAfter,\n\t\t\tdate_before: dateBefore,\n\t\t\tdate_between: dateBetween,\n\t\t\tmatch,\n\t\t\tsearch,\n\t\t\ttype_is: typeIs,\n\t\t\ttype_is_not: typeIsNot,\n\t\t\tsource_device_is: sourceDeviceIs,\n\t\t\tsource_device_is_not: sourceDeviceIsNot,\n\t\t\tchannel_is: channelIs,\n\t\t\tchannel_is_not: channelIsNot,\n\t\t\tcustomer_country_is: customerCountryIs,\n\t\t\tcustomer_country_is_not: customerCountryIsNot,\n\t\t\trisk_level_is: riskLevelIs,\n\t\t\trisk_level_is_not: riskLevelIsNot,\n\t\t\tcustomer_currency_is: customerCurrencyIs,\n\t\t\tcustomer_currency_is_not: customerCurrencyIsNot,\n\t\t\tsource_is: sourceIs,\n\t\t\tsource_is_not: sourceIsNot,\n\t\t} = getQuery();\n\n\t\tconst exportRequestURL = getTransactionsCSVRequestURL( {\n\t\t\tuserEmail,\n\t\t\tlocale,\n\t\t\tdateAfter,\n\t\t\tdateBefore,\n\t\t\tdateBetween,\n\t\t\tmatch,\n\t\t\tsearch,\n\t\t\ttypeIs,\n\t\t\ttypeIsNot,\n\t\t\tsourceDeviceIs,\n\t\t\tsourceDeviceIsNot,\n\t\t\tcustomerCurrencyIs,\n\t\t\tcustomerCurrencyIsNot,\n\t\t\tsourceIs,\n\t\t\tsourceIsNot,\n\t\t\tchannelIs,\n\t\t\tchannelIsNot,\n\t\t\tcustomerCountryIs,\n\t\t\tcustomerCountryIsNot,\n\t\t\triskLevelIs,\n\t\t\triskLevelIsNot,\n\t\t\tdepositId,\n\t\t} );\n\n\t\tconst isFiltered =\n\t\t\t!! dateAfter ||\n\t\t\t!! dateBefore ||\n\t\t\t!! dateBetween ||\n\t\t\t!! sourceIs ||\n\t\t\t!! sourceIsNot ||\n\t\t\t!! search ||\n\t\t\t!! typeIs ||\n\t\t\t!! typeIsNot ||\n\t\t\t!! channelIs ||\n\t\t\t!! channelIsNot ||\n\t\t\t!! customerCountryIs ||\n\t\t\t!! customerCountryIsNot ||\n\t\t\t!! riskLevelIs ||\n\t\t\t!! riskLevelIsNot ||\n\t\t\t!! sourceDeviceIs ||\n\t\t\t!! sourceDeviceIsNot;\n\n\t\tconst confirmThreshold = 10000;\n\t\tconst confirmMessage = sprintf(\n\t\t\t__(\n\t\t\t\t\"You are about to export %d transactions. If you'd like to reduce the size of your export, you can use one or more filters. Would you like to continue?\",\n\t\t\t\t'woocommerce-payments'\n\t\t\t),\n\t\t\ttotalRows\n\t\t);\n\n\t\tif (\n\t\t\tisFiltered ||\n\t\t\ttotalRows < confirmThreshold ||\n\t\t\twindow.confirm( confirmMessage )\n\t\t) {\n\t\t\trequestReportExport( {\n\t\t\t\texportRequestURL,\n\t\t\t\texportFileAvailabilityEndpoint: transactionsDownloadEndpoint,\n\t\t\t\tuserEmail,\n\t\t\t} );\n\n\t\t\tcreateNotice(\n\t\t\t\t'success',\n\t\t\t\tsprintf(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'We’re processing your export. 🎉 The file will download automatically and be emailed to %s.',\n\t\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t\t),\n\t\t\t\t\tuserEmail\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t};\n\n\tif ( ! wcpaySettings.featureFlags.customSearch ) {\n\t\tsearchPlaceholder = __(\n\t\t\t'Search by customer name',\n\t\t\t'woocommerce-payments'\n\t\t);\n\t}\n\n\tconst isCurrencyFiltered = typeof getQuery().store_currency_is === 'string';\n\n\tconst isSingleCurrency =\n\t\t( transactionsSummary.store_currencies || [] ).length < 2;\n\n\t// initializing summary with undefined as we don't want to render the TableSummary component unless we have the data\n\tlet summary;\n\tconst isTransactionsSummaryDataLoaded =\n\t\ttransactionsSummary.count !== undefined &&\n\t\ttransactionsSummary.total !== undefined &&\n\t\tisSummaryLoading === false;\n\n\t// Generate summary only if the data has been loaded\n\tif ( isTransactionsSummaryDataLoaded ) {\n\t\tsummary = [\n\t\t\t{\n\t\t\t\tlabel: _n(\n\t\t\t\t\t'transaction',\n\t\t\t\t\t'transactions',\n\t\t\t\t\t// We've already checked that `.count` is not undefined, but TypeScript doesn't detect\n\t\t\t\t\t// that so we remove the `undefined` in the type manually.\n\t\t\t\t\ttransactionsSummary.count as number,\n\t\t\t\t\t'woocommerce-payments'\n\t\t\t\t),\n\t\t\t\tvalue: `${ applyThousandSeparator(\n\t\t\t\t\ttransactionsSummary.count as number\n\t\t\t\t) }`,\n\t\t\t},\n\t\t];\n\n\t\tconst hasTransactions = ( transactionsSummary.count as number ) > 0;\n\t\tif ( hasTransactions && ( isSingleCurrency || isCurrencyFiltered ) ) {\n\t\t\tsummary.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'total', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: `${ formatExplicitCurrency(\n\t\t\t\t\t\t// We've already checked that `.total` is not undefined, but TypeScript doesn't detect\n\t\t\t\t\t\t// that so we remove the `undefined` in the type manually.\n\t\t\t\t\t\ttransactionsSummary.total as number,\n\t\t\t\t\t\ttransactionsSummary.currency\n\t\t\t\t\t) }`,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'fees', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: `${ formatCurrency(\n\t\t\t\t\t\ttransactionsSummary.fees ?? 0,\n\t\t\t\t\t\ttransactionsSummary.currency\n\t\t\t\t\t) }`,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'net', 'woocommerce-payments' ),\n\t\t\t\t\tvalue: `${ formatExplicitCurrency(\n\t\t\t\t\t\ttransactionsSummary.net ?? 0,\n\t\t\t\t\t\ttransactionsSummary.currency\n\t\t\t\t\t) }`,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tconst showFilters = ! props.depositId;\n\tconst storeCurrencies =\n\t\ttransactionsSummary.store_currencies ||\n\t\t( isCurrencyFiltered ? [ getQuery().store_currency_is ?? '' ] : [] );\n\tconst customerCurrencies = transactionsSummary.customer_currencies || [];\n\tconst transactionSources = transactionsSummary.sources || [];\n\n\treturn (\n\t\t<Page>\n\t\t\t{ showFilters && (\n\t\t\t\t<TransactionsFilters\n\t\t\t\t\tstoreCurrencies={ storeCurrencies }\n\t\t\t\t\tcustomerCurrencies={ customerCurrencies }\n\t\t\t\t\ttransactionSources={ transactionSources }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TableCard\n\t\t\t\tclassName=\"transactions-list woocommerce-report-table has-search\"\n\t\t\t\ttitle={ title }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\trowsPerPage={ parseInt( getQuery().per_page ?? '', 10 ) || 25 }\n\t\t\t\ttotalRows={ totalRows }\n\t\t\t\theaders={ columnsToDisplay }\n\t\t\t\trows={ rows }\n\t\t\t\tsummary={ summary }\n\t\t\t\tquery={ getQuery() }\n\t\t\t\tonQueryChange={ onQueryChange }\n\t\t\t\tonColumnsChange={ onColumnsChange }\n\t\t\t\tactions={ [\n\t\t\t\t\t<Search\n\t\t\t\t\t\tallowFreeTextSearch={ true }\n\t\t\t\t\t\tinlineTags\n\t\t\t\t\t\tkey=\"search\"\n\t\t\t\t\t\tonChange={ onSearchChange }\n\t\t\t\t\t\tplaceholder={ searchPlaceholder }\n\t\t\t\t\t\tselected={ searchedLabels }\n\t\t\t\t\t\tshowClearButton={ true }\n\t\t\t\t\t\ttype={\n\t\t\t\t\t\t\twcpaySettings.featureFlags.customSearch\n\t\t\t\t\t\t\t\t? 'custom'\n\t\t\t\t\t\t\t\t: 'customers'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tautocompleter={ autocompleter }\n\t\t\t\t\t/>,\n\t\t\t\t\tdownloadable && (\n\t\t\t\t\t\t<DownloadButton\n\t\t\t\t\t\t\tkey=\"download\"\n\t\t\t\t\t\t\tisDisabled={ isLoading || isExportInProgress }\n\t\t\t\t\t\t\tisBusy={ isExportInProgress }\n\t\t\t\t\t\t\tonClick={ onExport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t] }\n\t\t\t/>\n\t\t</Page>\n\t);\n};\n\nexport default TransactionsList;\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n// Mapping of transaction types to display string.\nexport const displayType = {\n\tcharge: __( 'Charge', 'woocommerce-payments' ),\n\tpayment: __( 'Payment', 'woocommerce-payments' ),\n\tpayment_failure_refund: __(\n\t\t'Payment failure refund',\n\t\t'woocommerce-payments'\n\t),\n\tpayment_refund: __( 'Payment refund', 'woocommerce-payments' ),\n\trefund: __( 'Refund', 'woocommerce-payments' ),\n\trefund_failure: __( 'Refund failure', 'woocommerce-payments' ),\n\tdispute: __( 'Dispute', 'woocommerce-payments' ),\n\tdispute_reversal: __( 'Dispute reversal', 'woocommerce-payments' ),\n\tcard_reader_fee: __( 'Reader fee', 'woocommerce-payments' ),\n\tfinancing_payout: __( 'Loan disbursement', 'woocommerce-payments' ),\n\tfinancing_paydown: __( 'Loan repayment', 'woocommerce-payments' ),\n\tfee_refund: __( 'Fee refund', 'woocommerce-payments' ),\n\tnetwork_costs: __( 'Network costs', 'woocommerce-payments' ),\n};\n\n// Mapping of transaction device type string.\nexport const sourceDevice = {\n\tandroid: __( 'Android', 'woocommerce-payments' ),\n\tios: __( 'iPhone', 'woocommerce-payments' ),\n};\n\n// Mapping of transaction channel type string.\nexport const channel = {\n\tonline: __( 'Online store', 'woocommerce-payments' ),\n\tin_person: __( 'In-Person', 'woocommerce-payments' ),\n\tin_person_pos: __( 'In-Person (POS)', 'woocommerce-payments' ),\n};\n\n// Mapping of transaction risk level string.\nexport const riskLevel = {\n\t'0': __( 'Normal', 'woocommerce-payments' ),\n\t'1': __( 'Elevated', 'woocommerce-payments' ),\n\t'2': __( 'Highest', 'woocommerce-payments' ),\n};\n","/**\n * External dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * FLAG: PAYMENT_METHODS_LIST\n * New payment methods should be added here, the value should match the definition ID.\n */\nenum PAYMENT_METHOD_IDS {\n\tAFFIRM = 'affirm',\n\tAFTERPAY_CLEARPAY = 'afterpay_clearpay',\n\tALIPAY = 'alipay',\n\tAMAZON_PAY = 'amazon_pay',\n\tAPPLE_PAY = 'apple_pay',\n\tAU_BECS_DEBIT = 'au_becs_debit',\n\tBANCONTACT = 'bancontact',\n\tCARD = 'card',\n\tCARD_PRESENT = 'card_present',\n\tEPS = 'eps',\n\tGIROPAY = 'giropay',\n\tGOOGLE_PAY = 'google_pay',\n\tGRABPAY = 'grabpay',\n\tIDEAL = 'ideal',\n\tKLARNA = 'klarna',\n\tLINK = 'link',\n\tMULTIBANCO = 'multibanco',\n\tP24 = 'p24',\n\tSEPA_DEBIT = 'sepa_debit',\n\tSOFORT = 'sofort',\n\tWECHAT_PAY = 'wechat_pay',\n}\n\nexport enum PAYMENT_METHOD_BRANDS {\n\tAMEX = 'amex',\n\tCARTES_BANCAIRES = 'cartes_bancaires',\n\tDINERS = 'diners',\n\tDISCOVER = 'discover',\n\tEFTPOS_AU = 'eftpos_au',\n\tJCB = 'jcb',\n\tMASTERCARD = 'mastercard',\n\tUNIONPAY = 'unionpay',\n\tVISA = 'visa',\n}\n\n// This constant is used for rendering tooltip titles for \"payment methods\" in transaction list and details pages.\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const TRANSACTION_PAYMENT_METHOD_TITLES = {\n\tach_credit_transfer: __( 'ACH Credit Transfer', 'woocommerce-payments' ),\n\tach_debit: __( 'ACH Debit', 'woocommerce-payments' ),\n\tacss_debit: __( 'ACSS Debit', 'woocommerce-payments' ),\n\tamazon_pay: __( 'Amazon Pay', 'woocommerce-payments' ),\n\tamex: __( 'American Express', 'woocommerce-payments' ),\n\tcard: __( 'Card Payment', 'woocommerce-payments' ),\n\tcard_present: __( 'In-Person Card Payment', 'woocommerce-payments' ),\n\tcartes_bancaires: __( 'Cartes Bancaires', 'woocommerce-payments' ),\n\tdiners: __( 'Diners Club', 'woocommerce-payments' ),\n\tdiscover: __( 'Discover', 'woocommerce-payments' ),\n\teftpos_au: __( 'eftpos', 'woocommerce-payments' ),\n\tjcb: __( 'JCB', 'woocommerce-payments' ),\n\tmastercard: __( 'Mastercard', 'woocommerce-payments' ),\n\tstripe_account: __( 'Stripe Account', 'woocommerce-payments' ),\n\tunionpay: __( 'Union Pay', 'woocommerce-payments' ),\n\tvisa: __( 'Visa', 'woocommerce-payments' ),\n};\n\nexport default PAYMENT_METHOD_IDS;\n","/**\n * Internal dependencies\n */\nimport { TRANSACTION_PAYMENT_METHOD_TITLES } from 'wcpay/constants/payment-method';\n\ntype TransactionPaymentMethodId =\n\t| keyof typeof TRANSACTION_PAYMENT_METHOD_TITLES\n\t| string;\n\n/**\n * Gets the display title for a payment method in the transaction context.\n *\n * @param {TransactionPaymentMethodId}        paymentMethodId - The ID of the payment method or transaction type\n * @param {Record<string, { title: string }>} [config]        - Optional payment method configuration. Defaults to window.wooPaymentsPaymentMethodsConfig\n * @return {string} The display title for the payment method\n */\nexport const getTransactionPaymentMethodTitle = (\n\tpaymentMethodId: TransactionPaymentMethodId,\n\tconfig = window?.wooPaymentsPaymentMethodsConfig\n): string => {\n\treturn (\n\t\tconfig?.[ paymentMethodId ]?.title ||\n\t\tTRANSACTION_PAYMENT_METHOD_TITLES[\n\t\t\tpaymentMethodId as keyof typeof TRANSACTION_PAYMENT_METHOD_TITLES\n\t\t] ||\n\t\tpaymentMethodId\n\t);\n};\n","/** @format **/\n\n/**\n * External dependencies\n */\nimport { sumBy, get } from 'lodash';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Dispute } from 'types/disputes';\nimport { Charge, ChargeAmounts } from 'types/charges';\nimport { PaymentIntent } from '../../types/payment-intents';\n\nconst failedOutcomeTypes = [ 'issuer_declined', 'invalid' ];\nconst blockedOutcomeTypes = [ 'blocked' ];\n\nexport const getDisputeStatus = (\n\tdispute: null | Pick< Dispute, 'status' > = <Dispute>{}\n): string => dispute?.status || '';\n\nexport const getChargeOutcomeType = ( charge: Charge = <Charge>{} ): string =>\n\tcharge.outcome ? charge.outcome.type : '';\n\nexport const isChargeSuccessful = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.status === 'succeeded' && charge.paid === true;\n\nexport const isChargeFailed = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.status === 'failed' &&\n\tfailedOutcomeTypes.includes( getChargeOutcomeType( charge ) );\n\nexport const isChargeBlocked = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.status === 'failed' &&\n\tblockedOutcomeTypes.includes( getChargeOutcomeType( charge ) );\n\nexport const isChargeCaptured = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.captured === true;\n\nexport const isChargeDisputed = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.disputed === true;\n\nexport const isChargeRefunded = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.amount_refunded > 0;\n\nexport const isChargeRefundFailed = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.refunded === false && get( charge, 'refunds.data', [] ).length > 0;\n\nexport const isChargeFullyRefunded = ( charge: Charge = <Charge>{} ): boolean =>\n\tcharge.refunded === true;\n\nexport const isChargePartiallyRefunded = (\n\tcharge: Charge = <Charge>{}\n): boolean => isChargeRefunded( charge ) && ! isChargeFullyRefunded( charge );\n\nconst getFraudMetaBoxType = (\n\tcharge?: Charge,\n\tpaymentIntent?: PaymentIntent\n): string =>\n\tcharge?.order?.fraud_meta_box_type ||\n\tpaymentIntent?.order?.fraud_meta_box_type ||\n\t'';\n\nexport const isOnHoldByFraudTools = (\n\tcharge?: Charge,\n\tpaymentIntent?: PaymentIntent\n): boolean => {\n\tconst fraudMetaBoxType = getFraudMetaBoxType( charge, paymentIntent );\n\n\tif ( ! fraudMetaBoxType ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\tpaymentIntent?.status === 'requires_capture' &&\n\t\tfraudMetaBoxType === 'review'\n\t);\n};\n\nexport const isBlockedByFraudTools = (\n\tcharge?: Charge,\n\tpaymentIntent?: PaymentIntent\n): boolean => {\n\tconst fraudMetaBoxType = getFraudMetaBoxType( charge, paymentIntent );\n\n\tif ( ! fraudMetaBoxType ) {\n\t\treturn false;\n\t}\n\n\treturn [ 'block', 'review_blocked' ].includes( fraudMetaBoxType );\n};\n\nconst getPaymentIntentDerivedStatus = (\n\tpaymentIntent?: PaymentIntent\n): string | undefined =>\n\tpaymentIntent?.status === 'requires_capture' ? 'authorized' : undefined;\n\nexport const getChargeStatus = (\n\tcharge: Charge = <Charge>{},\n\tpaymentIntent?: PaymentIntent\n): string => {\n\tif ( isOnHoldByFraudTools( charge, paymentIntent ) ) {\n\t\treturn 'fraud_outcome_review';\n\t}\n\n\tif ( isBlockedByFraudTools( charge, paymentIntent ) ) {\n\t\treturn 'fraud_outcome_block';\n\t}\n\n\tif ( isChargeFailed( charge ) ) {\n\t\treturn 'failed';\n\t}\n\tif ( isChargeBlocked( charge ) ) {\n\t\treturn 'blocked';\n\t}\n\tif ( isChargeDisputed( charge ) ) {\n\t\treturn 'disputed_' + getDisputeStatus( charge.dispute );\n\t}\n\tif ( isChargePartiallyRefunded( charge ) ) {\n\t\treturn 'refunded_partial';\n\t}\n\tif ( isChargeFullyRefunded( charge ) ) {\n\t\treturn 'refunded_full';\n\t}\n\tif ( isChargeRefundFailed( charge ) ) {\n\t\treturn 'refund_failed';\n\t}\n\tconst paymentIntentStatus = getPaymentIntentDerivedStatus( paymentIntent );\n\tif ( paymentIntentStatus ) {\n\t\treturn paymentIntentStatus;\n\t}\n\tif ( isChargeSuccessful( charge ) ) {\n\t\treturn isChargeCaptured( charge ) ? 'paid' : 'authorized';\n\t}\n\treturn charge.status;\n};\n\n/**\n * Envelope fee totals can't be trusted if its declared currency disagrees\n * with the charge's balance_transaction — a mismatch could shift amounts\n * by 100× via zero-decimal currency rules, so callers fall back to legacy\n * fields. Missing `balance_transaction.currency` is not a mismatch; the\n * envelope's own currency stands.\n */\nexport const canUseFeeBreakdownData = ( charge: Charge ): boolean => {\n\tconst feeTotal = charge.fee_breakdown_v1?.totals?.fee;\n\tif ( ! feeTotal ) {\n\t\treturn false;\n\t}\n\n\tconst chargeCurrency = charge.balance_transaction?.currency;\n\tif ( ! chargeCurrency ) {\n\t\treturn true;\n\t}\n\n\treturn feeTotal.currency.toLowerCase() === chargeCurrency.toLowerCase();\n};\n\n/**\n * Calculates display values for charge amounts in settlement currency.\n *\n * @param {Charge} charge The full charge object.\n * @return {ChargeAmounts} An object, containing the `currency`, `amount`, `net`, `fee`, and `refunded` amounts in Stripe format (*100).\n */\nexport const getChargeAmounts = ( charge: Charge ): ChargeAmounts => {\n\t// FEE_BREAKDOWN_FORK_PATCH: remove when envelope is the only path.\n\t// `balance.fee` below must represent the *full* Stripe deduction in\n\t// store currency (pre-tax fee + tax), because the downstream\n\t// `net = amount - fee - refunded` needs to absorb BOTH components to\n\t// match `totals.net.amount` — and that formula has to stay in charge\n\t// of later-arriving customer-refunds and dispute adjustments, which\n\t// the envelope doesn't cover. Using only `totals.fee.amount` here\n\t// (pre-tax) would drop the tax from the net calculation.\n\tconst breakdown = charge.fee_breakdown_v1;\n\tif (\n\t\tcanUseFeeBreakdownData( charge ) &&\n\t\tbreakdown?.totals?.net &&\n\t\tbreakdown.totals.gross\n\t) {\n\t\t// Envelope is authoritative for the charge's *current* state:\n\t\t// the server has already folded customer-refunds, dispute fees,\n\t\t// and dispute balance adjustments into `totals.fee` / `totals.net`.\n\t\t// No client-side subtraction needed. `refunded` is derived for\n\t\t// backward compatibility with consumers that still read it.\n\t\t// Prefer the server-pre-summed fee_plus_tax; fall back to fee+tax\n\t\t// for older servers.\n\t\tconst totalFee =\n\t\t\tbreakdown.totals.fee_plus_tax?.amount ??\n\t\t\tbreakdown.totals.fee.amount + ( breakdown.totals.tax?.amount ?? 0 );\n\t\treturn {\n\t\t\tcurrency: breakdown.totals.fee.currency.toLowerCase(),\n\t\t\tamount: breakdown.totals.gross.amount,\n\t\t\tfee: totalFee,\n\t\t\tnet: breakdown.totals.net.amount,\n\t\t\trefunded:\n\t\t\t\tbreakdown.totals.gross.amount -\n\t\t\t\tbreakdown.totals.net.amount -\n\t\t\t\ttotalFee,\n\t\t};\n\t}\n\n\t// Legacy fallback path: the envelope is absent, currencies mismatch,\n\t// or the charge predates the envelope rollout. Reconstruct net the\n\t// old way, absorbing customer refunds and dispute adjustments here.\n\tconst balance = charge.balance_transaction\n\t\t? {\n\t\t\t\tcurrency: charge.balance_transaction.currency,\n\t\t\t\tamount: charge.balance_transaction.amount,\n\t\t\t\tfee: charge.balance_transaction.fee,\n\t\t\t\trefunded: 0,\n\t\t\t\tnet: 0,\n\t\t  }\n\t\t: {\n\t\t\t\tcurrency: charge.currency,\n\t\t\t\tamount: charge.amount,\n\t\t\t\tfee: charge.application_fee_amount,\n\t\t\t\trefunded: 0,\n\t\t\t\tnet: 0,\n\t\t  };\n\n\tif ( isChargeRefunded( charge ) ) {\n\t\tbalance.refunded -= sumBy(\n\t\t\tcharge.refunds?.data,\n\t\t\t'balance_transaction.amount'\n\t\t);\n\t}\n\n\tif ( isChargeDisputed( charge ) && typeof charge.dispute !== 'undefined' ) {\n\t\tbalance.fee += sumBy( charge.dispute?.balance_transactions, 'fee' );\n\t\tbalance.refunded -= sumBy(\n\t\t\tcharge.dispute?.balance_transactions,\n\t\t\t'amount'\n\t\t);\n\t}\n\n\tbalance.net = balance.amount - balance.fee - balance.refunded;\n\n\treturn balance;\n};\n\n/**\n * Displays the transaction's sales channel: Online store | In-Person | In-Person (POS).\n * This method is called on the list of transactions page.\n *\n * In the list of transactions, the type holds the brand of the payment method, so we aren't passing it.\n * Instead, we pass the transaction.channel directly, which might be in_person|in_person_pos|online.\n *\n * @param {string} channel The transaction channel.\n * @return {string} Online store, In-Person, or In-Person (POS).\n */\nexport const getTransactionChannel = ( channel: string ): string => {\n\tswitch ( channel ) {\n\t\tcase 'in_person':\n\t\t\treturn __( 'In-Person', 'woocommerce-payments' );\n\t\tcase 'in_person_pos':\n\t\t\treturn __( 'In-Person (POS)', 'woocommerce-payments' );\n\t\tdefault:\n\t\t\treturn __( 'Online store', 'woocommerce-payments' );\n\t}\n};\n\n/**\n * Displays the sales channel based on the charge data from Stripe and metadata for a transaction: Online store | In-Person | In-Person (POS).\n * This method is called in the individual transaction page.\n *\n * In the individual transaction page, we are getting the data from Stripe, so we pass the charge.type\n * which can be card_present or interac_present for In-Person payments. In addition, we pass the transaction metadata\n * whose ipp_channel value can be mobile_store_management or mobile_pos that indicates whether the channel is from store\n * management or POS in the mobile apps.\n *\n * @param {string}              type     The transaction charge type, which can be card_present or interac_present for In-Person payments.\n * @param {Record<string, any>} metadata The transaction metadata, which may include ipp_channel indicating the channel source.\n * @return {string} Returns 'Online store', 'In-Person', or 'In-Person (POS)' based on the transaction type and metadata.\n */\nexport const getChargeChannel = (\n\ttype: string,\n\tmetadata: Record< string, any >\n): string => {\n\tif ( type === 'card_present' || type === 'interac_present' ) {\n\t\tif ( metadata?.ipp_channel === 'mobile_pos' ) {\n\t\t\treturn __( 'In-Person (POS)', 'woocommerce-payments' );\n\t\t}\n\t\treturn __( 'In-Person', 'woocommerce-payments' );\n\t}\n\n\treturn __( 'Online store', 'woocommerce-payments' );\n};\n\n/**\n * Returns the bank name for a charge.\n *\n * @param {Charge} charge - The charge to get the bank name for.\n *\n * @return {string | null} The bank name for the charge.\n */\nexport const getBankName = ( charge: Charge ): string | null => {\n\tconst { payment_method_details: paymentMethodDetails } = charge;\n\tconst methodType = paymentMethodDetails?.type?.toLowerCase();\n\n\t// For card payments, get the issuer from card details\n\tif ( methodType === 'card' && paymentMethodDetails?.type === 'card' ) {\n\t\t// Type assertion is safe here because we've checked the type\n\t\tconst cardDetails = paymentMethodDetails.card as {\n\t\t\tissuer?: string;\n\t\t};\n\t\treturn cardDetails.issuer || null;\n\t}\n\n\t// For BNPL (affirm, afterpay_clearpay, klarna) disputes are all handled directly through the BNPL provider.\n\t// For example, with an Affirm dispute, the `issuer` is actually Affirm\n\tswitch ( methodType ) {\n\t\tcase 'affirm':\n\t\t\treturn 'Affirm';\n\t\tcase 'afterpay_clearpay':\n\t\t\treturn 'Afterpay / Clearpay';\n\t\tcase 'klarna':\n\t\t\treturn 'Klarna';\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","/**\n * External dependencies\n */\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\n\ninterface SuggestionMatch {\n\tsuggestionBeforeMatch: string;\n\tsuggestionMatch: string;\n\tsuggestionAfterMatch: string;\n}\n\n/**\n * Parse a string suggestion, split apart by where the first matching query is.\n * Used to display matched partial in bold.\n *\n * @param {string} suggestion The item's label as returned from the API.\n * @param {string} query      The search term to match in the string.\n * @return {Object} A list in three parts: before, match, and after.\n */\nexport default function computeSuggestionMatch(\n\tsuggestion: string,\n\tquery: string\n): SuggestionMatch | null {\n\tif ( ! query ) {\n\t\treturn null;\n\t}\n\tconst indexOfMatch = suggestion\n\t\t.toLocaleLowerCase()\n\t\t.indexOf( query.toLocaleLowerCase() );\n\n\tif ( indexOfMatch === -1 ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tsuggestionBeforeMatch: decodeEntities(\n\t\t\tsuggestion.substring( 0, indexOfMatch )\n\t\t),\n\t\tsuggestionMatch: decodeEntities(\n\t\t\tsuggestion.substring( indexOfMatch, indexOfMatch + query.length )\n\t\t),\n\t\tsuggestionAfterMatch: decodeEntities(\n\t\t\tsuggestion.substring( indexOfMatch + query.length )\n\t\t),\n\t};\n}\n","/** @format */\n\nexport const getResourceId = ( identifier ) => {\n\treturn JSON.stringify( identifier, Object.keys( identifier ).sort() );\n};\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports[\"default\"]=_default;var _react=_interopRequireDefault(require(\"react\")),_excluded=[\"size\",\"onClick\",\"icon\",\"className\"];function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],0<=b.indexOf(c)||(e[c]=a[c]);return e}function _default(a){var b=a.size,c=void 0===b?24:b,d=a.onClick,e=a.icon,f=a.className,g=_objectWithoutProperties(a,_excluded),h=[\"gridicon\",\"gridicons-sync\",f,!1,!1,!1].filter(Boolean).join(\" \");return _react[\"default\"].createElement(\"svg\",_extends({className:h,height:c,width:c,onClick:d},g,{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\"}),_react[\"default\"].createElement(\"g\",null,_react[\"default\"].createElement(\"path\",{d:\"M23.5 13.5l-3.086 3.086L19 18l-4.5-4.5 1.414-1.414L18 14.172V12c0-3.308-2.692-6-6-6V4a8 8 0 018 8v2.172l2.086-2.086L23.5 13.5zM6 12V9.828l2.086 2.086L9.5 10.5 5 6 3.586 7.414.5 10.5l1.414 1.414L4 9.828V12a8 8 0 008 8v-2c-3.308 0-6-2.692-6-6z\"})))}\n"],"names":["SVG","xmlns","viewBox","children","Path","d","ClickableCell","href","linkProps","_jsx","Link","className","tabIndex","_Fragment","getDetailsURL","id","parentSegment","getAdminUrl","page","path","DetailsLink","InfoOutlineIcon","size","DownloadButton","isDisabled","isBusy","onClick","_jsxs","Button","disabled","__next40pxDefaultSize","width","height","fill","stroke","strokeWidth","__","props","order","number","url","type","Pill","classes","clsx","includes","WC_Pill","riskOrder","colorMappings","normal","elevated","highest","not_assessed","calculateRiskMapping","risk","riskLevel","riskMappings","RiskLevel","unknown","nounToUse","documents","deposits","disputes","loans","payments","transactions","verbToUse","getNoticeContent","currentPage","isDetailsView","isTestModeOnboarding","isDevMode","interpolateComponents","mixedString","sprintf","components","strong","wpEnvLink","ExternalLink","learnMoreLink","recordEvent","_n","settingsLink","getPaymentSettingsUrl","TestModeNotice","actions","isInTestMode","BannerNotice","status","isDismissible","isInDevMode","SET_TRANSACTIONS","SET_ERROR_FOR_TRANSACTIONS","SET_TRANSACTIONS_SUMMARY","SET_ERROR_FOR_TRANSACTIONS_SUMMARY","SET_FRAUD_OUTCOME_TRANSACTIONS","SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS","SET_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY","SET_ERROR_FOR_FRAUD_OUTCOME_TRANSACTIONS_SUMMARY","updateTransactions","query","data","TYPES","updateErrorForTransactions","error","updateTransactionsSummary","updateErrorForTransactionsSummary","updateFraudOutcomeTransactions","updateErrorForFraudOutcomeTransactions","updateFraudOutcomeTransactionsSummary","updateErrorForFraudOutcomeTransactionsSummary","useTransactions","paged","per_page","perPage","orderby","match","date_before","dateBefore","date_after","dateAfter","date_between","dateBetween","type_is","typeIs","type_is_not","typeIsNot","type_is_in","typeIsIn","source_device_is","sourceDeviceIs","source_device_is_not","sourceDeviceIsNot","channel_is","channelIs","channel_is_not","channelIsNot","customer_country_is","customerCountryIs","customer_country_is_not","customerCountryIsNot","risk_level_is","riskLevelIs","risk_level_is_not","riskLevelIsNot","store_currency_is","storeCurrencyIs","customer_currency_is","customerCurrencyIs","customer_currency_is_not","customerCurrencyIsNot","source_is","sourceIs","source_is_not","sourceIsNot","loan_id_is","loanIdIs","search","depositId","useSelect","select","getTransactions","getTransactionsError","isResolving","STORE_NAME","Number","isNaN","parseInt","sort","a","b","moment","diff","transactionsError","isLoading","JSON","stringify","useTransactionsSummary","getTransactionsSummary","transactionsSummary","useFraudOutcomeTransactions","additionalStatus","getFraudOutcomeTransactions","getFraudOutcomeTransactionsError","useFraudOutcomeTransactionsSummary","getFraudOutcomeTransactionsSummary","getFraudOutcomeTransactionsSummaryError","transactionsSummaryError","defaultState","summary","fraudProtection","review","block","receiveTransactions","state","index","getResourceId","formatQueryFilters","user_email","userEmail","formatDateValue","deposit_id","user_timezone","getUserTimeZone","locale","addQueryArgs","NAMESPACE","pagesize","direction","results","apiFetch","e","controls","dispatch","transactionsDownloadEndpoint","getTransactionsCSVRequestURL","additional_status","code","summaryFallback","count","total","result","getFraudOutcomeTransactionsExport","getTransactionsState","getTransactionsForQuery","getTransactionsSummaryForQuery","getTransactionsSummaryError","getFraudOutcomeTransactionsForQuery","getFraudOutcomeTransactionsSummaryForQuery","TRANSACTIONS_STORE_NAME","store","createReduxStore","reducer","combineReducers","selectors","resolvers","register","displayType","deposit","withdrawal","depositStatusLabels","paid","deducted","pending","in_transit","canceled","failed","payoutFailureMessages","insufficient_funds","bank_account_restricted","debit_not_authorized","invalid_card","declined","invalid_transaction","refer_to_card_issuer","unsupported_card","lost_or_stolen_card","invalid_issuer","expired_card","could_not_process","invalid_account_number","incorrect_account_holder_name","account_closed","no_account","exceeds_amount_limit","account_frozen","issuer_unavailable","invalid_currency","incorrect_account_type","incorrect_account_holder_details","bank_ownership_changed","exceeds_count_limit","incorrect_account_holder_address","incorrect_account_holder_tax_id","invalid_account_number_length","usePersistedColumnVisibility","columnPrefsKey","allColumns","updateUserPreferences","userPrefs","useUserPreferences","userPrefHiddenColumns","onColumnsChange","shownColumns","hiddenColumns","map","column","key","filter","columnsToDisplay","useMemo","Array","isArray","visible","useReportExport","isExportInProgress","setIsExportInProgress","useState","createNotice","useDispatch","timeoutIdRef","useRef","async","pollForFile","checkFileURL","interval","retryCount","onSuccess","onError","current","setTimeout","nextRetryCount","exportedFileURLResponse","method","download_url","link","document","createElement","click","reason","useEffect","clearTimeout","requestReportExport","exportRequestURL","exportFileAvailabilityEndpoint","response","export_id","alior_bank","bank_millennium","bank_nowy_bfg_sa","bank_pekao_sa","banki_spbdzielcze","blik","bnp_paribas","boz","citi_handlowy","credit_agricole","envelobank","etransfer_pocztowy24","getin_bank","ideabank","ing","inteligo","mbank_mtransfer","nest_przelew","noble_pay","pbac_z_ipko","plus_bank","santander_przelew24","tmobile_usbugi_bankowe","toyota_bank","volkswagen_bank","Deposit","dateAvailable","depositUrl","formattedDateAvailable","formatDateTimeFromString","ClickTooltip","content","buttonIcon","ConversionIndicator","amount","currency","baseCurrency","Tooltip","text","formatExplicitCurrency","placement","style","SyncIcon","ConvertedAmount","fromAmount","fromCurrency","formattedCurrency","name","options","term","search_term","isDebounced","getOptionIdentifier","option","label","getOptionKeywords","getFreeTextOptions","value","getOptionLabel","computeSuggestionMatch","suggestionBeforeMatch","suggestionMatch","suggestionAfterMatch","getOptionCompletion","transactionTypesOptions","Object","entries","el","transactionSourceDeviceOptions","sourceDevice","transactionChannelOptions","channel","transactionRiskLevelOptions","transactionCustomerCounryOptions","wcSettings","countries","TransactionsFilters","storeCurrencies","customerCurrencies","transactionSources","advancedFilters","getAdvancedFilters","customerCurrencyOptions","transactionSourceOptions","wooCommerceVersionString","getSetting","wooCommerceVersion","parseFloat","title","filters","date","labels","add","remove","rule","rules","input","component","customer_currency","_x","source","source_device","customer_country","risk_level","loanSelectionOptions","wcpaySettings","accountLoans","loanDefinition","loanDefinitionSplitted","split","length","currencyCode","formatCurrencyName","getTransactionPaymentMethodTitle","getFilters","depositCurrencyOptions","showDepositCurrencyFilter","param","staticParams","showFilters","defaultValue","ReportFilters","showDatePicker","getQuery","onAdvancedFilterAction","event","getPaymentSourceDetails","txn","source_identifier","Fragment","p24BankList","getSourceDeviceIcon","tooltipDescription","HoverTooltip","isVisible","isSummaryLoading","includeDeposit","includeSubscription","isSubscriptionsActive","isLeftAligned","screenReaderLabel","required","defaultOrder","cellClassName","isSortable","defaultSort","isNumeric","Boolean","getColumns","totalRows","rows","detailsURL","payment_intent_id","charge_id","transaction_id","metadata","charge_type","clickable","orderUrl","OrderLink","orderSubscriptions","subscriptions","subscriptionsValue","subscription","join","i","all","customerName","customer_url","customer_name","customerEmail","customer_email","toUpperCase","dataType","isFinancingType","indexOf","isReaderFee","isNetworkCosts","available_on","depositStatus","deposit_status","accountCountry","accountStatus","country","display","includeTime","getTransactionChannel","formatStringValue","toLowerCase","customer_amount","formatExportAmount","formatCurrency","formatAmount","fees","formatFees","isCardReader","net","searchedLabels","v","searchPlaceholder","downloadable","featureFlags","customSearch","isCurrencyFiltered","isSingleCurrency","store_currencies","undefined","applyThousandSeparator","push","customer_currencies","sources","Page","TableCard","rowsPerPage","headers","onQueryChange","Search","allowFreeTextSearch","inlineTags","onChange","values","updateQueryString","uniq","placeholder","selected","showClearButton","autocompleter","row_type","exported_row_count","userLocale","currentUserEmail","isFiltered","confirmMessage","window","confirm","charge","payment","payment_failure_refund","payment_refund","refund","refund_failure","dispute","dispute_reversal","card_reader_fee","financing_payout","financing_paydown","fee_refund","network_costs","android","ios","online","in_person","in_person_pos","TRANSACTION_PAYMENT_METHOD_TITLES","ach_credit_transfer","ach_debit","acss_debit","amazon_pay","amex","card","card_present","cartes_bancaires","diners","discover","eftpos_au","jcb","mastercard","stripe_account","unionpay","visa","paymentMethodId","config","wooPaymentsPaymentMethodsConfig","failedOutcomeTypes","blockedOutcomeTypes","getChargeOutcomeType","outcome","isChargeDisputed","disputed","isChargeRefunded","amount_refunded","isChargeFullyRefunded","refunded","getFraudMetaBoxType","paymentIntent","fraud_meta_box_type","isOnHoldByFraudTools","fraudMetaBoxType","getChargeStatus","isBlockedByFraudTools","isChargeFailed","isChargeBlocked","getDisputeStatus","isChargePartiallyRefunded","isChargeRefundFailed","get","paymentIntentStatus","getPaymentIntentDerivedStatus","isChargeSuccessful","isChargeCaptured","captured","canUseFeeBreakdownData","feeTotal","fee_breakdown_v1","totals","fee","chargeCurrency","balance_transaction","getChargeAmounts","breakdown","gross","totalFee","fee_plus_tax","tax","balance","application_fee_amount","sumBy","refunds","balance_transactions","getChargeChannel","ipp_channel","getBankName","payment_method_details","paymentMethodDetails","methodType","issuer","suggestion","indexOfMatch","toLocaleLowerCase","decodeEntities","substring","identifier","keys","exports","c","f","icon","g","_objectWithoutPropertiesLoose","getOwnPropertySymbols","prototype","propertyIsEnumerable","call","_objectWithoutProperties","_excluded","h","_react","_extends","__esModule","default","assign","bind","arguments","hasOwnProperty","apply","this"],"sourceRoot":""}

Directory Contents

Dirs: 0 × Files: 47
Name Size Perms Modified Actions
9.89 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
38.00 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
12.14 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
68.22 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
27.38 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
234.26 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
10.86 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
34.88 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
11.20 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
41.77 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
1.85 MB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
666 B lrw-r--r-- 2026-07-01 08:33:53
Edit Download
4.59 MB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
52.01 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
181.38 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
11.53 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
46.02 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
14.16 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
61.69 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
7.78 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
16.18 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
9.38 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
40.14 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
27.60 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
123.34 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
21.87 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
101.16 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
4.78 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
18.56 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
5.44 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
21.22 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
21.70 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
85.33 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
25.87 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
98.34 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
276.45 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
886.67 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
23.00 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
76.46 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
30.80 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
103.36 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
61.79 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
233.81 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
14.22 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
49.02 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
16.31 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
71.41 KB lrw-r--r-- 2026-07-01 08:33:53
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI