The FV function returns the future value of an investment.

Use the FV function to calculate the future value of an investment, assuming periodic, constant payments with a constant interest rate. You can also use it for the future value of single lump sum payment.

FV is part of the set of financial functions that Sigma supports.

Syntax

FV(rate, nperiods, pmt, [pv], [type])
rate
The interest rate per period.
nperiods
The total number of payment periods.
pmt
The payment made each period.
If this is a deposit into savings or similar investment, the value must be negative. For cash received, such as income or dividends, payment value must be positive.
pv
Optional.
The present value of future payments. If omitted, assumed to be zero. Must be entered as a negative number.
Default is 0.
type
Optional.
When payments are due:
0
End of period
1
Beginning of period
Default is 0.

Notes

  • Be consistent with the units for rate and nperiods arguments. If you make monthly payments on a two-year loan at an annual interest rate of 7%, use the rate calculation of 0.07/12 and nperiods calculation of 2*12. For annual payments on the same loan, use the rate of 0.07 and nperiods of 2.

Example

FV(0.1/12, 5*12, -1000)

The future value of a 5-year loan with an annual interest of 10%, and monthly payments of $1,000 is $77,437.07.

FV(0.1/4, 5*4, -3000)

The future value of a 5-year loan with an annual interest of 10%, and quarterly payments of $3,000 is $76,633.97.

FV(0.1, 5, -12000)

The future value of a 5-year loan with an annual interest of 10%, and annual payments of $12,000 is $73,261.20.


