About Us | Columbia Threadneedle Investments (2024)

Skip to main content

About Us | Columbia Threadneedle Investments (1)

Global

About Us | Columbia Threadneedle Investments (2)

EN

Search

Close

Mobile menu open

Mobile menu close

'); // This final block of code is responsible for dispatching the 'ksys-app-embed-added' event, which will in turn load up the passive attestation. var passiveElement = document.querySelector('[data-ksys-app-template-id="ksys-app-attestation"][data-input-mode="passive"]'); // CTI special functionality hide/show investor dropdown and after chosen US country trigger redirect var observerGlobal; $('[data-ksys-app-template-id="ksys-app-attestation"][data-input-mode="passive"]').on('ksys-app-embed-added', function () { // hide investor selector when global chosen var configGlobal = {subtree: true, characterData: true}; observerGlobal = new MutationObserver(globalFunctionality); // wait for application to render properly waitForElement(function () { return passiveElement.querySelector('[data-selector="selectionField-wrapper"]:nth-of-type(' + countryHelperSelectorOrder + ') [data-selector="iconDropdown-buttonLabel"] span'); }, 3000, function () { var countrySelect = passiveElement.querySelector('[data-selector="selectionField-wrapper"]:nth-of-type(' + countryHelperSelectorOrder + ') [data-selector="iconDropdown-buttonLabel"] span'); if (typeof countrySelect !== 'undefined' && countrySelect !== null) { // trigger observation and look for the country dropdown changes observerGlobal.observe(countrySelect, configGlobal); // first render - decide if investor dropdown should be visible on not if (countrySelect.innerText === 'global') { countrySelect.closest('[data-ksys-app-template-id="ksys-app-attestation"]').querySelector(' [data-selector="selectionField-wrapper"]:nth-of-type(' + investorSelectorOrder + ')').style.display = 'none'; } } }); }); if (passiveElement) { const eventName = 'ksys-app-embed-added'; window.ksysTriggerEvent(eventName, passiveElement); } }, 300); });});function globalFunctionality(mutationsList, observer) { mutationsList.forEach(function (mutation) { var targetElement = mutation.target.parentNode; var isTargetExist = typeof mutation.target !== 'undefined' && mutation.target !== null; var investorSelector = targetElement.closest('[data-ksys-app-template-id="ksys-app-attestation"]').querySelector(' [data-selector="selectionField-wrapper"]:nth-of-type(' + investorSelectorOrder + ')'); if (isTargetExist && mutation.target.parentNode.innerText === 'global') { if (investorSelector) investorSelector.style.display = 'none'; } else if (isTargetExist && mutation.target.parentNode.innerText === 'us') { if (investorSelector) investorSelector.style.display = 'none'; } else { if (investorSelector) investorSelector.style.display = ''; } });};/* element - function which return element if exist if not return null ms - how long function should be waiting for element callback - action that will happen when element will be accessible*/function waitForElement(element, ms, callback) { if (element() === null && ms / 100 > 0) { setTimeout(function () { waitForElement(element, ms - 100, callback); }, 100); } else if (element() !== null) { callback(); } else { return false; }}

As an expert in web development and JavaScript programming, I bring a wealth of knowledge and hands-on experience to the table. I have an in-depth understanding of the code snippet you provided, which appears to be related to the implementation of a web application or platform for Columbia Threadneedle Investments, a global asset management group.

Let's break down the key concepts and components used in the provided JavaScript code:

  1. Columbia Threadneedle Investments (CTI):

    • Columbia Threadneedle Investments is introduced as a leading global asset management group that offers actively managed investment strategies for various clients worldwide.
  2. Mobile Menu Interaction:

    • The code includes interactions with a mobile menu, as indicated by comments such as "Mobile menu open" and "Mobile menu close." This suggests that the web application has responsive design elements for mobile users.
  3. Passive Attestation:

    • The code mentions "passive attestation," which is likely a security-related feature. Passive attestation typically involves the verification of a system's integrity without active participation from the system being verified.
  4. Mutation Observers:

    • Mutation observers are used to track changes in the DOM (Document Object Model). In this case, they are employed to observe changes related to the country selection in the web application.
  5. Investor Dropdown:

    • The code involves the manipulation of an investor dropdown menu based on the selected country. Depending on whether the chosen country is "global" or "us," the visibility of the investor dropdown is adjusted accordingly.
  6. Event Handling:

    • Event handling is evident in the code, with the dispatching of events such as 'ksys-app-embed-added' and the use of event listeners to trigger specific functionality.
  7. Asynchronous Operations:

    • The code utilizes asynchronous operations, such as waiting for elements to render properly before executing certain actions. This is seen in the waitForElement function.
  8. Dynamic Element Styling:

    • Dynamic changes to the display property of HTML elements are made based on conditions. For instance, the visibility of the investor dropdown is adjusted dynamically.
  9. Conditional Logic:

    • The code incorporates conditional logic to determine whether certain elements should be displayed or hidden based on the selected country.

In summary, the provided JavaScript code demonstrates expertise in web development, including responsive design, event handling, DOM manipulation, and the implementation of features related to country and investor selection in the context of Columbia Threadneedle Investments.

About Us | Columbia Threadneedle Investments (2024)
Top Articles
Latest Posts
Article information

Author: Rubie Ullrich

Last Updated:

Views: 5841

Rating: 4.1 / 5 (72 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Rubie Ullrich

Birthday: 1998-02-02

Address: 743 Stoltenberg Center, Genovevaville, NJ 59925-3119

Phone: +2202978377583

Job: Administration Engineer

Hobby: Surfing, Sailing, Listening to music, Web surfing, Kitesurfing, Geocaching, Backpacking

Introduction: My name is Rubie Ullrich, I am a enthusiastic, perfect, tender, vivacious, talented, famous, delightful person who loves writing and wants to share my knowledge and understanding with you.