{"id":25683,"date":"2025-09-15T15:25:04","date_gmt":"2025-09-15T20:25:04","guid":{"rendered":"https:\/\/flex.com\/?page_id=25683"},"modified":"2025-10-01T14:55:03","modified_gmt":"2025-10-01T19:55:03","slug":"social-flex","status":"publish","type":"page","link":"https:\/\/flex.com\/de\/social-flex","title":{"rendered":"Sozial @ Flex"},"content":{"rendered":"<div id=\"block_a1d468e29362ff1ea6c6890b6126c14d\" class=\"header block dark-content\" style=\"background-color: #eaeef4;\">\n\t\t<div class=\"container\">\n\t\t<div class=\"content\" style=\"max-width: 1200px;\">\n\t\t\t\n\n<h2 class=\"wp-block-heading\" id=\"h-social-flex\">Social @ Flex<\/h2>\n\n\n\t\t<\/div>\n\t<\/div>\n\t<script>\n\t\tlet id = \"#block_a1d468e29362ff1ea6c6890b6126c14d\";\n\n\t\t(function ($) {\n\n\t\t\t$(id + \" .content h1\").addClass(\"fade-in\");\n\t\t\t$(id + \" .content h2\").addClass(\"fade-in\");\n\t\t\t$(id + \" .content p\").addClass(\"fade-in\");\n\t\t\t\/\/ Fade in the content\n\n\t\t\t\/\/ Fade in the background image\n\t\t\tif ($(id).children(\".background-image\").length > 0) {\n\t\t\t\tvar image = new Image();\n\t\t\t\timage.onload = function () {\n\t\t\t\t\t$(id).children(\".background-image\").addClass(\"visible\");\n\t\t\t\t\t$(id).children(\".container\").addClass(\"visible\");\n\t\t\t\t};\n\t\t\t\timage.src = \"\";\n\t\t\t} else {\n\t\t\t\t$(id).children(\".container\").addClass(\"visible\");\n\t\t\t}\n\t\t})(jQuery);\n\n\t\twindow.addEventListener('DOMContentLoaded', () => {\n\t\t\tScrollReveal().reveal(id + \" .fade-in\", {origin: \"left\", distance: \"24px\", interval: 100});\n\t\t});\n\t<\/script>\n<\/div>\n\n<div class=\"tabs block\">\n\t<div class=\"container\">\n\t\t<div class=\"spacer\"><\/div>\n\t\t<div class=\"tabs-container\">\n\t\t\t<div class=\"tabs\"><\/div>\n\t\t<\/div>\n\t\t<div class=\"content\">\n\t\t\t\n\t\t<div class=\"tab block\" data-slug=\"twitter\" data-label=\"Twitter\">\n\t\t<div class=\"container\">\n\t\t\t\n\n<div id=\"id_69d9d87dd6804\" class=\"social-feed block\">\n\t<div class=\"container full-page-x white\">\n\t\t\t\t\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/flex-main-full-page-x\/embed-code.js?per=21\" async defer><\/script>\n\t\t\t\t\t\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<div class=\"tab block\" data-slug=\"linkedin\" data-label=\"LinkedIn\">\n\t\t<div class=\"container\">\n\t\t\t\n\n<div id=\"id_69d9d87dd7bbd\" class=\"social-feed block\">\n\t<div class=\"container full-page-linkedin white\">\n\t\t\t\t\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/flex-main-full-page-linkedin\/embed-code.js?per=21\" async defer><\/script>\n\t\t\t\t\t\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<div class=\"tab block\" data-slug=\"facebook\" data-label=\"Facebook\">\n\t\t<div class=\"container\">\n\t\t\t\n\n<div id=\"id_69d9d87dd83d7\" class=\"social-feed block\">\n\t<div class=\"container full-page-facebook white\">\n\t\t\t\t\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/flex-main-full-page-facebook\/embed-code.js?per=21\" async defer><\/script>\n\t\t\t\t\t\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<div class=\"tab block\" data-slug=\"instagram\" data-label=\"Instagram\">\n\t\t<div class=\"container\">\n\t\t\t\n\n<div id=\"id_69d9d87dd8a62\" class=\"social-feed block\">\n\t<div class=\"container full-page-instagram white\">\n\t\t\t\t\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/flex-main-full-page-instagram\/embed-code.js?per=21\" async defer><\/script>\n\t\t\t\t\t\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<div class=\"tab block\" data-slug=\"youtube\" data-label=\"YouTube\">\n\t\t<div class=\"container\">\n\t\t\t\n\n<div id=\"id_69d9d87dd90db\" class=\"social-feed block\">\n\t<div class=\"container full-page-youtube white\">\n\t\t\t\t\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/www.juicer.io\/embed\/flex-main-full-page-youtube\/embed-code.js?per=21\" async defer><\/script>\n\t\t\t\t\t\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<\/div>\n\t<\/div>\n\t<script>\n\t\t\/**\n\t\t * Renders tabs based on the hash in the URL and tab content. This function is specifically designed to support\n\t\t * WordPress editor adjustments and dynamic navigation updates. It is structured to work within the WordPress\n\t\t * editing environment and updates both the navigation tabs and the content tabs based on the URL's hash.\n\t\t *\n\t\t * NOTE: This function is only used in the WordPress editor and for some reason yet to be determined must sit\n\t\t * outside the self-invoking function.\n\t\t *\/\n\t\tvar render_tabs = function () {\n\t\t\tvar $ = jQuery; \/\/ Use the jQuery global object for easier usage throughout the function.\n\n\t\t\tvar $tabsBlock   = $(\".tabs.block\"); \/\/ Select the main block element that contains tabs and their respective navigation and content.\n\t\t\tvar $navTabs     = $tabsBlock.find(\".tabs\");  \/\/ Selects the navigation container within the tabs block.\n\t\t\tvar $contentTabs = $tabsBlock.find(\".content .tab\");  \/\/ Selects the content of each tab within the block.\n\n\t\t\tvar currentHash   = window.location.hash.replace(\"#\", \"\"); \/\/ Obtain the current URL hash (without the '#' symbol) for determining the active tab.\n\t\t\tvar hash_selector = currentHash ? $(\".tab.block[data-slug='\" + currentHash + \"']\") : null; \/\/ If there's a hash, find the tab corresponding to this hash, otherwise set to null.\n\n\t\t\t\/\/ If the WordPress block editor is in use, adjust the hash selector to point to the parent `.wp-block`.\n\t\t\tif (window.wp && window.wp.blocks && hash_selector) {\n\t\t\t\thash_selector = hash_selector.parents(\".wp-block\");\n\t\t\t}\n\n\t\t\t\/\/ Default active tab index. It will be used to mark one of the tabs as active.\n\t\t\tvar active_index = 0;\n\t\t\t\/\/ If a tab corresponding to the hash was found, set its index as the active tab index.\n\t\t\tif (hash_selector && hash_selector.length) {\n\t\t\t\tactive_index = hash_selector.index();\n\t\t\t}\n\n\t\t\t\/\/ Build the HTML for each tab. This array will store HTML strings for all tabs.\n\t\t\tvar tabsHtml = [];\n\t\t\t$contentTabs.each(function (index) {\n\t\t\t\tvar $this    = $(this);\n\t\t\t\tvar isActive = index === active_index; \/\/ Check if the current tab should be active based on its index.\n\t\t\t\ttabsHtml.push('<div class=\"tab' + (isActive ? ' active' : '') + '\">' + $this.data(\"label\") + '<\/div>'); \/\/ Append the HTML string for the tab to the tabsHtml array.\n\t\t\t});\n\n\t\t\t\/\/ Empty the navigation container and then add all tabs HTML to it.\n\t\t\t\/\/ This is done in one operation to improve performance.\n\t\t\t$navTabs.empty().html(tabsHtml.join(\"\"));\n\t\t\t$contentTabs.hide().eq(active_index).show(); \/\/ Hide all content tabs, then only show the content for the active tab.\n\n\t\t\t\/\/ Set up a click event handler on each tab in the navigation.\n\t\t\t\/\/ First, remove any existing click handlers to prevent duplicate bindings.\n\t\t\t$navTabs.off(\"click\").on(\"click\", \".tab\", function () {\n\t\t\t\tvar index = $(this).index();  \/\/ Get the index of the clicked tab.\n\t\t\t\t\/\/ Set a local storage item to control scrolling behavior on hash change, then update the URL hash.\n\t\t\t\twindow.localStorage.setItem(\"scroll_on_hash_change\", \"false\");\n\t\t\t\twindow.location.hash = $contentTabs.eq(index).data(\"slug\");\n\t\t\t});\n\t\t};\n\n\t\t\/**\n\t\t * Self-invoking function to encapsulate and run the script when the DOM is ready.\n\t\t * This pattern helps in avoiding global scope pollution and conflicts with other scripts.\n\t\t *\/\n\t\t(function ($) {\n\t\t\t$(document).ready(function () {\n\t\t\t\tvar isEditor     = document.body.classList.contains('block-editor-page') || !!window.wp?.blocks; \/\/ Determine if the current page is the WordPress editor page, which affects how tabs are rendered.\n\t\t\t\tvar $tabsBlock   = $(\".tabs.block\"); \/\/ Select the main container of the tabs. This is the primary block where all tabs and their content are contained.\n\t\t\t\tvar $contentTabs = $tabsBlock.find(\".content .tab\"); \/\/ Find all content elements of the tabs. These are the contents that will be shown\/hidden based on active tab.\n\t\t\t\tvar $navTabs     = $tabsBlock.find(\".tabs\"); \/\/ Locate the container of the tab navigation buttons\/links.\n\n\t\t\t\t\/**\n\t\t\t\t * Initializes the tab structure on the frontend (not in the WordPress editor).\n\t\t\t\t * This function creates navigation tabs corresponding to each content tab and sets up their click handlers.\n\t\t\t\t *\/\n\t\t\t\tvar init_frontend_tabs = function () {\n\t\t\t\t\t$contentTabs.each(function (index) {\n\t\t\t\t\t\t\/\/ Create a div for each tab in the navigation, using the 'label' data attribute for its text.\n\t\t\t\t\t\tvar $tab = $(\"<div>\").addClass(\"tab\").html($(this).data(\"label\"));\n\t\t\t\t\t\t$navTabs.append($tab); \/\/ Append this new navigation tab to the tabs container.\n\n\t\t\t\t\t\t\/\/ Attach click event handler to each navigation tab.\n\t\t\t\t\t\t$tab.on(\"click\", function () {\n\t\t\t\t\t\t\t\/\/ On click, update the URL hash to reflect the clicked tab and prevent auto-scrolling.\n\t\t\t\t\t\t\twindow.localStorage.setItem(\"scroll_on_hash_change\", \"false\");\n\t\t\t\t\t\t\twindow.location.hash = $contentTabs.eq(index).data(\"slug\");\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t\/**\n\t\t\t\t * Sets the active tab based on the URL hash, or defaults to the first tab if no hash is present.\n\t\t\t\t * This function updates the appearance and visibility of tabs and their contents accordingly.\n\t\t\t\t *\/\n\t\t\t\tvar set_active_frontend_tab = function () {\n\t\t\t\t\tvar $navTabsActive = $tabsBlock.find(\".tabs div.tab\"); \/\/ Select all navigation tabs.\n\t\t\t\t\tvar activeIndex    = 0; \/\/ Default to the first tab if no specific hash is found.\n\n\t\t\t\t\t\/\/ If the URL has a hash, find the corresponding tab and set it as active.\n\t\t\t\t\tif (window.location.hash) {\n\t\t\t\t\t\tvar hash          = window.location.hash.replace(\"#\", \"\"); \/\/ Remove '#' from the hash.\n\t\t\t\t\t\tvar $hashSelector = $tabsBlock.find(\".tab.block[data-slug='\" + hash + \"']\"); \/\/ Find the tab content that matches the hash.\n\n\t\t\t\t\t\t\/\/ If a matching content tab is found, update the activeIndex to match its position.\n\t\t\t\t\t\tif ($hashSelector.length > 0) {\n\t\t\t\t\t\t\tactiveIndex = $hashSelector.index();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Set the active class on the appropriate navigation tab and display the corresponding tab content.\n\t\t\t\t\t$navTabsActive.removeClass(\"active\").eq(activeIndex).addClass(\"active\");\n\t\t\t\t\t$contentTabs.hide().eq(activeIndex).show();\n\t\t\t\t};\n\n\t\t\t\t\/\/ If the current context is not the editor, initialize and set active tabs for the frontend.\n\t\t\t\tif (!isEditor) {\n\t\t\t\t\tinit_frontend_tabs();\n\t\t\t\t\tset_active_frontend_tab();\n\t\t\t\t\t\/\/ Refresh accordion after default tab is shown\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof refreshVisibleAccordions === 'function') {\n\t\t\t\t\t\t\trefreshVisibleAccordions();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 50);\n\t\t\t\t\t\/\/ Trigger any scroll animations or reveals for the newly displayed tabs.\n\t\t\t\t\tsetTimeout(() => ScrollReveal().delegate(), 100);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ In the WordPress editor, call a separate function to render tabs.\n\t\t\t\t\trender_tabs();\n\t\t\t\t}\n\n\t\t\t\t\/\/ Event listener to handle changes in the URL hash (when a user clicks a tab).\n\t\t\t\twindow.addEventListener(\"hashchange\", function () {\n\t\t\t\t\t\/\/ Reset active tabs on hash change, differentiating between frontend and editor.\n\t\t\t\t\tif (!isEditor) {\n\t\t\t\t\t\tset_active_frontend_tab();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (typeof refreshVisibleAccordions === 'function') {\n\t\t\t\t\t\t\t\trefreshVisibleAccordions();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\tsetTimeout(() => ScrollReveal().delegate(), 100);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trender_tabs();\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Scroll adjustment to ensure the content is properly aligned after a tab change.\n\t\t\t\t\tvar $containerContent = $(\".tabs.block > .container .content\");\n\t\t\t\t\tvar offsetTop         = $containerContent.offset().top - $('#flex-header').height() - $(\".tabs.block > .container .tabs-container\").height() - 68;\n\t\t\t\t\t\/\/ Animate the scroll to the calculated position for a smooth transition.\n\t\t\t\t\t$([document.documentElement, document.body]).animate({scrollTop: offsetTop}, 500);\n\t\t\t\t});\n\t\t\t});\n\t\t})(jQuery); \/\/ Pass jQuery as an argument to ensure no conflict in jQuery usage.\n\t<\/script>\n<\/div>\n\n<div class=\"spacer block\" style=\"height: 24px;\">\n\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_searchwp_excluded":"","inline_featured_image":false,"footnotes":""},"categories":[34],"class_list":["post-25683","page","type-page","status-publish","hentry","category-corporate"],"acf":[],"_links":{"self":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/pages\/25683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/comments?post=25683"}],"version-history":[{"count":24,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/pages\/25683\/revisions"}],"predecessor-version":[{"id":25748,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/pages\/25683\/revisions\/25748"}],"wp:attachment":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/media?parent=25683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/categories?post=25683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}