\n\n","html_footer_meta":"
\n
\n
\n \n Resources\n
\n
\n \n \n \n \n \n \n \n Sigma home\n
\n \n \n
\n \n \n \n Blog\n
\n \n
\n \n \n \n Learn\n
\n \n \n
\n \n \n \n Product FAQs\n
\n
\n \n \n \n \n \n
© Sigma Computing
\n \n
\n \n
\n","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"Related resources","promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":"none"},"title":"The Sigma Computing Developer Hub","text":"Welcome to the Sigma Computing developer hub. You'll find comprehensive guides and documentation to help you start working with Sigma Computing as quickly as possible, as well as support if you get stuck. Let's jump right in!","_id":"649ca345fddb0a0067eb3bb5"}],"changelog":{"layoutExpanded":true,"showAuthor":false,"showExactDate":true},"allowApiExplorerJsonEditor":false,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled"},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"}},"child":{"_id":"649ca345fddb0a0067eb3bb3","appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":null,"markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#000","main_alt":"","header_text":"","body_highlight":"","custom_login_link_color":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":""},"header":{"style":"solid","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":false,"theme":"solid","colorScheme":"system","overlay":"triangles","landing":true,"sticky":false,"hide_logo":false,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":true,"logo":["https://files.readme.io/e76fa049881caf557934797e79a66912aa149111831b86e073876ab293183a04-small-Sigma_PrimaryLogo_ShadowBlack.png","e76fa049881caf557934797e79a66912aa149111831b86e073876ab293183a04-small-Sigma_PrimaryLogo_ShadowBlack.png",281,80,"#2c2c2c","https://files.readme.io/3132f8acca21f616df1f3a05716c2385683655e39c3fdc1437e011dc0a8bed9e-Sigma_PrimaryLogo_ShadowBlack.png","66c7b8412da448002267ed80"],"loginLogo":[],"logo_white":["https://files.readme.io/7f03afe0da103f607fe99b3dfd70152af7af0a83a49b96f1c4471df21d52e732-small-Sigma_PrimaryLogo_White.png","7f03afe0da103f607fe99b3dfd70152af7af0a83a49b96f1c4471df21d52e732-small-Sigma_PrimaryLogo_White.png",281,80,"#ffffff","https://files.readme.io/6f89d040d3403f20d85e888258c32484a27cfe67a36e71dba608a0b591283a88-Sigma_PrimaryLogo_White.png","66c7b9b510090e00122fe35d"],"logo_white_use":true,"logo_large":false,"favicon":["https://files.readme.io/2333877-small-1687535336281.jpg","2333877-small-1687535336281.jpg",32,32,"#000000","https://files.readme.io/9b495d4-1687535336281.jpg","650b706c4c382400392fca55"],"stylesheet":"","stylesheet_hub2":"/* all CSS should be saved to the group stylesheet */\n\n/*Temporary fix for hiding token by default*/\n.rm-APIAuth {\n filter: blur(2px); /* Adjust the value to control the amount of blur */\n}\n\n/* Ensure no underline on tabs */\n.SearchTabs-Tab2715KRxrb5JT {\n text-decoration: none !important;\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"//--------------------------------------------------\n// #5 Auto-Hide Auth Input in API Ref Section\n$(window).on('pageLoad', function(e, state) {\n // Wait for 1 second before executing the function\n setTimeout(function() {\n // Find the .rm-APIAuth section and change its blur\n var section = document.querySelector('.rm-APIAuth');\n if (section) {\n section.style.filter = 'none';\n } else {\n console.error('.rm-APIAuth section not found');\n }\n \n // Find the button by its class name\n var button = document.querySelector('.Button_xs.rm-APIAuth-lock');\n \n // Check if the button exists before attempting to click it\n if (button) {\n button.click();\n } else {\n console.error('Button not found');\n }\n }, 900); \n});\n\n\n\n//--------------------------------------------------\n// #7 Automatically click AXIOS (only when Node Language is Active) on pages with \"/reference/\" path\ndocument.addEventListener('DOMContentLoaded', function() {\n // Check if the current page is in the \"/reference/\" path\n if (window.location.pathname.startsWith('/reference/')) {\n const clickExample = () => {\n const examples = document.querySelector(\"[class*='rm-PlaygroundRequest']\");\n const defaultLanguage = document.querySelector('[class*=\"LanguagePicker-button\"].rm-LanguageButton_active');\n\n // Check if the default language is \"Node\"\n if (examples && defaultLanguage && defaultLanguage.textContent.trim() === 'Node') {\n clearInterval(interval);\n const dropdownButton = document.querySelector('button.Button.Button_xs.Dropdown-toggle.Button_contrast_ghost.Button_contrast');\n if (dropdownButton) {\n dropdownButton.click(); // Click the dropdown button\n \n // Wait for the dropdown menu to appear\n setTimeout(() => {\n // Find the tippy container\n const tippyContainer = document.querySelector('[id^=\"tippy-\"]');\n if (tippyContainer) {\n // Find the dropdown menu within the tippy container\n const dropdownMenu = tippyContainer.querySelector('.Dropdown-content');\n if (dropdownMenu) {\n // Find the \"api\" option within the dropdown menu\n const apiOption = dropdownMenu.querySelector('.Menu-Item_link span');\n if (apiOption && apiOption.textContent.trim() === 'api') {\n // Remove the \"api\" option from the DOM\n apiOption.parentElement.remove();\n }\n\n // Find the \"Axios\" option within the dropdown menu\n const axiosOption = dropdownMenu.querySelector('.Menu-Item_link span');\n if (axiosOption && axiosOption.textContent.trim() === 'Axios') {\n // Click the \"Axios\" option\n axiosOption.click();\n }\n }\n }\n }, 100); // Adjust the delay time as needed\n }\n }\n };\n const interval = setInterval(clickExample, 100);\n }\n});\n//--------------------------------------------------\n// #8 Custom Expandable Content Components (?)\n// REMOVED PER CUSTOMER\n\n//--------------------------------------------------\n// #9 Custom Tabs (?)\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n // Show the default tab content\n openTab('tab1');\n});\n\nfunction openTab(tabId) {\n // Hide all tab content\n document?.querySelectorAll('.tab-content').forEach(function(tabContent) {\n tabContent.style.display = 'none';\n });\n\n // Deactivate all tab buttons\n document?.querySelectorAll('.tabs button').forEach(function(tabButton) {\n tabButton.classList.remove('active-tab');\n });\n\n // Show the selected tab content\n document.getElementById(tabId).style.display = 'block';\n\n // Activate the clicked tab button\n document.getElementById(tabId + 'Btn').classList.add('active-tab');\n}\n\n//--------------------------------------------------\n// #10 Lists within Paragraphs (?)\n function wrapLiTextInP(listId) {\n var listItems = document.getElementById(listId).querySelectorAll('li');\n listItems.forEach(function (li) {\n var paragraphs = li.querySelectorAll('p');\n if (paragraphs.length === 0) {\n var textContent = li.innerHTML.trim();\n li.innerHTML = '

' + textContent + '

';\n }\n });\n }\n\n document.addEventListener('DOMContentLoaded', function () {\n wrapLiTextInP('myList');\n wrapLiTextInP('myOrdered');\n });\n\n\n//--------------------------------------------------\n// #11 Save the access_token value into local storage/auto populate\n\n function waitForElement(selector) {\n return new Promise((resolve, reject) => {\n const observer = new MutationObserver((mutations, obs) => {\n const element = document.querySelectorAll(selector);\n if (element) {\n obs.disconnect();\n resolve(element);\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n\n // Optional: Timeout to avoid infinite waiting\n setTimeout(() => {\n observer.disconnect();\n reject(new Error('Element not found'));\n }, 30000); // 30 seconds timeout\n });\n }\n\n const addTryItButtonClickEvent = async () => {\n try {\n // Wait for the div elements containing the class attribute containing 'rm-PlaygroundRequest'\n await waitForElement(\n '#ReferencePlayground > section[class*=\"Playground-section\"][class*=\"Playground-section_sticky\"] > div > footer > button'\n );\n console.log(\n 'FOUND ELEMENTS: #ReferencePlayground > section[class*=\"Playground-section\"][class*=\"Playground-section_sticky\"] > div > footer > button'\n );\n // Find the div elements containing the class attribute containing 'rm-PlaygroundRequest'\n const divsWithClass = document.querySelectorAll(\n 'div[class*=rm-PlaygroundRequest]'\n );\n\n // Convert the NodeList to an array for iteration\n const divArray = Array.from(divsWithClass);\n\n // Iterate through each div element with the specified class attribute\n divArray.forEach(divElement => {\n // Find the footer tag inside the current div element\n const footerInDiv = divElement.querySelector('footer');\n\n if (footerInDiv) {\n // Find the Try It button inside the footer tag\n const tryItButton = footerInDiv.querySelector(\n 'button[class*=rm-TryIt]'\n );\n\n // Check if the button contains the text 'Try It!'\n if (tryItButton && tryItButton.textContent.trim() === 'Try It!') {\n // Add event listener to the \"Try It\" button only on the /token page\n tryItButton.addEventListener('click', event => {\n event.preventDefault();\n // Check if the current URL ends with '/token'\n if (window.location.pathname.endsWith('/token')) {\n // Execute the additional logic after a delay on the /token page\n console.log('Expecing new function');\n }\n });\n }\n }\n });\n } catch (error) {\n console.error('Error:', error);\n }\n };\n\n // Call the function to add the event listener\n addTryItButtonClickEvent();\n\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // Function to handle the additional logic after a delay\n const waitForResponse = () => {\n setTimeout(() => {\n // Your additional logic after a delay of 1 second goes here\n\n const extractTokens = () => {\n let tokens = {};\n\n // Query the pre element with the specified class\n const requestCode = document.querySelector('pre.CodeSnippet');\n const responseCode = document.querySelector(\n 'div.rm-PlaygroundResponse'\n );\n\n const requestText = requestCode.textContent;\n const responseText = responseCode.textContent;\n\n // Define the regex to find the value after \"Basic\"\n const basicAuthRegex = /authorization: Basic ([^']+)'?/;\n const accessTokenRegex = /\"access_token\":\\s*\"([^\"]+)\"/;\n const refreshTokenRegex = /\"refresh_token\":\\s*\"([^\"]+)\"/;\n const expiresInRegex = /\"expires_in\":\\s*(\\d{4})/;\n\n const basicAuthToken = requestText.match(basicAuthRegex);\n if (basicAuthToken && basicAuthToken[1]) {\n tokens.basic_auth = basicAuthToken[1];\n } else {\n console.error('Authorization Basic value not found');\n }\n\n const accessToken = responseText.match(accessTokenRegex);\n if (accessToken && accessToken[1]) {\n tokens.access_token = accessToken[1];\n } else {\n console.error('Access Token value not found');\n }\n\n const refreshToken = responseText.match(refreshTokenRegex);\n if (refreshToken && refreshToken[1]) {\n tokens.refresh_token = refreshToken[1];\n } else {\n console.error('Refresh Token value not found');\n }\n\n const expiresIn = responseText.match(expiresInRegex);\n if (expiresIn && expiresIn[1]) {\n tokens.expires_in = expiresIn[1];\n } else {\n console.error('Token Expiration value not found');\n }\n\n return tokens;\n };\n\n // Function to save the tokens object into local storage\n const saveTokensToLocalStorage = tokens => {\n if (tokens.access_token || tokens.refresh_token || tokens.basic_auth) {\n const expirationTime = Date.now() + tokens.expires_in * 1000;\n const storedTokens = JSON.parse(localStorage.getItem('tokens')) || {};\n const updatedTokens = {\n ...storedTokens,\n ...tokens,\n expiration_time: expirationTime,\n };\n localStorage.setItem('tokens', JSON.stringify(updatedTokens));\n }\n };\n\n // Retrieve tokens from the HTML structure\n const tokens = extractTokens();\n // Save tokens into local storage\n saveTokensToLocalStorage(tokens);\n // Set a timeout to refresh the token 3 minutes before it expires\n setRefreshTokenTimeout(tokens.expires_in);\n }, 1500);\n };\n\n // Function to set a timeout to refresh the token\n const setRefreshTokenTimeout = expiresIn => {\n const refreshIn = (expiresIn - 180) * 1000; // Refresh 3 minutes before expiration\n setTimeout(() => {\n getNewAccessToken();\n }, refreshIn);\n };\n\n // Function to add event listener to the \"Try It\" button\n const addTryItButtonClickEvent = () => {\n setTimeout(() => {\n // Find the div elements containing the class attribute containing 'rm-PlaygroundRequest'\n const divsWithClass = document.querySelectorAll(\n 'div[class*=rm-PlaygroundRequest]'\n );\n\n // Convert the NodeList to an array for iteration\n const divArray = Array.from(divsWithClass);\n\n // Iterate through each div element with the specified class attribute\n divArray.forEach(divElement => {\n // Find the footer tag inside the current div element\n const footerInDiv = divElement.querySelector('footer');\n\n if (footerInDiv) {\n // Find the Try It button inside the footer tag\n const tryItButton = footerInDiv.querySelector(\n 'button[class*=rm-TryIt]'\n );\n\n // Check if the button contains the text 'Try It!'\n if (tryItButton && tryItButton.textContent.trim() === 'Try It!') {\n // Add event listener to the \"Try It\" button only on the /token page\n tryItButton.addEventListener('click', event => {\n event.preventDefault();\n // Check if the current URL ends with '/token'\n if (window.location.pathname.endsWith('/token')) {\n // Execute the additional logic after a delay on the /token page\n waitForResponse();\n }\n });\n }\n }\n });\n }, 1000);\n };\n\n // Function to monitor URL changes using window.onpopstate\n window.onpopstate = () => {\n // Re-add the event listener when the URL changes\n addTryItButtonClickEvent();\n };\n\n // Function to observe DOM mutations using MutationObserver\n const observer = new MutationObserver(() => {\n // Re-add the event listener on DOM mutations\n addTryItButtonClickEvent();\n });\n\n // Start observing mutations in the document\n observer.observe(document.body, { attributes: true, subtree: true });\n\n // Add the initial event listener on page load\n addTryItButtonClickEvent();\n});\n\ndocument.addEventListener('DOMContentLoaded', () => {\n let isUpdated = false;\n\n const updateBearerToken = async () => {\n setTimeout(async () => {\n const inputField = document.getElementById('APIAuth-token');\n const inputValue = inputField?.value;\n\n // Check if access_token exists in local storage\n const storedTokens = JSON.parse(localStorage.getItem('tokens'));\n let storedToken = storedTokens?.access_token;\n\n if (!storedToken) {\n await getNewAccessToken(); // Refresh the access token\n storedToken = JSON.parse(localStorage.getItem('tokens'))?.access_token;\n }\n\n if (!storedToken) return; // Stop the code execution if access_token does not exist\n\n const event = new Event('change', { bubbles: true });\n\n if (inputValue !== storedToken || inputValue === '') {\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value'\n ).set;\n nativeInputValueSetter.call(inputField, storedToken);\n\n // Dispatch 'input' event to mimic the user input\n const inputEvent = new Event('input', {\n bubbles: true,\n cancelable: true,\n });\n inputField.dispatchEvent(inputEvent);\n isUpdated = true;\n } else if (!isUpdated) {\n inputField.dispatchEvent(event);\n }\n }, 1000);\n };\n\n // Create a MutationObserver instance\n const observer = new MutationObserver(updateBearerToken);\n\n // Observe changes in the document's body and its descendants\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n attributes: true,\n });\n\n // Call the function on initial load with a delay, but not on \"/token\" pages\n if (\n window.location.href.includes('/reference') &&\n !window.location.href.endsWith('/reference/token')\n ) {\n updateBearerToken();\n window.onpopstate = updateBearerToken;\n }\n\n // Set the initial refresh token timeout if the tokens are already in local storage\n const storedTokens = JSON.parse(localStorage.getItem('tokens'));\n if (storedTokens?.expiration_time) {\n const expiresIn = (storedTokens.expiration_time - Date.now()) / 1000;\n setRefreshTokenTimeout(expiresIn);\n }\n});\n\n// Function to get a new access_token using the refresh_token\nconst getNewAccessToken = async () => {\n const storedTokens = JSON.parse(localStorage.getItem('tokens'));\n const refreshToken = storedTokens?.refresh_token;\n const basicAuth = storedTokens?.basic_auth;\n\n if (!refreshToken) {\n console.error('No refresh token found');\n return;\n }\n\n if (!basicAuth) {\n console.error('No Basic Auth value found');\n return;\n }\n\n try {\n const response = await fetch(\n 'https://api.sigmacomputing.com/v2/auth/token',\n {\n method: 'POST',\n headers: {\n accept: 'application/json',\n authorization: `Basic ${basicAuth}`,\n 'content-type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: refreshToken,\n }),\n }\n );\n\n if (!response.ok) {\n throw new Error('Failed to refresh token');\n }\n\n const data = await response.json();\n const newAccessToken = data.access_token;\n const newRefreshToken = data.refresh_token || refreshToken;\n const newExpiresIn = data.expires_in;\n\n // Save the new tokens to local storage\n const expirationTime = Date.now() + newExpiresIn * 1000;\n const updatedTokens = {\n access_token: newAccessToken,\n refresh_token: newRefreshToken,\n basic_auth: basicAuth,\n expiration_time: expirationTime,\n };\n localStorage.setItem('tokens', JSON.stringify(updatedTokens));\n\n // Set a timeout to refresh the token 3 minutes before it expires\n setRefreshTokenTimeout(newExpiresIn);\n\n console.log('Access token refreshed successfully');\n } catch (error) {\n console.error('Error refreshing access token:', error);\n }\n};\n\n\n//--------------------------------------------------\n// #12 Search Tab Popup Auto-Click Current Section\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n setTimeout(function() {\n let currentActiveTab = null;\n\n function selectTabByUrl() {\n const tabs = document.querySelectorAll('.SearchTabs-Tab2715KRxrb5JT');\n const path = window.location.pathname;\n\n let tabToSelect;\n if (path.includes('/docs')) {\n tabToSelect = 'Documentation';\n } else if (path.includes('/recipes')) {\n tabToSelect = 'Recipes';\n } else if (path.includes('/reference')) {\n tabToSelect = 'API Reference';\n } else if (path.includes('/changelog')) {\n tabToSelect = \"What's New\";\n }\n\n if (tabToSelect) {\n tabs.forEach(tab => {\n const spanElement = tab.querySelector('span');\n if (spanElement && spanElement.innerText.includes(tabToSelect)) {\n tab.click(); // Simulate a click on the tab\n }\n });\n } else {\n // Default to the first tab if no specific tab is selected based on URL\n if (tabs.length > 0) {\n tabs[0].click(); // Simulate a click on the first tab\n }\n }\n }\n\n function handleTabClick(event) {\n if (currentActiveTab) {\n currentActiveTab.setAttribute('aria-selected', 'false');\n currentActiveTab.classList.remove('Tabs-listItem_active');\n }\n\n const clickedTab = event.currentTarget;\n clickedTab.setAttribute('aria-selected', 'true');\n clickedTab.classList.add('Tabs-listItem_active');\n\n currentActiveTab = clickedTab; // Update the currently active tab\n }\n\n // Add click event listeners to tabs\n const tabs = document.querySelectorAll('.SearchTabs-Tab2715KRxrb5JT');\n tabs.forEach(tab => {\n tab.addEventListener('click', handleTabClick);\n });\n\n // Initial selection when the page loads\n selectTabByUrl();\n\n // Listen for changes in URL (handling SPA navigation)\n window.addEventListener('popstate', selectTabByUrl);\n\n // Listen for the search modal being opened\n const searchButton = document.querySelector('.rm-SearchToggle');\n if (searchButton) {\n searchButton.addEventListener('click', () => {\n if (currentActiveTab) {\n currentActiveTab.setAttribute('aria-selected', 'false');\n currentActiveTab.classList.remove('Tabs-listItem_active');\n }\n selectTabByUrl();\n });\n }\n // Additionally, for history.pushState or history.replaceState calls, you might need to override those\n (function(history) {\n const pushState = history.pushState;\n const replaceState = history.replaceState;\n\n history.pushState = function(state, title, url) {\n pushState.call(history, state, title, url);\n selectTabByUrl();\n };\n\n history.replaceState = function(state, title, url) {\n replaceState.call(history, state, title, url);\n selectTabByUrl();\n };\n })(window.history);\n }, 500); // Adjust the timeout duration as needed\n});\n\n//------------------------------------------------------------\n// #13 Changes username to client ID and password to client secret.\n// Function to change the placeholders\nfunction changePlaceholders() {\n var userInput = document.querySelector('input[name=\"user\"]');\n var passInput = document.querySelector('input[name=\"pass\"]');\n\n if (userInput) {\n userInput.placeholder = \"Client ID\";\n }\n\n if (passInput) {\n passInput.placeholder = \"Client Secret\";\n }\n}\n\n// Function to periodically check for the presence of input fields\nfunction periodicCheck() {\n changePlaceholders();\n // Set a delay to check again after 500ms if inputs are not yet loaded\n if (!document.querySelector('input[name=\"user\"]') || !document.querySelector('input[name=\"pass\"]')) {\n setTimeout(periodicCheck, 500);\n }\n}\n\n// MutationObserver to watch for changes in the DOM and apply the changes when elements are loaded\nvar observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(mutation) {\n if (mutation.addedNodes.length) {\n changePlaceholders();\n }\n });\n});\n\n// Start observing the document for changes\nobserver.observe(document.body, { childList: true, subtree: true });\n\n// Initial call to handle already loaded elements and start periodic check\nchangePlaceholders();\nperiodicCheck();","html_promo":"","html_body":"","html_footer":"","html_head":"\n","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"Related resources","promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":"none"},"title":"The Sigma Computing Developer Hub","text":"Welcome to the Sigma Computing developer hub. You'll find comprehensive guides and documentation to help you start working with Sigma Computing as quickly as possible, as well as support if you get stuck. Let's jump right in!","_id":"649ca345fddb0a0067eb3bb5"}],"changelog":{"layoutExpanded":true,"showAuthor":false,"showExactDate":true},"allowApiExplorerJsonEditor":false,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled"},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"}},"custom_domain":"","childrenProjects":[],"derivedPlan":"enterprise","description":"Official documentation and help with data analysis and modeling, including guidance and best practices for building visualizations and dashboards for Sigma Computing, a cloud-based Business Intelligence (BI) platform.","isExternalSnippetActive":false,"error404":"custom-error-page","experiments":[],"first_page":"landing","flags":{"allowApiExplorerJsonEditor":false,"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowXFrame":true,"correctnewlines":false,"dashReact":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"graphql":false,"migrationRun":false,"migrationSwaggerRun":false,"newEditor":true,"newEditorDash":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"speedyRender":false,"staging":false,"star":false,"superHub":false,"swagger":false,"translation":false,"useReactApp":true,"useReactGLP":true,"apiV2":false,"dashQuickstart":false,"git":{"read":false,"write":false},"superHubBeta":false,"customBlocks":false,"disableAutoTranslate":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false},"fullBaseUrl":"https://sigma-computing.readme.io/","git":{"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[],"providers":[]}},"glossaryTerms":[{"_id":"64ada7f90ca32200383568a7","term":"CDW","definition":"Cloud data warehouse"},{"_id":"655e8c4ba56e64005448ecee","term":"DBMS","definition":"Database management system"},{"_id":"656ac7ed8e9cdc0045d6a1dc","term":"connection","definition":"[placeholder]"},{"_id":"656ac7f7a705200689a470a8","term":"database","definition":"[placeholder]"},{"_id":"656ac802c221800068b2e621","term":"schema","definition":"[placeholder]"},{"_id":"656ac80d312f4107a76fc745","term":"database table","definition":"[placeholder]"},{"_id":"661e0f1374c914004b2029aa","term":"sharing organization","definition":"In cross-org sharing, the Sigma organization that shares the workbook template with another organization."},{"_id":"661e0f3557912a00256ffca6","term":"receiving organization","definition":"In cross-org sharing, the Sigma organization that receives a shared workbook template from another organization."},{"_id":"662003129b691d001ef35c18","term":"trigger","definition":"In actions, the user interaction with a specific element (the trigger element)."},{"_id":"662003474df46c00118fac64","term":"effect","definition":"In actions, the defined response to the user interaction with a trigger element."},{"_id":"6633f37a23450f004663208f","term":"type inference","definition":"The ability to recognize input patterns and contextual cues to automatically determine data type without explicit declarations."}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[],"mdxMigrationStatus":"rdmd","metrics":{"monthlyLimit":0,"thumbsEnabled":true,"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":true},"name":"Sigma Computing","nav_names":{"docs":"Documentation","reference":"API Reference","changelog":"What's New","discuss":"","recipes":"API Recipes","tutorials":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":false,"domain":false,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"enterprise","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":true},"seo":{"overwrite_title_tag":false},"stable":{"_id":"649ca346fddb0a0067eb3bb9","version":"1.0","version_clean":"1.0.0","codename":"published release","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbd","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","651c34dcef8f7d0739f0173b","651c35f10173200035a349c0","651c36d1316003002b9ed00a","651c41952e7b890042b7ac08","651c41a7f4faca23b1574c49","651c41b113c6110067baacea","651c41d13a135100328c20e1","651c41fa36bd6c0744e775f2","651c4216f8718d00247b1a3a","651c4222ea0cf3005d770941","651c42300549a7000c374d0b","651c4246b391e10024bb7eb7","654c23e45c46e3001fe30231","654fa3e0eb858d002a30ea20","65528bc2d92a7a0010929ce3","6553805b6d22b5050b0d4ceb","6582405a0eea57006aed4eae","6583161b94525a000fcbbeed","6595d3a14c9897005b23823c","65a986b8232ad300548bd5c8","65b0a132512dd8004eced0ea","65b28293ef920800106c9d01","65cfb4006097150036c30aed","65d4ee5514e952003f783cb4","65d4ee76379a33006065466b","65f8f203690838004b91d149","65f8f304af8cd00025ffc68d","65f919d8f015400060e3c6ed","65f91d718b003f002bc7cb52","65f91e1aa36af9002c452747","65f91e8419171400198049e2","670971afbe04ab000f783a37","673f6ce14454f2006b52c16b","6791520ac0b8130053ef47c7","679a743bc633b8000fabb634","679a7804cfa7f900671aec24","679a7816dc56050024000e7e","679a7b5c5b2b3a0043f6b564","67ae45ac44ce8f006188ec6b","67d9afe618dc3d006c36bb6a","67d9b0a152539500604913e6","67d9b0aaada09900172d07fc","67d9b0adada09900172d07fe","67d9b0b0432e4100102b9258","67d9b0b2432e4100102b945f","67d9b0b4ada09900172d0809","67d9b0b7ada09900172d0a20","67d9b0b9ada09900172d0a22","67d9b0bcc39315006815a411","67d9b0bfc39315006815a413","67d9b0c2fd48c800596e8791","67d9b0c930e1140018fec2b3","67d9b0cdfd48c800596e879c","67d9b0d0d697d8002bdecb72","67d9b0d252a4f4006af0645c","67db3c5bc47e2800195583b4"],"project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2023-06-28T21:16:54.089Z","updatedAt":"2025-03-19T21:51:23.752Z","__v":1,"pdfStatus":"error"},"subdomain":"sigma-computing","subpath":"","superHubWaitlist":true,"topnav":{"left":[],"right":[{"type":"home"},{"type":"url","text":"Community","url":"https://community.sigmacomputing.com/"},{"type":"url","text":"QuickStarts","url":"https://quickstarts.sigmacomputing.com/"},{"type":"url","text":"Status","url":"https://status.sigmacomputing.com/"}],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2023-09-15T21:16:53.761Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"","versions":[{"_id":"649ca346fddb0a0067eb3bb9","version":"1.0","version_clean":"1.0.0","codename":"published release","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbd","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","651c34dcef8f7d0739f0173b","651c35f10173200035a349c0","651c36d1316003002b9ed00a","651c41952e7b890042b7ac08","651c41a7f4faca23b1574c49","651c41b113c6110067baacea","651c41d13a135100328c20e1","651c41fa36bd6c0744e775f2","651c4216f8718d00247b1a3a","651c4222ea0cf3005d770941","651c42300549a7000c374d0b","651c4246b391e10024bb7eb7","654c23e45c46e3001fe30231","654fa3e0eb858d002a30ea20","65528bc2d92a7a0010929ce3","6553805b6d22b5050b0d4ceb","6582405a0eea57006aed4eae","6583161b94525a000fcbbeed","6595d3a14c9897005b23823c","65a986b8232ad300548bd5c8","65b0a132512dd8004eced0ea","65b28293ef920800106c9d01","65cfb4006097150036c30aed","65d4ee5514e952003f783cb4","65d4ee76379a33006065466b","65f8f203690838004b91d149","65f8f304af8cd00025ffc68d","65f919d8f015400060e3c6ed","65f91d718b003f002bc7cb52","65f91e1aa36af9002c452747","65f91e8419171400198049e2","670971afbe04ab000f783a37","673f6ce14454f2006b52c16b","6791520ac0b8130053ef47c7","679a743bc633b8000fabb634","679a7804cfa7f900671aec24","679a7816dc56050024000e7e","679a7b5c5b2b3a0043f6b564","67ae45ac44ce8f006188ec6b","67d9afe618dc3d006c36bb6a","67d9b0a152539500604913e6","67d9b0aaada09900172d07fc","67d9b0adada09900172d07fe","67d9b0b0432e4100102b9258","67d9b0b2432e4100102b945f","67d9b0b4ada09900172d0809","67d9b0b7ada09900172d0a20","67d9b0b9ada09900172d0a22","67d9b0bcc39315006815a411","67d9b0bfc39315006815a413","67d9b0c2fd48c800596e8791","67d9b0c930e1140018fec2b3","67d9b0cdfd48c800596e879c","67d9b0d0d697d8002bdecb72","67d9b0d252a4f4006af0645c","67db3c5bc47e2800195583b4"],"project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2023-06-28T21:16:54.089Z","updatedAt":"2025-03-19T21:51:23.752Z","__v":1,"pdfStatus":"error"},{"_id":"66fef0381580a800453331ac","version":"0.0","version_clean":"0.0.0","codename":"Secret Staging Version","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","66fef0381580a80045332ddf","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","66fef0381580a80045332de0","651c35f10173200035a349c0","651c36d1316003002b9ed00a","66fef0381580a80045332de1","66fef0381580a80045332de2","66fef0381580a80045332de3","651c41d13a135100328c20e1","66fef0381580a80045332de4","651c4216f8718d00247b1a3a","66fef0381580a80045332de5","66fef0381580a80045332de6","66fef0381580a80045332de7","654c23e45c46e3001fe30231","66fef0381580a80045332de8","66fef0381580a80045332de9","66fef0381580a80045332dea","6582405a0eea57006aed4eae","66fef0381580a80045332deb","66fef0381580a80045332dec","66fef0381580a80045332ded","66fef0381580a80045332dee","66fef0381580a80045332def","66fef0381580a80045332df0","65d4ee5514e952003f783cb4","66fef0381580a80045332df1","66fef0381580a80045332df2","66fef0381580a80045332df3","66fef0381580a80045332df4","66fef0381580a80045332df5","66fef0381580a80045332df6","66fef0381580a80045332df7","6746100bfd182300476268a5","6746154522e4e000469a538b","674631ec8e18569cf1294407","674631f213c78000119224c9","674631f77e6ad7001d4ce737","67463ef86533e800104fd401","67463efd889e0e0038be1a99","684cc16f67868400105504b9"],"pdfStatus":"error","project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2024-10-03T19:27:52.123Z","updatedAt":"2025-06-14T00:25:19.495Z","__v":1,"forked_from":"649ca346fddb0a0067eb3bb9"}],"variableDefaults":[{"source":"security","type":"oauth2","_id":"65831239fc5926006d9736e8","name":"oauth2","apiSetting":"654c23e45c46e3001fe30230"},{"source":"security","type":"http","_id":"68534a78597e44005384d7c6","name":"basicAuth","scheme":"basic","apiSetting":"6583161b94525a000fcbbeeb"}],"webhookEnabled":false},"custom_domain":"help.sigmacomputing.com","childrenProjects":[],"derivedPlan":"enterprise","description":"Official documentation and help with data analysis and modeling, including guidance and best practices for building visualizations and dashboards for Sigma Computing, a cloud-based Business Intelligence (BI) platform.","isExternalSnippetActive":false,"error404":"custom-error-page","experiments":[],"first_page":"landing","flags":{"git":{"read":false,"write":false},"allowApiExplorerJsonEditor":false,"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowXFrame":true,"apiV2":false,"correctnewlines":false,"customBlocks":false,"dashQuickstart":false,"dashReact":true,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"enterprise":true,"graphql":false,"migrationRun":false,"migrationSwaggerRun":false,"newEditor":true,"newEditorDash":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":true,"speedyRender":false,"staging":false,"star":false,"superHub":false,"superHubBeta":false,"swagger":false,"translation":false,"useReactApp":true,"useReactGLP":true,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false},"fullBaseUrl":"https://help.sigmacomputing.com/","git":{"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[],"providers":[]}},"glossaryTerms":[{"_id":"64ada7f90ca32200383568a7","term":"CDW","definition":"Cloud data warehouse"},{"_id":"655e8c4ba56e64005448ecee","term":"DBMS","definition":"Database management system"},{"_id":"656ac7ed8e9cdc0045d6a1dc","term":"connection","definition":"[placeholder]"},{"_id":"656ac7f7a705200689a470a8","term":"database","definition":"[placeholder]"},{"_id":"656ac802c221800068b2e621","term":"schema","definition":"[placeholder]"},{"_id":"656ac80d312f4107a76fc745","term":"database table","definition":"[placeholder]"},{"_id":"661e0f1374c914004b2029aa","term":"sharing organization","definition":"In cross-org sharing, the Sigma organization that shares the workbook template with another organization."},{"_id":"661e0f3557912a00256ffca6","term":"receiving organization","definition":"In cross-org sharing, the Sigma organization that receives a shared workbook template from another organization."},{"_id":"662003129b691d001ef35c18","term":"trigger","definition":"In actions, the user interaction with a specific element (the trigger element)."},{"_id":"662003474df46c00118fac64","term":"effect","definition":"In actions, the defined response to the user interaction with a trigger element."},{"_id":"6633f37a23450f004663208f","term":"type inference","definition":"The ability to recognize input patterns and contextual cues to automatically determine data type without explicit declarations."}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"links"}],"mdxMigrationStatus":"rdmd","metrics":{"monthlyLimit":0,"thumbsEnabled":true,"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":true},"name":"Sigma Computing","nav_names":{"docs":"Documentation","reference":"API Reference","changelog":"What's New","discuss":"","recipes":"API Recipes","tutorials":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":false,"domain":false,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"enterprise","planOverride":"business","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":true},"seo":{"overwrite_title_tag":false},"siblings":[{"_id":"649ca345fddb0a0067eb3bb3","flags":{"allowApiExplorerJsonEditor":false,"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowXFrame":true,"correctnewlines":false,"dashReact":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"graphql":false,"migrationRun":false,"migrationSwaggerRun":false,"newEditor":true,"newEditorDash":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"speedyRender":false,"staging":false,"star":false,"superHub":false,"swagger":false,"translation":false,"useReactApp":true,"useReactGLP":true,"apiV2":false,"dashQuickstart":false,"git":{"read":false,"write":false},"superHubBeta":false,"customBlocks":false,"disableAutoTranslate":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":true},"nav_names":{"docs":"Documentation","reference":"API Reference","changelog":"What's New","discuss":"","recipes":"API Recipes","tutorials":""},"name":"Sigma Computing","subpath":"","subdomain":"sigma-computing","description":"Official documentation and help with data analysis and modeling, including guidance and best practices for building visualizations and dashboards for Sigma Computing, a cloud-based Business Intelligence (BI) platform.","robotsAllow":true,"is_active":true,"internal":"","owner":"649ca32661d50f005f8cc3cc","stable":"649ca346fddb0a0067eb3bb9","git":{"sync":{"connection":[],"github":[],"gitlab":[],"logs":[],"connections":[],"providers":[],"installationRequest":{}},"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}}},"mcp":{"state":"disabled"},"github_user":"","github_repo":"","github_color":"green_007200"}],"stable":{"_id":"649ca346fddb0a0067eb3bb9","version":"1.0","version_clean":"1.0.0","codename":"published release","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbd","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","651c34dcef8f7d0739f0173b","651c35f10173200035a349c0","651c36d1316003002b9ed00a","651c41952e7b890042b7ac08","651c41a7f4faca23b1574c49","651c41b113c6110067baacea","651c41d13a135100328c20e1","651c41fa36bd6c0744e775f2","651c4216f8718d00247b1a3a","651c4222ea0cf3005d770941","651c42300549a7000c374d0b","651c4246b391e10024bb7eb7","654c23e45c46e3001fe30231","654fa3e0eb858d002a30ea20","65528bc2d92a7a0010929ce3","6553805b6d22b5050b0d4ceb","6582405a0eea57006aed4eae","6583161b94525a000fcbbeed","6595d3a14c9897005b23823c","65a986b8232ad300548bd5c8","65b0a132512dd8004eced0ea","65b28293ef920800106c9d01","65cfb4006097150036c30aed","65d4ee5514e952003f783cb4","65d4ee76379a33006065466b","65f8f203690838004b91d149","65f8f304af8cd00025ffc68d","65f919d8f015400060e3c6ed","65f91d718b003f002bc7cb52","65f91e1aa36af9002c452747","65f91e8419171400198049e2","670971afbe04ab000f783a37","673f6ce14454f2006b52c16b","6791520ac0b8130053ef47c7","679a743bc633b8000fabb634","679a7804cfa7f900671aec24","679a7816dc56050024000e7e","679a7b5c5b2b3a0043f6b564","67ae45ac44ce8f006188ec6b","67d9afe618dc3d006c36bb6a","67d9b0a152539500604913e6","67d9b0aaada09900172d07fc","67d9b0adada09900172d07fe","67d9b0b0432e4100102b9258","67d9b0b2432e4100102b945f","67d9b0b4ada09900172d0809","67d9b0b7ada09900172d0a20","67d9b0b9ada09900172d0a22","67d9b0bcc39315006815a411","67d9b0bfc39315006815a413","67d9b0c2fd48c800596e8791","67d9b0c930e1140018fec2b3","67d9b0cdfd48c800596e879c","67d9b0d0d697d8002bdecb72","67d9b0d252a4f4006af0645c","67db3c5bc47e2800195583b4"],"project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2023-06-28T21:16:54.089Z","updatedAt":"2025-03-19T21:51:23.752Z","__v":1,"pdfStatus":"error"},"subdomain":"sigma-computing","subpath":"","superHubWaitlist":true,"topnav":{"left":[],"right":[{"type":"home","text":"Home"},{"type":"url","text":"Community","url":"https://community.sigmacomputing.com/"},{"type":"url","text":"QuickStarts","url":"https://quickstarts.sigmacomputing.com/"},{"type":"url","text":"Status","url":"https://status.sigmacomputing.com/"}],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2023-09-15T21:16:53.761Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"","versions":[{"_id":"66fef0381580a800453331ac","version":"0.0","version_clean":"0.0.0","codename":"Secret Staging Version","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","66fef0381580a80045332ddf","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","66fef0381580a80045332de0","651c35f10173200035a349c0","651c36d1316003002b9ed00a","66fef0381580a80045332de1","66fef0381580a80045332de2","66fef0381580a80045332de3","651c41d13a135100328c20e1","66fef0381580a80045332de4","651c4216f8718d00247b1a3a","66fef0381580a80045332de5","66fef0381580a80045332de6","66fef0381580a80045332de7","654c23e45c46e3001fe30231","66fef0381580a80045332de8","66fef0381580a80045332de9","66fef0381580a80045332dea","6582405a0eea57006aed4eae","66fef0381580a80045332deb","66fef0381580a80045332dec","66fef0381580a80045332ded","66fef0381580a80045332dee","66fef0381580a80045332def","66fef0381580a80045332df0","65d4ee5514e952003f783cb4","66fef0381580a80045332df1","66fef0381580a80045332df2","66fef0381580a80045332df3","66fef0381580a80045332df4","66fef0381580a80045332df5","66fef0381580a80045332df6","66fef0381580a80045332df7","6746100bfd182300476268a5","6746154522e4e000469a538b","674631ec8e18569cf1294407","674631f213c78000119224c9","674631f77e6ad7001d4ce737","67463ef86533e800104fd401","67463efd889e0e0038be1a99","684cc16f67868400105504b9"],"pdfStatus":"error","project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2024-10-03T19:27:52.123Z","updatedAt":"2025-06-14T00:25:19.495Z","__v":1,"forked_from":"649ca346fddb0a0067eb3bb9"},{"_id":"649ca346fddb0a0067eb3bb9","version":"1.0","version_clean":"1.0.0","codename":"published release","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbb","649ca346fddb0a0067eb3bbd","649ca346fddb0a0067eb3bc7","649cd2e58e830b0043594f7a","649cd2ecbb269f000a63887d","649cd31bbf00340bdef3e2f7","651c34dcef8f7d0739f0173b","651c35f10173200035a349c0","651c36d1316003002b9ed00a","651c41952e7b890042b7ac08","651c41a7f4faca23b1574c49","651c41b113c6110067baacea","651c41d13a135100328c20e1","651c41fa36bd6c0744e775f2","651c4216f8718d00247b1a3a","651c4222ea0cf3005d770941","651c42300549a7000c374d0b","651c4246b391e10024bb7eb7","654c23e45c46e3001fe30231","654fa3e0eb858d002a30ea20","65528bc2d92a7a0010929ce3","6553805b6d22b5050b0d4ceb","6582405a0eea57006aed4eae","6583161b94525a000fcbbeed","6595d3a14c9897005b23823c","65a986b8232ad300548bd5c8","65b0a132512dd8004eced0ea","65b28293ef920800106c9d01","65cfb4006097150036c30aed","65d4ee5514e952003f783cb4","65d4ee76379a33006065466b","65f8f203690838004b91d149","65f8f304af8cd00025ffc68d","65f919d8f015400060e3c6ed","65f91d718b003f002bc7cb52","65f91e1aa36af9002c452747","65f91e8419171400198049e2","670971afbe04ab000f783a37","673f6ce14454f2006b52c16b","6791520ac0b8130053ef47c7","679a743bc633b8000fabb634","679a7804cfa7f900671aec24","679a7816dc56050024000e7e","679a7b5c5b2b3a0043f6b564","67ae45ac44ce8f006188ec6b","67d9afe618dc3d006c36bb6a","67d9b0a152539500604913e6","67d9b0aaada09900172d07fc","67d9b0adada09900172d07fe","67d9b0b0432e4100102b9258","67d9b0b2432e4100102b945f","67d9b0b4ada09900172d0809","67d9b0b7ada09900172d0a20","67d9b0b9ada09900172d0a22","67d9b0bcc39315006815a411","67d9b0bfc39315006815a413","67d9b0c2fd48c800596e8791","67d9b0c930e1140018fec2b3","67d9b0cdfd48c800596e879c","67d9b0d0d697d8002bdecb72","67d9b0d252a4f4006af0645c","67db3c5bc47e2800195583b4"],"project":"649ca345fddb0a0067eb3bb3","releaseDate":"2023-06-28T21:16:54.076Z","createdAt":"2023-06-28T21:16:54.089Z","updatedAt":"2025-03-19T21:51:23.752Z","__v":1,"pdfStatus":"error"}],"variableDefaults":[{"source":"security","type":"oauth2","_id":"65831239fc5926006d9736e8","name":"oauth2","apiSetting":"654c23e45c46e3001fe30230"},{"source":"security","type":"http","_id":"68534a78597e44005384d7c6","name":"basicAuth","scheme":"basic","apiSetting":"6583161b94525a000fcbbeeb"}],"webhookEnabled":false,"parent":{"_id":"64dd46f6189ee3000dc7f014","appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#171717","main_alt":"","header_text":"","body_highlight":"","custom_login_link_color":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":""},"header":{"style":"solid","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"\n\n\n\n\n\n\n
\n
\n
\n

Sigma Documentation

\n

Explore feature overviews, step-by-step guides, FAQs, and more

\n \n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n \n
\n \n \n \n \n
What's New
\n
Keep up with our latest feature and function releases.
\n

Sigma's New Features

\n \"An\n
\n
\n \n\n
\n \n \n \n \n
Get Started
\n
Explore the possibilities with your data.
\n

Build with data

\n \"An\n
\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Data Apps
\n
Leverage write-back, layouts, and interactivity to build dynamic, user-driven applications.
\n

Optimize your workflows

\n \"An\n
\n
\n \n \n
\n \n \n \n \n
Workbooks
\n
Analyze data using spreadsheets and visualizations to tell stories your way.
\n

Spreadsheets & visualizations

\n \"An\n
\n
\n\n \n
\n \n \n \n \n
Data Modeling
\n
Curate, simplify, and join multiple data sources in Sigma data models and datasets.
\n

Join data sources

\n \"An\n
\n
\n\n \n
\n \n \n \n \n
Administration
\n
Manage people, teams, data warehouse connections, permissions and authentication.
\n

Govern with ease

\n \"An\n
\n
\n\n \n
\n \n \n \n \n
Embedded Analytics
\n
Prepare and embed Sigma analytics for internal, external, and custom use cases.
\n

Your vision in Sigma

\n \"An\n
\n
\n\n \n
\n \n \n \n \n \n
Functions
\n
Learn how to use Sigma functions in your data analysis.
\n

Excel with functions

\n \"An\n
\n
\n\n \n
\n \n \n \n \n \n
Developer Documentation
\n
Integrate our REST API into your workflow.
\n

Customize your workflow

\n \"An\n
\n
\n\n \n
\n \n \n \n \n \n
Get Help
\n
Get help through live chat, after-hours support, Zoom office hours, Sigma Community, and more.
\n

Expert support

\n \"An\n
\n
\n
\n","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":false,"theme":"line","colorScheme":"system","overlay":"triangles","landing":true,"sticky":false,"hide_logo":false,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":true,"logo":["https://files.readme.io/541e396-small-1687535336281.jpg","541e396-small-1687535336281.jpg",80,80,"#000000","https://files.readme.io/d88c51c-1687535336281.jpg","650b7041da875800608f4df4"],"loginLogo":["https://files.readme.io/541e396-small-1687535336281.jpg","541e396-small-1687535336281.jpg",80,80,"#000000","https://files.readme.io/d88c51c-1687535336281.jpg","650b7041da875800608f4df4"],"logo_white":[],"logo_white_use":false,"logo_large":false,"favicon":["https://files.readme.io/7b886c1-small-1687535336281.jpg","7b886c1-small-1687535336281.jpg",32,32,"#000000","https://files.readme.io/91c81e5-1687535336281.jpg","650b7046e2d693001e50361d"],"stylesheet":"","stylesheet_hub2":"/* ___ ReadMe Updates ____ */\n\n/*\nh1 {\n letter-spacing: -0.05em; \n}\n*/\n\n/* Font files are loaded via Custom Include Tags */\n\n:root,\napp,\nbody {\n font-family: 'DM Sans', sans-serif;\n --font-family: 'DM Sans', sans-serif;\n --fa-font-solid: 'Font Awesome 6 Pro';\n}\n/* RM - Make sure heading doesn't wrap */\n.heading.heading {\n width: 100%;\n}\n/* RM - Google Material Bubble Icon */\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n\n/* RM - dark mode defaults */\n[data-color-mode='dark'] {\n --color-bg-page: #171717;\n --AlgoliaSearch-background: #0, 0, 0 !important;\n}\n[data-color-mode='dark'] .AlgoliaSearch1uFG9utXJ4-6 {\n background-color: #171717;\n}\n[data-color-mode='dark'] .SearchBox-InputUQZAW9QXMe-c {\n background-color: #000;\n}\n[data-color-mode='dark'] .rm-SearchToggle {\n --SearchToggle-bg: #292929 !important;\n}\n[data-color-mode='dark'] .rm-Header {\n --Header-button-color: #f0f0f0;\n}\n\n/* Search dark mode fix */\n.ais-Snippet-highlighted::after {\n background: var(--color-text-default) !important;\n}\n\n.rm-Header {\n --Header-button-color: #f0f0f0;\n background-color: #171717;\n padding: 0.5rem 0 !important;\n}\n.rm-Guides #content-head h1 {\n font-size: 2.25rem;\n position: relative;\n z-index: 1;\n margin-top: 1rem;\n margin-bottom: 0;\n font-weight: 700;\n}\n.rm-Guides #content-head p {\n font-size: 15px;\n}\n.field-description dl dt,\n.markdown-body dl dt {\n font-size: 1em;\n font-style: normal;\n padding: 0;\n width: 100%;\n}\n.field-description dl dd,\n.markdown-body dl dd {\n padding: 0 !important;\n margin: 1rem 0 0 1rem !important;\n}\ndl {\n display: grid !important;\n grid-template-columns: auto 1fr !important;\n margin: 0 0 1rem 0 !important;\n}\ndt {\n grid-column: 1 !important;\n grid-row: span 10 !important;\n margin: 1rem 0 0 1.5rem !important;\n font-weight: 600 !important;\n overflow-wrap: break-word !important;\n}\ndd {\n grid-column: 2;\n margin: 1rem 0 0 1rem;\n}\ndd > p,\ndd > span {\n margin: 0 !important;\n padding-top: 0 !important;\n}\ndd + dd {\n margin-top: 0.25rem;\n}\ndt:first-child,\ndt:first-child + dd {\n margin-top: 0 !important;\n}\n.rdmd-table dt {\n margin: 1rem 0 0 0 !important;\n}\n.rdmd-table dt:first-child,\n.rdmd-table dt:first-child + dd {\n margin-top: 0 !important;\n}\n.App .rm-Changelog .rm-Article,\n.App .rm-CustomPage .rm-Article,\n.App .rm-Discuss .rm-Article,\n.App .rm-Guides .rm-Article,\n.App .rm-ReferenceMain .rm-Article,\n.App .rm-SuggestedEdits .rm-Article,\n.App .rm-SuggestionDiff .rm-Article {\n padding: 2rem 0 0 3rem !important;\n}\n\n/**** Sigma custom CSS ****/\n\n/*** fa icons ***/\n\n.fa-anchor::before {\n font-family: var(--fa-font-solid);\n content: '\\f13d';\n}\n.fa-caret-square-down:before {\n content: '\\f150';\n color: #6690ff !important;\n}\n\n/*** callouts ***/\n\n.callout[theme='📘'] {\n --emoji: unset;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_note.svg);\n --border: rgba(0, 92, 74, 0.8);\n --background: rgba(242, 247, 246, 1);\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .callout[theme='📘'] {\n background: rgba(0, 92, 74, 0.35) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_note_dark-mode.svg);\n --border: rgba(102, 157, 146, 0.7);\n }\n}\n[data-color-mode='dark'] .callout[theme='📘'] {\n background: rgba(0, 92, 74, 0.35) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_note_dark-mode.svg);\n --border: rgba(102, 157, 146, 0.7);\n}\n.callout[theme='💡'],\n.callout[theme='👍'] {\n --emoji: unset;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_tip.svg);\n --background: rgba(254, 251, 241) !important;\n --border: rgba(193, 168, 54, 1);\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .callout[theme='💡'],\n [data-color-mode='system'] .callout[theme='👍'] {\n background: rgba(193, 168, 54, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_tip_dark-mode.svg);\n }\n}\n[data-color-mode='dark'] .callout[theme='💡'],\n[data-color-mode='dark'] .callout[theme='👍'] {\n background: rgba(193, 168, 54, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_tip_dark-mode.svg);\n}\n.callout[theme='🚧'] {\n --emoji: unset;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_warning.svg);\n --background: rgba(255, 245, 245) !important;\n --border: rgba(237, 94, 79, 1);\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .callout[theme='🚧'] {\n background: rgba(237, 94, 79, 0.2) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_warning_dark-mode.svg);\n --border: rgba(237, 94, 79, 0.6);\n }\n}\n[data-color-mode='dark'] .callout[theme='🚧'] {\n background: rgba(237, 94, 79, 0.2) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_warning_dark-mode.svg);\n --border: rgba(237, 94, 79, 0.6);\n}\n.callout[theme='🚩'] {\n --emoji: unset;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_important.svg);\n --background: rgba(248, 244, 247) !important;\n --border: rgba(150, 79, 125, 0.8);\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .callout[theme='🚩'] {\n background: rgba(150, 79, 125, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_important_dark-mode.svg);\n --border: rgba(192, 149, 177, 0.5);\n }\n}\n[data-color-mode='dark'] .callout[theme='🚩'] {\n background: rgba(150, 79, 125, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_important_dark-mode.svg);\n --border: rgba(192, 149, 177, 0.5);\n}\n.callout[theme='🚀'] {\n --emoji: unset;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_data-pro.svg);\n --background: rgba(243, 246, 255) !important;\n --border: rgba(0, 4, 225, 0.6);\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .callout[theme='🚀'] {\n background: rgba(66, 69, 255, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_data-pro_dark-mode.svg);\n --border: rgba(102, 144, 255, 0.6);\n }\n}\n[data-color-mode='dark'] .callout[theme='🚀'] {\n background: rgba(66, 69, 255, 0.25) !important;\n --icon: url(https://sigma-docs-screenshots.s3.us-west-2.amazonaws.com/Icons/Callout+icons/callout-icon_data-pro_dark-mode.svg);\n --border: rgba(102, 144, 255, 0.6);\n}\n.callout.callout {\n border-left: 4px solid var(--border);\n border-radius: 4px;\n padding: 0.75rem 0.75rem 0.75rem 1.5rem;\n margin-bottom: 1.5rem !important;\n display: block;\n width: 100%;\n float: left;\n}\n.callout-heading {\n --title: var(--text);\n}\n.callout-heading p {\n font-size: var(--markdown-font-size, 14px);\n font-weight: 400;\n line-height: var(--markdown-line-height);\n}\n\n.callout-heading li {\n font-size: var(--markdown-font-size, 14px);\n font-weight: 400;\n}\n\n.callout-icon::before {\n top: 0.85rem;\n}\n.callout.callout .callout-heading.empty {\n margin-top: 0;\n}\n.callout.callout ul,\n.callout.callout ol {\n padding-left: 2rem;\n}\n.callout.callout a {\n color: #4245ff;\n}\n\n/*** sidenav, sidebar (toc), header, footer ***/\n\n.reference-redesign.Nav3C5f8FcjkaHj.rm-Sidebar_guides .rm-Sidebar {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n.reference-redesign [class*='Sidebar-heading'] {\n font-size: 0.95rem;\n padding-left: 0;\n}\n.reference-redesign .Sidebar-link-buttonWrapper3hnFHNku8_BJ {\n padding-right: 0.25rem;\n}\n\n.reference-redesign .Sidebar-link2Dsha-r-GKh2:active,\n.reference-redesign .Sidebar-link2Dsha-r-GKh2.active {\n background: none;\n color: #4245ff;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system']\n .reference-redesign\n .Sidebar-link2Dsha-r-GKh2:active,\n [data-color-mode='system']\n .reference-redesign\n .Sidebar-link2Dsha-r-GKh2.active {\n background: none;\n color: #6690ff !important;\n }\n}\n[data-color-mode='dark'] .reference-redesign .Sidebar-link2Dsha-r-GKh2:active,\n[data-color-mode='dark'] .reference-redesign .Sidebar-link2Dsha-r-GKh2.active {\n background: none;\n color: #6690ff !important;\n padding-left: 1.2rem;\n}\n.content-toc {\n padding-top: 0;\n top: 2rem;\n}\n.content-toc .tocHeader,\n.content-toc a {\n font-size: 0.85rem;\n}\nnav ul.toc-list li.toc-children ul li.active > a {\n color: #4245ff !important;\n font-family: inherit;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] nav ul.toc-list li.toc-children ul li.active > a {\n color: #6690ff !important;\n }\n}\n[data-color-mode='dark'] nav ul.toc-list li.toc-children ul li.active > a {\n color: #6690ff !important;\n}\n\n/*** article ***/\n\n.field-description,\n.markdown-body {\n padding-bottom: 1rem;\n}\n.rm-Guides .DateLine {\n display: none;\n}\n.App .rm-SuggestedEdits .rm-Article,\n.App .rm-SuggestionDiff .rm-Article,\n.App .rm-Guides .rm-Article,\n.App .rm-ReferenceMain .rm-Article,\n.App .rm-Changelog .rm-Article,\n.App .rm-Discuss .rm-Article,\n.App .rm-CustomPage .rm-Article {\n padding: 2rem;\n}\np > span > span > img {\n margin-bottom: 0.5rem;\n}\n\n/*** release notes ***/\n\n.ChangelogPost_text25nFcEF_ZQyf {\n margin-bottom: unset;\n}\n[class*='ChangelogPage_list'] {\n padding-left: 1.5rem;\n padding-bottom: 0.5rem;\n gap: var(--md);\n}\n\n.rm-Changelog h2:first-child {\n border-top: 0;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .rm-Changelog h2:first-child {\n border-top: 0;\n }\n}\n[data-color-mode='dark'] .rm-Changelog h2:first-child {\n border-top: 0;\n}\n\n.whats-new h3,\n.rm-Changelog h3 {\n margin-top: 1.5rem;\n}\n.whats-new h3:first-child,\n.rm-Changelog h3:first-child {\n margin-top: 0.5rem;\n}\n.whats-new h4,\n.rm-Changelog h4 {\n margin-top: 1.5rem;\n margin-left: 1rem;\n}\n.whats-new h4:before,\n.rm-Changelog h4:before {\n font-family: var(--fa-font-solid);\n font-weight: 900;\n margin-right: 0.5em;\n content: '\\f101';\n color: #6690ff;\n}\n.whats-new p,\n.whats-new p + ol,\n.whats-new p + ul,\n.whats-new dl,\n.rm-Changelog p,\n.rm-Changelog p + ol,\n.rm-Changelog p + ul,\n.rm-Changelog dl {\n margin-left: 2.45rem;\n}\n.whats-new dt,\n.rm-Changelog dt {\n margin-left: 3.5rem !important;\n}\n.whats-new ul,\n.whats-new ol,\n.rm-Changelog ul,\n.rm-Changelog ol {\n padding-left: 2.25rem;\n}\n.whats-new .rdmd-table,\n.rm-Changelog .rdmd-table {\n margin-left: 2.5rem;\n margin-bottom: 1rem;\n}\n.whats-new pre,\n.rm-Changelog pre {\n margin-left: 2.5rem;\n}\n.whats-new li > p,\n.rm-Changelog li > p {\n margin-left: 0;\n}\n.whats-new .callout,\n.rm-Changelog .callout {\n margin-left: 2.5rem;\n}\n.whats-new .callout h2,\n.rm-Changelog .callout h2,\n.whats-new .callout p,\n.rm-Changelog .callout p {\n margin-right: 2.5rem;\n}\n\n.whats-new iframe,\n.rm-Changelog iframe {\n margin-left: 2.45rem !important;\n width: 95%;\n}\n\n/*** lines, breaks, headings, text ***/\n\n.field-description strong,\n.markdown-body strong {\n font-weight: 700;\n}\n.margin-top-0 {\n margin-top: 0;\n}\n.margin-bot-0 {\n margin-bottom: 0;\n}\n.heading.heading-2 {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative;\n border-top: 1px solid #d1d1d1;\n padding-top: 20px;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .heading.heading-2 {\n border-top: 1px solid #d1d1d150;\n }\n}\n[data-color-mode='dark'] .heading.heading-2 {\n border-top: 1px solid #d1d1d150;\n}\n\n.rm-Guides #content-head h1 {\n margin-top: 0;\n}\n.markdown-body h2 {\n font-size: var(--markdown-title-size, 2em);\n}\n.markdown-body h3 {\n font-size: var(--markdown-title-size, 1.5em);\n margin-top: 2rem;\n}\n.markdown-body h4 {\n margin-top: 1.25em;\n\tfont-size: 1.15em;\n}\n\n/*\ndiv + h4 {\n margin-top: 1.75em;\n}\n*/\n\n.rm-Guides #content-head {\n border-bottom: 0 !important;\n padding-bottom: 30px;\n}\n.rm-Guides #content-head .excerpt {\n margin-top: 15px;\n margin-bottom: -20px;\n}\n.rm-Guides .content-body {\n padding-top: 0 !important;\n}\n.markdown-body a {\n color: #4245ff;\n text-decoration: none;\n font-weight: 500;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .markdown-body a {\n color: #6690ff !important;\n text-decoration: none;\n }\n}\n[data-color-mode='dark'] .markdown-body a {\n color: #6690ff !important;\n text-decoration: none;\n}\n.App .rm-Guides a:hover,\n.App .rm-Changelog a:hover {\n text-decoration: underline;\n}\n.rm-Sidebar a:hover {\n text-decoration: none !important;\n}\n.field-description a[href],\n.field-description a:not([href='']),\n.markdown-body a[href],\n.markdown-body a:not([href='']) {\n text-decoration: none;\n}\n.markdown-body li ul {\n margin-top: 0.5rem;\n}\n.no-wrap {\n white-space: nowrap; /* prevents line breaks */\n}\n\n/*** tables ***/\n\n:root {\n --table-alt-bg-1: #c6c6c6;\n --table-alt-bg-2: #dddddd;\n --table-alt-bg-3: #e9e9e9;\n --table-alt-bg-4: #e9e9e975;\n --table-alt-bg-dark-1: #565f65;\n --table-alt-bg-dark-2: #444e54;\n --table-alt-bg-dark-3: #363e43;\n --table-alt-bg-dark-4: #363e4375;\n}\n\np:has(+ div.rdmd-table) {\n margin-bottom: 0.5rem;\n}\n\n.rdmd-table:has(+ blockquote) {\n margin-bottom: 1rem;\n}\n\n.alt-bg-1 {\n background-color: var(--table-alt-bg-1) !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .alt-bg-1 {\n background-color: var(--table-alt-bg-dark-1) !important;\n }\n}\n[data-color-mode='dark'] .alt-bg-1 {\n background-color: var(--table-alt-bg-dark-1) !important;\n}\n\n.alt-bg-2 {\n background-color: var(--table-alt-bg-2) !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .alt-bg-2 {\n background-color: var(--table-alt-bg-dark-2) !important;\n }\n}\n[data-color-mode='dark'] .alt-bg-2 {\n background-color: var(--table-alt-bg-dark-2) !important;\n}\n\n.alt-bg-3 {\n background-color: var(--table-alt-bg-3) !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .alt-bg-3 {\n background-color: var(--table-alt-bg-dark-3) !important;\n }\n}\n[data-color-mode='dark'] .alt-bg-3 {\n background-color: var(--table-alt-bg-dark-3) !important;\n}\n\n.alt-bg-4 {\n background-color: var(--table-alt-bg-4) !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .alt-bg-4 {\n background-color: var(--table-alt-bg-dark-4) !important;\n }\n}\n[data-color-mode='dark'] .alt-bg-4 {\n background-color: var(--table-alt-bg-dark-4) !important;\n}\n\n.markdown-body .rdmd-table table:only-child thead th {\n background: #e9e9e9;\n}\n\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system']\n .markdown-body\n .rdmd-table\n table:only-child\n thead\n th {\n background: #444e54;\n }\n}\n[data-color-mode='dark'] .markdown-body .rdmd-table table:only-child thead th {\n background: #444e54;\n}\n\n.markdown-body table {\n border: none;\n --table-stripe: none;\n --table-edges: none;\n width: auto;\n text-align: left;\n}\n\n.markdown-body table th {\n vertical-align: bottom;\n padding: 0.5rem 0.75rem;\n}\n\n.markdown-body table td {\n vertical-align: top;\n padding: 0.5rem 0.75rem;\n}\n\ntable td p:not(:last-child) {\n margin-bottom: 0.5rem;\n}\n\n.table-a th {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a th {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-a th {\n border-color: #d8d8d845 !important;\n}\n\n.table-a td {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a td {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-a td {\n border-color: #d8d8d845 !important;\n}\n\n.table-a2 th,\n.table-a2 td {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a2 th,\n [data-color-mode='system'] .table-a2 td {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-a2 th,\n[data-color-mode='dark'] .table-a2 td {\n border-color: #d8d8d845 !important;\n}\n\n.table-a2 td:first-child {\n background-color: #e9e9e975;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a2 td:first-child {\n background-color: #363e4395 !important;\n }\n}\n[data-color-mode='dark'] .table-a2 td:first-child {\n background-color: #363e4395 !important;\n}\n\n.table-a3 tr,\n.table-a3 td {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a3 tr,\n [data-color-mode='system'] .table-a3 td {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-a3 tr,\n[data-color-mode='dark'] .table-a3 td {\n border-color: #d8d8d845 !important;\n}\n\n.table-a4 tr,\n.table-a4 td {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a4 tr,\n [data-color-mode='system'] .table-a4 td {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-a4 tr,\n[data-color-mode='dark'] .table-a4 td {\n border-color: #d8d8d845 !important;\n}\n\n.table-a4 td:first-child {\n background-color: #e9e9e975;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-a4 td:first-child {\n background-color: #363e4395 !important;\n }\n}\n[data-color-mode='dark'] .table-a4 td:first-child {\n background-color: #363e4395 !important;\n}\n\n.table-b tr {\n border-bottom: 1px solid #d8d8d8;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-b tr {\n border-bottom: 1px solid #d8d8d845;\n }\n}\n[data-color-mode='dark'] .table-b tr {\n border-bottom: 1px solid #d8d8d845;\n}\n\n.table-b td {\n background-color: #fcfcfc;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-b td {\n background-color: #303b4265;\n }\n}\n[data-color-mode='dark'] .table-b td {\n background-color: #303b4265;\n}\n\n.table-b2 tr {\n border-bottom: 1px solid #d8d8d8;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-b2 tr {\n border-bottom: 1px solid #d8d8d845;\n }\n}\n[data-color-mode='dark'] .table-b2 tr {\n border-bottom: 1px solid #d8d8d845;\n}\n\n.table-b2 td:not(:first-child) {\n background-color: #fcfcfc !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-b2 td:not(:first-child) {\n background-color: #303b4265 !important;\n }\n}\n[data-color-mode='dark'] .table-b2 td:not(:first-child) {\n background-color: #303b4265 !important;\n}\n\n.table-b2 td:first-child {\n background-color: #e9e9e975;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-b2 td:first-child {\n background-color: #363e4395 !important;\n }\n}\n[data-color-mode='dark'] .table-b2 td:first-child {\n background-color: #363e4395 !important;\n}\n\n.table-d th:not(:first-child),\n.table-d td {\n border: 1px solid #d8d8d8 !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-d th:not(:first-child),\n [data-color-mode='system'] .table-d td {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-d th:not(:first-child),\n[data-color-mode='dark'] .table-d td {\n border-color: #d8d8d845 !important;\n}\n\n.table-d th {\n font-weight: bold;\n}\n\n.table-d th:first-child {\n background-color: var(--color-bg-page) !important;\n border-top: none;\n border-left: none;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-d th:first-child {\n background-color: var(--color-bg-page) !important;\n }\n}\n[data-color-mode='dark'] .table-d th:first-child {\n background-color: var(--color-bg-page) !important;\n}\n\n.table-d td:first-child {\n background-color: #e9e9e975;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-d td:first-child {\n background-color: #363e43;\n }\n}\n[data-color-mode='dark'] .table-d td:first-child {\n background-color: #363e43;\n}\n\n.table-e {\n border-collapse: collapse;\n width: 100%;\n}\n\n.table-e td,\n.table-e th {\n border: 1px solid #d8d8d8;\n padding: 8px;\n text-align: left;\n}\n\n.table-e td:first-child,\n.table-e th:first-child {\n border-left: none;\n background: none;\n}\n\n.table-e td:not(:first-child),\n.table-e th:not(:first-child) {\n border-bottom: 1px solid #d8d8d8;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-e th:not(:first-child),\n [data-color-mode='system'] .table-e td:not(:first-child) {\n border-color: #d8d8d845 !important;\n }\n}\n[data-color-mode='dark'] .table-e th:not(:first-child),\n[data-color-mode='dark'] .table-e td:not(:first-child) {\n border-color: #d8d8d845 !important;\n}\n\n.table-e th:first-child {\n background-color: var(--color-bg-page) !important;\n border-top: none;\n border-left: none;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .table-e th:first-child {\n background-color: var(--color-bg-page) !important;\n }\n}\n[data-color-mode='dark'] .table-e th:first-child {\n background-color: var(--color-bg-page) !important;\n}\n\n.grid {\n margin: 0 0.5rem 0 0;\n --table-edges: none;\n}\n\n.grid .rdmd-table td {\n padding: 1rem;\n}\n\n.grid-list {\n margin: 0 0 1rem 0;\n padding-bottom: 0.5rem;\n --table-edges: none;\n}\n\n.grid-list .rdmd-table td {\n padding: 0.5rem;\n}\n\n.grid-list .rdmd-table td:first-child img {\n margin: 0 auto;\n}\n\n.center .rdmd-table td:first-child {\n text-align: center !important;\n}\n\nth.top-lev {\n background-color: #d5d5d5;\n}\n\ntd.header-col,\n.header-col {\n background-color: #f4f4f4;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] td.header-col {\n background-color: #303b42b0;\n }\n}\n[data-color-mode='dark'] td.header-col {\n background-color: #303b42b0;\n}\n\ntd.header-colspan,\ntd.header-colspan p {\n background-color: #e5e5e5;\n font-weight: 600;\n}\n\n.matrix-text-center th:not(:first-child),\n.matrix-text-center td:not(:first-child) {\n text-align: center !important;\n}\n\n.function-list td:first-child {\n min-width: 150px;\n font-weight: 600;\n}\n\n.full-width table {\n width: 100%;\n}\n\n.header-col-200 td:first-child {\n width: 200px;\n}\n\n.alt-row-header tr:nth-child(2n) {\n background-color: #e9e9e9 !important;\n font-weight: 600;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .alt-row-header tr:nth-child(2n) {\n background-color: #444e54 !important;\n }\n}\n[data-color-mode='dark'] .alt-row-header tr:nth-child(2n) {\n background-color: #444e54 !important;\n}\n\n.markdown-body table li > p {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.markdown-body table li + li {\n margin-top: 0.5em;\n}\n\n.col-3-thumb th:nth-child(3) {\n width: 30%;\n word-wrap: break-word;\n}\n\n.subheader-row tr:nth-child(1) {\n background-color: #e9e9e975;\n font-weight: 600;\n}\n\n/*** disclosure (accordion) widget ***/\n\ndetails > summary {\n list-style: none;\n}\ndetails > summary::-webkit-details-marker {\n display: none;\n}\ndetails > summary::before {\n font-family: var(--fa-font-solid);\n content: '\\f0fe';\n font-weight: 900;\n padding-right: 5px;\n color: #4245ff;\n}\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] details > summary::before {\n color: #6690ff;\n }\n}\n[data-color-mode='dark'] details > summary::before {\n color: #6690ff;\n}\ndetails[open] > summary::before {\n content: '\\f146';\n}\n\n/*** workflow expand/collapse ***/\n\ndetails.workflow {\n margin-left: 1rem;\n}\ndetails.workflow summary {\n margin-bottom: 1rem;\n}\ndetails.workflow blockquote,\ndetails.workflow dl,\ndetails.workflow ol,\ndetails.workflow p,\ndetails.workflow pre,\ndetails.workflow table {\n margin: 0.5rem 0 0 1rem;\n}\ndetails.workflow li > p {\n margin-left: 0 !important;\n}\ndetails.workflow ul {\n margin: 0 0 1.5rem 1rem !important;\n}\n\n/*** FAQ expand/collapse ***/\n\ndetails.faq {\n margin-left: 1rem;\n}\ndetails.faq summary {\n font-weight: 600;\n font-style: italic;\n text-indent: -1.2rem;\n padding-left: 1.1rem;\n}\ndetails.faq > summary::before {\n font-style: normal;\n}\ndetails.faq blockquote,\ndetails.faq dl,\ndetails.faq ol,\ndetails.faq p,\ndetails.faq pre,\ndetails.faq table,\ndetails.faq ul {\n margin: 0.5rem 0 0 1.1rem;\n}\n\n/*** Custom footnote styles ***/\n\n.footnote {\n display: flex;\n align-items: baseline;\n}\n.footnote-marker {\n font-size: smaller;\n margin-right: 0.25em;\n position: relative;\n top: -0.25rem;\n}\n.footnote-content {\n font-style: italic;\n font-size: 0.9rem;\n}\n\n/*** code block ***/\n\n.markdown-body code,\n.markdown-body pre {\n background-color: #f3f3f4;\n}\n.markdown-body pre {\n display: block;\n overflow: auto;\n white-space: pre-wrap;\n padding: 0;\n max-height: 90vh;\n}\n\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .markdown-body pre,\n [data-color-mode='system'] .markdown-body code {\n background: #3b4852;\n }\n}\n\n[data-color-mode='dark'] .markdown-body pre,\n[data-color-mode='dark'] .markdown-body code {\n background: #3b4852;\n}\n\n.CodeTabs-toolbar {\n background: #e7e9ec;\n}\n\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .CodeTabs-toolbar,\n [data-color-mode='system'] .CodeTabs-toolbar button {\n background: #4f5a66;\n }\n}\n\n[data-color-mode='dark'] .CodeTabs-toolbar,\n[data-color-mode='dark'] .CodeTabs-toolbar button {\n background: #4f5a66;\n}\n\n.CodeTabs.CodeTabs_initial .CodeTabs-toolbar button:first-child,\n.CodeTabs-toolbar button.CodeTabs_active {\n background: #f3f3f4;\n}\n\n@media (prefers-color-scheme: dark) {\n [data-color-mode='system'] .CodeTabs-toolbar button.CodeTabs_active {\n background: #3b4852 !important;\n }\n}\n\n[data-color-mode='dark'] .CodeTabs-toolbar button.CodeTabs_active {\n background: #3b4852 !important;\n}\n\n.break-string pre code {\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/*** lists ***/\n\n.field-description ol ol,\n.field-description ul ol,\n.markdown-body ol ol,\n.markdown-body ul ol {\n list-style-type: lower-alpha;\n}\n\n.field-description ol ol ol,\n.field-description ul ol ol,\n.markdown-body ol ol ol,\n.markdown-body ul ol ol {\n list-style-type: lower-roman;\n}\n\n.field-description ol ol,\n.field-description ol ul,\n.field-description ul ol,\n.field-description ul ul,\n.markdown-body ol ol,\n.markdown-body ol ul,\n.markdown-body ul ol,\n.markdown-body ul ul {\n margin-bottom: 0.5rem !important;\n}\n\n.markdown-body ol > li:not(:has(> p)) {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.markdown-body li + li {\n margin-top: 0.5rem;\n}\n\nol > li blockquote.callout.callout_default {\n margin-top: 0.5rem;\n}\n\n/*** related resources ***/\n\n.APISectionHeader-heading4MUMLbp4_nLs {\n font-size: 0.9rem;\n}\n\n.WhatsNext-wrapper3DTnpcPqKoHg ul li a {\n color: #4245ff;\n}\n\n.rm-Guides .PaginationControlsjDYuqu8pBMUy {\n display: none;\n}\n\n/*** custom page ***/\n\n.rm-CustomPage #content-container {\n margin: 3rem auto 2rem auto;\n}\n\n/*** suggested edits menu ***/\n\n.SuggestedEditsSubnav2cMzYf_z2E1a button {\n display: none;\n}\n\n/*** icons ***/\n:root {\n --icon-color: 171717; /* Default for light mode */\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --icon-color: 7f7f7f; /* Auto-switch for dark mode */\n }\n}\n\n/*** images ***/\n\n.markdown-body img {\n vertical-align: top;\n}\n.intro {\n max-width: 500px;\n}\ntd img {\n margin-left: 0 !important;\n}\n\np > span > span > img {\n margin-bottom: 0;\n}\n\n/*** image styles (to deprecate) ***/\n\n.screen {\n display: block;\n padding-top: 1.5rem;\n margin-left: unset;\n margin-right: unset;\n}\n.inline-icon-iso {\n /*isolated icon - no text*/\n display: inline;\n margin: 0 0.13rem;\n position: relative;\n top: 0.2rem;\n height: 1.25rem;\n vertical-align: baseline !important;\n}\n.inline-icon-left {\n /*icon followed by label*/\n display: inline;\n margin: 0 0 0 0.13rem;\n position: relative;\n top: 0.13rem;\n height: 1.25rem;\n vertical-align: baseline !important;\n}\nli .inline-icon-iso {\n display: inline;\n margin: 0 0.13rem;\n position: relative;\n top: 0.13rem;\n height: 1.25rem;\n}\nli .inline-icon-left {\n display: inline;\n margin: 0 0 0 0.13rem;\n position: relative;\n top: 0.13rem;\n height: 1.25rem;\n}\n\n/*** drafting ***/\n\n.draft,\n.draft table {\n color: #dd0000;\n}\n\n/*** RM - footer ***/\n\n.footer {\n background-color: #000;\n color: #fff;\n padding: 50px 0;\n font-family: 'DM Sans', sans-serif;\n}\n\n.footer .container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 20px;\n}\n\n.resources {\n width: 297px;\n height: 173px;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n gap: 12px;\n}\n\n.footer-link {\n display: inline-flex;\n justify-content: flex-start;\n align-items: center;\n gap: 15px;\n color: white;\n font-size: 17.5px;\n font-family: 'DM Sans', sans-serif;\n font-weight: 400;\n line-height: 25px;\n word-wrap: break-word;\n}\n\n.footer-link img {\n width: 24px;\n height: 24px;\n color: white;\n}\n\n.copyright {\n color: var(--product-background-9, #8c8c8c);\n font-family: 'DM Sans', sans-serif;\n font-size: 17.5px;\n font-style: normal;\n font-weight: 400;\n line-height: 25px;\n /* display: inline-flex;\n flex-direction: row;\n gap: 4px; */\n text-align: right;\n width: 100%;\n margin-top: -25px;\n}\n.copyrighty {\n color: var(--product-background-9, #8c8c8c);\n text-align: right;\n width: 100%;\n margin-top: auto;\n}\n\n.intercom-lightweight-app-launcher-custom-icon-open {\n margin-bottom: 0px !important;\n}\n\n@media screen and (max-width: 960px) {\n .resources {\n width: 100%;\n height: auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 12px;\n }\n .footer-link {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #fff;\n font-family: 'DM Sans', sans-serif;\n font-size: 17.5px;\n font-style: normal;\n line-height: 25px;\n }\n .copyright {\n font-size: 17.5px;\n font-style: normal;\n line-height: 25px;\n text-align: center;\n width: 100%;\n margin-top: 20px;\n }\n}\n\n.markdown-body kbd {\n font-size: 12px;\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"//-------------------------------------------------//\n// #3 Collapsible sidebar navigation\n$(window).on(\"pageLoad\", function (e, state) {\n // This event handler runs when the page loads.\n\n // Collapse navigation in the sidebar initially\n $(\".rm-Sidebar-section > .rm-Sidebar-list\").addClass(\"section-collapsed\");\n // Adds a class to collapse all sidebar sections by default.\n\n $(\".rm-Sidebar-heading\").append(\"\");\n // Appends a chevron icon to each sidebar heading for visual indication of collapsibility.\n\n if ($(\".rm-Sidebar-link.active\").length > 0) {\n // Checks if there are any active links in the sidebar.\n\n console.log(\"testing - > 0\");\n\n $(\".rm-Sidebar-link.active\")\n .parents(\".rm-Sidebar-list\")\n .addClass(\"section-list-expanded\");\n // If an active link is found, its parent list is expanded.\n\n $(\".rm-Sidebar-link.active\")\n .parents(\".rm-Sidebar-section\")\n .children(\".rm-Sidebar-heading\")\n .addClass(\"section-expanded\");\n // The corresponding section heading is also expanded.\n }\n});\n\n$(document).on(\"click\", \".rm-Sidebar-heading\", function () {\n // This event handler is for clicking on the sidebar headings.\n\n if ($(this).hasClass(\"section-expanded\")) {\n // If the clicked heading is already expanded, do nothing.\n } else {\n // If the clicked heading is not expanded, collapse all sections.\n $(\".section-expanded, .section-list-expanded\").removeClass(\n \"section-expanded section-list-expanded\"\n );\n }\n\n // Toggle the expansion state of the clicked heading and its corresponding list.\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n});\n\n$(function () {\n // This function runs when the DOM is fully loaded.\n\n // Hide all expandable content sections by default.\n $(\".expand-content\").hide();\n let hidden = true;\n\n $(\".expand-trigger\").on(\"click\", function () {\n // This event handler is for clicking on the trigger to expand content sections.\n\n $(\".expand-content\").toggle();\n // Toggles the visibility of the expandable content sections.\n\n hidden = !hidden;\n // Updates the hidden state.\n\n return hidden\n ? $(\".expand-trigger\").find(\"span\").text(\"Show\")\n : $(\".expand-trigger\").find(\"span\").text(\"Hide\");\n // Changes the text of the trigger based on the hidden state.\n });\n});\n\n//-------------------------------------------------//\n\n// #4 Align Images Left by default per request\n$(window).on('pageLoad', function(e, state) {\n // Introduce a 1-second delay using setTimeout\n setTimeout(function() {\n // Select all images that are not inside

, , or
  • elements within
  • , or
  • elements within