';\n }\n $codeBlocksGroup.wrapAll(wrappingDiv);\n }\n });\n}\n\nexport { setupLanguageMenuForCodeGroup };\n","function menuItem(key) {\n const { id, name } = this.supportedLanguages[key] || {};\n\n return `\n `.trim();\n}\n\nfunction codeBlockMenu(string) {\n return `\n `.trim();\n}\n\nfunction groupNote(visible = false) {\n return `\n `.trim();\n}\n\nexport default {\n menuItem,\n codeBlockMenu,\n groupNote,\n};\n","/* eslint-disable func-names */\n/* global AblyPageData */\n\n/*\n *\n * Global dependencies (closure scope arguments)\n *\n * \"NavLangs\" is injected by Ruby as an inline script tag\n * see: /app/helpers/documentation_helper.rb:\n *\n * \"CodeWindow\" is initialized by:\n * /app/assets/javascripts/modules/code_window.js.coffee\n *\n * \"Helpers\" is initialized by:\n * /app/assets/javascripts/modules/documentation/helpers.js\n *\n */\n\nimport getSupportedLanguages from './getSupportedLanguages';\nimport getPermittedLanguages from './getPermittedLanguages';\nimport getFriendlyLanguage from './getFriendlyLanguage';\nimport languageAvailableOnPage from './languageAvailableOnPage';\nimport setLanguageHintVisibility from './setLanguageHintVisibility';\nimport setupLanguageNavigation from './setupLanguageNavigation';\nimport renderDocumentationNavigation from './renderDocumentationNavigation';\nimport setupPermittedLanguages from './setupPermittedLanguages';\nimport groupLanguageSpecificContent from './groupLanguageSpecificContent';\nimport wrapAndGroupCodeBlocks from './wrapAndGroupCodeBlocks';\nimport htmlTemplates from './htmlTemplates';\n\n((global, $, erb) => {\n // External dependencies\n const code = global.CodeWindow;\n const helpers = global.Helpers;\n\n const methods = {\n body: $('body.page-documentation'),\n html: htmlTemplates,\n helpers,\n code,\n\n // Use internal Proxy to break global reference\n permittedLanguageKeys: getPermittedLanguages(erb),\n supportedLanguages: getSupportedLanguages(erb),\n navigationLanguages: [...(global.NavLangs || [])],\n\n // External references:\n // javascripts/page/documentation.js.coffee\n // - DocLang.setupPermittedLanguages()\n // - DocLang.setupLanguageNavigationMenu()\n // - DocLang.groupLanguageSpecificContent($body)\n // - DocLang.wrapAndGroupCodeBlocks($body)\n // - DocLang.languageAvailableOnPage(language)\n\n wrapAndGroupCodeBlocks,\n languageAvailableOnPage,\n groupLanguageSpecificContent,\n setupPermittedLanguages,\n setupLanguageNavigationMenu() {\n const { permittedLanguageKeys } = this;\n const [jumps, languages] = setupLanguageNavigation(permittedLanguageKeys);\n renderDocumentationNavigation(jumps, languages);\n },\n\n getCurrentLanguage() {\n return this.helpers.getCurrentLanguage();\n },\n\n activateButton(button) {\n return this.helpers.activateButton(button);\n },\n\n permittedLanguages(array = null) {\n // Get or set the global language Array\n if (array && array.constructor === Array) this.permittedLanguageKeys = [...array];\n return this.permittedLanguageKeys || [];\n },\n\n // External reference:\n // ./app/assets/javascripts/modules/documentation/code_menu.js.coffee\n showLanguageSpecificContentAndCode() {\n const language = this.getCurrentLanguage();\n const langBlocks = this.showCodeGroupsForCurrentLanguage(language);\n\n this.showContentBlocksForCurrentLanguage(language);\n\n const body = document.querySelector('body');\n body.classList.remove('not-rendered');\n body.dispatchEvent(new CustomEvent('rendered'));\n\n this.hideTitlesFromEmptyContentGroups();\n this.code.addSyntaxHighlightingToCodeBlocks();\n this.code.addSyntaxHighlightingToBlockQuoteDefinition();\n this.updateLanguageSpecificLinks(language);\n\n Array.from(langBlocks)\n .filter((el) => !/none/i.test(el.style.display || ''))\n .forEach(() => setLanguageHintVisibility(this));\n },\n\n // Any contiguous code blocks are assigned a unique\n // data-lang-code-group id\n // This method simply hides any language block in a group\n // that does not match the current language\n showCodeGroupsForCurrentLanguage(language) {\n const dataLangGroupsHandled = {};\n const currentLanguage = this.friendlyCurrentLang();\n const that = this;\n\n return $('[data-lang-code-group] pre[lang]').each(function () {\n const $this = $(this);\n const $group = $(this).parent();\n const groupId = $group.attr('data-lang-code-group');\n\n if (dataLangGroupsHandled[groupId]) return;\n\n dataLangGroupsHandled[groupId] = true;\n\n const $siblings = $group.find('> pre');\n const $exactMatch = $siblings.filter(function () {\n return $(this).attr('lang').split(',').indexOf(language) > -1;\n });\n\n if ($exactMatch.length) {\n $siblings.not($exactMatch).hide();\n $exactMatch.show();\n $group.find('.code-window-menu-note').hide();\n $group.find('.code-window-menu').hide();\n return;\n }\n\n // We need to look for a fallback language\n // Select fallback code example and display it\n const $fallback = $siblings.first();\n const $menu = $this.prev('.code-window-menu');\n\n // Activate button that matches fallback example\n const $button = $menu.find(`button[lang=\"${$fallback.attr('lang')}\"]`);\n\n // Add warning of 'No example present' and display toolbar\n // using the current language selected\n $menu.find('span.toolbar-mode').text(currentLanguage);\n $menu.find('.code-window-menu-note').show();\n $menu.show();\n\n // Simulate lang button being pressed\n that.switchDisplayedBlockButtonEvent($button);\n that.helpers.activateButton($button);\n });\n },\n\n // Find any node that is part of a lang content group\n // Find all siblings in the content group\n // If any siblings including self have an exact match on the lang then show that node\n // Else show the default node if it exists\n // Ensure all other nodes are hidden in that lang content group\n\n showContentBlocksForCurrentLanguage(language) {\n const contentGroupsProcessed = {};\n return $('[data-lang-content-group]').each(function () {\n const contentGroupId = $(this).data('lang-content-group');\n\n if (contentGroupsProcessed[contentGroupId]) return;\n\n contentGroupsProcessed[contentGroupId] = true;\n\n const $this = $(this);\n const $siblings = $(`[data-lang-content-group=${contentGroupId}]`);\n const $default = $siblings.filter('[lang=default]');\n const $exactMatch = $siblings.filter(function () {\n return $(this).attr('lang').split(',').indexOf(language) > -1;\n });\n\n // Definition list row should only be shown\n // if
matches lang\n if ($this.is('div') && $this.closest('dl').length) {\n $siblings.each(function () {\n return $(this).closest('.definition-list-row').addClass('hidden');\n });\n\n if ($exactMatch.length) {\n $exactMatch.closest('.definition-list-row').removeClass('hidden');\n } else {\n $default.closest('.definition-list-row').removeClass('hidden');\n }\n return;\n }\n\n if ($exactMatch.length) {\n $siblings.not($exactMatch).addClass('hidden');\n $exactMatch.removeClass('hidden');\n return;\n }\n\n $siblings.not($default).addClass('hidden');\n $default.removeClass('hidden');\n });\n },\n\n switchDisplayedBlockButtonEvent($button) {\n const mode = $button.attr('lang');\n // this.helpers.activateButton($this);\n\n $button.parents('[data-lang-code-group]').children('pre[lang]').hide();\n\n const $langBlock = $button.parents('[data-lang-code-group]').children(`pre[lang=${mode}]`).show();\n\n // As we don't syntax highlight hidden elements as a rendering optimisation\n // we need to be sure the new code being shown has highlighting\n this.code.addSyntaxHighlightingToCodeBlocks();\n\n // Ensure the language hints are suitably visible\n setLanguageHintVisibility($langBlock);\n },\n\n // 1. Finds all heading anchor targets that have lang variations\n // 2. Then gets the text from the anchor target based on which one is visible due to selected lang\n // 3. Then updates the links to that heading anchor target with the text in the visible anchor targe\n // that are contained within one of the nav blocks.\n\n updateLanguageSpecificLinks() {\n $(':header > [lang]').each(function () {\n const id = $(this).parent().attr('id');\n const anchor = `#${id}`;\n let langSpecificLinkText = $(`${anchor} > [lang]:visible:first`).text();\n return $('[data-jump-menu]:not([data-jump-menu-no-hidden-links]), [data-toc-menu]')\n .find(`a[href=\"${anchor}\"]:not(.header-link)`)\n .each(function () {\n if (langSpecificLinkText.length === 0) {\n return $(this).hide().addClass('is-hidden-due-specific-lang');\n }\n\n // break on ::, ., or \\ namespace separators\n const parts = langSpecificLinkText.split(/::|\\\\|\\./);\n const splitter = langSpecificLinkText.match(/::|\\\\|\\./g);\n const lastPart = parts[parts.length - 1];\n\n if (splitter && (lastPart.match(/^[A-Z0-9]+$/) || lastPart.length <= 6)) {\n // If the last part of the definition is a Ruby constant\n // i.e. PresenceMessage::ACTION\n // then show the class to add context.\n // Equally, if the last part is very short\n // i.e. PresenceMessage.Action\n // then it to needs context */\n\n langSpecificLinkText = parts[parts.length - 2] + splitter[splitter.length - 1] + lastPart;\n } else {\n langSpecificLinkText = lastPart;\n }\n\n $(this).show().removeClass('is-hidden-due-specific-lang');\n return $(this).text(langSpecificLinkText);\n });\n });\n\n $('[data-js-docs-article-content] h6').each(function () {\n const id = $(this).attr('id');\n if (!id) return;\n\n const anchor = `#${id}`;\n const langSpecificLinkText =\n $(`${anchor} > [lang]`).length > 0 ? $(`${anchor} > [lang]:visible`).text() : $(`${anchor}:visible`).text();\n\n $(`a[href=\"${anchor}\"]:not(.header-link)`).each(function () {\n $(this).text(langSpecificLinkText);\n });\n });\n },\n\n friendlyLanguage(string) {\n return getFriendlyLanguage.call(this, string);\n },\n\n friendlyCurrentLang() {\n const currentLanguage = this.getCurrentLanguage();\n return this.friendlyLanguage(currentLanguage);\n },\n\n hideTitlesFromEmptyContentGroups() {\n const contentGroupsProcessed = {};\n\n return $('[data-lang-content-group]').each(function () {\n let $this = $(this);\n const $parent = $this.parent('h1, h2, h3, h4, h5, h6');\n const id = $this.data('lang-content-group');\n\n if (contentGroupsProcessed[id]) {\n return;\n }\n contentGroupsProcessed[id] = true;\n\n const visibleLanguages = $parent.children('span').filter(function () {\n $this = $(this);\n if ($this.css('display') === 'none') {\n return false;\n }\n return true;\n });\n\n const method = visibleLanguages.length === 0 ? 'hide' : 'show';\n $parent[method]();\n });\n },\n\n ensureBlockquoteDefinitionIsShown(langGroupSelector) {\n let isSomeBlockVisible = false;\n $(langGroupSelector).each(function () {\n const $this = $(this);\n if ($this.css('display') === 'inline') {\n isSomeBlockVisible = true;\n $this.parents('blockquote').show();\n }\n });\n\n if (isSomeBlockVisible) return;\n\n // If no blockquote definition (aka method definitions) is visible, try to\n // find one set as default and show it.\n const groupSelector = `${langGroupSelector}[lang=default]`;\n const defaultContent = $(groupSelector);\n if (defaultContent.length > 0) {\n defaultContent.show();\n defaultContent.parents('blockquote').show();\n }\n },\n };\n // Append public methods to global scope\n global.DocLang = methods;\n global.LangsPermitted = methods.permittedLanguageKeys;\n})(window, jQuery, AblyPageData);\n","/* eslint-disable func-names, prefer-template */\n/* globals Helpers, DocLang, DocMenus */\n\nwindow.DocCodeMenu = {\n setup($body) {\n this.codemenu = $('[data-js-codelang-menu]');\n\n $body.on('click', '.code-menu-toggle > a', function () {\n $(this).closest('.code-menu').toggleClass('code-menu-collapsed');\n return false;\n });\n\n const setLanguage = (lang) => {\n this.setLanguage(lang);\n };\n\n this.codemenu.on('click', 'button', function () {\n const $this = $(this);\n const lang = $this.parent().data('lang');\n $('[data-js-docs-loader]').removeClass('not-loading');\n\n // SetLanguge freezes the DOM due its intense DOM manipulation\n // TimeOut necessary to display a loader before it becomes freezed\n // Making sure that the user knows what's going on.\n // Yup not proud of it\n setTimeout(function () {\n setLanguage(lang);\n setTimeout(() => $('[data-js-docs-loader]').addClass('not-loading'), 10);\n }, 150);\n\n // Resets the slide popup functions\n $('body').trigger('rendered');\n });\n\n $('[data-lang-code-group]').on('click', 'button', DocLang.switchDisplayedBlockButtonEvent);\n },\n\n setLanguage(lang, options) {\n Helpers.setCurrentLanguage(lang, options);\n\n const $button = this.codemenu.find('li[data-lang=\"' + lang + '\"] button');\n Helpers.activateButton($button);\n\n // Find all contiguous code blocks with menus to select lang\n // If the current lang is not supported, then show the menu\n // Else hide the menu\n $('.code-window').each(function () {\n // show inline toolbar if mode not available\n const $codeWinMenu = $('.code-window-menu', this);\n if (!$(this).find('[data-mode=\"' + lang + '\"]').length) {\n $codeWinMenu.removeClass('hidden').find('.toolbar-mode').text(Helpers.capitalize(lang));\n } else {\n $codeWinMenu.addClass('hidden');\n }\n });\n\n // trigger click on code window toolbar\n $('.code-window-menu button[data-mode=\"' + lang + '\"]').trigger('click');\n\n DocLang.showLanguageSpecificContentAndCode();\n document.dispatchEvent(\n new CustomEvent('docs:set-language', {\n lang,\n }),\n );\n\n // setup jump menu based on new available items\n DocMenus.setCurSection();\n },\n};\n","/* eslint-disable func-names, prefer-template */\n/* globals debounce */\n\nwindow.DocPopup = {\n setup() {\n let animateScrollTop;\n const $apiReferenceContainer = $('[data-js-api-reference-section]');\n const $docsContainer = $('[data-js-docs-article-content]');\n const $sidebarContainer = $('[data-stickysidebar]');\n this.popupUp = undefined;\n this.popupDown = undefined;\n this.popupUpActive = false;\n this.popupDownActive = false;\n const headerHeight = 96;\n let loadRun = true;\n let lastScrollTop = 0;\n const delayTime = 1000;\n let apiDistanceFromTop;\n let apiUpEdge;\n\n $('body').on('rendered', function () {\n // Make sure all DOM manipulations had finish\n if ($apiReferenceContainer.length) {\n const $popupDown = $('[data-js-docs-popup-api]');\n const $popupUp = $('[data-js-docs-popup-doc]');\n this.popupUp = $popupUp;\n this.popupDown = $popupDown;\n\n // Make sure new DOM is loaded when changing languages\n setTimeout(function () {\n apiDistanceFromTop = $apiReferenceContainer.offset().top;\n apiUpEdge = apiDistanceFromTop - $('[data-js-api-doc-separator]').outerHeight() - $(window).height();\n\n if ($docsContainer.height() < $sidebarContainer.height()) {\n $popupDown.addClass('visible');\n this.popupDownActive = true;\n }\n $(window).scroll(function () {\n if (loadRun) {\n loadRun = false;\n return;\n }\n\n const scrollTop = $(this).scrollTop();\n const isNearBottom = scrollTop + $(window).height() > $(document).height() - 220;\n\n // DOC popup\n if (\n scrollTop > apiDistanceFromTop - headerHeight &&\n scrollTop > lastScrollTop &&\n !this.popupUpActive &&\n !isNearBottom\n ) {\n this.popupUpActive = true;\n $popupUp.addClass('visible');\n } else if ((scrollTop <= apiDistanceFromTop - headerHeight && this.popupUpActive) || isNearBottom) {\n this.popupUpActive = false;\n $popupUp.removeClass('visible');\n }\n\n // API popup\n if (scrollTop < apiUpEdge && scrollTop < lastScrollTop && !this.popupDownActive) {\n $popupDown.addClass('visible');\n this.popupDownActive = true;\n } else if (scrollTop >= apiUpEdge && this.popupDownActive) {\n $popupDown.removeClass('visible');\n this.popupDownActive = false;\n }\n\n lastScrollTop = scrollTop;\n });\n\n // Fires when user stops scrolling\n $(window).scroll(\n debounce(\n () =>\n // It only starts to slide up after the delayTime\n setTimeout(function () {\n if (this.popupUpActive) {\n $popupUp.removeClass('visible');\n this.popupUpActive = false;\n }\n if (this.popupDownActive) {\n $popupDown.removeClass('visible');\n this.popupDownActive = false;\n }\n }, delayTime),\n delayTime,\n ),\n );\n\n $popupDown.on('click', function () {\n animateScrollTop($(this), apiDistanceFromTop - headerHeight);\n });\n\n $popupUp.on('click', function () {\n animateScrollTop($(this), 0);\n });\n }, 300);\n }\n });\n\n animateScrollTop = function (popup, top) {\n $('html, body').stop(true, false).animate({ scrollTop: top }, 1000);\n popup.removeClass('visible');\n return false;\n };\n },\n};\n","/* eslint-disable func-names */\n/* globals define, DocMenus, DocNav, DocLang, DocCodeMenu, DocStyle, DocPopup, Helpers, MobileHelpers, Navigation */\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define(['jquery', 'jquery.cookie'], factory);\n } else {\n factory(jQuery);\n }\n})(function ($) {\n const $body = $('body.page-documentation');\n if (!($body.length > 0)) {\n return;\n }\n // run only for documentation pages\n\n const $win = $(window);\n\n // Setup jump menu\n DocMenus.setupJumpMenu();\n // Roll over headers gives an anchor link with a #tag\n DocNav.setupAnchorLinksForHeaders();\n\n // Check which languages the page supports & if any\n // explicit languages are allowed\n DocLang.setupPermittedLanguages();\n\n // Find div, span, h6, p tags that support multiple lanages\n // and add unique attribute data-lang-content-group\n DocLang.groupLanguageSpecificContent($body);\n\n // Code blocks need to be wrapped in
\n // Needed for CSS to present the component\n // Also assign a unique code block ID for contiguous blocks of code\n // And then prepend a hidden code menu for each set of continguous blocks\n // that is used if the current language is not available in this block\n DocLang.wrapAndGroupCodeBlocks($body);\n\n // Set up the code menu slider events such as roll over, on click to change lang etc\n DocCodeMenu.setup($body, $win);\n\n // Set up the post it notes\n DocStyle.setupPostIt();\n\n // Set up definition lists\n DocStyle.setupDefinitionList();\n\n // Show the permitted languages in the nav if one or more langs are\n DocLang.setupLanguageNavigationMenu();\n\n // These will cause a re-render so do now\n DocStyle.setupDividerRings();\n DocStyle.setupBlueSeparator();\n DocStyle.setupInlineToc();\n\n // Scroll down/up popups when user is scrolling\n // Should be here because it confirms if API reference section exists\n DocPopup.setup();\n\n // Update the RHS Documentation menus to reflect current position\n // and enable open / close functionality\n DocMenus.openSectionOfCurrentPage();\n DocMenus.setupSectionClassToggleOnClick();\n\n Helpers.delay(50, function () {\n // If the language selected as absolutely no content on current page, we will\n // display everything as if user had selected Javascript. However, we will\n // not change the cookie so that the user will be able to navigate into other\n // pages with the language originally selected.\n let language = Helpers.getCurrentLanguage();\n if (!DocLang.languageAvailableOnPage(language)) {\n language = 'javascript';\n }\n DocCodeMenu.setLanguage(language, { persistToCookie: false });\n\n // reacalc header height since now a new header bar could be present\n const $header = $('[data-js-header]');\n let headerHeight = $header.outerHeight();\n\n // in case of page load was not on scrollTop or if the user has scrolled\n // before the docs content load, the header will be shrinked\n // this is caused because shrink event window is added before this exact file (common.js)\n // we need to increase calulated header height in order to have the correct offset\n // we could move order of the files but that could have undesired effects\n // the 14 is the shrink factor, i hate magic numbers as well but not seeing a better solution\n // for this at the time o writing\n\n if (MobileHelpers.usingMobileView()) {\n headerHeight += 10;\n } else if ($header.hasClass('header-wrap-collapsed')) {\n headerHeight += 14;\n }\n\n // If an anchor is contained in the link, navigate to the precise position\n // This is needed because we have fixed header, the anchor links don't always work as expected\n Navigation.options.offset = headerHeight;\n\n Navigation.scrollToAnchorOnLoad();\n // Take over the default anchor link behaviour due to the anchor names\n // ended up under the fixed header\n Navigation.setupScrollToAnchor({ anchors: DocNav.getDocLocalAnchors() });\n // readd data-local-nav anchors event based on the new offset caused by documentation content\n Navigation.setupScrollToAnchor({ anchors: $('[data-local-nav-menu] a[href*=\\\\#]') });\n });\n\n Helpers.delay(2000, () =>\n // If a timestamp exists in the demo, keep it live\n Helpers.enableLiveTimestamp(),\n );\n});\n"],"names":["$li","$","navRoots","event","$this","instance","curHeaderHeight","offsets","targets","$win","$validMenuLinks","target","$jumpMenutitle","headerHeight","head","_","el","docContainer","nextMainDocChapter","topContainer","sidebarOffsetTop","sidebarOffsetBottom","inlineTOCHeading","$appendTOCMenu","stuff","createStickySidebars","dlGroup","__","dt","separator","apiReferenceContainer","anchorIcon","id","dataHref","classes","$link","offsetTop","positionLeft","scrollPosition","windowWidth","distanceFromTop","tempInput","href","popupElm","scrollLocation","$OnOrOffMethod","getSupportedLanguages","pageData","documentationLanguages","key","lang","getPermittedLanguages","array","getFriendlyLanguage","string","supportedLanguages","langs","langId","name","languageAvailableOnPage","language","nav","selector","tag","setLanguageHintVisibility","elem","$elem","method","setupLanguageNavigation","permittedLanguages","languageItems","jumpItems","languageList","li","permitted","a","hash","renderDocumentationNavigation","jumps","languages","display","classnames","showJumps","showLangs","jumpMenu","codeLangMenu","header","value","content","sidebar","top","setupPermittedLanguages","permittedLanguageKeys","navigationLanguages","contentLangs","languageOptionsForNav","permittedLanguagesInNav","groupLanguageSpecificContent","$body","langContentSetCounter","elementType","parentDefinitionList","setupLanguageMenuForCodeGroup","$element","$codeBlocksGroup","currentLanguage","html","menuItem","codeBlockMenu","groupNote","menuItems","codeGroupHasLanguage","wrapAndGroupCodeBlocks","groupId","noLanguages","setupLangMenu","node","codeBlocksGroup","wrappingDiv","visible","htmlTemplates","global","erb","code","helpers","methods","button","langBlocks","body","dataLangGroupsHandled","that","$group","$siblings","$exactMatch","$fallback","$menu","$button","contentGroupsProcessed","contentGroupId","$default","mode","$langBlock","anchor","langSpecificLinkText","parts","splitter","lastPart","$parent","langGroupSelector","isSomeBlockVisible","groupSelector","defaultContent","jQuery","setLanguage","options","$codeWinMenu","animateScrollTop","$apiReferenceContainer","$docsContainer","$sidebarContainer","loadRun","lastScrollTop","delayTime","apiDistanceFromTop","apiUpEdge","$popupDown","$popupUp","scrollTop","isNearBottom","popup","factory","$header"],"mappings":"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"}