/*! elementor - v3.18.0 - 20-12-2023 */ .elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}/** * Internal dependencies */ import { buildTermsTree } from '../utils'; const list = [ { id: 1, name: 'Apricots', parent: 0 }, { id: 2, name: 'Clementine', parent: 0 }, { id: 3, name: 'Elderberry', parent: 2 }, { id: 4, name: 'Guava', parent: 2 }, { id: 5, name: 'Lychee', parent: 3 }, { id: 6, name: 'Mulberry', parent: 0 }, { id: 7, name: 'Tamarind', parent: 5 }, ]; describe( 'buildTermsTree', () => { test( 'should return an empty array on empty input', () => { const tree = buildTermsTree( [] ); expect( tree ).toEqual( [] ); } ); test( 'should return a flat array when there are no parent relationships', () => { const tree = buildTermsTree( [ { id: 1, name: 'Apricots', parent: 0 }, { id: 2, name: 'Clementine', parent: 0 }, ] ); expect( tree ).toEqual( [ { id: 1, name: 'Apricots', parent: 0, breadcrumbs: [], children: [], }, { id: 2, name: 'Clementine', parent: 0, breadcrumbs: [], children: [], }, ] ); } ); test( 'should return a tree of items', () => { const tree = buildTermsTree( list ); expect( tree ).toEqual( [ { id: 1, name: 'Apricots', parent: 0, breadcrumbs: [], children: [], }, { id: 2, name: 'Clementine', parent: 0, breadcrumbs: [], children: [ { id: 3, name: 'Elderberry', parent: 2, breadcrumbs: [ 'Clementine' ], children: [ { id: 5, name: 'Lychee', parent: 3, breadcrumbs: [ 'Clementine', 'Elderberry' ], children: [ { id: 7, name: 'Tamarind', parent: 5, breadcrumbs: [ 'Clementine', 'Elderberry', 'Lychee', ], children: [], }, ], }, ], }, { id: 4, name: 'Guava', parent: 2, breadcrumbs: [ 'Clementine' ], children: [], }, ], }, { id: 6, name: 'Mulberry', parent: 0, breadcrumbs: [], children: [], }, ] ); } ); test( 'should return a tree of items, with orphan categories appended to the end', () => { const filteredList = [ { id: 1, name: 'Apricots', parent: 0 }, { id: 2, name: 'Clementine', parent: 0 }, { id: 4, name: 'Guava', parent: 2 }, { id: 5, name: 'Lychee', parent: 3 }, { id: 6, name: 'Mulberry', parent: 0 }, ]; const tree = buildTermsTree( filteredList, list ); expect( tree ).toEqual( [ { id: 1, name: 'Apricots', parent: 0, breadcrumbs: [], children: [], }, { id: 2, name: 'Clementine', parent: 0, breadcrumbs: [], children: [ { id: 4, name: 'Guava', parent: 2, breadcrumbs: [ 'Clementine' ], children: [], }, ], }, { id: 6, name: 'Mulberry', parent: 0, breadcrumbs: [], children: [], }, { id: 5, name: 'Lychee', parent: 3, breadcrumbs: [ 'Clementine', 'Elderberry' ], children: [], }, ] ); } ); test( 'should return a tree of items, with orphan categories appended to the end, with children of thier own', () => { const filteredList = [ { id: 1, name: 'Apricots', parent: 0 }, { id: 3, name: 'Elderberry', parent: 2 }, { id: 4, name: 'Guava', parent: 2 }, { id: 5, name: 'Lychee', parent: 3 }, { id: 6, name: 'Mulberry', parent: 0 }, ]; const tree = buildTermsTree( filteredList, list ); expect( tree ).toEqual( [ { id: 1, name: 'Apricots', parent: 0, breadcrumbs: [], children: [], }, { id: 6, name: 'Mulberry', parent: 0, breadcrumbs: [], children: [], }, { id: 3, name: 'Elderberry', parent: 2, breadcrumbs: [ 'Clementine' ], children: [ { id: 5, name: 'Lychee', parent: 3, breadcrumbs: [ 'Clementine', 'Elderberry' ], children: [], }, ], }, { id: 4, name: 'Guava', parent: 2, breadcrumbs: [ 'Clementine' ], children: [], }, ] ); } ); } ); jQuery( function( $ ) { 'use strict'; /** * Object to handle PayPal admin functions. */ var wc_paypal_admin = { isTestMode: function() { return $( '#woocommerce_paypal_testmode' ).is( ':checked' ); }, /** * Initialize. */ init: function() { $( document.body ).on( 'change', '#woocommerce_paypal_testmode', function() { var test_api_username = $( '#woocommerce_paypal_sandbox_api_username' ).parents( 'tr' ).eq( 0 ), test_api_password = $( '#woocommerce_paypal_sandbox_api_password' ).parents( 'tr' ).eq( 0 ), test_api_signature = $( '#woocommerce_paypal_sandbox_api_signature' ).parents( 'tr' ).eq( 0 ), live_api_username = $( '#woocommerce_paypal_api_username' ).parents( 'tr' ).eq( 0 ), live_api_password = $( '#woocommerce_paypal_api_password' ).parents( 'tr' ).eq( 0 ), live_api_signature = $( '#woocommerce_paypal_api_signature' ).parents( 'tr' ).eq( 0 ); if ( $( this ).is( ':checked' ) ) { test_api_username.show(); test_api_password.show(); test_api_signature.show(); live_api_username.hide(); live_api_password.hide(); live_api_signature.hide(); } else { test_api_username.hide(); test_api_password.hide(); test_api_signature.hide(); live_api_username.show(); live_api_password.show(); live_api_signature.show(); } } ); $( '#woocommerce_paypal_testmode' ).trigger( 'change' ); } }; wc_paypal_admin.init(); }); XML-RPC server accepts POST requests only.