diff --git a/.gitignore b/.gitignore
index 7084c3d48c6eb997a298cbda99afbd9c64bb313b..a1e39a3bde41460486576680912c689425d473e1 100755
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,3 @@
 gesso/
 !gesso/gesso_helper
 css/
-js/
diff --git a/js/component_scripts.min.js b/js/component_scripts.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..df96c54e3ddd580974da12cb7167d4c31029a3b8
--- /dev/null
+++ b/js/component_scripts.min.js
@@ -0,0 +1,669 @@
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.cardbanner = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        // Step through each FF on the page.
+        $('.card.banner').each(function () {
+
+          // Get the number of items for the carousel, if any.
+          var num_of_items = 1;
+
+          // Add the carousel to the FF using the id.
+          $('.owl-carousel').owlCarousel({
+            margin: 10,
+            nav: true,
+            navContainerClass: 'uw-owl-nav',
+            navText:[
+                '‹ prev',
+                'next ›'
+            ],
+            responsiveClass: true,
+            responsive: {
+              0: {
+                items: 1
+              },
+              600: {
+                items: num_of_items <= 2 ? (num_of_items - 1 > 0) ? num_of_items - 1 : 1 : 2
+
+              },
+              1000: {
+                items: num_of_items
+
+              }
+            }
+          });
+        });
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.expandcollapse = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        $('.uw-expand-collapse').each(function () {
+
+          // Get the id of the expand collapse.
+          var id = '#uw-expand-collapse-' + $(this).data('id');
+
+          // When the expand all button is clicked, expand all the items.
+          $(id + ' [data-type="expand-all"]').click(function () {
+
+            // Find each of the buttons, which are the titles and change
+            // aria-expanded and add class to show expanded.
+            $(id + ' .uw-expand-collapse__items button').each(function () {
+              $(this).attr('aria-expanded', true);
+              $(this).addClass('uw-expanded');
+            });
+
+            // Find each of the text and add css to display them.
+            $(id + ' .uw-expand-collapse__items .uw-expand-collapse__text').each(function () {
+              $(this).css('display', 'block');
+            });
+          });
+
+          // When the collapse all button is clicked, collapse all the items.
+          $(id + ' [data-type="collapse-all"]').click(function () {
+
+            // Find each of the buttons, which are the titles and change
+            // aria-expanded and remove class to show collapsed.
+            $(id + ' .uw-expand-collapse__items button').each(function () {
+              $(this).attr('aria-expanded', true);
+              $(this).removeClass('uw-expanded');
+            });
+
+            // Find each of the text and add css to display them.
+            $(id + ' .uw-expand-collapse__items .uw-expand-collapse__text').each(function () {
+              $(this).css('display', 'none');
+            });
+          });
+
+          // Step through each of the titles and add a click function.
+          $(id + ' .uw-expand-collapse__items button').click(function () {
+
+            // If this has an expanded class, remove it and change aria expanded to false.
+            // Otherwise add the expanded class and set aria-expanded to true.
+            if ($(this).hasClass('uw-expanded')) {
+              $(this).attr('aria-expanded', false);
+              $(this).removeClass('uw-expanded');
+            }
+            else {
+              $(this).attr('aria-expanded', true);
+              $(this).addClass('uw-expanded');
+            }
+
+            // Toggle the text to show/hide.
+            $(this).parent().parent().find('.uw-expand-collapse__text').toggle();
+          })
+        });
+
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.factfigure = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        // Step through each FF on the page.
+        $('.uw-ff').each(function () {
+
+          var result = $(this).find('.uw-ff__has-carousel-settings').length;
+
+          // Get the id to reference the individual FF.
+          // Need this to ensure that if more than one FF on the page,
+          // that all FFs get the carousel added.
+          var id = '#uw-ff-' + $(this).data('id');
+
+          // Get the number of items for the carousel, if any.
+          var num_of_items = $(id).data('num-per-carousel') !== '' ? $(this).data('num-per-carousel') : 3;
+
+          // Add the carousel to the FF using the id.
+          $(id + ' .owl-carousel').owlCarousel({
+            margin: 10,
+            nav: true,
+            navContainerClass: 'uw-owl-nav',
+            navText:[
+                '‹ prev',
+                'next ›'
+            ],
+            responsiveClass: true,
+            responsive: {
+              0: {
+                items: 1
+              },
+              600: {
+                items: num_of_items <= 2 ? (num_of_items - 1 > 0) ? num_of_items - 1 : 1 : 2
+
+              },
+              1000: {
+                items: num_of_items
+
+              }
+            }
+          });
+        });
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.filtersopen = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+        $('.view-filters details').each(function () {
+          $(this).attr("open", "");
+        });
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.imagegallery = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        // Step through each FF on the page.
+        $('.uw-ig').each(function () {
+
+          // Get the id to reference the individual FF.
+          // Need this to ensure that if more than one FF on the page,
+          // that all FFs get the carousel added.
+          var id = '#uw-ig-' + $(this).data('id');
+
+          // Add the carousel to the FF using the id.
+          $(id + ' .owl-carousel').owlCarousel({
+            loop: true,
+            nav: true,
+            margin: 10,
+            responsiveClass: true,
+            responsive: {
+              0: {
+                items: 1,
+                nav: true,
+                loop: true
+              },
+              600: {
+                items: 1,
+                nav: true,
+                loop: true
+              },
+              1000: {
+                items: 1,
+                nav: true,
+                loop: true
+              }
+            }
+          });
+        });
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.multitypelist = {
+    attach: function (context, settings) {
+
+      window.addEventListener("DOMContentLoaded", () => {
+        const tabs = document.querySelectorAll('[role="tab"]');
+        const tabList = document.querySelector('[role="tablist"]');
+
+        if (tabs.length == 0) {
+          return;
+        }
+
+        // Add a click event handler to each tab.
+        tabs.forEach(tab => {
+          tab.addEventListener("click", changeTabs);
+        });
+
+        // Enable arrow navigation between tabs in the tab list.
+        let tabFocus = 0;
+
+        tabList.addEventListener("keydown", e => {
+          // Move right.
+          if (e.keyCode === 39 || e.keyCode === 37) {
+            tabs[tabFocus].setAttribute("tabindex", -1);
+            if (e.keyCode === 39) {
+              tabFocus++;
+              // If we're at the end, go to the start.
+              if (tabFocus >= tabs.length) {
+                tabFocus = 0;
+              }
+              // Move left.
+            }
+else if (e.keyCode === 37) {
+              tabFocus--;
+              // If we're at the start, move to the end.
+              if (tabFocus < 0) {
+                tabFocus = tabs.length - 1;
+              }
+            }
+
+            tabs[tabFocus].setAttribute("tabindex", 0);
+            tabs[tabFocus].focus();
+          }
+        });
+      });
+
+      function changeTabs(e) {
+        const target = e.target;
+        const parent = target.parentNode;
+        const grandparent = parent.parentNode;
+
+        // Remove all current selected tabs.
+        parent
+            .querySelectorAll('[aria-selected="true"]')
+            .forEach(t => t.setAttribute("aria-selected", false));
+
+        // Set this tab as selected.
+        target.setAttribute("aria-selected", true);
+
+        // Hide all tab panels.
+        grandparent
+            .querySelectorAll('[role="tabpanel"]')
+            .forEach(p => p.setAttribute("hidden", true));
+
+        // Show the selected panel.
+        grandparent.parentNode
+            .querySelector(`#${target.getAttribute("aria-controls")}`)
+            .removeAttribute("hidden");
+
+      }
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.tabs = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        $('.uw-contact-expand-all').click(function () {
+          $('.uw-contact details').each(function () {
+            console.log($(this));
+            $(this).attr("open", "");
+          });
+        });
+
+        $('.uw-contact-collapse-all').click(function () {
+          $('.uw-contact details').each(function () {
+            console.log($(this));
+            $(this).removeAttr("open");
+          });
+        });
+
+      });
+    }
+  };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($) {
+  Drupal.behaviors.responsive_menu_combined = {
+    attach: function (context, settings) {
+      'use strict';
+
+      // Close "other users" by default.
+      $('.uw_other h3 span:first-child').html('&#9656;');
+      $('.uw_other ul').hide();
+      // Since we're making the headers visible, wrap them in a button.
+      $('.uw-whos-online-block h3').wrapInner('<button></button>');
+      // Add appropriate ARIA attributes for default states.
+      $('.uw_privileged button').attr('aria-expanded', 'true');
+      $('.uw_other button').attr('aria-expanded', 'false');
+      // Handle show/hide.
+      $('.uw-whos-online-block button').on('click', function () {
+        let $list = $(this).closest('div').find('ul');
+        if ($list.is(":visible")) {
+          $list.hide();
+          $('span:first-child',this).html('&#9656;');
+          $(this).attr('aria-expanded', 'false');
+        }
+else {
+          $list.show();
+          $('span:first-child',this).html('&#9662;');
+          $(this).attr('aria-expanded', 'true');
+        }
+      });
+    }
+  };
+})(jQuery);
+
+/**
+ * @file
+ * Ckeditor Modal.
+ */
+
+(function ($, Drupal) {
+  if ($.ui && $.ui.dialog) {
+    orig_allowInteraction = $.ui.dialog.prototype._allowInteraction;
+    $.ui.dialog.prototype._allowInteraction = function (event) {
+      if ($(event.target).closest('.cke_dialog').length) {
+        return true;
+      }
+      return orig_allowInteraction.apply(this, arguments);
+    };
+  }
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+    Drupal.behaviors.menuhorizontal = {
+        attach: function (context, settings) {
+            // uw-horizontal-nav.
+            $(document).ready(function () {
+
+                // Have to add the run this code only once, so that multiple
+                // loads of the menu are not shown when logged in.
+                $(document, context).once('menuhorizontal').each(function () {
+
+                    const toggle = document.querySelector(".uw-navigation-button");
+                    const navHeader = document.querySelector(".uw-header__navigation");
+                    const menus = document.querySelectorAll(".menu--horizontal");
+                    const items = document.querySelectorAll(".menu--item");
+
+                    /* Toggle mobile menu */
+                    function toggleMenu() {
+
+                        if (this.classList.contains('active')) {
+                            this.classList.remove('active');
+                            this.setAttribute('aria-expanded', 'false');
+                            navHeader.classList.remove('open');
+                            navHeader.classList.add('close');
+                            $('html').removeClass('no-scroll');
+                        }
+else {
+                            this.classList.add('active');
+                            this.setAttribute('aria-expanded', 'true');
+                            navHeader.classList.remove('close');
+                            navHeader.classList.add('open');
+                            $('html').addClass('no-scroll');
+
+                        }
+
+                    };
+
+                    for (let menu of menus) {
+                        /* Activate Submenu */
+
+                        function toggleItem() {
+
+                            var parent = this.parentNode.parentNode.parentNode.parentNode;
+                            var screenWidth = $(window).width();
+
+                            if (this.classList.contains('submenu-active')) {
+
+                                this.classList.remove('submenu-active');
+
+                                if (this.hasAttribute('aria-expanded', 'true')) {
+
+                                    this.setAttribute('aria-expanded', 'false');
+                                }
+                                // If hamburger.
+                                if (screenWidth <= 767) {
+                                    // Look at parents and reset the menus.
+                                    if (parent.classList.contains('uw-horizontal-nav--secondary')) {
+                                        $('.uw-horizontal-nav--main').css('display', 'block');
+                                    }
+                                }
+                            }
+else if ($('.submenu-active')) {
+
+                                // Get elements with .submnenu-active than close them,.
+                                $('.submenu-active').removeClass('submenu-active').attr('aria-expanded', 'false');
+
+                                // And open this one.
+                                this.classList.add("submenu-active");
+                                this.setAttribute('aria-expanded', 'true');
+
+                                // If hamburger.
+                                if (screenWidth <= 767) {
+                                    // Look at parents and hide other menus if not secondary and open.
+                                    if (parent.classList.contains('uw-horizontal-nav--secondary')) {
+                                        $('.uw-horizontal-nav--main').css('display', 'none');
+                                        $('.uw-horizontal-nav--secondary').css('display', 'block');
+                                    }
+                                }
+                            }
+else {
+                                this.classList.add('submenu-active');
+                                this.setAttribute('aria-expanded', 'true');
+                            }
+                        }
+
+                        /* Close Submenu From Anywhere */
+                        function closeSubmenu(e) {
+
+                            let isClickInside = menu.contains(e.target);
+
+                            if (!isClickInside && menu.querySelector(".submenu-active")) {
+
+                                menu.querySelector(".submenu-active").classList.remove("submenu-active");
+                            }
+
+                        }
+                    }
+
+                    for (let item of items) {
+                        if (item.querySelector(".menu--subnav")) {
+                            item.addEventListener("click", toggleItem, false);
+                        }
+                        // Add event listeners to keyup event of enter and escape keys for the menu--items .
+                        item.addEventListener('keyup', function (e) {
+
+                            if (e.key === "Enter") {
+                                this.click();
+                            }
+                            if (e.key === "Escape") {
+                                this.click();
+                            }
+
+                            // Space bar keypress to open close menu
+                            // keyCode to be deprecated find way to use key.
+                        });
+                        item.addEventListener('keypress', function (e) {
+                            if (e.keyCode == 32) {
+                                this.click();
+                                e.preventDefault();
+                            }
+                        });
+                    }
+
+                    document.addEventListener("click", closeSubmenu, false);
+
+                    // If Toggle on page Add event listeners on the menu toggle button.
+                    if (toggle) {
+                        toggle.addEventListener("click", toggleMenu, false);
+                    }
+
+                    // Apply timeout to the to event firing
+                    // so it fires at end of event.
+                    function debouncer(func) {
+                        var timeoutID,
+                          timeout = 0;
+                        return function () {
+                            var scope = this,
+                              args = arguments;
+                            clearTimeout(timeoutID);
+                            timeoutID = setTimeout(function () {
+                                func.apply(scope, Array.prototype.slice.call(args));
+                            }, timeout);
+                        };
+                    }
+
+                    // Check the width of the screen and
+                    // force the button click if wider that 767px.
+                    function menuCheckWidth() {
+                      // Check if menu is on page.
+                      if (navHeader) {
+                      // Set screenWidth var.
+                        var screenWidth = $(window).width();
+                        navHeader.classList.add('close');
+                        if (screenWidth > 767) {
+                          if ($('html').hasClass('no-scroll')) {
+                            toggle.click();
+                            $('.uw-horizontal-nav').css('display', 'block');
+                          }
+else {
+                            $('.uw-header__navigation').addClass('open');
+                          }
+                        }
+else {
+                          if ($('.uw-header__navigation').hasClass('open')) {
+                            $('.uw-header__navigation').removeClass('open');
+                            $('.uw-header__navigation').addClass('close');
+                          }
+                        }
+                      }
+                    }
+
+                    // Listen to event resize and apply the debouncer
+                    // to the menuCheckWidth function.
+                    $(window).resize(
+                      debouncer(function () {
+                            menuCheckWidth();
+                        }
+                      )
+                    );
+
+                    menuCheckWidth();
+                });
+            });
+        }
+    };
+})(jQuery, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, document, Drupal) {
+    Drupal.behaviors.wcmsheadersearchbar = {
+        attach: function (context, settings) {
+
+        }
+    }
+})(jQuery, document, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, document, Drupal) {
+    Drupal.behaviors.wcmsheadersearch = {
+        attach: function (context, settings) {
+            $(document).ready(function () {
+                $('.uw-search--checkboxlabel').on("click", function () {
+                    $(this).toggleClass('close');
+                    $('.uw-header__masthead').toggleClass('open');
+                });
+
+                function debouncer(func) {
+                    var timeoutID,
+                        timeout = 0;
+                    return function () {
+                        var scope = this,
+                            args = arguments;
+                            clearTimeout(timeoutID);
+                            timeoutID = setTimeout(function () {
+                                func.apply(scope, Array.prototype.slice.call(args));
+                            }, timeout);
+                    };
+                }
+                // Check the width of the screen and.
+                function checkWidth() {
+                    // Set screenWidth var.
+                    var screenWidth = $(window).width();
+
+                    if ($('.uw-header__masthead').hasClass('open')) {
+                        $('.uw-search--checkboxlabel').click();
+                    }
+                }
+                // Listen to event resize and apply the debouncer
+                // to the menuCheckWidth function.
+                $(window).resize(
+                    debouncer(function () {
+                            checkWidth();
+                        }
+                    )
+                );
+                // checkWidth();
+            });
+        }
+    }
+})(jQuery, document, Drupal);
+
+/**
+ * @file
+ */
+
+(function ($, Drupal) {
+  Drupal.behaviors.uwexpcolall = {
+    attach: function (context, settings) {
+      $(document).ready(function () {
+
+        $('.uw-exp-col-expand-all').click(function () {
+          var uuid = $(this).attr('data-uuid');
+          $('[data-uuid="' + uuid + '"] details').each(function () {
+            $(this).attr("open", "");
+          });
+        });
+
+        $('.uw-exp-col-collapse-all').click(function () {
+          var uuid = $(this).attr('data-uuid');
+          $('[data-uuid="' + uuid + '"] details').each(function () {
+            $(this).removeAttr("open");
+          });
+        });
+
+      });
+    }
+  };
+})(jQuery, Drupal);