@aws/mynah-ui 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../webpack/universalModuleDefinition",".././src/styles/styles.scss",".././node_modules/css-loader/dist/runtime/api.js",".././node_modules/css-loader/dist/runtime/sourceMaps.js",".././node_modules/i18n-ts/lib/core/I18nResolver.js",".././node_modules/i18n-ts/lib/i18n.js",".././node_modules/prismjs/components/prism-java.js",".././node_modules/prismjs/components/prism-javascript.js",".././node_modules/prismjs/components/prism-json.js",".././node_modules/prismjs/components/prism-python.js",".././node_modules/prismjs/components/prism-typescript.js",".././node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js",".././node_modules/prismjs/prism.js","webpack://MynahUI/./src/styles/styles.scss?203b",".././node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js",".././node_modules/style-loader/dist/runtime/insertBySelector.js",".././node_modules/style-loader/dist/runtime/insertStyleElement.js",".././node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js",".././node_modules/style-loader/dist/runtime/styleDomAPI.js",".././node_modules/style-loader/dist/runtime/styleTagTransform.js",".././src/components/button.ts",".././src/components/context-item.ts",".././src/components/feedback-form/feedback-form-comment.ts",".././src/components/feedback-form/feedback-form-stars.ts",".././src/components/feedback-form/feedback-form.ts",".././src/components/icon.ts",".././src/components/main-container.ts",".././src/components/navigation-tabs.ts",".././src/components/notification/notification.ts",".././src/components/overlay/overlay.ts",".././src/components/prioritization-menu.ts",".././src/components/search-block/autocomplete-card.ts",".././src/components/search-block/autocomplete-content.ts",".././src/components/search-block/search-api-help.ts",".././src/components/search-block/search-card-header.ts",".././src/components/search-block/search-card.ts",".././src/components/search-block/search-context.ts",".././src/components/search-block/search-history-card.ts",".././src/components/search-block/search-history-content.ts",".././src/components/search-block/search-input.ts",".././src/components/search-block/search-live-toggle.ts",".././src/components/suggestion-card/suggestion-card-body.ts",".././src/components/suggestion-card/suggestion-card-context-wrapper.ts",".././src/components/suggestion-card/suggestion-card-header.ts",".././src/components/suggestion-card/suggestion-card-relevance-vote.ts",".././src/components/suggestion-card/suggestion-card.ts",".././src/components/syntax-highlighter.ts",".././src/components/toggle.ts",".././src/helper/config.ts",".././src/helper/date-time.ts",".././src/helper/dom.ts",".././src/helper/events.ts",".././src/helper/find-language.ts",".././src/helper/guid.ts",".././src/helper/payload-transformer.ts",".././src/helper/store.ts",".././src/static.ts",".././src/translations/en.ts",".././src/translations/i18n.ts","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object",".././src/main.ts"],"names":["root","factory","exports","module","define","amd","self","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","Object","defineProperty","value","isCookieAvailable","document","I18nResolver","translations","preferredLanguage","cookieName","currentLanguage","language","getCookie","getBrowserLanguage","findBestMatch","prototype","get","enumerable","configurable","set","lang","setCookie","name","expires","path","cookieStr","toUTCString","cookie","split","trim","filter","match","replace","navigator","userLanguage","langPrefix","I18nResolver_1","Prism","keywords","classNamePrefix","className","pattern","RegExp","lookbehind","inside","languages","java","extend","greedy","clike","function","insertBefore","alias","namespace","javascript","regex","rest","markup","tag","addInlined","addAttribute","js","json","webmanifest","python","py","typescript","keyword","typeInside","ts","PLUGIN_NAME","NEW_LINE_EXP","config","plugins","lineNumbers","getLine","element","number","tagName","classList","contains","lineNumberRows","querySelector","lineNumberStart","parseInt","getAttribute","lineNumberEnd","children","lineIndex","resize","resizeElements","assumeViewportIndependence","lastWidth","window","addEventListener","innerWidth","Array","slice","call","querySelectorAll","hooks","add","env","code","pre","test","nodeName","util","isActive","remove","lineNumbersWrapper","linesNum","lines","createElement","setAttribute","innerHTML","hasAttribute","style","counterReset","appendChild","run","elements","e","whiteSpace","getComputedStyle","currentStyle","infos","codeElement","lineNumberSizer","codeLines","textContent","display","oneLinerHeight","getBoundingClientRect","height","lineHeights","sizer","Boolean","forEach","info","line","index","childIndex","wrapper","lineNumber","_self","uniqueId","plainTextGrammar","_","manual","disableWorkerMessageHandler","encode","tokens","Token","type","isArray","o","objId","obj","clone","deepClone","visited","key","hasOwnProperty","v","getLanguage","m","exec","toLowerCase","parentElement","setLanguage","currentScript","Error","err","src","stack","scripts","getElementsByTagName","defaultActivation","no","plain","plaintext","text","txt","redef","before","insert","grammar","ret","token","newToken","old","DFS","callback","property","propertyType","highlightAll","async","highlightAllUnder","container","selector","apply","highlightElement","parent","insertHighlightedCode","highlightedCode","Worker","worker","filename","onmessage","evt","postMessage","immediateClose","highlight","tokenize","tokenList","LinkedList","addAfter","head","matchGrammar","array","node","next","tail","toArray","all","callbacks","matchedStr","matchPattern","pos","lastIndex","lookbehindLength","startNode","startPos","rematch","patterns","j","cause","patternObj","global","flags","currentNode","reach","str","removeCount","from","to","p","matchStr","after","removeFrom","prev","removeRange","nestedRematch","newNode","count","s","classes","attributes","aliases","message","parse","close","script","highlightAutomaticallyCallback","readyState","defer","requestAnimationFrame","setTimeout","WorkerGlobalScope","g","includedCdataInside","def","attrName","html","mathml","svg","xml","ssml","atom","rss","string","css","Element","matches","msMatchesSelector","webkitMatchesSelector","EXTENSIONS","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","extension","autoloader","loadLanguages","success","error","xhr","XMLHttpRequest","open","onreadystatechange","status","responseText","range","start","Number","comma","end","parseRange","Math","max","min","String","statusText","send","loadFile","fileHighlight","logged","console","warn","arguments","options","styleTagTransform","setAttributes","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","target","styleTarget","HTMLIFrameElement","contentDocument","getTarget","styleElement","nonce","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","constructor","props","setEnabled","enabled","render","removeAttribute","DomBuilder","getInstance","build","classNames","primary","events","additionalEvents","click","onClick","icon","label","handleMenuOpen","elm","currentTarget","addClass","PrioritizationMenuButtons","referenceElement","context","onMenuClose","removeClass","createOverlay","ContextTypeClassNames","ContextTypes","SHOULD","MynahUIDataStore","getValue","includes","showRemoveButton","Icon","MUST_NOT","MynahIcons","BLOCK","OK_CIRCLED","event","cancelEvent","currentMatchPolicy","keys","reduce","res","policyGroup","MynahUIGlobalEvents","dispatch","MynahEventNames","CONTEXT_VISIBILITY_CHANGE","ContextChangeType","ADD","ContextSource","SUGGESTION","REMOVE","updateStore","userAddedContext","contextKey","CANCEL","Button","bind","MENU","focus","setComment","comment","keyup","onChange","initComment","disabled","placeholder","setStar","star","initStar","fill","n","STAR","feedbackPayload","onFeedbackSet","feedbackData","FEEDBACK_SET","initPayload","stars","triggerButton","formOverlay","Overlay","feedbackFormContainer","closeOnOutsideClick","dimOutside","horizontalDirection","OverlayHorizontalDirection","END_TO_LEFT","verticalDirection","OverlayVerticalDirection","TO_BOTTOM","feedbackStars","FeedbackFormStars","feedbackComment","feedbackSubmitButton","FeedbackFormComment","feedbackContainer","clearCards","updateCards","suggestions","cardsWrapper","clear","selectedCode","suggestion","insertChild","SuggestionCard","onScroll","scroll","persistent","skeletonWrapper","title","url","body","subscribe","loading","setLoading","isLoading","getTabsRender","tabs","selected","Toggle","selectedTab","newTabs","newSelectedTab","getNextCalculatedTop","prevNotifications","DS","prevNotificationRectangle","top","OVERLAY_MARGIN","getChildren","duration","NotificationType","INFO","notify","notificationOverlay","referencePoint","left","documentElement","clientWidth","TO_LEFT","onClose","onNotificationHide","onNotificationClick","guid","generateUID","windowBlurHandler","removeEventListener","getCalculatedLeft","referenceRectangle","width","TO_RIGHT","START_TO_RIGHT","CENTER","getCalculatedTop","START_TO_BOTTOM","TO_TOP","END_TO_TOP","updateContent","innerContainer","calculatedTop","calculatedLeft","createPortal","MynahPortalNames","OVERLAY","containerRectangle","winHeight","clientHeight","innerHeight","winWidth","comparingWidth","comparingHeight","handlePrioritizationButtonClick","priority","menuOverlay","oldPolicyType","MUST","searchQuery","buttonClassNames","isHovered","onAutocompleteClick","formatSuggestion","word","bold","autocompleteCards","autocompleteSuggestions","hovered","record","AutocompleteCardContent","handleAutocompleteClick","autocompleteItem","autocompleteItemsOverlay","AUTOCOMPLETE_SUGGESTION_CLICK","autocompleteQuery","getSuggestionsCount","updateSuggestions","hoverQuery","cards","cardWrapper","updateQuery","hover","isUp","currHover","setIsUsed","val","isUsed","getIsUsed","getCurrentSelected","isCollapsed","hide","show","codeSelection","file","row","column","onCodeDetailsClicked","SyntaxHighlighter","codeStringWithMarkup","getLanguageFromFileName","SupportedCodingLanguagesExtensionToTypeMap","keepHighlights","showLineNumbers","startingLineNumber","toggleClass","DOWN_OPEN","UP_OPEN","fileName","CODE_DETAILS_CLICK","getHeaderInfoContent","headerInfo","feedbackForm","FeedbackForm","infoBar","resetStore","unfoldedByContextInsertion","unfoldedByButton","addFocusOnInput","searchInput","setFolded","folded","foldUnfoldButton","hasClass","searchCardHeader","SearchCardHeader","liveSearchToggle","SearchLiveToggle","searchAPIHelp","SearchApiHelp","SearchInput","contextManagement","SearchContext","onContextInsertionEnabled","onContextInsertionDisabled","allowedCharCount","contextCheckExpression","isAcceptedKeyPress","char","acceptedNagivationKeys","KeyMap","renderedContextMap","enableContextInsertion","contextInsertionButton","contextInsertionInput","disableContextInsertion","keepText","inputAutoWidth","createContextItemElements","matchPolicy","oldMatchPolicy","removedContext","addedContext","AUTO","USER","contextItem","invisibleContextKeys","contextRender","ContextPill","actualContextItemRender","contextWrapper","contextInsertionKeydownHandler","ENTER","SPACE","loadingListener","loadingState","unsubscribe","Notification","WARNING","ESCAPE","maxlength","tabindex","blur","keydown","input","paste","PLUS","initContext","query","trigger","CODE_BLOCK","LIGHT_BULB","onHistoryItemClick","getSearchHitoryRecordTitle","recordDate","getTimeDiff","Date","getTime","queryContext","historyItem","titleParts","pop","searchHistoryCards","historyItems","HistoryCardContent","handleHistoryChange","historyItemsOverlay","SEARCH_HISTORY_ITEM_CLICK","searchHistory","codeSelectionAvailable","searchTextInput","handleInputKeydown","autocompleteContent","triggerSearch","ARROW_DOWN","ARROW_UP","DELETE","BACKSPACE","values","INPUT_QUERY_CHANGE","remainingIndicator","isFromAutocomplete","SEARCH","triggerSearchHistory","searchHistoryButton","REQUEST_SEARCH_HISTORY","filters","isGlobal","resultOffset","resultLimit","searchHistorySubscriptionId","HistoryContent","handleAutocompleteSuggestions","AutocompleteContent","setWaitState","waitState","searchButton","initText","I18N","texts","searchInputAPIHelpPlaceholder","searchInputMynahPlaceholder","SEARCH_HISTORY","autoCompleteList","addListener","LiveSearchStateColors","LiveSearchState","PAUSE","RESUME","flashToggle","initialValue","toggle","PLAY","color","LIVE_SEARCH_STATE_CHANGED","liveSearchState","STOP","queryChangeSubscriptionId","newState","setValue","matchingLanguage","findLanguageFromSuggestion","childNodes","elementFromNode","showCopyOptions","onCopiedToClipboard","SUGGESTION_COPY_TO_CLIPBOARD","suggestionId","metadata","canonicalExample","SuggestionCardRelevanceVote","mustContextItems","must","contextList","getSourceMetaBlockClassName","metadataUnion","getSourceMetaBlock","metaItems","metadataKey","isAccepted","OK","lastActivityDate","CALENDAR","answerCount","CHAT","forks","score","THUMBS_UP","splittedUrl","onSuggestionTitleClick","href","EXTERNAL","onSuggestionLinkCopy","copy","urlPart","handleVoteChange","vote","SUGGESTION_VOTE","change","RelevancyVoteType","UP","DOWN","for","THUMBS_DOWN","engagementStartTime","totalMouseDistanceTraveled","x","y","resetEngagement","previousMousePosition","mouseDownInfo","time","handleEngagement","interactionDistanceTraveled","SUGGESTION_ENGAGEMENT","engagementDurationTillTrigger","scrollDistanceToEngage","offsetTop","engagementType","EngagementType","INTERACTION","TIME","selectionDistanceTraveled","mouseenter","clientX","clientY","mousemove","abs","mousedown","mouseup","mouseUpInfo","selectedText","getSelection","mouseleave","engagementEndTime","SuggestionCardHeader","SUGGESTION_OPEN","SUGGESTION_LINK_COPY","SuggestionCardContextWrapper","SuggestionCardBody","DEFAULT_LANG","highlighters","textReplacement","copyToClipboard","textToSendClipboard","notificationText","clipboard","writeText","then","catch","codeMarkup","innerText","styledCode","COPY","TEXT_SELECT","currentRange","getRangeAt","commonAncestorContainer","isSameNode","option","relocateTransitioner","backgroundColor","checked","updateSelectionRender","setRelocatePosition","currentValue","renderRect","optionRender","rect","configProcessors","sourceString","decodeURI","getConfig","configName","setConfig","configValue","configElement","configItem","differenceInMs","separator","delta","years","floor","months","weeks","days","hours","minutes","combined","EmptyDomBuilderObject","rootSelector","portals","builderObject","indexOf","position","child","childItem","insertAdjacentElement","insertAdjacentText","clearChildren","removePersistent","extendDomFunctionality","domElement","extendedElement","domBuilderObject","readyToBuildObject","buildedDom","eventName","attributeName","HTMLElement","domToUpdate","portalName","portalDom","getPortal","removePortal","static","instance","preventDefault","stopPropagation","stopImmediatePropagation","eventKey","handler","listenerId","listeners","removeListener","ctx","SupportedCodingLanguages","codingLang","fileExtension","firstPart","random","secondPart","transformPayloadData","rules","payloadData","processedRules","rule","targetRoute","method","targetNode","targetRouteKey","validateRulesOnPayloadData","validatedRules","find","PrimitiveObjectTypes","EmptyMynahUIDataModel","defaults","invisibleContextItems","selectedNavigationTab","navigationTabs","autoCompleteSuggestions","showingHistoricalSearch","liveSearchAnimation","codeQuery","simpleNames","usedFullyQualifiedNames","mustNot","should","initialData","store","setDefaults","getDefaults","storeKey","subscriptionId","subsciptions","structuredClone","getDefaultValue","skipSubscribers","assign","RESET_STORE","create","SuggestionEventName","WRAPPER","FEEDBACK_FORM","localLanguage","i18n","en","default","translation","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","a","definition","globalThis","Function","prop","r","Symbol","toStringTag","addGlobalListeners","onRequestHistoryRecords","onInputQueryChange","onClickAutocompleteItem","onSendFeedback","onChangeLiveSearchState","onSearch","onChangeContext","fullStoreData","onClickCodeDetails","engagement","onSuggestionEngagement","onSuggestionClipboardInteraction","onSuggestionInteraction","OPEN","onClickSuggestionVote","onResetStore","setStoreDefaults","getSearchPayload","storeData","MynahConfig","searchCard","SearchCard","navTabs","NavivationTabs","onNavigationTabChange","mainContainer","MainContainer","scrollTop","onReady"],"mappings":"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","file":"main.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MynahUI\"] = factory();\n\telse\n\t\troot[\"MynahUI\"] = factory();\n})(self, function() {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{font-size:var(--vscode-editor-font-size);font-family:var(--vscode-editor-font-family);--mynah-sizing-base: 3px;--mynah-sizing-half: calc(var(--mynah-sizing-base) / 2);--mynah-sizing-1: var(--mynah-sizing-base);--mynah-sizing-2: calc(var(--mynah-sizing-base) * 2);--mynah-sizing-3: calc(var(--mynah-sizing-base) * 3);--mynah-sizing-4: calc(var(--mynah-sizing-base) * 4);--mynah-sizing-5: calc(var(--mynah-sizing-base) * 5);--mynah-sizing-6: calc(var(--mynah-sizing-base) * 6);--mynah-sizing-7: calc(var(--mynah-sizing-base) * 7);--mynah-sizing-8: calc(var(--mynah-sizing-base) * 8);--mynah-sizing-9: calc(var(--mynah-sizing-base) * 9);--mynah-sizing-10: calc(var(--mynah-sizing-base) * 10);--mynah-sizing-11: calc(var(--mynah-sizing-base) * 11);--mynah-sizing-12: calc(var(--mynah-sizing-base) * 12);--mynah-sizing-13: calc(var(--mynah-sizing-base) * 13);--mynah-sizing-14: calc(var(--mynah-sizing-base) * 14);--mynah-sizing-15: calc(var(--mynah-sizing-base) * 15);--mynah-sizing-16: calc(var(--mynah-sizing-base) * 16);--mynah-sizing-17: calc(var(--mynah-sizing-base) * 17);--mynah-sizing-18: calc(var(--mynah-sizing-base) * 18);--mynah-button-border-width: 1px;--mynah-color-text-default: var(--vscode-foreground);--mynah-color-text-strong: var(--vscode-input-foreground);--mynah-color-text-weak: var(--vscode-list-deemphasizedForeground);--mynah-color-text-link: var(--vscode-textLink-foreground);--mynah-color-text-input: var(--vscode-input-foreground);--mynah-color-bg: var(--vscode-sideBar-background);--mynah-color-light: rgba(0, 0, 0, 0.05);--mynah-color-deep: var(--vscode-checkbox-background);--mynah-color-deep-reverse: var(--vscode-checkbox-foreground);--mynah-color-border-default: rgba(0, 0, 0, 0.1);--mynah-color-input-bg: var(--vscode-input-background);--mynah-color-highlight: rgba(255, 199, 72, 0.3);--mynah-color-highlight-text: #886411;--mynah-color-context-must-contain: #c7ebce;--mynah-color-context-should-contain: var(--vscode-sideBar-background);--mynah-color-context-must-not-contain: #f3cac7;--mynah-color-context-reverse: rgba(0, 0, 0, 0.5);--mynah-color-context-filter: 0.975;--mynah-color-status-info: var(--vscode-editorInfo-foreground);--mynah-color-status-success: var(--vscode-list-activeSelectionBackground);--mynah-color-status-warning: var(--vscode-editorWarning-foreground);--mynah-color-status-error: var(--vscode-editorError-foreground);--mynah-color-button: var(--vscode-button-background);--mynah-color-button-reverse: var(--vscode-button-foreground);--mynah-color-alternate: var(--vscode-button-secondaryBackground);--mynah-color-alternate-reverse: var(--vscode-button-secondaryForeground);--mynah-color-code-bg: var(--mynah-color-bg);--mynah-color-code-text: var(--vscode-textPreformat-foreground);--mynah-color-main: var(--vscode-button-background);--mynah-color-main-reverse: var(--vscode-button-foreground);--mynah-card-bg: var(--vscode-editor-background);--mynah-shadow-generic: none;--mynah-shadow-card: none;--mynah-shadow-card-more: none;--mynah-shadow-card-active: none;--mynah-shadow-prioritization-menu: 0 10px 20px -10px var(--vscode-editorGroup-border);--mynah-shadow-feedback-form: 0 0px 40px 0px var(--mynah-color-bg);--mynah-font-size-xsmall: 0.85rem;--mynah-font-size-small: 0.95rem;--mynah-font-size-medium: 1rem;--mynah-font-size-large: 1.15rem;--mynah-font-size-xlarge: 1.275rem;--mynah-card-radius: 0;--mynah-button-radius: var(--mynah-sizing-1);--mynah-very-short-transition: all 250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-transform: transform 200ms cubic-bezier(0.85, 0.15, 0, 1);--mynah-long-transition: all 370ms cubic-bezier(0.35, 1, 0.15, 1);--mynah-pretty-long-transition: all 450ms cubic-bezier(0.25, 1, 0, 1);--mynah-very-long-transition: all 1250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition: all 250ms cubic-bezier(0.85, 0.15, 0, 1);--mynah-short-transition-rev: all 270ms cubic-bezier(0.35, 1, 0, 1);--mynah-short-transition-rev-opacity: opacity 400ms cubic-bezier(0.35, 1, 0, 1);--mynah-short-transition-reflection: all 650ms cubic-bezier(0.25, 1, 0, 1), opacity 500ms 150ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-turbo: all 250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-turbo-bounce: all 350ms cubic-bezier(0.25, 1, 0, 1), transform 450ms cubic-bezier(0.25, 4, 0, 1);--mynah-short-transition-bounce: all 500ms cubic-bezier(0.25, 1, 0, 1), transform 700ms cubic-bezier(0.25, 1.75, 0, 1);--mynah-mask-image: linear-gradient( to bottom, black var(--mynah-sizing-8), black calc(100% - var(--mynah-sizing-14)), transparent );--mynah-mask-image-rev: linear-gradient(to bottom, transparent 0%, transparent 80%, black 100%);--mynah-mask-image-main: linear-gradient( to bottom, transparent, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent );--mynah-mask-image-main-rev: linear-gradient(to bottom, black, transparent calc(100% - 2px), transparent);--mynah-mask-image-skeleton: linear-gradient( to bottom, black var(--mynah-sizing-8), black calc(50% - var(--mynah-sizing-14)), transparent );--mynah-policy-group-filter: saturate(0.5) brightness(0.85)}@keyframes glass-reflection{0%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes move-to-middle{0%{transform:translate3d(-10%, 0, 0);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes move-to-right{0%{transform:translate3d(0, 0, 0);opacity:1}100%{transform:translate3d(10%, 0, 0);opacity:0}}@keyframes shake{0%{transform:translate3d(0, 0, 0);border-color:red}10%{transform:translate3d(5px, 0, 0)}20%{transform:translate3d(-5px, 0, 0)}30%{transform:translate3d(5px, 0, 0)}40%{transform:translate3d(-5px, 0, 0)}50%{transform:translate3d(5px, 0, 0)}60%{transform:translate3d(-5px, 0, 0)}70%{transform:translate3d(5px, 0, 0)}80%{transform:translate3d(-5px, 0, 0)}90%{transform:translate3d(5px, 0, 0);border-color:red}100%{transform:translate3d(0, 0, 0);border-color:rgba(0,0,0,0)}}#mynah-wrapper{display:flex;flex-flow:column nowrap;margin:0 auto;width:100%;max-width:1024px;box-sizing:border-box;height:100%;padding:var(--mynah-sizing-3) 0 0 0}#mynah-wrapper .context-checkbox{display:none}#mynah-wrapper .mynah-main{display:block;box-sizing:border-box;flex:1 1 0;overflow:hidden;position:relative}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper,#mynah-wrapper .mynah-main>.mynah-cards-wrapper{padding:var(--mynah-sizing-3) 0 var(--mynah-sizing-12) 0;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-4);box-sizing:border-box;overflow:hidden;position:relative;height:100%}#mynah-wrapper .mynah-main>.mynah-cards-wrapper{overflow-x:hidden;overflow-y:auto;flex:1 1 0;transition:var(--mynah-long-transition);transform:translate3d(0, 0, 0);opacity:1}#mynah-wrapper .mynah-main>.mynah-cards-wrapper>.mynah-no-suggestion-indicator{display:flex;box-sizing:border-box;opacity:.5;width:100%;padding:var(--mynah-sizing-12);flex-flow:row nowrap;justify-content:center;align-items:flex-start}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper{position:absolute;transition:var(--mynah-long-transition);top:0;left:0;margin:0 auto;width:100%;height:100%;z-index:100;pointer-events:none;transform:translate3d(-10%, 0, 0);opacity:0}#mynah-wrapper .mynah-main.mynah-hide-content>.mynah-cards-wrapper{animation:move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-hide-content>.mynah-skeleton-wrapper{pointer-events:all;animation:move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-show-content>.mynah-cards-wrapper{animation:move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-show-content>.mynah-skeleton-wrapper{pointer-events:none;transition-delay:450ms;animation:move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both}@media screen and (max-width: 1024px){#mynah-wrapper{padding-top:0}#mynah-wrapper>.mynah-search-block{border-left:none;border-right:none;border-top:none}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper,#mynah-wrapper .mynah-main>.mynah-cards-wrapper>.mynah-card{border-right:none;border-left:none}}.mynah-search-block{display:inline-flex;flex-flow:row wrap;justify-content:flex-end;background-color:var(--mynah-card-bg);border-radius:var(--mynah-card-radius);box-shadow:var(--mynah-shadow-card);transition:var(--mynah-short-transition-rev);overflow:visible;position:relative;overflow:visible;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);gap:var(--mynah-sizing-2)}.mynah-search-block:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;box-shadow:var(--mynah-shadow-card);pointer-events:none;filter:brightness(50%) saturate(250%) contrast(250%);opacity:.4}.mynah-search-block>.mynah-search-block-header{width:100%;box-sizing:border-box;overflow:hidden}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-top-bar{width:100%;padding:var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);display:flex;justify-content:space-between;box-sizing:border-box;overflow:hidden}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar{margin:0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);font-size:var(--mynah-font-size-small);padding:var(--mynah-sizing-2);position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-2)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg{position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;border-radius:var(--mynah-button-radius);border:1px solid var(--mynah-color-status-info);box-sizing:border-box;opacity:.2}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg:after{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;background-color:var(--mynah-color-status-info);opacity:.2}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg+.mynah-icon{color:var(--mynah-color-status-info);font-size:var(--mynah-font-size-large)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg~.mynah-search-block-header-info-bar-text,.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg~.mynah-icon{opacity:.75;z-index:1}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled{border-color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled::after{background-color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled~.mynah-icon{color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning{border-color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning::after{background-color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning~.mynah-icon{color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error{border-color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error::after{background-color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error~.mynah-icon{color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar:empty{display:none}.mynah-search-block>.mnynah-search-block-fold-unfold-button{position:absolute;bottom:0;left:50%;margin-left:calc(-1*var(--mynah-sizing-8)/2);margin-bottom:calc(-1*var(--mynah-sizing-8)/2);width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-8);z-index:999999;transform:translate3d(0, 0, 0) scale(0.75);opacity:0;pointer-events:none;transition:var(--mynah-very-short-transition);background-color:var(--mynah-card-bg);color:var(--mynah-color-text-input);border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);font-size:var(--mynah-sizing-6)}.mynah-search-block>.mnynah-search-block-fold-unfold-button>.mynah-icon-up-open{display:inline-flex}.mynah-search-block>.mnynah-search-block-fold-unfold-button>.mynah-icon-down-open{display:none}.mynah-search-block>.mynah-search-live-toggle-wrapper{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:var(--mynah-sizing-1);width:100%;padding:0 var(--mynah-sizing-4) 0 0}.mynah-search-block>.mynah-search-live-toggle-wrapper.mynah-hide-content,.mynah-search-block>.mynah-search-live-toggle-wrapper.mynah-hide-content *{display:none}.mynah-search-block>.mynah-search-live-toggle-wrapper>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before,.mynah-search-block>.mynah-search-live-toggle-wrapper>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:after{content:\\\"\\\";position:absolute;z-index:10;top:0;left:0;width:100%;height:100%;background-color:var(--mynah-color-status-success);opacity:.35;border-radius:100%;transform:translate3d(0, 0, 0) scale(0);transform-origin:center center;pointer-events:none}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container{overflow:visible}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before,.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:after{content:\\\"\\\";transform:translate3d(0, 0, 0) scale(8);opacity:0;transition:var(--mynah-short-transition);transition-duration:1750ms}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before{transform:translate3d(0, 0, 0) scale(10);transition-duration:2000ms;transition-delay:200ms}.mynah-search-block>.mynah-search-input-wrapper,.mynah-search-block>.mynah-search-api-help{color:var(--mynah-color-text-input);width:100%;flex:1 1 100%;margin:0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);display:flex}.mynah-search-block>.mynah-search-api-help{flex-flow:column nowrap;padding:var(--mynah-sizing-half);box-sizing:border-box;border-radius:var(--mynah-card-radius);overflow:hidden}.mynah-search-block>.mynah-search-api-help.hide{display:none}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-wrapper{width:100%;box-sizing:border-box;overflow:hidden;position:relative}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-wrapper>.mynah-syntax-highlighter>pre{width:100%;box-sizing:border-box;max-height:50vh;overflow-x:auto;overflow-y:auto}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row{display:flex;flex-flow:row nowrap;width:100%;align-items:center;gap:var(--mynah-sizing-1);padding:0 var(--mynah-sizing-3) 0 var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row:nth-child(1){margin-top:var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row:nth-child(2){margin-bottom:var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row>*:nth-child(1){width:110px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row>*:nth-child(2){flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser{display:flex;flex-flow:row nowrap;padding:var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);justify-content:center;align-items:center;font-size:var(--mynah-sizing-6);cursor:pointer}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser>.mynah-search-api-help-uncollapse-icon{display:none}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser>.mynah-search-api-help-collapse-icon{display:inline-flex}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-wrapper{cursor:pointer}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-wrapper>.mynah-syntax-highlighter>pre{max-height:var(--mynah-sizing-16);overflow-x:hidden;overflow-y:hidden}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-detail-row{display:none}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-collapser>.mynah-search-api-help-uncollapse-icon{display:inline-flex}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-collapser>.mynah-search-api-help-collapse-icon{display:none}.mynah-search-block>.mynah-search-input-wrapper{border:1px solid var(--mynah-color-border-default);padding:var(--mynah-sizing-2);border-radius:var(--mynah-card-radius);flex-flow:row nowrap;align-items:center;gap:var(--mynah-sizing-2)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-logo{width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);opacity:.5}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input{flex:1 1 0;border:none;background-color:rgba(0,0,0,0);font-size:var(--mynah-font-size-large);color:var(--mynah-color-text-input);outline:none;width:100%}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input::placeholder{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-small)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:not(:placeholder-shown)+span{display:inline-block}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:placeholder-shown:not(.search-always-active)~.mynah-search-button{background-color:var(--mynah-color-light);color:var(--mynah-color-text-default);box-shadow:0 5px 10px -10px var(--mynah-color-light);pointer-events:none}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:placeholder-shown:not(.search-always-active)~.mynah-search-button>*{opacity:.5}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input+span{display:none;opacity:.5;font-size:var(--mynah-font-size-xsmall);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:currentColor;margin-left:var(--mynah-sizing-1)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input+span:after{content:attr(remaining-chars) \\\"/\\\" attr(max-chars)}.mynah-search-block>.mynah-search-block-advanced-control{display:flex;flex-flow:column nowrap;align-items:flex-start;overflow:hidden;width:100%;padding:var(--mynah-sizing-1) var(--mynah-sizing-4) var(--mynah-sizing-4) var(--mynah-sizing-4);transition:var(--mynah-very-short-transition);max-height:50vh}.mynah-search-block>.mynah-search-block-advanced-control>.mynah-context-wrapper{display:flex;flex-flow:row wrap;gap:var(--mynah-sizing-2);flex:1 1 0%;align-items:center}.mynah-search-block.mynah-search-block-ready-to-fold>.mnynah-search-block-fold-unfold-button{transform:translate3d(0, 0, 0) scale(1.000001);opacity:1;pointer-events:all}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mnynah-search-block-fold-unfold-button>.mynah-icon-up-open{display:none}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mnynah-search-block-fold-unfold-button>.mynah-icon-down-open{display:inline-flex}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mynah-search-block-advanced-control{max-height:0;opacity:.4;-webkit-mask-image:var(--mynah-mask-image-main-rev);-webkit-mask-size:100% 150%;mask-image:var(--mynah-mask-image-main-rev);mask-size:100% 200%}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mynah-search-block-advanced-control>#add-new-context{transform:translate3d(0, calc(-1 * var(--mynah-sizing-10)), 0) scale(0.5) !important;opacity:0 !important;margin-bottom:calc(-1*var(--mynah-sizing-10))}@media screen and (max-width: 1024px){.mynah-search-block{border-radius:0;margin:0}}.mynah-search-history-items-wrapper{display:flex;flex-flow:column nowrap;max-height:50vh;overflow-x:hidden;overflow-y:auto;width:70vw;max-width:450px;box-sizing:border-box;position:relative;-webkit-mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);-webkit-mask-size:100% 100%;mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);mask-size:100% 100%;padding:var(--mynah-sizing-3);gap:var(--mynah-sizing-3)}.mynah-search-history-items-wrapper>.mynah-search-history-button{flex-shrink:0;height:auto;min-height:var(--mynah-sizing-14);background-color:transparent;border:1px solid var(--mynah-color-bg);color:var(--mynah-color-text-default);border-radius:var(--mynah-button-radius);padding:var(--mynah-sizing-3)}.mynah-search-history-items-wrapper>.mynah-search-history-button,.mynah-search-history-items-wrapper>.mynah-search-history-button:active{box-shadow:none}.mynah-search-history-items-wrapper>.mynah-search-history-button:active:after{opacity:.1}.mynah-search-history-items-wrapper>.mynah-search-history-button>span{text-align:left;max-width:initial;width:100%;overflow:hidden;display:flex}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label{width:100%;display:flex;flex-flow:row nowrap;gap:var(--mynah-sizing-3);justify-content:flex-start;align-items:center;overflow:hidden}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon{display:flex;justify-content:center;align-items:center;width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);font-size:var(--mynah-font-size-medium)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon>i{opacity:.2}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon>img{opacity:.5;width:var(--mynah-sizing-4);height:var(--mynah-sizing-4)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-title-wrapper{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:center;flex:1;overflow:hidden;color:var(--mynah-color-text-weak);gap:var(--mynah-sizing-1)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-title-wrapper>h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--mynah-color-text-default)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper{display:inline-block;flex-grow:0}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill{transform:translate3d(0px, 0px, 0px) scale(0.74);margin-left:calc(-1*var(--mynah-sizing-1));display:inline-block;transform-origin:center right}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill,.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill *{pointer-events:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label{padding:0;display:flex;justify-content:center;text-decoration:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label:before{display:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label>span{width:var(--mynah-sizing-4);overflow:visible;text-align:center}.pointer{cursor:pointer}.mynah-context-checkbox{display:none}.mynah-context-pill-groups-start{order:5;display:none}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{display:inline-flex}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must{margin-left:calc(-7*var(--mynah-sizing-half))}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must:before{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{display:none}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{display:inline-flex}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot{margin-left:calc(-7*var(--mynah-sizing-half))}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot:before{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{display:none}.mynah-context-pill-group-item-must,.mynah-context-pill-group-item-mustNot{position:relative;display:inline-flex;overflow:visible;z-index:3;padding:calc(var(--mynah-sizing-1) + var(--mynah-sizing-half))}.mynah-context-pill-group-item-must:after,.mynah-context-pill-group-item-must:before,.mynah-context-pill-group-item-mustNot:after,.mynah-context-pill-group-item-mustNot:before{content:\\\"\\\";position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;border-radius:calc(var(--mynah-button-radius)*3/2);border:1px solid transparent}.mynah-context-pill-group-item-must:after,.mynah-context-pill-group-item-mustNot:after{background-color:var(--mynah-card-bg);z-index:1}.mynah-context-pill-group-item-must:hover,.mynah-context-pill-group-item-mustNot:hover{z-index:30}.mynah-context-pill-group-item-must{order:10}.mynah-context-pill-group-item-must:before{border-color:var(--mynah-color-status-info)}.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{color:var(--mynah-color-status-info)}.mynah-context-pill-group-item-mustNot{order:30}.mynah-context-pill-group-item-mustNot:before{border-color:var(--mynah-color-status-warning)}.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{color:var(--mynah-color-status-warning)}.mynah-context-pill{position:relative;order:10;overflow:visible;transition:z-index 1ms 75ms linear;z-index:3;display:flex;flex-flow:row nowrap;align-items:center}.mynah-context-pill.mynah-context-hidden{display:none}.mynah-context-pill:hover{z-index:30}.mynah-context-pill>.mynah-context-pill-group-icon{display:none;font-size:var(--mynah-font-size-large);margin:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1)}.mynah-context-pill>.mynah-prioritise-button{position:absolute;z-index:3;top:0;transform-origin:center center;transform:translate3d(0, 0, 0);opacity:0;transition:var(--mynah-very-short-transition);pointer-events:none;min-width:0;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);right:calc(-1*var(--mynah-sizing-base));background-color:inherit;color:inherit;white-space:nowrap;border:var(--mynah-button-border-width) solid currentColor}.mynah-context-pill>.mynah-prioritise-button *{pointer-events:none}.mynah-context-pill:before{content:\\\"\\\";position:absolute;left:0;width:calc(100% + var(--mynah-sizing-9));top:calc(-1*var(--mynah-sizing-base));height:var(--mynah-sizing-10);opacity:0;pointer-events:none}.mynah-context-pill:hover>.mynah-prioritise-button{opacity:1}.mynah-context-pill.keep-active>.mynah-prioritise-button{opacity:1}.mynah-context-pill.keep-active,.mynah-context-pill:hover{transition-delay:1ms;z-index:1000}.mynah-context-pill.keep-active:before,.mynah-context-pill:hover:before{opacity:1;pointer-events:all}.mynah-context-pill.keep-active>.mynah-prioritise-button,.mynah-context-pill:hover>.mynah-prioritise-button{transform:translate3d(var(--mynah-sizing-8), 0, 0);pointer-events:all}.mynah-context-pill.keep-active>.mynah-context-checkbox-label:after,.mynah-context-pill:hover>.mynah-context-checkbox-label:after{opacity:1 !important}.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label{cursor:default}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-must-contain);color:var(--mynah-color-context-reverse)}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button:before,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button:after,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label:after{opacity:.5}.mynah-context-pill.mynah-should-contain{order:20}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse)}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button:before,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button>span,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label>span{opacity:.75}.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label{cursor:default}.mynah-context-pill.mynah-must-not-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-must-not-contain);color:var(--mynah-color-context-reverse);text-decoration:line-through;font-style:italic}.mynah-context-pill.mynah-must-not-contain>.mynah-prioritise-button>span,.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label>span{opacity:.5}.mynah-context-checkbox-label{cursor:pointer;z-index:10;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse);padding:var(--mynah-sizing-2) var(--mynah-sizing-4) var(--mynah-sizing-2) var(--mynah-sizing-4);font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;border-radius:var(--mynah-button-radius);position:relative;overflow:hidden;display:inline-flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;transition:var(--mynah-short-transition);height:var(--mynah-sizing-8);max-height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-6);box-sizing:border-box;user-select:none}.mynah-context-checkbox-label>*:not(.filter-remove-button){pointer-events:none}.mynah-context-checkbox-label>i{font-size:var(--mynah-font-size-medium);margin-left:calc(-1*var(--mynah-sizing-2));margin-right:var(--mynah-sizing-base)}.mynah-context-checkbox-label.before-remove,.mynah-context-checkbox-label.before-remove *{pointer-events:none !important}.mynah-context-checkbox-label *{user-select:none}.mynah-context-checkbox-label.hidden{display:none}.mynah-context-checkbox-label>*{z-index:5;position:relative}.mynah-context-checkbox-label>.filter-remove-button{font-size:var(--mynah-font-size-medium);pointer-events:all;transition:var(--mynah-very-short-transition);transform-origin:center center;margin-right:calc(var(--mynah-sizing-3)*-1);margin-left:var(--mynah-sizing-half);position:relative;box-sizing:border-box;width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);display:flex;justify-content:center;align-items:center;cursor:pointer}.mynah-context-checkbox-label>.filter-remove-button:before{content:\\\"\\\";position:absolute;background-color:currentColor;transition:var(--mynah-short-transition);transform:translate3d(0, 0, 0) scale(0.5);opacity:0;top:var(--mynah-sizing-half);left:var(--mynah-sizing-half);width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);box-sizing:border-box}.mynah-context-checkbox-label>.filter-remove-button>i{transition:var(--mynah-short-transition);transform:translate3d(0, 0, 0) scale(0.85)}.mynah-context-checkbox-label>.filter-remove-button:hover:before{opacity:.15;transform:translate3d(0, 0, 0) scale(1)}.mynah-context-checkbox-label>.filter-remove-button:hover>i{transform:translate3d(0, 0, 0) scale(1)}.mynah-context-checkbox-label:after{pointer-events:none;content:\\\"\\\";transition:var(--mynah-short-transition-rev);position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;z-index:10;border-radius:var(--mynah-button-radius);border:var(--mynah-button-border-width) solid currentColor;opacity:.15}.mynah-context-checkbox-label#add-new-context{order:0;justify-content:center;font-size:var(--mynah-font-size-large);width:auto;max-width:100%;transition:var(--mynah-very-short-transition);flex:0 0 auto;min-width:90px}.mynah-context-checkbox-label#add-new-context.shake{border:1px solid rgba(0,0,0,0);animation:shake 700ms cubic-bezier(0.25, 0.5, 0, 1) backwards}.mynah-context-checkbox-label#add-new-context.context-insertion-activated{width:auto !important;pointer-events:none}.mynah-context-checkbox-label#add-new-context.context-insertion-activated:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-checkbox-label#add-new-context.context-insertion-activated>.add-new-context-label,.mynah-context-checkbox-label#add-new-context.context-insertion-activated>i{display:none}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated){background-color:transparent;color:inherit;opacity:.65}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated)>.context-text-input{width:0px;opacity:0;padding:0}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated)>.context-text-input+span{display:none}.mynah-context-checkbox-label#add-new-context>.add-new-context-label{font-size:var(--mynah-font-size-small);font-weight:normal;margin-left:var(--mynah-sizing-3);white-space:nowrap;text-overflow:ellipsis}.mynah-context-checkbox-label#add-new-context>i{margin-right:calc(var(--mynah-sizing-2)*-1)}.mynah-context-checkbox-label#add-new-context>.context-text-input{position:absolute;top:0;left:var(--mynah-sizing-4);width:calc(100% - var(--mynah-sizing-8));height:100%;box-sizing:border-box;background-color:transparent;overflow:hidden;opacity:1;pointer-events:all;display:inline-flex;flex-wrap:nowrap;align-items:center;border:none;outline:none;font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;color:var(--mynah-color-context-reverse)}.mynah-context-checkbox-label#add-new-context>.context-text-input::placeholder{color:var(--mynah-color-context-reverse);opacity:.5;font-weight:normal}.mynah-context-checkbox-label#add-new-context>.context-text-input+span{font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;color:rgba(0,0,0,0);user-select:none;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:clip;box-sizing:border-box;display:inline;margin-right:var(--mynah-sizing-1)}.mynah-prioritization-menu-buttons-container{display:inline-flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;gap:var(--mynah-sizing-2);padding:var(--mynah-sizing-4) var(--mynah-sizing-3) var(--mynah-sizing-4) var(--mynah-sizing-3);overflow:hidden;position:relative}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button{width:auto;transition:var(--mynah-long-transition);padding-left:var(--mynah-sizing-3);padding-right:var(--mynah-sizing-3);font-size:var(--mynah-font-size-small);white-space:nowrap;text-overflow:ellipsis;justify-content:flex-start;overflow:hidden;box-shadow:none;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse)}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button>span{padding-left:0}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button>i{font-size:var(--mynah-font-size-medium);margin-left:calc(-1*var(--mynah-sizing-1))}button.mynah-button{border:none;min-width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);border-radius:var(--mynah-button-radius);background-color:var(--mynah-color-button);color:var(--mynah-color-button-reverse);box-shadow:var(--mynah-shadow-generic);cursor:pointer;transition:var(--mynah-very-short-transition);display:inline-flex;justify-content:center;align-items:center;outline:none;overflow:hidden;position:relative;transform:translate3d(0, 0, 0) scale(1.00001);padding:0}button.mynah-button.mynah-button-secondary{background-color:transparent;color:inherit;box-shadow:none;opacity:.75}button.mynah-button.mynah-button-secondary:focus-visible,button.mynah-button.mynah-button-secondary:hover{opacity:1}button.mynah-button.mynah-button-secondary:active{box-shadow:none}button.mynah-button:focus-visible,button.mynah-button:hover{filter:brightness(0.925)}button.mynah-button:active{box-shadow:0 3px 10px -7px var(--mynah-color-button);filter:brightness(0.875)}button.mynah-button.mynah-icon-button{width:var(--mynah-sizing-10);height:var(--mynah-sizing-10)}button.mynah-button>.mynah-mutating-next-icon{width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);transform:translate3d(0, 0, 0) rotateZ(0deg);transition:var(--mynah-short-transition-turbo);transform-origin:center center;display:inline-flex;flex-flow:row nowrap;box-sizing:border-box;overflow:hidden;justify-content:center;align-items:center}button.mynah-button>.mynah-mutating-next-icon>i{font-size:var(--mynah-font-size-xlarge)}button.mynah-button>.mynah-mutating-next-icon>i.mynah-loading-spinner{min-width:var(--mynah-sizing-5);min-height:var(--mynah-sizing-5);border:3px solid currentColor;opacity:.5;box-sizing:border-box;border-top-color:rgba(0,0,0,0);border-radius:var(--mynah-sizing-5);animation:spin 1s infinite linear}button.mynah-button>.mynah-mutating-next-icon>i:nth-child(2){display:none}button.mynah-button>.mynah-search-history-icon{width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);transform:translate3d(0, 0, 0) rotateZ(0deg);transition:var(--mynah-short-transition-turbo);transform-origin:center center;display:inline-flex;flex-flow:row nowrap;box-sizing:border-box;overflow:hidden;justify-content:center;align-items:center}button.mynah-button>.mynah-search-history-icon>i{font-size:2rem}button.mynah-button>.mynah-search-history-icon>i.mynah-history-icon{min-width:var(--mynah-sizing-5);min-height:var(--mynah-sizing-5);border:3px solid currentColor;opacity:.5;box-sizing:border-box;border-top-color:rgba(0,0,0,0);border-radius:var(--mynah-button-radius);animation:spin 1s infinite linear}button.mynah-button>.mynah-search-history-icon>i:nth-child(2){display:none}button.mynah-button.mynah-button-wait{background-color:var(--mynah-color-light);color:var(--mynah-color-text-default);box-shadow:0 5px 10px -10px var(--mynah-color-light);pointer-events:none}button.mynah-button.mynah-button-wait>.mynah-mutating-next-icon>i:first-child{display:none}button.mynah-button.mynah-button-wait>.mynah-mutating-next-icon>i:nth-child(2){display:block}button.mynah-button>span{white-space:nowrap;font-size:var(--mynah-font-size-medium);max-width:35vw;transition:var(--mynah-very-long-transition);overflow:hidden;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;padding-left:var(--mynah-sizing-3);padding-right:var(--mynah-sizing-3)}button.mynah-button>i+span{padding-left:var(--mynah-sizing-base)}.mynah-toggle-container{display:inline-flex;flex-flow:row nowrap;max-width:100%;overflow:hidden;align-items:center;justify-content:center;padding:var(--mynah-sizing-1);position:relative;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse);border-radius:var(--mynah-button-radius)}.mynah-toggle-container .mynah-toggle-option{display:none}.mynah-toggle-container .mynah-toggle-option:not(:first-child)+.mynah-toggle-option-label{margin-left:calc(-1*var(--mynah-sizing-1))}.mynah-toggle-container .mynah-toggle-option+.mynah-toggle-option-label{cursor:pointer;position:relative;z-index:100;padding:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-2);border-radius:var(--mynah-button-radius);min-height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-8);box-sizing:border-box;display:inline-flex;overflow:hidden;justify-content:center;align-items:center}.mynah-toggle-container .mynah-toggle-option:checked+.mynah-toggle-option-label{pointer-events:none}.mynah-toggle-container .mynah-toggle-option[disabled=disabled]{pointer-events:none}.mynah-toggle-container .mynah-toggle-option[disabled=disabled]+.mynah-toggle-option-label{pointer-events:none;opacity:.25}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option+.mynah-toggle-option-label{transition:var(--mynah-short-transition-rev),background-color 1ms 0ms}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option:checked+.mynah-toggle-option-label{color:var(--mynah-color-button-reverse);background-color:var(--mynah-color-button);transition:var(--mynah-short-transition-rev),background-color 1ms 500ms}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option:not(:checked)+.mynah-toggle-option-label{background-color:rgba(0,0,0,0) !important}.mynah-toggle-container.mynah-toggle-type-switch>.mynah-toggle-indicator-transitioner{top:calc(50% - var(--mynah-sizing-4))}.mynah-toggle-container>.mynah-toggle-indicator-transitioner{background-color:var(--mynah-color-button);display:inline-block;transition:var(--mynah-short-transition-rev);border-radius:var(--mynah-button-radius);position:absolute;z-index:30;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);left:calc(-1*var(--mynah-sizing-8))}.mynah-toggle-container>.mynah-toggle-indicator-transitioner.relocate{transition-duration:1ms}.mynah-toggle-container.mynah-toggle-type-tabs{flex-flow:row wrap;justify-content:flex-start}.mynah-toggle-container.mynah-toggle-type-tabs>.mynah-toggle-indicator-transitioner{height:var(--mynah-sizing-1);border-radius:0;left:calc(-1*var(--mynah-sizing-8));transform:translateY(var(--mynah-sizing-1))}.mynah-toggle-container.mynah-toggle-type-tabs>.mynah-toggle-indicator-transitioner.relocate{transition-duration:1ms}.mynah-toggle-container.mynah-toggle-type-tabs .mynah-toggle-option:checked+.mynah-toggle-option-label{color:var(--mynah-color-button);font-weight:600}.mynah-nav-tabs-wrapper{padding:0 var(--mynah-sizing-2) var(--mynah-sizing-2) var(--mynah-sizing-2);border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);background-color:var(--mynah-card-bg);margin-top:var(--mynah-sizing-3)}.mynah-nav-tabs-wrapper>.mynah-toggle-container{height:100%;background:none}.mynah-nav-tabs-wrapper>.mynah-toggle-container>span{white-space:nowrap}.mynah-nav-tabs-wrapper:empty{display:none}.mynah-nav-tabs-wrapper.mynah-nav-tabs-loading,.mynah-nav-tabs-wrapper.mynah-nav-tabs-loading *{pointer-events:none}.pointer{cursor:pointer}.mynah-history-must-contain{background:var(--mynah-color-context-must-contain)}.mynah-history-should-contain{background:var(--mynah-color-context-should-contain)}.mynah-history-must-not-contain{background:var(--mynah-color-context-must-not-contain)}.mynah-card{text-decoration:none;outline:none;position:relative;transition:var(--mynah-short-transition-rev);padding:var(--mynah-sizing-5);background-color:var(--mynah-color-bg);border-radius:var(--mynah-card-radius);box-sizing:border-box;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-3);transform:translate3d(0, 0, 0);flex:auto 0 0;width:100%;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);overflow:visible}.mynah-card:nth-child(0){z-index:5000}.mynah-card:nth-child(1){z-index:4900}.mynah-card:nth-child(2){z-index:4800}.mynah-card:nth-child(3){z-index:4700}.mynah-card:nth-child(4){z-index:4600}.mynah-card:nth-child(5){z-index:4500}.mynah-card:nth-child(6){z-index:4400}.mynah-card:nth-child(7){z-index:4300}.mynah-card:nth-child(8){z-index:4200}.mynah-card:nth-child(9){z-index:4100}.mynah-card:nth-child(10){z-index:4000}.mynah-card:nth-child(11){z-index:3900}.mynah-card:nth-child(12){z-index:3800}.mynah-card:nth-child(13){z-index:3700}.mynah-card:nth-child(14){z-index:3600}.mynah-card:nth-child(15){z-index:3500}.mynah-card:nth-child(16){z-index:3400}.mynah-card:nth-child(17){z-index:3300}.mynah-card:nth-child(18){z-index:3200}.mynah-card:nth-child(19){z-index:3100}.mynah-card:nth-child(20){z-index:3000}.mynah-card:nth-child(21){z-index:2900}.mynah-card:nth-child(22){z-index:2800}.mynah-card:nth-child(23){z-index:2700}.mynah-card:nth-child(24){z-index:2600}.mynah-card:nth-child(25){z-index:2500}.mynah-card:nth-child(26){z-index:2400}.mynah-card:nth-child(27){z-index:2300}.mynah-card:nth-child(28){z-index:2200}.mynah-card:nth-child(29){z-index:2100}.mynah-card:nth-child(30){z-index:2000}.mynah-card:nth-child(31){z-index:1900}.mynah-card:nth-child(32){z-index:1800}.mynah-card:nth-child(33){z-index:1700}.mynah-card:nth-child(34){z-index:1600}.mynah-card:nth-child(35){z-index:1500}.mynah-card:nth-child(36){z-index:1400}.mynah-card:nth-child(37){z-index:1300}.mynah-card:nth-child(38){z-index:1200}.mynah-card:nth-child(39){z-index:1100}.mynah-card:nth-child(40){z-index:1000}.mynah-card:nth-child(41){z-index:900}.mynah-card:nth-child(42){z-index:800}.mynah-card:nth-child(43){z-index:700}.mynah-card:nth-child(44){z-index:600}.mynah-card:nth-child(45){z-index:500}.mynah-card:nth-child(46){z-index:400}.mynah-card:nth-child(47){z-index:300}.mynah-card:nth-child(48){z-index:200}.mynah-card:nth-child(49){z-index:100}.mynah-card:nth-child(50){z-index:0}.mynah-card:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;box-shadow:var(--mynah-shadow-card);pointer-events:none;filter:brightness(50%) saturate(250%) contrast(250%);opacity:.4}.mynah-card:hover:active:before{box-shadow:var(--mynah-shadow-card-more);opacity:.75}.mynah-card>*{z-index:10;position:relative}.mynah-card:after{content:\\\"\\\";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;background-color:var(--mynah-card-bg);border-radius:inherit;box-sizing:border-box;opacity:0;z-index:0;box-sizing:border-box;transform-origin:center center;transition:var(--mynah-very-short-transition);opacity:.6}.mynah-card:hover:before{border-color:var(--mynah-color-main);box-shadow:var(--mynah-shadow-card-more)}.mynah-card:hover:after{opacity:1}.mynah-card:hover>.mynah-card-header{opacity:1}.mynah-card>.mynah-card-header{display:flex;justify-content:space-between;align-items:center;opacity:.75;transition:var(--mynah-very-short-transition)}.mynah-card>.mynah-card-header>.mynah-source-thumbnail{font-style:normal;font-weight:normal;display:inline-flex;width:var(--mynah-sizing-11);height:var(--mynah-sizing-11);font-variant:normal;text-transform:none;border:1px solid var(--mynah-color-border-default);border-radius:100%;background-size:80%;background-position:center center;background-repeat:no-repeat;margin-right:var(--mynah-sizing-3);align-self:flex-start;box-sizing:border-box}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper{flex:1 1 0;display:flex;flex-flow:column nowrap;align-items:flex-start;gap:var(--mynah-sizing-half);max-width:100%;overflow:hidden;cursor:pointer}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper:hover>.mynah-card-title>.mynah-card-expand-icon{opacity:.75;align-self:baseline}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-title{font-size:var(--mynah-font-size-xlarge);font-weight:700;color:var(--mynah-color-text-strong);width:100%;display:inline-flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-2);white-space:normal;text-overflow:ellipsis;text-decoration:none;outline:none;overflow:hidden}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-title>.mynah-card-expand-icon{transition:var(--mynah-short-transition-rev);opacity:0;font-size:var(--mynah-font-size-xsmall);display:inline;padding:var(--mynah-sizing-1);border:1px solid currentColor;border-radius:2px}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url{font-size:var(--mynah-font-size-medium);font-weight:300;color:var(--mynah-color-text-link);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;outline:none;overflow:hidden;max-width:100%;position:relative;padding-bottom:var(--mynah-sizing-1);display:inline-block;transition:var(--mynah-short-transition-rev)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url:after{content:\\\"\\\";position:relative;display:block;bottom:0;left:0;width:100%;height:1px;border-radius:var(--mynah-sizing-half);background-color:currentColor;transform:translate3d(-30%, 0, 0);transition:var(--mynah-short-transition-rev);opacity:0}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url:hover:after{transform:translate3d(0, 0, 0);opacity:1}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:not(:last-child):after{content:\\\"/\\\";margin-left:var(--mynah-sizing-1);margin-right:var(--mynah-sizing-1)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:nth-child(3)~span:not(:last-child){display:none}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:last-child{font-weight:bold}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:nth-child(3):not(:last-child):after{content:\\\"/ ... /\\\"}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-1);margin-bottom:var(--mynah-sizing-half)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block:empty{display:none}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item{display:inline-flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-1);padding:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);border:1px solid var(--mynah-color-border-default);border-radius:var(--mynah-button-radius)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-icon{opacity:.5;font-size:var(--mynah-font-size-medium)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-title-meta-block-item-text{font-size:var(--mynah-font-size-xsmall)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-title-meta-block-item-text::first-letter{text-transform:capitalize}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer{border-color:green;position:relative}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer:before{content:\\\"\\\";border-radius:var(--mynah-button-radius);position:absolute;top:0;left:0;right:0;bottom:0;background-color:green;opacity:.04}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer>.mynah-icon{opacity:1;color:green;border-radius:var(--mynah-button-radius);width:var(--mynah-sizing-5)}.mynah-card>.mynah-card-header.mynah-card-header-with-source-thumbnail+.mynah-card-context-wrapper>.mynah-card-tags{padding-left:var(--mynah-sizing-14)}.mynah-card>.mynah-card-center{border:var(--mynah-button-border-width) solid var(--mynah-border-default);width:100%;color:var(--mynah-color-text-default);flex:1 1 0%;overflow:hidden;line-height:var(--mynah-font-size-large);pointer-events:all;z-index:100;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-center>*:not(pre){font-size:var(--mynah-font-size-medium)}.mynah-card>.mynah-card-center>.mynah-card-body{flex:1;overflow:hidden;position:relative}.mynah-card>.mynah-card-center>.mynah-card-body>*:first-child{margin-top:0}.mynah-card>.mynah-card-center>.mynah-card-body>*:last-child{margin-bottom:0}.mynah-card>.mynah-card-center>.mynah-card-body *{user-select:text}.mynah-card>.mynah-card-center>.mynah-card-body .amzn-mynah-search-result-highlight{background-color:var(--mynah-color-highlight);color:var(--mynah-color-highlight-text)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper{display:inline-flex;align-items:center;gap:var(--mynah-sizing-2)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-vote-text{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-xsmall)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote{position:relative;overflow:visible;display:inline-flex;align-items:center;height:var(--mynah-sizing-10);box-sizing:border-box;gap:calc(var(--mynah-sizing-half)*3);border-radius:var(--mynah-sizing-7)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-radio{display:none}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label{z-index:10;cursor:pointer;font-size:var(--mynah-font-size-small);transition:var(--mynah-short-transition);padding:var(--mynah-sizing-base);width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);display:inline-flex;justify-content:center;align-items:center;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);border-radius:var(--mynah-sizing-8)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label>*{pointer-events:none}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label>i{height:calc(var(--mynah-sizing-6) + var(--mynah-sizing-half))}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-indicator{pointer-events:none;content:\\\"\\\";transition:var(--mynah-short-transition);position:absolute;border-radius:var(--mynah-sizing-8);top:var(--mynah-sizing-1);left:0;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);z-index:1;transform-origin:left center;transform:translate3d(calc(var(--mynah-sizing-base) * -1), 0, 0)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-up-radio:checked~.mynah-vote-up{color:var(--mynah-color-main-reverse);border-color:transparent}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-up-radio:checked~.mynah-vote-indicator{transform:translate3d(0, 0, 0);background-color:var(--mynah-color-main);transform:translate3d(0, 0, 0) scale(1);box-shadow:var(--mynah-shadow-generic)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-down-radio:checked~.mynah-vote-down{color:var(--mynah-color-alternate-reverse);border-color:transparent}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-down-radio:checked~.mynah-vote-indicator{transform:translate3d(calc(var(--mynah-sizing-8) + var(--mynah-sizing-half)), 0, 0);background-color:var(--mynah-color-alternate);box-shadow:var(--mynah-shadow-generic)}.mynah-card>.mynah-card-context-wrapper{display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-6);padding-bottom:var(--mynah-sizing-4);margin-bottom:var(--mynah-sizing-2);border-bottom:1px solid var(--mynah-color-border-default)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-tags{display:inline-flex;flex-wrap:wrap;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges{display:inline-flex;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges:empty{display:none}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges>div{display:inline-flex;align-items:center;gap:var(--mynah-sizing-base);font-size:var(--mynah-font-size-small);color:var(--mynah-color-text-weak)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges>div:not(:last-child){border-right:1px solid var(--mynah-color-border-default);padding-right:var(--mynah-sizing-3)}.mynah-card.mynah-card-skeleton{pointer-events:none !important}.mynah-card.mynah-card-skeleton *{color:rgba(0,0,0,0) !important;pointer-events:none !important}.mynah-card.mynah-card-skeleton i{color:var(--mynah-color-light) !important}.mynah-card.mynah-card-skeleton .mynah-vote-text,.mynah-card.mynah-card-skeleton .mynah-card-title{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton .mynah-card-url{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-text-link);opacity:.15 !important;line-height:.5rem}.mynah-card.mynah-card-skeleton .mynah-card-center p{z-index:0;border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton .mynah-card-center code{background-color:var(--mynah-color-code-text);opacity:.25;line-height:150%}.mynah-card.mynah-card-skeleton .mynah-card-badges span{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton:last-child{-webkit-mask-image:var(--mynah-mask-image-skeleton);-webkit-mask-size:100% 100%;mask-image:var(--mynah-mask-image-skeleton);mask-size:100% 100%}.mynah-card.mynah-card-skeleton:after{content:\\\"\\\";opacity:1;background-color:var(--mynah-card-bg);transform:translate3d(0, 0, 0);border:none;background-image:linear-gradient(-75deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 30%, rgba(0, 0, 0, 0.05) 50%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0) 100%);background-size:500% 500%;animation:glass-reflection 2000ms 1000ms linear infinite}#mynah-feedback-form-portal{position:absolute;left:50%;top:0;width:100%;height:100%;overflow:visible;box-sizing:border-box;z-index:200000;pointer-events:none;transform:translate3d(-50%, 0, 0);max-width:1024px;color:var(--mynah-color-context-reverse);display:flex;justify-content:center;align-items:flex-end;flex-flow:row nowrap}#mynah-feedback-form-portal.not-revealed>.mynah-feedback-trigger-button{display:none}#mynah-feedback-form-portal>.mynah-feedback-trigger-button{transition:var(--mynah-short-transition-bounce);pointer-events:all;border-bottom-right-radius:0;border-bottom-left-radius:0;cursor:pointer}.mynah-feedback-form{pointer-events:all;box-sizing:border-box;transition:var(--mynah-short-transition-rev);padding:var(--mynah-sizing-4);transform:translate3d(0, 0, 0);border-radius:var(--mynah-card-radius);display:flex;flex-flow:column;gap:var(--mynah-sizing-2);align-items:flex-start;transform-origin:right bottom}.mynah-feedback-form>.mynah-feedback-form-comment{background-color:transparent;padding:var(--mynah-sizing-3);border:1px solid var(--mynah-color-border-default);resize:none;width:250px;max-width:40vw;height:100px;max-height:25vh;border-radius:var(--mynah-sizing-2);font-size:var(--mynah-font-size-small);outline:none;color:var(--mynah-color-text-input)}.mynah-feedback-form>.mynah-feedback-form-comment:disabled{opacity:.25}.mynah-feedback-form>.mynah-feedback-form-comment::placeholder{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-small)}.mynah-feedback-form>.mynah-feedback-form-stars-container{display:inline-flex;flex-flow:row nowrap}.mynah-feedback-form>.mynah-feedback-form-stars-container>.mynah-feedback-form-star{cursor:pointer;padding-right:var(--mynah-sizing-1);color:var(--mynah-color-button);font-size:1.5rem;transition:var(--mynah-very-short-transition)}.mynah-feedback-form>.mynah-feedback-form-stars-container>.mynah-feedback-form-star>.mynah-icon{transition:var(--mynah-very-short-transition);opacity:.4;transform:translate3d(0, 0, 0) scale(0.6)}.mynah-feedback-form>.mynah-feedback-form-stars-container[selected-star]:not(:hover)>:not(.mynah-feedback-form-star.selected~.mynah-feedback-form-star)>.mynah-icon,.mynah-feedback-form>.mynah-feedback-form-stars-container:hover>:not(.mynah-feedback-form-star:hover~.mynah-feedback-form-star)>.mynah-icon{opacity:1;transform:translate3d(0, 0, 0) scale(1)}.mynah-feedback-form>.mynah-feedback-form-comment,.mynah-feedback-form>.mynah-feedback-form-stars-container{transition:var(--mynah-short-transition-rev);transform-origin:right bottom}.mynah-overlay{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;box-sizing:border-box;pointer-events:none;z-index:1000000}.mynah-overlay.mynah-overlay-dim-outside:before{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--mynah-color-bg);transition:var(--mynah-short-transition-rev-opacity);opacity:.45}.mynah-overlay>.mynah-overlay-container{--overlayLeftPos: 0;--overlayTopPos: 0;--overlayInnerHorizontalOrigin: left;--overlayInnerVerticalOrigin: top;position:absolute;display:block;overflow:visible;border-radius:var(--mynah-card-radius);transform:translate3d(var(--overlayLeftPos), var(--overlayTopPos), 0)}.mynah-overlay>.mynah-overlay-container:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:calc(var(--mynah-button-border-width)*-1);left:calc(var(--mynah-button-border-width)*-1);right:calc(var(--mynah-button-border-width)*-1);bottom:calc(var(--mynah-button-border-width)*-1);width:auto;height:auto;pointer-events:none;box-sizing:border-box;opacity:0;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);box-shadow:var(--mynah-shadow-prioritization-menu)}.mynah-overlay>.mynah-overlay-container:after{content:\\\"\\\";position:absolute;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);left:0;top:0;opacity:0;border:var(--mynah-sizing-4);background-color:var(--mynah-card-bg);border-radius:inherit;transition:var(--mynah-short-transition-rev);transition-delay:20ms}.mynah-overlay>.mynah-overlay-container.horizontal-direction-to-left,.mynah-overlay>.mynah-overlay-container.horizontal-direction-from-end-to-left{--overlayLeftPos: -100%;--overlayInnerHorizontalOrigin: right}.mynah-overlay>.mynah-overlay-container.horizontal-direction-to-left:after,.mynah-overlay>.mynah-overlay-container.horizontal-direction-from-end-to-left:after{left:calc(100% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.horizontal-direction-at-center{--overlayInnerHorizontalOrigin: center;--overlayLeftPos: -50%}.mynah-overlay>.mynah-overlay-container.horizontal-direction-at-center:after{left:calc(50% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.vertical-direction-to-top,.mynah-overlay>.mynah-overlay-container.vertical-direction-from-end-to-top{--overlayTopPos: -100%;--overlayInnerVerticalOrigin: bottom}.mynah-overlay>.mynah-overlay-container.vertical-direction-to-top:after,.mynah-overlay>.mynah-overlay-container.vertical-direction-from-end-to-top:after{top:calc(100% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.vertical-direction-at-center{--overlayInnerVerticalOrigin: center;--overlayTopPos: -50%}.mynah-overlay>.mynah-overlay-container.vertical-direction-at-center:after{top:calc(50% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container>.mynah-overlay-inner-container{display:inline-block;overflow:hidden;z-index:10;position:relative;transform:translate3d(0, 0, 0) scale(0.85);transform-origin:var(--overlayInnerHorizontalOrigin) var(--overlayInnerVerticalOrigin);transition:var(--mynah-short-transition-rev)}.mynah-overlay>.mynah-overlay-container:before{transform:translate3d(0, 0, 0) scale(0.85);transition:var(--mynah-short-transition-rev)}.mynah-overlay>.mynah-overlay-container>.mynah-overlay-inner-container,.mynah-overlay>.mynah-overlay-container:before{opacity:0;transition-delay:0ms}.mynah-overlay:not(.mynah-overlay-open),.mynah-overlay:not(.mynah-overlay-open) *{pointer-events:none !important}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{transform:translate3d(0, 0, 0) scale(1)}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container:before{transform:translate3d(0, 0, 0) scale(1);transition-delay:50ms;opacity:1}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{transition-delay:20ms}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{opacity:1}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container:after{transition-delay:0ms;left:0;top:0;width:100%;height:100%;opacity:1}.mynah-overlay.mynah-overlay-open.mynah-overlay-close-on-outside-click{pointer-events:all}.mynah-notification{display:inline-flex;flex-flow:row nowrap;align-items:flex-start;justify-content:flex-start;gap:var(--mynah-sizing-3);padding:var(--mynah-sizing-5);overflow:hidden;position:relative}.mynah-notification.mynah-notification-clickable{pointer-events:all;cursor:pointer}.mynah-notification>.mynah-icon{font-size:var(--mynah-sizing-6)}.mynah-notification>.mynah-icon-ok-circled{color:var(--mynah-color-status-success)}.mynah-notification>.mynah-icon-info{color:var(--mynah-color-status-info)}.mynah-notification>.mynah-icon-warning{color:var(--mynah-color-status-warning)}.mynah-notification>.mynah-icon-error{color:var(--mynah-color-status-error)}.mynah-notification>.mynah-notification-container{flex:1;max-width:50vw;min-width:200px;display:inline-flex;flex-flow:column nowrap;align-items:flex-start;justify-content:flex-start;gap:var(--mynah-sizing-3);overflow:hidden;position:relative}.mynah-notification>.mynah-notification-container>.mynah-notification-title{margin:0}.mynah-notification>.mynah-notification-container>.mynah-notification-title:empty{display:none}.mynah-notification>.mynah-notification-container>.mynah-notification-content{font-size:var(--mynah-font-size-small);display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:flex-start;gap:var(--mynah-sizing-2)}.mynah-notification>.mynah-notification-container>.mynah-notification-content>.mynah-button{align-self:stretch;background-color:var(--mynah-color-alternate);color:var(--mynah-color-alternate-reverse)}.mynah-autocomplete-items-wrapper{display:flex;flex-flow:column nowrap;max-height:50vh;overflow-x:hidden;overflow-y:auto;--mynah-autocomplete-side-spacings: calc( var(--mynah-sizing-12) + var(--mynah-sizing-10) + var(--mynah-sizing-12) + var(--mynah-sizing-12) );width:calc(100vw - var(--mynah-autocomplete-side-spacings));max-width:calc(1024px - var(--mynah-autocomplete-side-spacings));box-sizing:border-box;position:relative;-webkit-mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);-webkit-mask-size:100% 100%;mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);mask-size:100% 100%;padding-top:var(--mynah-sizing-3);padding-bottom:var(--mynah-sizing-3)}.mynah-autocomplete-items-wrapper.make-items-as-ghost,.mynah-autocomplete-items-wrapper.make-items-as-ghost *{pointer-events:none !important}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button{pointer-events:all;flex-shrink:0;height:auto;min-height:var(--mynah-sizing-7);padding:var(--mynah-sizing-3);background-color:transparent;border-radius:0%;color:var(--mynah-color-text-default)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button,.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:active{box-shadow:none}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:active:after{opacity:.1}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:hover{background-color:var(--mynah-color-bg)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span{text-align:left;max-width:initial;width:100%;overflow:hidden;display:flex}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label{width:100%;display:flex;flex-flow:row nowrap;gap:var(--mynah-sizing-3);justify-content:flex-start;align-items:center;overflow:hidden}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:center;flex:1;overflow:hidden;color:var(--mynah-color-text-weak);gap:var(--mynah-sizing-1)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper>h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--mynah-color-text-default)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper>.autocomplete{font-weight:normal}.mynah-autocomplete-items-wrapper:not(:hover)>.mynah-autocomplete-button.hover{background-color:var(--mynah-color-bg)}.pointer{cursor:pointer}.mynah-syntax-highlighter{display:block;box-sizing:border-box;overflow:hidden;margin:0;margin-bottom:var(--mynah-sizing-3);border:1px solid var(--mynah-color-border-default);position:relative}.mynah-syntax-highlighter:before{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--vscode-terminal-dropBackground);opacity:.12;pointer-events:none;user-select:none}.mynah-syntax-highlighter>.mynah-syntax-highlighter-copy-buttons{justify-content:flex-end;display:flex;padding:var(--mynah-sizing-1);z-index:10}.mynah-syntax-highlighter>.mynah-syntax-highlighter-copy-buttons .mynah-button{font-size:var(--mynah-sizing-5);color:var(--mynah-color-button)}.mynah-syntax-highlighter:hover>.mynah-syntax-highlighter-copy-buttons{opacity:1}.mynah-syntax-highlighter>pre{padding:var(--mynah-sizing-3);margin:0;overflow-x:auto;overflow-y:hidden;position:relative}.mynah-syntax-highlighter>pre *,.mynah-syntax-highlighter>pre{font-size:var(--vscode-editor-font-size) !important;font-family:var(--vscode-editor-font-family) !important}.mynah-syntax-highlighter>pre>code{color:var(--vscode-terminal-ansiBlue);filter:brightness(0.95);white-space:pre}.mynah-syntax-highlighter>pre>code,.mynah-syntax-highlighter>pre{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;tab-size:4;hyphens:none}.mynah-syntax-highlighter>pre>code::selection,.mynah-syntax-highlighter>pre::selection{text-shadow:none;background:#b3d4fc}.mynah-syntax-highlighter>pre .token.comment,.mynah-syntax-highlighter>pre .token.prolog,.mynah-syntax-highlighter>pre .token.doctype,.mynah-syntax-highlighter>pre .token.cdata{color:var(--vscode-debugConsole-sourceForeground)}.mynah-syntax-highlighter>pre .token.punctuation{color:currentColor}.mynah-syntax-highlighter>pre .token.namespace{opacity:.7}.mynah-syntax-highlighter>pre .token.property,.mynah-syntax-highlighter>pre .token.tag,.mynah-syntax-highlighter>pre .token.boolean,.mynah-syntax-highlighter>pre .token.number,.mynah-syntax-highlighter>pre .token.constant,.mynah-syntax-highlighter>pre .token.symbol,.mynah-syntax-highlighter>pre .token.deleted{color:var(--vscode-terminal-ansiCyan)}.mynah-syntax-highlighter>pre .token.selector,.mynah-syntax-highlighter>pre .token.attr-name,.mynah-syntax-highlighter>pre .token.string,.mynah-syntax-highlighter>pre .token.char,.mynah-syntax-highlighter>pre .token.builtin,.mynah-syntax-highlighter>pre .token.inserted{color:var(--vscode-debugTokenExpression-string)}.mynah-syntax-highlighter>pre .token.operator,.mynah-syntax-highlighter>pre .token.entity,.mynah-syntax-highlighter>pre .token.url,.mynah-syntax-highlighter>pre .language-css .token.string,.mynah-syntax-highlighter>pre .style .token.string{color:var(--vscode-debugTokenExpression-name)}.mynah-syntax-highlighter>pre .token.atrule,.mynah-syntax-highlighter>pre .token.attr-value,.mynah-syntax-highlighter>pre .token.keyword{color:var(--vscode-debugIcon-stepBackForeground)}.mynah-syntax-highlighter>pre .token.class-name{color:var(--vscode-debugIcon-stepBackForeground)}.mynah-syntax-highlighter>pre .token.function{color:var(--vscode-gitDecoration-modifiedResourceForeground)}.mynah-syntax-highlighter>pre .token.regex,.mynah-syntax-highlighter>pre .token.important,.mynah-syntax-highlighter>pre .token.variable{color:var(--vscode-debugTokenExpression-name)}.mynah-syntax-highlighter>pre .token.important,.mynah-syntax-highlighter>pre .token.bold{font-weight:bold}.mynah-syntax-highlighter>pre .token.italic{font-style:italic}.mynah-syntax-highlighter>pre .token.entity{cursor:help}.mynah-syntax-highlighter>pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber;position:relative}.mynah-syntax-highlighter>pre>.line-numbers-rows{position:absolute;top:var(--mynah-sizing-3);font-size:100%;left:0;width:var(--mynah-sizing-12);overflow:hidden;text-overflow:clip;letter-spacing:-1px;border-right:1px solid var(--mynah-color-border-default)}.mynah-syntax-highlighter>pre>.line-numbers-rows>span,.mynah-syntax-highlighter>pre>.line-numbers-rows{pointer-events:none;user-select:none}.mynah-syntax-highlighter>pre>.line-numbers-rows>span{display:block;color:var(--mynah-color-border-default);padding-right:.8em;text-align:right}body,html{background-color:var(--mynah-color-bg);height:100%;width:100%;overflow:hidden;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--mynah-color-text-strong)}::-webkit-scrollbar{width:3px;height:3px;opacity:.5}*:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/_variables.scss\",\"webpack://./src/styles/_animations.scss\",\"webpack://./src/styles/components/_main-container.scss\",\"webpack://./src/styles/components/_search-block.scss\",\"webpack://./src/styles/_mixins.scss\",\"webpack://./src/styles/components/_search-history.scss\",\"webpack://./src/styles/components/_context-pill.scss\",\"webpack://./src/styles/components/_prioritization-menu.scss\",\"webpack://./src/styles/components/_button.scss\",\"webpack://./src/styles/components/_toggle.scss\",\"webpack://./src/styles/components/_nav-tabs.scss\",\"webpack://./src/styles/components/_card.scss\",\"webpack://./src/styles/components/_feedback-form.scss\",\"webpack://./src/styles/components/_overlay.scss\",\"webpack://./src/styles/components/_notification.scss\",\"webpack://./src/styles/components/_autocomplete.scss\",\"webpack://./src/styles/components/_syntax-highlighter.scss\",\"webpack://./src/styles/styles.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\":root {\\n font-size: var(--vscode-editor-font-size);\\n font-family: var(--vscode-editor-font-family);\\n\\n --mynah-sizing-base: 3px;\\n --mynah-sizing-half: calc(var(--mynah-sizing-base) / 2);\\n --mynah-sizing-1: var(--mynah-sizing-base);\\n --mynah-sizing-2: calc(var(--mynah-sizing-base) * 2);\\n --mynah-sizing-3: calc(var(--mynah-sizing-base) * 3);\\n --mynah-sizing-4: calc(var(--mynah-sizing-base) * 4);\\n --mynah-sizing-5: calc(var(--mynah-sizing-base) * 5);\\n --mynah-sizing-6: calc(var(--mynah-sizing-base) * 6);\\n --mynah-sizing-7: calc(var(--mynah-sizing-base) * 7);\\n --mynah-sizing-8: calc(var(--mynah-sizing-base) * 8);\\n --mynah-sizing-9: calc(var(--mynah-sizing-base) * 9);\\n --mynah-sizing-10: calc(var(--mynah-sizing-base) * 10);\\n --mynah-sizing-11: calc(var(--mynah-sizing-base) * 11);\\n --mynah-sizing-12: calc(var(--mynah-sizing-base) * 12);\\n --mynah-sizing-13: calc(var(--mynah-sizing-base) * 13);\\n --mynah-sizing-14: calc(var(--mynah-sizing-base) * 14);\\n --mynah-sizing-15: calc(var(--mynah-sizing-base) * 15);\\n --mynah-sizing-16: calc(var(--mynah-sizing-base) * 16);\\n --mynah-sizing-17: calc(var(--mynah-sizing-base) * 17);\\n --mynah-sizing-18: calc(var(--mynah-sizing-base) * 18);\\n --mynah-button-border-width: 1px;\\n\\n --mynah-color-text-default: var(--vscode-foreground);\\n --mynah-color-text-strong: var(--vscode-input-foreground);\\n --mynah-color-text-weak: var(--vscode-list-deemphasizedForeground);\\n --mynah-color-text-link: var(--vscode-textLink-foreground);\\n --mynah-color-text-input: var(--vscode-input-foreground);\\n\\n --mynah-color-bg: var(--vscode-sideBar-background);\\n --mynah-color-light: rgba(0, 0, 0, 0.05);\\n\\n --mynah-color-deep: var(--vscode-checkbox-background);\\n --mynah-color-deep-reverse: var(--vscode-checkbox-foreground);\\n --mynah-color-border-default: rgba(0, 0, 0, 0.1);\\n --mynah-color-input-bg: var(--vscode-input-background);\\n\\n --mynah-color-highlight: rgba(255, 199, 72, 0.3);\\n --mynah-color-highlight-text: #886411;\\n\\n --mynah-color-context-must-contain: #c7ebce;\\n --mynah-color-context-should-contain: var(--vscode-sideBar-background);\\n --mynah-color-context-must-not-contain: #f3cac7;\\n --mynah-color-context-reverse: rgba(0, 0, 0, 0.5);\\n --mynah-color-context-filter: 0.975;\\n\\n --mynah-color-status-info: var(--vscode-editorInfo-foreground);\\n --mynah-color-status-success: var(--vscode-list-activeSelectionBackground);\\n --mynah-color-status-warning: var(--vscode-editorWarning-foreground);\\n --mynah-color-status-error: var(--vscode-editorError-foreground);\\n\\n --mynah-color-button: var(--vscode-button-background);\\n --mynah-color-button-reverse: var(--vscode-button-foreground);\\n\\n --mynah-color-alternate: var(--vscode-button-secondaryBackground);\\n --mynah-color-alternate-reverse: var(--vscode-button-secondaryForeground);\\n\\n --mynah-color-code-bg: var(--mynah-color-bg);\\n --mynah-color-code-text: var(--vscode-textPreformat-foreground);\\n\\n --mynah-color-main: var(--vscode-button-background);\\n --mynah-color-main-reverse: var(--vscode-button-foreground);\\n\\n --mynah-card-bg: var(--vscode-editor-background);\\n\\n --mynah-shadow-generic: none;\\n --mynah-shadow-card: none;\\n --mynah-shadow-card-more: none;\\n --mynah-shadow-card-active: none;\\n --mynah-shadow-prioritization-menu: 0 10px 20px -10px var(--vscode-editorGroup-border);\\n --mynah-shadow-feedback-form: 0 0px 40px 0px var(--mynah-color-bg);\\n\\n --mynah-font-size-xsmall: 0.85rem;\\n --mynah-font-size-small: 0.95rem;\\n --mynah-font-size-medium: 1rem;\\n --mynah-font-size-large: 1.15rem;\\n --mynah-font-size-xlarge: 1.275rem;\\n\\n --mynah-card-radius: 0;\\n --mynah-button-radius: var(--mynah-sizing-1);\\n\\n --mynah-very-short-transition: all 250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-transform: transform 200ms cubic-bezier(0.85, 0.15, 0, 1);\\n --mynah-long-transition: all 370ms cubic-bezier(0.35, 1, 0.15, 1);\\n --mynah-pretty-long-transition: all 450ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-very-long-transition: all 1250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition: all 250ms cubic-bezier(0.85, 0.15, 0, 1);\\n --mynah-short-transition-rev: all 270ms cubic-bezier(0.35, 1, 0, 1);\\n --mynah-short-transition-rev-opacity: opacity 400ms cubic-bezier(0.35, 1, 0, 1);\\n --mynah-short-transition-reflection: all 650ms cubic-bezier(0.25, 1, 0, 1),\\n opacity 500ms 150ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-turbo: all 250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-turbo-bounce: all 350ms cubic-bezier(0.25, 1, 0, 1),\\n transform 450ms cubic-bezier(0.25, 4, 0, 1);\\n --mynah-short-transition-bounce: all 500ms cubic-bezier(0.25, 1, 0, 1),\\n transform 700ms cubic-bezier(0.25, 1.75, 0, 1);\\n\\n --mynah-mask-image: linear-gradient(\\n to bottom,\\n black var(--mynah-sizing-8),\\n black calc(100% - var(--mynah-sizing-14)),\\n transparent\\n );\\n --mynah-mask-image-rev: linear-gradient(to bottom, transparent 0%, transparent 80%, black 100%);\\n --mynah-mask-image-main: linear-gradient(\\n to bottom,\\n transparent,\\n black var(--mynah-sizing-6),\\n black calc(100% - var(--mynah-sizing-6)),\\n transparent\\n );\\n --mynah-mask-image-main-rev: linear-gradient(to bottom, black, transparent calc(100% - 2px), transparent);\\n\\n --mynah-mask-image-skeleton: linear-gradient(\\n to bottom,\\n black var(--mynah-sizing-8),\\n black calc(50% - var(--mynah-sizing-14)),\\n transparent\\n );\\n\\n --mynah-policy-group-filter: saturate(0.5) brightness(0.85);\\n}\\n\",\"@keyframes glass-reflection {\\n 0% {\\n background-position: 100% 50%;\\n }\\n 100% {\\n background-position: 0% 50%;\\n }\\n}\\n\\n@keyframes move-to-middle {\\n 0% {\\n transform: translate3d(-10%, 0, 0);\\n opacity: 0;\\n }\\n 100% {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n}\\n@keyframes move-to-right {\\n 0% {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n 100% {\\n transform: translate3d(10%, 0, 0);\\n opacity: 0;\\n }\\n}\\n\\n@keyframes shake {\\n 0% {\\n transform: translate3d(0, 0, 0);\\n border-color: red;\\n }\\n 10% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 20% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 30% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 40% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 50% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 60% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 70% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 80% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 90% {\\n transform: translate3d(5px, 0, 0);\\n border-color: red;\\n }\\n 100% {\\n transform: translate3d(0, 0, 0);\\n border-color: rgba(0, 0, 0, 0);\\n }\\n}\\n\",\"#mynah-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n margin: 0 auto;\\n width: 100%;\\n max-width: 1024px;\\n box-sizing: border-box;\\n height: 100%;\\n padding: var(--mynah-sizing-3) 0 0 0;\\n .context-checkbox {\\n display: none;\\n }\\n\\n .mynah-main {\\n display: block;\\n box-sizing: border-box;\\n flex: 1 1 0;\\n overflow: hidden;\\n position: relative;\\n > .mynah-skeleton-wrapper,\\n > .mynah-cards-wrapper {\\n padding: var(--mynah-sizing-3) 0 var(--mynah-sizing-12) 0;\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-4);\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n height: 100%;\\n }\\n > .mynah-cards-wrapper {\\n overflow-x: hidden;\\n overflow-y: auto;\\n flex: 1 1 0;\\n transition: var(--mynah-long-transition);\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n > .mynah-no-suggestion-indicator {\\n display: flex;\\n box-sizing: border-box;\\n opacity: 0.5;\\n width: 100%;\\n padding: var(--mynah-sizing-12);\\n flex-flow: row nowrap;\\n justify-content: center;\\n align-items: flex-start;\\n }\\n }\\n > .mynah-skeleton-wrapper {\\n position: absolute;\\n transition: var(--mynah-long-transition);\\n top: 0;\\n left: 0;\\n margin: 0 auto;\\n width: 100%;\\n height: 100%;\\n z-index: 100;\\n pointer-events: none;\\n transform: translate3d(-10%, 0, 0);\\n opacity: 0;\\n }\\n &.mynah-hide-content {\\n > .mynah-cards-wrapper {\\n animation: move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n > .mynah-skeleton-wrapper {\\n pointer-events: all;\\n animation: move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n }\\n &.mynah-show-content {\\n > .mynah-cards-wrapper {\\n animation: move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n > .mynah-skeleton-wrapper {\\n pointer-events: none;\\n transition-delay: 450ms;\\n animation: move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n }\\n }\\n}\\n\\n@media screen and (max-width: 1024px) {\\n #mynah-wrapper {\\n padding-top: 0;\\n > .mynah-search-block {\\n border-left: none;\\n border-right: none;\\n border-top: none;\\n }\\n .mynah-main {\\n > .mynah-skeleton-wrapper,\\n > .mynah-cards-wrapper > .mynah-card {\\n border-right: none;\\n border-left: none;\\n }\\n }\\n }\\n}\\n\",\".mynah-search-block {\\n display: inline-flex;\\n flex-flow: row wrap;\\n justify-content: flex-end;\\n background-color: var(--mynah-card-bg);\\n border-radius: var(--mynah-card-radius);\\n box-shadow: var(--mynah-shadow-card);\\n transition: var(--mynah-short-transition-rev);\\n overflow: visible;\\n position: relative;\\n @include background-shadow;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n gap: var(--mynah-sizing-2);\\n\\n > .mynah-search-block-header {\\n width: 100%;\\n box-sizing: border-box;\\n overflow: hidden;\\n > .mynah-search-block-header-top-bar {\\n width: 100%;\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);\\n display: flex;\\n justify-content: space-between;\\n box-sizing: border-box;\\n overflow: hidden;\\n }\\n > .mynah-search-block-header-info-bar {\\n margin: 0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);\\n font-size: var(--mynah-font-size-small);\\n padding: var(--mynah-sizing-2);\\n position: relative;\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n > .mynah-search-block-header-info-bar-bg {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 0;\\n border-radius: var(--mynah-button-radius);\\n border: 1px solid var(--mynah-color-status-info);\\n box-sizing: border-box;\\n opacity: 0.2;\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n box-sizing: border-box;\\n background-color: var(--mynah-color-status-info);\\n opacity: 0.2;\\n }\\n & + .mynah-icon {\\n color: var(--mynah-color-status-info);\\n font-size: var(--mynah-font-size-large);\\n }\\n & ~ .mynah-search-block-header-info-bar-text,\\n & ~ .mynah-icon {\\n opacity: 0.75;\\n z-index: 1;\\n }\\n\\n &.mynah-header-info-ok-circled {\\n border-color: var(--mynah-color-status-success);\\n &::after {\\n background-color: var(--mynah-color-status-success);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-success);\\n }\\n }\\n &.mynah-header-info-warning {\\n border-color: var(--mynah-color-status-warning);\\n &::after {\\n background-color: var(--mynah-color-status-warning);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-warning);\\n }\\n }\\n &.mynah-header-info-error {\\n border-color: var(--mynah-color-status-error);\\n &::after {\\n background-color: var(--mynah-color-status-error);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-error);\\n }\\n }\\n }\\n &:empty {\\n display: none;\\n }\\n }\\n }\\n\\n > .mnynah-search-block-fold-unfold-button {\\n position: absolute;\\n bottom: 0;\\n left: 50%;\\n margin-left: calc(-1 * var(--mynah-sizing-8) / 2);\\n margin-bottom: calc(-1 * var(--mynah-sizing-8) / 2);\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-8);\\n z-index: 999999;\\n transform: translate3d(0, 0, 0) scale(0.75);\\n opacity: 0;\\n pointer-events: none;\\n transition: var(--mynah-very-short-transition);\\n background-color: var(--mynah-card-bg);\\n color: var(--mynah-color-text-input);\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n font-size: var(--mynah-sizing-6);\\n > .mynah-icon {\\n &-up-open {\\n display: inline-flex;\\n }\\n &-down-open {\\n display: none;\\n }\\n }\\n }\\n\\n > .mynah-search-live-toggle-wrapper {\\n display: flex;\\n flex-flow: row nowrap;\\n justify-content: flex-end;\\n align-items: center;\\n gap: var(--mynah-sizing-1);\\n width: 100%;\\n padding: 0 var(--mynah-sizing-4) 0 0;\\n\\n &.mynah-hide-content,\\n &.mynah-hide-content * {\\n display: none;\\n }\\n\\n > .mynah-toggle-container > .mynah-toggle-indicator-transitioner {\\n &:before,\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n z-index: 10;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--mynah-color-status-success);\\n opacity: 0.35;\\n border-radius: 100%;\\n transform: translate3d(0, 0, 0) scale(0);\\n transform-origin: center center;\\n pointer-events: none;\\n }\\n }\\n &.flash-toggle > .mynah-toggle-container {\\n overflow: visible;\\n > .mynah-toggle-indicator-transitioner {\\n &:before,\\n &:after {\\n content: \\\"\\\";\\n transform: translate3d(0, 0, 0) scale(8);\\n opacity: 0;\\n transition: var(--mynah-short-transition);\\n transition-duration: 1750ms;\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(10);\\n transition-duration: 2000ms;\\n transition-delay: 200ms;\\n }\\n }\\n }\\n }\\n > .mynah-search-input-wrapper,\\n > .mynah-search-api-help {\\n color: var(--mynah-color-text-input);\\n width: 100%;\\n flex: 1 1 100%;\\n margin: 0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);\\n display: flex;\\n }\\n\\n > .mynah-search-api-help {\\n flex-flow: column nowrap;\\n padding: var(--mynah-sizing-half);\\n box-sizing: border-box;\\n border-radius: var(--mynah-card-radius);\\n overflow: hidden;\\n &.hide {\\n display: none;\\n }\\n > .mynah-search-api-help-code-view-wrapper {\\n width: 100%;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n > .mynah-syntax-highlighter > pre {\\n width: 100%;\\n box-sizing: border-box;\\n max-height: 50vh;\\n overflow-x: auto;\\n overflow-y: auto;\\n }\\n }\\n\\n > .mynah-search-api-help-code-view-detail-row {\\n display: flex;\\n flex-flow: row nowrap;\\n width: 100%;\\n align-items: center;\\n gap: var(--mynah-sizing-1);\\n padding: 0 var(--mynah-sizing-3) 0 var(--mynah-sizing-3);\\n &:nth-child(1) {\\n margin-top: var(--mynah-sizing-3);\\n }\\n &:nth-child(2) {\\n margin-bottom: var(--mynah-sizing-3);\\n }\\n > *:nth-child(1) {\\n width: 110px;\\n margin: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n > *:nth-child(2) {\\n flex: 1 1 0%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n }\\n > .mynah-search-api-help-collapser {\\n display: flex;\\n flex-flow: row nowrap;\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);\\n justify-content: center;\\n align-items: center;\\n font-size: var(--mynah-sizing-6);\\n cursor: pointer;\\n > .mynah-search-api-help-uncollapse-icon {\\n display: none;\\n }\\n > .mynah-search-api-help-collapse-icon {\\n display: inline-flex;\\n }\\n }\\n\\n &.collapsed {\\n > .mynah-search-api-help-code-view-wrapper {\\n cursor: pointer;\\n > .mynah-syntax-highlighter > pre {\\n max-height: var(--mynah-sizing-16);\\n overflow-x: hidden;\\n overflow-y: hidden;\\n }\\n }\\n > .mynah-search-api-help-code-view-detail-row {\\n display: none;\\n }\\n > .mynah-search-api-help-collapser {\\n > .mynah-search-api-help-uncollapse-icon {\\n display: inline-flex;\\n }\\n > .mynah-search-api-help-collapse-icon {\\n display: none;\\n }\\n }\\n }\\n }\\n\\n > .mynah-search-input-wrapper {\\n border: 1px solid var(--mynah-color-border-default);\\n padding: var(--mynah-sizing-2);\\n border-radius: var(--mynah-card-radius);\\n flex-flow: row nowrap;\\n align-items: center;\\n gap: var(--mynah-sizing-2);\\n > .mynah-logo {\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n opacity: 0.5;\\n }\\n > .mynah-search-input {\\n flex: 1 1 0;\\n border: none;\\n background-color: rgba(0, 0, 0, 0);\\n font-size: var(--mynah-font-size-large);\\n color: var(--mynah-color-text-input);\\n outline: none;\\n width: 100%;\\n &::placeholder {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-small);\\n }\\n &:not(:placeholder-shown) + span {\\n display: inline-block;\\n }\\n &:placeholder-shown:not(.search-always-active) ~ .mynah-search-button {\\n background-color: var(--mynah-color-light);\\n color: var(--mynah-color-text-default);\\n box-shadow: 0 5px 10px -10px var(--mynah-color-light);\\n pointer-events: none;\\n > * {\\n opacity: 0.5;\\n }\\n }\\n & + span {\\n &:after {\\n content: attr(remaining-chars) \\\"/\\\" attr(max-chars);\\n }\\n display: none;\\n opacity: 0.5;\\n font-size: var(--mynah-font-size-xsmall);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n color: currentColor;\\n margin-left: var(--mynah-sizing-1);\\n }\\n }\\n }\\n > .mynah-search-block-advanced-control {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n overflow: hidden;\\n width: 100%;\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-4) var(--mynah-sizing-4) var(--mynah-sizing-4);\\n transition: var(--mynah-very-short-transition);\\n max-height: 50vh;\\n > .mynah-context-wrapper {\\n display: flex;\\n flex-flow: row wrap;\\n gap: var(--mynah-sizing-2);\\n flex: 1 1 0%;\\n align-items: center;\\n }\\n }\\n\\n &.mynah-search-block-ready-to-fold {\\n > .mnynah-search-block-fold-unfold-button {\\n transform: translate3d(0, 0, 0) scale(1.000001);\\n opacity: 1;\\n pointer-events: all;\\n }\\n &:not(.mynah-search-block-unfold) {\\n > .mnynah-search-block-fold-unfold-button {\\n > .mynah-icon-up-open {\\n display: none;\\n }\\n > .mynah-icon-down-open {\\n display: inline-flex;\\n }\\n }\\n > .mynah-search-block-advanced-control {\\n max-height: 0;\\n opacity: 0.4;\\n -webkit-mask-image: var(--mynah-mask-image-main-rev);\\n -webkit-mask-size: 100% 150%;\\n mask-image: var(--mynah-mask-image-main-rev);\\n mask-size: 100% 200%;\\n > #add-new-context {\\n transform: translate3d(0, calc(-1 * var(--mynah-sizing-10)), 0) scale(0.5) !important;\\n opacity: 0 !important;\\n margin-bottom: calc(-1 * var(--mynah-sizing-10));\\n }\\n }\\n }\\n }\\n}\\n\\n@media screen and (max-width: 1024px) {\\n .mynah-search-block {\\n border-radius: 0;\\n margin: 0;\\n }\\n}\\n\",\"@mixin background-shadow {\\n overflow: visible;\\n &:before {\\n content: \\\"\\\";\\n background-color: transparent;\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border-radius: inherit;\\n box-shadow: var(--mynah-shadow-card);\\n pointer-events: none;\\n filter: brightness(50%) saturate(250%) contrast(250%);\\n opacity: 0.4;\\n }\\n}\\n\\n@mixin lighten-darken {\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n backdrop-filter: brightness(var(--mynah-color-context-filter));\\n }\\n}\\n\\n@mixin list-fader {\\n position: relative;\\n $listFader: linear-gradient(\\n to bottom,\\n transparent 0%,\\n black var(--mynah-sizing-6),\\n black calc(100% - var(--mynah-sizing-6)),\\n transparent 100%\\n );\\n -webkit-mask-image: $listFader;\\n -webkit-mask-size: 100% 100%;\\n mask-image: $listFader;\\n mask-size: 100% 100%;\\n}\\n\\n@mixin context-pill-group-background {\\n &:after,\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 2;\\n border-radius: calc(var(--mynah-button-radius) * 3 / 2);\\n border: 1px solid transparent;\\n }\\n &:after {\\n background-color: var(--mynah-card-bg);\\n z-index: 1;\\n }\\n}\\n\",\".mynah-search-history-items-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n max-height: 50vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n width: 70vw;\\n max-width: 450px;\\n box-sizing: border-box;\\n @include list-fader();\\n padding: var(--mynah-sizing-3);\\n gap: var(--mynah-sizing-3);\\n > .mynah-search-history-button {\\n flex-shrink: 0;\\n height: auto;\\n min-height: var(--mynah-sizing-14);\\n background-color: transparent;\\n border: 1px solid var(--mynah-color-bg);\\n color: var(--mynah-color-text-default);\\n border-radius: var(--mynah-button-radius);\\n padding: var(--mynah-sizing-3);\\n &,\\n &:active {\\n box-shadow: none;\\n }\\n &:active:after {\\n opacity: 0.1;\\n }\\n > span {\\n text-align: left;\\n max-width: initial;\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n > .mynah-search-history-button-label {\\n width: 100%;\\n display: flex;\\n flex-flow: row nowrap;\\n gap: var(--mynah-sizing-3);\\n justify-content: flex-start;\\n align-items: center;\\n overflow: hidden;\\n > .mynah-search-history-trigger-icon {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n font-size: var(--mynah-font-size-medium);\\n > i {\\n opacity: 0.2;\\n }\\n > img {\\n opacity: 0.5;\\n width: var(--mynah-sizing-4);\\n height: var(--mynah-sizing-4);\\n }\\n }\\n > .mynah-search-history-title-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: center;\\n flex: 1;\\n overflow: hidden;\\n color: var(--mynah-color-text-weak);\\n gap: var(--mynah-sizing-1);\\n > h3 {\\n width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n margin: 0;\\n color: var(--mynah-color-text-default);\\n }\\n }\\n > .mynah-search-history-item-context-wrapper {\\n display: inline-block;\\n flex-grow: 0;\\n > .mynah-context-pill {\\n transform: translate3d(0px, 0px, 0px) scale(0.74);\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n display: inline-block;\\n transform-origin: center right;\\n &,\\n & * {\\n pointer-events: none;\\n }\\n > .mynah-context-checkbox-label {\\n padding: 0;\\n display: flex;\\n justify-content: center;\\n text-decoration: none;\\n &:before {\\n display: none;\\n }\\n > span {\\n width: var(--mynah-sizing-4);\\n overflow: visible;\\n text-align: center;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n\",\".mynah-context-checkbox {\\n display: none;\\n}\\n\\n.mynah-context-pill-groups-start {\\n order: 5;\\n display: none;\\n & ~ .mynah-context-pill-group-item-must {\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: inline-flex;\\n }\\n & ~ .mynah-context-pill-group-item-must {\\n &:before {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: none;\\n }\\n margin-left: calc(-7 * var(--mynah-sizing-half));\\n }\\n }\\n & ~ .mynah-context-pill-group-item-mustNot {\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: inline-flex;\\n }\\n & ~ .mynah-context-pill-group-item-mustNot {\\n &:before {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: none;\\n }\\n margin-left: calc(-7 * var(--mynah-sizing-half));\\n }\\n }\\n}\\n\\n.mynah-context-pill-group-item-must,\\n.mynah-context-pill-group-item-mustNot {\\n position: relative;\\n display: inline-flex;\\n overflow: visible;\\n @include context-pill-group-background();\\n z-index: 3;\\n padding: calc(var(--mynah-sizing-1) + var(--mynah-sizing-half));\\n &:hover {\\n z-index: 30;\\n }\\n}\\n.mynah-context-pill-group-item-must {\\n order: 10;\\n &:before {\\n border-color: var(--mynah-color-status-info);\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n color: var(--mynah-color-status-info);\\n }\\n}\\n.mynah-context-pill-group-item-mustNot {\\n order: 30;\\n &:before {\\n border-color: var(--mynah-color-status-warning);\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n color: var(--mynah-color-status-warning);\\n }\\n}\\n\\n.mynah-context-pill {\\n position: relative;\\n order: 10;\\n overflow: visible;\\n transition: z-index 1ms 75ms linear;\\n z-index: 3;\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n &.mynah-context-hidden {\\n display: none;\\n }\\n &:hover {\\n z-index: 30;\\n }\\n > .mynah-context-pill-group-icon {\\n display: none;\\n font-size: var(--mynah-font-size-large);\\n margin: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);\\n }\\n > .mynah-prioritise-button {\\n position: absolute;\\n z-index: 3;\\n top: 0;\\n transform-origin: center center;\\n transform: translate3d(0, 0, 0);\\n opacity: 0;\\n transition: var(--mynah-very-short-transition);\\n pointer-events: none;\\n min-width: 0;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n right: calc(-1 * var(--mynah-sizing-base));\\n background-color: inherit;\\n color: inherit;\\n white-space: nowrap;\\n border: var(--mynah-button-border-width) solid currentColor;\\n * {\\n pointer-events: none;\\n }\\n }\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n width: calc(100% + var(--mynah-sizing-9));\\n top: calc(-1 * var(--mynah-sizing-base));\\n height: var(--mynah-sizing-10);\\n opacity: 0;\\n pointer-events: none;\\n }\\n &:hover {\\n > .mynah-prioritise-button {\\n opacity: 1;\\n }\\n }\\n &.keep-active {\\n > .mynah-prioritise-button {\\n opacity: 1;\\n }\\n }\\n &.keep-active,\\n &:hover {\\n transition-delay: 1ms;\\n z-index: 1000;\\n &:before {\\n opacity: 1;\\n pointer-events: all;\\n }\\n > .mynah-prioritise-button {\\n transform: translate3d(var(--mynah-sizing-8), 0, 0);\\n pointer-events: all;\\n }\\n > .mynah-context-checkbox-label {\\n &:after {\\n opacity: 1 !important;\\n }\\n }\\n }\\n\\n &.mynah-must-contain {\\n > .mynah-context-checkbox-label {\\n cursor: default;\\n }\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-must-contain);\\n color: var(--mynah-color-context-reverse);\\n @include lighten-darken();\\n &:after {\\n opacity: 0.5;\\n }\\n }\\n }\\n &.mynah-should-contain {\\n order: 20;\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n @include lighten-darken();\\n > span {\\n opacity: 0.75;\\n }\\n }\\n }\\n &.mynah-must-not-contain {\\n > .mynah-context-checkbox-label {\\n cursor: default;\\n }\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-must-not-contain);\\n color: var(--mynah-color-context-reverse);\\n text-decoration: line-through;\\n font-style: italic;\\n > span {\\n opacity: 0.5;\\n }\\n }\\n }\\n}\\n\\n.mynah-context-checkbox-label {\\n cursor: pointer;\\n z-index: 10;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-4) var(--mynah-sizing-2) var(--mynah-sizing-4);\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n border-radius: var(--mynah-button-radius);\\n position: relative;\\n overflow: hidden;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n justify-content: flex-start;\\n align-items: center;\\n transition: var(--mynah-short-transition);\\n height: var(--mynah-sizing-8);\\n max-height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-6);\\n box-sizing: border-box;\\n user-select: none;\\n > *:not(.filter-remove-button) {\\n pointer-events: none;\\n }\\n > i {\\n font-size: var(--mynah-font-size-medium);\\n margin-left: calc(-1 * var(--mynah-sizing-2));\\n margin-right: var(--mynah-sizing-base);\\n }\\n &.before-remove,\\n &.before-remove * {\\n pointer-events: none !important;\\n }\\n * {\\n user-select: none;\\n }\\n &.hidden {\\n display: none;\\n }\\n > * {\\n z-index: 5;\\n position: relative;\\n }\\n > .filter-remove-button {\\n font-size: var(--mynah-font-size-medium);\\n pointer-events: all;\\n transition: var(--mynah-very-short-transition);\\n transform-origin: center center;\\n margin-right: calc(var(--mynah-sizing-3) * -1);\\n margin-left: var(--mynah-sizing-half);\\n position: relative;\\n box-sizing: border-box;\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n background-color: currentColor;\\n transition: var(--mynah-short-transition);\\n transform: translate3d(0, 0, 0) scale(0.5);\\n opacity: 0;\\n top: var(--mynah-sizing-half);\\n left: var(--mynah-sizing-half);\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n box-sizing: border-box;\\n }\\n > i {\\n transition: var(--mynah-short-transition);\\n transform: translate3d(0, 0, 0) scale(0.85);\\n }\\n &:hover {\\n &:before {\\n opacity: 0.15;\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n > i {\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n }\\n }\\n &:after {\\n pointer-events: none;\\n content: \\\"\\\";\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: auto;\\n height: auto;\\n z-index: 10;\\n border-radius: var(--mynah-button-radius);\\n border: var(--mynah-button-border-width) solid currentColor;\\n opacity: 0.15;\\n }\\n\\n &#add-new-context {\\n order: 0;\\n justify-content: center;\\n font-size: var(--mynah-font-size-large);\\n width: auto;\\n max-width: 100%;\\n transition: var(--mynah-very-short-transition);\\n flex: 0 0 auto;\\n min-width: 90px;\\n\\n &.shake {\\n border: 1px solid rgba(0, 0, 0, 0);\\n animation: shake 700ms cubic-bezier(0.25, 0.5, 0, 1) backwards;\\n }\\n &.context-insertion-activated {\\n width: auto !important;\\n pointer-events: none;\\n @include lighten-darken();\\n > .add-new-context-label,\\n > i {\\n display: none;\\n }\\n }\\n &:not(.context-insertion-activated) {\\n > .context-text-input {\\n width: 0px;\\n opacity: 0;\\n padding: 0;\\n & + span {\\n display: none;\\n }\\n }\\n background-color: transparent;\\n color: inherit;\\n opacity: 0.65;\\n }\\n > .add-new-context-label {\\n font-size: var(--mynah-font-size-small);\\n font-weight: normal;\\n margin-left: var(--mynah-sizing-3);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n }\\n > i {\\n margin-right: calc(var(--mynah-sizing-2) * -1);\\n }\\n > .context-text-input {\\n position: absolute;\\n top: 0;\\n left: var(--mynah-sizing-4);\\n width: calc(100% - var(--mynah-sizing-8));\\n height: 100%;\\n box-sizing: border-box;\\n background-color: transparent;\\n overflow: hidden;\\n opacity: 1;\\n pointer-events: all;\\n display: inline-flex;\\n flex-wrap: nowrap;\\n align-items: center;\\n border: none;\\n outline: none;\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n color: var(--mynah-color-context-reverse);\\n &::placeholder {\\n color: var(--mynah-color-context-reverse);\\n opacity: 0.5;\\n font-weight: normal;\\n }\\n & + span {\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n color: rgba(0, 0, 0, 0);\\n user-select: none;\\n pointer-events: none;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: clip;\\n box-sizing: border-box;\\n display: inline;\\n margin-right: var(--mynah-sizing-1);\\n }\\n }\\n }\\n}\\n\",\".mynah-prioritization-menu-buttons-container {\\n display: inline-flex;\\n flex-flow: column nowrap;\\n align-items: stretch;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n padding: var(--mynah-sizing-4) var(--mynah-sizing-3) var(--mynah-sizing-4) var(--mynah-sizing-3);\\n overflow: hidden;\\n position: relative;\\n > .mynah-prioritise-button {\\n width: auto;\\n transition: var(--mynah-long-transition);\\n padding-left: var(--mynah-sizing-3);\\n padding-right: var(--mynah-sizing-3);\\n font-size: var(--mynah-font-size-small);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n justify-content: flex-start;\\n overflow: hidden;\\n box-shadow: none;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n > span {\\n padding-left: 0;\\n }\\n > i {\\n font-size: var(--mynah-font-size-medium);\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n }\\n }\\n}\\n\",\"button.mynah-button {\\n border: none;\\n min-width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n border-radius: var(--mynah-button-radius);\\n background-color: var(--mynah-color-button);\\n color: var(--mynah-color-button-reverse);\\n box-shadow: var(--mynah-shadow-generic);\\n cursor: pointer;\\n transition: var(--mynah-very-short-transition);\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n outline: none;\\n overflow: hidden;\\n position: relative;\\n transform: translate3d(0, 0, 0) scale(1.00001);\\n padding: 0;\\n &.mynah-button-secondary {\\n background-color: transparent;\\n color: inherit;\\n box-shadow: none;\\n opacity: 0.75;\\n &:focus-visible,\\n &:hover {\\n opacity: 1;\\n }\\n &:active {\\n box-shadow: none;\\n }\\n }\\n &:focus-visible,\\n &:hover {\\n filter: brightness(0.925);\\n }\\n &:active {\\n box-shadow: 0 3px 10px -7px var(--mynah-color-button);\\n filter: brightness(0.875);\\n }\\n &.mynah-icon-button {\\n width: var(--mynah-sizing-10);\\n height: var(--mynah-sizing-10);\\n }\\n > .mynah-mutating-next-icon {\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n transform: translate3d(0, 0, 0) rotateZ(0deg);\\n transition: var(--mynah-short-transition-turbo);\\n transform-origin: center center;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n box-sizing: border-box;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n > i {\\n font-size: var(--mynah-font-size-xlarge);\\n &.mynah-loading-spinner {\\n min-width: var(--mynah-sizing-5);\\n min-height: var(--mynah-sizing-5);\\n border: 3px solid currentColor;\\n opacity: 0.5;\\n box-sizing: border-box;\\n border-top-color: rgba(0, 0, 0, 0);\\n border-radius: var(--mynah-sizing-5);\\n animation: spin 1s infinite linear;\\n }\\n &:nth-child(2) {\\n display: none;\\n }\\n }\\n }\\n > .mynah-search-history-icon {\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n transform: translate3d(0, 0, 0) rotateZ(0deg);\\n transition: var(--mynah-short-transition-turbo);\\n transform-origin: center center;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n box-sizing: border-box;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n > i {\\n font-size: 2rem;\\n &.mynah-history-icon {\\n min-width: var(--mynah-sizing-5);\\n min-height: var(--mynah-sizing-5);\\n border: 3px solid currentColor;\\n opacity: 0.5;\\n box-sizing: border-box;\\n border-top-color: rgba(0, 0, 0, 0);\\n border-radius: var(--mynah-button-radius);\\n animation: spin 1s infinite linear;\\n }\\n &:nth-child(2) {\\n display: none;\\n }\\n }\\n }\\n &.mynah-button-wait {\\n background-color: var(--mynah-color-light);\\n color: var(--mynah-color-text-default);\\n box-shadow: 0 5px 10px -10px var(--mynah-color-light);\\n pointer-events: none;\\n > .mynah-mutating-next-icon > i {\\n &:first-child {\\n display: none;\\n }\\n &:nth-child(2) {\\n display: block;\\n }\\n }\\n }\\n > span {\\n white-space: nowrap;\\n font-size: var(--mynah-font-size-medium);\\n max-width: 35vw;\\n transition: var(--mynah-very-long-transition);\\n overflow: hidden;\\n box-sizing: border-box;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n padding-left: var(--mynah-sizing-3);\\n padding-right: var(--mynah-sizing-3);\\n }\\n > i + span {\\n padding-left: var(--mynah-sizing-base);\\n }\\n}\\n\",\".mynah-toggle-container {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n max-width: 100%;\\n overflow: hidden;\\n align-items: center;\\n justify-content: center;\\n padding: var(--mynah-sizing-1);\\n position: relative;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n border-radius: var(--mynah-button-radius);\\n .mynah-toggle-option {\\n display: none;\\n &:not(:first-child) + .mynah-toggle-option-label {\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n }\\n & + .mynah-toggle-option-label {\\n cursor: pointer;\\n position: relative;\\n z-index: 100;\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-2);\\n border-radius: var(--mynah-button-radius);\\n min-height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-8);\\n box-sizing: border-box;\\n display: inline-flex;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n }\\n &:checked + .mynah-toggle-option-label {\\n pointer-events: none;\\n }\\n &[disabled=\\\"disabled\\\"] {\\n pointer-events: none;\\n & + .mynah-toggle-option-label {\\n pointer-events: none;\\n opacity: 0.25;\\n }\\n }\\n }\\n &.mynah-toggle-type-switch {\\n .mynah-toggle-option {\\n & + .mynah-toggle-option-label {\\n transition: var(--mynah-short-transition-rev), background-color 1ms 0ms;\\n }\\n &:checked + .mynah-toggle-option-label {\\n color: var(--mynah-color-button-reverse);\\n background-color: var(--mynah-color-button);\\n transition: var(--mynah-short-transition-rev), background-color 1ms 500ms;\\n }\\n &:not(:checked) + .mynah-toggle-option-label {\\n background-color: rgba(0, 0, 0, 0) !important;\\n }\\n }\\n > .mynah-toggle-indicator-transitioner {\\n top: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n > .mynah-toggle-indicator-transitioner {\\n background-color: var(--mynah-color-button);\\n display: inline-block;\\n transition: var(--mynah-short-transition-rev);\\n border-radius: var(--mynah-button-radius);\\n position: absolute;\\n z-index: 30;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n left: calc(-1 * var(--mynah-sizing-8));\\n &.relocate {\\n transition-duration: 1ms;\\n }\\n }\\n &.mynah-toggle-type-tabs {\\n flex-flow: row wrap;\\n justify-content: flex-start;\\n > .mynah-toggle-indicator-transitioner {\\n height: var(--mynah-sizing-1);\\n border-radius: 0;\\n left: calc(-1 * var(--mynah-sizing-8));\\n transform: translateY(var(--mynah-sizing-1));\\n &.relocate {\\n transition-duration: 1ms;\\n }\\n }\\n .mynah-toggle-option {\\n &:checked + .mynah-toggle-option-label {\\n color: var(--mynah-color-button);\\n font-weight: 600;\\n }\\n }\\n }\\n}\\n\",\".mynah-nav-tabs-wrapper {\\n padding: 0 var(--mynah-sizing-2) var(--mynah-sizing-2) var(--mynah-sizing-2);\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n background-color: var(--mynah-card-bg);\\n margin-top: var(--mynah-sizing-3);\\n\\n > .mynah-toggle-container {\\n height: 100%;\\n background: none;\\n > span {\\n white-space: nowrap;\\n }\\n }\\n &:empty {\\n display: none;\\n }\\n\\n &.mynah-nav-tabs-loading,\\n &.mynah-nav-tabs-loading * {\\n pointer-events: none;\\n }\\n}\\n\",\".pointer {\\n cursor: pointer;\\n}\\n\\n.mynah-history-must-contain {\\n background: var(--mynah-color-context-must-contain);\\n}\\n.mynah-history-should-contain {\\n background: var(--mynah-color-context-should-contain);\\n}\\n.mynah-history-must-not-contain {\\n background: var(--mynah-color-context-must-not-contain);\\n}\\n\\n.mynah-card {\\n @for $i from 0 through 50 {\\n &:nth-child(#{$i}) {\\n z-index: (50 - $i) * 100;\\n }\\n }\\n text-decoration: none;\\n outline: none;\\n position: relative;\\n transition: var(--mynah-short-transition-rev);\\n padding: var(--mynah-sizing-5);\\n background-color: var(--mynah-color-bg);\\n border-radius: var(--mynah-card-radius);\\n box-sizing: border-box;\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-3);\\n transform: translate3d(0, 0, 0);\\n flex: auto 0 0;\\n width: 100%;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n @include background-shadow;\\n\\n &:hover:active:before {\\n box-shadow: var(--mynah-shadow-card-more);\\n opacity: 0.75;\\n }\\n\\n > * {\\n z-index: 10;\\n position: relative;\\n }\\n &:after {\\n content: \\\"\\\";\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: auto;\\n height: auto;\\n background-color: var(--mynah-card-bg);\\n border-radius: inherit;\\n box-sizing: border-box;\\n opacity: 0;\\n z-index: 0;\\n box-sizing: border-box;\\n transform-origin: center center;\\n transition: var(--mynah-very-short-transition);\\n opacity: 0.6;\\n }\\n &:hover {\\n &:before {\\n border-color: var(--mynah-color-main);\\n box-shadow: var(--mynah-shadow-card-more);\\n }\\n &:after {\\n opacity: 1;\\n }\\n > .mynah-card-header {\\n opacity: 1;\\n }\\n }\\n\\n > .mynah-card-header {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n opacity: 0.75;\\n transition: var(--mynah-very-short-transition);\\n > .mynah-source-thumbnail {\\n font-style: normal;\\n font-weight: normal;\\n display: inline-flex;\\n width: var(--mynah-sizing-11);\\n height: var(--mynah-sizing-11);\\n font-variant: normal;\\n text-transform: none;\\n border: 1px solid var(--mynah-color-border-default);\\n border-radius: 100%;\\n background-size: 80%;\\n background-position: center center;\\n background-repeat: no-repeat;\\n margin-right: var(--mynah-sizing-3);\\n align-self: flex-start;\\n box-sizing: border-box;\\n }\\n > .mynah-card-title-wrapper {\\n flex: 1 1 0;\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n gap: var(--mynah-sizing-half);\\n max-width: 100%;\\n overflow: hidden;\\n cursor: pointer;\\n &:hover > .mynah-card-title > .mynah-card-expand-icon {\\n opacity: 0.75;\\n align-self: baseline;\\n }\\n > .mynah-card-title {\\n font-size: var(--mynah-font-size-xlarge);\\n font-weight: 700;\\n color: var(--mynah-color-text-strong);\\n width: 100%;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n white-space: normal;\\n text-overflow: ellipsis;\\n text-decoration: none;\\n outline: none;\\n overflow: hidden;\\n > .mynah-card-expand-icon {\\n transition: var(--mynah-short-transition-rev);\\n opacity: 0;\\n font-size: var(--mynah-font-size-xsmall);\\n display: inline;\\n padding: var(--mynah-sizing-1);\\n border: 1px solid currentColor;\\n border-radius: 2px;\\n }\\n }\\n > .mynah-card-url {\\n font-size: var(--mynah-font-size-medium);\\n font-weight: 300;\\n color: var(--mynah-color-text-link);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n text-decoration: none;\\n outline: none;\\n overflow: hidden;\\n max-width: 100%;\\n position: relative;\\n padding-bottom: var(--mynah-sizing-1);\\n display: inline-block;\\n transition: var(--mynah-short-transition-rev);\\n &:after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1px;\\n border-radius: var(--mynah-sizing-half);\\n background-color: currentColor;\\n transform: translate3d(-30%, 0, 0);\\n transition: var(--mynah-short-transition-rev);\\n opacity: 0;\\n }\\n &:hover {\\n &:after {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n }\\n > span {\\n &:not(:last-child):after {\\n content: \\\"/\\\";\\n margin-left: var(--mynah-sizing-1);\\n margin-right: var(--mynah-sizing-1);\\n }\\n &:nth-child(3) ~ span:not(:last-child) {\\n display: none;\\n }\\n &:last-child {\\n font-weight: bold;\\n }\\n &:nth-child(3):not(:last-child):after {\\n content: \\\"/ ... /\\\";\\n }\\n }\\n }\\n > .mynah-title-meta-block {\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-1);\\n margin-bottom: var(--mynah-sizing-half);\\n &:empty {\\n display: none;\\n }\\n > .mynah-title-meta-block-item {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-1);\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);\\n border: 1px solid var(--mynah-color-border-default);\\n border-radius: var(--mynah-button-radius);\\n > .mynah-icon {\\n opacity: 0.5;\\n font-size: var(--mynah-font-size-medium);\\n }\\n > .mynah-title-meta-block-item-text {\\n font-size: var(--mynah-font-size-xsmall);\\n &::first-letter {\\n text-transform: capitalize;\\n }\\n }\\n &.approved-answer {\\n border-color: green;\\n position: relative;\\n &:before {\\n content: \\\"\\\";\\n border-radius: var(--mynah-button-radius);\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: green;\\n opacity: 0.04;\\n }\\n > .mynah-icon {\\n opacity: 1;\\n color: green;\\n border-radius: var(--mynah-button-radius);\\n width: var(--mynah-sizing-5);\\n }\\n }\\n }\\n }\\n }\\n\\n &.mynah-card-header-with-source-thumbnail + .mynah-card-context-wrapper > .mynah-card-tags {\\n padding-left: var(--mynah-sizing-14);\\n }\\n }\\n > .mynah-card-center {\\n border: var(--mynah-button-border-width) solid var(--mynah-border-default);\\n width: 100%;\\n color: var(--mynah-color-text-default);\\n flex: 1 1 0%;\\n overflow: hidden;\\n line-height: var(--mynah-font-size-large);\\n pointer-events: all;\\n z-index: 100;\\n\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-3);\\n\\n > *:not(pre) {\\n font-size: var(--mynah-font-size-medium);\\n }\\n\\n > .mynah-card-body {\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n > *:first-child {\\n margin-top: 0;\\n }\\n > *:last-child {\\n margin-bottom: 0;\\n }\\n * {\\n user-select: text;\\n }\\n .amzn-mynah-search-result-highlight {\\n background-color: var(--mynah-color-highlight);\\n color: var(--mynah-color-highlight-text);\\n }\\n }\\n\\n > .mynah-card-votes-wrapper {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--mynah-sizing-2);\\n > .mynah-vote-text {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-xsmall);\\n }\\n > .mynah-card-vote {\\n position: relative;\\n overflow: visible;\\n display: inline-flex;\\n align-items: center;\\n height: var(--mynah-sizing-10);\\n box-sizing: border-box;\\n gap: calc(var(--mynah-sizing-half) * 3);\\n border-radius: var(--mynah-sizing-7);\\n > .mynah-vote-radio {\\n display: none;\\n }\\n > .mynah-vote-label {\\n z-index: 10;\\n cursor: pointer;\\n font-size: var(--mynah-font-size-small);\\n transition: var(--mynah-short-transition);\\n padding: var(--mynah-sizing-base);\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n border-radius: var(--mynah-sizing-8);\\n > * {\\n pointer-events: none;\\n }\\n > i {\\n height: calc(var(--mynah-sizing-6) + var(--mynah-sizing-half));\\n }\\n }\\n > .mynah-vote-indicator {\\n pointer-events: none;\\n content: \\\"\\\";\\n transition: var(--mynah-short-transition);\\n position: absolute;\\n border-radius: var(--mynah-sizing-8);\\n top: var(--mynah-sizing-1);\\n left: 0;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n z-index: 1;\\n transform-origin: left center;\\n transform: translate3d(calc(var(--mynah-sizing-base) * -1), 0, 0);\\n }\\n > .mynah-vote-up-radio:checked {\\n & ~ .mynah-vote-up {\\n color: var(--mynah-color-main-reverse);\\n border-color: transparent;\\n }\\n & ~ .mynah-vote-indicator {\\n transform: translate3d(0, 0, 0);\\n background-color: var(--mynah-color-main);\\n transform: translate3d(0, 0, 0) scale(1);\\n box-shadow: var(--mynah-shadow-generic);\\n }\\n }\\n > .mynah-vote-down-radio:checked {\\n & ~ .mynah-vote-down {\\n color: var(--mynah-color-alternate-reverse);\\n border-color: transparent;\\n }\\n & ~ .mynah-vote-indicator {\\n transform: translate3d(calc(var(--mynah-sizing-8) + var(--mynah-sizing-half)), 0, 0);\\n background-color: var(--mynah-color-alternate);\\n box-shadow: var(--mynah-shadow-generic);\\n }\\n }\\n }\\n }\\n }\\n\\n > .mynah-card-context-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-6);\\n padding-bottom: var(--mynah-sizing-4);\\n margin-bottom: var(--mynah-sizing-2);\\n border-bottom: 1px solid var(--mynah-color-border-default);\\n > .mynah-card-tags {\\n display: inline-flex;\\n flex-wrap: wrap;\\n gap: var(--mynah-sizing-3);\\n }\\n > .mynah-card-badges {\\n display: inline-flex;\\n gap: var(--mynah-sizing-3);\\n &:empty {\\n display: none;\\n }\\n > div {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--mynah-sizing-base);\\n font-size: var(--mynah-font-size-small);\\n color: var(--mynah-color-text-weak);\\n &:not(:last-child) {\\n border-right: 1px solid var(--mynah-color-border-default);\\n padding-right: var(--mynah-sizing-3);\\n }\\n }\\n }\\n }\\n\\n &.mynah-card-skeleton {\\n pointer-events: none !important;\\n * {\\n color: rgba(0, 0, 0, 0) !important;\\n pointer-events: none !important;\\n }\\n i {\\n color: var(--mynah-color-light) !important;\\n }\\n .mynah-vote-text,\\n .mynah-card-title {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n .mynah-card-url {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-text-link);\\n opacity: 0.15 !important;\\n line-height: 0.5rem;\\n }\\n .mynah-card-center {\\n p {\\n z-index: 0;\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n code {\\n background-color: var(--mynah-color-code-text);\\n opacity: 0.25;\\n line-height: 150%;\\n }\\n }\\n .mynah-card-badges span {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n\\n &:last-child {\\n -webkit-mask-image: var(--mynah-mask-image-skeleton);\\n -webkit-mask-size: 100% 100%;\\n mask-image: var(--mynah-mask-image-skeleton);\\n mask-size: 100% 100%;\\n }\\n\\n &:after {\\n content: \\\"\\\";\\n opacity: 1;\\n background-color: var(--mynah-card-bg);\\n transform: translate3d(0, 0, 0);\\n border: none;\\n background-image: linear-gradient(\\n -75deg,\\n rgba(255, 255, 255, 0) 0%,\\n rgba(255, 255, 255, 0) 30%,\\n rgba(0, 0, 0, 0.05) 50%,\\n rgba(255, 255, 255, 0) 70%,\\n rgba(255, 255, 255, 0) 100%\\n );\\n background-size: 500% 500%;\\n animation: glass-reflection 2000ms 1000ms linear infinite;\\n }\\n }\\n}\\n\",\"#mynah-feedback-form-portal {\\n position: absolute;\\n left: 50%;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n overflow: visible;\\n box-sizing: border-box;\\n z-index: 200000;\\n pointer-events: none;\\n transform: translate3d(-50%, 0, 0);\\n max-width: 1024px;\\n color: var(--mynah-color-context-reverse);\\n\\n display: flex;\\n justify-content: center;\\n align-items: flex-end;\\n flex-flow: row nowrap;\\n\\n &.not-revealed {\\n > .mynah-feedback-trigger-button {\\n display: none;\\n }\\n }\\n > .mynah-feedback-trigger-button {\\n transition: var(--mynah-short-transition-bounce);\\n pointer-events: all;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n cursor: pointer;\\n }\\n}\\n\\n.mynah-feedback-form {\\n pointer-events: all;\\n box-sizing: border-box;\\n transition: var(--mynah-short-transition-rev);\\n padding: var(--mynah-sizing-4);\\n transform: translate3d(0, 0, 0);\\n border-radius: var(--mynah-card-radius);\\n display: flex;\\n flex-flow: column;\\n gap: var(--mynah-sizing-2);\\n align-items: flex-start;\\n transform-origin: right bottom;\\n\\n > .mynah-feedback-form-comment {\\n background-color: transparent;\\n padding: var(--mynah-sizing-3);\\n border: 1px solid var(--mynah-color-border-default);\\n resize: none;\\n width: 250px;\\n max-width: 40vw;\\n height: 100px;\\n max-height: 25vh;\\n border-radius: var(--mynah-sizing-2);\\n font-size: var(--mynah-font-size-small);\\n outline: none;\\n color: var(--mynah-color-text-input);\\n &:disabled {\\n opacity: 0.25;\\n }\\n &::placeholder {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-small);\\n }\\n }\\n\\n > .mynah-feedback-form-stars-container {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n > .mynah-feedback-form-star {\\n cursor: pointer;\\n padding-right: var(--mynah-sizing-1);\\n color: var(--mynah-color-button);\\n font-size: 1.5rem;\\n transition: var(--mynah-very-short-transition);\\n > .mynah-icon {\\n transition: var(--mynah-very-short-transition);\\n opacity: 0.4;\\n transform: translate3d(0, 0, 0) scale(0.6);\\n }\\n }\\n &[selected-star]:not(:hover) > :not(.mynah-feedback-form-star.selected ~ .mynah-feedback-form-star),\\n &:hover > :not(.mynah-feedback-form-star:hover ~ .mynah-feedback-form-star) {\\n > .mynah-icon {\\n opacity: 1;\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n }\\n }\\n\\n > .mynah-feedback-form-comment,\\n > .mynah-feedback-form-stars-container {\\n transition: var(--mynah-short-transition-rev);\\n transform-origin: right bottom;\\n }\\n}\\n\",\".mynah-overlay {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n box-sizing: border-box;\\n pointer-events: none;\\n z-index: 1000000;\\n &.mynah-overlay-dim-outside {\\n &:before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--mynah-color-bg);\\n transition: var(--mynah-short-transition-rev-opacity);\\n opacity: 0.45;\\n }\\n }\\n > .mynah-overlay-container {\\n --overlayLeftPos: 0;\\n --overlayTopPos: 0;\\n --overlayInnerHorizontalOrigin: left;\\n --overlayInnerVerticalOrigin: top;\\n position: absolute;\\n display: block;\\n overflow: visible;\\n border-radius: var(--mynah-card-radius);\\n\\n &:before {\\n content: '';\\n background-color: transparent;\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: calc(var(--mynah-button-border-width) * -1);\\n left: calc(var(--mynah-button-border-width) * -1);\\n right: calc(var(--mynah-button-border-width) * -1);\\n bottom: calc(var(--mynah-button-border-width) * -1);\\n width: auto;\\n height: auto;\\n pointer-events: none;\\n box-sizing: border-box;\\n opacity: 0;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n box-shadow: var(--mynah-shadow-prioritization-menu);\\n }\\n\\n &:after {\\n content: '';\\n position: absolute;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n left: 0;\\n top: 0;\\n opacity: 0;\\n border: var(--mynah-sizing-4);\\n background-color: var(--mynah-card-bg);\\n border-radius: inherit;\\n transition: var(--mynah-short-transition-rev);\\n transition-delay: 20ms;\\n }\\n\\n &.horizontal-direction {\\n &-to-left,\\n &-from-end-to-left {\\n --overlayLeftPos: -100%;\\n --overlayInnerHorizontalOrigin: right;\\n &:after {\\n left: calc(100% - var(--mynah-sizing-4));\\n }\\n }\\n &-at-center {\\n --overlayInnerHorizontalOrigin: center;\\n --overlayLeftPos: -50%;\\n &:after {\\n left: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n }\\n &.vertical-direction {\\n &-to-top,\\n &-from-end-to-top {\\n --overlayTopPos: -100%;\\n --overlayInnerVerticalOrigin: bottom;\\n &:after {\\n top: calc(100% - var(--mynah-sizing-4));\\n }\\n }\\n &-at-center {\\n --overlayInnerVerticalOrigin: center;\\n --overlayTopPos: -50%;\\n &:after {\\n top: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n }\\n\\n > .mynah-overlay-inner-container {\\n display: inline-block;\\n overflow: hidden;\\n z-index: 10;\\n position: relative;\\n transform: translate3d(0, 0, 0) scale(0.85);\\n transform-origin: var(--overlayInnerHorizontalOrigin) var(--overlayInnerVerticalOrigin);\\n transition: var(--mynah-short-transition-rev);\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(0.85);\\n transition: var(--mynah-short-transition-rev);\\n }\\n > .mynah-overlay-inner-container,\\n &:before {\\n opacity: 0;\\n transition-delay: 0ms;\\n }\\n\\n transform: translate3d(var(--overlayLeftPos), var(--overlayTopPos), 0);\\n }\\n &:not(.mynah-overlay-open) {\\n &,\\n & * {\\n pointer-events: none !important;\\n }\\n }\\n\\n &.mynah-overlay-open {\\n > .mynah-overlay-container {\\n > .mynah-overlay-inner-container {\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(1);\\n transition-delay: 50ms;\\n opacity: 1;\\n }\\n > .mynah-overlay-inner-container {\\n transition-delay: 20ms;\\n }\\n > .mynah-overlay-inner-container {\\n opacity: 1;\\n }\\n &:after {\\n transition-delay: 0ms;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n opacity: 1;\\n }\\n }\\n &.mynah-overlay-close-on-outside-click {\\n pointer-events: all;\\n }\\n }\\n}\\n\",\".mynah-notification {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: flex-start;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-3);\\n padding: var(--mynah-sizing-5);\\n overflow: hidden;\\n position: relative;\\n &.mynah-notification-clickable {\\n pointer-events: all;\\n cursor: pointer;\\n }\\n > .mynah-icon {\\n font-size: var(--mynah-sizing-6);\\n &- {\\n &ok-circled {\\n color: var(--mynah-color-status-success);\\n }\\n &info {\\n color: var(--mynah-color-status-info);\\n }\\n &warning {\\n color: var(--mynah-color-status-warning);\\n }\\n &error {\\n color: var(--mynah-color-status-error);\\n }\\n }\\n }\\n > .mynah-notification-container {\\n flex: 1;\\n max-width: 50vw;\\n min-width: 200px;\\n display: inline-flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-3);\\n overflow: hidden;\\n position: relative;\\n > .mynah-notification-title {\\n margin: 0;\\n &:empty {\\n display: none;\\n }\\n }\\n > .mynah-notification-content {\\n font-size: var(--mynah-font-size-small);\\n display: flex;\\n flex-flow: column nowrap;\\n justify-content: flex-start;\\n align-items: flex-start;\\n gap: var(--mynah-sizing-2);\\n > .mynah-button {\\n align-self: stretch;\\n background-color: var(--mynah-color-alternate);\\n color: var(--mynah-color-alternate-reverse);\\n }\\n }\\n }\\n}\\n\",\".mynah-autocomplete-items-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n max-height: 50vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n --mynah-autocomplete-side-spacings: calc(\\n var(--mynah-sizing-12) + var(--mynah-sizing-10) + var(--mynah-sizing-12) + var(--mynah-sizing-12)\\n );\\n width: calc(100vw - var(--mynah-autocomplete-side-spacings));\\n max-width: calc(1024px - var(--mynah-autocomplete-side-spacings));\\n box-sizing: border-box;\\n @include list-fader();\\n padding-top: var(--mynah-sizing-3);\\n padding-bottom: var(--mynah-sizing-3);\\n\\n &.make-items-as-ghost {\\n &,\\n & * {\\n pointer-events: none !important;\\n }\\n }\\n\\n > .mynah-autocomplete-button {\\n pointer-events: all;\\n flex-shrink: 0;\\n height: auto;\\n min-height: var(--mynah-sizing-7);\\n padding: var(--mynah-sizing-3);\\n background-color: transparent;\\n border-radius: 0%;\\n color: var(--mynah-color-text-default);\\n\\n &,\\n &:active {\\n box-shadow: none;\\n }\\n\\n &:active:after {\\n opacity: 0.1;\\n }\\n\\n &:hover {\\n background-color: var(--mynah-color-bg);\\n }\\n\\n > span {\\n text-align: left;\\n max-width: initial;\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n\\n > .mynah-autocomplete-button-label {\\n width: 100%;\\n display: flex;\\n flex-flow: row nowrap;\\n gap: var(--mynah-sizing-3);\\n justify-content: flex-start;\\n align-items: center;\\n overflow: hidden;\\n\\n > .mynah-autocomplete-title-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: center;\\n flex: 1;\\n overflow: hidden;\\n color: var(--mynah-color-text-weak);\\n gap: var(--mynah-sizing-1);\\n\\n > h3 {\\n width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n margin: 0;\\n color: var(--mynah-color-text-default);\\n }\\n\\n > .autocomplete {\\n font-weight: normal;\\n }\\n }\\n }\\n }\\n }\\n\\n &:not(:hover) > .mynah-autocomplete-button.hover {\\n background-color: var(--mynah-color-bg);\\n }\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n\",\".mynah-syntax-highlighter {\\n display: block;\\n box-sizing: border-box;\\n overflow: hidden;\\n margin: 0;\\n margin-bottom: var(--mynah-sizing-3);\\n border: 1px solid var(--mynah-color-border-default);\\n position: relative;\\n &:before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--vscode-terminal-dropBackground);\\n opacity: 0.12;\\n pointer-events: none;\\n user-select: none;\\n }\\n > .mynah-syntax-highlighter-copy-buttons {\\n justify-content: flex-end;\\n display: flex;\\n padding: var(--mynah-sizing-1);\\n z-index: 10;\\n .mynah-button {\\n font-size: var(--mynah-sizing-5);\\n color: var(--mynah-color-button);\\n }\\n }\\n &:hover > .mynah-syntax-highlighter-copy-buttons {\\n opacity: 1;\\n }\\n > pre {\\n padding: var(--mynah-sizing-3);\\n margin: 0;\\n overflow-x: auto;\\n overflow-y: hidden;\\n position: relative;\\n\\n *,\\n & {\\n font-size: var(--vscode-editor-font-size) !important;\\n font-family: var(--vscode-editor-font-family) !important;\\n }\\n > code {\\n color: var(--vscode-terminal-ansiBlue);\\n filter: brightness(0.95);\\n white-space: pre;\\n }\\n\\n > code,\\n & {\\n text-align: left;\\n white-space: pre;\\n word-spacing: normal;\\n word-break: normal;\\n word-wrap: normal;\\n tab-size: 4;\\n hyphens: none;\\n }\\n > code::selection,\\n &::selection {\\n text-shadow: none;\\n background: #b3d4fc;\\n }\\n\\n .token.comment,\\n .token.prolog,\\n .token.doctype,\\n .token.cdata {\\n color: var(--vscode-debugConsole-sourceForeground);\\n }\\n\\n .token.punctuation {\\n color: currentColor;\\n }\\n\\n .token.namespace {\\n opacity: 0.7;\\n }\\n\\n .token.property,\\n .token.tag,\\n .token.boolean,\\n .token.number,\\n .token.constant,\\n .token.symbol,\\n .token.deleted {\\n color: var(--vscode-terminal-ansiCyan);\\n }\\n\\n .token.selector,\\n .token.attr-name,\\n .token.string,\\n .token.char,\\n .token.builtin,\\n .token.inserted {\\n color: var(--vscode-debugTokenExpression-string);\\n }\\n\\n .token.operator,\\n .token.entity,\\n .token.url,\\n .language-css .token.string,\\n .style .token.string {\\n color: var(--vscode-debugTokenExpression-name);\\n }\\n\\n .token.atrule,\\n .token.attr-value,\\n .token.keyword {\\n color: var(--vscode-debugIcon-stepBackForeground);\\n }\\n\\n .token.class-name {\\n color: var(--vscode-debugIcon-stepBackForeground);\\n }\\n .token.function {\\n color: var(--vscode-gitDecoration-modifiedResourceForeground);\\n }\\n\\n .token.regex,\\n .token.important,\\n .token.variable {\\n color: var(--vscode-debugTokenExpression-name);\\n }\\n\\n .token.important,\\n .token.bold {\\n font-weight: bold;\\n }\\n .token.italic {\\n font-style: italic;\\n }\\n\\n .token.entity {\\n cursor: help;\\n }\\n\\n &.line-numbers {\\n position: relative;\\n padding-left: 3.8em;\\n counter-reset: linenumber;\\n position: relative;\\n }\\n\\n > .line-numbers-rows {\\n position: absolute;\\n > span,\\n & {\\n pointer-events: none;\\n user-select: none;\\n }\\n top: var(--mynah-sizing-3);\\n font-size: 100%;\\n left: 0;\\n width: var(--mynah-sizing-12);\\n overflow: hidden;\\n text-overflow: clip;\\n letter-spacing: -1px;\\n border-right: 1px solid var(--mynah-color-border-default);\\n\\n > span {\\n display: block;\\n color: var(--mynah-color-border-default);\\n padding-right: 0.8em;\\n text-align: right;\\n }\\n }\\n }\\n}\\n\",\"@import 'mixins';\\n@import 'variables';\\n@import 'animations';\\n@import 'dark';\\n\\n// Components\\n@import './components/main-container';\\n@import './components/search-block';\\n@import './components/search-history';\\n@import './components/context-pill';\\n@import './components/prioritization-menu';\\n@import './components/button';\\n@import './components/toggle';\\n@import './components/nav-tabs';\\n@import './components/card';\\n@import './components/feedback-form';\\n@import './components/overlay';\\n@import './components/notification';\\n@import './components/autocomplete';\\n@import './components/syntax-highlighter';\\n\\nbody,\\nhtml {\\n background-color: var(--mynah-color-bg);\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n margin: 0;\\n padding: 0;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-weight: 600;\\n color: var(--mynah-color-text-strong);\\n}\\n\\n::-webkit-scrollbar {\\n width: 3px;\\n height: 3px;\\n opacity: 0.5;\\n}\\n\\n*:focus {\\n outline: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isCookieAvailable = (typeof document) != \"undefined\";\nvar I18nResolver = /** @class */ (function () {\n function I18nResolver(translations, preferredLanguage) {\n this.translations = translations;\n this.cookieName = \"i18n-language\";\n this.currentLanguage = null;\n // get the current language from cookie, browser locale\n var language = preferredLanguage || this.getCookie(this.cookieName) || this.getBrowserLanguage();\n this.language = this.findBestMatch(language) || \"default\";\n }\n Object.defineProperty(I18nResolver.prototype, \"translation\", {\n get: function () {\n return this.translations[this.currentLanguage];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(I18nResolver.prototype, \"language\", {\n get: function () {\n return this.currentLanguage;\n },\n set: function (lang) {\n this.currentLanguage = lang;\n this.setCookie(this.cookieName, lang);\n },\n enumerable: true,\n configurable: true\n });\n I18nResolver.prototype.setCookie = function (name, value, expires, path) {\n if (!isCookieAvailable) {\n return;\n }\n var expiration = expires ? \"; expires=\" + expires.toUTCString() : \"\";\n var cookieStr = name + \"=\" + value + expiration;\n if (path) {\n cookieStr += \";path=\" + path;\n }\n document.cookie = cookieStr;\n };\n I18nResolver.prototype.getCookie = function (name) {\n if (!isCookieAvailable) {\n return null;\n }\n var cookie = document.cookie\n .split(\";\")\n .map(function (cookieStr) { return cookieStr.trim(); })\n .filter(function (cookieStr) { return cookieStr.match(name + \"=.*\"); });\n return cookie.length > 0 ? cookie[0].replace(name + \"=\", \"\") : null;\n };\n I18nResolver.prototype.getBrowserLanguage = function () {\n return navigator.language || navigator.userLanguage; // fallback for IE\n };\n I18nResolver.prototype.findBestMatch = function (language) {\n if (this.translations[language]) {\n return language;\n }\n // in case of language variants, e.g. en-US, check for basic variant (en) as well\n var langPrefix = language.split(\"-\")[0];\n if (this.translations[langPrefix]) {\n return langPrefix;\n }\n return null;\n };\n return I18nResolver;\n}());\nexports.I18nResolver = I18nResolver;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar I18nResolver_1 = require(\"./core/I18nResolver\");\nexports.I18nResolver = I18nResolver_1.I18nResolver;\n","(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n\t// full package (optional) + parent classes (optional)\n\tvar classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\n\t// based on the java naming conventions\n\tvar className = {\n\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\./\n\t\t}\n\t};\n\n\tPrism.languages.java = Prism.languages.extend('clike', {\n\t\t'string': {\n\t\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': [\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t// variables, parameters, and constructor references\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// class names based on keyword\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/.source + classNamePrefix + /[A-Z]\\w*\\b/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t'function': [\n\t\t\tPrism.languages.clike.function,\n\t\t\t{\n\t\t\t\tpattern: /(::\\s*)[a-z_]\\w*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t\t'operator': {\n\t\t\tpattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'constant': /\\b[A-Z][A-Z_\\d]+\\b/\n\t});\n\n\tPrism.languages.insertBefore('java', 'string', {\n\t\t'triple-quoted-string': {\n\t\t\t// http://openjdk.java.net/jeps/355#Description\n\t\t\tpattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'char': {\n\t\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'class-name', {\n\t\t'annotation': {\n\t\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'generics': {\n\t\t\tpattern: /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n\t\t\tinside: {\n\t\t\t\t'class-name': className,\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'punctuation': /[<>(),.:]/,\n\t\t\t\t'operator': /[?&|]/\n\t\t\t}\n\t\t},\n\t\t'import': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+)/.source + classNamePrefix + /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+static\\s+)/.source + classNamePrefix + /(?:\\w+|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'static',\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'static': /\\b\\w+$/,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'namespace': {\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/\n\t\t\t\t\t.source.replace(/<keyword>/g, function () { return keywords.source; })),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./,\n\t\t\t}\n\t\t}\n\t});\n}(Prism));\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","// https://www.json.org/json-en.html\nPrism.languages.json = {\n\t'property': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'comment': {\n\t\tpattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'punctuation': /[{}[\\],]/,\n\t'operator': /:/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n\nPrism.languages.webmanifest = Prism.languages.json;\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: /![sra](?=[:}]$)/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:False|None|True)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","(function (Prism) {\n\n\tPrism.languages.typescript = Prism.languages.extend('javascript', {\n\t\t'class-name': {\n\t\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: null // see below\n\t\t},\n\t\t'builtin': /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/,\n\t});\n\n\t// The keywords TypeScript adds to JavaScript\n\tPrism.languages.typescript.keyword.push(\n\t\t/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n\t\t// keywords that have to be followed by an identifier\n\t\t/\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n\t\t// This is for `import type *, {}`\n\t\t/\\btype\\b(?=\\s*(?:[\\{*]|$))/\n\t);\n\n\t// doesn't work with TS because TS is too complex\n\tdelete Prism.languages.typescript['parameter'];\n\tdelete Prism.languages.typescript['literal-property'];\n\n\t// a version of typescript specifically for highlighting types\n\tvar typeInside = Prism.languages.extend('typescript', {});\n\tdelete typeInside['class-name'];\n\n\tPrism.languages.typescript['class-name'].inside = typeInside;\n\n\tPrism.languages.insertBefore('typescript', 'function', {\n\t\t'decorator': {\n\t\t\tpattern: /@[$\\w\\xA0-\\uFFFF]+/,\n\t\t\tinside: {\n\t\t\t\t'at': {\n\t\t\t\t\tpattern: /^@/,\n\t\t\t\t\talias: 'operator'\n\t\t\t\t},\n\t\t\t\t'function': /^[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t'generic-function': {\n\t\t\t// e.g. foo<T extends \"bar\" | \"baz\">( ...\n\t\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: /<[\\s\\S]+/, // everything after the first <\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.ts = Prism.languages.typescript;\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t/**\n\t * Plugin name which is used as a class name for <pre> which is activating the plugin\n\t *\n\t * @type {string}\n\t */\n\tvar PLUGIN_NAME = 'line-numbers';\n\n\t/**\n\t * Regular expression used for determining line breaks\n\t *\n\t * @type {RegExp}\n\t */\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\n\t/**\n\t * Global exports\n\t */\n\tvar config = Prism.plugins.lineNumbers = {\n\t\t/**\n\t\t * Get node for provided line number\n\t\t *\n\t\t * @param {Element} element pre element\n\t\t * @param {number} number line number\n\t\t * @returns {Element|undefined}\n\t\t */\n\t\tgetLine: function (element, number) {\n\t\t\tif (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lineNumberRows = element.querySelector('.line-numbers-rows');\n\t\t\tif (!lineNumberRows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;\n\t\t\tvar lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);\n\n\t\t\tif (number < lineNumberStart) {\n\t\t\t\tnumber = lineNumberStart;\n\t\t\t}\n\t\t\tif (number > lineNumberEnd) {\n\t\t\t\tnumber = lineNumberEnd;\n\t\t\t}\n\n\t\t\tvar lineIndex = number - lineNumberStart;\n\n\t\t\treturn lineNumberRows.children[lineIndex];\n\t\t},\n\n\t\t/**\n\t\t * Resizes the line numbers of the given element.\n\t\t *\n\t\t * This function will not add line numbers. It will only resize existing ones.\n\t\t *\n\t\t * @param {HTMLElement} element A `<pre>` element with line numbers.\n\t\t * @returns {void}\n\t\t */\n\t\tresize: function (element) {\n\t\t\tresizeElements([element]);\n\t\t},\n\n\t\t/**\n\t\t * Whether the plugin can assume that the units font sizes and margins are not depended on the size of\n\t\t * the current viewport.\n\t\t *\n\t\t * Setting this to `true` will allow the plugin to do certain optimizations for better performance.\n\t\t *\n\t\t * Set this to `false` if you use any of the following CSS units: `vh`, `vw`, `vmin`, `vmax`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tassumeViewportIndependence: true\n\t};\n\n\t/**\n\t * Resizes the given elements.\n\t *\n\t * @param {HTMLElement[]} elements\n\t */\n\tfunction resizeElements(elements) {\n\t\telements = elements.filter(function (e) {\n\t\t\tvar codeStyles = getStyles(e);\n\t\t\tvar whiteSpace = codeStyles['white-space'];\n\t\t\treturn whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line';\n\t\t});\n\n\t\tif (elements.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar infos = elements.map(function (element) {\n\t\t\tvar codeElement = element.querySelector('code');\n\t\t\tvar lineNumbersWrapper = element.querySelector('.line-numbers-rows');\n\t\t\tif (!codeElement || !lineNumbersWrapper) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t/** @type {HTMLElement} */\n\t\t\tvar lineNumberSizer = element.querySelector('.line-numbers-sizer');\n\t\t\tvar codeLines = codeElement.textContent.split(NEW_LINE_EXP);\n\n\t\t\tif (!lineNumberSizer) {\n\t\t\t\tlineNumberSizer = document.createElement('span');\n\t\t\t\tlineNumberSizer.className = 'line-numbers-sizer';\n\n\t\t\t\tcodeElement.appendChild(lineNumberSizer);\n\t\t\t}\n\n\t\t\tlineNumberSizer.innerHTML = '0';\n\t\t\tlineNumberSizer.style.display = 'block';\n\n\t\t\tvar oneLinerHeight = lineNumberSizer.getBoundingClientRect().height;\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\treturn {\n\t\t\t\telement: element,\n\t\t\t\tlines: codeLines,\n\t\t\t\tlineHeights: [],\n\t\t\t\toneLinerHeight: oneLinerHeight,\n\t\t\t\tsizer: lineNumberSizer,\n\t\t\t};\n\t\t}).filter(Boolean);\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lines = info.lines;\n\t\t\tvar lineHeights = info.lineHeights;\n\t\t\tvar oneLinerHeight = info.oneLinerHeight;\n\n\t\t\tlineHeights[lines.length - 1] = undefined;\n\t\t\tlines.forEach(function (line, index) {\n\t\t\t\tif (line && line.length > 1) {\n\t\t\t\t\tvar e = lineNumberSizer.appendChild(document.createElement('span'));\n\t\t\t\t\te.style.display = 'block';\n\t\t\t\t\te.textContent = line;\n\t\t\t\t} else {\n\t\t\t\t\tlineHeights[index] = oneLinerHeight;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lineHeights = info.lineHeights;\n\n\t\t\tvar childIndex = 0;\n\t\t\tfor (var i = 0; i < lineHeights.length; i++) {\n\t\t\t\tif (lineHeights[i] === undefined) {\n\t\t\t\t\tlineHeights[i] = lineNumberSizer.children[childIndex++].getBoundingClientRect().height;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar wrapper = info.element.querySelector('.line-numbers-rows');\n\n\t\t\tlineNumberSizer.style.display = 'none';\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\tinfo.lineHeights.forEach(function (height, lineNumber) {\n\t\t\t\twrapper.children[lineNumber].style.height = height + 'px';\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns style declarations for the element\n\t *\n\t * @param {Element} element\n\t */\n\tfunction getStyles(element) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);\n\t}\n\n\tvar lastWidth = undefined;\n\twindow.addEventListener('resize', function () {\n\t\tif (config.assumeViewportIndependence && lastWidth === window.innerWidth) {\n\t\t\treturn;\n\t\t}\n\t\tlastWidth = window.innerWidth;\n\n\t\tresizeElements(Array.prototype.slice.call(document.querySelectorAll('pre.' + PLUGIN_NAME)));\n\t});\n\n\tPrism.hooks.add('complete', function (env) {\n\t\tif (!env.code) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar code = /** @type {Element} */ (env.element);\n\t\tvar pre = /** @type {HTMLElement} */ (code.parentNode);\n\n\t\t// works only for <code> wrapped inside <pre> (not inline)\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if line numbers already exists\n\t\tif (code.querySelector('.line-numbers-rows')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// only add line numbers if <code> or one of its ancestors has the `line-numbers` class\n\t\tif (!Prism.util.isActive(code, PLUGIN_NAME)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove the class 'line-numbers' from the <code>\n\t\tcode.classList.remove(PLUGIN_NAME);\n\t\t// Add the class 'line-numbers' to the <pre>\n\t\tpre.classList.add(PLUGIN_NAME);\n\n\t\tvar match = env.code.match(NEW_LINE_EXP);\n\t\tvar linesNum = match ? match.length + 1 : 1;\n\t\tvar lineNumbersWrapper;\n\n\t\tvar lines = new Array(linesNum + 1).join('<span></span>');\n\n\t\tlineNumbersWrapper = document.createElement('span');\n\t\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\n\t\tlineNumbersWrapper.className = 'line-numbers-rows';\n\t\tlineNumbersWrapper.innerHTML = lines;\n\n\t\tif (pre.hasAttribute('data-start')) {\n\t\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\n\t\t}\n\n\t\tenv.element.appendChild(lineNumbersWrapper);\n\n\t\tresizeElements([pre]);\n\n\t\tPrism.hooks.run('line-numbers', env);\n\t});\n\n\tPrism.hooks.add('line-numbers', function (env) {\n\t\tenv.plugins = env.plugins || {};\n\t\tenv.plugins.lineNumbers = true;\n\t});\n\n}());\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&amp;/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nexport interface ButtonProps {\n classNames?: string[];\n attributes?: Record<string, string>;\n icon?: HTMLElement | ExtendedHTMLElement | string;\n label?: HTMLElement | ExtendedHTMLElement | string;\n children?: Array<HTMLElement | ExtendedHTMLElement | string>;\n primary?: boolean;\n additionalEvents?: Record<string, (event?: any) => any>;\n onClick: (e: Event) => void;\n}\nexport class Button {\n render: ExtendedHTMLElement;\n constructor (props: ButtonProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'button',\n classNames: [\n 'mynah-button',\n ...(props.primary === false ? [ 'mynah-button-secondary' ] : []),\n ...(props.classNames !== undefined ? props.classNames : []),\n ],\n attributes: { ...props.attributes },\n events: {\n ...props.additionalEvents,\n click: props.onClick,\n },\n children: [\n ...(props.icon !== undefined ? [ props.icon ] : []),\n ...(props.label !== undefined ? [ { type: 'span', children: [ props.label ] } ] : []),\n ...(props.children ?? []),\n ],\n });\n }\n\n setEnabled = (enabled: boolean): void => {\n if (enabled) {\n this.render.removeAttribute('disabled');\n } else {\n this.render.setAttribute('disabled', 'disabled');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextChangeType, ContextSource, ContextType, ContextTypeClassNames, ContextTypes, MynahEventNames, SearchPayloadMatchPolicy } from '../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { Button } from './button';\nimport { Icon, MynahIcons } from './icon';\nimport { PrioritizationMenuButtons } from './prioritization-menu';\nimport { cancelEvent, MynahUIGlobalEvents } from '../helper/events';\nimport { MynahUIDataStore } from '../helper/store';\n\nexport interface ContextPillProps {\n context: ContextType;\n showRemoveButton?: boolean;\n}\nexport class ContextPill {\n private readonly props: ContextPillProps;\n render: ExtendedHTMLElement;\n constructor (props: ContextPillProps) {\n this.props = props;\n this.render = DomBuilder.getInstance().build({\n type: 'span',\n attributes: { context: props.context.context },\n classNames: [ 'mynah-context-pill', ContextTypeClassNames[props.context.type ?? ContextTypes.SHOULD],\n ...(MynahUIDataStore.getInstance().getValue('invisibleContextItems').includes(props.context.context) === true ? [ 'mynah-context-hidden' ] : []) ],\n children: [\n ...(props.showRemoveButton !== false\n ? [\n new Icon({\n icon: this.props.context.type === ContextTypes.MUST_NOT ? MynahIcons.BLOCK : MynahIcons.OK_CIRCLED,\n classNames: [ 'mynah-context-pill-group-icon' ]\n }).render\n ]\n : []),\n {\n type: 'span',\n classNames: [ 'mynah-context-checkbox-label' ],\n events: !(props.showRemoveButton ?? false)\n ? {\n click: (event: Event) => {\n cancelEvent(event);\n const currentMatchPolicy: SearchPayloadMatchPolicy = MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy;\n const alreadyAvailable = Object.keys((currentMatchPolicy)).reduce((res: boolean, policyGroup: string) => {\n if (currentMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy].includes(this.props.context.context)) {\n return true;\n }\n return res;\n }, false);\n if (!alreadyAvailable) {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.props.context.context,\n type: ContextTypes.SHOULD,\n source: ContextSource.SUGGESTION,\n }\n });\n }\n },\n }\n : {},\n children: [\n { type: 'span', innerHTML: props.context.context },\n ...(props.showRemoveButton ?? false\n ? [\n {\n type: 'div',\n classNames: [ 'filter-remove-button' ],\n events: {\n click: (event: Event) => {\n cancelEvent(event);\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.REMOVE,\n context: this.props.context\n });\n MynahUIDataStore.getInstance().updateStore({\n userAddedContext: [\n ...MynahUIDataStore.getInstance().getValue('userAddedContext').filter((contextKey: string) => contextKey !== this.props.context.context)\n ]\n });\n },\n },\n children: [ new Icon({ icon: MynahIcons.CANCEL }).render ],\n },\n ]\n : []),\n ],\n },\n new Button({\n onClick: this.handleMenuOpen.bind(this),\n icon: new Icon({ icon: MynahIcons.MENU }).render,\n }).render.addClass('mynah-prioritise-button'),\n ],\n });\n }\n\n private readonly handleMenuOpen = (e: Event): void => {\n const elm: HTMLElement = e.currentTarget as HTMLElement;\n this.render.addClass('keep-active');\n const buttons = new PrioritizationMenuButtons({\n referenceElement: elm,\n context: this.props.context,\n onMenuClose: () => {\n this.render.removeClass('keep-active');\n },\n });\n buttons.createOverlay();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\n\nexport interface FeedbackFormCommentProps {\n onChange?: (comment: string) => void;\n initComment?: string;\n}\nexport class FeedbackFormComment {\n render: ExtendedHTMLElement;\n\n constructor (props: FeedbackFormCommentProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'textarea',\n events: {\n keyup: (e: InputEvent) => {\n if (props.onChange !== undefined) {\n props.onChange(this.render.value);\n }\n },\n },\n classNames: [ 'mynah-feedback-form-comment' ],\n attributes: {\n ...(props.initComment !== undefined && props.initComment.length > 0 ? {} : { disabled: 'disabled' }),\n value: props.initComment ?? '',\n placeholder: 'How was your search?',\n },\n });\n }\n\n setEnabled = (enabled: boolean): void => {\n if (enabled) {\n this.render.removeAttribute('disabled');\n this.render.focus();\n } else {\n this.render.setAttribute('disabled', 'disabled');\n }\n };\n\n setComment = (comment: string): void => {\n this.render.value = comment;\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { FeedbackStars } from '../../static';\n\nexport interface FeedbackFormStarsProps {\n onChange?: (star: FeedbackStars) => void;\n initStar?: FeedbackStars;\n}\nexport class FeedbackFormStars {\n render: ExtendedHTMLElement;\n\n constructor (props: FeedbackFormStarsProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form-stars-container' ],\n attributes: { ...(props.initStar !== undefined && { 'selected-star': props.initStar.toString() }) },\n children: Array(5)\n .fill(undefined)\n .map((n, index) =>\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form-star' ],\n events: {\n click: (e: MouseEvent) => {\n ;(this.render.querySelector('.selected') as ExtendedHTMLElement)?.removeClass(\n 'selected'\n )\n ;(e.currentTarget as ExtendedHTMLElement).addClass('selected');\n if (props.onChange !== undefined) {\n props.onChange((index + 1) as FeedbackStars);\n }\n this.setStar((index + 1) as FeedbackStars);\n },\n },\n attributes: { star: (index + 1).toString() },\n children: [ new Icon({ icon: MynahIcons.STAR }).render ],\n })\n ),\n });\n }\n\n setStar = (star: FeedbackStars): void => {\n this.render.setAttribute('selected-star', star.toString());\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FeedbackPayload, FeedbackStars, MynahEventNames } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { FeedbackFormComment } from './feedback-form-comment';\nimport { FeedbackFormStars } from './feedback-form-stars';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface FeedbackFormProps {\n initPayload?: FeedbackPayload;\n}\nexport class FeedbackForm {\n private formOverlay!: Overlay;\n private readonly feedbackStars: FeedbackFormStars;\n private readonly feedbackComment: FeedbackFormComment;\n private feedbackPayload: FeedbackPayload = {};\n private readonly triggerButton: ExtendedHTMLElement;\n private readonly feedbackSubmitButton: Button;\n public readonly feedbackFormContainer: ExtendedHTMLElement;\n public readonly feedbackContainer: ExtendedHTMLElement;\n\n constructor (props?: FeedbackFormProps) {\n if (props?.initPayload !== undefined) {\n this.feedbackPayload = {\n ...(props.initPayload.stars !== undefined && { stars: props.initPayload.stars }),\n ...(props.initPayload.comment !== undefined && { comment: props.initPayload.comment }),\n };\n }\n\n this.triggerButton = new Button({\n onClick: () => {\n this.formOverlay = new Overlay({\n children: [ this.feedbackFormContainer ],\n closeOnOutsideClick: true,\n dimOutside: false,\n horizontalDirection: OverlayHorizontalDirection.END_TO_LEFT,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n referenceElement: this.triggerButton,\n });\n },\n primary: false,\n label: 'Leave us feedback',\n classNames: [ 'mynah-header-button' ],\n }).render;\n\n this.feedbackStars = new FeedbackFormStars({\n onChange: (star: FeedbackStars) => {\n this.feedbackPayload.stars = star;\n this.onFeedbackSet({ stars: star });\n this.feedbackComment.setEnabled(true);\n this.feedbackSubmitButton.setEnabled(true);\n },\n initStar: this.feedbackPayload?.stars,\n });\n\n this.feedbackComment = new FeedbackFormComment({\n onChange: (comment: string) => {\n this.feedbackPayload.comment = comment;\n },\n initComment: this.feedbackPayload?.comment,\n });\n\n this.feedbackSubmitButton = new Button({\n label: 'Submit',\n onClick: () => {\n if (this.feedbackPayload.comment !== undefined && this.feedbackPayload.comment.trim() !== '') {\n this.onFeedbackSet({ comment: this.feedbackPayload.comment });\n }\n this.feedbackComment.setComment('');\n this.formOverlay.close();\n },\n });\n this.feedbackSubmitButton.setEnabled(false);\n\n this.feedbackFormContainer = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form' ],\n events: { click: cancelEvent },\n children: [ this.feedbackStars.render, this.feedbackComment.render, this.feedbackSubmitButton.render ],\n });\n\n this.feedbackContainer = DomBuilder.getInstance().build({\n type: 'div',\n attributes: { id: 'mynah-feedback-form-container' },\n children: [ this.triggerButton ],\n });\n }\n\n private readonly onFeedbackSet = (feedbackData: FeedbackPayload): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.FEEDBACK_SET, feedbackData);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\n\nexport enum MynahIcons {\n MENU = 'menu',\n MINUS = 'minus',\n SEARCH = 'search',\n PLUS = 'plus',\n CHAT = 'chat',\n LINK = 'link',\n EXTERNAL = 'external',\n CANCEL = 'cancel',\n CALENDAR = 'calendar',\n MEGAPHONE = 'megaphone',\n EYE = 'eye',\n OK = 'ok',\n UP_CIRCLED = 'up-circled',\n UP_OPEN = 'up-open',\n DOWN_OPEN = 'down-open',\n RIGHT_OPEN = 'right-open',\n LEFT_OPEN = 'left-open',\n RESIZE_FULL = 'resize-full',\n RESIZE_SMALL = 'resize-small',\n BLOCK = 'block',\n OK_CIRCLED = 'ok-circled',\n INFO = 'info',\n WARNING = 'warning',\n ERROR = 'error',\n THUMBS_UP = 'thumbs-up',\n THUMBS_DOWN = 'thumbs-down',\n STAR = 'star',\n LIGHT_BULB = 'light-bulb',\n ENVELOPE_SEND = 'envelope-send',\n SEARCH_HISTORY = 'search-history',\n USER = 'user',\n PLAY = 'play',\n PAUSE = 'pause',\n CODE_BLOCK = 'code-block',\n COPY = 'copy',\n TEXT_SELECT = 'text-select',\n}\n\nexport interface IconProps {\n icon: MynahIcons;\n classNames?: string[];\n}\nexport class Icon {\n render: ExtendedHTMLElement;\n constructor (props: IconProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'i',\n classNames: [\n 'mynah-icon',\n `mynah-icon-${props.icon}`,\n ...(props.classNames !== undefined ? props.classNames : []),\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { MynahUIDataStore } from '../helper/store';\nimport { SearchPayloadCodeSelection, Suggestion } from '../static';\nimport { SuggestionCard } from './suggestion-card/suggestion-card';\n\nexport interface MainContainerProps {\n onScroll?: (e: Event) => void;\n}\nexport class MainContainer {\n private readonly cardsWrapper: ExtendedHTMLElement;\n private readonly skeletonWrapper: ExtendedHTMLElement;\n public render: ExtendedHTMLElement;\n constructor (props: MainContainerProps) {\n this.cardsWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-cards-wrapper' ],\n events: { ...(props.onScroll !== undefined && { scroll: props.onScroll }) },\n persistent: true,\n });\n this.skeletonWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-skeleton-wrapper' ],\n persistent: true,\n children: [\n new SuggestionCard({\n suggestion: {\n title: 'Lorem ipsum dolor sit',\n url: '#mynahisawesome.com/mynah',\n body: `<p>Lorem ipsum dolor sit amet</p>\n <p>Nunc sit amet nulla sit amet est rhoncus ornare. In sodales tristique finibus.</p>\n <pre><code>lorem sit amet</code></pre>`,\n id: 'skeleton-1',\n context: [ 'skl-con-1', 'skl-con-2' ],\n },\n }).render.addClass('mynah-card-skeleton'),\n new SuggestionCard({\n suggestion: {\n title: 'Lorem ipsum dolor sit',\n url: '#mynahismorenadmoreawesome.com/mynah',\n body: `<p>Lorem ipsum dolor sit amet</p>\n <pre><code>sit amet\n loremasdasdsadasdasdasd\n asd</code></pre>`,\n id: 'skeleton-2',\n context: [ 'skl-con-3', 'skl-con-4' ],\n },\n }).render.addClass('mynah-card-skeleton'),\n ],\n });\n\n this.render = DomBuilder.getInstance().build({\n persistent: true,\n type: 'div',\n classNames: [ 'mynah-main' ],\n children: [ this.cardsWrapper, this.skeletonWrapper ],\n });\n\n MynahUIDataStore.getInstance().subscribe('suggestions', this.updateCards);\n MynahUIDataStore.getInstance().subscribe('loading', (loading: boolean) => {\n if (loading) {\n this.clearCards();\n }\n });\n }\n\n clearCards = (): void => {\n this.render.removeClass('mynah-hide-content').removeClass('mynah-show-content');\n setTimeout(() => {\n this.render.addClass('mynah-hide-content');\n }, 10);\n };\n\n updateCards = (suggestions: Suggestion[]): void => {\n setTimeout(() => {\n this.cardsWrapper.clear();\n if (suggestions.length === 0 && (MynahUIDataStore.getInstance().getValue('query') !== '' || (MynahUIDataStore.getInstance().getValue('codeSelection') as SearchPayloadCodeSelection).selectedCode !== '')) {\n this.cardsWrapper.insertChild(\n 'beforeend',\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-no-suggestion-indicator' ],\n children: [\n {\n type: 'span',\n children: [\n \"We couldn't find any relevant results with your search. Please refine your search and try again.\",\n ],\n },\n ],\n }) as HTMLElement\n );\n } else {\n suggestions.forEach((suggestion, index) => {\n this.cardsWrapper.insertChild(\n 'beforeend',\n new SuggestionCard({\n suggestion\n }).render\n );\n });\n }\n\n setTimeout(() => {\n this.render.addClass('mynah-show-content');\n }, 10);\n }, 250);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { MynahUIDataStore } from '../helper/store';\nimport { Toggle, ToggleOption } from './toggle';\n\nexport interface NavivationTabsProps {\n onChange?: (selectedValue: string) => void;\n}\nexport class NavivationTabs {\n render: ExtendedHTMLElement;\n private readonly props: NavivationTabsProps;\n\n constructor (props: NavivationTabsProps) {\n this.props = props;\n const tabs = MynahUIDataStore.getInstance().getValue('navigationTabs');\n const selectedTab = MynahUIDataStore.getInstance().getValue('selectedNavigationTab');\n MynahUIDataStore.getInstance().subscribe('loading', this.setLoading);\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-nav-tabs-wrapper', ...(MynahUIDataStore.getInstance().getValue('loading') === true ? [ 'mynah-nav-tabs-loading' ] : []) ],\n children: this.getTabsRender(tabs, selectedTab),\n });\n\n MynahUIDataStore.getInstance().subscribe('navigationTabs', (newTabs: ToggleOption[]) => {\n this.render.update({\n children: this.getTabsRender(newTabs, MynahUIDataStore.getInstance().getValue('selectedNavigationTab'))\n });\n });\n MynahUIDataStore.getInstance().subscribe('selectedNavigationTab', (newSelectedTab?: string | null) => {\n this.render.update({\n children: this.getTabsRender(MynahUIDataStore.getInstance().getValue('navigationTabs'), newSelectedTab)\n });\n });\n }\n\n private readonly setLoading = (isLoading: boolean): void => {\n if (isLoading) {\n this.render.addClass('mynah-nav-tabs-loading');\n } else {\n this.render.removeClass('mynah-nav-tabs-loading');\n }\n };\n\n private readonly getTabsRender = (tabs: ToggleOption[], selected?: string | null): ExtendedHTMLElement[] => tabs.length > 0\n ? [\n new Toggle({\n onChange: this.props.onChange,\n type: 'tabs',\n name: 'mynah-nav-tabs',\n options: tabs,\n value: selected\n }).render\n ]\n : [];\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilderObject, DS, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent } from '../../helper/events';\nimport { NotificationType } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection, OVERLAY_MARGIN } from '../overlay/overlay';\n\ntype NotificationContentType = string | ExtendedHTMLElement | HTMLElement | DomBuilderObject;\n\nexport interface NotificationProps {\n duration?: number;\n type?: NotificationType;\n title?: string;\n content: NotificationContentType | NotificationContentType[];\n onNotificationClick?: () => void;\n onNotificationHide?: () => void;\n}\n\nexport class Notification {\n private notificationOverlay!: Overlay;\n private readonly duration;\n private readonly type;\n private readonly props;\n\n constructor (props: NotificationProps) {\n this.duration = props.duration !== undefined ? props.duration : 5000;\n this.type = props.type ?? NotificationType.INFO;\n this.props = props;\n }\n\n public notify (): void {\n this.notificationOverlay = new Overlay({\n referencePoint: {\n left: Math.max(document.documentElement.clientWidth ?? 0, window.innerWidth ?? 0),\n top: this.getNextCalculatedTop(),\n },\n dimOutside: false,\n closeOnOutsideClick: false,\n horizontalDirection: OverlayHorizontalDirection.TO_LEFT,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n onClose: this.props.onNotificationHide,\n children: [\n {\n type: 'div',\n classNames: [\n 'mynah-notification',\n this.props.onNotificationClick !== undefined ? 'mynah-notification-clickable' : '',\n ],\n events: {\n click: e => {\n cancelEvent(e);\n if (this.props.onNotificationClick !== undefined) {\n this.props.onNotificationClick();\n this.notificationOverlay?.close();\n }\n },\n },\n children: [\n new Icon({ icon: this.type.toString() as MynahIcons }).render,\n {\n type: 'div',\n classNames: [ 'mynah-notification-container' ],\n children: [\n {\n type: 'h3',\n classNames: [ 'mynah-notification-title' ],\n children: [ this.props.title ?? '' ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-notification-content' ],\n children: this.getChildren(this.props.content),\n },\n ],\n },\n ],\n },\n ],\n });\n\n if (this.duration !== -1) {\n setTimeout(() => {\n this.notificationOverlay?.close();\n }, this.duration);\n }\n }\n\n /**\n * Calculates the top according to the previously shown and still visible notifications\n * @returns number\n */\n private readonly getNextCalculatedTop = (): number => {\n const prevNotifications = DS('.mynah-notification');\n if (prevNotifications.length > 0) {\n const prevNotificationRectangle = prevNotifications[prevNotifications.length - 1].getBoundingClientRect();\n return prevNotificationRectangle.top + prevNotificationRectangle.height + OVERLAY_MARGIN;\n }\n return 0;\n };\n\n private readonly getChildren = (content: NotificationContentType | NotificationContentType[]): NotificationContentType[] => {\n if (content instanceof Array) {\n return content;\n }\n return [ content ];\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/brace-style */\nimport { DomBuilder, DomBuilderObject, ExtendedHTMLElement } from '../../helper/dom';\nimport { generateUID } from '../../helper/guid';\nimport { MynahPortalNames } from '../../static';\n\nexport const OVERLAY_MARGIN = 8;\n/**\n * The horizontal creation direction of the overlay\n */\nexport enum OverlayHorizontalDirection {\n /**\n * starts from the left edge of the reference element and opens to left\n */\n TO_LEFT = 'horizontal-direction-to-left',\n /**\n * starts from the right edge of the reference element and opens to left\n */\n END_TO_LEFT = 'horizontal-direction-from-end-to-left',\n /**\n * starts from the right edge of the reference element and opens to right\n */\n TO_RIGHT = 'horizontal-direction-to-right',\n /**\n * starts from the left edge of the reference element and opens to right\n */\n START_TO_RIGHT = 'horizontal-direction-from-start-to-right',\n /**\n * starts and opens at the center of the reference element\n */\n CENTER = 'horizontal-direction-at-center',\n}\n\n/**\n * The vertical creation direction of the overlay\n */\nexport enum OverlayVerticalDirection {\n /**\n * starts from the bottom edge of the reference element and opens to bottom\n */\n TO_BOTTOM = 'vertical-direction-to-bottom',\n /**\n * starts from the top edge of the reference element and opens to bottom\n */\n START_TO_BOTTOM = 'vertical-direction-from-start-to-bottom',\n /**\n * starts from the top edge of the reference element and opens to top\n */\n TO_TOP = 'vertical-direction-to-top',\n /**\n * starts from the bottom edge of the reference element and opens to top\n */\n END_TO_TOP = 'vertical-direction-from-end-to-top',\n /**\n * starts and opens at the center of the reference element\n */\n CENTER = 'vertical-direction-at-center',\n}\n\nexport interface OverlayProps {\n referenceElement?: Element | ExtendedHTMLElement;\n referencePoint?: { top: number; left: number };\n children: Array<HTMLElement | ExtendedHTMLElement | DomBuilderObject>;\n horizontalDirection?: OverlayHorizontalDirection;\n verticalDirection?: OverlayVerticalDirection;\n dimOutside?: boolean;\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n}\nexport class Overlay {\n render: ExtendedHTMLElement;\n private readonly container: ExtendedHTMLElement;\n private readonly innerContainer: ExtendedHTMLElement;\n private readonly guid = generateUID();\n private readonly onClose;\n\n constructor (props: OverlayProps) {\n const horizontalDirection = props.horizontalDirection ?? OverlayHorizontalDirection.TO_RIGHT;\n const verticalDirection = props.verticalDirection ?? OverlayVerticalDirection.START_TO_BOTTOM;\n this.onClose = props.onClose;\n const dimOutside = props.dimOutside !== false;\n const closeOnOutsideClick = props.closeOnOutsideClick !== false;\n\n const calculatedTop = this.getCalculatedTop(verticalDirection, props.referenceElement, props.referencePoint);\n const calculatedLeft = this.getCalculatedLeft(horizontalDirection, props.referenceElement, props.referencePoint);\n\n this.innerContainer = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-overlay-inner-container' ],\n children: props.children,\n });\n\n this.container = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-overlay-container', horizontalDirection, verticalDirection ],\n attributes: {\n style: `top: ${calculatedTop}px; left: ${calculatedLeft}px;`,\n },\n children: [ this.innerContainer ],\n });\n\n // this is a portal that goes over all the other items\n // to make it as an overlay item\n this.render = DomBuilder.getInstance().createPortal(\n `${MynahPortalNames.OVERLAY}-${this.guid}`,\n {\n type: 'div',\n attributes: { id: `mynah-overlay-${this.guid}` },\n classNames: [\n 'mynah-overlay',\n ...(dimOutside ? [ 'mynah-overlay-dim-outside' ] : []),\n ...(closeOnOutsideClick ? [ 'mynah-overlay-close-on-outside-click' ] : []),\n ],\n events: {\n click: closeOnOutsideClick ? this.close : () => {},\n },\n children: [ this.container ],\n },\n 'beforeend'\n );\n\n const containerRectangle = this.container.getBoundingClientRect();\n const winHeight = Math.max(document.documentElement.clientHeight ?? 0, window.innerHeight ?? 0);\n const winWidth = Math.max(document.documentElement.clientWidth ?? 0, window.innerWidth ?? 0);\n\n // if it will open at the center of the reference element or point\n // we only need the half of both measurements\n const comparingWidth =\n horizontalDirection === OverlayHorizontalDirection.CENTER\n ? containerRectangle.width / 2\n : containerRectangle.width;\n const comparingHeight =\n verticalDirection === OverlayVerticalDirection.CENTER\n ? containerRectangle.height / 2\n : containerRectangle.height;\n\n // if overlay will open to right or at center\n // we're checking if it exceeds from the right edge of the window\n if (\n horizontalDirection !== OverlayHorizontalDirection.TO_LEFT &&\n horizontalDirection !== OverlayHorizontalDirection.END_TO_LEFT &&\n comparingWidth + OVERLAY_MARGIN + calculatedLeft > winWidth\n ) {\n this.container.style.left =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedLeft - (comparingWidth + OVERLAY_MARGIN + calculatedLeft - winWidth) + 'px';\n }\n // else if the direction is selected as a one that goes to the left,\n // we need to check if it is exceeding from the left edge of the window\n else if (calculatedLeft + comparingWidth - containerRectangle.width < OVERLAY_MARGIN) {\n this.container.style.left =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedLeft + (OVERLAY_MARGIN - calculatedLeft + (comparingWidth - containerRectangle.width)) + 'px';\n }\n\n // if overlay will open to bottom or at center\n // we're checking if it exceeds from the bottom edge of the window\n if (\n verticalDirection !== OverlayVerticalDirection.TO_TOP &&\n verticalDirection !== OverlayVerticalDirection.END_TO_TOP &&\n comparingHeight + OVERLAY_MARGIN + calculatedTop > winHeight\n ) {\n this.container.style.top =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedTop - (comparingHeight + OVERLAY_MARGIN + calculatedTop - winHeight) + 'px';\n }\n // else if the direction is selected as a one that goes to the top,\n // we need to check if it is exceeding from the top edge of the window\n else if (calculatedTop + comparingHeight - containerRectangle.height < OVERLAY_MARGIN) {\n this.container.style.top =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedTop + (OVERLAY_MARGIN - calculatedTop + (comparingHeight - containerRectangle.height)) + 'px';\n }\n\n // we need to delay the class toggle\n // to avoid the skipping of the transition comes from css\n // for a known js-css relation problem\n setTimeout(() => {\n this.render.addClass('mynah-overlay-open');\n\n if (closeOnOutsideClick) {\n window.addEventListener('blur', this.windowBlurHandler.bind(this));\n window.addEventListener('resize', this.windowBlurHandler.bind(this));\n }\n }, 10);\n }\n\n close = (): void => {\n this.render.removeClass('mynah-overlay-open');\n // In this timeout, we're waiting the close animation to be ended\n setTimeout(() => {\n this.render.remove();\n }, 250);\n if (this.onClose !== undefined) {\n this.onClose();\n }\n };\n\n private readonly windowBlurHandler = (): void => {\n this.close();\n window.removeEventListener('blur', this.windowBlurHandler.bind(this));\n window.removeEventListener('resize', this.windowBlurHandler.bind(this));\n };\n\n private readonly getCalculatedLeft = (\n horizontalDirection: OverlayHorizontalDirection,\n referenceElement?: Element | ExtendedHTMLElement,\n referencePoint?: { top?: number; left: number }\n ): number => {\n const referenceRectangle =\n referenceElement !== undefined\n ? referenceElement.getBoundingClientRect()\n : referencePoint !== undefined\n ? { left: referencePoint.left, width: 0 }\n : { left: 0, width: 0 };\n\n switch (horizontalDirection.toString()) {\n case OverlayHorizontalDirection.TO_RIGHT:\n return referenceRectangle.left + referenceRectangle.width + OVERLAY_MARGIN;\n case OverlayHorizontalDirection.START_TO_RIGHT:\n return referenceRectangle.left;\n case OverlayHorizontalDirection.TO_LEFT:\n return referenceRectangle.left - OVERLAY_MARGIN;\n case OverlayHorizontalDirection.END_TO_LEFT:\n return referenceRectangle.left + referenceRectangle.width;\n case OverlayHorizontalDirection.CENTER:\n return referenceRectangle.left + referenceRectangle.width / 2;\n default:\n return 0;\n }\n };\n\n private readonly getCalculatedTop = (\n verticalDirection: OverlayVerticalDirection,\n referenceElement?: Element | ExtendedHTMLElement,\n referencePoint?: { top: number; left?: number }\n ): number => {\n const referenceRectangle =\n referenceElement !== undefined\n ? referenceElement.getBoundingClientRect()\n : referencePoint !== undefined\n ? { top: referencePoint.top, height: 0 }\n : { top: 0, height: 0 };\n\n switch (verticalDirection.toString()) {\n case OverlayVerticalDirection.TO_BOTTOM:\n return referenceRectangle.top + referenceRectangle.height + OVERLAY_MARGIN;\n case OverlayVerticalDirection.START_TO_BOTTOM:\n return referenceRectangle.top;\n case OverlayVerticalDirection.TO_TOP:\n return referenceRectangle.top - OVERLAY_MARGIN;\n case OverlayVerticalDirection.END_TO_TOP:\n return referenceRectangle.top + referenceRectangle.height;\n case OverlayVerticalDirection.CENTER:\n return referenceRectangle.top + referenceRectangle.height / 2;\n default:\n return referenceRectangle.top;\n }\n };\n\n public updateContent = (children: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>): void => {\n this.innerContainer.update({ children });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextChangeType, ContextType, ContextTypeClassNames, ContextTypes, MynahEventNames } from '../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { Button } from './button';\nimport { Overlay, OverlayVerticalDirection } from './overlay/overlay';\nimport { cancelEvent, MynahUIGlobalEvents } from '../helper/events';\nexport interface PrioritizationMenuButtonsProps {\n context: ContextType;\n referenceElement: Element | ExtendedHTMLElement;\n onMenuClose: () => void;\n}\nexport class PrioritizationMenuButtons {\n private menuOverlay!: Overlay;\n private readonly props: PrioritizationMenuButtonsProps;\n constructor (props: PrioritizationMenuButtonsProps) {\n this.props = props;\n }\n\n public createOverlay (): void {\n this.menuOverlay = new Overlay({\n referenceElement: this.props.referenceElement,\n verticalDirection: OverlayVerticalDirection.CENTER,\n onClose: this.props.onMenuClose,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-prioritization-menu-buttons-container' ],\n children: [\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.MUST] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.MUST ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `Must have&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.SHOULD] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.SHOULD ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `More with&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.MUST_NOT] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.MUST_NOT ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `Without&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n ],\n },\n ],\n });\n }\n\n private readonly handlePrioritizationButtonClick = (priority: ContextTypes): void => {\n if (priority !== this.props.context.type) {\n this.menuOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.props.context.context,\n type: priority,\n source: this.props.context.source,\n },\n oldPolicyType: this.props.context.type\n });\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AutocompleteItem } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { cancelEvent } from '../../helper/events';\n\nexport interface AutocompleteCardContentProps {\n searchQuery: string;\n content: AutocompleteItem;\n onAutocompleteClick: (autocompleteQuery: AutocompleteItem, index: number) => void;\n index: number;\n isHovered: boolean | false;\n}\nexport class AutocompleteCardContent {\n render: ExtendedHTMLElement;\n openSearch: any;\n searchQuery: string;\n\n constructor (props: AutocompleteCardContentProps) {\n this.searchQuery = props.searchQuery;\n const buttonClassNames = [ 'mynah-autocomplete-button' ];\n if (props.isHovered) {\n buttonClassNames.push('hover');\n }\n this.render = new Button({\n classNames: buttonClassNames,\n onClick: (e: Event) => {\n cancelEvent(e);\n props.onAutocompleteClick(props.content, props.index);\n },\n label: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-autocomplete-button-label' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-autocomplete-title-wrapper' ],\n children: [\n {\n classNames: [ 'autocomplete' ],\n type: 'h3',\n innerHTML: this.formatSuggestion(props.content.suggestion),\n },\n ],\n },\n ],\n }),\n }).render;\n }\n\n private formatSuggestion (suggestion: string): string {\n const boldWords = this.searchQuery.split(' ').filter(word => word.trim().length > 0);\n\n boldWords.forEach(word => {\n suggestion = suggestion.replace(new RegExp('(' + word + ')', 'i'), makeBold('$1'));\n });\n\n function makeBold (word: string): string {\n return word.bold();\n }\n return suggestion;\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AutocompleteItem, MynahEventNames } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { AutocompleteCardContent } from './autocomplete-card';\nimport { MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface AutocompleteContentProps {\n searchQuery: string;\n referenceElement: Element | ExtendedHTMLElement;\n autocompleteSuggestions: AutocompleteItem[];\n onClose?: () => void;\n}\n\nexport class AutocompleteContent {\n private readonly autocompleteItemsOverlay;\n public suggestions;\n private searchQuery: string;\n private currHover: number;\n private readonly props: AutocompleteContentProps;\n private isUsed: boolean;\n render!: ExtendedHTMLElement;\n constructor (props: AutocompleteContentProps) {\n this.props = props;\n this.isUsed = false;\n this.suggestions = props.autocompleteSuggestions;\n this.searchQuery = props.searchQuery;\n this.currHover = 0;\n\n this.autocompleteItemsOverlay = new Overlay({\n dimOutside: false,\n referenceElement: props.referenceElement,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n horizontalDirection: OverlayHorizontalDirection.START_TO_RIGHT,\n onClose: props.onClose,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-autocomplete-items-wrapper' ],\n children: this.autocompleteCards(this.props.autocompleteSuggestions, 0),\n },\n ],\n });\n }\n\n autocompleteCards = (autocompleteSuggestions: AutocompleteItem[], hovered: number): ExtendedHTMLElement[] =>\n autocompleteSuggestions.map(\n (record, index) =>\n new AutocompleteCardContent({\n searchQuery: this.searchQuery,\n content: record,\n onAutocompleteClick: this.handleAutocompleteClick.bind(this),\n isHovered: index + 1 === hovered,\n index: index + 1,\n }).render\n );\n\n private readonly handleAutocompleteClick = (autocompleteItem: AutocompleteItem, index: number): void => {\n this.autocompleteItemsOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, {\n autocompleteQuery: autocompleteItem,\n index,\n count: this.getSuggestionsCount()\n });\n };\n\n public updateSuggestions = (autocompleteSuggestions: AutocompleteItem[], hoverQuery: number): void => {\n this.suggestions = autocompleteSuggestions;\n const cards = this.autocompleteCards(autocompleteSuggestions, hoverQuery);\n const cardWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-autocomplete-items-wrapper' ],\n children: cards,\n });\n this.autocompleteItemsOverlay.updateContent([ cardWrapper ]);\n cardWrapper.addClass('make-items-as-ghost');\n setTimeout(() => {\n cardWrapper.removeClass('make-items-as-ghost');\n }, 50);\n };\n\n public updateQuery = (searchQuery: string): void => {\n this.searchQuery = searchQuery;\n };\n\n public hover = (isUp: boolean): string => {\n if (isUp) {\n this.currHover = this.currHover === 0 ? this.suggestions.length : this.currHover - 1;\n } else {\n this.currHover = (this.currHover + 1) % (this.suggestions.length + 1);\n }\n\n this.updateSuggestions(this.suggestions, this.currHover);\n\n if (this.currHover === 0) {\n this.setIsUsed(false);\n return this.searchQuery;\n } else {\n this.setIsUsed(true);\n return this.suggestions[this.currHover - 1].suggestion;\n }\n };\n\n public setIsUsed = (val: boolean): void => {\n this.isUsed = val;\n };\n\n public getIsUsed = (): boolean => {\n return this.isUsed;\n };\n\n public getCurrentSelected = (): number => {\n return this.currHover;\n };\n\n public getSuggestionsCount = (): number => {\n return this.suggestions.length;\n };\n\n public close = (): void => {\n this.autocompleteItemsOverlay.close();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { SyntaxHighlighter } from '../syntax-highlighter';\nimport { getLanguageFromFileName } from '../../helper/find-language';\nimport { MynahEventNames, SearchPayloadCodeSelection, SupportedCodingLanguagesExtensionToTypeMap } from '../../static';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport class SearchApiHelp {\n render: ExtendedHTMLElement;\n private isCollapsed: boolean = true;\n constructor () {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help', 'hide', 'collapsed' ],\n children: [],\n });\n\n MynahUIDataStore.getInstance().subscribe('codeSelection', (codeSelection: SearchPayloadCodeSelection) => {\n if (codeSelection.selectedCode !== '') {\n this.updateContent(codeSelection);\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private readonly hide = (): void => {\n this.render.addClass('hide');\n };\n\n private readonly show = (): void => {\n this.render.removeClass('hide');\n };\n\n private readonly updateContent = (codeSelection: SearchPayloadCodeSelection): void => {\n this.render.update({\n children: [\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-detail-row' ],\n children: [\n {\n type: 'h4',\n innerHTML: 'Target file:',\n },\n {\n type: 'b',\n innerHTML: codeSelection.file?.name,\n },\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-detail-row' ],\n children: [\n {\n type: 'h4',\n innerHTML: 'Selected range:',\n },\n {\n type: 'span',\n innerHTML:\n codeSelection.file?.range !== undefined\n ? `${codeSelection.file?.range.end !== undefined ? 'From ' : ''}line <b>${\n codeSelection.file?.range.start.row\n }</b>, column <b>${codeSelection.file?.range.start.column ?? ''}</b> ${\n codeSelection.file?.range.end !== undefined\n ? `to line <b>${codeSelection.file?.range.end?.row}</b>, column <b>${\n codeSelection.file?.range.end?.column ?? ''\n }</b>`\n : ''\n }`\n : '',\n },\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-wrapper' ],\n events: {\n click: e => {\n cancelEvent(e);\n // uncollapse only if it is collapsed, not collapse it back with code click to make it selectable\n if (this.isCollapsed) {\n this.isCollapsed = false;\n this.onCodeDetailsClicked(codeSelection.selectedCode, codeSelection.file?.name, codeSelection.file?.range);\n this.render.removeClass('collapsed');\n }\n },\n },\n children: [\n new SyntaxHighlighter({\n codeStringWithMarkup: codeSelection.selectedCode,\n language:\n codeSelection.file?.name !== undefined\n ? getLanguageFromFileName(codeSelection.file?.name)\n : SupportedCodingLanguagesExtensionToTypeMap.js,\n keepHighlights: false,\n showLineNumbers: true,\n startingLineNumber: Number(codeSelection.file?.range?.start.row ?? 1),\n }).render,\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-collapser' ],\n events: {\n click: e => {\n cancelEvent(e);\n this.isCollapsed = !this.isCollapsed;\n if (!this.isCollapsed) {\n this.onCodeDetailsClicked(codeSelection.selectedCode, codeSelection.file?.name, codeSelection.file?.range);\n }\n this.render.toggleClass('collapsed');\n },\n },\n children: [\n {\n type: 'span',\n classNames: [ 'mynah-search-api-help-uncollapse-icon' ],\n children: [ new Icon({ icon: MynahIcons.DOWN_OPEN }).render ],\n },\n {\n type: 'span',\n classNames: [ 'mynah-search-api-help-collapse-icon' ],\n children: [ new Icon({ icon: MynahIcons.UP_OPEN }).render ],\n },\n ],\n }),\n ],\n });\n };\n\n private readonly onCodeDetailsClicked = (\n code: string,\n fileName?: string,\n range?: {\n start: { row: string; column?: string };\n end?: { row: string; column?: string };\n }\n ): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CODE_DETAILS_CLICK,\n {\n code,\n fileName,\n range\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIDataStore } from '../../helper/store';\nimport { NotificationType } from '../../static';\nimport { Button } from '../button';\nimport { FeedbackForm } from '../feedback-form/feedback-form';\nimport { Icon, MynahIcons } from '../icon';\n\nexport class SearchCardHeader {\n private readonly feedbackForm: FeedbackForm;\n private readonly infoBar: ExtendedHTMLElement;\n render: ExtendedHTMLElement;\n\n constructor () {\n this.feedbackForm = new FeedbackForm();\n this.infoBar = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header-info-bar' ],\n children: this.getHeaderInfoContent(MynahUIDataStore.getInstance().getValue('headerInfo'))\n });\n\n MynahUIDataStore.getInstance().subscribe('headerInfo', headerInfo => {\n this.infoBar.update({ children: this.getHeaderInfoContent(headerInfo) });\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header' ],\n children: [\n {\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header-top-bar' ],\n children: [\n new Button({\n onClick: () => {\n MynahUIDataStore.getInstance().resetStore();\n },\n primary: false,\n label: 'Clear All',\n classNames: [ 'mynah-header-button' ],\n }).render,\n this.feedbackForm.feedbackContainer,\n ],\n },\n this.infoBar\n ],\n });\n }\n\n private readonly getHeaderInfoContent = (headerInfo: {content: string; type: MynahIcons}): Array<ExtendedHTMLElement | string> => {\n if (headerInfo.content !== '') {\n return [\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-block-header-info-bar-bg', `mynah-header-info-${headerInfo.type ?? NotificationType.INFO}` ]\n }),\n new Icon({ icon: headerInfo.type ?? NotificationType.INFO }).render,\n DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-search-block-header-info-bar-text' ],\n innerHTML: headerInfo.content\n })\n ];\n }\n return [ '' ];\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\nimport { SearchContext } from './search-context';\nimport { SearchInput } from './search-input';\nimport { SearchApiHelp } from './search-api-help';\nimport { SearchLiveToggle } from './search-live-toggle';\nimport { SearchCardHeader } from './search-card-header';\n\nexport class SearchCard {\n private unfoldedByContextInsertion: boolean = false;\n private unfoldedByButton: boolean = false;\n private readonly searchInput: SearchInput;\n private readonly searchAPIHelp: SearchApiHelp;\n private readonly liveSearchToggle: SearchLiveToggle;\n private readonly foldUnfoldButton: Button;\n private readonly contextManagement: SearchContext;\n private readonly searchCardHeader: SearchCardHeader;\n render: ExtendedHTMLElement;\n constructor () {\n this.foldUnfoldButton = new Button({\n children: [ new Icon({ icon: MynahIcons.DOWN_OPEN }).render, new Icon({ icon: MynahIcons.UP_OPEN }).render ],\n onClick: () => {\n if (this.render.hasClass('mynah-search-block-unfold')) {\n this.unfoldedByButton = false;\n if (!this.unfoldedByContextInsertion) {\n this.render.removeClass('mynah-search-block-unfold');\n }\n } else {\n this.unfoldedByButton = true;\n this.render.addClass('mynah-search-block-unfold');\n }\n },\n classNames: [ 'mnynah-search-block-fold-unfold-button' ],\n });\n\n this.searchCardHeader = new SearchCardHeader();\n this.liveSearchToggle = new SearchLiveToggle({ label: 'Live suggestions:' });\n this.searchAPIHelp = new SearchApiHelp();\n this.searchInput = new SearchInput();\n this.contextManagement = new SearchContext({\n onContextInsertionEnabled: () => {\n this.unfoldedByContextInsertion = true;\n this.render.addClass('mynah-search-block-unfold');\n },\n onContextInsertionDisabled: () => {\n this.unfoldedByContextInsertion = false;\n if (!this.unfoldedByButton) {\n this.render.removeClass('mynah-search-block-unfold');\n }\n },\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block' ],\n children: [\n this.searchCardHeader.render,\n this.liveSearchToggle.render,\n this.searchAPIHelp.render,\n this.searchInput.render,\n this.contextManagement.render,\n this.foldUnfoldButton.render,\n ],\n });\n }\n\n public addFocusOnInput = (): void => {\n this.searchInput.addFocusOnInput();\n };\n\n setFolded = (folded: boolean): void => {\n if (folded) {\n this.render.addClass('mynah-search-block-ready-to-fold');\n } else {\n this.render.removeClass('mynah-search-block-ready-to-fold');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/prefer-includes */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\nimport {\n KeyMap,\n SearchPayloadMatchPolicy,\n ContextSource,\n ContextType,\n ContextTypes,\n MynahEventNames,\n ContextChangeType,\n NotificationType\n} from '../../static';\nimport { ContextPill } from '../context-item';\nimport { Icon, MynahIcons } from '../icon';\nimport { Notification } from '../notification/notification';\n\ninterface RenderedContextType extends ContextType {\n render: HTMLElement | ExtendedHTMLElement;\n}\nexport interface SearchContextProps {\n initContextList?: SearchPayloadMatchPolicy;\n onContextInsertionEnabled?: () => void;\n onContextInsertionDisabled?: () => void;\n}\n\nexport class SearchContext {\n private readonly allowedCharCount = 100;\n private readonly contextCheckExpression = /^\\S+$/;\n private readonly isAcceptedKeyPress = (char: string): boolean => this.contextCheckExpression.test(char);\n private readonly acceptedNagivationKeys = Object.keys(KeyMap).map(\n (key: string) => (KeyMap as Record<string, string>)[key]\n );\n\n private renderedContextMap: Record<string, RenderedContextType> = {};\n private readonly onContextInsertionEnabled;\n private readonly onContextInsertionDisabled;\n\n constructor (props?: SearchContextProps) {\n this.onContextInsertionEnabled = props?.onContextInsertionEnabled;\n this.onContextInsertionDisabled = props?.onContextInsertionDisabled;\n const initContext = MynahUIDataStore.getInstance().getValue('matchPolicy');\n if (initContext !== undefined) {\n this.createContextItemElements(initContext, {});\n }\n\n MynahUIDataStore.getInstance().subscribe('matchPolicy', (matchPolicy: SearchPayloadMatchPolicy, oldMatchPolicy: Partial<SearchPayloadMatchPolicy>) => {\n this.createContextItemElements(matchPolicy, oldMatchPolicy);\n });\n }\n\n private readonly enableContextInsertion = (): void => {\n this.contextInsertionButton.addClass('context-insertion-activated');\n this.contextInsertionInput.focus();\n if (this.onContextInsertionEnabled !== undefined) {\n this.onContextInsertionEnabled();\n }\n };\n\n private readonly disableContextInsertion = (keepText?: boolean): void => {\n this.contextInsertionButton.removeClass('context-insertion-activated');\n if (keepText !== true) {\n this.contextInsertionInput.value = '';\n this.inputAutoWidth.update({\n innerHTML: '',\n });\n }\n if (this.onContextInsertionDisabled !== undefined) {\n this.onContextInsertionDisabled();\n }\n };\n\n private readonly createContextItemElements = (matchPolicy: SearchPayloadMatchPolicy, oldMatchPolicy: Partial<SearchPayloadMatchPolicy>): void => {\n const userAddedContext: string[] = MynahUIDataStore.getInstance().getValue('userAddedContext') as string[];\n const removedContext: ContextType[] = [];\n const addedContext: ContextType[] = [];\n Object.keys(oldMatchPolicy).forEach(policyGroup => {\n oldMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.forEach(contextKey => {\n if (!matchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.includes(contextKey)) {\n removedContext.push({\n context: contextKey,\n source: ContextSource.AUTO,\n type: policyGroup as ContextTypes\n });\n }\n });\n });\n Object.keys(matchPolicy).forEach(policyGroup => {\n matchPolicy[policyGroup as keyof SearchPayloadMatchPolicy].forEach(contextKey => {\n if (!oldMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.includes(contextKey)) {\n addedContext.push({\n context: contextKey,\n source: userAddedContext.includes(contextKey) ? ContextSource.USER : ContextSource.AUTO,\n type: policyGroup as ContextTypes\n });\n }\n });\n });\n\n removedContext.forEach((contextItem: ContextType) => {\n if (this.renderedContextMap[contextItem.context]) {\n this.renderedContextMap[contextItem.context].render.remove();\n delete this.renderedContextMap[contextItem.context];\n }\n });\n\n const invisibleContextKeys = MynahUIDataStore.getInstance().getValue('invisibleContextItems');\n addedContext.forEach((contextItem: ContextType) => {\n const contextRender = new ContextPill({\n context: contextItem,\n showRemoveButton: true,\n }).render;\n let actualContextItemRender = contextRender;\n if (!invisibleContextKeys.includes(contextItem.context) &&\n (contextItem.type === ContextTypes.MUST || contextItem.type === ContextTypes.MUST_NOT)) {\n actualContextItemRender = DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ `mynah-context-pill-group-item-${contextItem.type}` ],\n children: [ contextRender ]\n });\n }\n this.renderedContextMap[contextItem.context] = {\n ...contextItem,\n render: actualContextItemRender,\n };\n this.contextWrapper.insertChild('beforeend', actualContextItemRender);\n });\n };\n\n private readonly contextInsertionKeydownHandler = (e: KeyboardEvent): void => {\n if (this.acceptedNagivationKeys.includes(e.key) || this.isAcceptedKeyPress(e.key)) {\n if (e.key === KeyMap.ENTER || e.key === KeyMap.SPACE) {\n cancelEvent(e);\n if (this.contextCheckExpression.test(this.contextInsertionInput.value)) {\n if (this.renderedContextMap[this.contextInsertionInput.value] === undefined) {\n MynahUIDataStore.getInstance().updateStore({\n userAddedContext: [ ...MynahUIDataStore.getInstance().getValue('userAddedContext'), this.contextInsertionInput.value ]\n });\n\n const loadingListener = MynahUIDataStore.getInstance().subscribe('loading', (loadingState) => {\n if (!loadingState) {\n this.enableContextInsertion();\n }\n MynahUIDataStore.getInstance().unsubscribe('loading', loadingListener);\n });\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.contextInsertionInput.value,\n type: ContextTypes.SHOULD,\n source: ContextSource.USER,\n }\n });\n } else {\n this.contextWrapper.insertChild(\n 'afterbegin',\n this.renderedContextMap[this.contextInsertionInput.value].render\n );\n }\n\n this.inputAutoWidth.update({\n innerHTML: '',\n });\n this.contextInsertionInput.value = '';\n } else {\n this.contextInsertionButton.removeClass('shake');\n setTimeout(() => {\n this.contextInsertionButton.addClass('shake');\n const notification = new Notification({\n content: 'You cannot add empty context items or context items containing spaces.',\n type: NotificationType.WARNING,\n onNotificationClick: () => { },\n });\n notification.notify();\n }, 50);\n }\n } else if (e.key === KeyMap.ESCAPE) {\n cancelEvent(e);\n this.disableContextInsertion();\n } else {\n if (\n !this.acceptedNagivationKeys.includes(e.key) &&\n this.allowedCharCount - this.contextInsertionInput.value.length <= 0\n ) {\n cancelEvent(e);\n }\n }\n } else {\n cancelEvent(e);\n }\n };\n\n private readonly inputAutoWidth = DomBuilder.getInstance().build({\n type: 'span',\n });\n\n private contextInsertionInput = DomBuilder.getInstance().build({\n type: 'input',\n classNames: [ 'context-text-input' ],\n attributes: {\n maxlength: this.allowedCharCount.toString(),\n tabindex: '10',\n type: 'text',\n placeholder: 'Add context',\n },\n events: {\n focus: this.enableContextInsertion,\n blur: () => {\n this.disableContextInsertion(true);\n },\n keydown: this.contextInsertionKeydownHandler,\n input: () => {\n this.inputAutoWidth.update({\n innerHTML: this.contextInsertionInput.value,\n });\n },\n paste: cancelEvent,\n },\n });\n\n private readonly contextInsertionButton = DomBuilder.getInstance().build({\n type: 'label',\n persistent: true,\n classNames: [ 'mynah-context-checkbox-label' ],\n attributes: { id: 'add-new-context' },\n events: { click: this.enableContextInsertion.bind(this) },\n children: [\n new Icon({ icon: MynahIcons.PLUS }).render,\n {\n type: 'span',\n classNames: [ 'add-new-context-label' ],\n children: [ 'Add context' ],\n },\n this.contextInsertionInput,\n this.inputAutoWidth,\n ],\n });\n\n private readonly contextWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-context-wrapper' ],\n children: [\n DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-context-pill-groups-start' ]\n }),\n this.contextInsertionButton,\n ],\n });\n\n render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-block-advanced-control' ],\n children: [ this.contextWrapper ]\n });\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getTimeDiff } from '../../helper/date-time';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent } from '../../helper/events';\nimport {\n SearchPayloadMatchPolicy,\n ContextTypeClassNames,\n SearchHistoryItem\n} from '../../static';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\n\nexport interface HistoryCardContentProps {\n content: SearchHistoryItem;\n onHistoryItemClick: (historyItem: SearchHistoryItem) => void;\n}\nexport class HistoryCardContent {\n render: ExtendedHTMLElement;\n openSearch: any;\n\n private getSearchHitoryRecordTitle (historyItem: SearchHistoryItem): string {\n const titleParts = [];\n\n if (historyItem.query !== undefined && historyItem.query.input !== '') {\n titleParts.push(historyItem.query.input);\n }\n\n if (historyItem.query.codeSelection?.file !== undefined && historyItem.query.codeSelection.file.name !== '') {\n titleParts.push(\n `${historyItem.query.codeSelection.file.range.start.row}:${historyItem.query.codeSelection.file.range.start.column}`\n );\n titleParts.push(historyItem.query.codeSelection.file.name.split('/').pop());\n }\n\n return titleParts.join(' ');\n }\n\n constructor (props: HistoryCardContentProps) {\n let icon = [];\n\n switch (props.content.query.trigger) {\n case 'SearchBarInput':\n case 'SearchBarRefinement':\n icon = [\n new Icon({\n icon: MynahIcons.USER,\n }).render,\n ];\n break;\n case 'CodeSelection':\n icon = [\n new Icon({\n icon: MynahIcons.CODE_BLOCK,\n }).render,\n ];\n break;\n default:\n icon = [\n new Icon({\n icon: MynahIcons.LIGHT_BULB,\n }).render,\n ];\n break;\n }\n\n this.render = new Button({\n classNames: [ 'mynah-search-history-button' ],\n onClick: (e: Event) => {\n cancelEvent(e);\n props.onHistoryItemClick(props.content);\n },\n label: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-history-button-label' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-search-history-trigger-icon' ],\n children: [ ...icon ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-search-history-title-wrapper' ],\n children: [\n {\n type: 'h3',\n innerHTML: this.getSearchHitoryRecordTitle(props.content),\n },\n {\n type: 'span',\n innerHTML: props.content.recordDate !== undefined\n ? `${getTimeDiff(\n new Date().getTime() - props.content.recordDate\n ).toString()} ago`\n : '',\n },\n ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-search-history-item-context-wrapper' ],\n children: Object.keys(props.content.query.queryContext).map((policyGroup: string) => {\n if (\n props.content.query.queryContext[policyGroup as keyof SearchPayloadMatchPolicy].length >\n 0\n ) {\n return DomBuilder.getInstance().build({\n type: 'span',\n classNames: [\n 'mynah-context-pill',\n ContextTypeClassNames[policyGroup as keyof SearchPayloadMatchPolicy],\n ],\n children: [\n {\n type: 'label',\n classNames: [ 'mynah-context-checkbox-label' ],\n children: [\n {\n type: 'span',\n innerHTML: props.content.query.queryContext[\n policyGroup as keyof SearchPayloadMatchPolicy\n ].length.toString(),\n },\n ],\n },\n ],\n });\n }\n return '';\n }),\n },\n ],\n }),\n }).render;\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahEventNames, SearchHistoryItem } from '../../static';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { HistoryCardContent } from './search-history-card';\n\nexport interface HistoryContentProps {\n referenceElement: Element | ExtendedHTMLElement;\n searchHistory: SearchHistoryItem[];\n}\nexport class HistoryContent {\n private historyItemsOverlay!: Overlay;\n private readonly props: HistoryContentProps;\n render!: ExtendedHTMLElement;\n constructor (props: HistoryContentProps) {\n this.props = props;\n }\n\n public createOverlay (): void {\n this.historyItemsOverlay = new Overlay({\n referenceElement: this.props.referenceElement,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n horizontalDirection: OverlayHorizontalDirection.END_TO_LEFT,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-search-history-items-wrapper' ],\n children: this.searchHistoryCards(this.props.searchHistory),\n },\n ],\n });\n }\n\n searchHistoryCards = (historyItems: SearchHistoryItem[]): ExtendedHTMLElement[] =>\n historyItems.map(\n record =>\n new HistoryCardContent({\n content: record,\n onHistoryItemClick: this.handleHistoryChange,\n }).render\n );\n\n private readonly handleHistoryChange = (historyItem: SearchHistoryItem): void => {\n this.historyItemsOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SEARCH_HISTORY_ITEM_CLICK, {\n historyItem\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { AutocompleteItem, KeyMap, MynahEventNames, SearchHistoryFilters, SearchHistoryItem, SearchPayloadCodeSelection } from '../../static';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\nimport { HistoryContent } from './search-history-content';\nimport { AutocompleteContent } from './autocomplete-content';\nimport { I18N } from '../../translations/i18n';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport class SearchInput {\n render: ExtendedHTMLElement;\n private searchTextInput: ExtendedHTMLElement;\n private readonly searchButton: ExtendedHTMLElement;\n private readonly searchHistoryButton: ExtendedHTMLElement;\n private readonly remainingIndicator: ExtendedHTMLElement;\n private autocompleteContent: AutocompleteContent | undefined;\n private readonly allowedCharCount: number = 1000;\n private codeSelectionAvailable: boolean = false;\n constructor () {\n const initText = MynahUIDataStore.getInstance().getValue('query');\n this.codeSelectionAvailable = MynahUIDataStore.getInstance().getValue('codeSelection').selectedCode !== '';\n\n const classNames = [ 'mynah-search-input' ];\n if (this.codeSelectionAvailable) {\n classNames.push('search-always-active');\n }\n\n this.searchTextInput = DomBuilder.getInstance().build({\n type: 'input',\n classNames,\n attributes: {\n tabindex: '1',\n maxlength: '1000',\n type: 'text',\n placeholder:\n this.codeSelectionAvailable\n ? I18N.getInstance().texts.searchInputAPIHelpPlaceholder\n : I18N.getInstance().texts.searchInputMynahPlaceholder,\n value: initText ?? '',\n },\n events: {\n keyup: this.handleInputKeydown.bind(this),\n },\n });\n this.searchButton = new Button({\n classNames: [ 'mynah-icon-button', 'mynah-search-button' ],\n attributes: { tabindex: '5' },\n icon: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-mutating-next-icon' ],\n children: [\n new Icon({ icon: MynahIcons.SEARCH }).render,\n { type: 'i', classNames: [ 'mynah-loading-spinner' ] },\n ],\n }),\n onClick: () => {\n this.triggerSearch();\n },\n }).render;\n this.searchHistoryButton = new Button({\n classNames: [ 'mynah-icon-button' ],\n primary: false,\n attributes: { tabindex: '5' },\n icon: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-history-icon' ],\n children: [\n new Icon({ icon: MynahIcons.SEARCH_HISTORY }).render,\n { type: 'i', classNames: [ 'mynah-history-icon' ] },\n ],\n }),\n onClick: this.triggerSearchHistory.bind(this),\n }).render;\n\n this.remainingIndicator = DomBuilder.getInstance().build({\n type: 'span',\n attributes: {\n 'remaining-chars': (initText !== undefined && initText.length > 0\n ? this.allowedCharCount - initText.length\n : this.allowedCharCount\n ).toString(),\n 'max-chars': this.allowedCharCount.toString(),\n },\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-input-wrapper' ],\n children: [\n this.searchTextInput,\n this.remainingIndicator,\n this.searchHistoryButton,\n this.searchButton,\n ],\n });\n\n MynahUIDataStore.getInstance().subscribe('query', (query: string) => {\n this.searchTextInput.value = query;\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n });\n\n MynahUIDataStore.getInstance().subscribe('autoCompleteSuggestions', (autoCompleteList: AutocompleteItem[]) => {\n this.handleAutocompleteSuggestions(this.searchTextInput.value, autoCompleteList);\n });\n\n MynahUIDataStore.getInstance().subscribe('loading', (loading: boolean) => {\n this.setWaitState(loading);\n });\n\n MynahUIDataStore.getInstance().subscribe('codeSelection', (codeSelection: SearchPayloadCodeSelection) => {\n if (codeSelection.selectedCode !== '') {\n this.codeSelectionAvailable = true;\n this.searchTextInput.addClass('search-always-active');\n this.searchTextInput.setAttribute('placeholder', I18N.getInstance().texts.searchInputAPIHelpPlaceholder);\n } else {\n this.codeSelectionAvailable = false;\n this.searchTextInput.removeClass('search-always-active');\n this.searchTextInput.setAttribute('placeholder', I18N.getInstance().texts.searchInputMynahPlaceholder);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, (data: {\n autocompleteQuery: AutocompleteItem;\n index: number;\n count: number;}) => {\n this.searchTextInput.value = data.autocompleteQuery.suggestion;\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n this.autocompleteContent?.close();\n this.triggerSearch(true);\n });\n }\n\n public addFocusOnInput = (): void => {\n this.searchTextInput.focus();\n };\n\n private readonly handleInputKeydown = (e: KeyboardEvent): void => {\n if (e.key === KeyMap.ENTER) {\n cancelEvent(e);\n if (this.autocompleteContent?.getIsUsed() === true) {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, {\n autocompleteQuery: this.autocompleteContent.suggestions[this.autocompleteContent.getCurrentSelected() - 1],\n index: this.autocompleteContent.getCurrentSelected() - 1,\n count: this.autocompleteContent.getSuggestionsCount()\n });\n } else {\n this.triggerSearch();\n }\n } else if (e.key === KeyMap.ARROW_DOWN) {\n if (this.autocompleteContent !== undefined) {\n this.searchTextInput.value = this.autocompleteContent.hover(false);\n }\n } else if (e.key === KeyMap.ARROW_UP) {\n if (this.autocompleteContent !== undefined) {\n this.searchTextInput.value = this.autocompleteContent.hover(true);\n }\n } else if (\n e.key === KeyMap.DELETE ||\n e.key === KeyMap.BACKSPACE ||\n !Object.values<string>(KeyMap).includes(e.key)\n ) {\n MynahUIGlobalEvents.getInstance().dispatch(\n MynahEventNames.INPUT_QUERY_CHANGE,\n { input: this.searchTextInput.value });\n }\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n };\n\n private readonly triggerSearch = (isFromAutocomplete?: boolean): void => {\n if (this.codeSelectionAvailable || this.searchTextInput.value.trim() !== '') {\n MynahUIDataStore.getInstance().updateStore({\n query: this.searchTextInput.value\n });\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SEARCH, {\n query: this.searchTextInput.value,\n isFromAutocomplete\n });\n }\n };\n\n private readonly triggerSearchHistory = (): void => {\n const filters: SearchHistoryFilters = {\n isGlobal: false,\n languages: [],\n resultOffset: 0,\n resultLimit: 50,\n };\n this.searchHistoryButton.addClass('mynah-button-wait');\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.REQUEST_SEARCH_HISTORY, {\n filters\n });\n const searchHistorySubscriptionId = MynahUIDataStore.getInstance().subscribe('searchHistory', (searchHistory: SearchHistoryItem[]) => {\n this.searchHistoryButton.removeClass('mynah-button-wait');\n const historyContent = new HistoryContent({\n referenceElement: this.searchHistoryButton,\n searchHistory,\n });\n historyContent.createOverlay();\n MynahUIDataStore.getInstance().unsubscribe('searchHistory', searchHistorySubscriptionId);\n });\n };\n\n private readonly handleAutocompleteSuggestions = (input: string, autocompleteSuggestions: AutocompleteItem[]): void => {\n if (input.trim() === '') {\n this.autocompleteContent?.close();\n } else {\n if (this.autocompleteContent !== undefined) {\n if (autocompleteSuggestions.length === 0) {\n this.autocompleteContent?.close();\n } else {\n this.autocompleteContent.updateQuery(input);\n this.autocompleteContent.updateSuggestions(autocompleteSuggestions, 0);\n }\n } else if (autocompleteSuggestions.length !== 0) {\n this.autocompleteContent = new AutocompleteContent({\n searchQuery: input,\n referenceElement: this.searchTextInput,\n autocompleteSuggestions,\n onClose: () => {\n this.autocompleteContent = undefined;\n },\n });\n }\n }\n };\n\n private readonly setWaitState = (waitState?: boolean): void => {\n if (waitState ?? false) {\n this.searchButton.addClass('mynah-button-wait');\n } else {\n this.searchButton.removeClass('mynah-button-wait');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\nimport { LiveSearchState, MynahEventNames } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\nimport { Toggle } from '../toggle';\n\nconst LiveSearchStateColors = {\n [LiveSearchState.PAUSE]: 'var(--mynah-color-status-warning)',\n [LiveSearchState.RESUME]: 'var(--mynah-color-status-success)',\n};\n\nexport interface SearchLiveToggleProps {\n label: string;\n}\nexport class SearchLiveToggle {\n render: ExtendedHTMLElement;\n private readonly toggle: Toggle;\n private queryChangeSubscriptionId: string | undefined;\n\n constructor (props: SearchLiveToggleProps) {\n const initialValue = MynahUIDataStore.getInstance().getValue('liveSearchState');\n this.toggle = new Toggle({\n name: 'mynah-implicit-search',\n value: initialValue,\n options: [\n {\n label: new Icon({ icon: MynahIcons.PLAY }).render,\n value: LiveSearchState.RESUME,\n color: LiveSearchStateColors[LiveSearchState.RESUME],\n },\n {\n label: new Icon({ icon: MynahIcons.PAUSE }).render,\n value: LiveSearchState.PAUSE,\n color: LiveSearchStateColors[LiveSearchState.PAUSE],\n },\n ],\n onChange: value => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.LIVE_SEARCH_STATE_CHANGED, {\n liveSearchState: value as LiveSearchState.RESUME | LiveSearchState.PAUSE\n });\n },\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-live-toggle-wrapper',\n ...(initialValue === LiveSearchState.STOP ? [ 'mynah-hide-content' ] : []) ],\n children: [ { type: 'b', children: [ props.label ] }, this.toggle.render ],\n });\n\n if (initialValue !== LiveSearchState.STOP) {\n this.queryChangeSubscriptionId = MynahUIDataStore.getInstance().subscribe('query', this.flashToggle);\n }\n\n MynahUIDataStore.getInstance().subscribe('liveSearchState', (newState: LiveSearchState) => {\n if (newState !== this.toggle.getValue()) {\n if (newState === LiveSearchState.STOP) {\n this.render.addClass('mynah-hide-content');\n if (this.queryChangeSubscriptionId !== undefined) {\n MynahUIDataStore.getInstance().unsubscribe('query', this.queryChangeSubscriptionId);\n this.queryChangeSubscriptionId = undefined;\n }\n } else {\n this.render.removeClass('mynah-hide-content');\n this.toggle.setValue(newState);\n if (this.queryChangeSubscriptionId === undefined) {\n this.queryChangeSubscriptionId = MynahUIDataStore.getInstance().subscribe('query', this.flashToggle);\n }\n }\n }\n });\n }\n\n flashToggle = (): void => {\n this.render.removeClass('flash-toggle');\n if (MynahUIDataStore.getInstance().getValue('liveSearchAnimation') === true) {\n setTimeout(() => {\n this.render.addClass('flash-toggle');\n }, 100);\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport {\n CanonicalExample,\n MynahEventNames,\n Suggestion,\n SupportedCodingLanguagesExtensionToTypeMap,\n} from '../../static';\nimport { SyntaxHighlighter } from '../syntax-highlighter';\nimport { findLanguageFromSuggestion } from '../../helper/find-language';\nimport { SuggestionCardRelevanceVote } from './suggestion-card-relevance-vote';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { SuggestionCard } from './suggestion-card';\n\nexport interface SuggestionCardBodyProps {\n suggestion: Suggestion;\n}\nexport class SuggestionCardBody {\n render: ExtendedHTMLElement;\n\n constructor (props: SuggestionCardBodyProps) {\n const matchingLanguage =\n findLanguageFromSuggestion(props.suggestion) ?? SupportedCodingLanguagesExtensionToTypeMap.js;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-center' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-card-body' ],\n children: [\n ...(Array.from(\n DomBuilder.getInstance().build({\n type: 'div',\n innerHTML: props.suggestion.body,\n }).childNodes\n ).map(node => {\n const elementFromNode: HTMLElement = node as HTMLElement;\n if ((elementFromNode.tagName?.toLowerCase() === 'pre' && elementFromNode.querySelector('code') !== null) ||\n elementFromNode.tagName?.toLowerCase() === 'code'\n ) {\n return new SyntaxHighlighter({\n codeStringWithMarkup: (elementFromNode.tagName?.toLowerCase() === 'pre' ? elementFromNode.querySelector('code') : elementFromNode)?.innerHTML ?? '',\n language: matchingLanguage,\n keepHighlights: true,\n showCopyOptions: true,\n onCopiedToClipboard: (type, text) => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_COPY_TO_CLIPBOARD, { suggestionId: props.suggestion.url, type, text });\n },\n }).render;\n }\n return node;\n }) as HTMLElement[]),\n ...(props.suggestion.type === 'ApiDocsSuggestion' && props.suggestion.metadata?.canonicalExample !== undefined\n ? [ new SuggestionCard({\n suggestion: {\n title: 'Example',\n id: '',\n context: [],\n ...(props.suggestion.metadata as CanonicalExample)?.canonicalExample,\n }\n }).render ]\n : [])\n ],\n },\n ...(props.suggestion.type !== 'ApiDocsSuggestion' ? [ new SuggestionCardRelevanceVote({ suggestion: props.suggestion }).render ] : []),\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextSource, ContextTypes, SearchPayloadMatchPolicy } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { ContextPill } from '../context-item';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport interface SuggestionCardContextWrapperProps {\n contextList: string[];\n}\nexport class SuggestionCardContextWrapper {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardContextWrapperProps) {\n const mustContextItems = (MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy).must;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-context-wrapper' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-card-tags' ],\n children: props.contextList?.map((context: string) => new ContextPill({\n context: {\n context,\n source: ContextSource.SUGGESTION,\n type: mustContextItems.includes(context) ? ContextTypes.MUST : ContextTypes.SHOULD\n },\n }).render),\n },\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getTimeDiff } from '../../helper/date-time';\nimport { DomBuilder, DomBuilderObject, ExtendedHTMLElement } from '../../helper/dom';\nimport { SuggestionMetaDataUnion } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\n\nexport interface SuggestionCardHeaderProps {\n title: string;\n url: string;\n metadata?: SuggestionMetaDataUnion;\n onSuggestionTitleClick?: (e?: MouseEvent) => void;\n onSuggestionLinkCopy?: () => void;\n}\nexport class SuggestionCardHeader {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardHeaderProps) {\n const splittedUrl = props.url\n .replace(/^(http|https):\\/\\//, '')\n .split('/');\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-header', ...((props.metadata != null) ? [ 'mynah-card-header-with-source-thumbnail' ] : []) ],\n children: [\n ...((props.metadata != null)\n ? [ {\n type: 'span',\n classNames: [ 'mynah-source-thumbnail', this.getSourceMetaBlockClassName(props.metadata) ]\n } ]\n : []),\n {\n type: 'div',\n classNames: [ 'mynah-card-title-wrapper' ],\n children: [\n {\n type: 'a',\n classNames: [ 'mynah-card-title' ],\n events: {\n ...(props.onSuggestionTitleClick !== undefined && {\n click: props.onSuggestionTitleClick,\n }),\n },\n attributes: { href: props.url, target: '_blank' },\n children: [ props.title, {\n type: 'div',\n classNames: [ 'mynah-card-expand-icon' ],\n children: [ new Icon({ icon: MynahIcons.EXTERNAL }).render ],\n } ],\n },\n {\n type: 'a',\n classNames: [ 'mynah-card-url' ],\n events: {\n ...(props.onSuggestionTitleClick !== undefined && {\n click: props.onSuggestionTitleClick,\n }),\n ...(props.onSuggestionLinkCopy !== undefined && { copy: props.onSuggestionLinkCopy }),\n },\n attributes: { href: props.url, target: '_blank' },\n innerHTML: splittedUrl.map(urlPart => `<span><span>${urlPart}</span></span>`).join(''),\n },\n ...((props.metadata != null) ? [ this.getSourceMetaBlock(props.metadata) ] : []),\n ],\n },\n ],\n });\n }\n\n private readonly getSourceMetaBlockClassName = (metadataUnion?: SuggestionMetaDataUnion): string => metadataUnion !== null && metadataUnion !== undefined ? Object.keys(metadataUnion).join(' ') : '';\n\n private readonly getSourceMetaBlock = (metadataUnion?: SuggestionMetaDataUnion): DomBuilderObject => {\n const metaItems: any[] = [];\n if (metadataUnion !== null && metadataUnion !== undefined) {\n Object.keys(metadataUnion).forEach(metadataKey => {\n const metadata = metadataUnion[metadataKey];\n if (metadata.isAccepted === true) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item', 'approved-answer' ],\n children: [\n new Icon({ icon: MynahIcons.OK }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ 'Accepted answer' ]\n }\n ]\n });\n }\n\n if (metadata.lastActivityDate !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.CALENDAR }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${getTimeDiff((new Date()).getTime() - metadata.lastActivityDate, 2, ' and ')} ago` ]\n }\n ]\n });\n }\n\n if (metadata.answerCount !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.CHAT }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.answerCount.toString()} answers` ]\n }\n ]\n });\n }\n\n if (metadata.stars !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.STAR }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.stars.toString()} contributors` ]\n }\n ]\n });\n }\n\n if (metadata.forks !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.DOWN_OPEN }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.forks.toString()} forks` ]\n }\n ]\n });\n }\n\n if (metadata.score !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.THUMBS_UP }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.score.toString()}` ]\n }\n ]\n });\n }\n });\n }\n\n return {\n type: 'span',\n classNames: [ 'mynah-title-meta-block' ],\n children: metaItems\n };\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MynahEventNames, RelevancyVoteType, Suggestion } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface SuggestionCardRelevanceVoteProps {\n suggestion: Suggestion;\n}\nexport class SuggestionCardRelevanceVote {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardRelevanceVoteProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-votes-wrapper' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-vote-text' ],\n innerHTML: '<b>Is this relevant?</b>',\n },\n {\n type: 'div',\n classNames: [ 'mynah-card-vote' ],\n children: [\n {\n type: 'input',\n events: {\n change: (e: Event) => {\n this.handleVoteChange(RelevancyVoteType.UP, props.suggestion);\n },\n },\n attributes: {\n type: 'radio',\n id: `${props.suggestion.url}-vote-up`,\n name: `${props.suggestion.url}-vote`,\n value: 'up',\n },\n classNames: [ 'mynah-vote-radio', 'mynah-vote-up-radio' ],\n },\n {\n type: 'input',\n events: {\n change: (e: Event) => {\n this.handleVoteChange(RelevancyVoteType.DOWN, props.suggestion);\n },\n },\n attributes: {\n type: 'radio',\n id: `${props.suggestion.url}-vote-down`,\n name: `${props.suggestion.url}-vote`,\n value: 'down',\n },\n classNames: [ 'mynah-vote-radio', 'mynah-vote-down-radio' ],\n },\n {\n type: 'label',\n attributes: { for: `${props.suggestion.url}-vote-up` },\n classNames: [ 'mynah-vote-label', 'mynah-vote-up' ],\n children: [ new Icon({ icon: MynahIcons.THUMBS_UP }).render ],\n },\n {\n type: 'label',\n attributes: { for: `${props.suggestion.url}-vote-down` },\n classNames: [ 'mynah-vote-label', 'mynah-vote-down' ],\n children: [ new Icon({ icon: MynahIcons.THUMBS_DOWN }).render ],\n },\n {\n type: 'span',\n classNames: [ 'mynah-vote-indicator' ],\n },\n ],\n },\n ],\n });\n }\n\n private readonly handleVoteChange = (vote: RelevancyVoteType, suggestion: Suggestion): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_VOTE, { suggestion, vote });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { EngagementType, MynahEventNames, Suggestion, SuggestionMetaDataUnion } from '../../static';\nimport { SuggestionCardBody } from './suggestion-card-body';\nimport { SuggestionCardContextWrapper } from './suggestion-card-context-wrapper';\nimport { SuggestionCardHeader } from './suggestion-card-header';\n\n/**\n * We'll not consider it as an engagement if the total spend time is lower than below constant and won't trigger the event\n */\nconst ENGAGEMENT_DURATION_LIMIT = 3000;\n\n/**\n * This 6(px) and 300(ms) are coming from a behavioral research and browser reaction to input devices to count the action as a mouse movement or a click event\n */\nconst ENGAGEMENT_MIN_SELECTION_DISTANCE = 6;\nconst ENGAGEMENT_MIN_CLICK_DURATION = 300;\n\nexport interface SuggestionCardProps {suggestion: Suggestion}\nexport class SuggestionCard {\n private engagementStartTime: number = -1;\n private totalMouseDistanceTraveled: { x: number; y: number } = { x: 0, y: 0 };\n private previousMousePosition!: { x: number; y: number };\n private mouseDownInfo!: { x: number; y: number; time: number };\n private readonly suggestion: Suggestion;\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardProps) {\n this.suggestion = props.suggestion;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n attributes: {\n 'data-filter': props.suggestion.context?.map(context => `${context}, `).join(''),\n },\n classNames: [ 'mynah-card' ],\n events: {\n mouseenter: e => {\n if (this.engagementStartTime === -1) {\n this.engagementStartTime = new Date().getTime();\n this.previousMousePosition = { x: e.clientX, y: e.clientY };\n this.totalMouseDistanceTraveled = { x: 0, y: 0 };\n }\n },\n mousemove: e => {\n this.totalMouseDistanceTraveled = {\n x:\n this.totalMouseDistanceTraveled.x +\n Math.abs(e.clientX - this.previousMousePosition.x),\n y:\n this.totalMouseDistanceTraveled.y +\n Math.abs(e.clientY - this.previousMousePosition.y),\n };\n this.previousMousePosition = { x: e.clientX, y: e.clientY };\n },\n mousedown: e => {\n this.mouseDownInfo = { x: e.clientX, y: e.clientY, time: new Date().getTime() };\n },\n mouseup: e => {\n const mouseUpInfo = { x: e.clientX, y: e.clientY, time: new Date().getTime() };\n if (\n this.mouseDownInfo !== undefined && // in case of down is prevented defauly by some listener\n (Math.abs(this.mouseDownInfo.x - mouseUpInfo.x) > ENGAGEMENT_MIN_SELECTION_DISTANCE ||\n Math.abs(this.mouseDownInfo.y - mouseUpInfo.y) >\n ENGAGEMENT_MIN_SELECTION_DISTANCE) &&\n mouseUpInfo.time - this.mouseDownInfo.time > ENGAGEMENT_MIN_CLICK_DURATION\n ) {\n this.handleEngagement({\n x: Math.abs(this.mouseDownInfo.x - mouseUpInfo.x),\n y: Math.abs(this.mouseDownInfo.y - mouseUpInfo.y),\n selectedText: window?.getSelection()?.toString(),\n });\n }\n },\n mouseleave: () => {\n const engagementEndTime = new Date().getTime();\n if (this.engagementStartTime !== -1 && engagementEndTime - this.engagementStartTime > ENGAGEMENT_DURATION_LIMIT) {\n this.handleEngagement();\n } else {\n this.resetEngagement();\n }\n },\n },\n children: [\n new SuggestionCardHeader({\n title: props.suggestion.title,\n url: props.suggestion.url,\n metadata: props.suggestion.type !== 'ApiDocsSuggestion' ? props.suggestion.metadata as SuggestionMetaDataUnion : undefined,\n onSuggestionTitleClick: (e?: MouseEvent) => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_OPEN, { suggestion: props.suggestion, event: e });\n },\n onSuggestionLinkCopy: () => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_LINK_COPY, { suggestion: props.suggestion });\n },\n }).render,\n ...(props.suggestion.context?.length > 0 ? [ new SuggestionCardContextWrapper({ contextList: props.suggestion.context }).render ] : []),\n new SuggestionCardBody({ suggestion: props.suggestion }).render,\n ],\n });\n }\n\n private readonly resetEngagement = (): void => {\n this.engagementStartTime = -1;\n this.totalMouseDistanceTraveled = { x: 0, y: 0 };\n this.previousMousePosition = { x: 0, y: 0 };\n this.mouseDownInfo = { x: 0, y: 0, time: -1 };\n };\n\n private readonly handleEngagement = (interactionDistanceTraveled?: {\n x: number;\n y: number;\n selectedText?: string;\n }): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_ENGAGEMENT, {\n suggestion: this.suggestion,\n engagementDurationTillTrigger: new Date().getTime() - this.engagementStartTime,\n scrollDistanceToEngage:\n this.render.offsetTop - this.previousMousePosition.y > 0\n ? this.render.offsetTop - this.previousMousePosition.y\n : 0,\n engagementType:\n interactionDistanceTraveled !== undefined ? EngagementType.INTERACTION : EngagementType.TIME,\n totalMouseDistanceTraveled: this.totalMouseDistanceTraveled,\n selectionDistanceTraveled:\n Boolean(interactionDistanceTraveled?.x ?? 0) && Boolean(interactionDistanceTraveled?.y)\n ? interactionDistanceTraveled\n : undefined,\n });\n this.resetEngagement();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport * as Prism from 'prismjs';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-python';\nimport 'prismjs/components/prism-java';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers.js';\nimport {\n OnCopiedToClipboardFunction,\n SupportedCodingLanguagesExtensionToTypeMap,\n SupportedCodingLanguagesType,\n} from '../static';\nimport { Button } from './button';\nimport { Notification } from './notification/notification';\nimport { Icon, MynahIcons } from './icon';\nimport { cancelEvent } from '../helper/events';\n\nconst DEFAULT_LANG = SupportedCodingLanguagesExtensionToTypeMap.js;\n\n// they'll be used to replaced within the code, so making them unique is a must\nexport const highlighters = {\n start: {\n markup: '<span class=\"amzn-mynah-search-result-highlight\">',\n textReplacement: '__mynahhighlighterstart__',\n },\n end: {\n markup: '</span>',\n textReplacement: '__mynahhighlighterend__',\n },\n};\n\nexport interface SyntaxHighlighterProps {\n codeStringWithMarkup: string;\n language?: SupportedCodingLanguagesType;\n keepHighlights?: boolean;\n showLineNumbers?: boolean;\n startingLineNumber?: number;\n showCopyOptions?: boolean;\n onCopiedToClipboard?: OnCopiedToClipboardFunction;\n}\nexport class SyntaxHighlighter {\n private readonly code: ExtendedHTMLElement;\n private readonly onCopiedToClipboard?: OnCopiedToClipboardFunction;\n render: ExtendedHTMLElement;\n\n constructor (props: SyntaxHighlighterProps) {\n this.onCopiedToClipboard = props.onCopiedToClipboard;\n let codeMarkup = props.codeStringWithMarkup;\n // Replacing the markups with plain text replacement blocks\n if (props.keepHighlights === true) {\n codeMarkup = codeMarkup\n .replace(new RegExp(highlighters.start.markup, 'g'), highlighters.start.textReplacement)\n .replace(new RegExp(highlighters.end.markup, 'g'), highlighters.end.textReplacement);\n }\n // to get a clear plain text from html code string creating an element and getting innerText of it\n codeMarkup = DomBuilder.getInstance().build({ type: 'div', innerHTML: codeMarkup }).innerText;\n\n // Converting to prism styled markup\n let styledCode = Prism.highlight(\n `${codeMarkup}`,\n Prism.languages[props.language ?? DEFAULT_LANG],\n props.language ?? DEFAULT_LANG\n );\n\n // replacing back the plain text to markup for highlighting code\n if (props.keepHighlights === true) {\n styledCode = styledCode\n .replace(new RegExp(highlighters.start.textReplacement, 'g'), highlighters.start.markup)\n .replace(new RegExp(highlighters.end.textReplacement, 'g'), highlighters.end.markup);\n }\n\n this.code = DomBuilder.getInstance().build({\n type: 'code',\n innerHTML: styledCode,\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-syntax-highlighter' ],\n children: [\n ...(props.showCopyOptions === true\n ? [\n {\n type: 'div',\n classNames: [ 'mynah-syntax-highlighter-copy-buttons' ],\n children: [\n new Button({\n icon: new Icon({ icon: MynahIcons.COPY }).render,\n attributes: { title: 'Copy whole block' },\n primary: false,\n onClick: e => {\n cancelEvent(e);\n this.copyToClipboard(\n this.code.innerText,\n 'Whole code block is copied to clipboard',\n 'block'\n );\n },\n }).render,\n new Button({\n icon: new Icon({ icon: MynahIcons.TEXT_SELECT }).render,\n attributes: { title: 'Copy selected text' },\n primary: false,\n onClick: e => {\n cancelEvent(e);\n const currentRange = window.getSelection() !== null ? window.getSelection()?.getRangeAt(0) ?? null : null;\n let textToSendClipboard: string | undefined;\n if (currentRange?.commonAncestorContainer?.isSameNode(this.code) ?? false) {\n textToSendClipboard = window.getSelection()?.toString();\n }\n this.copyToClipboard(\n textToSendClipboard ?? this.code.innerText,\n `${\n textToSendClipboard !== undefined\n ? 'Your selection'\n : 'Whole code block'\n } is copied to clipboard.`,\n textToSendClipboard !== undefined ? 'selection' : 'block'\n );\n },\n additionalEvents: { mousedown: cancelEvent },\n }).render,\n ],\n },\n ]\n : []),\n {\n type: 'pre',\n classNames: [\n `language-${props.language ?? DEFAULT_LANG}`,\n ...(props.showLineNumbers === true ? [ 'line-numbers' ] : []),\n ],\n children: [\n this.code,\n ...(props.showLineNumbers === true\n ? [\n {\n type: 'span',\n classNames: [ 'line-numbers-rows' ],\n children: styledCode.split(/\\n/).map((n: string, i: number) => ({\n type: 'span',\n innerHTML: String(i + (props.startingLineNumber ?? 1)),\n })),\n },\n ]\n : []),\n ],\n },\n ],\n });\n }\n\n private readonly copyToClipboard = (\n textToSendClipboard: string,\n notificationText?: string,\n type?: 'selection' | 'block'\n ): void => {\n navigator.clipboard\n .writeText(textToSendClipboard)\n .then(() => {\n if (this.onCopiedToClipboard !== undefined) {\n this.onCopiedToClipboard(type, textToSendClipboard);\n }\n if (notificationText !== undefined) {\n // eslint-disable no-new\n new Notification({\n content: notificationText,\n title: 'Copied to clipbard',\n duration: 2000,\n }).notify();\n }\n })\n .catch(e => {\n //\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// eslint-disable @typescript-eslint/restrict-template-expressions\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\n\nexport interface ToggleOption {\n label?: ExtendedHTMLElement | string | HTMLElement;\n color?: string;\n disabled?: boolean;\n value: string;\n}\nexport interface ToggleProps {\n options: ToggleOption[];\n type?: 'switch' | 'tabs';\n value?: string | null;\n name: string;\n disabled?: boolean;\n onChange?: (selectedValue: string) => void;\n}\nexport class Toggle {\n render: ExtendedHTMLElement;\n private readonly props: ToggleProps;\n private currentValue?: string;\n private readonly relocateTransitioner: ExtendedHTMLElement;\n\n constructor (props: ToggleProps) {\n this.props = { type: 'switch', ...props };\n this.relocateTransitioner = DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-toggle-indicator-transitioner' ],\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-toggle-container', `mynah-toggle-type-${this.props.type as string}` ],\n attributes: { disabled: props.disabled === true ? 'disabled' : '' },\n children: this.getChildren(props.value),\n });\n\n if (typeof props.value === 'string') {\n this.setRelocatePosition(props.value);\n }\n }\n\n private readonly getChildren = (value?: string | null): any[] => [\n ...this.props.options.map(option => {\n if (option.value === value && option.color !== undefined) {\n this.relocateTransitioner.style.backgroundColor = option.color;\n }\n return DomBuilder.getInstance().build({\n type: 'span',\n attributes: { key: `${this.props.name}-${option.value}` },\n children: [\n {\n type: 'input',\n classNames: [ 'mynah-toggle-option' ],\n attributes: {\n type: 'radio',\n id: `${this.props.name}-${option.value}`,\n name: this.props.name,\n ...(value === option.value ? { checked: 'checked' } : {}),\n ...(option.disabled === true ? { disabled: 'disabled' } : {}),\n },\n events: {\n change: () => {\n this.updateSelectionRender(option.value, option.color);\n },\n },\n },\n {\n type: 'label',\n classNames: [ 'mynah-toggle-option-label' ],\n attributes: {\n for: `${this.props.name}-${option.value}`,\n ...(option.color !== undefined ? { style: `background-color:${option.color}` } : {}),\n },\n children: [ option.label ?? '' ],\n },\n ],\n });\n }),\n this.relocateTransitioner,\n ];\n\n private readonly setRelocatePosition = (value: string, color?: string): void => {\n this.currentValue = value;\n setTimeout(() => {\n const renderRect = this.render.getBoundingClientRect();\n const optionRender = this.render\n .querySelector(`label[for=\"${this.props.name}-${value}\"]`) as HTMLElement;\n const rect = optionRender?.getBoundingClientRect() ?? {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n };\n\n if (this.props.type === 'switch') {\n this.relocateTransitioner.style.top = `${rect.top - renderRect.top}px`;\n this.relocateTransitioner.style.height = `${rect.height}px`;\n } else if (this.props.type === 'tabs') {\n this.relocateTransitioner.style.top = `${rect.height + rect.top - renderRect.top}px`;\n }\n this.relocateTransitioner.style.left = `${rect.left - renderRect.left}px`;\n this.relocateTransitioner.style.width = `${rect.width}px`;\n if (color !== undefined) {\n this.relocateTransitioner.style.backgroundColor = color;\n if (optionRender !== undefined) {\n optionRender.style.color = color;\n }\n }\n }, 5);\n };\n\n private readonly updateSelectionRender = (value: string, color?: string): void => {\n this.relocateTransitioner.removeClass('relocate');\n this.setRelocatePosition(value, color);\n\n setTimeout(() => {\n this.relocateTransitioner.addClass('relocate');\n if (this.props.onChange !== undefined) {\n this.props.onChange(value);\n }\n }, 200);\n };\n\n setValue = (value: string): void => {\n // Since the html elements are not interactable when there is no user action\n // such as a real physical input event, we need to redraw the elements\n this.render.update({ children: this.getChildren(value) });\n this.setRelocatePosition(value);\n };\n\n getValue = (): string | undefined => this.currentValue;\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder } from './dom';\n\nconst configProcessors: Record<string, (sourceString: string) => any> = {\n language: (sourceString: string) => decodeURI(sourceString),\n};\nexport class MynahConfig {\n private config: Record<string, any> = {\n 'logo-url': '',\n language: 'en',\n };\n\n constructor () {\n const configElement = DomBuilder.getInstance().root.querySelector('mynah-config');\n if (configElement !== null) {\n Object.keys(this.config).forEach((configItem: string) => {\n if (configElement.getAttribute(configItem) !== undefined) {\n this.config[configItem] = configProcessors[configItem] !== undefined\n ? configProcessors[configItem](\n configElement.getAttribute(configItem) ?? this.config[configItem]\n )\n : configElement.getAttribute(configItem) ?? this.config[configItem];\n }\n });\n }\n }\n\n getConfig = (configName: string): any => this.config[configName] ?? '';\n\n setConfig = (configName: string, configValue: string): void => {\n this.config[configName] = configValue;\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const getTimeDiff = (differenceInMs: number, show?: {\n years?: boolean;\n months?: boolean;\n weeks?: boolean;\n days?: boolean;\n hours?: boolean;\n minutes?: boolean;\n} | 1 | 2 | 3 | 4 | 5 | 6, separator?: string): string => {\n // get total seconds for the difference\n let delta = Math.abs(differenceInMs) / 1000;\n\n // calculate (and subtract) whole years\n const years = Math.floor(delta / (86_400 * 30 * 12));\n delta -= years * (86_400 * 30 * 12);\n\n // calculate (and subtract) whole months\n const months = Math.floor(delta / (86_400 * 30));\n delta -= months * (86_400 * 30);\n\n // calculate (and subtract) whole weeks\n const weeks = Math.floor(delta / (86_400 * 7));\n delta -= weeks * (86_400 * 7);\n\n // calculate (and subtract) whole days\n const days = Math.floor(delta / 86_400);\n delta -= days * 86_400;\n\n // calculate (and subtract) whole hours\n const hours = Math.floor(delta / 3_600) % 24;\n delta -= hours * 3_600;\n\n // calculate (and subtract) whole minutes\n const minutes = Math.floor(delta / 60) % 60;\n delta -= minutes * 60;\n\n const combined = [];\n if (years !== 0 && (show === undefined || typeof show !== 'object' || show.years !== false)) {\n combined.push(`${years > 1 ? years : 'a'} year${years > 1 ? 's' : ''}`);\n }\n if (months !== 0 && (show === undefined || typeof show !== 'object' || show.months !== false)) {\n combined.push(`${months > 1 ? months : 'a'} month${months > 1 ? 's' : ''}`);\n }\n if (weeks !== 0 && (show === undefined || typeof show !== 'object' || show.weeks !== false)) {\n combined.push(`${weeks > 1 ? weeks : 'a'} week${weeks > 1 ? 's' : ''}`);\n }\n if (days !== 0 && (show === undefined || typeof show !== 'object' || show.days !== false)) {\n combined.push(`${days > 1 ? days : 'a'} day${days > 1 ? 's' : ''}`);\n }\n if (hours !== 0 && (show === undefined || typeof show !== 'object' || show.hours !== false)) {\n combined.push(`${hours > 1 ? hours : 'an'} hour${hours > 1 ? 's' : ''}`);\n }\n if (minutes !== 0 && (show === undefined || typeof show !== 'object' || show.minutes !== false)) {\n combined.push(`${minutes > 1 ? minutes : 'a'} minute${minutes > 1 ? 's' : ''}`);\n }\n\n if (years + months + weeks + days + hours + minutes === 0) {\n return 'a minute';\n }\n\n if (show !== undefined && typeof show === 'number') {\n combined.splice(show, combined.length);\n }\n return combined.join(separator ?? ' ');\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { cancelEvent } from './events';\n\n/* eslint-disable @typescript-eslint/method-signature-style */\n/* eslint-disable @typescript-eslint/consistent-type-assertions */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nexport const DS: typeof document.querySelectorAll = document.querySelectorAll.bind(document);\n\nexport interface DomBuilderObject {\n type: string;\n attributes?: Record<string, string> | undefined;\n classNames?: string[] | undefined;\n events?: Record<string, (event?: any) => any> | undefined;\n children?: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement> | undefined;\n innerHTML?: string | undefined;\n persistent?: boolean | undefined;\n}\n\nexport interface DomBuilderObjectFilled {\n attributes?: Record<string, string | undefined>;\n classNames?: string[];\n events?: Record<string, (event?: any) => any>;\n children?: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>;\n innerHTML?: string | undefined;\n persistent?: boolean;\n}\n\nconst EmptyDomBuilderObject: DomBuilderObject = {\n type: 'div',\n attributes: {},\n classNames: [],\n events: {},\n children: [],\n innerHTML: undefined,\n persistent: false,\n};\n\nexport interface ExtendedHTMLElement extends HTMLInputElement {\n addClass(className: string): ExtendedHTMLElement;\n removeClass(className: string): ExtendedHTMLElement;\n toggleClass(className: string): ExtendedHTMLElement;\n hasClass(className: string): boolean;\n insertChild(\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',\n child:\n | string\n | DomBuilderObject\n | HTMLElement\n | ExtendedHTMLElement\n | Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>\n ): ExtendedHTMLElement;\n clear(removePersistent?: boolean): ExtendedHTMLElement;\n builderObject: DomBuilderObject;\n update(builderObject: DomBuilderObjectFilled): ExtendedHTMLElement;\n}\n\nexport class DomBuilder {\n private static instance: DomBuilder;\n root: ExtendedHTMLElement;\n private portals: Record<string, ExtendedHTMLElement> = {};\n\n private constructor (rootSelector: string) {\n this.root = DS(rootSelector)[0] as ExtendedHTMLElement;\n this.extendDomFunctionality(this.root);\n }\n\n public static getInstance (rootSelector?: string): DomBuilder {\n if (!DomBuilder.instance) {\n DomBuilder.instance = new DomBuilder(rootSelector !== undefined ? rootSelector : 'body');\n }\n\n return DomBuilder.instance;\n }\n\n addClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n if (className !== '') {\n this.classList.add(className);\n // eslint-disable-next-line @typescript-eslint/prefer-includes\n if (this.builderObject.classNames?.indexOf(className) === -1) {\n this.builderObject.classNames = [ ...this.builderObject.classNames, className ];\n }\n }\n return this;\n };\n\n removeClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n this.classList.remove(className);\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (this.builderObject.classNames !== undefined && this.builderObject.classNames.includes(className)) {\n this.builderObject.classNames.splice(this.builderObject.classNames.indexOf(className), 1);\n }\n return this;\n };\n\n toggleClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n if (this.classList.contains(className)) {\n this.removeClass(className);\n } else {\n this.addClass(className);\n }\n return this;\n };\n\n hasClass = function (this: ExtendedHTMLElement, className: string): boolean {\n return this.classList.contains(className);\n };\n\n insertChild = function (\n this: ExtendedHTMLElement,\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',\n child: string | HTMLElement | ExtendedHTMLElement | Array<string | HTMLElement | ExtendedHTMLElement>\n ): ExtendedHTMLElement {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (child) {\n if (child instanceof Array) {\n child.forEach(childItem => {\n if (childItem instanceof Element) {\n this.insertAdjacentElement(position, childItem);\n } else if (typeof childItem === 'string') {\n this.insertAdjacentText(position, childItem);\n }\n });\n } else {\n if (child instanceof Element) {\n this.insertAdjacentElement(position, child);\n } else if (typeof child === 'string') {\n this.insertAdjacentText(position, child);\n }\n }\n }\n return this;\n };\n\n clearChildren = function (this: ExtendedHTMLElement, removePersistent: boolean): ExtendedHTMLElement {\n Array.from(this.children).forEach((child: ExtendedHTMLElement | Element) => {\n if (\n removePersistent ||\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n !(child as ExtendedHTMLElement).builderObject ||\n (child as ExtendedHTMLElement).builderObject.persistent !== true\n ) {\n child.remove();\n }\n });\n return this;\n };\n\n extendDomFunctionality = function (this: DomBuilder, domElement: HTMLElement): ExtendedHTMLElement {\n const extendedElement: ExtendedHTMLElement = domElement as ExtendedHTMLElement;\n extendedElement.addClass = this.addClass.bind(extendedElement);\n extendedElement.removeClass = this.removeClass.bind(extendedElement);\n extendedElement.toggleClass = this.toggleClass.bind(extendedElement);\n extendedElement.hasClass = this.hasClass.bind(extendedElement);\n extendedElement.insertChild = this.insertChild.bind(extendedElement);\n extendedElement.clear = this.clearChildren.bind(extendedElement);\n return extendedElement;\n };\n\n build = (domBuilderObject: DomBuilderObject): ExtendedHTMLElement => {\n const readyToBuildObject: DomBuilderObject = { ...EmptyDomBuilderObject, ...domBuilderObject };\n const buildedDom = document.createElement(readyToBuildObject.type);\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n buildedDom.classList.add(...(readyToBuildObject.classNames?.filter(className => className !== '') || []));\n\n Object.keys(readyToBuildObject.events ?? {}).forEach((eventName: string) =>\n buildedDom.addEventListener(\n eventName,\n readyToBuildObject.events ? readyToBuildObject.events[eventName] : cancelEvent\n )\n );\n\n Object.keys(readyToBuildObject.attributes ?? {}).forEach(attributeName =>\n buildedDom.setAttribute(\n attributeName,\n readyToBuildObject.attributes !== undefined ? readyToBuildObject.attributes[attributeName] : ''\n )\n );\n\n if (typeof readyToBuildObject.innerHTML === 'string') {\n buildedDom.innerHTML = readyToBuildObject.innerHTML;\n } else if (readyToBuildObject.children !== undefined && readyToBuildObject.children.length > 0) {\n this.insertChild.apply(buildedDom as ExtendedHTMLElement, [\n 'beforeend',\n [\n ...(readyToBuildObject.children as any[]).map(\n (child: string | ExtendedHTMLElement | HTMLElement | DomBuilderObject) => {\n if (typeof child === 'string' || child instanceof HTMLElement) {\n return child;\n }\n return this.build(child);\n }\n ),\n ],\n ]);\n }\n\n ;(buildedDom as ExtendedHTMLElement).builderObject = readyToBuildObject\n ;(buildedDom as ExtendedHTMLElement).update = (builderObject: DomBuilderObjectFilled): ExtendedHTMLElement => {\n return this.update(buildedDom as ExtendedHTMLElement, builderObject);\n };\n this.extendDomFunctionality(buildedDom);\n return buildedDom as ExtendedHTMLElement;\n };\n\n update = function (\n domToUpdate: ExtendedHTMLElement,\n domBuilderObject: DomBuilderObjectFilled\n ): ExtendedHTMLElement {\n if (domToUpdate.builderObject) {\n if (domBuilderObject.classNames !== undefined) {\n domToUpdate.classList.remove(...(domToUpdate.builderObject.classNames as string[]));\n domToUpdate.classList.add(...domBuilderObject.classNames.filter(className => className !== ''));\n }\n\n Object.keys(domBuilderObject.events ?? {}).forEach(eventName => {\n if (domToUpdate.builderObject.events !== undefined && domToUpdate.builderObject.events[eventName]) {\n domToUpdate.removeEventListener(eventName, domToUpdate.builderObject.events[eventName]);\n }\n if (domBuilderObject.events !== undefined && domBuilderObject.events[eventName] !== undefined) {\n domToUpdate.addEventListener(eventName, domBuilderObject.events[eventName]);\n }\n });\n\n Object.keys(domBuilderObject.attributes ?? {}).forEach(attributeName => {\n if (\n domBuilderObject.attributes !== undefined &&\n domBuilderObject.attributes[attributeName] === undefined\n ) {\n domToUpdate.removeAttribute(attributeName);\n } else if (domBuilderObject.attributes !== undefined) {\n domToUpdate.setAttribute(attributeName, domBuilderObject.attributes[attributeName] as string);\n }\n });\n\n if (typeof domBuilderObject.innerHTML === 'string') {\n domToUpdate.innerHTML = domBuilderObject.innerHTML;\n } else if (domBuilderObject.children !== undefined && domBuilderObject.children.length > 0) {\n domToUpdate.clear();\n domToUpdate.insertChild('beforeend', domBuilderObject.children);\n }\n\n domToUpdate.builderObject = { ...EmptyDomBuilderObject, ...domBuilderObject } as DomBuilderObject;\n } else {\n console.warn('element was not created with dom builder');\n }\n return domToUpdate;\n };\n\n createPortal = (\n portalName: string,\n builderObject: DomBuilderObject,\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend'\n ): ExtendedHTMLElement => {\n const portalDom = this.build(builderObject);\n this.root.insertChild(position || 'beforeend', portalDom);\n this.portals[portalName] = portalDom;\n return portalDom;\n };\n\n getPortal = (portalName: string): ExtendedHTMLElement => this.portals[portalName];\n removePortal = (portalName: string): void => this.portals[portalName].remove();\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport { MynahEventNames } from '../static';\nimport { generateUID } from './guid';\n\nexport const cancelEvent = (event: Event): boolean => {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return false;\n};\n\nexport class MynahUIGlobalEvents {\n private static instance: MynahUIGlobalEvents;\n private readonly listeners: Record<MynahEventNames, Record<string, (value?: any) => void>>;\n\n private constructor () {\n this.listeners = { ...this.listeners };\n }\n\n public static getInstance = (): MynahUIGlobalEvents => {\n if (MynahUIGlobalEvents.instance === undefined) {\n MynahUIGlobalEvents.instance = new MynahUIGlobalEvents();\n }\n\n return MynahUIGlobalEvents.instance;\n };\n\n /**\n * Subscribe to value changes of a specific item in data store\n * @param eventKey One of the keys in MynahUIDataModel\n * @param handler function will be called with optional data field\n * @returns listenerId which will be necessary to removeListener\n */\n public addListener = (eventKey: MynahEventNames, handler: (data?: any) => void): string => {\n const listenerId: string = generateUID();\n if (this.listeners[eventKey] === undefined) {\n this.listeners[eventKey] = {};\n }\n this.listeners[eventKey][listenerId] = handler;\n return listenerId;\n };\n\n /**\n * Unsubscribe from changes of a specific item in data store\n * @param eventKey One of the keys in MynahUIDataModel\n * @param listenerId listenerId which is returned from addListener function\n */\n public removeListener = (eventKey: MynahEventNames, listenerId: string): void => {\n if (this.listeners[eventKey]?.[listenerId] !== undefined) {\n delete this.listeners[eventKey][listenerId];\n }\n };\n\n /**\n * Updates the store and informs the subscribers.\n * @param data A full or partial set of store data model with values.\n */\n public dispatch = (eventKey: MynahEventNames, data?: any): void => {\n if (this.listeners[eventKey] !== undefined) {\n Object.keys(this.listeners[eventKey]).forEach((listenerId: string) => {\n this.listeners[eventKey][listenerId](data);\n });\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Suggestion, SupportedCodingLanguages, SupportedCodingLanguagesExtensionToTypeMap } from '../static';\n\n/**\n * Finds the coding language if there is a match witnin the supported languages from context or body or from the title\n * @param suggestion SuggestionType\n * @returns string | undefined\n */\nexport const findLanguageFromSuggestion = (suggestion: Suggestion): string | undefined => {\n let res = suggestion.context?.reduce((res: string | undefined, ctx: string): string | undefined => {\n if (res === undefined && SupportedCodingLanguages.includes(ctx)) {\n return ctx;\n }\n return res;\n }, undefined);\n\n if (res === undefined) {\n SupportedCodingLanguages.forEach(codingLang => {\n if (\n suggestion.title.match(new RegExp(codingLang, 'gi')) !== null ||\n suggestion.body.match(new RegExp(codingLang, 'gi')) !== null\n ) {\n res = codingLang;\n }\n });\n }\n\n if (res === undefined) {\n res = getLanguageFromFileName(suggestion.title);\n }\n return res;\n};\n\ntype SupportedFileExtension = keyof typeof SupportedCodingLanguagesExtensionToTypeMap;\n/**\n * Finds the coding language if there is a match within the supported languages from the given file name\n * @param fileName string\n * @returns string | undefined\n */\nexport const getLanguageFromFileName = (fileName: string): string | undefined => {\n const fileExtension: SupportedFileExtension = fileName.split('.').pop() as SupportedFileExtension;\n return SupportedCodingLanguagesExtensionToTypeMap[fileExtension] ?? undefined;\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const generateUID = (): string => {\n const firstPart: number = (Math.random() * 46656) | 0;\n const secondPart: number = (Math.random() * 46656) | 0;\n return `000${firstPart.toString(36)}`.slice(-3) + `000${secondPart.toString(36)}`.slice(-3);\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SearchPayload } from '../static';\n\nexport interface PayloadTransformRule {\n // keys list in order to access to edit the desired attribute in deeper levels\n targetRoute: string[];\n method: 'add' | 'remove' | 'set';\n value?: any;\n values?: any[];\n}\n\nexport const transformPayloadData = (rules: PayloadTransformRule[], payloadData: SearchPayload): SearchPayload => {\n const processedRules: PayloadTransformRule[] = [];\n rules.forEach(rule => {\n if (rule.values !== undefined) {\n processedRules.push(...rule.values.map(value => ({ targetRoute: rule.targetRoute, method: rule.method, value })));\n } else {\n processedRules.push(rule);\n }\n });\n processedRules.forEach(rule => {\n let targetNode: any = payloadData;\n rule.targetRoute.forEach(targetRouteKey => (targetNode = targetNode[targetRouteKey]));\n\n switch (rule.method) {\n case 'add':\n if (typeof targetNode.splice !== 'undefined') {\n targetNode.push(rule.value);\n }\n break;\n case 'remove':\n if (typeof targetNode.splice !== 'undefined' && (targetNode as any[]).includes(rule.value)) {\n (targetNode as any[]).splice((targetNode as any[]).indexOf(rule.value), 1);\n }\n break;\n case 'set':\n targetNode = rule.value;\n }\n });\n return payloadData;\n};\n\nexport const validateRulesOnPayloadData = (rules: PayloadTransformRule[], payloadData: SearchPayload): boolean => {\n let validatedRules = 0;\n const processedRules: PayloadTransformRule[] = [];\n rules.forEach(rule => {\n if (rule.values !== undefined) {\n processedRules.push(...rule.values.map(value => ({ targetRoute: rule.targetRoute, method: rule.method, value })));\n } else {\n processedRules.push(rule);\n }\n });\n processedRules.forEach(rule => {\n let targetNode: any = payloadData;\n rule.targetRoute.forEach(targetRouteKey => (targetNode = targetNode[targetRouteKey]));\n\n switch (rule.method) {\n case 'add':\n if (typeof targetNode.splice !== 'undefined' && targetNode.find((elm: any) => elm === rule.value) !== undefined) {\n validatedRules++;\n } else {\n return false;\n }\n break;\n case 'remove':\n if (typeof targetNode.splice !== 'undefined' && targetNode.find((elm: any) => elm === rule.value) === undefined) {\n validatedRules++;\n } else {\n return false;\n }\n break;\n case 'set':\n if (targetNode === rule.value) {\n validatedRules++;\n } else {\n return false;\n }\n }\n });\n return validatedRules === rules.length;\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport { LiveSearchState, MynahEventNames, MynahUIDataModel, NotificationType } from '../static';\nimport { MynahUIGlobalEvents } from './events';\nimport { generateUID } from './guid';\n\nconst PrimitiveObjectTypes = [ 'string', 'number', 'boolean' ];\nexport class EmptyMynahUIDataModel {\n data: Required<MynahUIDataModel>;\n constructor (defaults?: MynahUIDataModel | null) {\n this.data = {\n loading: false,\n liveSearchState: LiveSearchState.STOP,\n query: '',\n code: '',\n invisibleContextItems: [],\n selectedNavigationTab: null,\n navigationTabs: [],\n autoCompleteSuggestions: [],\n searchHistory: [],\n showingHistoricalSearch: false,\n liveSearchAnimation: true,\n codeSelection: {\n selectedCode: '',\n file: {\n name: '',\n range: {\n start: { row: '0', column: '0' },\n end: { row: '0', column: '0' }\n }\n }\n },\n codeQuery: { simpleNames: [], usedFullyQualifiedNames: [] },\n matchPolicy: { must: [], mustNot: [], should: [] },\n userAddedContext: [],\n suggestions: [],\n headerInfo: {\n content: '',\n type: NotificationType.INFO\n },\n ...defaults\n };\n }\n}\nexport class MynahUIDataStore {\n private static instance: MynahUIDataStore;\n private readonly subsciptions: Record<keyof MynahUIDataModel, Record<string, (newValue?: any, oldValue?: any) => void>>;\n private store: Required<MynahUIDataModel> = (new EmptyMynahUIDataModel()).data;\n private defaults: MynahUIDataModel | null = null;\n\n private constructor (initialData?: MynahUIDataModel) {\n this.store = Object.assign(this.store, initialData);\n this.subsciptions = Object.create({});\n (Object.keys(this.store) as Array<keyof MynahUIDataModel>).forEach((storeKey) => {\n Object.assign(this.subsciptions, { [storeKey]: {} });\n });\n }\n\n public static getInstance = (initialData?: MynahUIDataModel): MynahUIDataStore => {\n if (MynahUIDataStore.instance === undefined) {\n MynahUIDataStore.instance = new MynahUIDataStore(initialData);\n }\n\n return MynahUIDataStore.instance;\n };\n\n /**\n * Sets the defaults to use while clearing the store\n * @param defaults partial set of MynahUIDataModel for defaults\n */\n public setDefaults = (defaults: MynahUIDataModel | null): void => {\n this.defaults = defaults;\n };\n\n /**\n * Get the defaults to use while generating an empty store data\n */\n public getDefaults = (): MynahUIDataModel | null => this.defaults;\n\n /**\n * Subscribe to value changes of a specific item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @param handler function will be called when value of the given key is updated in store with new and old values\n * @returns subscriptionId which needed to unsubscribe\n */\n public subscribe = (storeKey: keyof MynahUIDataModel, handler: (newValue: any, oldValue?: any) => void): string => {\n const subscriptionId: string = generateUID();\n this.subsciptions[storeKey][subscriptionId] = handler;\n return subscriptionId;\n };\n\n /**\n * Unsubscribe from changes of a specific item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @param subscriptionId subsciptionId which is returned from subscribe function\n */\n public unsubscribe = (storeKey: keyof MynahUIDataModel, subscriptionId: string): void => {\n if (this.subsciptions[storeKey]?.[subscriptionId] !== undefined) {\n delete this.subsciptions[storeKey][subscriptionId];\n }\n };\n\n /**\n * Returns current value of an item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @returns value of the given key in data store\n */\n public getValue = (storeKey: keyof MynahUIDataModel): any => structuredClone(this.store[storeKey]);\n\n /**\n * Returns current value of an item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @returns value of the given key in data store\n */\n public getDefaultValue = (storeKey: keyof MynahUIDataModel): any => (new EmptyMynahUIDataModel(this.defaults)).data[storeKey];\n\n /**\n * Updates the store and informs the subscribers.\n * @param data A full or partial set of store data model with values.\n */\n public updateStore = (data: MynahUIDataModel, skipSubscribers?: boolean): void => {\n if (skipSubscribers !== true) {\n (Object.keys(data) as Array<keyof MynahUIDataModel>).forEach(storeKey => {\n Object.keys(this.subsciptions[storeKey]).forEach((subscriptionId: string) => {\n if (!PrimitiveObjectTypes.includes(typeof data[storeKey]) || data[storeKey] !== this.store[storeKey]) {\n this.subsciptions[storeKey][subscriptionId](data[storeKey], this.store[storeKey]);\n }\n });\n });\n }\n this.store = Object.assign(structuredClone(this.store), data);\n };\n\n /**\n * Clears store data and informs all the subscribers\n */\n public resetStore = (): void => {\n this.updateStore((new EmptyMynahUIDataModel(structuredClone(this.defaults))).data);\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.RESET_STORE);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MynahIcons } from './components/icon';\nimport { ToggleOption } from './components/toggle';\n\nexport interface MynahUIDataModel {\n loading?: boolean;\n liveSearchState?: LiveSearchState;\n liveSearchAnimation?: boolean;\n query?: string;\n code?: string;\n codeSelection?: SearchPayloadCodeSelection;\n codeQuery?: SearchPayloadCodeQuery;\n matchPolicy?: SearchPayloadMatchPolicy;\n invisibleContextItems?: string[];\n selectedNavigationTab?: string | null;\n navigationTabs?: ToggleOption[];\n userAddedContext?: string[];\n suggestions?: Suggestion[];\n autoCompleteSuggestions?: AutocompleteItem[];\n searchHistory?: SearchHistoryItem[];\n showingHistoricalSearch?: boolean;\n headerInfo?: {\n content: string;\n type?: NotificationType;\n };\n}\n\nexport enum MynahEventNames {\n RESET_STORE = 'resetStore',\n CONTEXT_VISIBILITY_CHANGE = 'contextVisibilityChange',\n AUTOCOMPLETE_SUGGESTION_CLICK = 'autoCompleteSuggestionClick',\n SEARCH = 'search',\n INPUT_QUERY_CHANGE = 'inputQueryChange',\n REQUEST_SEARCH_HISTORY = 'requestSearchHistory',\n SEARCH_HISTORY_ITEM_CLICK = 'searchHistoryItemClick',\n LIVE_SEARCH_STATE_CHANGED = 'liveSearchStateChanged',\n FEEDBACK_SET = 'feedbackSet',\n CODE_DETAILS_CLICK = 'codeDetailsClick',\n SUGGESTION_VOTE = 'suggestionVote',\n SUGGESTION_OPEN = 'suggestionOpen',\n SUGGESTION_LINK_COPY = 'suggestionLinkCopy',\n SUGGESTION_ENGAGEMENT = 'suggestionEngagement',\n SUGGESTION_COPY_TO_CLIPBOARD = 'suggestionCopyToClipboard',\n};\nexport const MynahPortalNames = {\n WRAPPER: 'wrapper',\n OVERLAY: 'overlay',\n FEEDBACK_FORM: 'feedbackForm',\n};\nexport interface SearchPayloadMatchPolicy {\n must: string[];\n should: string[];\n mustNot: string[];\n}\nexport interface SearchPayloadCodeSelection {\n selectedCode: string;\n file?: {\n range: {\n start: { row: string; column: string };\n end: { row: string; column: string };\n };\n name: string;\n };\n}\nexport interface SearchPayloadCodeQuery {\n simpleNames: string[];\n usedFullyQualifiedNames: string[];\n}\nexport interface SearchPayload {\n query: string;\n matchPolicy: SearchPayloadMatchPolicy;\n codeSelection: SearchPayloadCodeSelection;\n codeQuery?: SearchPayloadCodeQuery;\n code?: string;\n selectedTab?: string;\n}\nexport interface SuggestionMetaData {\n stars?: number; // repo stars\n forks?: number; // repo forks\n answerCount?: number; // total answers if it is a question\n isOfficialDoc?: boolean; // is suggestion comes from an official api doc\n isAccepted?: boolean; // is accepted or not if it is an answer\n score?: number; // relative score according to the up and down votes for a question or an answer\n lastActivityDate?: number; // creation or last update date for question or answer\n}\nexport type SuggestionMetaDataUnion = Record<string, SuggestionMetaData>;\nexport interface CanonicalExample {canonicalExample: {body: string; url: string}}\nexport interface Suggestion {\n id: string;\n title: string;\n url: string;\n body: string;\n context: string[];\n type?: string;\n metadata?: SuggestionMetaDataUnion | CanonicalExample;\n}\n\nexport enum KeyMap {\n ESCAPE = 'Escape',\n ENTER = 'Enter',\n BACKSPACE = 'Backspace',\n SPACE = ' ',\n DELETE = 'Delete',\n ARROW_UP = 'ArrowUp',\n ARROW_DOWN = 'ArrowDown',\n ARROW_LEFT = 'ArrowLeft',\n ARROW_RIGHT = 'ArrowRight',\n PAGE_UP = 'PageUp',\n PAGED_OWN = 'PageDown',\n HOME = 'Home',\n END = 'End',\n META = 'Meta',\n TAB = 'Tab',\n SHIFT = 'Shift',\n CONTROL = 'Control',\n ALT = 'Alt',\n}\n\nexport enum LiveSearchState {\n PAUSE = 'pauseLiveSearch',\n RESUME = 'resumeLiveSearch',\n STOP = 'stopLiveSearch',\n}\n\nexport const SupportedCodingLanguages = [ 'typescript', 'javascript', 'java', 'json', 'python' ];\ntype ElementType<T extends readonly unknown[]> = T extends ReadonlyArray<infer ElementType> ? ElementType : never;\n\nexport type SupportedCodingLanguagesType = ElementType<typeof SupportedCodingLanguages>;\nexport const SupportedCodingLanguagesExtensionToTypeMap = {\n ts: 'typescript',\n js: 'javascript',\n py: 'python',\n java: 'java',\n json: 'json',\n};\n\nexport type OnCopiedToClipboardFunction = (type?: 'selection' | 'block', text?: string) => void;\n\nexport interface SearchHistoryFilters {\n /**\n * Flag to define are we looking in global search-history or only in worplace\n *\n * @default - Search will be performed on workplace store\n */\n isGlobal: boolean;\n /**\n * Flag to define are we looking only for queries which were manually typed by the user,\n * or only for quries whic were generated by plugin itself, or it's not important\n *\n * @default - We won't filter records bases on type of input\n */\n isManualSearch?: boolean;\n /**\n * Array of language filters. If user chose some, the results would be filtered\n *\n * @default - We won't filter records bases on languages\n */\n languages: string[];\n /**\n * User text from search bar in search-history part of UI\n *\n * @default - We won't filter records bases on user input in search-history search bar\n */\n text?: string;\n /**\n * Allow us to skip n-first results\n *\n * @default - The starting offset will be 0\n */\n resultOffset: number;\n /**\n * Limit of how many results we want to get from store\n *\n * @default - The records count won't be limited\n */\n resultLimit?: number;\n}\n\nexport interface CodeQuery {\n simpleNames: string[];\n usedFullyQualifiedNames: string[];\n}\n\nexport enum ContextChangeType {\n 'ADD' = 'add',\n 'REMOVE' = 'remove',\n}\nexport enum SuggestionEventName {\n OPEN = 'openSuggestion',\n COPY = 'copy',\n}\nexport enum RelevancyVoteType {\n UP = 'upvote',\n DOWN = 'downvote',\n}\n\n/**\n * 'interaction' will be set if there was a potential text selection or a click input was triggered by the user.\n * If this is a selection selectionDistanceTraveled object will also be filled\n * 'timespend' will be set basically if there is no interaction except mouse movements in a time spent longer than the ENGAGEMENT_DURATION_LIMIT\n * Don't forget that in 'timespend' case, user should leave the suggestion card at some point to count it as an interaction.\n * (They need to go back to the code or move to another card instead)\n */\nexport enum EngagementType {\n INTERACTION = 'interaction',\n TIME = 'timespend',\n}\nexport interface SuggestionEngagement {\n /**\n * Suggestion information\n */\n suggestion: Suggestion;\n\n /**\n * Engagement type\n */\n engagementType: EngagementType;\n /**\n * Total duration in ms till the engagement triggered.\n */\n engagementDurationTillTrigger: number;\n /**\n * This is a little bit more than what you might expect on a normal scroll position of the suggestion card.\n * This attribute gives the value for how much the users traveled their mouses and additionally how much they scrolled to focus on that suggestion\n */\n scrollDistanceToEngage: number;\n /**\n * Total mouse movement in x and y directions till the engagament triggered.\n * To avoid confusion: this is not the distance between start and end points, this is the total traveled distance.\n */\n totalMouseDistanceTraveled: { x: number; y: number };\n /**\n * If the engagementType is \"interaction\" and this object has a value, you can assume it as a text selection.\n * If the engagementType is \"interaction\" but this object is not defined, you can assume it as a click\n */\n selectionDistanceTraveled?: { x: number; y: number; selectedText?: string };\n}\n\nexport interface SearchHistoryItem {\n query: {\n input: string;\n queryContext: SearchPayloadMatchPolicy;\n queryId?: string;\n trigger: string;\n codeQuery: CodeQuery;\n codeSelection: SearchPayloadCodeSelection;\n code?: string;\n };\n recordDate?: number;\n suggestions: Suggestion[];\n}\n\nexport enum ContextTypes {\n MUST = 'must',\n SHOULD = 'should',\n MUST_NOT = 'mustNot',\n}\nexport enum ContextSource {\n AUTO = 'auto',\n USER = 'user',\n SUGGESTION = 'suggestion',\n}\nexport enum ContextTypeClassNames {\n should = 'mynah-should-contain',\n must = 'mynah-must-contain',\n mustNot = 'mynah-must-not-contain',\n}\nexport interface ContextType {\n context: string;\n type?: ContextTypes;\n source: ContextSource;\n}\n\nexport type FeedbackStars = 1 | 2 | 3 | 4 | 5;\nexport interface FeedbackPayload {\n stars?: FeedbackStars;\n comment?: string;\n}\nexport interface AutocompleteItem {\n suggestion: string;\n highlight: string;\n}\n\nexport enum NotificationType {\n INFO = MynahIcons.INFO,\n SUCCESS = MynahIcons.OK_CIRCLED,\n WARNING = MynahIcons.WARNING,\n ERROR = MynahIcons.ERROR,\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst en = {\n searchInputAPIHelpPlaceholder: 'You can enrich your query here.',\n searchInputMynahPlaceholder: 'What can Mynah help you with?',\n};\n\nexport default en;\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { I18nResolver } from 'i18n-ts';\nimport en from './en';\n\nexport class I18N {\n private static instance: I18N;\n public texts;\n private constructor (localLanguage?: string) {\n const i18n = {\n en,\n default: en,\n };\n this.texts = new I18nResolver(i18n, localLanguage).translation;\n }\n\n public static getInstance (localLanguage?: string): I18N {\n if (I18N.instance === undefined) {\n I18N.instance = new I18N(localLanguage);\n }\n\n return I18N.instance;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MainContainer } from './components/main-container';\nimport { Notification } from './components/notification/notification';\nimport { SearchCard } from './components/search-block/search-card';\nimport { MynahConfig } from './helper/config';\nimport { DomBuilder, ExtendedHTMLElement } from './helper/dom';\nimport {\n SuggestionEngagement,\n MynahPortalNames,\n Suggestion,\n SearchPayload,\n LiveSearchState,\n SuggestionEventName,\n RelevancyVoteType,\n FeedbackPayload,\n MynahUIDataModel,\n ContextChangeType,\n ContextType,\n SearchHistoryFilters,\n MynahEventNames,\n SearchHistoryItem,\n SearchPayloadMatchPolicy,\n ContextTypes,\n AutocompleteItem,\n NotificationType,\n} from './static';\nimport { I18N } from './translations/i18n';\nimport './styles/styles.scss';\nimport { EmptyMynahUIDataModel, MynahUIDataStore } from './helper/store';\nimport { MynahUIGlobalEvents } from './helper/events';\nimport { getTimeDiff } from './helper/date-time';\nimport { NavivationTabs } from './components/navigation-tabs';\n\nexport {\n AutocompleteItem,\n SearchPayloadCodeSelection,\n FeedbackPayload,\n RelevancyVoteType,\n LiveSearchState,\n SearchPayload,\n Suggestion,\n ContextType,\n SearchHistoryItem,\n EngagementType,\n SuggestionEngagement,\n SuggestionEventName,\n SearchHistoryFilters,\n MynahUIDataModel,\n ContextChangeType,\n ContextSource,\n ContextTypes,\n NotificationType,\n} from './static';\n\nexport {\n transformPayloadData,\n validateRulesOnPayloadData,\n PayloadTransformRule,\n} from './helper/payload-transformer';\n\nexport interface MynahUIProps {\n rootSelector?: string;\n storeData?: MynahUIDataModel;\n onSearch?: (\n searchPayload: SearchPayload,\n isFromHistory?: boolean,\n isFromAutocomplete?: boolean\n ) => void;\n onReady?: () => void;\n onClickSuggestionVote?: (suggestion: Suggestion, vote: RelevancyVoteType) => void;\n onClickCodeDetails?: (\n code: string,\n fileName?: string,\n range?: {\n start: { row: string; column?: string };\n end?: { row: string; column?: string };\n }\n ) => void;\n onResetStore?: () => void;\n onChangeContext?: (changeType: ContextChangeType, queryContext: ContextType) => void;\n onNavigationTabChange?: (selectedTab: string) => void;\n onSuggestionEngagement?: (engagement: SuggestionEngagement) => void;\n onSuggestionClipboardInteraction?: (suggestionId: string, type?: string, text?: string) => void;\n onSuggestionInteraction?: (eventName: SuggestionEventName, suggestion: Suggestion, mouseEvent?: MouseEvent) => void;\n onSendFeedback?: (feedbackPayload: FeedbackPayload) => void;\n onRequestHistoryRecords?: (filterPayload: SearchHistoryFilters) => void;\n onInputQueryChange?: (input: string) => void;\n onChangeLiveSearchState?: (liveSearchState: LiveSearchState) => void;\n onClickAutocompleteItem?: (\n text: string,\n currSelected?: number,\n suggestionCount?: number\n ) => void;\n}\nexport class MynahUI {\n private readonly props: MynahUIProps;\n private readonly wrapper: ExtendedHTMLElement;\n private readonly searchCard: SearchCard;\n private readonly navTabs: NavivationTabs;\n private readonly mainContainer: MainContainer;\n private readonly config: MynahConfig;\n\n constructor (props: MynahUIProps) {\n this.props = props;\n MynahUIGlobalEvents.getInstance();\n MynahUIDataStore.getInstance(props.storeData);\n DomBuilder.getInstance(props.rootSelector);\n this.config = new MynahConfig();\n\n I18N.getInstance(this.config.getConfig('language'));\n\n this.wrapper = DomBuilder.getInstance().createPortal(\n MynahPortalNames.WRAPPER,\n {\n type: 'div',\n attributes: { id: 'mynah-wrapper' },\n },\n 'afterbegin'\n );\n\n this.searchCard = new SearchCard();\n this.navTabs = new NavivationTabs({\n onChange: (selectedTab: string) => {\n if (props.onNavigationTabChange !== undefined) {\n MynahUIDataStore.getInstance().updateStore({\n selectedNavigationTab: selectedTab\n }, true);\n props.onNavigationTabChange(selectedTab);\n }\n\n MynahUIDataStore.getInstance().updateStore({\n ...(MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true\n ? {\n headerInfo: {\n content: ''\n },\n showingHistoricalSearch: false,\n }\n : {}),\n });\n }\n });\n this.mainContainer = new MainContainer({\n onScroll: (e: Event) => this.searchCard.setFolded((e.target as HTMLElement).scrollTop > 0),\n });\n\n this.wrapper\n .insertChild('beforeend', this.searchCard.render)\n .insertChild('beforeend', this.navTabs.render)\n .insertChild('beforeend', this.mainContainer.render);\n\n this.searchCard.addFocusOnInput();\n this.addGlobalListeners();\n setTimeout(() => {\n if (this.props.onReady !== undefined) {\n this.props.onReady();\n }\n }, 1000);\n }\n\n private readonly addGlobalListeners = (): void => {\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.REQUEST_SEARCH_HISTORY, (data) => {\n if (this.props.onRequestHistoryRecords !== undefined) {\n this.props.onRequestHistoryRecords(data.filters);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.INPUT_QUERY_CHANGE, (data) => {\n if (this.props.onInputQueryChange !== undefined) {\n this.props.onInputQueryChange(data.input);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, (data: {\n autocompleteQuery: AutocompleteItem;\n index: number;\n count: number;\n }) => {\n if (this.props.onClickAutocompleteItem !== undefined) {\n this.props.onClickAutocompleteItem(data.autocompleteQuery.suggestion, data.index, data.count);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.FEEDBACK_SET, (feedbackData) => {\n if (this.props.onSendFeedback !== undefined) {\n this.props.onSendFeedback(feedbackData);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.LIVE_SEARCH_STATE_CHANGED, (data) => {\n if (this.props.onChangeLiveSearchState !== undefined) {\n this.props.onChangeLiveSearchState(data.liveSearchState);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SEARCH, (data: {\n query: string;\n isFromAutocomplete?: boolean;\n }) => {\n if (this.props.onSearch !== undefined) {\n this.props.onSearch({\n query: data.query,\n code: MynahUIDataStore.getInstance().getValue('code'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n matchPolicy: MynahUIDataStore.getInstance().getValue('matchPolicy'),\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n selectedTab: MynahUIDataStore.getInstance().getValue('selectedNavigationTab'),\n }, false, data.isFromAutocomplete);\n }\n if (this.props.onChangeLiveSearchState != null) {\n this.props.onChangeLiveSearchState(LiveSearchState.STOP);\n MynahUIDataStore.getInstance().updateStore({\n liveSearchState: MynahUIDataStore.getInstance().getDefaultValue('liveSearchState'),\n ...(MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true\n ? {\n headerInfo: {\n content: ''\n },\n showingHistoricalSearch: false,\n }\n : {}),\n });\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, (data: {\n type: ContextChangeType;\n context: ContextType;\n oldPolicyType?: ContextTypes;\n }) => {\n const currentMatchPolicy = Object.assign({}, MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy);\n if (data.type === ContextChangeType.ADD) {\n if (data.oldPolicyType !== undefined && data.oldPolicyType !== data.context.type) {\n currentMatchPolicy[data.oldPolicyType] = currentMatchPolicy[data.oldPolicyType]\n .filter((contextKey: string) => contextKey !== data.context.context);\n }\n currentMatchPolicy[data.context.type as ContextTypes].push(data.context.context);\n } else if (data.type === ContextChangeType.REMOVE) {\n currentMatchPolicy[data.context.type as ContextTypes] = currentMatchPolicy[data.context.type as ContextTypes]\n .filter((contextKey: string) => contextKey !== data.context.context);\n }\n MynahUIDataStore.getInstance().updateStore({\n matchPolicy: { ...currentMatchPolicy }\n });\n\n if (this.props.onSearch !== undefined && (\n MynahUIDataStore.getInstance().getValue('query') !== '' ||\n MynahUIDataStore.getInstance().getValue('codeSelection').selectedCode !== ''\n )) {\n this.props.onSearch({\n query: MynahUIDataStore.getInstance().getValue('query'),\n code: MynahUIDataStore.getInstance().getValue('code'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n matchPolicy: currentMatchPolicy,\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n selectedTab: MynahUIDataStore.getInstance().getValue('selectedNavigationTab'),\n });\n\n if (MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true) {\n MynahUIDataStore.getInstance().updateStore({\n showingHistoricalSearch: false,\n headerInfo: MynahUIDataStore.getInstance().getDefaultValue('headerInfo')\n });\n }\n }\n\n if (this.props.onChangeContext != null) {\n this.props.onChangeContext(data.type, data.context);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SEARCH_HISTORY_ITEM_CLICK, (data: {\n historyItem: SearchHistoryItem;\n }) => {\n if (this.props.onSearch !== undefined) {\n this.props.onSearch({\n query: data.historyItem.query.input,\n codeSelection: data.historyItem.query.codeSelection,\n matchPolicy: data.historyItem.query.queryContext,\n codeQuery: data.historyItem.query.codeQuery,\n code: data.historyItem.query.code,\n }, true);\n }\n const fullStoreData: Required<MynahUIDataModel> = Object.assign((new EmptyMynahUIDataModel(MynahUIDataStore.getInstance().getDefaults())).data, {\n ...(data.historyItem.query.input !== undefined ? { query: data.historyItem.query.input } : {}),\n ...(data.historyItem.query.queryContext !== undefined ? { matchPolicy: data.historyItem.query.queryContext } : {}),\n ...(data.historyItem.suggestions !== undefined ? { suggestions: data.historyItem.suggestions } : {}),\n ...(data.historyItem.query.codeQuery !== undefined ? { codeQuery: data.historyItem.query.codeQuery } : {}),\n ...(data.historyItem.query.codeSelection !== undefined ? { codeSelection: data.historyItem.query.codeSelection } : {}),\n ...(data.historyItem.query.code !== undefined ? { code: data.historyItem.query.code } : {}),\n showingHistoricalSearch: true,\n headerInfo: {\n content: data.historyItem.recordDate !== undefined\n ? `Showing the search you've performed ${getTimeDiff(\n new Date().getTime() - data.historyItem.recordDate\n ).toString()} ago.`\n : ''\n }\n });\n MynahUIDataStore.getInstance().updateStore(fullStoreData);\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.CODE_DETAILS_CLICK, (data) => {\n if (this.props.onClickCodeDetails !== undefined) {\n this.props.onClickCodeDetails(\n data.code,\n data.fileName,\n data.range\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_ENGAGEMENT, (engagement: SuggestionEngagement) => {\n if (this.props.onSuggestionEngagement !== undefined) {\n this.props.onSuggestionEngagement(\n engagement\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_COPY_TO_CLIPBOARD, (data) => {\n if (this.props.onSuggestionClipboardInteraction !== undefined) {\n this.props.onSuggestionClipboardInteraction(\n data.suggestionId,\n data.type,\n data.text\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_OPEN, (data) => {\n if (this.props.onSuggestionInteraction !== undefined) {\n this.props.onSuggestionInteraction(\n SuggestionEventName.OPEN,\n data.suggestion,\n data.event\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_VOTE, (data) => {\n if (this.props.onClickSuggestionVote !== undefined) {\n this.props.onClickSuggestionVote(\n data.suggestion,\n data.vote\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_LINK_COPY, (data) => {\n if (this.props.onSuggestionInteraction !== undefined) {\n this.props.onSuggestionInteraction(\n SuggestionEventName.COPY,\n data.suggestion\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.RESET_STORE, () => {\n if (this.props.onResetStore !== undefined) {\n this.props.onResetStore();\n }\n });\n };\n\n /**\n * Updates only the UI with the given data.\n * @param data A full or partial set of data with values.\n */\n public updateStore = (data: MynahUIDataModel): void => {\n MynahUIDataStore.getInstance().updateStore({ ...data });\n };\n\n /**\n * Sets store defaults to use while clearing the store\n * To clear the defaults, send `null`\n * @param defaults partial set of MynahUIDataModel for defaults\n */\n public setStoreDefaults = (defaults: MynahUIDataModel | null): void => {\n MynahUIDataStore.getInstance().setDefaults(defaults);\n };\n\n /**\n * Returns the current search payload\n */\n public getSearchPayload = (): SearchPayload => ({\n query: MynahUIDataStore.getInstance().getValue('query'),\n matchPolicy: MynahUIDataStore.getInstance().getValue('matchPolicy'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n code: MynahUIDataStore.getInstance().getValue('code'),\n selectedTab: MynahUIDataStore.getInstance().getValue('selectedNavigationTab'),\n });\n\n /**\n * Simply creates and shows a notification\n * @param props NotificationProps\n */\n public notify = (props: {\n duration?: number;\n type?: NotificationType;\n title?: string;\n content: string;\n onNotificationClick?: () => void;\n onNotificationHide?: () => void;\n }): void => {\n new Notification({\n ...props,\n onNotificationClick: () => {}\n }).notify();\n };\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../webpack/universalModuleDefinition",".././src/styles/styles.scss",".././node_modules/css-loader/dist/runtime/api.js",".././node_modules/css-loader/dist/runtime/sourceMaps.js",".././node_modules/i18n-ts/lib/core/I18nResolver.js",".././node_modules/i18n-ts/lib/i18n.js",".././node_modules/prismjs/components/prism-java.js",".././node_modules/prismjs/components/prism-javascript.js",".././node_modules/prismjs/components/prism-json.js",".././node_modules/prismjs/components/prism-python.js",".././node_modules/prismjs/components/prism-typescript.js",".././node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js",".././node_modules/prismjs/prism.js","webpack://MynahUI/./src/styles/styles.scss?203b",".././node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js",".././node_modules/style-loader/dist/runtime/insertBySelector.js",".././node_modules/style-loader/dist/runtime/insertStyleElement.js",".././node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js",".././node_modules/style-loader/dist/runtime/styleDomAPI.js",".././node_modules/style-loader/dist/runtime/styleTagTransform.js",".././src/components/button.ts",".././src/components/context-item.ts",".././src/components/feedback-form/feedback-form-comment.ts",".././src/components/feedback-form/feedback-form-stars.ts",".././src/components/feedback-form/feedback-form.ts",".././src/components/icon.ts",".././src/components/main-container.ts",".././src/components/navigation-tabs.ts",".././src/components/notification/notification.ts",".././src/components/overlay/overlay.ts",".././src/components/prioritization-menu.ts",".././src/components/search-block/autocomplete-card.ts",".././src/components/search-block/autocomplete-content.ts",".././src/components/search-block/search-api-help.ts",".././src/components/search-block/search-card-header.ts",".././src/components/search-block/search-card.ts",".././src/components/search-block/search-context.ts",".././src/components/search-block/search-history-card.ts",".././src/components/search-block/search-history-content.ts",".././src/components/search-block/search-input.ts",".././src/components/search-block/search-live-toggle.ts",".././src/components/suggestion-card/suggestion-card-body.ts",".././src/components/suggestion-card/suggestion-card-context-wrapper.ts",".././src/components/suggestion-card/suggestion-card-header.ts",".././src/components/suggestion-card/suggestion-card-relevance-vote.ts",".././src/components/suggestion-card/suggestion-card.ts",".././src/components/syntax-highlighter.ts",".././src/components/toggle.ts",".././src/helper/config.ts",".././src/helper/date-time.ts",".././src/helper/dom.ts",".././src/helper/events.ts",".././src/helper/find-language.ts",".././src/helper/guid.ts",".././src/helper/payload-transformer.ts",".././src/helper/store.ts",".././src/static.ts",".././src/translations/en.ts",".././src/translations/i18n.ts","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object",".././src/main.ts"],"names":["root","factory","exports","module","define","amd","self","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","Object","defineProperty","value","isCookieAvailable","document","I18nResolver","translations","preferredLanguage","cookieName","currentLanguage","language","getCookie","getBrowserLanguage","findBestMatch","prototype","get","enumerable","configurable","set","lang","setCookie","name","expires","path","cookieStr","toUTCString","cookie","split","trim","filter","match","replace","navigator","userLanguage","langPrefix","I18nResolver_1","Prism","keywords","classNamePrefix","className","pattern","RegExp","lookbehind","inside","languages","java","extend","greedy","clike","function","insertBefore","alias","namespace","javascript","regex","rest","markup","tag","addInlined","addAttribute","js","json","webmanifest","python","py","typescript","keyword","typeInside","ts","PLUGIN_NAME","NEW_LINE_EXP","config","plugins","lineNumbers","getLine","element","number","tagName","classList","contains","lineNumberRows","querySelector","lineNumberStart","parseInt","getAttribute","lineNumberEnd","children","lineIndex","resize","resizeElements","assumeViewportIndependence","lastWidth","window","addEventListener","innerWidth","Array","slice","call","querySelectorAll","hooks","add","env","code","pre","test","nodeName","util","isActive","remove","lineNumbersWrapper","linesNum","lines","createElement","setAttribute","innerHTML","hasAttribute","style","counterReset","appendChild","run","elements","e","whiteSpace","getComputedStyle","currentStyle","infos","codeElement","lineNumberSizer","codeLines","textContent","display","oneLinerHeight","getBoundingClientRect","height","lineHeights","sizer","Boolean","forEach","info","line","index","childIndex","wrapper","lineNumber","_self","uniqueId","plainTextGrammar","_","manual","disableWorkerMessageHandler","encode","tokens","Token","type","isArray","o","objId","obj","clone","deepClone","visited","key","hasOwnProperty","v","getLanguage","m","exec","toLowerCase","parentElement","setLanguage","currentScript","Error","err","src","stack","scripts","getElementsByTagName","defaultActivation","no","plain","plaintext","text","txt","redef","before","insert","grammar","ret","token","newToken","old","DFS","callback","property","propertyType","highlightAll","async","highlightAllUnder","container","selector","apply","highlightElement","parent","insertHighlightedCode","highlightedCode","Worker","worker","filename","onmessage","evt","postMessage","immediateClose","highlight","tokenize","tokenList","LinkedList","addAfter","head","matchGrammar","array","node","next","tail","toArray","all","callbacks","matchedStr","matchPattern","pos","lastIndex","lookbehindLength","startNode","startPos","rematch","patterns","j","cause","patternObj","global","flags","currentNode","reach","str","removeCount","from","to","p","matchStr","after","removeFrom","prev","removeRange","nestedRematch","newNode","count","s","classes","attributes","aliases","message","parse","close","script","highlightAutomaticallyCallback","readyState","defer","requestAnimationFrame","setTimeout","WorkerGlobalScope","g","includedCdataInside","def","attrName","html","mathml","svg","xml","ssml","atom","rss","string","css","Element","matches","msMatchesSelector","webkitMatchesSelector","EXTENSIONS","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","extension","autoloader","loadLanguages","success","error","xhr","XMLHttpRequest","open","onreadystatechange","status","responseText","range","start","Number","comma","end","parseRange","Math","max","min","String","statusText","send","loadFile","fileHighlight","logged","console","warn","arguments","options","styleTagTransform","setAttributes","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","target","styleTarget","HTMLIFrameElement","contentDocument","getTarget","styleElement","nonce","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","constructor","props","setEnabled","enabled","render","removeAttribute","DomBuilder","getInstance","build","classNames","primary","events","additionalEvents","click","onClick","icon","label","handleMenuOpen","elm","currentTarget","addClass","PrioritizationMenuButtons","referenceElement","context","onMenuClose","removeClass","createOverlay","ContextTypeClassNames","ContextTypes","SHOULD","MynahUIDataStore","getValue","includes","showRemoveButton","Icon","MUST_NOT","MynahIcons","BLOCK","OK_CIRCLED","event","cancelEvent","currentMatchPolicy","keys","reduce","res","policyGroup","MynahUIGlobalEvents","dispatch","MynahEventNames","CONTEXT_VISIBILITY_CHANGE","ContextChangeType","ADD","ContextSource","SUGGESTION","REMOVE","updateStore","userAddedContext","contextKey","CANCEL","Button","bind","MENU","focus","setComment","comment","keyup","onChange","initComment","disabled","placeholder","setStar","star","initStar","fill","n","STAR","feedbackPayload","onFeedbackSet","feedbackData","FEEDBACK_SET","initPayload","stars","triggerButton","formOverlay","Overlay","feedbackFormContainer","closeOnOutsideClick","dimOutside","horizontalDirection","OverlayHorizontalDirection","END_TO_LEFT","verticalDirection","OverlayVerticalDirection","TO_BOTTOM","feedbackStars","FeedbackFormStars","feedbackComment","feedbackSubmitButton","FeedbackFormComment","feedbackContainer","clearCards","updateCards","suggestions","cardsWrapper","clear","selectedCode","suggestion","insertChild","SuggestionCard","onScroll","scroll","persistent","skeletonWrapper","title","url","body","subscribe","loading","getSelectedTabValueFromStore","find","navTab","selected","setLoading","isLoading","getTabsRender","tabs","Toggle","tab","newTabs","getNextCalculatedTop","prevNotifications","DS","prevNotificationRectangle","top","OVERLAY_MARGIN","getChildren","duration","NotificationType","INFO","notify","notificationOverlay","referencePoint","left","documentElement","clientWidth","TO_LEFT","onClose","onNotificationHide","onNotificationClick","guid","generateUID","windowBlurHandler","removeEventListener","getCalculatedLeft","referenceRectangle","width","TO_RIGHT","START_TO_RIGHT","CENTER","getCalculatedTop","START_TO_BOTTOM","TO_TOP","END_TO_TOP","updateContent","innerContainer","calculatedTop","calculatedLeft","createPortal","MynahPortalNames","OVERLAY","containerRectangle","winHeight","clientHeight","innerHeight","winWidth","comparingWidth","comparingHeight","handlePrioritizationButtonClick","priority","menuOverlay","oldPolicyType","MUST","searchQuery","buttonClassNames","isHovered","onAutocompleteClick","formatSuggestion","word","bold","autocompleteCards","autocompleteSuggestions","hovered","record","AutocompleteCardContent","handleAutocompleteClick","autocompleteItem","autocompleteItemsOverlay","AUTOCOMPLETE_SUGGESTION_CLICK","autocompleteQuery","getSuggestionsCount","updateSuggestions","hoverQuery","cards","cardWrapper","updateQuery","hover","isUp","currHover","setIsUsed","val","isUsed","getIsUsed","getCurrentSelected","isCollapsed","hide","show","codeSelection","file","row","column","onCodeDetailsClicked","SyntaxHighlighter","codeStringWithMarkup","getLanguageFromFileName","SupportedCodingLanguagesExtensionToTypeMap","keepHighlights","showLineNumbers","startingLineNumber","toggleClass","DOWN_OPEN","UP_OPEN","fileName","CODE_DETAILS_CLICK","getHeaderInfoContent","headerInfo","feedbackForm","FeedbackForm","infoBar","resetStore","unfoldedByContextInsertion","unfoldedByButton","addFocusOnInput","searchInput","setFolded","folded","foldUnfoldButton","hasClass","searchCardHeader","SearchCardHeader","liveSearchToggle","SearchLiveToggle","searchAPIHelp","SearchApiHelp","SearchInput","contextManagement","SearchContext","onContextInsertionEnabled","onContextInsertionDisabled","allowedCharCount","contextCheckExpression","isAcceptedKeyPress","char","acceptedNagivationKeys","KeyMap","renderedContextMap","enableContextInsertion","contextInsertionButton","contextInsertionInput","disableContextInsertion","keepText","inputAutoWidth","createContextItemElements","matchPolicy","oldMatchPolicy","removedContext","addedContext","AUTO","USER","contextItem","invisibleContextKeys","contextRender","ContextPill","actualContextItemRender","contextWrapper","contextInsertionKeydownHandler","ENTER","SPACE","loadingListener","loadingState","unsubscribe","Notification","WARNING","ESCAPE","maxlength","tabindex","blur","keydown","input","paste","PLUS","initContext","query","trigger","CODE_BLOCK","LIGHT_BULB","onHistoryItemClick","getSearchHitoryRecordTitle","recordDate","getTimeDiff","Date","getTime","queryContext","historyItem","titleParts","pop","searchHistoryCards","historyItems","HistoryCardContent","handleHistoryChange","historyItemsOverlay","SEARCH_HISTORY_ITEM_CLICK","searchHistory","codeSelectionAvailable","searchTextInput","handleInputKeydown","autocompleteContent","triggerSearch","ARROW_DOWN","ARROW_UP","DELETE","BACKSPACE","values","INPUT_QUERY_CHANGE","remainingIndicator","isFromAutocomplete","SEARCH","triggerSearchHistory","searchHistoryButton","REQUEST_SEARCH_HISTORY","filters","isGlobal","resultOffset","resultLimit","searchHistorySubscriptionId","HistoryContent","handleAutocompleteSuggestions","AutocompleteContent","setWaitState","waitState","searchButton","initText","I18N","texts","searchInputAPIHelpPlaceholder","searchInputMynahPlaceholder","SEARCH_HISTORY","autoCompleteList","addListener","LiveSearchStateColors","LiveSearchState","PAUSE","RESUME","flashToggle","initialValue","toggle","PLAY","color","LIVE_SEARCH_STATE_CHANGED","liveSearchState","STOP","queryChangeSubscriptionId","newState","setValue","matchingLanguage","findLanguageFromSuggestion","childNodes","elementFromNode","showCopyOptions","onCopiedToClipboard","SUGGESTION_COPY_TO_CLIPBOARD","suggestionId","metadata","canonicalExample","SuggestionCardRelevanceVote","mustContextItems","must","contextList","getSourceMetaBlockClassName","metadataUnion","getSourceMetaBlock","metaItems","metadataKey","isAccepted","OK","lastActivityDate","CALENDAR","answerCount","CHAT","forks","score","THUMBS_UP","splittedUrl","onSuggestionTitleClick","href","EXTERNAL","onSuggestionLinkCopy","copy","urlPart","handleVoteChange","vote","SUGGESTION_VOTE","change","RelevancyVoteType","UP","DOWN","for","THUMBS_DOWN","engagementStartTime","totalMouseDistanceTraveled","x","y","resetEngagement","previousMousePosition","mouseDownInfo","time","handleEngagement","interactionDistanceTraveled","SUGGESTION_ENGAGEMENT","engagementDurationTillTrigger","scrollDistanceToEngage","offsetTop","engagementType","EngagementType","INTERACTION","TIME","selectionDistanceTraveled","mouseenter","clientX","clientY","mousemove","abs","mousedown","mouseup","mouseUpInfo","selectedText","getSelection","mouseleave","engagementEndTime","SuggestionCardHeader","SUGGESTION_OPEN","SUGGESTION_LINK_COPY","SuggestionCardContextWrapper","SuggestionCardBody","DEFAULT_LANG","highlighters","textReplacement","ellipsis","copyToClipboard","textToSendClipboard","notificationText","clipboard","writeText","then","catch","codeMarkup","innerText","styledCode","COPY","TEXT_SELECT","currentRange","getRangeAt","commonAncestorContainer","isSameNode","option","relocateTransitioner","backgroundColor","checked","updateSelectionRender","setRelocatePosition","currentValue","renderRect","optionRender","rect","configProcessors","sourceString","decodeURI","getConfig","configName","setConfig","configValue","configElement","configItem","differenceInMs","separator","delta","years","floor","months","weeks","days","hours","minutes","combined","EmptyDomBuilderObject","rootSelector","portals","builderObject","indexOf","position","child","childItem","insertAdjacentElement","insertAdjacentText","clearChildren","removePersistent","extendDomFunctionality","domElement","extendedElement","domBuilderObject","readyToBuildObject","buildedDom","eventName","attributeName","HTMLElement","domToUpdate","portalName","portalDom","getPortal","removePortal","static","instance","preventDefault","stopPropagation","stopImmediatePropagation","eventKey","handler","listenerId","listeners","removeListener","ctx","SupportedCodingLanguages","codingLang","fileExtension","firstPart","random","secondPart","transformPayloadData","rules","payloadData","processedRules","rule","targetRoute","method","targetNode","targetRouteKey","validateRulesOnPayloadData","validatedRules","PrimitiveObjectTypes","EmptyMynahUIDataModel","defaults","invisibleContextItems","navigationTabs","autoCompleteSuggestions","showingHistoricalSearch","liveSearchAnimation","codeQuery","simpleNames","usedFullyQualifiedNames","mustNot","should","initialData","store","setDefaults","getDefaults","storeKey","subscriptionId","subsciptions","structuredClone","getDefaultValue","skipSubscribers","assign","RESET_STORE","create","SuggestionEventName","WRAPPER","FEEDBACK_FORM","localLanguage","i18n","en","default","translation","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","a","definition","globalThis","Function","prop","r","Symbol","toStringTag","addGlobalListeners","onRequestHistoryRecords","onInputQueryChange","onClickAutocompleteItem","onSendFeedback","onChangeLiveSearchState","directStoreDataReturn","onSearch","selectedTab","onChangeContext","fullStoreData","onClickCodeDetails","engagement","onSuggestionEngagement","onSuggestionClipboardInteraction","onSuggestionInteraction","OPEN","onClickSuggestionVote","onResetStore","setStoreDefaults","getSearchPayload","storeData","MynahConfig","searchCard","SearchCard","navTabs","NavivationTabs","onNavigationTabChange","mainContainer","MainContainer","scrollTop","onReady"],"mappings":"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","file":"main.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MynahUI\"] = factory();\n\telse\n\t\troot[\"MynahUI\"] = factory();\n})(self, function() {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{font-size:var(--vscode-editor-font-size);font-family:var(--vscode-editor-font-family);--mynah-sizing-base: 3px;--mynah-sizing-half: calc(var(--mynah-sizing-base) / 2);--mynah-sizing-1: var(--mynah-sizing-base);--mynah-sizing-2: calc(var(--mynah-sizing-base) * 2);--mynah-sizing-3: calc(var(--mynah-sizing-base) * 3);--mynah-sizing-4: calc(var(--mynah-sizing-base) * 4);--mynah-sizing-5: calc(var(--mynah-sizing-base) * 5);--mynah-sizing-6: calc(var(--mynah-sizing-base) * 6);--mynah-sizing-7: calc(var(--mynah-sizing-base) * 7);--mynah-sizing-8: calc(var(--mynah-sizing-base) * 8);--mynah-sizing-9: calc(var(--mynah-sizing-base) * 9);--mynah-sizing-10: calc(var(--mynah-sizing-base) * 10);--mynah-sizing-11: calc(var(--mynah-sizing-base) * 11);--mynah-sizing-12: calc(var(--mynah-sizing-base) * 12);--mynah-sizing-13: calc(var(--mynah-sizing-base) * 13);--mynah-sizing-14: calc(var(--mynah-sizing-base) * 14);--mynah-sizing-15: calc(var(--mynah-sizing-base) * 15);--mynah-sizing-16: calc(var(--mynah-sizing-base) * 16);--mynah-sizing-17: calc(var(--mynah-sizing-base) * 17);--mynah-sizing-18: calc(var(--mynah-sizing-base) * 18);--mynah-button-border-width: 1px;--mynah-color-text-default: var(--vscode-foreground);--mynah-color-text-strong: var(--vscode-input-foreground);--mynah-color-text-weak: var(--vscode-list-deemphasizedForeground);--mynah-color-text-link: var(--vscode-textLink-foreground);--mynah-color-text-input: var(--vscode-input-foreground);--mynah-color-bg: var(--vscode-sideBar-background);--mynah-color-light: rgba(0, 0, 0, 0.05);--mynah-color-deep: var(--vscode-checkbox-background);--mynah-color-deep-reverse: var(--vscode-checkbox-foreground);--mynah-color-border-default: rgba(0, 0, 0, 0.1);--mynah-color-input-bg: var(--vscode-input-background);--mynah-color-highlight: rgba(255, 199, 72, 0.3);--mynah-color-highlight-text: #886411;--mynah-color-context-must-contain: #c7ebce;--mynah-color-context-should-contain: var(--vscode-sideBar-background);--mynah-color-context-must-not-contain: #f3cac7;--mynah-color-context-reverse: rgba(0, 0, 0, 0.5);--mynah-color-context-filter: 0.975;--mynah-color-status-info: var(--vscode-editorInfo-foreground);--mynah-color-status-success: var(--vscode-list-activeSelectionBackground);--mynah-color-status-warning: var(--vscode-editorWarning-foreground);--mynah-color-status-error: var(--vscode-editorError-foreground);--mynah-color-button: var(--vscode-button-background);--mynah-color-button-reverse: var(--vscode-button-foreground);--mynah-color-alternate: var(--vscode-button-secondaryBackground);--mynah-color-alternate-reverse: var(--vscode-button-secondaryForeground);--mynah-color-code-bg: var(--mynah-color-bg);--mynah-color-code-text: var(--vscode-textPreformat-foreground);--mynah-color-main: var(--vscode-button-background);--mynah-color-main-reverse: var(--vscode-button-foreground);--mynah-card-bg: var(--vscode-editor-background);--mynah-shadow-generic: none;--mynah-shadow-card: none;--mynah-shadow-card-more: none;--mynah-shadow-card-active: none;--mynah-shadow-prioritization-menu: 0 10px 20px -10px var(--vscode-editorGroup-border);--mynah-shadow-feedback-form: 0 0px 40px 0px var(--mynah-color-bg);--mynah-font-size-xsmall: 0.85rem;--mynah-font-size-small: 0.95rem;--mynah-font-size-medium: 1rem;--mynah-font-size-large: 1.15rem;--mynah-font-size-xlarge: 1.275rem;--mynah-card-radius: 0;--mynah-button-radius: var(--mynah-sizing-1);--mynah-very-short-transition: all 250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-transform: transform 200ms cubic-bezier(0.85, 0.15, 0, 1);--mynah-long-transition: all 370ms cubic-bezier(0.35, 1, 0.15, 1);--mynah-pretty-long-transition: all 450ms cubic-bezier(0.25, 1, 0, 1);--mynah-very-long-transition: all 1250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition: all 250ms cubic-bezier(0.85, 0.15, 0, 1);--mynah-short-transition-rev: all 270ms cubic-bezier(0.35, 1, 0, 1);--mynah-short-transition-rev-opacity: opacity 400ms cubic-bezier(0.35, 1, 0, 1);--mynah-short-transition-reflection: all 650ms cubic-bezier(0.25, 1, 0, 1), opacity 500ms 150ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-turbo: all 250ms cubic-bezier(0.25, 1, 0, 1);--mynah-short-transition-turbo-bounce: all 350ms cubic-bezier(0.25, 1, 0, 1), transform 450ms cubic-bezier(0.25, 4, 0, 1);--mynah-short-transition-bounce: all 500ms cubic-bezier(0.25, 1, 0, 1), transform 700ms cubic-bezier(0.25, 1.75, 0, 1);--mynah-mask-image: linear-gradient( to bottom, black var(--mynah-sizing-8), black calc(100% - var(--mynah-sizing-14)), transparent );--mynah-mask-image-rev: linear-gradient(to bottom, transparent 0%, transparent 80%, black 100%);--mynah-mask-image-main: linear-gradient( to bottom, transparent, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent );--mynah-mask-image-main-rev: linear-gradient(to bottom, black, transparent calc(100% - 2px), transparent);--mynah-mask-image-skeleton: linear-gradient( to bottom, black var(--mynah-sizing-8), black calc(50% - var(--mynah-sizing-14)), transparent );--mynah-policy-group-filter: saturate(0.5) brightness(0.85)}@keyframes glass-reflection{0%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes move-to-middle{0%{transform:translate3d(-10%, 0, 0);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes move-to-right{0%{transform:translate3d(0, 0, 0);opacity:1}100%{transform:translate3d(10%, 0, 0);opacity:0}}@keyframes shake{0%{transform:translate3d(0, 0, 0);border-color:red}10%{transform:translate3d(5px, 0, 0)}20%{transform:translate3d(-5px, 0, 0)}30%{transform:translate3d(5px, 0, 0)}40%{transform:translate3d(-5px, 0, 0)}50%{transform:translate3d(5px, 0, 0)}60%{transform:translate3d(-5px, 0, 0)}70%{transform:translate3d(5px, 0, 0)}80%{transform:translate3d(-5px, 0, 0)}90%{transform:translate3d(5px, 0, 0);border-color:red}100%{transform:translate3d(0, 0, 0);border-color:rgba(0,0,0,0)}}#mynah-wrapper{display:flex;flex-flow:column nowrap;margin:0 auto;width:100%;max-width:1024px;box-sizing:border-box;height:100%;padding:var(--mynah-sizing-3) 0 0 0}#mynah-wrapper .context-checkbox{display:none}#mynah-wrapper .mynah-main{display:block;box-sizing:border-box;flex:1 1 0;overflow:hidden;position:relative}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper,#mynah-wrapper .mynah-main>.mynah-cards-wrapper{padding:var(--mynah-sizing-3) 0 var(--mynah-sizing-12) 0;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-4);box-sizing:border-box;overflow:hidden;position:relative;height:100%}#mynah-wrapper .mynah-main>.mynah-cards-wrapper{overflow-x:hidden;overflow-y:auto;flex:1 1 0;transition:var(--mynah-long-transition);transform:translate3d(0, 0, 0);opacity:1}#mynah-wrapper .mynah-main>.mynah-cards-wrapper>.mynah-no-suggestion-indicator{display:flex;box-sizing:border-box;opacity:.5;width:100%;padding:var(--mynah-sizing-12);flex-flow:row nowrap;justify-content:center;align-items:flex-start}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper{position:absolute;transition:var(--mynah-long-transition);top:0;left:0;margin:0 auto;width:100%;height:100%;z-index:100;pointer-events:none;transform:translate3d(-10%, 0, 0);opacity:0}#mynah-wrapper .mynah-main.mynah-hide-content>.mynah-cards-wrapper{animation:move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-hide-content>.mynah-skeleton-wrapper{pointer-events:all;animation:move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-show-content>.mynah-cards-wrapper{animation:move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both}#mynah-wrapper .mynah-main.mynah-show-content>.mynah-skeleton-wrapper{pointer-events:none;transition-delay:450ms;animation:move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both}@media screen and (max-width: 1024px){#mynah-wrapper{padding-top:0}#mynah-wrapper>.mynah-search-block{border-left:none;border-right:none;border-top:none}#mynah-wrapper .mynah-main>.mynah-skeleton-wrapper,#mynah-wrapper .mynah-main>.mynah-cards-wrapper>.mynah-card{border-right:none;border-left:none}}.mynah-search-block{display:inline-flex;flex-flow:row wrap;justify-content:flex-end;background-color:var(--mynah-card-bg);border-radius:var(--mynah-card-radius);box-shadow:var(--mynah-shadow-card);transition:var(--mynah-short-transition-rev);overflow:visible;position:relative;overflow:visible;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);gap:var(--mynah-sizing-2)}.mynah-search-block:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;box-shadow:var(--mynah-shadow-card);pointer-events:none;filter:brightness(50%) saturate(250%) contrast(250%);opacity:.4}.mynah-search-block>.mynah-search-block-header{width:100%;box-sizing:border-box;overflow:hidden}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-top-bar{width:100%;padding:var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);display:flex;justify-content:space-between;box-sizing:border-box;overflow:hidden}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar{margin:0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);font-size:var(--mynah-font-size-small);padding:var(--mynah-sizing-2);position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-2)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg{position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;border-radius:var(--mynah-button-radius);border:1px solid var(--mynah-color-status-info);box-sizing:border-box;opacity:.2}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg:after{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;background-color:var(--mynah-color-status-info);opacity:.2}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg+.mynah-icon{color:var(--mynah-color-status-info);font-size:var(--mynah-font-size-large)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg~.mynah-search-block-header-info-bar-text,.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg~.mynah-icon{opacity:.75;z-index:1}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled{border-color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled::after{background-color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-ok-circled~.mynah-icon{color:var(--mynah-color-status-success)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning{border-color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning::after{background-color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-warning~.mynah-icon{color:var(--mynah-color-status-warning)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error{border-color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error::after{background-color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar>.mynah-search-block-header-info-bar-bg.mynah-header-info-error~.mynah-icon{color:var(--mynah-color-status-error)}.mynah-search-block>.mynah-search-block-header>.mynah-search-block-header-info-bar:empty{display:none}.mynah-search-block>.mnynah-search-block-fold-unfold-button{position:absolute;bottom:0;left:50%;margin-left:calc(-1*var(--mynah-sizing-8)/2);margin-bottom:calc(-1*var(--mynah-sizing-8)/2);width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-8);z-index:999999;transform:translate3d(0, 0, 0) scale(0.75);opacity:0;pointer-events:none;transition:var(--mynah-very-short-transition);background-color:var(--mynah-card-bg);color:var(--mynah-color-text-input);border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);font-size:var(--mynah-sizing-6)}.mynah-search-block>.mnynah-search-block-fold-unfold-button>.mynah-icon-up-open{display:inline-flex}.mynah-search-block>.mnynah-search-block-fold-unfold-button>.mynah-icon-down-open{display:none}.mynah-search-block>.mynah-search-live-toggle-wrapper{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:var(--mynah-sizing-1);width:100%;padding:0 var(--mynah-sizing-4) 0 0}.mynah-search-block>.mynah-search-live-toggle-wrapper.mynah-hide-content,.mynah-search-block>.mynah-search-live-toggle-wrapper.mynah-hide-content *{display:none}.mynah-search-block>.mynah-search-live-toggle-wrapper>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before,.mynah-search-block>.mynah-search-live-toggle-wrapper>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:after{content:\\\"\\\";position:absolute;z-index:10;top:0;left:0;width:100%;height:100%;background-color:var(--mynah-color-status-success);opacity:.35;border-radius:100%;transform:translate3d(0, 0, 0) scale(0);transform-origin:center center;pointer-events:none}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container{overflow:visible}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before,.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:after{content:\\\"\\\";transform:translate3d(0, 0, 0) scale(8);opacity:0;transition:var(--mynah-short-transition);transition-duration:1750ms}.mynah-search-block>.mynah-search-live-toggle-wrapper.flash-toggle>.mynah-toggle-container>.mynah-toggle-indicator-transitioner:before{transform:translate3d(0, 0, 0) scale(10);transition-duration:2000ms;transition-delay:200ms}.mynah-search-block>.mynah-search-input-wrapper,.mynah-search-block>.mynah-search-api-help{color:var(--mynah-color-text-input);width:100%;flex:1 1 100%;margin:0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);display:flex}.mynah-search-block>.mynah-search-api-help{flex-flow:column nowrap;padding:var(--mynah-sizing-half);box-sizing:border-box;border-radius:var(--mynah-card-radius);overflow:hidden}.mynah-search-block>.mynah-search-api-help.hide{display:none}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-wrapper{width:100%;box-sizing:border-box;overflow:hidden;position:relative}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-wrapper>.mynah-syntax-highlighter>pre{width:100%;box-sizing:border-box;max-height:50vh;overflow-x:auto;overflow-y:auto}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row{display:flex;flex-flow:row nowrap;width:100%;align-items:center;gap:var(--mynah-sizing-1);padding:0 var(--mynah-sizing-3) 0 var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row:nth-child(1){margin-top:var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row:nth-child(2){margin-bottom:var(--mynah-sizing-3)}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row>*:nth-child(1){width:110px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-code-view-detail-row>*:nth-child(2){flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser{display:flex;flex-flow:row nowrap;padding:var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);justify-content:center;align-items:center;font-size:var(--mynah-sizing-6);cursor:pointer}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser>.mynah-search-api-help-uncollapse-icon{display:none}.mynah-search-block>.mynah-search-api-help>.mynah-search-api-help-collapser>.mynah-search-api-help-collapse-icon{display:inline-flex}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-wrapper{cursor:pointer}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-wrapper>.mynah-syntax-highlighter>pre{max-height:var(--mynah-sizing-16);overflow-x:hidden;overflow-y:hidden}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-code-view-detail-row{display:none}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-collapser>.mynah-search-api-help-uncollapse-icon{display:inline-flex}.mynah-search-block>.mynah-search-api-help.collapsed>.mynah-search-api-help-collapser>.mynah-search-api-help-collapse-icon{display:none}.mynah-search-block>.mynah-search-input-wrapper{border:1px solid var(--mynah-color-border-default);padding:var(--mynah-sizing-2);border-radius:var(--mynah-card-radius);flex-flow:row nowrap;align-items:center;gap:var(--mynah-sizing-2)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-logo{width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);opacity:.5}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input{flex:1 1 0;border:none;background-color:rgba(0,0,0,0);font-size:var(--mynah-font-size-large);color:var(--mynah-color-text-input);outline:none;width:100%}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input::placeholder{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-small)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:not(:placeholder-shown)+span{display:inline-block}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:placeholder-shown:not(.search-always-active)~.mynah-search-button{background-color:var(--mynah-color-light);color:var(--mynah-color-text-default);box-shadow:0 5px 10px -10px var(--mynah-color-light);pointer-events:none}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input:placeholder-shown:not(.search-always-active)~.mynah-search-button>*{opacity:.5}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input+span{display:none;opacity:.5;font-size:var(--mynah-font-size-xsmall);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:currentColor;margin-left:var(--mynah-sizing-1)}.mynah-search-block>.mynah-search-input-wrapper>.mynah-search-input+span:after{content:attr(remaining-chars) \\\"/\\\" attr(max-chars)}.mynah-search-block>.mynah-search-block-advanced-control{display:flex;flex-flow:column nowrap;align-items:flex-start;overflow:hidden;width:100%;padding:var(--mynah-sizing-1) var(--mynah-sizing-4) var(--mynah-sizing-4) var(--mynah-sizing-4);transition:var(--mynah-very-short-transition);max-height:50vh}.mynah-search-block>.mynah-search-block-advanced-control>.mynah-context-wrapper{display:flex;flex-flow:row wrap;gap:var(--mynah-sizing-2);flex:1 1 0%;align-items:center}.mynah-search-block.mynah-search-block-ready-to-fold>.mnynah-search-block-fold-unfold-button{transform:translate3d(0, 0, 0) scale(1.000001);opacity:1;pointer-events:all}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mnynah-search-block-fold-unfold-button>.mynah-icon-up-open{display:none}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mnynah-search-block-fold-unfold-button>.mynah-icon-down-open{display:inline-flex}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mynah-search-block-advanced-control{max-height:0;opacity:.4;-webkit-mask-image:var(--mynah-mask-image-main-rev);-webkit-mask-size:100% 150%;mask-image:var(--mynah-mask-image-main-rev);mask-size:100% 200%}.mynah-search-block.mynah-search-block-ready-to-fold:not(.mynah-search-block-unfold)>.mynah-search-block-advanced-control>#add-new-context{transform:translate3d(0, calc(-1 * var(--mynah-sizing-10)), 0) scale(0.5) !important;opacity:0 !important;margin-bottom:calc(-1*var(--mynah-sizing-10))}@media screen and (max-width: 1024px){.mynah-search-block{border-radius:0;margin:0}}.mynah-search-history-items-wrapper{display:flex;flex-flow:column nowrap;max-height:50vh;overflow-x:hidden;overflow-y:auto;width:70vw;max-width:450px;box-sizing:border-box;position:relative;-webkit-mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);-webkit-mask-size:100% 100%;mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);mask-size:100% 100%;padding:var(--mynah-sizing-3);gap:var(--mynah-sizing-3)}.mynah-search-history-items-wrapper>.mynah-search-history-button{flex-shrink:0;height:auto;min-height:var(--mynah-sizing-14);background-color:transparent;border:1px solid var(--mynah-color-bg);color:var(--mynah-color-text-default);border-radius:var(--mynah-button-radius);padding:var(--mynah-sizing-3)}.mynah-search-history-items-wrapper>.mynah-search-history-button,.mynah-search-history-items-wrapper>.mynah-search-history-button:active{box-shadow:none}.mynah-search-history-items-wrapper>.mynah-search-history-button:active:after{opacity:.1}.mynah-search-history-items-wrapper>.mynah-search-history-button>span{text-align:left;max-width:initial;width:100%;overflow:hidden;display:flex}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label{width:100%;display:flex;flex-flow:row nowrap;gap:var(--mynah-sizing-3);justify-content:flex-start;align-items:center;overflow:hidden}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon{display:flex;justify-content:center;align-items:center;width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);font-size:var(--mynah-font-size-medium)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon>i{opacity:.2}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-trigger-icon>img{opacity:.5;width:var(--mynah-sizing-4);height:var(--mynah-sizing-4)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-title-wrapper{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:center;flex:1;overflow:hidden;color:var(--mynah-color-text-weak);gap:var(--mynah-sizing-1)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-title-wrapper>h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--mynah-color-text-default)}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper{display:inline-block;flex-grow:0}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill{transform:translate3d(0px, 0px, 0px) scale(0.74);margin-left:calc(-1*var(--mynah-sizing-1));display:inline-block;transform-origin:center right}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill,.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill *{pointer-events:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label{padding:0;display:flex;justify-content:center;text-decoration:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label:before{display:none}.mynah-search-history-items-wrapper>.mynah-search-history-button>span>.mynah-search-history-button-label>.mynah-search-history-item-context-wrapper>.mynah-context-pill>.mynah-context-checkbox-label>span{width:var(--mynah-sizing-4);overflow:visible;text-align:center}.pointer{cursor:pointer}.mynah-context-checkbox{display:none}.mynah-context-pill-groups-start{order:5;display:none}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{display:inline-flex}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must{margin-left:calc(-7*var(--mynah-sizing-half))}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must:before{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-must~.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{display:none}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{display:inline-flex}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot{margin-left:calc(-7*var(--mynah-sizing-half))}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot:before{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.mynah-context-pill-groups-start~.mynah-context-pill-group-item-mustNot~.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{display:none}.mynah-context-pill-group-item-must,.mynah-context-pill-group-item-mustNot{position:relative;display:inline-flex;overflow:visible;z-index:3;padding:calc(var(--mynah-sizing-1) + var(--mynah-sizing-half))}.mynah-context-pill-group-item-must:after,.mynah-context-pill-group-item-must:before,.mynah-context-pill-group-item-mustNot:after,.mynah-context-pill-group-item-mustNot:before{content:\\\"\\\";position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;border-radius:calc(var(--mynah-button-radius)*3/2);border:1px solid transparent}.mynah-context-pill-group-item-must:after,.mynah-context-pill-group-item-mustNot:after{background-color:var(--mynah-card-bg);z-index:1}.mynah-context-pill-group-item-must:hover,.mynah-context-pill-group-item-mustNot:hover{z-index:30}.mynah-context-pill-group-item-must{order:10}.mynah-context-pill-group-item-must:before{border-color:var(--mynah-color-status-info)}.mynah-context-pill-group-item-must>.mynah-context-pill>.mynah-context-pill-group-icon{color:var(--mynah-color-status-info)}.mynah-context-pill-group-item-mustNot{order:30}.mynah-context-pill-group-item-mustNot:before{border-color:var(--mynah-color-status-warning)}.mynah-context-pill-group-item-mustNot>.mynah-context-pill>.mynah-context-pill-group-icon{color:var(--mynah-color-status-warning)}.mynah-context-pill{position:relative;order:10;overflow:visible;transition:z-index 1ms 75ms linear;z-index:3;display:flex;flex-flow:row nowrap;align-items:center}.mynah-context-pill.mynah-context-hidden{display:none}.mynah-context-pill:hover{z-index:30}.mynah-context-pill>.mynah-context-pill-group-icon{display:none;font-size:var(--mynah-font-size-large);margin:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1)}.mynah-context-pill>.mynah-prioritise-button{position:absolute;z-index:3;top:0;transform-origin:center center;transform:translate3d(0, 0, 0);opacity:0;transition:var(--mynah-very-short-transition);pointer-events:none;min-width:0;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);right:calc(-1*var(--mynah-sizing-base));background-color:inherit;color:inherit;white-space:nowrap;border:var(--mynah-button-border-width) solid currentColor}.mynah-context-pill>.mynah-prioritise-button *{pointer-events:none}.mynah-context-pill:before{content:\\\"\\\";position:absolute;left:0;width:calc(100% + var(--mynah-sizing-9));top:calc(-1*var(--mynah-sizing-base));height:var(--mynah-sizing-10);opacity:0;pointer-events:none}.mynah-context-pill:hover>.mynah-prioritise-button{opacity:1}.mynah-context-pill.keep-active>.mynah-prioritise-button{opacity:1}.mynah-context-pill.keep-active,.mynah-context-pill:hover{transition-delay:1ms;z-index:1000}.mynah-context-pill.keep-active:before,.mynah-context-pill:hover:before{opacity:1;pointer-events:all}.mynah-context-pill.keep-active>.mynah-prioritise-button,.mynah-context-pill:hover>.mynah-prioritise-button{transform:translate3d(var(--mynah-sizing-8), 0, 0);pointer-events:all}.mynah-context-pill.keep-active>.mynah-context-checkbox-label:after,.mynah-context-pill:hover>.mynah-context-checkbox-label:after{opacity:1 !important}.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label{cursor:default}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-must-contain);color:var(--mynah-color-context-reverse)}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button:before,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-pill.mynah-must-contain>.mynah-prioritise-button:after,.mynah-context-pill.mynah-must-contain>.mynah-context-checkbox-label:after{opacity:.5}.mynah-context-pill.mynah-should-contain{order:20}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse)}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button:before,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-pill.mynah-should-contain>.mynah-prioritise-button>span,.mynah-context-pill.mynah-should-contain>.mynah-context-checkbox-label>span{opacity:.75}.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label{cursor:default}.mynah-context-pill.mynah-must-not-contain>.mynah-prioritise-button,.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label{background:var(--mynah-color-context-must-not-contain);color:var(--mynah-color-context-reverse);text-decoration:line-through;font-style:italic}.mynah-context-pill.mynah-must-not-contain>.mynah-prioritise-button>span,.mynah-context-pill.mynah-must-not-contain>.mynah-context-checkbox-label>span{opacity:.5}.mynah-context-checkbox-label{cursor:pointer;z-index:10;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse);padding:var(--mynah-sizing-2) var(--mynah-sizing-4) var(--mynah-sizing-2) var(--mynah-sizing-4);font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;border-radius:var(--mynah-button-radius);position:relative;overflow:hidden;display:inline-flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;transition:var(--mynah-short-transition);height:var(--mynah-sizing-8);max-height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-6);box-sizing:border-box;user-select:none}.mynah-context-checkbox-label>*:not(.filter-remove-button){pointer-events:none}.mynah-context-checkbox-label>i{font-size:var(--mynah-font-size-medium);margin-left:calc(-1*var(--mynah-sizing-2));margin-right:var(--mynah-sizing-base)}.mynah-context-checkbox-label.before-remove,.mynah-context-checkbox-label.before-remove *{pointer-events:none !important}.mynah-context-checkbox-label *{user-select:none}.mynah-context-checkbox-label.hidden{display:none}.mynah-context-checkbox-label>*{z-index:5;position:relative}.mynah-context-checkbox-label>.filter-remove-button{font-size:var(--mynah-font-size-medium);pointer-events:all;transition:var(--mynah-very-short-transition);transform-origin:center center;margin-right:calc(var(--mynah-sizing-3)*-1);margin-left:var(--mynah-sizing-half);position:relative;box-sizing:border-box;width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);display:flex;justify-content:center;align-items:center;cursor:pointer}.mynah-context-checkbox-label>.filter-remove-button:before{content:\\\"\\\";position:absolute;background-color:currentColor;transition:var(--mynah-short-transition);transform:translate3d(0, 0, 0) scale(0.5);opacity:0;top:var(--mynah-sizing-half);left:var(--mynah-sizing-half);width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);box-sizing:border-box}.mynah-context-checkbox-label>.filter-remove-button>i{transition:var(--mynah-short-transition);transform:translate3d(0, 0, 0) scale(0.85)}.mynah-context-checkbox-label>.filter-remove-button:hover:before{opacity:.15;transform:translate3d(0, 0, 0) scale(1)}.mynah-context-checkbox-label>.filter-remove-button:hover>i{transform:translate3d(0, 0, 0) scale(1)}.mynah-context-checkbox-label:after{pointer-events:none;content:\\\"\\\";transition:var(--mynah-short-transition-rev);position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;z-index:10;border-radius:var(--mynah-button-radius);border:var(--mynah-button-border-width) solid currentColor;opacity:.15}.mynah-context-checkbox-label#add-new-context{order:0;justify-content:center;font-size:var(--mynah-font-size-large);width:auto;max-width:100%;transition:var(--mynah-very-short-transition);flex:0 0 auto;min-width:90px}.mynah-context-checkbox-label#add-new-context.shake{border:1px solid rgba(0,0,0,0);animation:shake 700ms cubic-bezier(0.25, 0.5, 0, 1) backwards}.mynah-context-checkbox-label#add-new-context.context-insertion-activated{width:auto !important;pointer-events:none}.mynah-context-checkbox-label#add-new-context.context-insertion-activated:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%;backdrop-filter:brightness(var(--mynah-color-context-filter))}.mynah-context-checkbox-label#add-new-context.context-insertion-activated>.add-new-context-label,.mynah-context-checkbox-label#add-new-context.context-insertion-activated>i{display:none}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated){background-color:transparent;color:inherit;opacity:.65}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated)>.context-text-input{width:0px;opacity:0;padding:0}.mynah-context-checkbox-label#add-new-context:not(.context-insertion-activated)>.context-text-input+span{display:none}.mynah-context-checkbox-label#add-new-context>.add-new-context-label{font-size:var(--mynah-font-size-small);font-weight:normal;margin-left:var(--mynah-sizing-3);white-space:nowrap;text-overflow:ellipsis}.mynah-context-checkbox-label#add-new-context>i{margin-right:calc(var(--mynah-sizing-2)*-1)}.mynah-context-checkbox-label#add-new-context>.context-text-input{position:absolute;top:0;left:var(--mynah-sizing-4);width:calc(100% - var(--mynah-sizing-8));height:100%;box-sizing:border-box;background-color:transparent;overflow:hidden;opacity:1;pointer-events:all;display:inline-flex;flex-wrap:nowrap;align-items:center;border:none;outline:none;font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;color:var(--mynah-color-context-reverse)}.mynah-context-checkbox-label#add-new-context>.context-text-input::placeholder{color:var(--mynah-color-context-reverse);opacity:.5;font-weight:normal}.mynah-context-checkbox-label#add-new-context>.context-text-input+span{font-size:var(--mynah-font-size-small);font-family:sans-serif;font-weight:bold;color:rgba(0,0,0,0);user-select:none;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:clip;box-sizing:border-box;display:inline;margin-right:var(--mynah-sizing-1)}.mynah-prioritization-menu-buttons-container{display:inline-flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;gap:var(--mynah-sizing-2);padding:var(--mynah-sizing-4) var(--mynah-sizing-3) var(--mynah-sizing-4) var(--mynah-sizing-3);overflow:hidden;position:relative}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button{width:auto;transition:var(--mynah-long-transition);padding-left:var(--mynah-sizing-3);padding-right:var(--mynah-sizing-3);font-size:var(--mynah-font-size-small);white-space:nowrap;text-overflow:ellipsis;justify-content:flex-start;overflow:hidden;box-shadow:none;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse)}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button>span{padding-left:0}.mynah-prioritization-menu-buttons-container>.mynah-prioritise-button>i{font-size:var(--mynah-font-size-medium);margin-left:calc(-1*var(--mynah-sizing-1))}button.mynah-button{border:none;min-width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);border-radius:var(--mynah-button-radius);background-color:var(--mynah-color-button);color:var(--mynah-color-button-reverse);box-shadow:var(--mynah-shadow-generic);cursor:pointer;transition:var(--mynah-very-short-transition);display:inline-flex;justify-content:center;align-items:center;outline:none;overflow:hidden;position:relative;transform:translate3d(0, 0, 0) scale(1.00001);padding:0}button.mynah-button.mynah-button-secondary{background-color:transparent;color:inherit;box-shadow:none;opacity:.75}button.mynah-button.mynah-button-secondary:focus-visible,button.mynah-button.mynah-button-secondary:hover{opacity:1}button.mynah-button.mynah-button-secondary:active{box-shadow:none}button.mynah-button:focus-visible,button.mynah-button:hover{filter:brightness(0.925)}button.mynah-button:active{box-shadow:0 3px 10px -7px var(--mynah-color-button);filter:brightness(0.875)}button.mynah-button.mynah-icon-button{width:var(--mynah-sizing-10);height:var(--mynah-sizing-10)}button.mynah-button>.mynah-mutating-next-icon{width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);transform:translate3d(0, 0, 0) rotateZ(0deg);transition:var(--mynah-short-transition-turbo);transform-origin:center center;display:inline-flex;flex-flow:row nowrap;box-sizing:border-box;overflow:hidden;justify-content:center;align-items:center}button.mynah-button>.mynah-mutating-next-icon>i{font-size:var(--mynah-font-size-xlarge)}button.mynah-button>.mynah-mutating-next-icon>i.mynah-loading-spinner{min-width:var(--mynah-sizing-5);min-height:var(--mynah-sizing-5);border:3px solid currentColor;opacity:.5;box-sizing:border-box;border-top-color:rgba(0,0,0,0);border-radius:var(--mynah-sizing-5);animation:spin 1s infinite linear}button.mynah-button>.mynah-mutating-next-icon>i:nth-child(2){display:none}button.mynah-button>.mynah-search-history-icon{width:var(--mynah-sizing-6);height:var(--mynah-sizing-6);transform:translate3d(0, 0, 0) rotateZ(0deg);transition:var(--mynah-short-transition-turbo);transform-origin:center center;display:inline-flex;flex-flow:row nowrap;box-sizing:border-box;overflow:hidden;justify-content:center;align-items:center}button.mynah-button>.mynah-search-history-icon>i{font-size:2rem}button.mynah-button>.mynah-search-history-icon>i.mynah-history-icon{min-width:var(--mynah-sizing-5);min-height:var(--mynah-sizing-5);border:3px solid currentColor;opacity:.5;box-sizing:border-box;border-top-color:rgba(0,0,0,0);border-radius:var(--mynah-button-radius);animation:spin 1s infinite linear}button.mynah-button>.mynah-search-history-icon>i:nth-child(2){display:none}button.mynah-button.mynah-button-wait{background-color:var(--mynah-color-light);color:var(--mynah-color-text-default);box-shadow:0 5px 10px -10px var(--mynah-color-light);pointer-events:none}button.mynah-button.mynah-button-wait>.mynah-mutating-next-icon>i:first-child{display:none}button.mynah-button.mynah-button-wait>.mynah-mutating-next-icon>i:nth-child(2){display:block}button.mynah-button>span{white-space:nowrap;font-size:var(--mynah-font-size-medium);max-width:35vw;transition:var(--mynah-very-long-transition);overflow:hidden;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;padding-left:var(--mynah-sizing-3);padding-right:var(--mynah-sizing-3)}button.mynah-button>i+span{padding-left:var(--mynah-sizing-base)}.mynah-toggle-container{display:inline-flex;flex-flow:row nowrap;max-width:100%;overflow:hidden;align-items:center;justify-content:center;padding:var(--mynah-sizing-1);position:relative;background:var(--mynah-color-context-should-contain);color:var(--mynah-color-context-reverse);border-radius:var(--mynah-button-radius)}.mynah-toggle-container .mynah-toggle-option{display:none}.mynah-toggle-container .mynah-toggle-option:not(:first-child)+.mynah-toggle-option-label{margin-left:calc(-1*var(--mynah-sizing-1))}.mynah-toggle-container .mynah-toggle-option+.mynah-toggle-option-label{cursor:pointer;position:relative;z-index:100;padding:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-2);border-radius:var(--mynah-button-radius);min-height:var(--mynah-sizing-8);min-width:var(--mynah-sizing-8);box-sizing:border-box;display:inline-flex;overflow:hidden;justify-content:center;align-items:center}.mynah-toggle-container .mynah-toggle-option:checked+.mynah-toggle-option-label{pointer-events:none}.mynah-toggle-container .mynah-toggle-option[disabled=disabled]{pointer-events:none}.mynah-toggle-container .mynah-toggle-option[disabled=disabled]+.mynah-toggle-option-label{pointer-events:none;opacity:.25}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option+.mynah-toggle-option-label{transition:var(--mynah-short-transition-rev),background-color 1ms 0ms}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option:checked+.mynah-toggle-option-label{color:var(--mynah-color-button-reverse);background-color:var(--mynah-color-button);transition:var(--mynah-short-transition-rev),background-color 1ms 500ms}.mynah-toggle-container.mynah-toggle-type-switch .mynah-toggle-option:not(:checked)+.mynah-toggle-option-label{background-color:rgba(0,0,0,0) !important}.mynah-toggle-container.mynah-toggle-type-switch>.mynah-toggle-indicator-transitioner{top:calc(50% - var(--mynah-sizing-4))}.mynah-toggle-container>.mynah-toggle-indicator-transitioner{background-color:var(--mynah-color-button);display:inline-block;transition:var(--mynah-short-transition-rev);border-radius:var(--mynah-button-radius);position:absolute;z-index:30;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);left:calc(-1*var(--mynah-sizing-8))}.mynah-toggle-container>.mynah-toggle-indicator-transitioner.relocate{transition-duration:1ms}.mynah-toggle-container.mynah-toggle-type-tabs{flex-flow:row wrap;justify-content:flex-start}.mynah-toggle-container.mynah-toggle-type-tabs>.mynah-toggle-indicator-transitioner{height:var(--mynah-sizing-1);border-radius:0;left:calc(-1*var(--mynah-sizing-8));transform:translateY(var(--mynah-sizing-1))}.mynah-toggle-container.mynah-toggle-type-tabs>.mynah-toggle-indicator-transitioner.relocate{transition-duration:1ms}.mynah-toggle-container.mynah-toggle-type-tabs .mynah-toggle-option:checked+.mynah-toggle-option-label{color:var(--mynah-color-button);font-weight:600}.mynah-nav-tabs-wrapper{padding:0 var(--mynah-sizing-2) var(--mynah-sizing-2) var(--mynah-sizing-2);border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);background-color:var(--mynah-card-bg);margin-top:var(--mynah-sizing-3)}.mynah-nav-tabs-wrapper>.mynah-toggle-container{height:100%;background:none}.mynah-nav-tabs-wrapper>.mynah-toggle-container>span{white-space:nowrap}.mynah-nav-tabs-wrapper:empty{display:none}.mynah-nav-tabs-wrapper.mynah-nav-tabs-loading,.mynah-nav-tabs-wrapper.mynah-nav-tabs-loading *{pointer-events:none}.pointer{cursor:pointer}.mynah-history-must-contain{background:var(--mynah-color-context-must-contain)}.mynah-history-should-contain{background:var(--mynah-color-context-should-contain)}.mynah-history-must-not-contain{background:var(--mynah-color-context-must-not-contain)}.mynah-card{text-decoration:none;outline:none;position:relative;transition:var(--mynah-short-transition-rev);padding:var(--mynah-sizing-5);background-color:var(--mynah-color-bg);border-radius:var(--mynah-card-radius);box-sizing:border-box;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-3);transform:translate3d(0, 0, 0);flex:auto 0 0;width:100%;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);overflow:visible}.mynah-card:nth-child(0){z-index:5000}.mynah-card:nth-child(1){z-index:4900}.mynah-card:nth-child(2){z-index:4800}.mynah-card:nth-child(3){z-index:4700}.mynah-card:nth-child(4){z-index:4600}.mynah-card:nth-child(5){z-index:4500}.mynah-card:nth-child(6){z-index:4400}.mynah-card:nth-child(7){z-index:4300}.mynah-card:nth-child(8){z-index:4200}.mynah-card:nth-child(9){z-index:4100}.mynah-card:nth-child(10){z-index:4000}.mynah-card:nth-child(11){z-index:3900}.mynah-card:nth-child(12){z-index:3800}.mynah-card:nth-child(13){z-index:3700}.mynah-card:nth-child(14){z-index:3600}.mynah-card:nth-child(15){z-index:3500}.mynah-card:nth-child(16){z-index:3400}.mynah-card:nth-child(17){z-index:3300}.mynah-card:nth-child(18){z-index:3200}.mynah-card:nth-child(19){z-index:3100}.mynah-card:nth-child(20){z-index:3000}.mynah-card:nth-child(21){z-index:2900}.mynah-card:nth-child(22){z-index:2800}.mynah-card:nth-child(23){z-index:2700}.mynah-card:nth-child(24){z-index:2600}.mynah-card:nth-child(25){z-index:2500}.mynah-card:nth-child(26){z-index:2400}.mynah-card:nth-child(27){z-index:2300}.mynah-card:nth-child(28){z-index:2200}.mynah-card:nth-child(29){z-index:2100}.mynah-card:nth-child(30){z-index:2000}.mynah-card:nth-child(31){z-index:1900}.mynah-card:nth-child(32){z-index:1800}.mynah-card:nth-child(33){z-index:1700}.mynah-card:nth-child(34){z-index:1600}.mynah-card:nth-child(35){z-index:1500}.mynah-card:nth-child(36){z-index:1400}.mynah-card:nth-child(37){z-index:1300}.mynah-card:nth-child(38){z-index:1200}.mynah-card:nth-child(39){z-index:1100}.mynah-card:nth-child(40){z-index:1000}.mynah-card:nth-child(41){z-index:900}.mynah-card:nth-child(42){z-index:800}.mynah-card:nth-child(43){z-index:700}.mynah-card:nth-child(44){z-index:600}.mynah-card:nth-child(45){z-index:500}.mynah-card:nth-child(46){z-index:400}.mynah-card:nth-child(47){z-index:300}.mynah-card:nth-child(48){z-index:200}.mynah-card:nth-child(49){z-index:100}.mynah-card:nth-child(50){z-index:0}.mynah-card:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;box-shadow:var(--mynah-shadow-card);pointer-events:none;filter:brightness(50%) saturate(250%) contrast(250%);opacity:.4}.mynah-card:hover:active:before{box-shadow:var(--mynah-shadow-card-more);opacity:.75}.mynah-card>*{z-index:10;position:relative}.mynah-card:after{content:\\\"\\\";pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;background-color:var(--mynah-card-bg);border-radius:inherit;box-sizing:border-box;opacity:0;z-index:0;box-sizing:border-box;transform-origin:center center;transition:var(--mynah-very-short-transition);opacity:.6}.mynah-card:hover:before{border-color:var(--mynah-color-main);box-shadow:var(--mynah-shadow-card-more)}.mynah-card:hover:after{opacity:1}.mynah-card:hover>.mynah-card-header{opacity:1}.mynah-card>.mynah-card-header{display:flex;justify-content:space-between;align-items:center;opacity:.75;transition:var(--mynah-very-short-transition)}.mynah-card>.mynah-card-header>.mynah-source-thumbnail{font-style:normal;font-weight:normal;display:inline-flex;width:var(--mynah-sizing-11);height:var(--mynah-sizing-11);font-variant:normal;text-transform:none;border:1px solid var(--mynah-color-border-default);border-radius:100%;background-size:80%;background-position:center center;background-repeat:no-repeat;margin-right:var(--mynah-sizing-3);align-self:flex-start;box-sizing:border-box}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper{flex:1 1 0;display:flex;flex-flow:column nowrap;align-items:flex-start;gap:var(--mynah-sizing-half);max-width:100%;overflow:hidden;cursor:pointer}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper:hover>.mynah-card-title>.mynah-card-expand-icon{opacity:.75;align-self:baseline}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-title{font-size:var(--mynah-font-size-xlarge);font-weight:700;color:var(--mynah-color-text-strong);width:100%;display:inline-flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-2);white-space:normal;text-overflow:ellipsis;text-decoration:none;outline:none;overflow:hidden}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-title>.mynah-card-expand-icon{transition:var(--mynah-short-transition-rev);opacity:0;font-size:var(--mynah-font-size-xsmall);display:inline;padding:var(--mynah-sizing-1);border:1px solid currentColor;border-radius:2px}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url{font-size:var(--mynah-font-size-medium);font-weight:300;color:var(--mynah-color-text-link);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;outline:none;overflow:hidden;max-width:100%;position:relative;padding-bottom:var(--mynah-sizing-1);display:inline-block;transition:var(--mynah-short-transition-rev)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url:after{content:\\\"\\\";position:relative;display:block;bottom:0;left:0;width:100%;height:1px;border-radius:var(--mynah-sizing-half);background-color:currentColor;transform:translate3d(-30%, 0, 0);transition:var(--mynah-short-transition-rev);opacity:0}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url:hover:after{transform:translate3d(0, 0, 0);opacity:1}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:not(:last-child):after{content:\\\"/\\\";margin-left:var(--mynah-sizing-1);margin-right:var(--mynah-sizing-1)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:nth-child(3)~span:not(:last-child){display:none}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:last-child{font-weight:bold}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-card-url>span:nth-child(3):not(:last-child):after{content:\\\"/ ... /\\\"}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-1);margin-bottom:var(--mynah-sizing-half)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block:empty{display:none}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item{display:inline-flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;gap:var(--mynah-sizing-1);padding:var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);border:1px solid var(--mynah-color-border-default);border-radius:var(--mynah-button-radius)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-icon{opacity:.5;font-size:var(--mynah-font-size-medium)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-title-meta-block-item-text{font-size:var(--mynah-font-size-xsmall)}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item>.mynah-title-meta-block-item-text::first-letter{text-transform:capitalize}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer{border-color:green;position:relative}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer:before{content:\\\"\\\";border-radius:var(--mynah-button-radius);position:absolute;top:0;left:0;right:0;bottom:0;background-color:green;opacity:.04}.mynah-card>.mynah-card-header>.mynah-card-title-wrapper>.mynah-title-meta-block>.mynah-title-meta-block-item.approved-answer>.mynah-icon{opacity:1;color:green;border-radius:var(--mynah-button-radius);width:var(--mynah-sizing-5)}.mynah-card>.mynah-card-header.mynah-card-header-with-source-thumbnail+.mynah-card-context-wrapper>.mynah-card-tags{padding-left:var(--mynah-sizing-14)}.mynah-card>.mynah-card-center{border:var(--mynah-button-border-width) solid var(--mynah-border-default);width:100%;color:var(--mynah-color-text-default);flex:1 1 0%;overflow:hidden;line-height:var(--mynah-font-size-large);pointer-events:all;z-index:100;display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-center>*:not(pre){font-size:var(--mynah-font-size-medium)}.mynah-card>.mynah-card-center>.mynah-card-body{flex:1;overflow:hidden;position:relative}.mynah-card>.mynah-card-center>.mynah-card-body>*:first-child{margin-top:0}.mynah-card>.mynah-card-center>.mynah-card-body>*:last-child{margin-bottom:0}.mynah-card>.mynah-card-center>.mynah-card-body *{user-select:text}.mynah-card>.mynah-card-center>.mynah-card-body .amzn-mynah-search-result-highlight{background-color:var(--mynah-color-highlight);color:var(--mynah-color-highlight-text)}.mynah-card>.mynah-card-center>.mynah-card-body .amzn-mynah-search-result-ellipsis{display:block;margin-top:calc(-1em + var(--mynah-sizing-2));position:relative;padding-left:var(--mynah-sizing-2);margin-bottom:calc(1em - var(--mynah-sizing-1));font-size:calc(1em + var(--mynah-sizing-1)) !important;user-select:none;cursor:default}.mynah-card>.mynah-card-center>.mynah-card-body .amzn-mynah-search-result-ellipsis:before{pointer-events:none;content:\\\"\\\";width:calc(1em + var(--mynah-sizing-2));height:calc(1em + var(--mynah-sizing-2));position:absolute;left:0;top:0;background-color:currentColor;opacity:.1;border-radius:var(--mynah-sizing-1)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper{display:inline-flex;align-items:center;gap:var(--mynah-sizing-2)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-vote-text{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-xsmall)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote{position:relative;overflow:visible;display:inline-flex;align-items:center;height:var(--mynah-sizing-10);box-sizing:border-box;gap:calc(var(--mynah-sizing-half)*3);border-radius:var(--mynah-sizing-7)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-radio{display:none}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label{z-index:10;cursor:pointer;font-size:var(--mynah-font-size-small);transition:var(--mynah-short-transition);padding:var(--mynah-sizing-base);width:var(--mynah-sizing-5);height:var(--mynah-sizing-5);display:inline-flex;justify-content:center;align-items:center;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);border-radius:var(--mynah-sizing-8)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label>*{pointer-events:none}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-label>i{height:calc(var(--mynah-sizing-6) + var(--mynah-sizing-half))}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-indicator{pointer-events:none;content:\\\"\\\";transition:var(--mynah-short-transition);position:absolute;border-radius:var(--mynah-sizing-8);top:var(--mynah-sizing-1);left:0;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);z-index:1;transform-origin:left center;transform:translate3d(calc(var(--mynah-sizing-base) * -1), 0, 0)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-up-radio:checked~.mynah-vote-up{color:var(--mynah-color-main-reverse);border-color:transparent}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-up-radio:checked~.mynah-vote-indicator{transform:translate3d(0, 0, 0);background-color:var(--mynah-color-main);transform:translate3d(0, 0, 0) scale(1);box-shadow:var(--mynah-shadow-generic)}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-down-radio:checked~.mynah-vote-down{color:var(--mynah-color-alternate-reverse);border-color:transparent}.mynah-card>.mynah-card-center>.mynah-card-votes-wrapper>.mynah-card-vote>.mynah-vote-down-radio:checked~.mynah-vote-indicator{transform:translate3d(calc(var(--mynah-sizing-8) + var(--mynah-sizing-half)), 0, 0);background-color:var(--mynah-color-alternate);box-shadow:var(--mynah-shadow-generic)}.mynah-card>.mynah-card-context-wrapper{display:flex;flex-flow:column nowrap;gap:var(--mynah-sizing-6);padding-bottom:var(--mynah-sizing-4);margin-bottom:var(--mynah-sizing-2);border-bottom:1px solid var(--mynah-color-border-default)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-tags{display:inline-flex;flex-wrap:wrap;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges{display:inline-flex;gap:var(--mynah-sizing-3)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges:empty{display:none}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges>div{display:inline-flex;align-items:center;gap:var(--mynah-sizing-base);font-size:var(--mynah-font-size-small);color:var(--mynah-color-text-weak)}.mynah-card>.mynah-card-context-wrapper>.mynah-card-badges>div:not(:last-child){border-right:1px solid var(--mynah-color-border-default);padding-right:var(--mynah-sizing-3)}.mynah-card.mynah-card-skeleton{pointer-events:none !important}.mynah-card.mynah-card-skeleton *{color:rgba(0,0,0,0) !important;pointer-events:none !important}.mynah-card.mynah-card-skeleton i{color:var(--mynah-color-light) !important}.mynah-card.mynah-card-skeleton .mynah-vote-text,.mynah-card.mynah-card-skeleton .mynah-card-title{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton .mynah-card-url{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-text-link);opacity:.15 !important;line-height:.5rem}.mynah-card.mynah-card-skeleton .mynah-card-center p{z-index:0;border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton .mynah-card-center code{background-color:var(--mynah-color-code-text);opacity:.25;line-height:150%}.mynah-card.mynah-card-skeleton .mynah-card-badges span{border-radius:var(--mynah-sizing-base);background-color:var(--mynah-color-light)}.mynah-card.mynah-card-skeleton:last-child{-webkit-mask-image:var(--mynah-mask-image-skeleton);-webkit-mask-size:100% 100%;mask-image:var(--mynah-mask-image-skeleton);mask-size:100% 100%}.mynah-card.mynah-card-skeleton:after{content:\\\"\\\";opacity:1;background-color:var(--mynah-card-bg);transform:translate3d(0, 0, 0);border:none;background-image:linear-gradient(-75deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 30%, rgba(0, 0, 0, 0.05) 50%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0) 100%);background-size:500% 500%;animation:glass-reflection 2000ms 1000ms linear infinite}#mynah-feedback-form-portal{position:absolute;left:50%;top:0;width:100%;height:100%;overflow:visible;box-sizing:border-box;z-index:200000;pointer-events:none;transform:translate3d(-50%, 0, 0);max-width:1024px;color:var(--mynah-color-context-reverse);display:flex;justify-content:center;align-items:flex-end;flex-flow:row nowrap}#mynah-feedback-form-portal.not-revealed>.mynah-feedback-trigger-button{display:none}#mynah-feedback-form-portal>.mynah-feedback-trigger-button{transition:var(--mynah-short-transition-bounce);pointer-events:all;border-bottom-right-radius:0;border-bottom-left-radius:0;cursor:pointer}.mynah-feedback-form{pointer-events:all;box-sizing:border-box;transition:var(--mynah-short-transition-rev);padding:var(--mynah-sizing-4);transform:translate3d(0, 0, 0);border-radius:var(--mynah-card-radius);display:flex;flex-flow:column;gap:var(--mynah-sizing-2);align-items:flex-start;transform-origin:right bottom}.mynah-feedback-form>.mynah-feedback-form-comment{background-color:transparent;padding:var(--mynah-sizing-3);border:1px solid var(--mynah-color-border-default);resize:none;width:250px;max-width:40vw;height:100px;max-height:25vh;border-radius:var(--mynah-sizing-2);font-size:var(--mynah-font-size-small);outline:none;color:var(--mynah-color-text-input)}.mynah-feedback-form>.mynah-feedback-form-comment:disabled{opacity:.25}.mynah-feedback-form>.mynah-feedback-form-comment::placeholder{color:var(--mynah-color-text-weak);font-size:var(--mynah-font-size-small)}.mynah-feedback-form>.mynah-feedback-form-stars-container{display:inline-flex;flex-flow:row nowrap}.mynah-feedback-form>.mynah-feedback-form-stars-container>.mynah-feedback-form-star{cursor:pointer;padding-right:var(--mynah-sizing-1);color:var(--mynah-color-button);font-size:1.5rem;transition:var(--mynah-very-short-transition)}.mynah-feedback-form>.mynah-feedback-form-stars-container>.mynah-feedback-form-star>.mynah-icon{transition:var(--mynah-very-short-transition);opacity:.4;transform:translate3d(0, 0, 0) scale(0.6)}.mynah-feedback-form>.mynah-feedback-form-stars-container[selected-star]:not(:hover)>:not(.mynah-feedback-form-star.selected~.mynah-feedback-form-star)>.mynah-icon,.mynah-feedback-form>.mynah-feedback-form-stars-container:hover>:not(.mynah-feedback-form-star:hover~.mynah-feedback-form-star)>.mynah-icon{opacity:1;transform:translate3d(0, 0, 0) scale(1)}.mynah-feedback-form>.mynah-feedback-form-comment,.mynah-feedback-form>.mynah-feedback-form-stars-container{transition:var(--mynah-short-transition-rev);transform-origin:right bottom}.mynah-overlay{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;box-sizing:border-box;pointer-events:none;z-index:1000000}.mynah-overlay.mynah-overlay-dim-outside:before{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--mynah-color-bg);transition:var(--mynah-short-transition-rev-opacity);opacity:.45}.mynah-overlay>.mynah-overlay-container{--overlayLeftPos: 0;--overlayTopPos: 0;--overlayInnerHorizontalOrigin: left;--overlayInnerVerticalOrigin: top;position:absolute;display:block;overflow:visible;border-radius:var(--mynah-card-radius);transform:translate3d(var(--overlayLeftPos), var(--overlayTopPos), 0)}.mynah-overlay>.mynah-overlay-container:before{content:\\\"\\\";background-color:transparent;transition:var(--mynah-short-transition-rev);position:absolute;top:calc(var(--mynah-button-border-width)*-1);left:calc(var(--mynah-button-border-width)*-1);right:calc(var(--mynah-button-border-width)*-1);bottom:calc(var(--mynah-button-border-width)*-1);width:auto;height:auto;pointer-events:none;box-sizing:border-box;opacity:0;border:var(--mynah-button-border-width) solid var(--mynah-color-border-default);box-shadow:var(--mynah-shadow-prioritization-menu)}.mynah-overlay>.mynah-overlay-container:after{content:\\\"\\\";position:absolute;width:var(--mynah-sizing-8);height:var(--mynah-sizing-8);left:0;top:0;opacity:0;border:var(--mynah-sizing-4);background-color:var(--mynah-card-bg);border-radius:inherit;transition:var(--mynah-short-transition-rev);transition-delay:20ms}.mynah-overlay>.mynah-overlay-container.horizontal-direction-to-left,.mynah-overlay>.mynah-overlay-container.horizontal-direction-from-end-to-left{--overlayLeftPos: -100%;--overlayInnerHorizontalOrigin: right}.mynah-overlay>.mynah-overlay-container.horizontal-direction-to-left:after,.mynah-overlay>.mynah-overlay-container.horizontal-direction-from-end-to-left:after{left:calc(100% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.horizontal-direction-at-center{--overlayInnerHorizontalOrigin: center;--overlayLeftPos: -50%}.mynah-overlay>.mynah-overlay-container.horizontal-direction-at-center:after{left:calc(50% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.vertical-direction-to-top,.mynah-overlay>.mynah-overlay-container.vertical-direction-from-end-to-top{--overlayTopPos: -100%;--overlayInnerVerticalOrigin: bottom}.mynah-overlay>.mynah-overlay-container.vertical-direction-to-top:after,.mynah-overlay>.mynah-overlay-container.vertical-direction-from-end-to-top:after{top:calc(100% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container.vertical-direction-at-center{--overlayInnerVerticalOrigin: center;--overlayTopPos: -50%}.mynah-overlay>.mynah-overlay-container.vertical-direction-at-center:after{top:calc(50% - var(--mynah-sizing-4))}.mynah-overlay>.mynah-overlay-container>.mynah-overlay-inner-container{display:inline-block;overflow:hidden;z-index:10;position:relative;transform:translate3d(0, 0, 0) scale(0.85);transform-origin:var(--overlayInnerHorizontalOrigin) var(--overlayInnerVerticalOrigin);transition:var(--mynah-short-transition-rev)}.mynah-overlay>.mynah-overlay-container:before{transform:translate3d(0, 0, 0) scale(0.85);transition:var(--mynah-short-transition-rev)}.mynah-overlay>.mynah-overlay-container>.mynah-overlay-inner-container,.mynah-overlay>.mynah-overlay-container:before{opacity:0;transition-delay:0ms}.mynah-overlay:not(.mynah-overlay-open),.mynah-overlay:not(.mynah-overlay-open) *{pointer-events:none !important}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{transform:translate3d(0, 0, 0) scale(1)}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container:before{transform:translate3d(0, 0, 0) scale(1);transition-delay:50ms;opacity:1}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{transition-delay:20ms}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container>.mynah-overlay-inner-container{opacity:1}.mynah-overlay.mynah-overlay-open>.mynah-overlay-container:after{transition-delay:0ms;left:0;top:0;width:100%;height:100%;opacity:1}.mynah-overlay.mynah-overlay-open.mynah-overlay-close-on-outside-click{pointer-events:all}.mynah-notification{display:inline-flex;flex-flow:row nowrap;align-items:flex-start;justify-content:flex-start;gap:var(--mynah-sizing-3);padding:var(--mynah-sizing-5);overflow:hidden;position:relative}.mynah-notification.mynah-notification-clickable{pointer-events:all;cursor:pointer}.mynah-notification>.mynah-icon{font-size:var(--mynah-sizing-6)}.mynah-notification>.mynah-icon-ok-circled{color:var(--mynah-color-status-success)}.mynah-notification>.mynah-icon-info{color:var(--mynah-color-status-info)}.mynah-notification>.mynah-icon-warning{color:var(--mynah-color-status-warning)}.mynah-notification>.mynah-icon-error{color:var(--mynah-color-status-error)}.mynah-notification>.mynah-notification-container{flex:1;max-width:50vw;min-width:200px;display:inline-flex;flex-flow:column nowrap;align-items:flex-start;justify-content:flex-start;gap:var(--mynah-sizing-3);overflow:hidden;position:relative}.mynah-notification>.mynah-notification-container>.mynah-notification-title{margin:0}.mynah-notification>.mynah-notification-container>.mynah-notification-title:empty{display:none}.mynah-notification>.mynah-notification-container>.mynah-notification-content{font-size:var(--mynah-font-size-small);display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:flex-start;gap:var(--mynah-sizing-2)}.mynah-notification>.mynah-notification-container>.mynah-notification-content>.mynah-button{align-self:stretch;background-color:var(--mynah-color-alternate);color:var(--mynah-color-alternate-reverse)}.mynah-autocomplete-items-wrapper{display:flex;flex-flow:column nowrap;max-height:50vh;overflow-x:hidden;overflow-y:auto;--mynah-autocomplete-side-spacings: calc( var(--mynah-sizing-12) + var(--mynah-sizing-10) + var(--mynah-sizing-12) + var(--mynah-sizing-12) );width:calc(100vw - var(--mynah-autocomplete-side-spacings));max-width:calc(1024px - var(--mynah-autocomplete-side-spacings));box-sizing:border-box;position:relative;-webkit-mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);-webkit-mask-size:100% 100%;mask-image:linear-gradient(to bottom, transparent 0%, black var(--mynah-sizing-6), black calc(100% - var(--mynah-sizing-6)), transparent 100%);mask-size:100% 100%;padding-top:var(--mynah-sizing-3);padding-bottom:var(--mynah-sizing-3)}.mynah-autocomplete-items-wrapper.make-items-as-ghost,.mynah-autocomplete-items-wrapper.make-items-as-ghost *{pointer-events:none !important}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button{pointer-events:all;flex-shrink:0;height:auto;min-height:var(--mynah-sizing-7);padding:var(--mynah-sizing-3);background-color:transparent;border-radius:0%;color:var(--mynah-color-text-default)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button,.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:active{box-shadow:none}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:active:after{opacity:.1}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button:hover{background-color:var(--mynah-color-bg)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span{text-align:left;max-width:initial;width:100%;overflow:hidden;display:flex}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label{width:100%;display:flex;flex-flow:row nowrap;gap:var(--mynah-sizing-3);justify-content:flex-start;align-items:center;overflow:hidden}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper{display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:center;flex:1;overflow:hidden;color:var(--mynah-color-text-weak);gap:var(--mynah-sizing-1)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper>h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--mynah-color-text-default)}.mynah-autocomplete-items-wrapper>.mynah-autocomplete-button>span>.mynah-autocomplete-button-label>.mynah-autocomplete-title-wrapper>.autocomplete{font-weight:normal}.mynah-autocomplete-items-wrapper:not(:hover)>.mynah-autocomplete-button.hover{background-color:var(--mynah-color-bg)}.pointer{cursor:pointer}.mynah-syntax-highlighter{display:block;box-sizing:border-box;overflow:hidden;margin:0;margin-bottom:var(--mynah-sizing-3);border:1px solid var(--mynah-color-border-default);position:relative}.mynah-syntax-highlighter:before{content:\\\"\\\";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--vscode-terminal-dropBackground);opacity:.12;pointer-events:none;user-select:none}.mynah-syntax-highlighter>.mynah-syntax-highlighter-copy-buttons{justify-content:flex-end;display:flex;padding:var(--mynah-sizing-1);z-index:10}.mynah-syntax-highlighter>.mynah-syntax-highlighter-copy-buttons .mynah-button{font-size:var(--mynah-sizing-5);color:var(--mynah-color-button)}.mynah-syntax-highlighter:hover>.mynah-syntax-highlighter-copy-buttons{opacity:1}.mynah-syntax-highlighter>pre{padding:var(--mynah-sizing-3);margin:0;overflow-x:auto;overflow-y:hidden;position:relative}.mynah-syntax-highlighter>pre *,.mynah-syntax-highlighter>pre{font-size:var(--vscode-editor-font-size) !important;font-family:var(--vscode-editor-font-family) !important}.mynah-syntax-highlighter>pre>code{color:var(--vscode-terminal-ansiBlue);filter:brightness(0.95);white-space:pre}.mynah-syntax-highlighter>pre>code,.mynah-syntax-highlighter>pre{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;tab-size:4;hyphens:none}.mynah-syntax-highlighter>pre>code::selection,.mynah-syntax-highlighter>pre::selection{text-shadow:none;background:#b3d4fc}.mynah-syntax-highlighter>pre .token.comment,.mynah-syntax-highlighter>pre .token.prolog,.mynah-syntax-highlighter>pre .token.doctype,.mynah-syntax-highlighter>pre .token.cdata{color:var(--vscode-debugConsole-sourceForeground)}.mynah-syntax-highlighter>pre .token.punctuation{color:currentColor}.mynah-syntax-highlighter>pre .token.namespace{opacity:.7}.mynah-syntax-highlighter>pre .token.property,.mynah-syntax-highlighter>pre .token.tag,.mynah-syntax-highlighter>pre .token.boolean,.mynah-syntax-highlighter>pre .token.number,.mynah-syntax-highlighter>pre .token.constant,.mynah-syntax-highlighter>pre .token.symbol,.mynah-syntax-highlighter>pre .token.deleted{color:var(--vscode-terminal-ansiCyan)}.mynah-syntax-highlighter>pre .token.selector,.mynah-syntax-highlighter>pre .token.attr-name,.mynah-syntax-highlighter>pre .token.string,.mynah-syntax-highlighter>pre .token.char,.mynah-syntax-highlighter>pre .token.builtin,.mynah-syntax-highlighter>pre .token.inserted{color:var(--vscode-debugTokenExpression-string)}.mynah-syntax-highlighter>pre .token.operator,.mynah-syntax-highlighter>pre .token.entity,.mynah-syntax-highlighter>pre .token.url,.mynah-syntax-highlighter>pre .language-css .token.string,.mynah-syntax-highlighter>pre .style .token.string{color:var(--vscode-debugTokenExpression-name)}.mynah-syntax-highlighter>pre .token.atrule,.mynah-syntax-highlighter>pre .token.attr-value,.mynah-syntax-highlighter>pre .token.keyword{color:var(--vscode-debugIcon-stepBackForeground)}.mynah-syntax-highlighter>pre .token.class-name{color:var(--vscode-debugIcon-stepBackForeground)}.mynah-syntax-highlighter>pre .token.function{color:var(--vscode-gitDecoration-modifiedResourceForeground)}.mynah-syntax-highlighter>pre .token.regex,.mynah-syntax-highlighter>pre .token.important,.mynah-syntax-highlighter>pre .token.variable{color:var(--vscode-debugTokenExpression-name)}.mynah-syntax-highlighter>pre .token.important,.mynah-syntax-highlighter>pre .token.bold{font-weight:bold}.mynah-syntax-highlighter>pre .token.italic{font-style:italic}.mynah-syntax-highlighter>pre .token.entity{cursor:help}.mynah-syntax-highlighter>pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber;position:relative}.mynah-syntax-highlighter>pre>.line-numbers-rows{position:absolute;top:var(--mynah-sizing-3);font-size:100%;left:0;width:var(--mynah-sizing-12);overflow:hidden;text-overflow:clip;letter-spacing:-1px;border-right:1px solid var(--mynah-color-border-default)}.mynah-syntax-highlighter>pre>.line-numbers-rows>span,.mynah-syntax-highlighter>pre>.line-numbers-rows{pointer-events:none;user-select:none}.mynah-syntax-highlighter>pre>.line-numbers-rows>span{display:block;color:var(--mynah-color-border-default);padding-right:.8em;text-align:right}body,html{background-color:var(--mynah-color-bg);height:100%;width:100%;overflow:hidden;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--mynah-color-text-strong)}::-webkit-scrollbar{width:3px;height:3px;opacity:.5}*:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/_variables.scss\",\"webpack://./src/styles/_animations.scss\",\"webpack://./src/styles/components/_main-container.scss\",\"webpack://./src/styles/components/_search-block.scss\",\"webpack://./src/styles/_mixins.scss\",\"webpack://./src/styles/components/_search-history.scss\",\"webpack://./src/styles/components/_context-pill.scss\",\"webpack://./src/styles/components/_prioritization-menu.scss\",\"webpack://./src/styles/components/_button.scss\",\"webpack://./src/styles/components/_toggle.scss\",\"webpack://./src/styles/components/_nav-tabs.scss\",\"webpack://./src/styles/components/_card.scss\",\"webpack://./src/styles/components/_feedback-form.scss\",\"webpack://./src/styles/components/_overlay.scss\",\"webpack://./src/styles/components/_notification.scss\",\"webpack://./src/styles/components/_autocomplete.scss\",\"webpack://./src/styles/components/_syntax-highlighter.scss\",\"webpack://./src/styles/styles.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\":root {\\n font-size: var(--vscode-editor-font-size);\\n font-family: var(--vscode-editor-font-family);\\n\\n --mynah-sizing-base: 3px;\\n --mynah-sizing-half: calc(var(--mynah-sizing-base) / 2);\\n --mynah-sizing-1: var(--mynah-sizing-base);\\n --mynah-sizing-2: calc(var(--mynah-sizing-base) * 2);\\n --mynah-sizing-3: calc(var(--mynah-sizing-base) * 3);\\n --mynah-sizing-4: calc(var(--mynah-sizing-base) * 4);\\n --mynah-sizing-5: calc(var(--mynah-sizing-base) * 5);\\n --mynah-sizing-6: calc(var(--mynah-sizing-base) * 6);\\n --mynah-sizing-7: calc(var(--mynah-sizing-base) * 7);\\n --mynah-sizing-8: calc(var(--mynah-sizing-base) * 8);\\n --mynah-sizing-9: calc(var(--mynah-sizing-base) * 9);\\n --mynah-sizing-10: calc(var(--mynah-sizing-base) * 10);\\n --mynah-sizing-11: calc(var(--mynah-sizing-base) * 11);\\n --mynah-sizing-12: calc(var(--mynah-sizing-base) * 12);\\n --mynah-sizing-13: calc(var(--mynah-sizing-base) * 13);\\n --mynah-sizing-14: calc(var(--mynah-sizing-base) * 14);\\n --mynah-sizing-15: calc(var(--mynah-sizing-base) * 15);\\n --mynah-sizing-16: calc(var(--mynah-sizing-base) * 16);\\n --mynah-sizing-17: calc(var(--mynah-sizing-base) * 17);\\n --mynah-sizing-18: calc(var(--mynah-sizing-base) * 18);\\n --mynah-button-border-width: 1px;\\n\\n --mynah-color-text-default: var(--vscode-foreground);\\n --mynah-color-text-strong: var(--vscode-input-foreground);\\n --mynah-color-text-weak: var(--vscode-list-deemphasizedForeground);\\n --mynah-color-text-link: var(--vscode-textLink-foreground);\\n --mynah-color-text-input: var(--vscode-input-foreground);\\n\\n --mynah-color-bg: var(--vscode-sideBar-background);\\n --mynah-color-light: rgba(0, 0, 0, 0.05);\\n\\n --mynah-color-deep: var(--vscode-checkbox-background);\\n --mynah-color-deep-reverse: var(--vscode-checkbox-foreground);\\n --mynah-color-border-default: rgba(0, 0, 0, 0.1);\\n --mynah-color-input-bg: var(--vscode-input-background);\\n\\n --mynah-color-highlight: rgba(255, 199, 72, 0.3);\\n --mynah-color-highlight-text: #886411;\\n\\n --mynah-color-context-must-contain: #c7ebce;\\n --mynah-color-context-should-contain: var(--vscode-sideBar-background);\\n --mynah-color-context-must-not-contain: #f3cac7;\\n --mynah-color-context-reverse: rgba(0, 0, 0, 0.5);\\n --mynah-color-context-filter: 0.975;\\n\\n --mynah-color-status-info: var(--vscode-editorInfo-foreground);\\n --mynah-color-status-success: var(--vscode-list-activeSelectionBackground);\\n --mynah-color-status-warning: var(--vscode-editorWarning-foreground);\\n --mynah-color-status-error: var(--vscode-editorError-foreground);\\n\\n --mynah-color-button: var(--vscode-button-background);\\n --mynah-color-button-reverse: var(--vscode-button-foreground);\\n\\n --mynah-color-alternate: var(--vscode-button-secondaryBackground);\\n --mynah-color-alternate-reverse: var(--vscode-button-secondaryForeground);\\n\\n --mynah-color-code-bg: var(--mynah-color-bg);\\n --mynah-color-code-text: var(--vscode-textPreformat-foreground);\\n\\n --mynah-color-main: var(--vscode-button-background);\\n --mynah-color-main-reverse: var(--vscode-button-foreground);\\n\\n --mynah-card-bg: var(--vscode-editor-background);\\n\\n --mynah-shadow-generic: none;\\n --mynah-shadow-card: none;\\n --mynah-shadow-card-more: none;\\n --mynah-shadow-card-active: none;\\n --mynah-shadow-prioritization-menu: 0 10px 20px -10px var(--vscode-editorGroup-border);\\n --mynah-shadow-feedback-form: 0 0px 40px 0px var(--mynah-color-bg);\\n\\n --mynah-font-size-xsmall: 0.85rem;\\n --mynah-font-size-small: 0.95rem;\\n --mynah-font-size-medium: 1rem;\\n --mynah-font-size-large: 1.15rem;\\n --mynah-font-size-xlarge: 1.275rem;\\n\\n --mynah-card-radius: 0;\\n --mynah-button-radius: var(--mynah-sizing-1);\\n\\n --mynah-very-short-transition: all 250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-transform: transform 200ms cubic-bezier(0.85, 0.15, 0, 1);\\n --mynah-long-transition: all 370ms cubic-bezier(0.35, 1, 0.15, 1);\\n --mynah-pretty-long-transition: all 450ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-very-long-transition: all 1250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition: all 250ms cubic-bezier(0.85, 0.15, 0, 1);\\n --mynah-short-transition-rev: all 270ms cubic-bezier(0.35, 1, 0, 1);\\n --mynah-short-transition-rev-opacity: opacity 400ms cubic-bezier(0.35, 1, 0, 1);\\n --mynah-short-transition-reflection: all 650ms cubic-bezier(0.25, 1, 0, 1),\\n opacity 500ms 150ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-turbo: all 250ms cubic-bezier(0.25, 1, 0, 1);\\n --mynah-short-transition-turbo-bounce: all 350ms cubic-bezier(0.25, 1, 0, 1),\\n transform 450ms cubic-bezier(0.25, 4, 0, 1);\\n --mynah-short-transition-bounce: all 500ms cubic-bezier(0.25, 1, 0, 1),\\n transform 700ms cubic-bezier(0.25, 1.75, 0, 1);\\n\\n --mynah-mask-image: linear-gradient(\\n to bottom,\\n black var(--mynah-sizing-8),\\n black calc(100% - var(--mynah-sizing-14)),\\n transparent\\n );\\n --mynah-mask-image-rev: linear-gradient(to bottom, transparent 0%, transparent 80%, black 100%);\\n --mynah-mask-image-main: linear-gradient(\\n to bottom,\\n transparent,\\n black var(--mynah-sizing-6),\\n black calc(100% - var(--mynah-sizing-6)),\\n transparent\\n );\\n --mynah-mask-image-main-rev: linear-gradient(to bottom, black, transparent calc(100% - 2px), transparent);\\n\\n --mynah-mask-image-skeleton: linear-gradient(\\n to bottom,\\n black var(--mynah-sizing-8),\\n black calc(50% - var(--mynah-sizing-14)),\\n transparent\\n );\\n\\n --mynah-policy-group-filter: saturate(0.5) brightness(0.85);\\n}\\n\",\"@keyframes glass-reflection {\\n 0% {\\n background-position: 100% 50%;\\n }\\n 100% {\\n background-position: 0% 50%;\\n }\\n}\\n\\n@keyframes move-to-middle {\\n 0% {\\n transform: translate3d(-10%, 0, 0);\\n opacity: 0;\\n }\\n 100% {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n}\\n@keyframes move-to-right {\\n 0% {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n 100% {\\n transform: translate3d(10%, 0, 0);\\n opacity: 0;\\n }\\n}\\n\\n@keyframes shake {\\n 0% {\\n transform: translate3d(0, 0, 0);\\n border-color: red;\\n }\\n 10% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 20% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 30% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 40% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 50% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 60% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 70% {\\n transform: translate3d(5px, 0, 0);\\n }\\n 80% {\\n transform: translate3d(-5px, 0, 0);\\n }\\n 90% {\\n transform: translate3d(5px, 0, 0);\\n border-color: red;\\n }\\n 100% {\\n transform: translate3d(0, 0, 0);\\n border-color: rgba(0, 0, 0, 0);\\n }\\n}\\n\",\"#mynah-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n margin: 0 auto;\\n width: 100%;\\n max-width: 1024px;\\n box-sizing: border-box;\\n height: 100%;\\n padding: var(--mynah-sizing-3) 0 0 0;\\n .context-checkbox {\\n display: none;\\n }\\n\\n .mynah-main {\\n display: block;\\n box-sizing: border-box;\\n flex: 1 1 0;\\n overflow: hidden;\\n position: relative;\\n > .mynah-skeleton-wrapper,\\n > .mynah-cards-wrapper {\\n padding: var(--mynah-sizing-3) 0 var(--mynah-sizing-12) 0;\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-4);\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n height: 100%;\\n }\\n > .mynah-cards-wrapper {\\n overflow-x: hidden;\\n overflow-y: auto;\\n flex: 1 1 0;\\n transition: var(--mynah-long-transition);\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n > .mynah-no-suggestion-indicator {\\n display: flex;\\n box-sizing: border-box;\\n opacity: 0.5;\\n width: 100%;\\n padding: var(--mynah-sizing-12);\\n flex-flow: row nowrap;\\n justify-content: center;\\n align-items: flex-start;\\n }\\n }\\n > .mynah-skeleton-wrapper {\\n position: absolute;\\n transition: var(--mynah-long-transition);\\n top: 0;\\n left: 0;\\n margin: 0 auto;\\n width: 100%;\\n height: 100%;\\n z-index: 100;\\n pointer-events: none;\\n transform: translate3d(-10%, 0, 0);\\n opacity: 0;\\n }\\n &.mynah-hide-content {\\n > .mynah-cards-wrapper {\\n animation: move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n > .mynah-skeleton-wrapper {\\n pointer-events: all;\\n animation: move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n }\\n &.mynah-show-content {\\n > .mynah-cards-wrapper {\\n animation: move-to-middle 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n > .mynah-skeleton-wrapper {\\n pointer-events: none;\\n transition-delay: 450ms;\\n animation: move-to-right 750ms cubic-bezier(0.25, 0.5, 0, 1) both;\\n }\\n }\\n }\\n}\\n\\n@media screen and (max-width: 1024px) {\\n #mynah-wrapper {\\n padding-top: 0;\\n > .mynah-search-block {\\n border-left: none;\\n border-right: none;\\n border-top: none;\\n }\\n .mynah-main {\\n > .mynah-skeleton-wrapper,\\n > .mynah-cards-wrapper > .mynah-card {\\n border-right: none;\\n border-left: none;\\n }\\n }\\n }\\n}\\n\",\".mynah-search-block {\\n display: inline-flex;\\n flex-flow: row wrap;\\n justify-content: flex-end;\\n background-color: var(--mynah-card-bg);\\n border-radius: var(--mynah-card-radius);\\n box-shadow: var(--mynah-shadow-card);\\n transition: var(--mynah-short-transition-rev);\\n overflow: visible;\\n position: relative;\\n @include background-shadow;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n gap: var(--mynah-sizing-2);\\n\\n > .mynah-search-block-header {\\n width: 100%;\\n box-sizing: border-box;\\n overflow: hidden;\\n > .mynah-search-block-header-top-bar {\\n width: 100%;\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);\\n display: flex;\\n justify-content: space-between;\\n box-sizing: border-box;\\n overflow: hidden;\\n }\\n > .mynah-search-block-header-info-bar {\\n margin: 0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);\\n font-size: var(--mynah-font-size-small);\\n padding: var(--mynah-sizing-2);\\n position: relative;\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n > .mynah-search-block-header-info-bar-bg {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 0;\\n border-radius: var(--mynah-button-radius);\\n border: 1px solid var(--mynah-color-status-info);\\n box-sizing: border-box;\\n opacity: 0.2;\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n box-sizing: border-box;\\n background-color: var(--mynah-color-status-info);\\n opacity: 0.2;\\n }\\n & + .mynah-icon {\\n color: var(--mynah-color-status-info);\\n font-size: var(--mynah-font-size-large);\\n }\\n & ~ .mynah-search-block-header-info-bar-text,\\n & ~ .mynah-icon {\\n opacity: 0.75;\\n z-index: 1;\\n }\\n\\n &.mynah-header-info-ok-circled {\\n border-color: var(--mynah-color-status-success);\\n &::after {\\n background-color: var(--mynah-color-status-success);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-success);\\n }\\n }\\n &.mynah-header-info-warning {\\n border-color: var(--mynah-color-status-warning);\\n &::after {\\n background-color: var(--mynah-color-status-warning);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-warning);\\n }\\n }\\n &.mynah-header-info-error {\\n border-color: var(--mynah-color-status-error);\\n &::after {\\n background-color: var(--mynah-color-status-error);\\n }\\n & ~ .mynah-icon {\\n color: var(--mynah-color-status-error);\\n }\\n }\\n }\\n &:empty {\\n display: none;\\n }\\n }\\n }\\n\\n > .mnynah-search-block-fold-unfold-button {\\n position: absolute;\\n bottom: 0;\\n left: 50%;\\n margin-left: calc(-1 * var(--mynah-sizing-8) / 2);\\n margin-bottom: calc(-1 * var(--mynah-sizing-8) / 2);\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-8);\\n z-index: 999999;\\n transform: translate3d(0, 0, 0) scale(0.75);\\n opacity: 0;\\n pointer-events: none;\\n transition: var(--mynah-very-short-transition);\\n background-color: var(--mynah-card-bg);\\n color: var(--mynah-color-text-input);\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n font-size: var(--mynah-sizing-6);\\n > .mynah-icon {\\n &-up-open {\\n display: inline-flex;\\n }\\n &-down-open {\\n display: none;\\n }\\n }\\n }\\n\\n > .mynah-search-live-toggle-wrapper {\\n display: flex;\\n flex-flow: row nowrap;\\n justify-content: flex-end;\\n align-items: center;\\n gap: var(--mynah-sizing-1);\\n width: 100%;\\n padding: 0 var(--mynah-sizing-4) 0 0;\\n\\n &.mynah-hide-content,\\n &.mynah-hide-content * {\\n display: none;\\n }\\n\\n > .mynah-toggle-container > .mynah-toggle-indicator-transitioner {\\n &:before,\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n z-index: 10;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--mynah-color-status-success);\\n opacity: 0.35;\\n border-radius: 100%;\\n transform: translate3d(0, 0, 0) scale(0);\\n transform-origin: center center;\\n pointer-events: none;\\n }\\n }\\n &.flash-toggle > .mynah-toggle-container {\\n overflow: visible;\\n > .mynah-toggle-indicator-transitioner {\\n &:before,\\n &:after {\\n content: \\\"\\\";\\n transform: translate3d(0, 0, 0) scale(8);\\n opacity: 0;\\n transition: var(--mynah-short-transition);\\n transition-duration: 1750ms;\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(10);\\n transition-duration: 2000ms;\\n transition-delay: 200ms;\\n }\\n }\\n }\\n }\\n > .mynah-search-input-wrapper,\\n > .mynah-search-api-help {\\n color: var(--mynah-color-text-input);\\n width: 100%;\\n flex: 1 1 100%;\\n margin: 0 var(--mynah-sizing-4) 0 var(--mynah-sizing-4);\\n display: flex;\\n }\\n\\n > .mynah-search-api-help {\\n flex-flow: column nowrap;\\n padding: var(--mynah-sizing-half);\\n box-sizing: border-box;\\n border-radius: var(--mynah-card-radius);\\n overflow: hidden;\\n &.hide {\\n display: none;\\n }\\n > .mynah-search-api-help-code-view-wrapper {\\n width: 100%;\\n box-sizing: border-box;\\n overflow: hidden;\\n position: relative;\\n > .mynah-syntax-highlighter > pre {\\n width: 100%;\\n box-sizing: border-box;\\n max-height: 50vh;\\n overflow-x: auto;\\n overflow-y: auto;\\n }\\n }\\n\\n > .mynah-search-api-help-code-view-detail-row {\\n display: flex;\\n flex-flow: row nowrap;\\n width: 100%;\\n align-items: center;\\n gap: var(--mynah-sizing-1);\\n padding: 0 var(--mynah-sizing-3) 0 var(--mynah-sizing-3);\\n &:nth-child(1) {\\n margin-top: var(--mynah-sizing-3);\\n }\\n &:nth-child(2) {\\n margin-bottom: var(--mynah-sizing-3);\\n }\\n > *:nth-child(1) {\\n width: 110px;\\n margin: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n > *:nth-child(2) {\\n flex: 1 1 0%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n }\\n > .mynah-search-api-help-collapser {\\n display: flex;\\n flex-flow: row nowrap;\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-2) 0 var(--mynah-sizing-2);\\n justify-content: center;\\n align-items: center;\\n font-size: var(--mynah-sizing-6);\\n cursor: pointer;\\n > .mynah-search-api-help-uncollapse-icon {\\n display: none;\\n }\\n > .mynah-search-api-help-collapse-icon {\\n display: inline-flex;\\n }\\n }\\n\\n &.collapsed {\\n > .mynah-search-api-help-code-view-wrapper {\\n cursor: pointer;\\n > .mynah-syntax-highlighter > pre {\\n max-height: var(--mynah-sizing-16);\\n overflow-x: hidden;\\n overflow-y: hidden;\\n }\\n }\\n > .mynah-search-api-help-code-view-detail-row {\\n display: none;\\n }\\n > .mynah-search-api-help-collapser {\\n > .mynah-search-api-help-uncollapse-icon {\\n display: inline-flex;\\n }\\n > .mynah-search-api-help-collapse-icon {\\n display: none;\\n }\\n }\\n }\\n }\\n\\n > .mynah-search-input-wrapper {\\n border: 1px solid var(--mynah-color-border-default);\\n padding: var(--mynah-sizing-2);\\n border-radius: var(--mynah-card-radius);\\n flex-flow: row nowrap;\\n align-items: center;\\n gap: var(--mynah-sizing-2);\\n > .mynah-logo {\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n opacity: 0.5;\\n }\\n > .mynah-search-input {\\n flex: 1 1 0;\\n border: none;\\n background-color: rgba(0, 0, 0, 0);\\n font-size: var(--mynah-font-size-large);\\n color: var(--mynah-color-text-input);\\n outline: none;\\n width: 100%;\\n &::placeholder {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-small);\\n }\\n &:not(:placeholder-shown) + span {\\n display: inline-block;\\n }\\n &:placeholder-shown:not(.search-always-active) ~ .mynah-search-button {\\n background-color: var(--mynah-color-light);\\n color: var(--mynah-color-text-default);\\n box-shadow: 0 5px 10px -10px var(--mynah-color-light);\\n pointer-events: none;\\n > * {\\n opacity: 0.5;\\n }\\n }\\n & + span {\\n &:after {\\n content: attr(remaining-chars) \\\"/\\\" attr(max-chars);\\n }\\n display: none;\\n opacity: 0.5;\\n font-size: var(--mynah-font-size-xsmall);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n color: currentColor;\\n margin-left: var(--mynah-sizing-1);\\n }\\n }\\n }\\n > .mynah-search-block-advanced-control {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n overflow: hidden;\\n width: 100%;\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-4) var(--mynah-sizing-4) var(--mynah-sizing-4);\\n transition: var(--mynah-very-short-transition);\\n max-height: 50vh;\\n > .mynah-context-wrapper {\\n display: flex;\\n flex-flow: row wrap;\\n gap: var(--mynah-sizing-2);\\n flex: 1 1 0%;\\n align-items: center;\\n }\\n }\\n\\n &.mynah-search-block-ready-to-fold {\\n > .mnynah-search-block-fold-unfold-button {\\n transform: translate3d(0, 0, 0) scale(1.000001);\\n opacity: 1;\\n pointer-events: all;\\n }\\n &:not(.mynah-search-block-unfold) {\\n > .mnynah-search-block-fold-unfold-button {\\n > .mynah-icon-up-open {\\n display: none;\\n }\\n > .mynah-icon-down-open {\\n display: inline-flex;\\n }\\n }\\n > .mynah-search-block-advanced-control {\\n max-height: 0;\\n opacity: 0.4;\\n -webkit-mask-image: var(--mynah-mask-image-main-rev);\\n -webkit-mask-size: 100% 150%;\\n mask-image: var(--mynah-mask-image-main-rev);\\n mask-size: 100% 200%;\\n > #add-new-context {\\n transform: translate3d(0, calc(-1 * var(--mynah-sizing-10)), 0) scale(0.5) !important;\\n opacity: 0 !important;\\n margin-bottom: calc(-1 * var(--mynah-sizing-10));\\n }\\n }\\n }\\n }\\n}\\n\\n@media screen and (max-width: 1024px) {\\n .mynah-search-block {\\n border-radius: 0;\\n margin: 0;\\n }\\n}\\n\",\"@mixin background-shadow {\\n overflow: visible;\\n &:before {\\n content: \\\"\\\";\\n background-color: transparent;\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border-radius: inherit;\\n box-shadow: var(--mynah-shadow-card);\\n pointer-events: none;\\n filter: brightness(50%) saturate(250%) contrast(250%);\\n opacity: 0.4;\\n }\\n}\\n\\n@mixin lighten-darken {\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n backdrop-filter: brightness(var(--mynah-color-context-filter));\\n }\\n}\\n\\n@mixin list-fader {\\n position: relative;\\n $listFader: linear-gradient(\\n to bottom,\\n transparent 0%,\\n black var(--mynah-sizing-6),\\n black calc(100% - var(--mynah-sizing-6)),\\n transparent 100%\\n );\\n -webkit-mask-image: $listFader;\\n -webkit-mask-size: 100% 100%;\\n mask-image: $listFader;\\n mask-size: 100% 100%;\\n}\\n\\n@mixin context-pill-group-background {\\n &:after,\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 2;\\n border-radius: calc(var(--mynah-button-radius) * 3 / 2);\\n border: 1px solid transparent;\\n }\\n &:after {\\n background-color: var(--mynah-card-bg);\\n z-index: 1;\\n }\\n}\\n\",\".mynah-search-history-items-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n max-height: 50vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n width: 70vw;\\n max-width: 450px;\\n box-sizing: border-box;\\n @include list-fader();\\n padding: var(--mynah-sizing-3);\\n gap: var(--mynah-sizing-3);\\n > .mynah-search-history-button {\\n flex-shrink: 0;\\n height: auto;\\n min-height: var(--mynah-sizing-14);\\n background-color: transparent;\\n border: 1px solid var(--mynah-color-bg);\\n color: var(--mynah-color-text-default);\\n border-radius: var(--mynah-button-radius);\\n padding: var(--mynah-sizing-3);\\n &,\\n &:active {\\n box-shadow: none;\\n }\\n &:active:after {\\n opacity: 0.1;\\n }\\n > span {\\n text-align: left;\\n max-width: initial;\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n > .mynah-search-history-button-label {\\n width: 100%;\\n display: flex;\\n flex-flow: row nowrap;\\n gap: var(--mynah-sizing-3);\\n justify-content: flex-start;\\n align-items: center;\\n overflow: hidden;\\n > .mynah-search-history-trigger-icon {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n font-size: var(--mynah-font-size-medium);\\n > i {\\n opacity: 0.2;\\n }\\n > img {\\n opacity: 0.5;\\n width: var(--mynah-sizing-4);\\n height: var(--mynah-sizing-4);\\n }\\n }\\n > .mynah-search-history-title-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: center;\\n flex: 1;\\n overflow: hidden;\\n color: var(--mynah-color-text-weak);\\n gap: var(--mynah-sizing-1);\\n > h3 {\\n width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n margin: 0;\\n color: var(--mynah-color-text-default);\\n }\\n }\\n > .mynah-search-history-item-context-wrapper {\\n display: inline-block;\\n flex-grow: 0;\\n > .mynah-context-pill {\\n transform: translate3d(0px, 0px, 0px) scale(0.74);\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n display: inline-block;\\n transform-origin: center right;\\n &,\\n & * {\\n pointer-events: none;\\n }\\n > .mynah-context-checkbox-label {\\n padding: 0;\\n display: flex;\\n justify-content: center;\\n text-decoration: none;\\n &:before {\\n display: none;\\n }\\n > span {\\n width: var(--mynah-sizing-4);\\n overflow: visible;\\n text-align: center;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n\",\".mynah-context-checkbox {\\n display: none;\\n}\\n\\n.mynah-context-pill-groups-start {\\n order: 5;\\n display: none;\\n & ~ .mynah-context-pill-group-item-must {\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: inline-flex;\\n }\\n & ~ .mynah-context-pill-group-item-must {\\n &:before {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: none;\\n }\\n margin-left: calc(-7 * var(--mynah-sizing-half));\\n }\\n }\\n & ~ .mynah-context-pill-group-item-mustNot {\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: inline-flex;\\n }\\n & ~ .mynah-context-pill-group-item-mustNot {\\n &:before {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n display: none;\\n }\\n margin-left: calc(-7 * var(--mynah-sizing-half));\\n }\\n }\\n}\\n\\n.mynah-context-pill-group-item-must,\\n.mynah-context-pill-group-item-mustNot {\\n position: relative;\\n display: inline-flex;\\n overflow: visible;\\n @include context-pill-group-background();\\n z-index: 3;\\n padding: calc(var(--mynah-sizing-1) + var(--mynah-sizing-half));\\n &:hover {\\n z-index: 30;\\n }\\n}\\n.mynah-context-pill-group-item-must {\\n order: 10;\\n &:before {\\n border-color: var(--mynah-color-status-info);\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n color: var(--mynah-color-status-info);\\n }\\n}\\n.mynah-context-pill-group-item-mustNot {\\n order: 30;\\n &:before {\\n border-color: var(--mynah-color-status-warning);\\n }\\n > .mynah-context-pill > .mynah-context-pill-group-icon {\\n color: var(--mynah-color-status-warning);\\n }\\n}\\n\\n.mynah-context-pill {\\n position: relative;\\n order: 10;\\n overflow: visible;\\n transition: z-index 1ms 75ms linear;\\n z-index: 3;\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n &.mynah-context-hidden {\\n display: none;\\n }\\n &:hover {\\n z-index: 30;\\n }\\n > .mynah-context-pill-group-icon {\\n display: none;\\n font-size: var(--mynah-font-size-large);\\n margin: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);\\n }\\n > .mynah-prioritise-button {\\n position: absolute;\\n z-index: 3;\\n top: 0;\\n transform-origin: center center;\\n transform: translate3d(0, 0, 0);\\n opacity: 0;\\n transition: var(--mynah-very-short-transition);\\n pointer-events: none;\\n min-width: 0;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n right: calc(-1 * var(--mynah-sizing-base));\\n background-color: inherit;\\n color: inherit;\\n white-space: nowrap;\\n border: var(--mynah-button-border-width) solid currentColor;\\n * {\\n pointer-events: none;\\n }\\n }\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n left: 0;\\n width: calc(100% + var(--mynah-sizing-9));\\n top: calc(-1 * var(--mynah-sizing-base));\\n height: var(--mynah-sizing-10);\\n opacity: 0;\\n pointer-events: none;\\n }\\n &:hover {\\n > .mynah-prioritise-button {\\n opacity: 1;\\n }\\n }\\n &.keep-active {\\n > .mynah-prioritise-button {\\n opacity: 1;\\n }\\n }\\n &.keep-active,\\n &:hover {\\n transition-delay: 1ms;\\n z-index: 1000;\\n &:before {\\n opacity: 1;\\n pointer-events: all;\\n }\\n > .mynah-prioritise-button {\\n transform: translate3d(var(--mynah-sizing-8), 0, 0);\\n pointer-events: all;\\n }\\n > .mynah-context-checkbox-label {\\n &:after {\\n opacity: 1 !important;\\n }\\n }\\n }\\n\\n &.mynah-must-contain {\\n > .mynah-context-checkbox-label {\\n cursor: default;\\n }\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-must-contain);\\n color: var(--mynah-color-context-reverse);\\n @include lighten-darken();\\n &:after {\\n opacity: 0.5;\\n }\\n }\\n }\\n &.mynah-should-contain {\\n order: 20;\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n @include lighten-darken();\\n > span {\\n opacity: 0.75;\\n }\\n }\\n }\\n &.mynah-must-not-contain {\\n > .mynah-context-checkbox-label {\\n cursor: default;\\n }\\n > .mynah-prioritise-button,\\n > .mynah-context-checkbox-label {\\n background: var(--mynah-color-context-must-not-contain);\\n color: var(--mynah-color-context-reverse);\\n text-decoration: line-through;\\n font-style: italic;\\n > span {\\n opacity: 0.5;\\n }\\n }\\n }\\n}\\n\\n.mynah-context-checkbox-label {\\n cursor: pointer;\\n z-index: 10;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n padding: var(--mynah-sizing-2) var(--mynah-sizing-4) var(--mynah-sizing-2) var(--mynah-sizing-4);\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n border-radius: var(--mynah-button-radius);\\n position: relative;\\n overflow: hidden;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n justify-content: flex-start;\\n align-items: center;\\n transition: var(--mynah-short-transition);\\n height: var(--mynah-sizing-8);\\n max-height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-6);\\n box-sizing: border-box;\\n user-select: none;\\n > *:not(.filter-remove-button) {\\n pointer-events: none;\\n }\\n > i {\\n font-size: var(--mynah-font-size-medium);\\n margin-left: calc(-1 * var(--mynah-sizing-2));\\n margin-right: var(--mynah-sizing-base);\\n }\\n &.before-remove,\\n &.before-remove * {\\n pointer-events: none !important;\\n }\\n * {\\n user-select: none;\\n }\\n &.hidden {\\n display: none;\\n }\\n > * {\\n z-index: 5;\\n position: relative;\\n }\\n > .filter-remove-button {\\n font-size: var(--mynah-font-size-medium);\\n pointer-events: all;\\n transition: var(--mynah-very-short-transition);\\n transform-origin: center center;\\n margin-right: calc(var(--mynah-sizing-3) * -1);\\n margin-left: var(--mynah-sizing-half);\\n position: relative;\\n box-sizing: border-box;\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n &:before {\\n content: \\\"\\\";\\n position: absolute;\\n background-color: currentColor;\\n transition: var(--mynah-short-transition);\\n transform: translate3d(0, 0, 0) scale(0.5);\\n opacity: 0;\\n top: var(--mynah-sizing-half);\\n left: var(--mynah-sizing-half);\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n box-sizing: border-box;\\n }\\n > i {\\n transition: var(--mynah-short-transition);\\n transform: translate3d(0, 0, 0) scale(0.85);\\n }\\n &:hover {\\n &:before {\\n opacity: 0.15;\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n > i {\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n }\\n }\\n &:after {\\n pointer-events: none;\\n content: \\\"\\\";\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: auto;\\n height: auto;\\n z-index: 10;\\n border-radius: var(--mynah-button-radius);\\n border: var(--mynah-button-border-width) solid currentColor;\\n opacity: 0.15;\\n }\\n\\n &#add-new-context {\\n order: 0;\\n justify-content: center;\\n font-size: var(--mynah-font-size-large);\\n width: auto;\\n max-width: 100%;\\n transition: var(--mynah-very-short-transition);\\n flex: 0 0 auto;\\n min-width: 90px;\\n\\n &.shake {\\n border: 1px solid rgba(0, 0, 0, 0);\\n animation: shake 700ms cubic-bezier(0.25, 0.5, 0, 1) backwards;\\n }\\n &.context-insertion-activated {\\n width: auto !important;\\n pointer-events: none;\\n @include lighten-darken();\\n > .add-new-context-label,\\n > i {\\n display: none;\\n }\\n }\\n &:not(.context-insertion-activated) {\\n > .context-text-input {\\n width: 0px;\\n opacity: 0;\\n padding: 0;\\n & + span {\\n display: none;\\n }\\n }\\n background-color: transparent;\\n color: inherit;\\n opacity: 0.65;\\n }\\n > .add-new-context-label {\\n font-size: var(--mynah-font-size-small);\\n font-weight: normal;\\n margin-left: var(--mynah-sizing-3);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n }\\n > i {\\n margin-right: calc(var(--mynah-sizing-2) * -1);\\n }\\n > .context-text-input {\\n position: absolute;\\n top: 0;\\n left: var(--mynah-sizing-4);\\n width: calc(100% - var(--mynah-sizing-8));\\n height: 100%;\\n box-sizing: border-box;\\n background-color: transparent;\\n overflow: hidden;\\n opacity: 1;\\n pointer-events: all;\\n display: inline-flex;\\n flex-wrap: nowrap;\\n align-items: center;\\n border: none;\\n outline: none;\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n color: var(--mynah-color-context-reverse);\\n &::placeholder {\\n color: var(--mynah-color-context-reverse);\\n opacity: 0.5;\\n font-weight: normal;\\n }\\n & + span {\\n font-size: var(--mynah-font-size-small);\\n font-family: sans-serif;\\n font-weight: bold;\\n color: rgba(0, 0, 0, 0);\\n user-select: none;\\n pointer-events: none;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: clip;\\n box-sizing: border-box;\\n display: inline;\\n margin-right: var(--mynah-sizing-1);\\n }\\n }\\n }\\n}\\n\",\".mynah-prioritization-menu-buttons-container {\\n display: inline-flex;\\n flex-flow: column nowrap;\\n align-items: stretch;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n padding: var(--mynah-sizing-4) var(--mynah-sizing-3) var(--mynah-sizing-4) var(--mynah-sizing-3);\\n overflow: hidden;\\n position: relative;\\n > .mynah-prioritise-button {\\n width: auto;\\n transition: var(--mynah-long-transition);\\n padding-left: var(--mynah-sizing-3);\\n padding-right: var(--mynah-sizing-3);\\n font-size: var(--mynah-font-size-small);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n justify-content: flex-start;\\n overflow: hidden;\\n box-shadow: none;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n > span {\\n padding-left: 0;\\n }\\n > i {\\n font-size: var(--mynah-font-size-medium);\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n }\\n }\\n}\\n\",\"button.mynah-button {\\n border: none;\\n min-width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n border-radius: var(--mynah-button-radius);\\n background-color: var(--mynah-color-button);\\n color: var(--mynah-color-button-reverse);\\n box-shadow: var(--mynah-shadow-generic);\\n cursor: pointer;\\n transition: var(--mynah-very-short-transition);\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n outline: none;\\n overflow: hidden;\\n position: relative;\\n transform: translate3d(0, 0, 0) scale(1.00001);\\n padding: 0;\\n &.mynah-button-secondary {\\n background-color: transparent;\\n color: inherit;\\n box-shadow: none;\\n opacity: 0.75;\\n &:focus-visible,\\n &:hover {\\n opacity: 1;\\n }\\n &:active {\\n box-shadow: none;\\n }\\n }\\n &:focus-visible,\\n &:hover {\\n filter: brightness(0.925);\\n }\\n &:active {\\n box-shadow: 0 3px 10px -7px var(--mynah-color-button);\\n filter: brightness(0.875);\\n }\\n &.mynah-icon-button {\\n width: var(--mynah-sizing-10);\\n height: var(--mynah-sizing-10);\\n }\\n > .mynah-mutating-next-icon {\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n transform: translate3d(0, 0, 0) rotateZ(0deg);\\n transition: var(--mynah-short-transition-turbo);\\n transform-origin: center center;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n box-sizing: border-box;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n > i {\\n font-size: var(--mynah-font-size-xlarge);\\n &.mynah-loading-spinner {\\n min-width: var(--mynah-sizing-5);\\n min-height: var(--mynah-sizing-5);\\n border: 3px solid currentColor;\\n opacity: 0.5;\\n box-sizing: border-box;\\n border-top-color: rgba(0, 0, 0, 0);\\n border-radius: var(--mynah-sizing-5);\\n animation: spin 1s infinite linear;\\n }\\n &:nth-child(2) {\\n display: none;\\n }\\n }\\n }\\n > .mynah-search-history-icon {\\n width: var(--mynah-sizing-6);\\n height: var(--mynah-sizing-6);\\n transform: translate3d(0, 0, 0) rotateZ(0deg);\\n transition: var(--mynah-short-transition-turbo);\\n transform-origin: center center;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n box-sizing: border-box;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n > i {\\n font-size: 2rem;\\n &.mynah-history-icon {\\n min-width: var(--mynah-sizing-5);\\n min-height: var(--mynah-sizing-5);\\n border: 3px solid currentColor;\\n opacity: 0.5;\\n box-sizing: border-box;\\n border-top-color: rgba(0, 0, 0, 0);\\n border-radius: var(--mynah-button-radius);\\n animation: spin 1s infinite linear;\\n }\\n &:nth-child(2) {\\n display: none;\\n }\\n }\\n }\\n &.mynah-button-wait {\\n background-color: var(--mynah-color-light);\\n color: var(--mynah-color-text-default);\\n box-shadow: 0 5px 10px -10px var(--mynah-color-light);\\n pointer-events: none;\\n > .mynah-mutating-next-icon > i {\\n &:first-child {\\n display: none;\\n }\\n &:nth-child(2) {\\n display: block;\\n }\\n }\\n }\\n > span {\\n white-space: nowrap;\\n font-size: var(--mynah-font-size-medium);\\n max-width: 35vw;\\n transition: var(--mynah-very-long-transition);\\n overflow: hidden;\\n box-sizing: border-box;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n padding-left: var(--mynah-sizing-3);\\n padding-right: var(--mynah-sizing-3);\\n }\\n > i + span {\\n padding-left: var(--mynah-sizing-base);\\n }\\n}\\n\",\".mynah-toggle-container {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n max-width: 100%;\\n overflow: hidden;\\n align-items: center;\\n justify-content: center;\\n padding: var(--mynah-sizing-1);\\n position: relative;\\n background: var(--mynah-color-context-should-contain);\\n color: var(--mynah-color-context-reverse);\\n border-radius: var(--mynah-button-radius);\\n .mynah-toggle-option {\\n display: none;\\n &:not(:first-child) + .mynah-toggle-option-label {\\n margin-left: calc(-1 * var(--mynah-sizing-1));\\n }\\n & + .mynah-toggle-option-label {\\n cursor: pointer;\\n position: relative;\\n z-index: 100;\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-2);\\n border-radius: var(--mynah-button-radius);\\n min-height: var(--mynah-sizing-8);\\n min-width: var(--mynah-sizing-8);\\n box-sizing: border-box;\\n display: inline-flex;\\n overflow: hidden;\\n justify-content: center;\\n align-items: center;\\n }\\n &:checked + .mynah-toggle-option-label {\\n pointer-events: none;\\n }\\n &[disabled=\\\"disabled\\\"] {\\n pointer-events: none;\\n & + .mynah-toggle-option-label {\\n pointer-events: none;\\n opacity: 0.25;\\n }\\n }\\n }\\n &.mynah-toggle-type-switch {\\n .mynah-toggle-option {\\n & + .mynah-toggle-option-label {\\n transition: var(--mynah-short-transition-rev), background-color 1ms 0ms;\\n }\\n &:checked + .mynah-toggle-option-label {\\n color: var(--mynah-color-button-reverse);\\n background-color: var(--mynah-color-button);\\n transition: var(--mynah-short-transition-rev), background-color 1ms 500ms;\\n }\\n &:not(:checked) + .mynah-toggle-option-label {\\n background-color: rgba(0, 0, 0, 0) !important;\\n }\\n }\\n > .mynah-toggle-indicator-transitioner {\\n top: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n > .mynah-toggle-indicator-transitioner {\\n background-color: var(--mynah-color-button);\\n display: inline-block;\\n transition: var(--mynah-short-transition-rev);\\n border-radius: var(--mynah-button-radius);\\n position: absolute;\\n z-index: 30;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n left: calc(-1 * var(--mynah-sizing-8));\\n &.relocate {\\n transition-duration: 1ms;\\n }\\n }\\n &.mynah-toggle-type-tabs {\\n flex-flow: row wrap;\\n justify-content: flex-start;\\n > .mynah-toggle-indicator-transitioner {\\n height: var(--mynah-sizing-1);\\n border-radius: 0;\\n left: calc(-1 * var(--mynah-sizing-8));\\n transform: translateY(var(--mynah-sizing-1));\\n &.relocate {\\n transition-duration: 1ms;\\n }\\n }\\n .mynah-toggle-option {\\n &:checked + .mynah-toggle-option-label {\\n color: var(--mynah-color-button);\\n font-weight: 600;\\n }\\n }\\n }\\n}\\n\",\".mynah-nav-tabs-wrapper {\\n padding: 0 var(--mynah-sizing-2) var(--mynah-sizing-2) var(--mynah-sizing-2);\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n background-color: var(--mynah-card-bg);\\n margin-top: var(--mynah-sizing-3);\\n\\n > .mynah-toggle-container {\\n height: 100%;\\n background: none;\\n > span {\\n white-space: nowrap;\\n }\\n }\\n &:empty {\\n display: none;\\n }\\n\\n &.mynah-nav-tabs-loading,\\n &.mynah-nav-tabs-loading * {\\n pointer-events: none;\\n }\\n}\\n\",\".pointer {\\n cursor: pointer;\\n}\\n\\n.mynah-history-must-contain {\\n background: var(--mynah-color-context-must-contain);\\n}\\n.mynah-history-should-contain {\\n background: var(--mynah-color-context-should-contain);\\n}\\n.mynah-history-must-not-contain {\\n background: var(--mynah-color-context-must-not-contain);\\n}\\n\\n.mynah-card {\\n @for $i from 0 through 50 {\\n &:nth-child(#{$i}) {\\n z-index: (50 - $i) * 100;\\n }\\n }\\n text-decoration: none;\\n outline: none;\\n position: relative;\\n transition: var(--mynah-short-transition-rev);\\n padding: var(--mynah-sizing-5);\\n background-color: var(--mynah-color-bg);\\n border-radius: var(--mynah-card-radius);\\n box-sizing: border-box;\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-3);\\n transform: translate3d(0, 0, 0);\\n flex: auto 0 0;\\n width: 100%;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n @include background-shadow;\\n\\n &:hover:active:before {\\n box-shadow: var(--mynah-shadow-card-more);\\n opacity: 0.75;\\n }\\n\\n > * {\\n z-index: 10;\\n position: relative;\\n }\\n &:after {\\n content: \\\"\\\";\\n pointer-events: none;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: auto;\\n height: auto;\\n background-color: var(--mynah-card-bg);\\n border-radius: inherit;\\n box-sizing: border-box;\\n opacity: 0;\\n z-index: 0;\\n box-sizing: border-box;\\n transform-origin: center center;\\n transition: var(--mynah-very-short-transition);\\n opacity: 0.6;\\n }\\n &:hover {\\n &:before {\\n border-color: var(--mynah-color-main);\\n box-shadow: var(--mynah-shadow-card-more);\\n }\\n &:after {\\n opacity: 1;\\n }\\n > .mynah-card-header {\\n opacity: 1;\\n }\\n }\\n\\n > .mynah-card-header {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n opacity: 0.75;\\n transition: var(--mynah-very-short-transition);\\n > .mynah-source-thumbnail {\\n font-style: normal;\\n font-weight: normal;\\n display: inline-flex;\\n width: var(--mynah-sizing-11);\\n height: var(--mynah-sizing-11);\\n font-variant: normal;\\n text-transform: none;\\n border: 1px solid var(--mynah-color-border-default);\\n border-radius: 100%;\\n background-size: 80%;\\n background-position: center center;\\n background-repeat: no-repeat;\\n margin-right: var(--mynah-sizing-3);\\n align-self: flex-start;\\n box-sizing: border-box;\\n }\\n > .mynah-card-title-wrapper {\\n flex: 1 1 0;\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n gap: var(--mynah-sizing-half);\\n max-width: 100%;\\n overflow: hidden;\\n cursor: pointer;\\n &:hover > .mynah-card-title > .mynah-card-expand-icon {\\n opacity: 0.75;\\n align-self: baseline;\\n }\\n > .mynah-card-title {\\n font-size: var(--mynah-font-size-xlarge);\\n font-weight: 700;\\n color: var(--mynah-color-text-strong);\\n width: 100%;\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-2);\\n white-space: normal;\\n text-overflow: ellipsis;\\n text-decoration: none;\\n outline: none;\\n overflow: hidden;\\n > .mynah-card-expand-icon {\\n transition: var(--mynah-short-transition-rev);\\n opacity: 0;\\n font-size: var(--mynah-font-size-xsmall);\\n display: inline;\\n padding: var(--mynah-sizing-1);\\n border: 1px solid currentColor;\\n border-radius: 2px;\\n }\\n }\\n > .mynah-card-url {\\n font-size: var(--mynah-font-size-medium);\\n font-weight: 300;\\n color: var(--mynah-color-text-link);\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n text-decoration: none;\\n outline: none;\\n overflow: hidden;\\n max-width: 100%;\\n position: relative;\\n padding-bottom: var(--mynah-sizing-1);\\n display: inline-block;\\n transition: var(--mynah-short-transition-rev);\\n &:after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 1px;\\n border-radius: var(--mynah-sizing-half);\\n background-color: currentColor;\\n transform: translate3d(-30%, 0, 0);\\n transition: var(--mynah-short-transition-rev);\\n opacity: 0;\\n }\\n &:hover {\\n &:after {\\n transform: translate3d(0, 0, 0);\\n opacity: 1;\\n }\\n }\\n > span {\\n &:not(:last-child):after {\\n content: \\\"/\\\";\\n margin-left: var(--mynah-sizing-1);\\n margin-right: var(--mynah-sizing-1);\\n }\\n &:nth-child(3) ~ span:not(:last-child) {\\n display: none;\\n }\\n &:last-child {\\n font-weight: bold;\\n }\\n &:nth-child(3):not(:last-child):after {\\n content: \\\"/ ... /\\\";\\n }\\n }\\n }\\n > .mynah-title-meta-block {\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-1);\\n margin-bottom: var(--mynah-sizing-half);\\n &:empty {\\n display: none;\\n }\\n > .mynah-title-meta-block-item {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: center;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-1);\\n padding: var(--mynah-sizing-1) var(--mynah-sizing-2) var(--mynah-sizing-1) var(--mynah-sizing-1);\\n border: 1px solid var(--mynah-color-border-default);\\n border-radius: var(--mynah-button-radius);\\n > .mynah-icon {\\n opacity: 0.5;\\n font-size: var(--mynah-font-size-medium);\\n }\\n > .mynah-title-meta-block-item-text {\\n font-size: var(--mynah-font-size-xsmall);\\n &::first-letter {\\n text-transform: capitalize;\\n }\\n }\\n &.approved-answer {\\n border-color: green;\\n position: relative;\\n &:before {\\n content: \\\"\\\";\\n border-radius: var(--mynah-button-radius);\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: green;\\n opacity: 0.04;\\n }\\n > .mynah-icon {\\n opacity: 1;\\n color: green;\\n border-radius: var(--mynah-button-radius);\\n width: var(--mynah-sizing-5);\\n }\\n }\\n }\\n }\\n }\\n\\n &.mynah-card-header-with-source-thumbnail + .mynah-card-context-wrapper > .mynah-card-tags {\\n padding-left: var(--mynah-sizing-14);\\n }\\n }\\n > .mynah-card-center {\\n border: var(--mynah-button-border-width) solid var(--mynah-border-default);\\n width: 100%;\\n color: var(--mynah-color-text-default);\\n flex: 1 1 0%;\\n overflow: hidden;\\n line-height: var(--mynah-font-size-large);\\n pointer-events: all;\\n z-index: 100;\\n\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-3);\\n\\n > *:not(pre) {\\n font-size: var(--mynah-font-size-medium);\\n }\\n\\n > .mynah-card-body {\\n flex: 1;\\n overflow: hidden;\\n position: relative;\\n > *:first-child {\\n margin-top: 0;\\n }\\n > *:last-child {\\n margin-bottom: 0;\\n }\\n * {\\n user-select: text;\\n }\\n .amzn-mynah-search-result-highlight {\\n background-color: var(--mynah-color-highlight);\\n color: var(--mynah-color-highlight-text);\\n }\\n .amzn-mynah-search-result-ellipsis {\\n display: block;\\n margin-top: calc(-1em + var(--mynah-sizing-2));\\n position: relative;\\n padding-left: var(--mynah-sizing-2);\\n margin-bottom: calc(1em - var(--mynah-sizing-1));\\n font-size: calc(1em + var(--mynah-sizing-1)) !important;\\n user-select: none;\\n cursor: default;\\n &:before {\\n pointer-events: none;\\n content: \\\"\\\";\\n width: calc(1em + var(--mynah-sizing-2));\\n height: calc(1em + var(--mynah-sizing-2));\\n position: absolute;\\n left: 0;\\n top: 0;\\n background-color: currentColor;\\n opacity: 0.1;\\n border-radius: var(--mynah-sizing-1);\\n }\\n }\\n }\\n\\n > .mynah-card-votes-wrapper {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--mynah-sizing-2);\\n > .mynah-vote-text {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-xsmall);\\n }\\n > .mynah-card-vote {\\n position: relative;\\n overflow: visible;\\n display: inline-flex;\\n align-items: center;\\n height: var(--mynah-sizing-10);\\n box-sizing: border-box;\\n gap: calc(var(--mynah-sizing-half) * 3);\\n border-radius: var(--mynah-sizing-7);\\n > .mynah-vote-radio {\\n display: none;\\n }\\n > .mynah-vote-label {\\n z-index: 10;\\n cursor: pointer;\\n font-size: var(--mynah-font-size-small);\\n transition: var(--mynah-short-transition);\\n padding: var(--mynah-sizing-base);\\n width: var(--mynah-sizing-5);\\n height: var(--mynah-sizing-5);\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n border-radius: var(--mynah-sizing-8);\\n > * {\\n pointer-events: none;\\n }\\n > i {\\n height: calc(var(--mynah-sizing-6) + var(--mynah-sizing-half));\\n }\\n }\\n > .mynah-vote-indicator {\\n pointer-events: none;\\n content: \\\"\\\";\\n transition: var(--mynah-short-transition);\\n position: absolute;\\n border-radius: var(--mynah-sizing-8);\\n top: var(--mynah-sizing-1);\\n left: 0;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n z-index: 1;\\n transform-origin: left center;\\n transform: translate3d(calc(var(--mynah-sizing-base) * -1), 0, 0);\\n }\\n > .mynah-vote-up-radio:checked {\\n & ~ .mynah-vote-up {\\n color: var(--mynah-color-main-reverse);\\n border-color: transparent;\\n }\\n & ~ .mynah-vote-indicator {\\n transform: translate3d(0, 0, 0);\\n background-color: var(--mynah-color-main);\\n transform: translate3d(0, 0, 0) scale(1);\\n box-shadow: var(--mynah-shadow-generic);\\n }\\n }\\n > .mynah-vote-down-radio:checked {\\n & ~ .mynah-vote-down {\\n color: var(--mynah-color-alternate-reverse);\\n border-color: transparent;\\n }\\n & ~ .mynah-vote-indicator {\\n transform: translate3d(calc(var(--mynah-sizing-8) + var(--mynah-sizing-half)), 0, 0);\\n background-color: var(--mynah-color-alternate);\\n box-shadow: var(--mynah-shadow-generic);\\n }\\n }\\n }\\n }\\n }\\n\\n > .mynah-card-context-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n gap: var(--mynah-sizing-6);\\n padding-bottom: var(--mynah-sizing-4);\\n margin-bottom: var(--mynah-sizing-2);\\n border-bottom: 1px solid var(--mynah-color-border-default);\\n > .mynah-card-tags {\\n display: inline-flex;\\n flex-wrap: wrap;\\n gap: var(--mynah-sizing-3);\\n }\\n > .mynah-card-badges {\\n display: inline-flex;\\n gap: var(--mynah-sizing-3);\\n &:empty {\\n display: none;\\n }\\n > div {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--mynah-sizing-base);\\n font-size: var(--mynah-font-size-small);\\n color: var(--mynah-color-text-weak);\\n &:not(:last-child) {\\n border-right: 1px solid var(--mynah-color-border-default);\\n padding-right: var(--mynah-sizing-3);\\n }\\n }\\n }\\n }\\n\\n &.mynah-card-skeleton {\\n pointer-events: none !important;\\n * {\\n color: rgba(0, 0, 0, 0) !important;\\n pointer-events: none !important;\\n }\\n i {\\n color: var(--mynah-color-light) !important;\\n }\\n .mynah-vote-text,\\n .mynah-card-title {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n .mynah-card-url {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-text-link);\\n opacity: 0.15 !important;\\n line-height: 0.5rem;\\n }\\n .mynah-card-center {\\n p {\\n z-index: 0;\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n code {\\n background-color: var(--mynah-color-code-text);\\n opacity: 0.25;\\n line-height: 150%;\\n }\\n }\\n .mynah-card-badges span {\\n border-radius: var(--mynah-sizing-base);\\n background-color: var(--mynah-color-light);\\n }\\n\\n &:last-child {\\n -webkit-mask-image: var(--mynah-mask-image-skeleton);\\n -webkit-mask-size: 100% 100%;\\n mask-image: var(--mynah-mask-image-skeleton);\\n mask-size: 100% 100%;\\n }\\n\\n &:after {\\n content: \\\"\\\";\\n opacity: 1;\\n background-color: var(--mynah-card-bg);\\n transform: translate3d(0, 0, 0);\\n border: none;\\n background-image: linear-gradient(\\n -75deg,\\n rgba(255, 255, 255, 0) 0%,\\n rgba(255, 255, 255, 0) 30%,\\n rgba(0, 0, 0, 0.05) 50%,\\n rgba(255, 255, 255, 0) 70%,\\n rgba(255, 255, 255, 0) 100%\\n );\\n background-size: 500% 500%;\\n animation: glass-reflection 2000ms 1000ms linear infinite;\\n }\\n }\\n}\\n\",\"#mynah-feedback-form-portal {\\n position: absolute;\\n left: 50%;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n overflow: visible;\\n box-sizing: border-box;\\n z-index: 200000;\\n pointer-events: none;\\n transform: translate3d(-50%, 0, 0);\\n max-width: 1024px;\\n color: var(--mynah-color-context-reverse);\\n\\n display: flex;\\n justify-content: center;\\n align-items: flex-end;\\n flex-flow: row nowrap;\\n\\n &.not-revealed {\\n > .mynah-feedback-trigger-button {\\n display: none;\\n }\\n }\\n > .mynah-feedback-trigger-button {\\n transition: var(--mynah-short-transition-bounce);\\n pointer-events: all;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n cursor: pointer;\\n }\\n}\\n\\n.mynah-feedback-form {\\n pointer-events: all;\\n box-sizing: border-box;\\n transition: var(--mynah-short-transition-rev);\\n padding: var(--mynah-sizing-4);\\n transform: translate3d(0, 0, 0);\\n border-radius: var(--mynah-card-radius);\\n display: flex;\\n flex-flow: column;\\n gap: var(--mynah-sizing-2);\\n align-items: flex-start;\\n transform-origin: right bottom;\\n\\n > .mynah-feedback-form-comment {\\n background-color: transparent;\\n padding: var(--mynah-sizing-3);\\n border: 1px solid var(--mynah-color-border-default);\\n resize: none;\\n width: 250px;\\n max-width: 40vw;\\n height: 100px;\\n max-height: 25vh;\\n border-radius: var(--mynah-sizing-2);\\n font-size: var(--mynah-font-size-small);\\n outline: none;\\n color: var(--mynah-color-text-input);\\n &:disabled {\\n opacity: 0.25;\\n }\\n &::placeholder {\\n color: var(--mynah-color-text-weak);\\n font-size: var(--mynah-font-size-small);\\n }\\n }\\n\\n > .mynah-feedback-form-stars-container {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n > .mynah-feedback-form-star {\\n cursor: pointer;\\n padding-right: var(--mynah-sizing-1);\\n color: var(--mynah-color-button);\\n font-size: 1.5rem;\\n transition: var(--mynah-very-short-transition);\\n > .mynah-icon {\\n transition: var(--mynah-very-short-transition);\\n opacity: 0.4;\\n transform: translate3d(0, 0, 0) scale(0.6);\\n }\\n }\\n &[selected-star]:not(:hover) > :not(.mynah-feedback-form-star.selected ~ .mynah-feedback-form-star),\\n &:hover > :not(.mynah-feedback-form-star:hover ~ .mynah-feedback-form-star) {\\n > .mynah-icon {\\n opacity: 1;\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n }\\n }\\n\\n > .mynah-feedback-form-comment,\\n > .mynah-feedback-form-stars-container {\\n transition: var(--mynah-short-transition-rev);\\n transform-origin: right bottom;\\n }\\n}\\n\",\".mynah-overlay {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n box-sizing: border-box;\\n pointer-events: none;\\n z-index: 1000000;\\n &.mynah-overlay-dim-outside {\\n &:before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--mynah-color-bg);\\n transition: var(--mynah-short-transition-rev-opacity);\\n opacity: 0.45;\\n }\\n }\\n > .mynah-overlay-container {\\n --overlayLeftPos: 0;\\n --overlayTopPos: 0;\\n --overlayInnerHorizontalOrigin: left;\\n --overlayInnerVerticalOrigin: top;\\n position: absolute;\\n display: block;\\n overflow: visible;\\n border-radius: var(--mynah-card-radius);\\n\\n &:before {\\n content: '';\\n background-color: transparent;\\n transition: var(--mynah-short-transition-rev);\\n position: absolute;\\n top: calc(var(--mynah-button-border-width) * -1);\\n left: calc(var(--mynah-button-border-width) * -1);\\n right: calc(var(--mynah-button-border-width) * -1);\\n bottom: calc(var(--mynah-button-border-width) * -1);\\n width: auto;\\n height: auto;\\n pointer-events: none;\\n box-sizing: border-box;\\n opacity: 0;\\n border: var(--mynah-button-border-width) solid var(--mynah-color-border-default);\\n box-shadow: var(--mynah-shadow-prioritization-menu);\\n }\\n\\n &:after {\\n content: '';\\n position: absolute;\\n width: var(--mynah-sizing-8);\\n height: var(--mynah-sizing-8);\\n left: 0;\\n top: 0;\\n opacity: 0;\\n border: var(--mynah-sizing-4);\\n background-color: var(--mynah-card-bg);\\n border-radius: inherit;\\n transition: var(--mynah-short-transition-rev);\\n transition-delay: 20ms;\\n }\\n\\n &.horizontal-direction {\\n &-to-left,\\n &-from-end-to-left {\\n --overlayLeftPos: -100%;\\n --overlayInnerHorizontalOrigin: right;\\n &:after {\\n left: calc(100% - var(--mynah-sizing-4));\\n }\\n }\\n &-at-center {\\n --overlayInnerHorizontalOrigin: center;\\n --overlayLeftPos: -50%;\\n &:after {\\n left: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n }\\n &.vertical-direction {\\n &-to-top,\\n &-from-end-to-top {\\n --overlayTopPos: -100%;\\n --overlayInnerVerticalOrigin: bottom;\\n &:after {\\n top: calc(100% - var(--mynah-sizing-4));\\n }\\n }\\n &-at-center {\\n --overlayInnerVerticalOrigin: center;\\n --overlayTopPos: -50%;\\n &:after {\\n top: calc(50% - var(--mynah-sizing-4));\\n }\\n }\\n }\\n\\n > .mynah-overlay-inner-container {\\n display: inline-block;\\n overflow: hidden;\\n z-index: 10;\\n position: relative;\\n transform: translate3d(0, 0, 0) scale(0.85);\\n transform-origin: var(--overlayInnerHorizontalOrigin) var(--overlayInnerVerticalOrigin);\\n transition: var(--mynah-short-transition-rev);\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(0.85);\\n transition: var(--mynah-short-transition-rev);\\n }\\n > .mynah-overlay-inner-container,\\n &:before {\\n opacity: 0;\\n transition-delay: 0ms;\\n }\\n\\n transform: translate3d(var(--overlayLeftPos), var(--overlayTopPos), 0);\\n }\\n &:not(.mynah-overlay-open) {\\n &,\\n & * {\\n pointer-events: none !important;\\n }\\n }\\n\\n &.mynah-overlay-open {\\n > .mynah-overlay-container {\\n > .mynah-overlay-inner-container {\\n transform: translate3d(0, 0, 0) scale(1);\\n }\\n &:before {\\n transform: translate3d(0, 0, 0) scale(1);\\n transition-delay: 50ms;\\n opacity: 1;\\n }\\n > .mynah-overlay-inner-container {\\n transition-delay: 20ms;\\n }\\n > .mynah-overlay-inner-container {\\n opacity: 1;\\n }\\n &:after {\\n transition-delay: 0ms;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n opacity: 1;\\n }\\n }\\n &.mynah-overlay-close-on-outside-click {\\n pointer-events: all;\\n }\\n }\\n}\\n\",\".mynah-notification {\\n display: inline-flex;\\n flex-flow: row nowrap;\\n align-items: flex-start;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-3);\\n padding: var(--mynah-sizing-5);\\n overflow: hidden;\\n position: relative;\\n &.mynah-notification-clickable {\\n pointer-events: all;\\n cursor: pointer;\\n }\\n > .mynah-icon {\\n font-size: var(--mynah-sizing-6);\\n &- {\\n &ok-circled {\\n color: var(--mynah-color-status-success);\\n }\\n &info {\\n color: var(--mynah-color-status-info);\\n }\\n &warning {\\n color: var(--mynah-color-status-warning);\\n }\\n &error {\\n color: var(--mynah-color-status-error);\\n }\\n }\\n }\\n > .mynah-notification-container {\\n flex: 1;\\n max-width: 50vw;\\n min-width: 200px;\\n display: inline-flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: flex-start;\\n gap: var(--mynah-sizing-3);\\n overflow: hidden;\\n position: relative;\\n > .mynah-notification-title {\\n margin: 0;\\n &:empty {\\n display: none;\\n }\\n }\\n > .mynah-notification-content {\\n font-size: var(--mynah-font-size-small);\\n display: flex;\\n flex-flow: column nowrap;\\n justify-content: flex-start;\\n align-items: flex-start;\\n gap: var(--mynah-sizing-2);\\n > .mynah-button {\\n align-self: stretch;\\n background-color: var(--mynah-color-alternate);\\n color: var(--mynah-color-alternate-reverse);\\n }\\n }\\n }\\n}\\n\",\".mynah-autocomplete-items-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n max-height: 50vh;\\n overflow-x: hidden;\\n overflow-y: auto;\\n --mynah-autocomplete-side-spacings: calc(\\n var(--mynah-sizing-12) + var(--mynah-sizing-10) + var(--mynah-sizing-12) + var(--mynah-sizing-12)\\n );\\n width: calc(100vw - var(--mynah-autocomplete-side-spacings));\\n max-width: calc(1024px - var(--mynah-autocomplete-side-spacings));\\n box-sizing: border-box;\\n @include list-fader();\\n padding-top: var(--mynah-sizing-3);\\n padding-bottom: var(--mynah-sizing-3);\\n\\n &.make-items-as-ghost {\\n &,\\n & * {\\n pointer-events: none !important;\\n }\\n }\\n\\n > .mynah-autocomplete-button {\\n pointer-events: all;\\n flex-shrink: 0;\\n height: auto;\\n min-height: var(--mynah-sizing-7);\\n padding: var(--mynah-sizing-3);\\n background-color: transparent;\\n border-radius: 0%;\\n color: var(--mynah-color-text-default);\\n\\n &,\\n &:active {\\n box-shadow: none;\\n }\\n\\n &:active:after {\\n opacity: 0.1;\\n }\\n\\n &:hover {\\n background-color: var(--mynah-color-bg);\\n }\\n\\n > span {\\n text-align: left;\\n max-width: initial;\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n\\n > .mynah-autocomplete-button-label {\\n width: 100%;\\n display: flex;\\n flex-flow: row nowrap;\\n gap: var(--mynah-sizing-3);\\n justify-content: flex-start;\\n align-items: center;\\n overflow: hidden;\\n\\n > .mynah-autocomplete-title-wrapper {\\n display: flex;\\n flex-flow: column nowrap;\\n align-items: flex-start;\\n justify-content: center;\\n flex: 1;\\n overflow: hidden;\\n color: var(--mynah-color-text-weak);\\n gap: var(--mynah-sizing-1);\\n\\n > h3 {\\n width: 100%;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n margin: 0;\\n color: var(--mynah-color-text-default);\\n }\\n\\n > .autocomplete {\\n font-weight: normal;\\n }\\n }\\n }\\n }\\n }\\n\\n &:not(:hover) > .mynah-autocomplete-button.hover {\\n background-color: var(--mynah-color-bg);\\n }\\n}\\n\\n.pointer {\\n cursor: pointer;\\n}\\n\",\".mynah-syntax-highlighter {\\n display: block;\\n box-sizing: border-box;\\n overflow: hidden;\\n margin: 0;\\n margin-bottom: var(--mynah-sizing-3);\\n border: 1px solid var(--mynah-color-border-default);\\n position: relative;\\n &:before {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: var(--vscode-terminal-dropBackground);\\n opacity: 0.12;\\n pointer-events: none;\\n user-select: none;\\n }\\n > .mynah-syntax-highlighter-copy-buttons {\\n justify-content: flex-end;\\n display: flex;\\n padding: var(--mynah-sizing-1);\\n z-index: 10;\\n .mynah-button {\\n font-size: var(--mynah-sizing-5);\\n color: var(--mynah-color-button);\\n }\\n }\\n &:hover > .mynah-syntax-highlighter-copy-buttons {\\n opacity: 1;\\n }\\n > pre {\\n padding: var(--mynah-sizing-3);\\n margin: 0;\\n overflow-x: auto;\\n overflow-y: hidden;\\n position: relative;\\n\\n *,\\n & {\\n font-size: var(--vscode-editor-font-size) !important;\\n font-family: var(--vscode-editor-font-family) !important;\\n }\\n > code {\\n color: var(--vscode-terminal-ansiBlue);\\n filter: brightness(0.95);\\n white-space: pre;\\n }\\n\\n > code,\\n & {\\n text-align: left;\\n white-space: pre;\\n word-spacing: normal;\\n word-break: normal;\\n word-wrap: normal;\\n tab-size: 4;\\n hyphens: none;\\n }\\n > code::selection,\\n &::selection {\\n text-shadow: none;\\n background: #b3d4fc;\\n }\\n\\n .token.comment,\\n .token.prolog,\\n .token.doctype,\\n .token.cdata {\\n color: var(--vscode-debugConsole-sourceForeground);\\n }\\n\\n .token.punctuation {\\n color: currentColor;\\n }\\n\\n .token.namespace {\\n opacity: 0.7;\\n }\\n\\n .token.property,\\n .token.tag,\\n .token.boolean,\\n .token.number,\\n .token.constant,\\n .token.symbol,\\n .token.deleted {\\n color: var(--vscode-terminal-ansiCyan);\\n }\\n\\n .token.selector,\\n .token.attr-name,\\n .token.string,\\n .token.char,\\n .token.builtin,\\n .token.inserted {\\n color: var(--vscode-debugTokenExpression-string);\\n }\\n\\n .token.operator,\\n .token.entity,\\n .token.url,\\n .language-css .token.string,\\n .style .token.string {\\n color: var(--vscode-debugTokenExpression-name);\\n }\\n\\n .token.atrule,\\n .token.attr-value,\\n .token.keyword {\\n color: var(--vscode-debugIcon-stepBackForeground);\\n }\\n\\n .token.class-name {\\n color: var(--vscode-debugIcon-stepBackForeground);\\n }\\n .token.function {\\n color: var(--vscode-gitDecoration-modifiedResourceForeground);\\n }\\n\\n .token.regex,\\n .token.important,\\n .token.variable {\\n color: var(--vscode-debugTokenExpression-name);\\n }\\n\\n .token.important,\\n .token.bold {\\n font-weight: bold;\\n }\\n .token.italic {\\n font-style: italic;\\n }\\n\\n .token.entity {\\n cursor: help;\\n }\\n\\n &.line-numbers {\\n position: relative;\\n padding-left: 3.8em;\\n counter-reset: linenumber;\\n position: relative;\\n }\\n\\n > .line-numbers-rows {\\n position: absolute;\\n > span,\\n & {\\n pointer-events: none;\\n user-select: none;\\n }\\n top: var(--mynah-sizing-3);\\n font-size: 100%;\\n left: 0;\\n width: var(--mynah-sizing-12);\\n overflow: hidden;\\n text-overflow: clip;\\n letter-spacing: -1px;\\n border-right: 1px solid var(--mynah-color-border-default);\\n\\n > span {\\n display: block;\\n color: var(--mynah-color-border-default);\\n padding-right: 0.8em;\\n text-align: right;\\n }\\n }\\n }\\n}\\n\",\"@import 'mixins';\\n@import 'variables';\\n@import 'animations';\\n@import 'dark';\\n\\n// Components\\n@import './components/main-container';\\n@import './components/search-block';\\n@import './components/search-history';\\n@import './components/context-pill';\\n@import './components/prioritization-menu';\\n@import './components/button';\\n@import './components/toggle';\\n@import './components/nav-tabs';\\n@import './components/card';\\n@import './components/feedback-form';\\n@import './components/overlay';\\n@import './components/notification';\\n@import './components/autocomplete';\\n@import './components/syntax-highlighter';\\n\\nbody,\\nhtml {\\n background-color: var(--mynah-color-bg);\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n margin: 0;\\n padding: 0;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-weight: 600;\\n color: var(--mynah-color-text-strong);\\n}\\n\\n::-webkit-scrollbar {\\n width: 3px;\\n height: 3px;\\n opacity: 0.5;\\n}\\n\\n*:focus {\\n outline: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isCookieAvailable = (typeof document) != \"undefined\";\nvar I18nResolver = /** @class */ (function () {\n function I18nResolver(translations, preferredLanguage) {\n this.translations = translations;\n this.cookieName = \"i18n-language\";\n this.currentLanguage = null;\n // get the current language from cookie, browser locale\n var language = preferredLanguage || this.getCookie(this.cookieName) || this.getBrowserLanguage();\n this.language = this.findBestMatch(language) || \"default\";\n }\n Object.defineProperty(I18nResolver.prototype, \"translation\", {\n get: function () {\n return this.translations[this.currentLanguage];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(I18nResolver.prototype, \"language\", {\n get: function () {\n return this.currentLanguage;\n },\n set: function (lang) {\n this.currentLanguage = lang;\n this.setCookie(this.cookieName, lang);\n },\n enumerable: true,\n configurable: true\n });\n I18nResolver.prototype.setCookie = function (name, value, expires, path) {\n if (!isCookieAvailable) {\n return;\n }\n var expiration = expires ? \"; expires=\" + expires.toUTCString() : \"\";\n var cookieStr = name + \"=\" + value + expiration;\n if (path) {\n cookieStr += \";path=\" + path;\n }\n document.cookie = cookieStr;\n };\n I18nResolver.prototype.getCookie = function (name) {\n if (!isCookieAvailable) {\n return null;\n }\n var cookie = document.cookie\n .split(\";\")\n .map(function (cookieStr) { return cookieStr.trim(); })\n .filter(function (cookieStr) { return cookieStr.match(name + \"=.*\"); });\n return cookie.length > 0 ? cookie[0].replace(name + \"=\", \"\") : null;\n };\n I18nResolver.prototype.getBrowserLanguage = function () {\n return navigator.language || navigator.userLanguage; // fallback for IE\n };\n I18nResolver.prototype.findBestMatch = function (language) {\n if (this.translations[language]) {\n return language;\n }\n // in case of language variants, e.g. en-US, check for basic variant (en) as well\n var langPrefix = language.split(\"-\")[0];\n if (this.translations[langPrefix]) {\n return langPrefix;\n }\n return null;\n };\n return I18nResolver;\n}());\nexports.I18nResolver = I18nResolver;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar I18nResolver_1 = require(\"./core/I18nResolver\");\nexports.I18nResolver = I18nResolver_1.I18nResolver;\n","(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n\t// full package (optional) + parent classes (optional)\n\tvar classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\n\t// based on the java naming conventions\n\tvar className = {\n\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\./\n\t\t}\n\t};\n\n\tPrism.languages.java = Prism.languages.extend('clike', {\n\t\t'string': {\n\t\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': [\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t// variables, parameters, and constructor references\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// class names based on keyword\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/.source + classNamePrefix + /[A-Z]\\w*\\b/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t'function': [\n\t\t\tPrism.languages.clike.function,\n\t\t\t{\n\t\t\t\tpattern: /(::\\s*)[a-z_]\\w*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t\t'operator': {\n\t\t\tpattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'constant': /\\b[A-Z][A-Z_\\d]+\\b/\n\t});\n\n\tPrism.languages.insertBefore('java', 'string', {\n\t\t'triple-quoted-string': {\n\t\t\t// http://openjdk.java.net/jeps/355#Description\n\t\t\tpattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'char': {\n\t\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'class-name', {\n\t\t'annotation': {\n\t\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'generics': {\n\t\t\tpattern: /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n\t\t\tinside: {\n\t\t\t\t'class-name': className,\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'punctuation': /[<>(),.:]/,\n\t\t\t\t'operator': /[?&|]/\n\t\t\t}\n\t\t},\n\t\t'import': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+)/.source + classNamePrefix + /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+static\\s+)/.source + classNamePrefix + /(?:\\w+|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'static',\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'static': /\\b\\w+$/,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'namespace': {\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/\n\t\t\t\t\t.source.replace(/<keyword>/g, function () { return keywords.source; })),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./,\n\t\t\t}\n\t\t}\n\t});\n}(Prism));\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","// https://www.json.org/json-en.html\nPrism.languages.json = {\n\t'property': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'comment': {\n\t\tpattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'punctuation': /[{}[\\],]/,\n\t'operator': /:/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n\nPrism.languages.webmanifest = Prism.languages.json;\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: /![sra](?=[:}]$)/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:False|None|True)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","(function (Prism) {\n\n\tPrism.languages.typescript = Prism.languages.extend('javascript', {\n\t\t'class-name': {\n\t\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: null // see below\n\t\t},\n\t\t'builtin': /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/,\n\t});\n\n\t// The keywords TypeScript adds to JavaScript\n\tPrism.languages.typescript.keyword.push(\n\t\t/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n\t\t// keywords that have to be followed by an identifier\n\t\t/\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n\t\t// This is for `import type *, {}`\n\t\t/\\btype\\b(?=\\s*(?:[\\{*]|$))/\n\t);\n\n\t// doesn't work with TS because TS is too complex\n\tdelete Prism.languages.typescript['parameter'];\n\tdelete Prism.languages.typescript['literal-property'];\n\n\t// a version of typescript specifically for highlighting types\n\tvar typeInside = Prism.languages.extend('typescript', {});\n\tdelete typeInside['class-name'];\n\n\tPrism.languages.typescript['class-name'].inside = typeInside;\n\n\tPrism.languages.insertBefore('typescript', 'function', {\n\t\t'decorator': {\n\t\t\tpattern: /@[$\\w\\xA0-\\uFFFF]+/,\n\t\t\tinside: {\n\t\t\t\t'at': {\n\t\t\t\t\tpattern: /^@/,\n\t\t\t\t\talias: 'operator'\n\t\t\t\t},\n\t\t\t\t'function': /^[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t'generic-function': {\n\t\t\t// e.g. foo<T extends \"bar\" | \"baz\">( ...\n\t\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: /<[\\s\\S]+/, // everything after the first <\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.ts = Prism.languages.typescript;\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t/**\n\t * Plugin name which is used as a class name for <pre> which is activating the plugin\n\t *\n\t * @type {string}\n\t */\n\tvar PLUGIN_NAME = 'line-numbers';\n\n\t/**\n\t * Regular expression used for determining line breaks\n\t *\n\t * @type {RegExp}\n\t */\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\n\t/**\n\t * Global exports\n\t */\n\tvar config = Prism.plugins.lineNumbers = {\n\t\t/**\n\t\t * Get node for provided line number\n\t\t *\n\t\t * @param {Element} element pre element\n\t\t * @param {number} number line number\n\t\t * @returns {Element|undefined}\n\t\t */\n\t\tgetLine: function (element, number) {\n\t\t\tif (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lineNumberRows = element.querySelector('.line-numbers-rows');\n\t\t\tif (!lineNumberRows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;\n\t\t\tvar lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);\n\n\t\t\tif (number < lineNumberStart) {\n\t\t\t\tnumber = lineNumberStart;\n\t\t\t}\n\t\t\tif (number > lineNumberEnd) {\n\t\t\t\tnumber = lineNumberEnd;\n\t\t\t}\n\n\t\t\tvar lineIndex = number - lineNumberStart;\n\n\t\t\treturn lineNumberRows.children[lineIndex];\n\t\t},\n\n\t\t/**\n\t\t * Resizes the line numbers of the given element.\n\t\t *\n\t\t * This function will not add line numbers. It will only resize existing ones.\n\t\t *\n\t\t * @param {HTMLElement} element A `<pre>` element with line numbers.\n\t\t * @returns {void}\n\t\t */\n\t\tresize: function (element) {\n\t\t\tresizeElements([element]);\n\t\t},\n\n\t\t/**\n\t\t * Whether the plugin can assume that the units font sizes and margins are not depended on the size of\n\t\t * the current viewport.\n\t\t *\n\t\t * Setting this to `true` will allow the plugin to do certain optimizations for better performance.\n\t\t *\n\t\t * Set this to `false` if you use any of the following CSS units: `vh`, `vw`, `vmin`, `vmax`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tassumeViewportIndependence: true\n\t};\n\n\t/**\n\t * Resizes the given elements.\n\t *\n\t * @param {HTMLElement[]} elements\n\t */\n\tfunction resizeElements(elements) {\n\t\telements = elements.filter(function (e) {\n\t\t\tvar codeStyles = getStyles(e);\n\t\t\tvar whiteSpace = codeStyles['white-space'];\n\t\t\treturn whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line';\n\t\t});\n\n\t\tif (elements.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar infos = elements.map(function (element) {\n\t\t\tvar codeElement = element.querySelector('code');\n\t\t\tvar lineNumbersWrapper = element.querySelector('.line-numbers-rows');\n\t\t\tif (!codeElement || !lineNumbersWrapper) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t/** @type {HTMLElement} */\n\t\t\tvar lineNumberSizer = element.querySelector('.line-numbers-sizer');\n\t\t\tvar codeLines = codeElement.textContent.split(NEW_LINE_EXP);\n\n\t\t\tif (!lineNumberSizer) {\n\t\t\t\tlineNumberSizer = document.createElement('span');\n\t\t\t\tlineNumberSizer.className = 'line-numbers-sizer';\n\n\t\t\t\tcodeElement.appendChild(lineNumberSizer);\n\t\t\t}\n\n\t\t\tlineNumberSizer.innerHTML = '0';\n\t\t\tlineNumberSizer.style.display = 'block';\n\n\t\t\tvar oneLinerHeight = lineNumberSizer.getBoundingClientRect().height;\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\treturn {\n\t\t\t\telement: element,\n\t\t\t\tlines: codeLines,\n\t\t\t\tlineHeights: [],\n\t\t\t\toneLinerHeight: oneLinerHeight,\n\t\t\t\tsizer: lineNumberSizer,\n\t\t\t};\n\t\t}).filter(Boolean);\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lines = info.lines;\n\t\t\tvar lineHeights = info.lineHeights;\n\t\t\tvar oneLinerHeight = info.oneLinerHeight;\n\n\t\t\tlineHeights[lines.length - 1] = undefined;\n\t\t\tlines.forEach(function (line, index) {\n\t\t\t\tif (line && line.length > 1) {\n\t\t\t\t\tvar e = lineNumberSizer.appendChild(document.createElement('span'));\n\t\t\t\t\te.style.display = 'block';\n\t\t\t\t\te.textContent = line;\n\t\t\t\t} else {\n\t\t\t\t\tlineHeights[index] = oneLinerHeight;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lineHeights = info.lineHeights;\n\n\t\t\tvar childIndex = 0;\n\t\t\tfor (var i = 0; i < lineHeights.length; i++) {\n\t\t\t\tif (lineHeights[i] === undefined) {\n\t\t\t\t\tlineHeights[i] = lineNumberSizer.children[childIndex++].getBoundingClientRect().height;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar wrapper = info.element.querySelector('.line-numbers-rows');\n\n\t\t\tlineNumberSizer.style.display = 'none';\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\tinfo.lineHeights.forEach(function (height, lineNumber) {\n\t\t\t\twrapper.children[lineNumber].style.height = height + 'px';\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns style declarations for the element\n\t *\n\t * @param {Element} element\n\t */\n\tfunction getStyles(element) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);\n\t}\n\n\tvar lastWidth = undefined;\n\twindow.addEventListener('resize', function () {\n\t\tif (config.assumeViewportIndependence && lastWidth === window.innerWidth) {\n\t\t\treturn;\n\t\t}\n\t\tlastWidth = window.innerWidth;\n\n\t\tresizeElements(Array.prototype.slice.call(document.querySelectorAll('pre.' + PLUGIN_NAME)));\n\t});\n\n\tPrism.hooks.add('complete', function (env) {\n\t\tif (!env.code) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar code = /** @type {Element} */ (env.element);\n\t\tvar pre = /** @type {HTMLElement} */ (code.parentNode);\n\n\t\t// works only for <code> wrapped inside <pre> (not inline)\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if line numbers already exists\n\t\tif (code.querySelector('.line-numbers-rows')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// only add line numbers if <code> or one of its ancestors has the `line-numbers` class\n\t\tif (!Prism.util.isActive(code, PLUGIN_NAME)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove the class 'line-numbers' from the <code>\n\t\tcode.classList.remove(PLUGIN_NAME);\n\t\t// Add the class 'line-numbers' to the <pre>\n\t\tpre.classList.add(PLUGIN_NAME);\n\n\t\tvar match = env.code.match(NEW_LINE_EXP);\n\t\tvar linesNum = match ? match.length + 1 : 1;\n\t\tvar lineNumbersWrapper;\n\n\t\tvar lines = new Array(linesNum + 1).join('<span></span>');\n\n\t\tlineNumbersWrapper = document.createElement('span');\n\t\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\n\t\tlineNumbersWrapper.className = 'line-numbers-rows';\n\t\tlineNumbersWrapper.innerHTML = lines;\n\n\t\tif (pre.hasAttribute('data-start')) {\n\t\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\n\t\t}\n\n\t\tenv.element.appendChild(lineNumbersWrapper);\n\n\t\tresizeElements([pre]);\n\n\t\tPrism.hooks.run('line-numbers', env);\n\t});\n\n\tPrism.hooks.add('line-numbers', function (env) {\n\t\tenv.plugins = env.plugins || {};\n\t\tenv.plugins.lineNumbers = true;\n\t});\n\n}());\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&amp;/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nexport interface ButtonProps {\n classNames?: string[];\n attributes?: Record<string, string>;\n icon?: HTMLElement | ExtendedHTMLElement | string;\n label?: HTMLElement | ExtendedHTMLElement | string;\n children?: Array<HTMLElement | ExtendedHTMLElement | string>;\n primary?: boolean;\n additionalEvents?: Record<string, (event?: any) => any>;\n onClick: (e: Event) => void;\n}\nexport class Button {\n render: ExtendedHTMLElement;\n constructor (props: ButtonProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'button',\n classNames: [\n 'mynah-button',\n ...(props.primary === false ? [ 'mynah-button-secondary' ] : []),\n ...(props.classNames !== undefined ? props.classNames : []),\n ],\n attributes: { ...props.attributes },\n events: {\n ...props.additionalEvents,\n click: props.onClick,\n },\n children: [\n ...(props.icon !== undefined ? [ props.icon ] : []),\n ...(props.label !== undefined ? [ { type: 'span', children: [ props.label ] } ] : []),\n ...(props.children ?? []),\n ],\n });\n }\n\n setEnabled = (enabled: boolean): void => {\n if (enabled) {\n this.render.removeAttribute('disabled');\n } else {\n this.render.setAttribute('disabled', 'disabled');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextChangeType, ContextSource, ContextType, ContextTypeClassNames, ContextTypes, MynahEventNames, SearchPayloadMatchPolicy } from '../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { Button } from './button';\nimport { Icon, MynahIcons } from './icon';\nimport { PrioritizationMenuButtons } from './prioritization-menu';\nimport { cancelEvent, MynahUIGlobalEvents } from '../helper/events';\nimport { MynahUIDataStore } from '../helper/store';\n\nexport interface ContextPillProps {\n context: ContextType;\n showRemoveButton?: boolean;\n}\nexport class ContextPill {\n private readonly props: ContextPillProps;\n render: ExtendedHTMLElement;\n constructor (props: ContextPillProps) {\n this.props = props;\n this.render = DomBuilder.getInstance().build({\n type: 'span',\n attributes: { context: props.context.context },\n classNames: [ 'mynah-context-pill', ContextTypeClassNames[props.context.type ?? ContextTypes.SHOULD],\n ...(MynahUIDataStore.getInstance().getValue('invisibleContextItems').includes(props.context.context) === true ? [ 'mynah-context-hidden' ] : []) ],\n children: [\n ...(props.showRemoveButton !== false\n ? [\n new Icon({\n icon: this.props.context.type === ContextTypes.MUST_NOT ? MynahIcons.BLOCK : MynahIcons.OK_CIRCLED,\n classNames: [ 'mynah-context-pill-group-icon' ]\n }).render\n ]\n : []),\n {\n type: 'span',\n classNames: [ 'mynah-context-checkbox-label' ],\n events: !(props.showRemoveButton ?? false)\n ? {\n click: (event: Event) => {\n cancelEvent(event);\n const currentMatchPolicy: SearchPayloadMatchPolicy = MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy;\n const alreadyAvailable = Object.keys((currentMatchPolicy)).reduce((res: boolean, policyGroup: string) => {\n if (currentMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy].includes(this.props.context.context)) {\n return true;\n }\n return res;\n }, false);\n if (!alreadyAvailable) {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.props.context.context,\n type: ContextTypes.SHOULD,\n source: ContextSource.SUGGESTION,\n }\n });\n }\n },\n }\n : {},\n children: [\n { type: 'span', innerHTML: props.context.context },\n ...(props.showRemoveButton ?? false\n ? [\n {\n type: 'div',\n classNames: [ 'filter-remove-button' ],\n events: {\n click: (event: Event) => {\n cancelEvent(event);\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.REMOVE,\n context: this.props.context\n });\n MynahUIDataStore.getInstance().updateStore({\n userAddedContext: [\n ...MynahUIDataStore.getInstance().getValue('userAddedContext').filter((contextKey: string) => contextKey !== this.props.context.context)\n ]\n });\n },\n },\n children: [ new Icon({ icon: MynahIcons.CANCEL }).render ],\n },\n ]\n : []),\n ],\n },\n new Button({\n onClick: this.handleMenuOpen.bind(this),\n icon: new Icon({ icon: MynahIcons.MENU }).render,\n }).render.addClass('mynah-prioritise-button'),\n ],\n });\n }\n\n private readonly handleMenuOpen = (e: Event): void => {\n const elm: HTMLElement = e.currentTarget as HTMLElement;\n this.render.addClass('keep-active');\n const buttons = new PrioritizationMenuButtons({\n referenceElement: elm,\n context: this.props.context,\n onMenuClose: () => {\n this.render.removeClass('keep-active');\n },\n });\n buttons.createOverlay();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\n\nexport interface FeedbackFormCommentProps {\n onChange?: (comment: string) => void;\n initComment?: string;\n}\nexport class FeedbackFormComment {\n render: ExtendedHTMLElement;\n\n constructor (props: FeedbackFormCommentProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'textarea',\n events: {\n keyup: (e: InputEvent) => {\n if (props.onChange !== undefined) {\n props.onChange(this.render.value);\n }\n },\n },\n classNames: [ 'mynah-feedback-form-comment' ],\n attributes: {\n ...(props.initComment !== undefined && props.initComment.length > 0 ? {} : { disabled: 'disabled' }),\n value: props.initComment ?? '',\n placeholder: 'How was your search?',\n },\n });\n }\n\n setEnabled = (enabled: boolean): void => {\n if (enabled) {\n this.render.removeAttribute('disabled');\n this.render.focus();\n } else {\n this.render.setAttribute('disabled', 'disabled');\n }\n };\n\n setComment = (comment: string): void => {\n this.render.value = comment;\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { FeedbackStars } from '../../static';\n\nexport interface FeedbackFormStarsProps {\n onChange?: (star: FeedbackStars) => void;\n initStar?: FeedbackStars;\n}\nexport class FeedbackFormStars {\n render: ExtendedHTMLElement;\n\n constructor (props: FeedbackFormStarsProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form-stars-container' ],\n attributes: { ...(props.initStar !== undefined && { 'selected-star': props.initStar.toString() }) },\n children: Array(5)\n .fill(undefined)\n .map((n, index) =>\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form-star' ],\n events: {\n click: (e: MouseEvent) => {\n ;(this.render.querySelector('.selected') as ExtendedHTMLElement)?.removeClass(\n 'selected'\n )\n ;(e.currentTarget as ExtendedHTMLElement).addClass('selected');\n if (props.onChange !== undefined) {\n props.onChange((index + 1) as FeedbackStars);\n }\n this.setStar((index + 1) as FeedbackStars);\n },\n },\n attributes: { star: (index + 1).toString() },\n children: [ new Icon({ icon: MynahIcons.STAR }).render ],\n })\n ),\n });\n }\n\n setStar = (star: FeedbackStars): void => {\n this.render.setAttribute('selected-star', star.toString());\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FeedbackPayload, FeedbackStars, MynahEventNames } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { FeedbackFormComment } from './feedback-form-comment';\nimport { FeedbackFormStars } from './feedback-form-stars';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface FeedbackFormProps {\n initPayload?: FeedbackPayload;\n}\nexport class FeedbackForm {\n private formOverlay!: Overlay;\n private readonly feedbackStars: FeedbackFormStars;\n private readonly feedbackComment: FeedbackFormComment;\n private feedbackPayload: FeedbackPayload = {};\n private readonly triggerButton: ExtendedHTMLElement;\n private readonly feedbackSubmitButton: Button;\n public readonly feedbackFormContainer: ExtendedHTMLElement;\n public readonly feedbackContainer: ExtendedHTMLElement;\n\n constructor (props?: FeedbackFormProps) {\n if (props?.initPayload !== undefined) {\n this.feedbackPayload = {\n ...(props.initPayload.stars !== undefined && { stars: props.initPayload.stars }),\n ...(props.initPayload.comment !== undefined && { comment: props.initPayload.comment }),\n };\n }\n\n this.triggerButton = new Button({\n onClick: () => {\n this.formOverlay = new Overlay({\n children: [ this.feedbackFormContainer ],\n closeOnOutsideClick: true,\n dimOutside: false,\n horizontalDirection: OverlayHorizontalDirection.END_TO_LEFT,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n referenceElement: this.triggerButton,\n });\n },\n primary: false,\n label: 'Leave us feedback',\n classNames: [ 'mynah-header-button' ],\n }).render;\n\n this.feedbackStars = new FeedbackFormStars({\n onChange: (star: FeedbackStars) => {\n this.feedbackPayload.stars = star;\n this.onFeedbackSet({ stars: star });\n this.feedbackComment.setEnabled(true);\n this.feedbackSubmitButton.setEnabled(true);\n },\n initStar: this.feedbackPayload?.stars,\n });\n\n this.feedbackComment = new FeedbackFormComment({\n onChange: (comment: string) => {\n this.feedbackPayload.comment = comment;\n },\n initComment: this.feedbackPayload?.comment,\n });\n\n this.feedbackSubmitButton = new Button({\n label: 'Submit',\n onClick: () => {\n if (this.feedbackPayload.comment !== undefined && this.feedbackPayload.comment.trim() !== '') {\n this.onFeedbackSet({ comment: this.feedbackPayload.comment });\n }\n this.feedbackComment.setComment('');\n this.formOverlay.close();\n },\n });\n this.feedbackSubmitButton.setEnabled(false);\n\n this.feedbackFormContainer = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-feedback-form' ],\n events: { click: cancelEvent },\n children: [ this.feedbackStars.render, this.feedbackComment.render, this.feedbackSubmitButton.render ],\n });\n\n this.feedbackContainer = DomBuilder.getInstance().build({\n type: 'div',\n attributes: { id: 'mynah-feedback-form-container' },\n children: [ this.triggerButton ],\n });\n }\n\n private readonly onFeedbackSet = (feedbackData: FeedbackPayload): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.FEEDBACK_SET, feedbackData);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\n\nexport enum MynahIcons {\n MENU = 'menu',\n MINUS = 'minus',\n SEARCH = 'search',\n PLUS = 'plus',\n CHAT = 'chat',\n LINK = 'link',\n EXTERNAL = 'external',\n CANCEL = 'cancel',\n CALENDAR = 'calendar',\n MEGAPHONE = 'megaphone',\n EYE = 'eye',\n OK = 'ok',\n UP_CIRCLED = 'up-circled',\n UP_OPEN = 'up-open',\n DOWN_OPEN = 'down-open',\n RIGHT_OPEN = 'right-open',\n LEFT_OPEN = 'left-open',\n RESIZE_FULL = 'resize-full',\n RESIZE_SMALL = 'resize-small',\n BLOCK = 'block',\n OK_CIRCLED = 'ok-circled',\n INFO = 'info',\n WARNING = 'warning',\n ERROR = 'error',\n THUMBS_UP = 'thumbs-up',\n THUMBS_DOWN = 'thumbs-down',\n STAR = 'star',\n LIGHT_BULB = 'light-bulb',\n ENVELOPE_SEND = 'envelope-send',\n SEARCH_HISTORY = 'search-history',\n USER = 'user',\n PLAY = 'play',\n PAUSE = 'pause',\n CODE_BLOCK = 'code-block',\n COPY = 'copy',\n TEXT_SELECT = 'text-select',\n}\n\nexport interface IconProps {\n icon: MynahIcons;\n classNames?: string[];\n}\nexport class Icon {\n render: ExtendedHTMLElement;\n constructor (props: IconProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'i',\n classNames: [\n 'mynah-icon',\n `mynah-icon-${props.icon}`,\n ...(props.classNames !== undefined ? props.classNames : []),\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { MynahUIDataStore } from '../helper/store';\nimport { SearchPayloadCodeSelection, Suggestion } from '../static';\nimport { SuggestionCard } from './suggestion-card/suggestion-card';\n\nexport interface MainContainerProps {\n onScroll?: (e: Event) => void;\n}\nexport class MainContainer {\n private readonly cardsWrapper: ExtendedHTMLElement;\n private readonly skeletonWrapper: ExtendedHTMLElement;\n public render: ExtendedHTMLElement;\n constructor (props: MainContainerProps) {\n this.cardsWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-cards-wrapper' ],\n events: { ...(props.onScroll !== undefined && { scroll: props.onScroll }) },\n persistent: true,\n });\n this.skeletonWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-skeleton-wrapper' ],\n persistent: true,\n children: [\n new SuggestionCard({\n suggestion: {\n title: 'Lorem ipsum dolor sit',\n url: '#mynahisawesome.com/mynah',\n body: `<p>Lorem ipsum dolor sit amet</p>\n <p>Nunc sit amet nulla sit amet est rhoncus ornare. In sodales tristique finibus.</p>\n <pre><code>lorem sit amet</code></pre>`,\n id: 'skeleton-1',\n context: [ 'skl-con-1', 'skl-con-2' ],\n },\n }).render.addClass('mynah-card-skeleton'),\n new SuggestionCard({\n suggestion: {\n title: 'Lorem ipsum dolor sit',\n url: '#mynahismorenadmoreawesome.com/mynah',\n body: `<p>Lorem ipsum dolor sit amet</p>\n <pre><code>sit amet\n loremasdasdsadasdasdasd\n asd</code></pre>`,\n id: 'skeleton-2',\n context: [ 'skl-con-3', 'skl-con-4' ],\n },\n }).render.addClass('mynah-card-skeleton'),\n ],\n });\n\n this.render = DomBuilder.getInstance().build({\n persistent: true,\n type: 'div',\n classNames: [ 'mynah-main' ],\n children: [ this.cardsWrapper, this.skeletonWrapper ],\n });\n\n MynahUIDataStore.getInstance().subscribe('suggestions', this.updateCards);\n MynahUIDataStore.getInstance().subscribe('loading', (loading: boolean) => {\n if (loading) {\n this.clearCards();\n }\n });\n }\n\n clearCards = (): void => {\n this.render.removeClass('mynah-hide-content').removeClass('mynah-show-content');\n setTimeout(() => {\n this.render.addClass('mynah-hide-content');\n }, 10);\n };\n\n updateCards = (suggestions: Suggestion[]): void => {\n setTimeout(() => {\n this.cardsWrapper.clear();\n if (suggestions.length === 0 && (MynahUIDataStore.getInstance().getValue('query') !== '' || (MynahUIDataStore.getInstance().getValue('codeSelection') as SearchPayloadCodeSelection).selectedCode !== '')) {\n this.cardsWrapper.insertChild(\n 'beforeend',\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-no-suggestion-indicator' ],\n children: [\n {\n type: 'span',\n children: [\n \"We couldn't find any relevant results with your search. Please refine your search and try again.\",\n ],\n },\n ],\n }) as HTMLElement\n );\n } else {\n suggestions.forEach((suggestion, index) => {\n this.cardsWrapper.insertChild(\n 'beforeend',\n new SuggestionCard({\n suggestion\n }).render\n );\n });\n }\n\n setTimeout(() => {\n this.render.addClass('mynah-show-content');\n }, 10);\n }, 250);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { MynahUIDataStore } from '../helper/store';\nimport { Toggle, ToggleOption } from './toggle';\n\nexport const getSelectedTabValueFromStore = (): string => MynahUIDataStore.getInstance().getValue('navigationTabs').find((navTab: ToggleOption) => navTab.selected).value;\n\nexport interface NavivationTabsProps {\n onChange?: (selectedValue: string) => void;\n}\nexport class NavivationTabs {\n render: ExtendedHTMLElement;\n private readonly props: NavivationTabsProps;\n\n constructor (props: NavivationTabsProps) {\n this.props = props;\n const tabs = MynahUIDataStore.getInstance().getValue('navigationTabs');\n MynahUIDataStore.getInstance().subscribe('loading', this.setLoading);\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-nav-tabs-wrapper', ...(MynahUIDataStore.getInstance().getValue('loading') === true ? [ 'mynah-nav-tabs-loading' ] : []) ],\n children: this.getTabsRender(tabs),\n });\n\n MynahUIDataStore.getInstance().subscribe('navigationTabs', (newTabs: ToggleOption[]) => {\n this.render.update({\n children: this.getTabsRender(newTabs)\n });\n });\n }\n\n private readonly setLoading = (isLoading: boolean): void => {\n if (isLoading) {\n this.render.addClass('mynah-nav-tabs-loading');\n } else {\n this.render.removeClass('mynah-nav-tabs-loading');\n }\n };\n\n private readonly getTabsRender = (tabs: ToggleOption[]): ExtendedHTMLElement[] => tabs.length > 0\n ? [\n new Toggle({\n onChange: this.props.onChange,\n type: 'tabs',\n name: 'mynah-nav-tabs',\n options: tabs,\n value: tabs.find(tab => tab.selected)?.value\n }).render\n ]\n : [];\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilderObject, DS, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent } from '../../helper/events';\nimport { NotificationType } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection, OVERLAY_MARGIN } from '../overlay/overlay';\n\ntype NotificationContentType = string | ExtendedHTMLElement | HTMLElement | DomBuilderObject;\n\nexport interface NotificationProps {\n duration?: number;\n type?: NotificationType;\n title?: string;\n content: NotificationContentType | NotificationContentType[];\n onNotificationClick?: () => void;\n onNotificationHide?: () => void;\n}\n\nexport class Notification {\n private notificationOverlay!: Overlay;\n private readonly duration;\n private readonly type;\n private readonly props;\n\n constructor (props: NotificationProps) {\n this.duration = props.duration !== undefined ? props.duration : 5000;\n this.type = props.type ?? NotificationType.INFO;\n this.props = props;\n }\n\n public notify (): void {\n this.notificationOverlay = new Overlay({\n referencePoint: {\n left: Math.max(document.documentElement.clientWidth ?? 0, window.innerWidth ?? 0),\n top: this.getNextCalculatedTop(),\n },\n dimOutside: false,\n closeOnOutsideClick: false,\n horizontalDirection: OverlayHorizontalDirection.TO_LEFT,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n onClose: this.props.onNotificationHide,\n children: [\n {\n type: 'div',\n classNames: [\n 'mynah-notification',\n this.props.onNotificationClick !== undefined ? 'mynah-notification-clickable' : '',\n ],\n events: {\n click: e => {\n cancelEvent(e);\n if (this.props.onNotificationClick !== undefined) {\n this.props.onNotificationClick();\n this.notificationOverlay?.close();\n }\n },\n },\n children: [\n new Icon({ icon: this.type.toString() as MynahIcons }).render,\n {\n type: 'div',\n classNames: [ 'mynah-notification-container' ],\n children: [\n {\n type: 'h3',\n classNames: [ 'mynah-notification-title' ],\n children: [ this.props.title ?? '' ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-notification-content' ],\n children: this.getChildren(this.props.content),\n },\n ],\n },\n ],\n },\n ],\n });\n\n if (this.duration !== -1) {\n setTimeout(() => {\n this.notificationOverlay?.close();\n }, this.duration);\n }\n }\n\n /**\n * Calculates the top according to the previously shown and still visible notifications\n * @returns number\n */\n private readonly getNextCalculatedTop = (): number => {\n const prevNotifications = DS('.mynah-notification');\n if (prevNotifications.length > 0) {\n const prevNotificationRectangle = prevNotifications[prevNotifications.length - 1].getBoundingClientRect();\n return prevNotificationRectangle.top + prevNotificationRectangle.height + OVERLAY_MARGIN;\n }\n return 0;\n };\n\n private readonly getChildren = (content: NotificationContentType | NotificationContentType[]): NotificationContentType[] => {\n if (content instanceof Array) {\n return content;\n }\n return [ content ];\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/brace-style */\nimport { DomBuilder, DomBuilderObject, ExtendedHTMLElement } from '../../helper/dom';\nimport { generateUID } from '../../helper/guid';\nimport { MynahPortalNames } from '../../static';\n\nexport const OVERLAY_MARGIN = 8;\n/**\n * The horizontal creation direction of the overlay\n */\nexport enum OverlayHorizontalDirection {\n /**\n * starts from the left edge of the reference element and opens to left\n */\n TO_LEFT = 'horizontal-direction-to-left',\n /**\n * starts from the right edge of the reference element and opens to left\n */\n END_TO_LEFT = 'horizontal-direction-from-end-to-left',\n /**\n * starts from the right edge of the reference element and opens to right\n */\n TO_RIGHT = 'horizontal-direction-to-right',\n /**\n * starts from the left edge of the reference element and opens to right\n */\n START_TO_RIGHT = 'horizontal-direction-from-start-to-right',\n /**\n * starts and opens at the center of the reference element\n */\n CENTER = 'horizontal-direction-at-center',\n}\n\n/**\n * The vertical creation direction of the overlay\n */\nexport enum OverlayVerticalDirection {\n /**\n * starts from the bottom edge of the reference element and opens to bottom\n */\n TO_BOTTOM = 'vertical-direction-to-bottom',\n /**\n * starts from the top edge of the reference element and opens to bottom\n */\n START_TO_BOTTOM = 'vertical-direction-from-start-to-bottom',\n /**\n * starts from the top edge of the reference element and opens to top\n */\n TO_TOP = 'vertical-direction-to-top',\n /**\n * starts from the bottom edge of the reference element and opens to top\n */\n END_TO_TOP = 'vertical-direction-from-end-to-top',\n /**\n * starts and opens at the center of the reference element\n */\n CENTER = 'vertical-direction-at-center',\n}\n\nexport interface OverlayProps {\n referenceElement?: Element | ExtendedHTMLElement;\n referencePoint?: { top: number; left: number };\n children: Array<HTMLElement | ExtendedHTMLElement | DomBuilderObject>;\n horizontalDirection?: OverlayHorizontalDirection;\n verticalDirection?: OverlayVerticalDirection;\n dimOutside?: boolean;\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n}\nexport class Overlay {\n render: ExtendedHTMLElement;\n private readonly container: ExtendedHTMLElement;\n private readonly innerContainer: ExtendedHTMLElement;\n private readonly guid = generateUID();\n private readonly onClose;\n\n constructor (props: OverlayProps) {\n const horizontalDirection = props.horizontalDirection ?? OverlayHorizontalDirection.TO_RIGHT;\n const verticalDirection = props.verticalDirection ?? OverlayVerticalDirection.START_TO_BOTTOM;\n this.onClose = props.onClose;\n const dimOutside = props.dimOutside !== false;\n const closeOnOutsideClick = props.closeOnOutsideClick !== false;\n\n const calculatedTop = this.getCalculatedTop(verticalDirection, props.referenceElement, props.referencePoint);\n const calculatedLeft = this.getCalculatedLeft(horizontalDirection, props.referenceElement, props.referencePoint);\n\n this.innerContainer = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-overlay-inner-container' ],\n children: props.children,\n });\n\n this.container = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-overlay-container', horizontalDirection, verticalDirection ],\n attributes: {\n style: `top: ${calculatedTop}px; left: ${calculatedLeft}px;`,\n },\n children: [ this.innerContainer ],\n });\n\n // this is a portal that goes over all the other items\n // to make it as an overlay item\n this.render = DomBuilder.getInstance().createPortal(\n `${MynahPortalNames.OVERLAY}-${this.guid}`,\n {\n type: 'div',\n attributes: { id: `mynah-overlay-${this.guid}` },\n classNames: [\n 'mynah-overlay',\n ...(dimOutside ? [ 'mynah-overlay-dim-outside' ] : []),\n ...(closeOnOutsideClick ? [ 'mynah-overlay-close-on-outside-click' ] : []),\n ],\n events: {\n click: closeOnOutsideClick ? this.close : () => {},\n },\n children: [ this.container ],\n },\n 'beforeend'\n );\n\n const containerRectangle = this.container.getBoundingClientRect();\n const winHeight = Math.max(document.documentElement.clientHeight ?? 0, window.innerHeight ?? 0);\n const winWidth = Math.max(document.documentElement.clientWidth ?? 0, window.innerWidth ?? 0);\n\n // if it will open at the center of the reference element or point\n // we only need the half of both measurements\n const comparingWidth =\n horizontalDirection === OverlayHorizontalDirection.CENTER\n ? containerRectangle.width / 2\n : containerRectangle.width;\n const comparingHeight =\n verticalDirection === OverlayVerticalDirection.CENTER\n ? containerRectangle.height / 2\n : containerRectangle.height;\n\n // if overlay will open to right or at center\n // we're checking if it exceeds from the right edge of the window\n if (\n horizontalDirection !== OverlayHorizontalDirection.TO_LEFT &&\n horizontalDirection !== OverlayHorizontalDirection.END_TO_LEFT &&\n comparingWidth + OVERLAY_MARGIN + calculatedLeft > winWidth\n ) {\n this.container.style.left =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedLeft - (comparingWidth + OVERLAY_MARGIN + calculatedLeft - winWidth) + 'px';\n }\n // else if the direction is selected as a one that goes to the left,\n // we need to check if it is exceeding from the left edge of the window\n else if (calculatedLeft + comparingWidth - containerRectangle.width < OVERLAY_MARGIN) {\n this.container.style.left =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedLeft + (OVERLAY_MARGIN - calculatedLeft + (comparingWidth - containerRectangle.width)) + 'px';\n }\n\n // if overlay will open to bottom or at center\n // we're checking if it exceeds from the bottom edge of the window\n if (\n verticalDirection !== OverlayVerticalDirection.TO_TOP &&\n verticalDirection !== OverlayVerticalDirection.END_TO_TOP &&\n comparingHeight + OVERLAY_MARGIN + calculatedTop > winHeight\n ) {\n this.container.style.top =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedTop - (comparingHeight + OVERLAY_MARGIN + calculatedTop - winHeight) + 'px';\n }\n // else if the direction is selected as a one that goes to the top,\n // we need to check if it is exceeding from the top edge of the window\n else if (calculatedTop + comparingHeight - containerRectangle.height < OVERLAY_MARGIN) {\n this.container.style.top =\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n calculatedTop + (OVERLAY_MARGIN - calculatedTop + (comparingHeight - containerRectangle.height)) + 'px';\n }\n\n // we need to delay the class toggle\n // to avoid the skipping of the transition comes from css\n // for a known js-css relation problem\n setTimeout(() => {\n this.render.addClass('mynah-overlay-open');\n\n if (closeOnOutsideClick) {\n window.addEventListener('blur', this.windowBlurHandler.bind(this));\n window.addEventListener('resize', this.windowBlurHandler.bind(this));\n }\n }, 10);\n }\n\n close = (): void => {\n this.render.removeClass('mynah-overlay-open');\n // In this timeout, we're waiting the close animation to be ended\n setTimeout(() => {\n this.render.remove();\n }, 250);\n if (this.onClose !== undefined) {\n this.onClose();\n }\n };\n\n private readonly windowBlurHandler = (): void => {\n this.close();\n window.removeEventListener('blur', this.windowBlurHandler.bind(this));\n window.removeEventListener('resize', this.windowBlurHandler.bind(this));\n };\n\n private readonly getCalculatedLeft = (\n horizontalDirection: OverlayHorizontalDirection,\n referenceElement?: Element | ExtendedHTMLElement,\n referencePoint?: { top?: number; left: number }\n ): number => {\n const referenceRectangle =\n referenceElement !== undefined\n ? referenceElement.getBoundingClientRect()\n : referencePoint !== undefined\n ? { left: referencePoint.left, width: 0 }\n : { left: 0, width: 0 };\n\n switch (horizontalDirection.toString()) {\n case OverlayHorizontalDirection.TO_RIGHT:\n return referenceRectangle.left + referenceRectangle.width + OVERLAY_MARGIN;\n case OverlayHorizontalDirection.START_TO_RIGHT:\n return referenceRectangle.left;\n case OverlayHorizontalDirection.TO_LEFT:\n return referenceRectangle.left - OVERLAY_MARGIN;\n case OverlayHorizontalDirection.END_TO_LEFT:\n return referenceRectangle.left + referenceRectangle.width;\n case OverlayHorizontalDirection.CENTER:\n return referenceRectangle.left + referenceRectangle.width / 2;\n default:\n return 0;\n }\n };\n\n private readonly getCalculatedTop = (\n verticalDirection: OverlayVerticalDirection,\n referenceElement?: Element | ExtendedHTMLElement,\n referencePoint?: { top: number; left?: number }\n ): number => {\n const referenceRectangle =\n referenceElement !== undefined\n ? referenceElement.getBoundingClientRect()\n : referencePoint !== undefined\n ? { top: referencePoint.top, height: 0 }\n : { top: 0, height: 0 };\n\n switch (verticalDirection.toString()) {\n case OverlayVerticalDirection.TO_BOTTOM:\n return referenceRectangle.top + referenceRectangle.height + OVERLAY_MARGIN;\n case OverlayVerticalDirection.START_TO_BOTTOM:\n return referenceRectangle.top;\n case OverlayVerticalDirection.TO_TOP:\n return referenceRectangle.top - OVERLAY_MARGIN;\n case OverlayVerticalDirection.END_TO_TOP:\n return referenceRectangle.top + referenceRectangle.height;\n case OverlayVerticalDirection.CENTER:\n return referenceRectangle.top + referenceRectangle.height / 2;\n default:\n return referenceRectangle.top;\n }\n };\n\n public updateContent = (children: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>): void => {\n this.innerContainer.update({ children });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextChangeType, ContextType, ContextTypeClassNames, ContextTypes, MynahEventNames } from '../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport { Button } from './button';\nimport { Overlay, OverlayVerticalDirection } from './overlay/overlay';\nimport { cancelEvent, MynahUIGlobalEvents } from '../helper/events';\nexport interface PrioritizationMenuButtonsProps {\n context: ContextType;\n referenceElement: Element | ExtendedHTMLElement;\n onMenuClose: () => void;\n}\nexport class PrioritizationMenuButtons {\n private menuOverlay!: Overlay;\n private readonly props: PrioritizationMenuButtonsProps;\n constructor (props: PrioritizationMenuButtonsProps) {\n this.props = props;\n }\n\n public createOverlay (): void {\n this.menuOverlay = new Overlay({\n referenceElement: this.props.referenceElement,\n verticalDirection: OverlayVerticalDirection.CENTER,\n onClose: this.props.onMenuClose,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-prioritization-menu-buttons-container' ],\n children: [\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.MUST] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.MUST ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `Must have&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.SHOULD] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.SHOULD ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `More with&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n new Button({\n classNames: [ 'mynah-prioritise-button', ContextTypeClassNames[ContextTypes.MUST_NOT] ],\n onClick: (e: Event) => {\n cancelEvent(e);\n this.handlePrioritizationButtonClick.apply(this, [ ContextTypes.MUST_NOT ]);\n },\n label: DomBuilder.getInstance().build({\n type: 'span',\n innerHTML: `Without&nbsp;<b>${this.props.context.context}</b>`,\n }),\n }).render,\n ],\n },\n ],\n });\n }\n\n private readonly handlePrioritizationButtonClick = (priority: ContextTypes): void => {\n if (priority !== this.props.context.type) {\n this.menuOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.props.context.context,\n type: priority,\n source: this.props.context.source,\n },\n oldPolicyType: this.props.context.type\n });\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AutocompleteItem } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { cancelEvent } from '../../helper/events';\n\nexport interface AutocompleteCardContentProps {\n searchQuery: string;\n content: AutocompleteItem;\n onAutocompleteClick: (autocompleteQuery: AutocompleteItem, index: number) => void;\n index: number;\n isHovered: boolean | false;\n}\nexport class AutocompleteCardContent {\n render: ExtendedHTMLElement;\n openSearch: any;\n searchQuery: string;\n\n constructor (props: AutocompleteCardContentProps) {\n this.searchQuery = props.searchQuery;\n const buttonClassNames = [ 'mynah-autocomplete-button' ];\n if (props.isHovered) {\n buttonClassNames.push('hover');\n }\n this.render = new Button({\n classNames: buttonClassNames,\n onClick: (e: Event) => {\n cancelEvent(e);\n props.onAutocompleteClick(props.content, props.index);\n },\n label: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-autocomplete-button-label' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-autocomplete-title-wrapper' ],\n children: [\n {\n classNames: [ 'autocomplete' ],\n type: 'h3',\n innerHTML: this.formatSuggestion(props.content.suggestion),\n },\n ],\n },\n ],\n }),\n }).render;\n }\n\n private formatSuggestion (suggestion: string): string {\n const boldWords = this.searchQuery.split(' ').filter(word => word.trim().length > 0);\n\n boldWords.forEach(word => {\n suggestion = suggestion.replace(new RegExp('(' + word + ')', 'i'), makeBold('$1'));\n });\n\n function makeBold (word: string): string {\n return word.bold();\n }\n return suggestion;\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AutocompleteItem, MynahEventNames } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { AutocompleteCardContent } from './autocomplete-card';\nimport { MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface AutocompleteContentProps {\n searchQuery: string;\n referenceElement: Element | ExtendedHTMLElement;\n autocompleteSuggestions: AutocompleteItem[];\n onClose?: () => void;\n}\n\nexport class AutocompleteContent {\n private readonly autocompleteItemsOverlay;\n public suggestions;\n private searchQuery: string;\n private currHover: number;\n private readonly props: AutocompleteContentProps;\n private isUsed: boolean;\n render!: ExtendedHTMLElement;\n constructor (props: AutocompleteContentProps) {\n this.props = props;\n this.isUsed = false;\n this.suggestions = props.autocompleteSuggestions;\n this.searchQuery = props.searchQuery;\n this.currHover = 0;\n\n this.autocompleteItemsOverlay = new Overlay({\n dimOutside: false,\n referenceElement: props.referenceElement,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n horizontalDirection: OverlayHorizontalDirection.START_TO_RIGHT,\n onClose: props.onClose,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-autocomplete-items-wrapper' ],\n children: this.autocompleteCards(this.props.autocompleteSuggestions, 0),\n },\n ],\n });\n }\n\n autocompleteCards = (autocompleteSuggestions: AutocompleteItem[], hovered: number): ExtendedHTMLElement[] =>\n autocompleteSuggestions.map(\n (record, index) =>\n new AutocompleteCardContent({\n searchQuery: this.searchQuery,\n content: record,\n onAutocompleteClick: this.handleAutocompleteClick.bind(this),\n isHovered: index + 1 === hovered,\n index: index + 1,\n }).render\n );\n\n private readonly handleAutocompleteClick = (autocompleteItem: AutocompleteItem, index: number): void => {\n this.autocompleteItemsOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, {\n autocompleteQuery: autocompleteItem,\n index,\n count: this.getSuggestionsCount()\n });\n };\n\n public updateSuggestions = (autocompleteSuggestions: AutocompleteItem[], hoverQuery: number): void => {\n this.suggestions = autocompleteSuggestions;\n const cards = this.autocompleteCards(autocompleteSuggestions, hoverQuery);\n const cardWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-autocomplete-items-wrapper' ],\n children: cards,\n });\n this.autocompleteItemsOverlay.updateContent([ cardWrapper ]);\n cardWrapper.addClass('make-items-as-ghost');\n setTimeout(() => {\n cardWrapper.removeClass('make-items-as-ghost');\n }, 50);\n };\n\n public updateQuery = (searchQuery: string): void => {\n this.searchQuery = searchQuery;\n };\n\n public hover = (isUp: boolean): string => {\n if (isUp) {\n this.currHover = this.currHover === 0 ? this.suggestions.length : this.currHover - 1;\n } else {\n this.currHover = (this.currHover + 1) % (this.suggestions.length + 1);\n }\n\n this.updateSuggestions(this.suggestions, this.currHover);\n\n if (this.currHover === 0) {\n this.setIsUsed(false);\n return this.searchQuery;\n } else {\n this.setIsUsed(true);\n return this.suggestions[this.currHover - 1].suggestion;\n }\n };\n\n public setIsUsed = (val: boolean): void => {\n this.isUsed = val;\n };\n\n public getIsUsed = (): boolean => {\n return this.isUsed;\n };\n\n public getCurrentSelected = (): number => {\n return this.currHover;\n };\n\n public getSuggestionsCount = (): number => {\n return this.suggestions.length;\n };\n\n public close = (): void => {\n this.autocompleteItemsOverlay.close();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { SyntaxHighlighter } from '../syntax-highlighter';\nimport { getLanguageFromFileName } from '../../helper/find-language';\nimport { MynahEventNames, SearchPayloadCodeSelection, SupportedCodingLanguagesExtensionToTypeMap } from '../../static';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport class SearchApiHelp {\n render: ExtendedHTMLElement;\n private isCollapsed: boolean = true;\n constructor () {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help', 'hide', 'collapsed' ],\n children: [],\n });\n\n MynahUIDataStore.getInstance().subscribe('codeSelection', (codeSelection: SearchPayloadCodeSelection) => {\n if (codeSelection.selectedCode !== '') {\n this.updateContent(codeSelection);\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private readonly hide = (): void => {\n this.render.addClass('hide');\n };\n\n private readonly show = (): void => {\n this.render.removeClass('hide');\n };\n\n private readonly updateContent = (codeSelection: SearchPayloadCodeSelection): void => {\n this.render.update({\n children: [\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-detail-row' ],\n children: [\n {\n type: 'h4',\n innerHTML: 'Target file:',\n },\n {\n type: 'b',\n innerHTML: codeSelection.file?.name,\n },\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-detail-row' ],\n children: [\n {\n type: 'h4',\n innerHTML: 'Selected range:',\n },\n {\n type: 'span',\n innerHTML:\n codeSelection.file?.range !== undefined\n ? `${codeSelection.file?.range.end !== undefined ? 'From ' : ''}line <b>${\n codeSelection.file?.range.start.row\n }</b>, column <b>${codeSelection.file?.range.start.column ?? ''}</b> ${\n codeSelection.file?.range.end !== undefined\n ? `to line <b>${codeSelection.file?.range.end?.row}</b>, column <b>${\n codeSelection.file?.range.end?.column ?? ''\n }</b>`\n : ''\n }`\n : '',\n },\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-code-view-wrapper' ],\n events: {\n click: e => {\n cancelEvent(e);\n // uncollapse only if it is collapsed, not collapse it back with code click to make it selectable\n if (this.isCollapsed) {\n this.isCollapsed = false;\n this.onCodeDetailsClicked(codeSelection.selectedCode, codeSelection.file?.name, codeSelection.file?.range);\n this.render.removeClass('collapsed');\n }\n },\n },\n children: [\n new SyntaxHighlighter({\n codeStringWithMarkup: codeSelection.selectedCode,\n language:\n codeSelection.file?.name !== undefined\n ? getLanguageFromFileName(codeSelection.file?.name)\n : SupportedCodingLanguagesExtensionToTypeMap.js,\n keepHighlights: false,\n showLineNumbers: true,\n startingLineNumber: Number(codeSelection.file?.range?.start.row ?? 1),\n }).render,\n ],\n }),\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-api-help-collapser' ],\n events: {\n click: e => {\n cancelEvent(e);\n this.isCollapsed = !this.isCollapsed;\n if (!this.isCollapsed) {\n this.onCodeDetailsClicked(codeSelection.selectedCode, codeSelection.file?.name, codeSelection.file?.range);\n }\n this.render.toggleClass('collapsed');\n },\n },\n children: [\n {\n type: 'span',\n classNames: [ 'mynah-search-api-help-uncollapse-icon' ],\n children: [ new Icon({ icon: MynahIcons.DOWN_OPEN }).render ],\n },\n {\n type: 'span',\n classNames: [ 'mynah-search-api-help-collapse-icon' ],\n children: [ new Icon({ icon: MynahIcons.UP_OPEN }).render ],\n },\n ],\n }),\n ],\n });\n };\n\n private readonly onCodeDetailsClicked = (\n code: string,\n fileName?: string,\n range?: {\n start: { row: string; column?: string };\n end?: { row: string; column?: string };\n }\n ): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CODE_DETAILS_CLICK,\n {\n code,\n fileName,\n range\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIDataStore } from '../../helper/store';\nimport { NotificationType } from '../../static';\nimport { Button } from '../button';\nimport { FeedbackForm } from '../feedback-form/feedback-form';\nimport { Icon, MynahIcons } from '../icon';\n\nexport class SearchCardHeader {\n private readonly feedbackForm: FeedbackForm;\n private readonly infoBar: ExtendedHTMLElement;\n render: ExtendedHTMLElement;\n\n constructor () {\n this.feedbackForm = new FeedbackForm();\n this.infoBar = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header-info-bar' ],\n children: this.getHeaderInfoContent(MynahUIDataStore.getInstance().getValue('headerInfo'))\n });\n\n MynahUIDataStore.getInstance().subscribe('headerInfo', headerInfo => {\n this.infoBar.update({ children: this.getHeaderInfoContent(headerInfo) });\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header' ],\n children: [\n {\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block-header-top-bar' ],\n children: [\n new Button({\n onClick: () => {\n MynahUIDataStore.getInstance().resetStore();\n },\n primary: false,\n label: 'Clear All',\n classNames: [ 'mynah-header-button' ],\n }).render,\n this.feedbackForm.feedbackContainer,\n ],\n },\n this.infoBar\n ],\n });\n }\n\n private readonly getHeaderInfoContent = (headerInfo: {content: string; type: MynahIcons}): Array<ExtendedHTMLElement | string> => {\n if (headerInfo.content !== '') {\n return [\n DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-block-header-info-bar-bg', `mynah-header-info-${headerInfo.type ?? NotificationType.INFO}` ]\n }),\n new Icon({ icon: headerInfo.type ?? NotificationType.INFO }).render,\n DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-search-block-header-info-bar-text' ],\n innerHTML: headerInfo.content\n })\n ];\n }\n return [ '' ];\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\nimport { SearchContext } from './search-context';\nimport { SearchInput } from './search-input';\nimport { SearchApiHelp } from './search-api-help';\nimport { SearchLiveToggle } from './search-live-toggle';\nimport { SearchCardHeader } from './search-card-header';\n\nexport class SearchCard {\n private unfoldedByContextInsertion: boolean = false;\n private unfoldedByButton: boolean = false;\n private readonly searchInput: SearchInput;\n private readonly searchAPIHelp: SearchApiHelp;\n private readonly liveSearchToggle: SearchLiveToggle;\n private readonly foldUnfoldButton: Button;\n private readonly contextManagement: SearchContext;\n private readonly searchCardHeader: SearchCardHeader;\n render: ExtendedHTMLElement;\n constructor () {\n this.foldUnfoldButton = new Button({\n children: [ new Icon({ icon: MynahIcons.DOWN_OPEN }).render, new Icon({ icon: MynahIcons.UP_OPEN }).render ],\n onClick: () => {\n if (this.render.hasClass('mynah-search-block-unfold')) {\n this.unfoldedByButton = false;\n if (!this.unfoldedByContextInsertion) {\n this.render.removeClass('mynah-search-block-unfold');\n }\n } else {\n this.unfoldedByButton = true;\n this.render.addClass('mynah-search-block-unfold');\n }\n },\n classNames: [ 'mnynah-search-block-fold-unfold-button' ],\n });\n\n this.searchCardHeader = new SearchCardHeader();\n this.liveSearchToggle = new SearchLiveToggle({ label: 'Live suggestions:' });\n this.searchAPIHelp = new SearchApiHelp();\n this.searchInput = new SearchInput();\n this.contextManagement = new SearchContext({\n onContextInsertionEnabled: () => {\n this.unfoldedByContextInsertion = true;\n this.render.addClass('mynah-search-block-unfold');\n },\n onContextInsertionDisabled: () => {\n this.unfoldedByContextInsertion = false;\n if (!this.unfoldedByButton) {\n this.render.removeClass('mynah-search-block-unfold');\n }\n },\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n persistent: true,\n classNames: [ 'mynah-search-block' ],\n children: [\n this.searchCardHeader.render,\n this.liveSearchToggle.render,\n this.searchAPIHelp.render,\n this.searchInput.render,\n this.contextManagement.render,\n this.foldUnfoldButton.render,\n ],\n });\n }\n\n public addFocusOnInput = (): void => {\n this.searchInput.addFocusOnInput();\n };\n\n setFolded = (folded: boolean): void => {\n if (folded) {\n this.render.addClass('mynah-search-block-ready-to-fold');\n } else {\n this.render.removeClass('mynah-search-block-ready-to-fold');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/prefer-includes */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\nimport {\n KeyMap,\n SearchPayloadMatchPolicy,\n ContextSource,\n ContextType,\n ContextTypes,\n MynahEventNames,\n ContextChangeType,\n NotificationType\n} from '../../static';\nimport { ContextPill } from '../context-item';\nimport { Icon, MynahIcons } from '../icon';\nimport { Notification } from '../notification/notification';\n\ninterface RenderedContextType extends ContextType {\n render: HTMLElement | ExtendedHTMLElement;\n}\nexport interface SearchContextProps {\n initContextList?: SearchPayloadMatchPolicy;\n onContextInsertionEnabled?: () => void;\n onContextInsertionDisabled?: () => void;\n}\n\nexport class SearchContext {\n private readonly allowedCharCount = 100;\n private readonly contextCheckExpression = /^\\S+$/;\n private readonly isAcceptedKeyPress = (char: string): boolean => this.contextCheckExpression.test(char);\n private readonly acceptedNagivationKeys = Object.keys(KeyMap).map(\n (key: string) => (KeyMap as Record<string, string>)[key]\n );\n\n private renderedContextMap: Record<string, RenderedContextType> = {};\n private readonly onContextInsertionEnabled;\n private readonly onContextInsertionDisabled;\n\n constructor (props?: SearchContextProps) {\n this.onContextInsertionEnabled = props?.onContextInsertionEnabled;\n this.onContextInsertionDisabled = props?.onContextInsertionDisabled;\n const initContext = MynahUIDataStore.getInstance().getValue('matchPolicy');\n if (initContext !== undefined) {\n this.createContextItemElements(initContext, {});\n }\n\n MynahUIDataStore.getInstance().subscribe('matchPolicy', (matchPolicy: SearchPayloadMatchPolicy, oldMatchPolicy: Partial<SearchPayloadMatchPolicy>) => {\n this.createContextItemElements(matchPolicy, oldMatchPolicy);\n });\n }\n\n private readonly enableContextInsertion = (): void => {\n this.contextInsertionButton.addClass('context-insertion-activated');\n this.contextInsertionInput.focus();\n if (this.onContextInsertionEnabled !== undefined) {\n this.onContextInsertionEnabled();\n }\n };\n\n private readonly disableContextInsertion = (keepText?: boolean): void => {\n this.contextInsertionButton.removeClass('context-insertion-activated');\n if (keepText !== true) {\n this.contextInsertionInput.value = '';\n this.inputAutoWidth.update({\n innerHTML: '',\n });\n }\n if (this.onContextInsertionDisabled !== undefined) {\n this.onContextInsertionDisabled();\n }\n };\n\n private readonly createContextItemElements = (matchPolicy: SearchPayloadMatchPolicy, oldMatchPolicy: Partial<SearchPayloadMatchPolicy>): void => {\n const userAddedContext: string[] = MynahUIDataStore.getInstance().getValue('userAddedContext') as string[];\n const removedContext: ContextType[] = [];\n const addedContext: ContextType[] = [];\n Object.keys(oldMatchPolicy).forEach(policyGroup => {\n oldMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.forEach(contextKey => {\n if (!matchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.includes(contextKey)) {\n removedContext.push({\n context: contextKey,\n source: ContextSource.AUTO,\n type: policyGroup as ContextTypes\n });\n }\n });\n });\n Object.keys(matchPolicy).forEach(policyGroup => {\n matchPolicy[policyGroup as keyof SearchPayloadMatchPolicy].forEach(contextKey => {\n if (!oldMatchPolicy[policyGroup as keyof SearchPayloadMatchPolicy]?.includes(contextKey)) {\n addedContext.push({\n context: contextKey,\n source: userAddedContext.includes(contextKey) ? ContextSource.USER : ContextSource.AUTO,\n type: policyGroup as ContextTypes\n });\n }\n });\n });\n\n removedContext.forEach((contextItem: ContextType) => {\n if (this.renderedContextMap[contextItem.context]) {\n this.renderedContextMap[contextItem.context].render.remove();\n delete this.renderedContextMap[contextItem.context];\n }\n });\n\n const invisibleContextKeys = MynahUIDataStore.getInstance().getValue('invisibleContextItems');\n addedContext.forEach((contextItem: ContextType) => {\n const contextRender = new ContextPill({\n context: contextItem,\n showRemoveButton: true,\n }).render;\n let actualContextItemRender = contextRender;\n if (!invisibleContextKeys.includes(contextItem.context) &&\n (contextItem.type === ContextTypes.MUST || contextItem.type === ContextTypes.MUST_NOT)) {\n actualContextItemRender = DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ `mynah-context-pill-group-item-${contextItem.type}` ],\n children: [ contextRender ]\n });\n }\n this.renderedContextMap[contextItem.context] = {\n ...contextItem,\n render: actualContextItemRender,\n };\n this.contextWrapper.insertChild('beforeend', actualContextItemRender);\n });\n };\n\n private readonly contextInsertionKeydownHandler = (e: KeyboardEvent): void => {\n if (this.acceptedNagivationKeys.includes(e.key) || this.isAcceptedKeyPress(e.key)) {\n if (e.key === KeyMap.ENTER || e.key === KeyMap.SPACE) {\n cancelEvent(e);\n if (this.contextCheckExpression.test(this.contextInsertionInput.value)) {\n if (this.renderedContextMap[this.contextInsertionInput.value] === undefined) {\n MynahUIDataStore.getInstance().updateStore({\n userAddedContext: [ ...MynahUIDataStore.getInstance().getValue('userAddedContext'), this.contextInsertionInput.value ]\n });\n\n const loadingListener = MynahUIDataStore.getInstance().subscribe('loading', (loadingState) => {\n if (!loadingState) {\n this.enableContextInsertion();\n }\n MynahUIDataStore.getInstance().unsubscribe('loading', loadingListener);\n });\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, {\n type: ContextChangeType.ADD,\n context: {\n context: this.contextInsertionInput.value,\n type: ContextTypes.SHOULD,\n source: ContextSource.USER,\n }\n });\n } else {\n this.contextWrapper.insertChild(\n 'afterbegin',\n this.renderedContextMap[this.contextInsertionInput.value].render\n );\n }\n\n this.inputAutoWidth.update({\n innerHTML: '',\n });\n this.contextInsertionInput.value = '';\n } else {\n this.contextInsertionButton.removeClass('shake');\n setTimeout(() => {\n this.contextInsertionButton.addClass('shake');\n const notification = new Notification({\n content: 'You cannot add empty context items or context items containing spaces.',\n type: NotificationType.WARNING,\n onNotificationClick: () => { },\n });\n notification.notify();\n }, 50);\n }\n } else if (e.key === KeyMap.ESCAPE) {\n cancelEvent(e);\n this.disableContextInsertion();\n } else {\n if (\n !this.acceptedNagivationKeys.includes(e.key) &&\n this.allowedCharCount - this.contextInsertionInput.value.length <= 0\n ) {\n cancelEvent(e);\n }\n }\n } else {\n cancelEvent(e);\n }\n };\n\n private readonly inputAutoWidth = DomBuilder.getInstance().build({\n type: 'span',\n });\n\n private contextInsertionInput = DomBuilder.getInstance().build({\n type: 'input',\n classNames: [ 'context-text-input' ],\n attributes: {\n maxlength: this.allowedCharCount.toString(),\n tabindex: '10',\n type: 'text',\n placeholder: 'Add context',\n },\n events: {\n focus: this.enableContextInsertion,\n blur: () => {\n this.disableContextInsertion(true);\n },\n keydown: this.contextInsertionKeydownHandler,\n input: () => {\n this.inputAutoWidth.update({\n innerHTML: this.contextInsertionInput.value,\n });\n },\n paste: cancelEvent,\n },\n });\n\n private readonly contextInsertionButton = DomBuilder.getInstance().build({\n type: 'label',\n persistent: true,\n classNames: [ 'mynah-context-checkbox-label' ],\n attributes: { id: 'add-new-context' },\n events: { click: this.enableContextInsertion.bind(this) },\n children: [\n new Icon({ icon: MynahIcons.PLUS }).render,\n {\n type: 'span',\n classNames: [ 'add-new-context-label' ],\n children: [ 'Add context' ],\n },\n this.contextInsertionInput,\n this.inputAutoWidth,\n ],\n });\n\n private readonly contextWrapper = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-context-wrapper' ],\n children: [\n DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-context-pill-groups-start' ]\n }),\n this.contextInsertionButton,\n ],\n });\n\n render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-block-advanced-control' ],\n children: [ this.contextWrapper ]\n });\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getTimeDiff } from '../../helper/date-time';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { cancelEvent } from '../../helper/events';\nimport {\n SearchPayloadMatchPolicy,\n ContextTypeClassNames,\n SearchHistoryItem\n} from '../../static';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\n\nexport interface HistoryCardContentProps {\n content: SearchHistoryItem;\n onHistoryItemClick: (historyItem: SearchHistoryItem) => void;\n}\nexport class HistoryCardContent {\n render: ExtendedHTMLElement;\n openSearch: any;\n\n private getSearchHitoryRecordTitle (historyItem: SearchHistoryItem): string {\n const titleParts = [];\n\n if (historyItem.query !== undefined && historyItem.query.input !== '') {\n titleParts.push(historyItem.query.input);\n }\n\n if (historyItem.query.codeSelection?.file !== undefined && historyItem.query.codeSelection.file.name !== '') {\n titleParts.push(\n `${historyItem.query.codeSelection.file.range.start.row}:${historyItem.query.codeSelection.file.range.start.column}`\n );\n titleParts.push(historyItem.query.codeSelection.file.name.split('/').pop());\n }\n\n return titleParts.join(' ');\n }\n\n constructor (props: HistoryCardContentProps) {\n let icon = [];\n\n switch (props.content.query.trigger) {\n case 'SearchBarInput':\n case 'SearchBarRefinement':\n icon = [\n new Icon({\n icon: MynahIcons.USER,\n }).render,\n ];\n break;\n case 'CodeSelection':\n icon = [\n new Icon({\n icon: MynahIcons.CODE_BLOCK,\n }).render,\n ];\n break;\n default:\n icon = [\n new Icon({\n icon: MynahIcons.LIGHT_BULB,\n }).render,\n ];\n break;\n }\n\n this.render = new Button({\n classNames: [ 'mynah-search-history-button' ],\n onClick: (e: Event) => {\n cancelEvent(e);\n props.onHistoryItemClick(props.content);\n },\n label: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-history-button-label' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-search-history-trigger-icon' ],\n children: [ ...icon ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-search-history-title-wrapper' ],\n children: [\n {\n type: 'h3',\n innerHTML: this.getSearchHitoryRecordTitle(props.content),\n },\n {\n type: 'span',\n innerHTML: props.content.recordDate !== undefined\n ? `${getTimeDiff(\n new Date().getTime() - props.content.recordDate\n ).toString()} ago`\n : '',\n },\n ],\n },\n {\n type: 'div',\n classNames: [ 'mynah-search-history-item-context-wrapper' ],\n children: Object.keys(props.content.query.queryContext).map((policyGroup: string) => {\n if (\n props.content.query.queryContext[policyGroup as keyof SearchPayloadMatchPolicy].length >\n 0\n ) {\n return DomBuilder.getInstance().build({\n type: 'span',\n classNames: [\n 'mynah-context-pill',\n ContextTypeClassNames[policyGroup as keyof SearchPayloadMatchPolicy],\n ],\n children: [\n {\n type: 'label',\n classNames: [ 'mynah-context-checkbox-label' ],\n children: [\n {\n type: 'span',\n innerHTML: props.content.query.queryContext[\n policyGroup as keyof SearchPayloadMatchPolicy\n ].length.toString(),\n },\n ],\n },\n ],\n });\n }\n return '';\n }),\n },\n ],\n }),\n }).render;\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahEventNames, SearchHistoryItem } from '../../static';\nimport { Overlay, OverlayHorizontalDirection, OverlayVerticalDirection } from '../overlay/overlay';\nimport { HistoryCardContent } from './search-history-card';\n\nexport interface HistoryContentProps {\n referenceElement: Element | ExtendedHTMLElement;\n searchHistory: SearchHistoryItem[];\n}\nexport class HistoryContent {\n private historyItemsOverlay!: Overlay;\n private readonly props: HistoryContentProps;\n render!: ExtendedHTMLElement;\n constructor (props: HistoryContentProps) {\n this.props = props;\n }\n\n public createOverlay (): void {\n this.historyItemsOverlay = new Overlay({\n referenceElement: this.props.referenceElement,\n verticalDirection: OverlayVerticalDirection.TO_BOTTOM,\n horizontalDirection: OverlayHorizontalDirection.END_TO_LEFT,\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-search-history-items-wrapper' ],\n children: this.searchHistoryCards(this.props.searchHistory),\n },\n ],\n });\n }\n\n searchHistoryCards = (historyItems: SearchHistoryItem[]): ExtendedHTMLElement[] =>\n historyItems.map(\n record =>\n new HistoryCardContent({\n content: record,\n onHistoryItemClick: this.handleHistoryChange,\n }).render\n );\n\n private readonly handleHistoryChange = (historyItem: SearchHistoryItem): void => {\n this.historyItemsOverlay.close();\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SEARCH_HISTORY_ITEM_CLICK, {\n historyItem\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { AutocompleteItem, KeyMap, MynahEventNames, SearchHistoryFilters, SearchHistoryItem, SearchPayloadCodeSelection } from '../../static';\nimport { Button } from '../button';\nimport { Icon, MynahIcons } from '../icon';\nimport { HistoryContent } from './search-history-content';\nimport { AutocompleteContent } from './autocomplete-content';\nimport { I18N } from '../../translations/i18n';\nimport { cancelEvent, MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport class SearchInput {\n render: ExtendedHTMLElement;\n private searchTextInput: ExtendedHTMLElement;\n private readonly searchButton: ExtendedHTMLElement;\n private readonly searchHistoryButton: ExtendedHTMLElement;\n private readonly remainingIndicator: ExtendedHTMLElement;\n private autocompleteContent: AutocompleteContent | undefined;\n private readonly allowedCharCount: number = 1000;\n private codeSelectionAvailable: boolean = false;\n constructor () {\n const initText = MynahUIDataStore.getInstance().getValue('query');\n this.codeSelectionAvailable = MynahUIDataStore.getInstance().getValue('codeSelection').selectedCode !== '';\n\n const classNames = [ 'mynah-search-input' ];\n if (this.codeSelectionAvailable) {\n classNames.push('search-always-active');\n }\n\n this.searchTextInput = DomBuilder.getInstance().build({\n type: 'input',\n classNames,\n attributes: {\n tabindex: '1',\n maxlength: '1000',\n type: 'text',\n placeholder:\n this.codeSelectionAvailable\n ? I18N.getInstance().texts.searchInputAPIHelpPlaceholder\n : I18N.getInstance().texts.searchInputMynahPlaceholder,\n value: initText ?? '',\n },\n events: {\n keyup: this.handleInputKeydown.bind(this),\n },\n });\n this.searchButton = new Button({\n classNames: [ 'mynah-icon-button', 'mynah-search-button' ],\n attributes: { tabindex: '5' },\n icon: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-mutating-next-icon' ],\n children: [\n new Icon({ icon: MynahIcons.SEARCH }).render,\n { type: 'i', classNames: [ 'mynah-loading-spinner' ] },\n ],\n }),\n onClick: () => {\n this.triggerSearch();\n },\n }).render;\n this.searchHistoryButton = new Button({\n classNames: [ 'mynah-icon-button' ],\n primary: false,\n attributes: { tabindex: '5' },\n icon: DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-history-icon' ],\n children: [\n new Icon({ icon: MynahIcons.SEARCH_HISTORY }).render,\n { type: 'i', classNames: [ 'mynah-history-icon' ] },\n ],\n }),\n onClick: this.triggerSearchHistory.bind(this),\n }).render;\n\n this.remainingIndicator = DomBuilder.getInstance().build({\n type: 'span',\n attributes: {\n 'remaining-chars': (initText !== undefined && initText.length > 0\n ? this.allowedCharCount - initText.length\n : this.allowedCharCount\n ).toString(),\n 'max-chars': this.allowedCharCount.toString(),\n },\n });\n\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-input-wrapper' ],\n children: [\n this.searchTextInput,\n this.remainingIndicator,\n this.searchHistoryButton,\n this.searchButton,\n ],\n });\n\n MynahUIDataStore.getInstance().subscribe('query', (query: string) => {\n this.searchTextInput.value = query;\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n });\n\n MynahUIDataStore.getInstance().subscribe('autoCompleteSuggestions', (autoCompleteList: AutocompleteItem[]) => {\n this.handleAutocompleteSuggestions(this.searchTextInput.value, autoCompleteList);\n });\n\n MynahUIDataStore.getInstance().subscribe('loading', (loading: boolean) => {\n this.setWaitState(loading);\n });\n\n MynahUIDataStore.getInstance().subscribe('codeSelection', (codeSelection: SearchPayloadCodeSelection) => {\n if (codeSelection.selectedCode !== '') {\n this.codeSelectionAvailable = true;\n this.searchTextInput.addClass('search-always-active');\n this.searchTextInput.setAttribute('placeholder', I18N.getInstance().texts.searchInputAPIHelpPlaceholder);\n } else {\n this.codeSelectionAvailable = false;\n this.searchTextInput.removeClass('search-always-active');\n this.searchTextInput.setAttribute('placeholder', I18N.getInstance().texts.searchInputMynahPlaceholder);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, (data: {\n autocompleteQuery: AutocompleteItem;\n index: number;\n count: number;}) => {\n this.searchTextInput.value = data.autocompleteQuery.suggestion;\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n this.autocompleteContent?.close();\n this.triggerSearch(true);\n });\n }\n\n public addFocusOnInput = (): void => {\n this.searchTextInput.focus();\n };\n\n private readonly handleInputKeydown = (e: KeyboardEvent): void => {\n if (e.key === KeyMap.ENTER) {\n cancelEvent(e);\n if (this.autocompleteContent?.getIsUsed() === true) {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, {\n autocompleteQuery: this.autocompleteContent.suggestions[this.autocompleteContent.getCurrentSelected() - 1],\n index: this.autocompleteContent.getCurrentSelected() - 1,\n count: this.autocompleteContent.getSuggestionsCount()\n });\n } else {\n this.triggerSearch();\n }\n } else if (e.key === KeyMap.ARROW_DOWN) {\n if (this.autocompleteContent !== undefined) {\n this.searchTextInput.value = this.autocompleteContent.hover(false);\n }\n } else if (e.key === KeyMap.ARROW_UP) {\n if (this.autocompleteContent !== undefined) {\n this.searchTextInput.value = this.autocompleteContent.hover(true);\n }\n } else if (\n e.key === KeyMap.DELETE ||\n e.key === KeyMap.BACKSPACE ||\n !Object.values<string>(KeyMap).includes(e.key)\n ) {\n MynahUIGlobalEvents.getInstance().dispatch(\n MynahEventNames.INPUT_QUERY_CHANGE,\n { input: this.searchTextInput.value });\n }\n this.remainingIndicator.update({\n attributes: {\n 'remaining-chars': (this.allowedCharCount - this.searchTextInput.value.length).toString(),\n },\n });\n };\n\n private readonly triggerSearch = (isFromAutocomplete?: boolean): void => {\n if (this.codeSelectionAvailable || this.searchTextInput.value.trim() !== '') {\n MynahUIDataStore.getInstance().updateStore({\n query: this.searchTextInput.value\n });\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SEARCH, {\n query: this.searchTextInput.value,\n isFromAutocomplete\n });\n }\n };\n\n private readonly triggerSearchHistory = (): void => {\n const filters: SearchHistoryFilters = {\n isGlobal: false,\n languages: [],\n resultOffset: 0,\n resultLimit: 50,\n };\n this.searchHistoryButton.addClass('mynah-button-wait');\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.REQUEST_SEARCH_HISTORY, {\n filters\n });\n const searchHistorySubscriptionId = MynahUIDataStore.getInstance().subscribe('searchHistory', (searchHistory: SearchHistoryItem[]) => {\n this.searchHistoryButton.removeClass('mynah-button-wait');\n const historyContent = new HistoryContent({\n referenceElement: this.searchHistoryButton,\n searchHistory,\n });\n historyContent.createOverlay();\n MynahUIDataStore.getInstance().unsubscribe('searchHistory', searchHistorySubscriptionId);\n });\n };\n\n private readonly handleAutocompleteSuggestions = (input: string, autocompleteSuggestions: AutocompleteItem[]): void => {\n if (input.trim() === '') {\n this.autocompleteContent?.close();\n } else {\n if (this.autocompleteContent !== undefined) {\n if (autocompleteSuggestions.length === 0) {\n this.autocompleteContent?.close();\n } else {\n this.autocompleteContent.updateQuery(input);\n this.autocompleteContent.updateSuggestions(autocompleteSuggestions, 0);\n }\n } else if (autocompleteSuggestions.length !== 0) {\n this.autocompleteContent = new AutocompleteContent({\n searchQuery: input,\n referenceElement: this.searchTextInput,\n autocompleteSuggestions,\n onClose: () => {\n this.autocompleteContent = undefined;\n },\n });\n }\n }\n };\n\n private readonly setWaitState = (waitState?: boolean): void => {\n if (waitState ?? false) {\n this.searchButton.addClass('mynah-button-wait');\n } else {\n this.searchButton.removeClass('mynah-button-wait');\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { MynahUIDataStore } from '../../helper/store';\nimport { LiveSearchState, MynahEventNames } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\nimport { Toggle } from '../toggle';\n\nconst LiveSearchStateColors = {\n [LiveSearchState.PAUSE]: 'var(--mynah-color-status-warning)',\n [LiveSearchState.RESUME]: 'var(--mynah-color-status-success)',\n};\n\nexport interface SearchLiveToggleProps {\n label: string;\n}\nexport class SearchLiveToggle {\n render: ExtendedHTMLElement;\n private readonly toggle: Toggle;\n private queryChangeSubscriptionId: string | undefined;\n\n constructor (props: SearchLiveToggleProps) {\n const initialValue = MynahUIDataStore.getInstance().getValue('liveSearchState');\n this.toggle = new Toggle({\n name: 'mynah-implicit-search',\n value: initialValue,\n options: [\n {\n label: new Icon({ icon: MynahIcons.PLAY }).render,\n value: LiveSearchState.RESUME,\n color: LiveSearchStateColors[LiveSearchState.RESUME],\n },\n {\n label: new Icon({ icon: MynahIcons.PAUSE }).render,\n value: LiveSearchState.PAUSE,\n color: LiveSearchStateColors[LiveSearchState.PAUSE],\n },\n ],\n onChange: value => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.LIVE_SEARCH_STATE_CHANGED, {\n liveSearchState: value as LiveSearchState.RESUME | LiveSearchState.PAUSE\n });\n },\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-search-live-toggle-wrapper',\n ...(initialValue === LiveSearchState.STOP ? [ 'mynah-hide-content' ] : []) ],\n children: [ { type: 'b', children: [ props.label ] }, this.toggle.render ],\n });\n\n if (initialValue !== LiveSearchState.STOP) {\n this.queryChangeSubscriptionId = MynahUIDataStore.getInstance().subscribe('query', this.flashToggle);\n }\n\n MynahUIDataStore.getInstance().subscribe('liveSearchState', (newState: LiveSearchState) => {\n if (newState !== this.toggle.getValue()) {\n if (newState === LiveSearchState.STOP) {\n this.render.addClass('mynah-hide-content');\n if (this.queryChangeSubscriptionId !== undefined) {\n MynahUIDataStore.getInstance().unsubscribe('query', this.queryChangeSubscriptionId);\n this.queryChangeSubscriptionId = undefined;\n }\n } else {\n this.render.removeClass('mynah-hide-content');\n this.toggle.setValue(newState);\n if (this.queryChangeSubscriptionId === undefined) {\n this.queryChangeSubscriptionId = MynahUIDataStore.getInstance().subscribe('query', this.flashToggle);\n }\n }\n }\n });\n }\n\n flashToggle = (): void => {\n this.render.removeClass('flash-toggle');\n if (MynahUIDataStore.getInstance().getValue('liveSearchAnimation') === true) {\n setTimeout(() => {\n this.render.addClass('flash-toggle');\n }, 100);\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport {\n CanonicalExample,\n MynahEventNames,\n Suggestion,\n SupportedCodingLanguagesExtensionToTypeMap,\n} from '../../static';\nimport { SyntaxHighlighter } from '../syntax-highlighter';\nimport { findLanguageFromSuggestion } from '../../helper/find-language';\nimport { SuggestionCardRelevanceVote } from './suggestion-card-relevance-vote';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { SuggestionCard } from './suggestion-card';\n\nexport interface SuggestionCardBodyProps {\n suggestion: Suggestion;\n}\nexport class SuggestionCardBody {\n render: ExtendedHTMLElement;\n\n constructor (props: SuggestionCardBodyProps) {\n const matchingLanguage =\n findLanguageFromSuggestion(props.suggestion) ?? SupportedCodingLanguagesExtensionToTypeMap.js;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-center' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-card-body' ],\n children: [\n ...(Array.from(\n DomBuilder.getInstance().build({\n type: 'div',\n innerHTML: props.suggestion.body,\n }).childNodes\n ).map(node => {\n const elementFromNode: HTMLElement = node as HTMLElement;\n if ((elementFromNode.tagName?.toLowerCase() === 'pre' && elementFromNode.querySelector('code') !== null) ||\n elementFromNode.tagName?.toLowerCase() === 'code'\n ) {\n return new SyntaxHighlighter({\n codeStringWithMarkup: (elementFromNode.tagName?.toLowerCase() === 'pre' ? elementFromNode.querySelector('code') : elementFromNode)?.innerHTML ?? '',\n language: matchingLanguage,\n keepHighlights: true,\n showCopyOptions: true,\n onCopiedToClipboard: (type, text) => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_COPY_TO_CLIPBOARD, { suggestionId: props.suggestion.url, type, text });\n },\n }).render;\n }\n return node;\n }) as HTMLElement[]),\n ...(props.suggestion.type === 'ApiDocsSuggestion' && props.suggestion.metadata?.canonicalExample !== undefined\n ? [ new SuggestionCard({\n suggestion: {\n title: 'Example',\n id: '',\n context: [],\n ...(props.suggestion.metadata as CanonicalExample)?.canonicalExample,\n }\n }).render ]\n : [])\n ],\n },\n ...(props.suggestion.type !== 'ApiDocsSuggestion' ? [ new SuggestionCardRelevanceVote({ suggestion: props.suggestion }).render ] : []),\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ContextSource, ContextTypes, SearchPayloadMatchPolicy } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { ContextPill } from '../context-item';\nimport { MynahUIDataStore } from '../../helper/store';\n\nexport interface SuggestionCardContextWrapperProps {\n contextList: string[];\n}\nexport class SuggestionCardContextWrapper {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardContextWrapperProps) {\n const mustContextItems = (MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy).must;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-context-wrapper' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-card-tags' ],\n children: props.contextList?.map((context: string) => new ContextPill({\n context: {\n context,\n source: ContextSource.SUGGESTION,\n type: mustContextItems.includes(context) ? ContextTypes.MUST : ContextTypes.SHOULD\n },\n }).render),\n },\n ],\n });\n }\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getTimeDiff } from '../../helper/date-time';\nimport { DomBuilder, DomBuilderObject, ExtendedHTMLElement } from '../../helper/dom';\nimport { SuggestionMetaDataUnion } from '../../static';\nimport { Icon, MynahIcons } from '../icon';\n\nexport interface SuggestionCardHeaderProps {\n title: string;\n url: string;\n metadata?: SuggestionMetaDataUnion;\n onSuggestionTitleClick?: (e?: MouseEvent) => void;\n onSuggestionLinkCopy?: () => void;\n}\nexport class SuggestionCardHeader {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardHeaderProps) {\n const splittedUrl = props.url\n .replace(/^(http|https):\\/\\//, '')\n .split('/');\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-header', ...((props.metadata != null) ? [ 'mynah-card-header-with-source-thumbnail' ] : []) ],\n children: [\n ...((props.metadata != null)\n ? [ {\n type: 'span',\n classNames: [ 'mynah-source-thumbnail', this.getSourceMetaBlockClassName(props.metadata) ]\n } ]\n : []),\n {\n type: 'div',\n classNames: [ 'mynah-card-title-wrapper' ],\n children: [\n {\n type: 'a',\n classNames: [ 'mynah-card-title' ],\n events: {\n ...(props.onSuggestionTitleClick !== undefined && {\n click: props.onSuggestionTitleClick,\n }),\n },\n attributes: { href: props.url, target: '_blank' },\n children: [ props.title, {\n type: 'div',\n classNames: [ 'mynah-card-expand-icon' ],\n children: [ new Icon({ icon: MynahIcons.EXTERNAL }).render ],\n } ],\n },\n {\n type: 'a',\n classNames: [ 'mynah-card-url' ],\n events: {\n ...(props.onSuggestionTitleClick !== undefined && {\n click: props.onSuggestionTitleClick,\n }),\n ...(props.onSuggestionLinkCopy !== undefined && { copy: props.onSuggestionLinkCopy }),\n },\n attributes: { href: props.url, target: '_blank' },\n innerHTML: splittedUrl.map(urlPart => `<span><span>${urlPart}</span></span>`).join(''),\n },\n ...((props.metadata != null) ? [ this.getSourceMetaBlock(props.metadata) ] : []),\n ],\n },\n ],\n });\n }\n\n private readonly getSourceMetaBlockClassName = (metadataUnion?: SuggestionMetaDataUnion): string => metadataUnion !== null && metadataUnion !== undefined ? Object.keys(metadataUnion).join(' ') : '';\n\n private readonly getSourceMetaBlock = (metadataUnion?: SuggestionMetaDataUnion): DomBuilderObject => {\n const metaItems: any[] = [];\n if (metadataUnion !== null && metadataUnion !== undefined) {\n Object.keys(metadataUnion).forEach(metadataKey => {\n const metadata = metadataUnion[metadataKey];\n if (metadata.isAccepted === true) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item', 'approved-answer' ],\n children: [\n new Icon({ icon: MynahIcons.OK }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ 'Accepted answer' ]\n }\n ]\n });\n }\n\n if (metadata.lastActivityDate !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.CALENDAR }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${getTimeDiff((new Date()).getTime() - metadata.lastActivityDate, 2, ' and ')} ago` ]\n }\n ]\n });\n }\n\n if (metadata.answerCount !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.CHAT }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.answerCount.toString()} answers` ]\n }\n ]\n });\n }\n\n if (metadata.stars !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.STAR }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.stars.toString()} contributors` ]\n }\n ]\n });\n }\n\n if (metadata.forks !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.DOWN_OPEN }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.forks.toString()} forks` ]\n }\n ]\n });\n }\n\n if (metadata.score !== undefined) {\n metaItems.push({\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item' ],\n children: [\n new Icon({ icon: MynahIcons.THUMBS_UP }).render,\n {\n type: 'span',\n classNames: [ 'mynah-title-meta-block-item-text' ],\n children: [ `${metadata.score.toString()}` ]\n }\n ]\n });\n }\n });\n }\n\n return {\n type: 'span',\n classNames: [ 'mynah-title-meta-block' ],\n children: metaItems\n };\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MynahEventNames, RelevancyVoteType, Suggestion } from '../../static';\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { Icon, MynahIcons } from '../icon';\nimport { MynahUIGlobalEvents } from '../../helper/events';\n\nexport interface SuggestionCardRelevanceVoteProps {\n suggestion: Suggestion;\n}\nexport class SuggestionCardRelevanceVote {\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardRelevanceVoteProps) {\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-card-votes-wrapper' ],\n children: [\n {\n type: 'div',\n classNames: [ 'mynah-vote-text' ],\n innerHTML: '<b>Is this relevant?</b>',\n },\n {\n type: 'div',\n classNames: [ 'mynah-card-vote' ],\n children: [\n {\n type: 'input',\n events: {\n change: (e: Event) => {\n this.handleVoteChange(RelevancyVoteType.UP, props.suggestion);\n },\n },\n attributes: {\n type: 'radio',\n id: `${props.suggestion.url}-vote-up`,\n name: `${props.suggestion.url}-vote`,\n value: 'up',\n },\n classNames: [ 'mynah-vote-radio', 'mynah-vote-up-radio' ],\n },\n {\n type: 'input',\n events: {\n change: (e: Event) => {\n this.handleVoteChange(RelevancyVoteType.DOWN, props.suggestion);\n },\n },\n attributes: {\n type: 'radio',\n id: `${props.suggestion.url}-vote-down`,\n name: `${props.suggestion.url}-vote`,\n value: 'down',\n },\n classNames: [ 'mynah-vote-radio', 'mynah-vote-down-radio' ],\n },\n {\n type: 'label',\n attributes: { for: `${props.suggestion.url}-vote-up` },\n classNames: [ 'mynah-vote-label', 'mynah-vote-up' ],\n children: [ new Icon({ icon: MynahIcons.THUMBS_UP }).render ],\n },\n {\n type: 'label',\n attributes: { for: `${props.suggestion.url}-vote-down` },\n classNames: [ 'mynah-vote-label', 'mynah-vote-down' ],\n children: [ new Icon({ icon: MynahIcons.THUMBS_DOWN }).render ],\n },\n {\n type: 'span',\n classNames: [ 'mynah-vote-indicator' ],\n },\n ],\n },\n ],\n });\n }\n\n private readonly handleVoteChange = (vote: RelevancyVoteType, suggestion: Suggestion): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_VOTE, { suggestion, vote });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../../helper/dom';\nimport { MynahUIGlobalEvents } from '../../helper/events';\nimport { EngagementType, MynahEventNames, Suggestion, SuggestionMetaDataUnion } from '../../static';\nimport { SuggestionCardBody } from './suggestion-card-body';\nimport { SuggestionCardContextWrapper } from './suggestion-card-context-wrapper';\nimport { SuggestionCardHeader } from './suggestion-card-header';\n\n/**\n * We'll not consider it as an engagement if the total spend time is lower than below constant and won't trigger the event\n */\nconst ENGAGEMENT_DURATION_LIMIT = 3000;\n\n/**\n * This 6(px) and 300(ms) are coming from a behavioral research and browser reaction to input devices to count the action as a mouse movement or a click event\n */\nconst ENGAGEMENT_MIN_SELECTION_DISTANCE = 6;\nconst ENGAGEMENT_MIN_CLICK_DURATION = 300;\n\nexport interface SuggestionCardProps {suggestion: Suggestion}\nexport class SuggestionCard {\n private engagementStartTime: number = -1;\n private totalMouseDistanceTraveled: { x: number; y: number } = { x: 0, y: 0 };\n private previousMousePosition!: { x: number; y: number };\n private mouseDownInfo!: { x: number; y: number; time: number };\n private readonly suggestion: Suggestion;\n render: ExtendedHTMLElement;\n constructor (props: SuggestionCardProps) {\n this.suggestion = props.suggestion;\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n attributes: {\n 'data-filter': props.suggestion.context?.map(context => `${context}, `).join(''),\n },\n classNames: [ 'mynah-card' ],\n events: {\n mouseenter: e => {\n if (this.engagementStartTime === -1) {\n this.engagementStartTime = new Date().getTime();\n this.previousMousePosition = { x: e.clientX, y: e.clientY };\n this.totalMouseDistanceTraveled = { x: 0, y: 0 };\n }\n },\n mousemove: e => {\n this.totalMouseDistanceTraveled = {\n x:\n this.totalMouseDistanceTraveled.x +\n Math.abs(e.clientX - this.previousMousePosition.x),\n y:\n this.totalMouseDistanceTraveled.y +\n Math.abs(e.clientY - this.previousMousePosition.y),\n };\n this.previousMousePosition = { x: e.clientX, y: e.clientY };\n },\n mousedown: e => {\n this.mouseDownInfo = { x: e.clientX, y: e.clientY, time: new Date().getTime() };\n },\n mouseup: e => {\n const mouseUpInfo = { x: e.clientX, y: e.clientY, time: new Date().getTime() };\n if (\n this.mouseDownInfo !== undefined && // in case of down is prevented defauly by some listener\n (Math.abs(this.mouseDownInfo.x - mouseUpInfo.x) > ENGAGEMENT_MIN_SELECTION_DISTANCE ||\n Math.abs(this.mouseDownInfo.y - mouseUpInfo.y) >\n ENGAGEMENT_MIN_SELECTION_DISTANCE) &&\n mouseUpInfo.time - this.mouseDownInfo.time > ENGAGEMENT_MIN_CLICK_DURATION\n ) {\n this.handleEngagement({\n x: Math.abs(this.mouseDownInfo.x - mouseUpInfo.x),\n y: Math.abs(this.mouseDownInfo.y - mouseUpInfo.y),\n selectedText: window?.getSelection()?.toString(),\n });\n }\n },\n mouseleave: () => {\n const engagementEndTime = new Date().getTime();\n if (this.engagementStartTime !== -1 && engagementEndTime - this.engagementStartTime > ENGAGEMENT_DURATION_LIMIT) {\n this.handleEngagement();\n } else {\n this.resetEngagement();\n }\n },\n },\n children: [\n new SuggestionCardHeader({\n title: props.suggestion.title,\n url: props.suggestion.url,\n metadata: props.suggestion.type !== 'ApiDocsSuggestion' ? props.suggestion.metadata as SuggestionMetaDataUnion : undefined,\n onSuggestionTitleClick: (e?: MouseEvent) => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_OPEN, { suggestion: props.suggestion, event: e });\n },\n onSuggestionLinkCopy: () => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_LINK_COPY, { suggestion: props.suggestion });\n },\n }).render,\n ...(props.suggestion.context?.length > 0 ? [ new SuggestionCardContextWrapper({ contextList: props.suggestion.context }).render ] : []),\n new SuggestionCardBody({ suggestion: props.suggestion }).render,\n ],\n });\n }\n\n private readonly resetEngagement = (): void => {\n this.engagementStartTime = -1;\n this.totalMouseDistanceTraveled = { x: 0, y: 0 };\n this.previousMousePosition = { x: 0, y: 0 };\n this.mouseDownInfo = { x: 0, y: 0, time: -1 };\n };\n\n private readonly handleEngagement = (interactionDistanceTraveled?: {\n x: number;\n y: number;\n selectedText?: string;\n }): void => {\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.SUGGESTION_ENGAGEMENT, {\n suggestion: this.suggestion,\n engagementDurationTillTrigger: new Date().getTime() - this.engagementStartTime,\n scrollDistanceToEngage:\n this.render.offsetTop - this.previousMousePosition.y > 0\n ? this.render.offsetTop - this.previousMousePosition.y\n : 0,\n engagementType:\n interactionDistanceTraveled !== undefined ? EngagementType.INTERACTION : EngagementType.TIME,\n totalMouseDistanceTraveled: this.totalMouseDistanceTraveled,\n selectionDistanceTraveled:\n Boolean(interactionDistanceTraveled?.x ?? 0) && Boolean(interactionDistanceTraveled?.y)\n ? interactionDistanceTraveled\n : undefined,\n });\n this.resetEngagement();\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\nimport * as Prism from 'prismjs';\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-python';\nimport 'prismjs/components/prism-java';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers.js';\nimport {\n OnCopiedToClipboardFunction,\n SupportedCodingLanguagesExtensionToTypeMap,\n SupportedCodingLanguagesType,\n} from '../static';\nimport { Button } from './button';\nimport { Notification } from './notification/notification';\nimport { Icon, MynahIcons } from './icon';\nimport { cancelEvent } from '../helper/events';\n\nconst DEFAULT_LANG = SupportedCodingLanguagesExtensionToTypeMap.js;\n\n// they'll be used to replaced within the code, so making them unique is a must\nexport const highlighters = {\n start: {\n markup: '<span class=\"amzn-mynah-search-result-highlight\">',\n textReplacement: '__mynahhighlighterstart__',\n },\n end: {\n markup: '</span>',\n textReplacement: '__mynahhighlighterend__',\n },\n};\nexport const ellipsis = {\n start: {\n markup: '<span class=\"amzn-mynah-search-result-ellipsis\">',\n textReplacement: '__mynahcodeellipsisstart__',\n },\n end: {\n markup: '</span>',\n textReplacement: '__mynahcodeellipsisend__',\n },\n};\n\nexport interface SyntaxHighlighterProps {\n codeStringWithMarkup: string;\n language?: SupportedCodingLanguagesType;\n keepHighlights?: boolean;\n showLineNumbers?: boolean;\n startingLineNumber?: number;\n showCopyOptions?: boolean;\n onCopiedToClipboard?: OnCopiedToClipboardFunction;\n}\nexport class SyntaxHighlighter {\n private readonly code: ExtendedHTMLElement;\n private readonly onCopiedToClipboard?: OnCopiedToClipboardFunction;\n render: ExtendedHTMLElement;\n\n constructor (props: SyntaxHighlighterProps) {\n this.onCopiedToClipboard = props.onCopiedToClipboard;\n let codeMarkup = props.codeStringWithMarkup;\n // Replacing the markups with plain text replacement blocks\n if (props.keepHighlights === true) {\n codeMarkup = codeMarkup\n .replace(new RegExp(highlighters.start.markup, 'g'), highlighters.start.textReplacement)\n .replace(new RegExp(highlighters.end.markup, 'g'), highlighters.end.textReplacement)\n .replace(new RegExp(ellipsis.start.markup, 'g'), ellipsis.start.textReplacement)\n .replace(new RegExp(ellipsis.end.markup, 'g'), ellipsis.end.textReplacement);\n }\n // to get a clear plain text from html code string creating an element and getting innerText of it\n codeMarkup = DomBuilder.getInstance().build({ type: 'div', innerHTML: codeMarkup }).innerText;\n\n // Converting to prism styled markup\n let styledCode = Prism.highlight(\n `${codeMarkup}`,\n Prism.languages[props.language ?? DEFAULT_LANG],\n props.language ?? DEFAULT_LANG\n );\n\n // replacing back the plain text to markup for highlighting code\n if (props.keepHighlights === true) {\n styledCode = styledCode\n .replace(new RegExp(highlighters.start.textReplacement, 'g'), highlighters.start.markup)\n .replace(new RegExp(highlighters.end.textReplacement, 'g'), highlighters.end.markup)\n .replace(new RegExp(ellipsis.start.textReplacement, 'g'), ellipsis.start.markup)\n .replace(new RegExp(ellipsis.end.textReplacement, 'g'), ellipsis.end.markup);\n }\n\n this.code = DomBuilder.getInstance().build({\n type: 'code',\n innerHTML: styledCode,\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-syntax-highlighter' ],\n children: [\n ...(props.showCopyOptions === true\n ? [\n {\n type: 'div',\n classNames: [ 'mynah-syntax-highlighter-copy-buttons' ],\n children: [\n new Button({\n icon: new Icon({ icon: MynahIcons.COPY }).render,\n attributes: { title: 'Copy whole block' },\n primary: false,\n onClick: e => {\n cancelEvent(e);\n this.copyToClipboard(\n this.code.innerText,\n 'Whole code block is copied to clipboard',\n 'block'\n );\n },\n }).render,\n new Button({\n icon: new Icon({ icon: MynahIcons.TEXT_SELECT }).render,\n attributes: { title: 'Copy selected text' },\n primary: false,\n onClick: e => {\n cancelEvent(e);\n const currentRange = window.getSelection() !== null ? window.getSelection()?.getRangeAt(0) ?? null : null;\n let textToSendClipboard: string | undefined;\n if (currentRange?.commonAncestorContainer?.isSameNode(this.code) ?? false) {\n textToSendClipboard = window.getSelection()?.toString();\n }\n this.copyToClipboard(\n textToSendClipboard ?? this.code.innerText,\n `${\n textToSendClipboard !== undefined\n ? 'Your selection'\n : 'Whole code block'\n } is copied to clipboard.`,\n textToSendClipboard !== undefined ? 'selection' : 'block'\n );\n },\n additionalEvents: { mousedown: cancelEvent },\n }).render,\n ],\n },\n ]\n : []),\n {\n type: 'pre',\n classNames: [\n `language-${props.language ?? DEFAULT_LANG}`,\n ...(props.showLineNumbers === true ? [ 'line-numbers' ] : []),\n ],\n children: [\n this.code,\n ...(props.showLineNumbers === true\n ? [\n {\n type: 'span',\n classNames: [ 'line-numbers-rows' ],\n children: styledCode.split(/\\n/).map((n: string, i: number) => ({\n type: 'span',\n innerHTML: String(i + (props.startingLineNumber ?? 1)),\n })),\n },\n ]\n : []),\n ],\n },\n ],\n });\n }\n\n private readonly copyToClipboard = (\n textToSendClipboard: string,\n notificationText?: string,\n type?: 'selection' | 'block'\n ): void => {\n navigator.clipboard\n .writeText(textToSendClipboard)\n .then(() => {\n if (this.onCopiedToClipboard !== undefined) {\n this.onCopiedToClipboard(type, textToSendClipboard);\n }\n if (notificationText !== undefined) {\n // eslint-disable no-new\n new Notification({\n content: notificationText,\n title: 'Copied to clipbard',\n duration: 2000,\n }).notify();\n }\n })\n .catch(e => {\n //\n });\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// eslint-disable @typescript-eslint/restrict-template-expressions\nimport { DomBuilder, ExtendedHTMLElement } from '../helper/dom';\n\nexport interface ToggleOption {\n label?: ExtendedHTMLElement | string | HTMLElement;\n color?: string;\n disabled?: boolean;\n selected?: boolean;\n value: string;\n}\nexport interface ToggleProps {\n options: ToggleOption[];\n type?: 'switch' | 'tabs';\n value?: string | null;\n name: string;\n disabled?: boolean;\n onChange?: (selectedValue: string) => void;\n}\nexport class Toggle {\n render: ExtendedHTMLElement;\n private readonly props: ToggleProps;\n private currentValue?: string;\n private readonly relocateTransitioner: ExtendedHTMLElement;\n\n constructor (props: ToggleProps) {\n this.props = { type: 'switch', ...props };\n this.relocateTransitioner = DomBuilder.getInstance().build({\n type: 'span',\n classNames: [ 'mynah-toggle-indicator-transitioner' ],\n });\n this.render = DomBuilder.getInstance().build({\n type: 'div',\n classNames: [ 'mynah-toggle-container', `mynah-toggle-type-${this.props.type as string}` ],\n attributes: { disabled: props.disabled === true ? 'disabled' : '' },\n children: this.getChildren(props.value),\n });\n\n if (typeof props.value === 'string') {\n this.setRelocatePosition(props.value);\n }\n }\n\n private readonly getChildren = (value?: string | null): any[] => [\n ...this.props.options.map(option => {\n if (option.value === value && option.color !== undefined) {\n this.relocateTransitioner.style.backgroundColor = option.color;\n }\n return DomBuilder.getInstance().build({\n type: 'span',\n attributes: { key: `${this.props.name}-${option.value}` },\n children: [\n {\n type: 'input',\n classNames: [ 'mynah-toggle-option' ],\n attributes: {\n type: 'radio',\n id: `${this.props.name}-${option.value}`,\n name: this.props.name,\n ...(value === option.value ? { checked: 'checked' } : {}),\n ...(option.disabled === true ? { disabled: 'disabled' } : {}),\n },\n events: {\n change: () => {\n this.updateSelectionRender(option.value, option.color);\n },\n },\n },\n {\n type: 'label',\n classNames: [ 'mynah-toggle-option-label' ],\n attributes: {\n for: `${this.props.name}-${option.value}`,\n ...(option.color !== undefined ? { style: `background-color:${option.color}` } : {}),\n },\n children: [ option.label ?? '' ],\n },\n ],\n });\n }),\n this.relocateTransitioner,\n ];\n\n private readonly setRelocatePosition = (value: string, color?: string): void => {\n this.currentValue = value;\n setTimeout(() => {\n const renderRect = this.render.getBoundingClientRect();\n const optionRender = this.render\n .querySelector(`label[for=\"${this.props.name}-${value}\"]`) as HTMLElement;\n const rect = optionRender?.getBoundingClientRect() ?? {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n };\n\n if (this.props.type === 'switch') {\n this.relocateTransitioner.style.top = `${rect.top - renderRect.top}px`;\n this.relocateTransitioner.style.height = `${rect.height}px`;\n } else if (this.props.type === 'tabs') {\n this.relocateTransitioner.style.top = `${rect.height + rect.top - renderRect.top}px`;\n }\n this.relocateTransitioner.style.left = `${rect.left - renderRect.left}px`;\n this.relocateTransitioner.style.width = `${rect.width}px`;\n if (color !== undefined) {\n this.relocateTransitioner.style.backgroundColor = color;\n if (optionRender !== undefined) {\n optionRender.style.color = color;\n }\n }\n }, 5);\n };\n\n private readonly updateSelectionRender = (value: string, color?: string): void => {\n this.relocateTransitioner.removeClass('relocate');\n this.setRelocatePosition(value, color);\n\n setTimeout(() => {\n this.relocateTransitioner.addClass('relocate');\n if (this.props.onChange !== undefined) {\n this.props.onChange(value);\n }\n }, 200);\n };\n\n setValue = (value: string): void => {\n // Since the html elements are not interactable when there is no user action\n // such as a real physical input event, we need to redraw the elements\n this.render.update({ children: this.getChildren(value) });\n this.setRelocatePosition(value);\n };\n\n getValue = (): string | undefined => this.currentValue;\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DomBuilder } from './dom';\n\nconst configProcessors: Record<string, (sourceString: string) => any> = {\n language: (sourceString: string) => decodeURI(sourceString),\n};\nexport class MynahConfig {\n private config: Record<string, any> = {\n 'logo-url': '',\n language: 'en',\n };\n\n constructor () {\n const configElement = DomBuilder.getInstance().root.querySelector('mynah-config');\n if (configElement !== null) {\n Object.keys(this.config).forEach((configItem: string) => {\n if (configElement.getAttribute(configItem) !== undefined) {\n this.config[configItem] = configProcessors[configItem] !== undefined\n ? configProcessors[configItem](\n configElement.getAttribute(configItem) ?? this.config[configItem]\n )\n : configElement.getAttribute(configItem) ?? this.config[configItem];\n }\n });\n }\n }\n\n getConfig = (configName: string): any => this.config[configName] ?? '';\n\n setConfig = (configName: string, configValue: string): void => {\n this.config[configName] = configValue;\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const getTimeDiff = (differenceInMs: number, show?: {\n years?: boolean;\n months?: boolean;\n weeks?: boolean;\n days?: boolean;\n hours?: boolean;\n minutes?: boolean;\n} | 1 | 2 | 3 | 4 | 5 | 6, separator?: string): string => {\n // get total seconds for the difference\n let delta = Math.abs(differenceInMs) / 1000;\n\n // calculate (and subtract) whole years\n const years = Math.floor(delta / (86_400 * 30 * 12));\n delta -= years * (86_400 * 30 * 12);\n\n // calculate (and subtract) whole months\n const months = Math.floor(delta / (86_400 * 30));\n delta -= months * (86_400 * 30);\n\n // calculate (and subtract) whole weeks\n const weeks = Math.floor(delta / (86_400 * 7));\n delta -= weeks * (86_400 * 7);\n\n // calculate (and subtract) whole days\n const days = Math.floor(delta / 86_400);\n delta -= days * 86_400;\n\n // calculate (and subtract) whole hours\n const hours = Math.floor(delta / 3_600) % 24;\n delta -= hours * 3_600;\n\n // calculate (and subtract) whole minutes\n const minutes = Math.floor(delta / 60) % 60;\n delta -= minutes * 60;\n\n const combined = [];\n if (years !== 0 && (show === undefined || typeof show !== 'object' || show.years !== false)) {\n combined.push(`${years > 1 ? years : 'a'} year${years > 1 ? 's' : ''}`);\n }\n if (months !== 0 && (show === undefined || typeof show !== 'object' || show.months !== false)) {\n combined.push(`${months > 1 ? months : 'a'} month${months > 1 ? 's' : ''}`);\n }\n if (weeks !== 0 && (show === undefined || typeof show !== 'object' || show.weeks !== false)) {\n combined.push(`${weeks > 1 ? weeks : 'a'} week${weeks > 1 ? 's' : ''}`);\n }\n if (days !== 0 && (show === undefined || typeof show !== 'object' || show.days !== false)) {\n combined.push(`${days > 1 ? days : 'a'} day${days > 1 ? 's' : ''}`);\n }\n if (hours !== 0 && (show === undefined || typeof show !== 'object' || show.hours !== false)) {\n combined.push(`${hours > 1 ? hours : 'an'} hour${hours > 1 ? 's' : ''}`);\n }\n if (minutes !== 0 && (show === undefined || typeof show !== 'object' || show.minutes !== false)) {\n combined.push(`${minutes > 1 ? minutes : 'a'} minute${minutes > 1 ? 's' : ''}`);\n }\n\n if (years + months + weeks + days + hours + minutes === 0) {\n return 'a minute';\n }\n\n if (show !== undefined && typeof show === 'number') {\n combined.splice(show, combined.length);\n }\n return combined.join(separator ?? ' ');\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { cancelEvent } from './events';\n\n/* eslint-disable @typescript-eslint/method-signature-style */\n/* eslint-disable @typescript-eslint/consistent-type-assertions */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nexport const DS: typeof document.querySelectorAll = document.querySelectorAll.bind(document);\n\nexport interface DomBuilderObject {\n type: string;\n attributes?: Record<string, string> | undefined;\n classNames?: string[] | undefined;\n events?: Record<string, (event?: any) => any> | undefined;\n children?: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement> | undefined;\n innerHTML?: string | undefined;\n persistent?: boolean | undefined;\n}\n\nexport interface DomBuilderObjectFilled {\n attributes?: Record<string, string | undefined>;\n classNames?: string[];\n events?: Record<string, (event?: any) => any>;\n children?: Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>;\n innerHTML?: string | undefined;\n persistent?: boolean;\n}\n\nconst EmptyDomBuilderObject: DomBuilderObject = {\n type: 'div',\n attributes: {},\n classNames: [],\n events: {},\n children: [],\n innerHTML: undefined,\n persistent: false,\n};\n\nexport interface ExtendedHTMLElement extends HTMLInputElement {\n addClass(className: string): ExtendedHTMLElement;\n removeClass(className: string): ExtendedHTMLElement;\n toggleClass(className: string): ExtendedHTMLElement;\n hasClass(className: string): boolean;\n insertChild(\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',\n child:\n | string\n | DomBuilderObject\n | HTMLElement\n | ExtendedHTMLElement\n | Array<string | DomBuilderObject | HTMLElement | ExtendedHTMLElement>\n ): ExtendedHTMLElement;\n clear(removePersistent?: boolean): ExtendedHTMLElement;\n builderObject: DomBuilderObject;\n update(builderObject: DomBuilderObjectFilled): ExtendedHTMLElement;\n}\n\nexport class DomBuilder {\n private static instance: DomBuilder;\n root: ExtendedHTMLElement;\n private portals: Record<string, ExtendedHTMLElement> = {};\n\n private constructor (rootSelector: string) {\n this.root = DS(rootSelector)[0] as ExtendedHTMLElement;\n this.extendDomFunctionality(this.root);\n }\n\n public static getInstance (rootSelector?: string): DomBuilder {\n if (!DomBuilder.instance) {\n DomBuilder.instance = new DomBuilder(rootSelector !== undefined ? rootSelector : 'body');\n }\n\n return DomBuilder.instance;\n }\n\n addClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n if (className !== '') {\n this.classList.add(className);\n // eslint-disable-next-line @typescript-eslint/prefer-includes\n if (this.builderObject.classNames?.indexOf(className) === -1) {\n this.builderObject.classNames = [ ...this.builderObject.classNames, className ];\n }\n }\n return this;\n };\n\n removeClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n this.classList.remove(className);\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (this.builderObject.classNames !== undefined && this.builderObject.classNames.includes(className)) {\n this.builderObject.classNames.splice(this.builderObject.classNames.indexOf(className), 1);\n }\n return this;\n };\n\n toggleClass = function (this: ExtendedHTMLElement, className: string): ExtendedHTMLElement {\n if (this.classList.contains(className)) {\n this.removeClass(className);\n } else {\n this.addClass(className);\n }\n return this;\n };\n\n hasClass = function (this: ExtendedHTMLElement, className: string): boolean {\n return this.classList.contains(className);\n };\n\n insertChild = function (\n this: ExtendedHTMLElement,\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend',\n child: string | HTMLElement | ExtendedHTMLElement | Array<string | HTMLElement | ExtendedHTMLElement>\n ): ExtendedHTMLElement {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (child) {\n if (child instanceof Array) {\n child.forEach(childItem => {\n if (childItem instanceof Element) {\n this.insertAdjacentElement(position, childItem);\n } else if (typeof childItem === 'string') {\n this.insertAdjacentText(position, childItem);\n }\n });\n } else {\n if (child instanceof Element) {\n this.insertAdjacentElement(position, child);\n } else if (typeof child === 'string') {\n this.insertAdjacentText(position, child);\n }\n }\n }\n return this;\n };\n\n clearChildren = function (this: ExtendedHTMLElement, removePersistent: boolean): ExtendedHTMLElement {\n Array.from(this.children).forEach((child: ExtendedHTMLElement | Element) => {\n if (\n removePersistent ||\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n !(child as ExtendedHTMLElement).builderObject ||\n (child as ExtendedHTMLElement).builderObject.persistent !== true\n ) {\n child.remove();\n }\n });\n return this;\n };\n\n extendDomFunctionality = function (this: DomBuilder, domElement: HTMLElement): ExtendedHTMLElement {\n const extendedElement: ExtendedHTMLElement = domElement as ExtendedHTMLElement;\n extendedElement.addClass = this.addClass.bind(extendedElement);\n extendedElement.removeClass = this.removeClass.bind(extendedElement);\n extendedElement.toggleClass = this.toggleClass.bind(extendedElement);\n extendedElement.hasClass = this.hasClass.bind(extendedElement);\n extendedElement.insertChild = this.insertChild.bind(extendedElement);\n extendedElement.clear = this.clearChildren.bind(extendedElement);\n return extendedElement;\n };\n\n build = (domBuilderObject: DomBuilderObject): ExtendedHTMLElement => {\n const readyToBuildObject: DomBuilderObject = { ...EmptyDomBuilderObject, ...domBuilderObject };\n const buildedDom = document.createElement(readyToBuildObject.type);\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n buildedDom.classList.add(...(readyToBuildObject.classNames?.filter(className => className !== '') || []));\n\n Object.keys(readyToBuildObject.events ?? {}).forEach((eventName: string) =>\n buildedDom.addEventListener(\n eventName,\n readyToBuildObject.events ? readyToBuildObject.events[eventName] : cancelEvent\n )\n );\n\n Object.keys(readyToBuildObject.attributes ?? {}).forEach(attributeName =>\n buildedDom.setAttribute(\n attributeName,\n readyToBuildObject.attributes !== undefined ? readyToBuildObject.attributes[attributeName] : ''\n )\n );\n\n if (typeof readyToBuildObject.innerHTML === 'string') {\n buildedDom.innerHTML = readyToBuildObject.innerHTML;\n } else if (readyToBuildObject.children !== undefined && readyToBuildObject.children.length > 0) {\n this.insertChild.apply(buildedDom as ExtendedHTMLElement, [\n 'beforeend',\n [\n ...(readyToBuildObject.children as any[]).map(\n (child: string | ExtendedHTMLElement | HTMLElement | DomBuilderObject) => {\n if (typeof child === 'string' || child instanceof HTMLElement) {\n return child;\n }\n return this.build(child);\n }\n ),\n ],\n ]);\n }\n\n ;(buildedDom as ExtendedHTMLElement).builderObject = readyToBuildObject\n ;(buildedDom as ExtendedHTMLElement).update = (builderObject: DomBuilderObjectFilled): ExtendedHTMLElement => {\n return this.update(buildedDom as ExtendedHTMLElement, builderObject);\n };\n this.extendDomFunctionality(buildedDom);\n return buildedDom as ExtendedHTMLElement;\n };\n\n update = function (\n domToUpdate: ExtendedHTMLElement,\n domBuilderObject: DomBuilderObjectFilled\n ): ExtendedHTMLElement {\n if (domToUpdate.builderObject) {\n if (domBuilderObject.classNames !== undefined) {\n domToUpdate.classList.remove(...(domToUpdate.builderObject.classNames as string[]));\n domToUpdate.classList.add(...domBuilderObject.classNames.filter(className => className !== ''));\n }\n\n Object.keys(domBuilderObject.events ?? {}).forEach(eventName => {\n if (domToUpdate.builderObject.events !== undefined && domToUpdate.builderObject.events[eventName]) {\n domToUpdate.removeEventListener(eventName, domToUpdate.builderObject.events[eventName]);\n }\n if (domBuilderObject.events !== undefined && domBuilderObject.events[eventName] !== undefined) {\n domToUpdate.addEventListener(eventName, domBuilderObject.events[eventName]);\n }\n });\n\n Object.keys(domBuilderObject.attributes ?? {}).forEach(attributeName => {\n if (\n domBuilderObject.attributes !== undefined &&\n domBuilderObject.attributes[attributeName] === undefined\n ) {\n domToUpdate.removeAttribute(attributeName);\n } else if (domBuilderObject.attributes !== undefined) {\n domToUpdate.setAttribute(attributeName, domBuilderObject.attributes[attributeName] as string);\n }\n });\n\n if (typeof domBuilderObject.innerHTML === 'string') {\n domToUpdate.innerHTML = domBuilderObject.innerHTML;\n } else if (domBuilderObject.children !== undefined && domBuilderObject.children.length > 0) {\n domToUpdate.clear();\n domToUpdate.insertChild('beforeend', domBuilderObject.children);\n }\n\n domToUpdate.builderObject = { ...EmptyDomBuilderObject, ...domBuilderObject } as DomBuilderObject;\n } else {\n console.warn('element was not created with dom builder');\n }\n return domToUpdate;\n };\n\n createPortal = (\n portalName: string,\n builderObject: DomBuilderObject,\n position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend'\n ): ExtendedHTMLElement => {\n const portalDom = this.build(builderObject);\n this.root.insertChild(position || 'beforeend', portalDom);\n this.portals[portalName] = portalDom;\n return portalDom;\n };\n\n getPortal = (portalName: string): ExtendedHTMLElement => this.portals[portalName];\n removePortal = (portalName: string): void => this.portals[portalName].remove();\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport { MynahEventNames } from '../static';\nimport { generateUID } from './guid';\n\nexport const cancelEvent = (event: Event): boolean => {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return false;\n};\n\nexport class MynahUIGlobalEvents {\n private static instance: MynahUIGlobalEvents;\n private readonly listeners: Record<MynahEventNames, Record<string, (value?: any) => void>>;\n\n private constructor () {\n this.listeners = { ...this.listeners };\n }\n\n public static getInstance = (): MynahUIGlobalEvents => {\n if (MynahUIGlobalEvents.instance === undefined) {\n MynahUIGlobalEvents.instance = new MynahUIGlobalEvents();\n }\n\n return MynahUIGlobalEvents.instance;\n };\n\n /**\n * Subscribe to value changes of a specific item in data store\n * @param eventKey One of the keys in MynahUIDataModel\n * @param handler function will be called with optional data field\n * @returns listenerId which will be necessary to removeListener\n */\n public addListener = (eventKey: MynahEventNames, handler: (data?: any) => void): string => {\n const listenerId: string = generateUID();\n if (this.listeners[eventKey] === undefined) {\n this.listeners[eventKey] = {};\n }\n this.listeners[eventKey][listenerId] = handler;\n return listenerId;\n };\n\n /**\n * Unsubscribe from changes of a specific item in data store\n * @param eventKey One of the keys in MynahUIDataModel\n * @param listenerId listenerId which is returned from addListener function\n */\n public removeListener = (eventKey: MynahEventNames, listenerId: string): void => {\n if (this.listeners[eventKey]?.[listenerId] !== undefined) {\n delete this.listeners[eventKey][listenerId];\n }\n };\n\n /**\n * Updates the store and informs the subscribers.\n * @param data A full or partial set of store data model with values.\n */\n public dispatch = (eventKey: MynahEventNames, data?: any): void => {\n if (this.listeners[eventKey] !== undefined) {\n Object.keys(this.listeners[eventKey]).forEach((listenerId: string) => {\n this.listeners[eventKey][listenerId](data);\n });\n }\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Suggestion, SupportedCodingLanguages, SupportedCodingLanguagesExtensionToTypeMap } from '../static';\n\n/**\n * Finds the coding language if there is a match witnin the supported languages from context or body or from the title\n * @param suggestion SuggestionType\n * @returns string | undefined\n */\nexport const findLanguageFromSuggestion = (suggestion: Suggestion): string | undefined => {\n let res = suggestion.context?.reduce((res: string | undefined, ctx: string): string | undefined => {\n if (res === undefined && SupportedCodingLanguages.includes(ctx)) {\n return ctx;\n }\n return res;\n }, undefined);\n\n if (res === undefined) {\n SupportedCodingLanguages.forEach(codingLang => {\n if (\n suggestion.title.match(new RegExp(codingLang, 'gi')) !== null ||\n suggestion.body.match(new RegExp(codingLang, 'gi')) !== null\n ) {\n res = codingLang;\n }\n });\n }\n\n if (res === undefined) {\n res = getLanguageFromFileName(suggestion.title);\n }\n return res;\n};\n\ntype SupportedFileExtension = keyof typeof SupportedCodingLanguagesExtensionToTypeMap;\n/**\n * Finds the coding language if there is a match within the supported languages from the given file name\n * @param fileName string\n * @returns string | undefined\n */\nexport const getLanguageFromFileName = (fileName: string): string | undefined => {\n const fileExtension: SupportedFileExtension = fileName.split('.').pop() as SupportedFileExtension;\n return SupportedCodingLanguagesExtensionToTypeMap[fileExtension] ?? undefined;\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const generateUID = (): string => {\n const firstPart: number = (Math.random() * 46656) | 0;\n const secondPart: number = (Math.random() * 46656) | 0;\n return `000${firstPart.toString(36)}`.slice(-3) + `000${secondPart.toString(36)}`.slice(-3);\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SearchPayload } from '../static';\n\nexport interface PayloadTransformRule {\n // keys list in order to access to edit the desired attribute in deeper levels\n targetRoute: string[];\n method: 'add' | 'remove' | 'set';\n value?: any;\n values?: any[];\n}\n\nexport const transformPayloadData = (rules: PayloadTransformRule[], payloadData: SearchPayload): SearchPayload => {\n const processedRules: PayloadTransformRule[] = [];\n rules.forEach(rule => {\n if (rule.values !== undefined) {\n processedRules.push(...rule.values.map(value => ({ targetRoute: rule.targetRoute, method: rule.method, value })));\n } else {\n processedRules.push(rule);\n }\n });\n processedRules.forEach(rule => {\n let targetNode: any = payloadData;\n rule.targetRoute.forEach(targetRouteKey => (targetNode = targetNode[targetRouteKey]));\n\n switch (rule.method) {\n case 'add':\n if (typeof targetNode.splice !== 'undefined') {\n targetNode.push(rule.value);\n }\n break;\n case 'remove':\n if (typeof targetNode.splice !== 'undefined' && (targetNode as any[]).includes(rule.value)) {\n (targetNode as any[]).splice((targetNode as any[]).indexOf(rule.value), 1);\n }\n break;\n case 'set':\n targetNode = rule.value;\n }\n });\n return payloadData;\n};\n\nexport const validateRulesOnPayloadData = (rules: PayloadTransformRule[], payloadData: SearchPayload): boolean => {\n let validatedRules = 0;\n const processedRules: PayloadTransformRule[] = [];\n rules.forEach(rule => {\n if (rule.values !== undefined) {\n processedRules.push(...rule.values.map(value => ({ targetRoute: rule.targetRoute, method: rule.method, value })));\n } else {\n processedRules.push(rule);\n }\n });\n processedRules.forEach(rule => {\n let targetNode: any = payloadData;\n rule.targetRoute.forEach(targetRouteKey => (targetNode = targetNode[targetRouteKey]));\n\n switch (rule.method) {\n case 'add':\n if (typeof targetNode.splice !== 'undefined' && targetNode.find((elm: any) => elm === rule.value) !== undefined) {\n validatedRules++;\n } else {\n return false;\n }\n break;\n case 'remove':\n if (typeof targetNode.splice !== 'undefined' && targetNode.find((elm: any) => elm === rule.value) === undefined) {\n validatedRules++;\n } else {\n return false;\n }\n break;\n case 'set':\n if (targetNode === rule.value) {\n validatedRules++;\n } else {\n return false;\n }\n }\n });\n return validatedRules === rules.length;\n};\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport { LiveSearchState, MynahEventNames, MynahUIDataModel, NotificationType } from '../static';\nimport { MynahUIGlobalEvents } from './events';\nimport { generateUID } from './guid';\n\nconst PrimitiveObjectTypes = [ 'string', 'number', 'boolean' ];\nexport class EmptyMynahUIDataModel {\n data: Required<MynahUIDataModel>;\n constructor (defaults?: MynahUIDataModel | null) {\n this.data = {\n loading: false,\n liveSearchState: LiveSearchState.STOP,\n query: '',\n code: '',\n invisibleContextItems: [],\n navigationTabs: [],\n autoCompleteSuggestions: [],\n searchHistory: [],\n showingHistoricalSearch: false,\n liveSearchAnimation: true,\n codeSelection: {\n selectedCode: '',\n file: {\n name: '',\n range: {\n start: { row: '0', column: '0' },\n end: { row: '0', column: '0' }\n }\n }\n },\n codeQuery: { simpleNames: [], usedFullyQualifiedNames: [] },\n matchPolicy: { must: [], mustNot: [], should: [] },\n userAddedContext: [],\n suggestions: [],\n headerInfo: {\n content: '',\n type: NotificationType.INFO\n },\n ...defaults\n };\n }\n}\nexport class MynahUIDataStore {\n private static instance: MynahUIDataStore;\n private readonly subsciptions: Record<keyof MynahUIDataModel, Record<string, (newValue?: any, oldValue?: any) => void>>;\n private store: Required<MynahUIDataModel> = (new EmptyMynahUIDataModel()).data;\n private defaults: MynahUIDataModel | null = null;\n\n private constructor (initialData?: MynahUIDataModel) {\n this.store = Object.assign(this.store, initialData);\n this.subsciptions = Object.create({});\n (Object.keys(this.store) as Array<keyof MynahUIDataModel>).forEach((storeKey) => {\n Object.assign(this.subsciptions, { [storeKey]: {} });\n });\n }\n\n public static getInstance = (initialData?: MynahUIDataModel): MynahUIDataStore => {\n if (MynahUIDataStore.instance === undefined) {\n MynahUIDataStore.instance = new MynahUIDataStore(initialData);\n }\n\n return MynahUIDataStore.instance;\n };\n\n /**\n * Sets the defaults to use while clearing the store\n * @param defaults partial set of MynahUIDataModel for defaults\n */\n public setDefaults = (defaults: MynahUIDataModel | null): void => {\n this.defaults = defaults;\n };\n\n /**\n * Get the defaults to use while generating an empty store data\n */\n public getDefaults = (): MynahUIDataModel | null => this.defaults;\n\n /**\n * Subscribe to value changes of a specific item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @param handler function will be called when value of the given key is updated in store with new and old values\n * @returns subscriptionId which needed to unsubscribe\n */\n public subscribe = (storeKey: keyof MynahUIDataModel, handler: (newValue: any, oldValue?: any) => void): string => {\n const subscriptionId: string = generateUID();\n this.subsciptions[storeKey][subscriptionId] = handler;\n return subscriptionId;\n };\n\n /**\n * Unsubscribe from changes of a specific item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @param subscriptionId subsciptionId which is returned from subscribe function\n */\n public unsubscribe = (storeKey: keyof MynahUIDataModel, subscriptionId: string): void => {\n if (this.subsciptions[storeKey]?.[subscriptionId] !== undefined) {\n delete this.subsciptions[storeKey][subscriptionId];\n }\n };\n\n /**\n * Returns current value of an item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @returns value of the given key in data store\n */\n public getValue = (storeKey: keyof MynahUIDataModel): any => structuredClone(this.store[storeKey]);\n\n /**\n * Returns current value of an item in data store\n * @param storeKey One of the keys in MynahUIDataModel\n * @returns value of the given key in data store\n */\n public getDefaultValue = (storeKey: keyof MynahUIDataModel): any => (new EmptyMynahUIDataModel(this.defaults)).data[storeKey];\n\n /**\n * Updates the store and informs the subscribers.\n * @param data A full or partial set of store data model with values.\n */\n public updateStore = (data: MynahUIDataModel, skipSubscribers?: boolean): void => {\n if (skipSubscribers !== true) {\n (Object.keys(data) as Array<keyof MynahUIDataModel>).forEach(storeKey => {\n Object.keys(this.subsciptions[storeKey]).forEach((subscriptionId: string) => {\n if (!PrimitiveObjectTypes.includes(typeof data[storeKey]) || data[storeKey] !== this.store[storeKey]) {\n this.subsciptions[storeKey][subscriptionId](data[storeKey], this.store[storeKey]);\n }\n });\n });\n }\n this.store = Object.assign(structuredClone(this.store), data);\n };\n\n /**\n * Clears store data and informs all the subscribers\n */\n public resetStore = (): void => {\n this.updateStore((new EmptyMynahUIDataModel(structuredClone(this.defaults))).data);\n MynahUIGlobalEvents.getInstance().dispatch(MynahEventNames.RESET_STORE);\n };\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MynahIcons } from './components/icon';\nimport { ToggleOption } from './components/toggle';\n\nexport interface MynahUIDataModel {\n loading?: boolean;\n liveSearchState?: LiveSearchState;\n liveSearchAnimation?: boolean;\n query?: string;\n code?: string;\n codeSelection?: SearchPayloadCodeSelection;\n codeQuery?: SearchPayloadCodeQuery;\n matchPolicy?: SearchPayloadMatchPolicy;\n invisibleContextItems?: string[];\n navigationTabs?: ToggleOption[];\n userAddedContext?: string[];\n suggestions?: Suggestion[];\n autoCompleteSuggestions?: AutocompleteItem[];\n searchHistory?: SearchHistoryItem[];\n showingHistoricalSearch?: boolean;\n headerInfo?: {\n content: string;\n type?: NotificationType;\n };\n}\n\nexport enum MynahEventNames {\n RESET_STORE = 'resetStore',\n CONTEXT_VISIBILITY_CHANGE = 'contextVisibilityChange',\n AUTOCOMPLETE_SUGGESTION_CLICK = 'autoCompleteSuggestionClick',\n SEARCH = 'search',\n INPUT_QUERY_CHANGE = 'inputQueryChange',\n REQUEST_SEARCH_HISTORY = 'requestSearchHistory',\n SEARCH_HISTORY_ITEM_CLICK = 'searchHistoryItemClick',\n LIVE_SEARCH_STATE_CHANGED = 'liveSearchStateChanged',\n FEEDBACK_SET = 'feedbackSet',\n CODE_DETAILS_CLICK = 'codeDetailsClick',\n SUGGESTION_VOTE = 'suggestionVote',\n SUGGESTION_OPEN = 'suggestionOpen',\n SUGGESTION_LINK_COPY = 'suggestionLinkCopy',\n SUGGESTION_ENGAGEMENT = 'suggestionEngagement',\n SUGGESTION_COPY_TO_CLIPBOARD = 'suggestionCopyToClipboard',\n};\nexport const MynahPortalNames = {\n WRAPPER: 'wrapper',\n OVERLAY: 'overlay',\n FEEDBACK_FORM: 'feedbackForm',\n};\nexport interface SearchPayloadMatchPolicy {\n must: string[];\n should: string[];\n mustNot: string[];\n}\nexport interface SearchPayloadCodeSelection {\n selectedCode: string;\n file?: {\n range: {\n start: { row: string; column: string };\n end: { row: string; column: string };\n };\n name: string;\n };\n}\nexport interface SearchPayloadCodeQuery {\n simpleNames: string[];\n usedFullyQualifiedNames: string[];\n}\nexport interface SearchPayload {\n query: string;\n matchPolicy: SearchPayloadMatchPolicy;\n codeSelection: SearchPayloadCodeSelection;\n codeQuery?: SearchPayloadCodeQuery;\n code?: string;\n selectedTab?: string;\n}\nexport interface SuggestionMetaData {\n stars?: number; // repo stars\n forks?: number; // repo forks\n answerCount?: number; // total answers if it is a question\n isOfficialDoc?: boolean; // is suggestion comes from an official api doc\n isAccepted?: boolean; // is accepted or not if it is an answer\n score?: number; // relative score according to the up and down votes for a question or an answer\n lastActivityDate?: number; // creation or last update date for question or answer\n}\nexport type SuggestionMetaDataUnion = Record<string, SuggestionMetaData>;\nexport interface CanonicalExample {canonicalExample: {body: string; url: string}}\nexport interface Suggestion {\n id: string;\n title: string;\n url: string;\n body: string;\n context: string[];\n type?: string;\n metadata?: SuggestionMetaDataUnion | CanonicalExample;\n}\n\nexport enum KeyMap {\n ESCAPE = 'Escape',\n ENTER = 'Enter',\n BACKSPACE = 'Backspace',\n SPACE = ' ',\n DELETE = 'Delete',\n ARROW_UP = 'ArrowUp',\n ARROW_DOWN = 'ArrowDown',\n ARROW_LEFT = 'ArrowLeft',\n ARROW_RIGHT = 'ArrowRight',\n PAGE_UP = 'PageUp',\n PAGED_OWN = 'PageDown',\n HOME = 'Home',\n END = 'End',\n META = 'Meta',\n TAB = 'Tab',\n SHIFT = 'Shift',\n CONTROL = 'Control',\n ALT = 'Alt',\n}\n\nexport enum LiveSearchState {\n PAUSE = 'pauseLiveSearch',\n RESUME = 'resumeLiveSearch',\n STOP = 'stopLiveSearch',\n}\n\nexport const SupportedCodingLanguages = [ 'typescript', 'javascript', 'java', 'json', 'python' ];\ntype ElementType<T extends readonly unknown[]> = T extends ReadonlyArray<infer ElementType> ? ElementType : never;\n\nexport type SupportedCodingLanguagesType = ElementType<typeof SupportedCodingLanguages>;\nexport const SupportedCodingLanguagesExtensionToTypeMap = {\n ts: 'typescript',\n js: 'javascript',\n py: 'python',\n java: 'java',\n json: 'json',\n};\n\nexport type OnCopiedToClipboardFunction = (type?: 'selection' | 'block', text?: string) => void;\n\nexport interface SearchHistoryFilters {\n /**\n * Flag to define are we looking in global search-history or only in worplace\n *\n * @default - Search will be performed on workplace store\n */\n isGlobal: boolean;\n /**\n * Flag to define are we looking only for queries which were manually typed by the user,\n * or only for quries whic were generated by plugin itself, or it's not important\n *\n * @default - We won't filter records bases on type of input\n */\n isManualSearch?: boolean;\n /**\n * Array of language filters. If user chose some, the results would be filtered\n *\n * @default - We won't filter records bases on languages\n */\n languages: string[];\n /**\n * User text from search bar in search-history part of UI\n *\n * @default - We won't filter records bases on user input in search-history search bar\n */\n text?: string;\n /**\n * Allow us to skip n-first results\n *\n * @default - The starting offset will be 0\n */\n resultOffset: number;\n /**\n * Limit of how many results we want to get from store\n *\n * @default - The records count won't be limited\n */\n resultLimit?: number;\n}\n\nexport interface CodeQuery {\n simpleNames: string[];\n usedFullyQualifiedNames: string[];\n}\n\nexport enum ContextChangeType {\n 'ADD' = 'add',\n 'REMOVE' = 'remove',\n}\nexport enum SuggestionEventName {\n OPEN = 'openSuggestion',\n COPY = 'copy',\n}\nexport enum RelevancyVoteType {\n UP = 'upvote',\n DOWN = 'downvote',\n}\n\n/**\n * 'interaction' will be set if there was a potential text selection or a click input was triggered by the user.\n * If this is a selection selectionDistanceTraveled object will also be filled\n * 'timespend' will be set basically if there is no interaction except mouse movements in a time spent longer than the ENGAGEMENT_DURATION_LIMIT\n * Don't forget that in 'timespend' case, user should leave the suggestion card at some point to count it as an interaction.\n * (They need to go back to the code or move to another card instead)\n */\nexport enum EngagementType {\n INTERACTION = 'interaction',\n TIME = 'timespend',\n}\nexport interface SuggestionEngagement {\n /**\n * Suggestion information\n */\n suggestion: Suggestion;\n\n /**\n * Engagement type\n */\n engagementType: EngagementType;\n /**\n * Total duration in ms till the engagement triggered.\n */\n engagementDurationTillTrigger: number;\n /**\n * This is a little bit more than what you might expect on a normal scroll position of the suggestion card.\n * This attribute gives the value for how much the users traveled their mouses and additionally how much they scrolled to focus on that suggestion\n */\n scrollDistanceToEngage: number;\n /**\n * Total mouse movement in x and y directions till the engagament triggered.\n * To avoid confusion: this is not the distance between start and end points, this is the total traveled distance.\n */\n totalMouseDistanceTraveled: { x: number; y: number };\n /**\n * If the engagementType is \"interaction\" and this object has a value, you can assume it as a text selection.\n * If the engagementType is \"interaction\" but this object is not defined, you can assume it as a click\n */\n selectionDistanceTraveled?: { x: number; y: number; selectedText?: string };\n}\n\nexport interface SearchHistoryItem {\n query: {\n input: string;\n queryContext: SearchPayloadMatchPolicy;\n queryId?: string;\n trigger: string;\n codeQuery: CodeQuery;\n codeSelection: SearchPayloadCodeSelection;\n code?: string;\n selectedTab?: string;\n };\n recordDate?: number;\n suggestions: Suggestion[];\n}\n\nexport enum ContextTypes {\n MUST = 'must',\n SHOULD = 'should',\n MUST_NOT = 'mustNot',\n}\nexport enum ContextSource {\n AUTO = 'auto',\n USER = 'user',\n SUGGESTION = 'suggestion',\n}\nexport enum ContextTypeClassNames {\n should = 'mynah-should-contain',\n must = 'mynah-must-contain',\n mustNot = 'mynah-must-not-contain',\n}\nexport interface ContextType {\n context: string;\n type?: ContextTypes;\n source: ContextSource;\n}\n\nexport type FeedbackStars = 1 | 2 | 3 | 4 | 5;\nexport interface FeedbackPayload {\n stars?: FeedbackStars;\n comment?: string;\n}\nexport interface AutocompleteItem {\n suggestion: string;\n highlight: string;\n}\n\nexport enum NotificationType {\n INFO = MynahIcons.INFO,\n SUCCESS = MynahIcons.OK_CIRCLED,\n WARNING = MynahIcons.WARNING,\n ERROR = MynahIcons.ERROR,\n}\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst en = {\n searchInputAPIHelpPlaceholder: 'You can enrich your query here.',\n searchInputMynahPlaceholder: 'What can Mynah help you with?',\n};\n\nexport default en;\n","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { I18nResolver } from 'i18n-ts';\nimport en from './en';\n\nexport class I18N {\n private static instance: I18N;\n public texts;\n private constructor (localLanguage?: string) {\n const i18n = {\n en,\n default: en,\n };\n this.texts = new I18nResolver(i18n, localLanguage).translation;\n }\n\n public static getInstance (localLanguage?: string): I18N {\n if (I18N.instance === undefined) {\n I18N.instance = new I18N(localLanguage);\n }\n\n return I18N.instance;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*!\n * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MainContainer } from './components/main-container';\nimport { Notification } from './components/notification/notification';\nimport { SearchCard } from './components/search-block/search-card';\nimport { MynahConfig } from './helper/config';\nimport { DomBuilder, ExtendedHTMLElement } from './helper/dom';\nimport {\n SuggestionEngagement,\n MynahPortalNames,\n Suggestion,\n SearchPayload,\n LiveSearchState,\n SuggestionEventName,\n RelevancyVoteType,\n FeedbackPayload,\n MynahUIDataModel,\n ContextChangeType,\n ContextType,\n SearchHistoryFilters,\n MynahEventNames,\n SearchHistoryItem,\n SearchPayloadMatchPolicy,\n ContextTypes,\n AutocompleteItem,\n NotificationType,\n} from './static';\nimport { I18N } from './translations/i18n';\nimport './styles/styles.scss';\nimport { EmptyMynahUIDataModel, MynahUIDataStore } from './helper/store';\nimport { MynahUIGlobalEvents } from './helper/events';\nimport { getTimeDiff } from './helper/date-time';\nimport { getSelectedTabValueFromStore, NavivationTabs } from './components/navigation-tabs';\nimport { ToggleOption } from './components/toggle';\n\nexport {\n AutocompleteItem,\n SearchPayloadCodeSelection,\n FeedbackPayload,\n RelevancyVoteType,\n LiveSearchState,\n SearchPayload,\n Suggestion,\n ContextType,\n SearchHistoryItem,\n EngagementType,\n SuggestionEngagement,\n SuggestionEventName,\n SearchHistoryFilters,\n MynahUIDataModel,\n ContextChangeType,\n ContextSource,\n ContextTypes,\n NotificationType,\n} from './static';\n\nexport {\n transformPayloadData,\n validateRulesOnPayloadData,\n PayloadTransformRule,\n} from './helper/payload-transformer';\n\nexport interface MynahUIProps {\n rootSelector?: string;\n storeData?: MynahUIDataModel;\n onSearch?: ((\n searchPayload: SearchPayload,\n isFromHistory?: boolean,\n isFromAutocomplete?: boolean\n ) => void) | ((\n searchPayload: SearchPayload,\n isFromHistory?: boolean,\n isFromAutocomplete?: boolean\n ) => MynahUIDataModel);\n onReady?: () => void;\n onClickSuggestionVote?: (suggestion: Suggestion, vote: RelevancyVoteType) => void;\n onClickCodeDetails?: (\n code: string,\n fileName?: string,\n range?: {\n start: { row: string; column?: string };\n end?: { row: string; column?: string };\n }\n ) => void;\n onResetStore?: () => void;\n onChangeContext?: (changeType: ContextChangeType, queryContext: ContextType) => void;\n onNavigationTabChange?: (selectedTab: string) => void;\n onSuggestionEngagement?: (engagement: SuggestionEngagement) => void;\n onSuggestionClipboardInteraction?: (suggestionId: string, type?: string, text?: string) => void;\n onSuggestionInteraction?: (eventName: SuggestionEventName, suggestion: Suggestion, mouseEvent?: MouseEvent) => void;\n onSendFeedback?: (feedbackPayload: FeedbackPayload) => void;\n onRequestHistoryRecords?: (filterPayload: SearchHistoryFilters) => void;\n onInputQueryChange?: (input: string) => void;\n onChangeLiveSearchState?: (liveSearchState: LiveSearchState) => void;\n onClickAutocompleteItem?: (\n text: string,\n currSelected?: number,\n suggestionCount?: number\n ) => void;\n}\nexport class MynahUI {\n private readonly props: MynahUIProps;\n private readonly wrapper: ExtendedHTMLElement;\n private readonly searchCard: SearchCard;\n private readonly navTabs: NavivationTabs;\n private readonly mainContainer: MainContainer;\n private readonly config: MynahConfig;\n\n constructor (props: MynahUIProps) {\n this.props = props;\n MynahUIGlobalEvents.getInstance();\n MynahUIDataStore.getInstance(props.storeData);\n DomBuilder.getInstance(props.rootSelector);\n this.config = new MynahConfig();\n\n I18N.getInstance(this.config.getConfig('language'));\n\n this.wrapper = DomBuilder.getInstance().createPortal(\n MynahPortalNames.WRAPPER,\n {\n type: 'div',\n attributes: { id: 'mynah-wrapper' },\n },\n 'afterbegin'\n );\n\n this.searchCard = new SearchCard();\n this.navTabs = new NavivationTabs({\n onChange: (selectedTab: string) => {\n if (props.onNavigationTabChange !== undefined) {\n MynahUIDataStore.getInstance().updateStore({\n navigationTabs: MynahUIDataStore.getInstance().getValue('navigationTabs').map((navTab: ToggleOption) => ({ ...navTab, selected: navTab.value === selectedTab }))\n }, true);\n props.onNavigationTabChange(selectedTab);\n }\n\n MynahUIDataStore.getInstance().updateStore({\n ...(MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true\n ? {\n headerInfo: {\n content: ''\n },\n showingHistoricalSearch: false,\n }\n : {}),\n });\n }\n });\n this.mainContainer = new MainContainer({\n onScroll: (e: Event) => this.searchCard.setFolded((e.target as HTMLElement).scrollTop > 0),\n });\n\n this.wrapper\n .insertChild('beforeend', this.searchCard.render)\n .insertChild('beforeend', this.navTabs.render)\n .insertChild('beforeend', this.mainContainer.render);\n\n this.searchCard.addFocusOnInput();\n this.addGlobalListeners();\n setTimeout(() => {\n if (this.props.onReady !== undefined) {\n this.props.onReady();\n }\n }, 1000);\n }\n\n private readonly addGlobalListeners = (): void => {\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.REQUEST_SEARCH_HISTORY, (data) => {\n if (this.props.onRequestHistoryRecords !== undefined) {\n this.props.onRequestHistoryRecords(data.filters);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.INPUT_QUERY_CHANGE, (data) => {\n if (this.props.onInputQueryChange !== undefined) {\n this.props.onInputQueryChange(data.input);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.AUTOCOMPLETE_SUGGESTION_CLICK, (data: {\n autocompleteQuery: AutocompleteItem;\n index: number;\n count: number;\n }) => {\n if (this.props.onClickAutocompleteItem !== undefined) {\n this.props.onClickAutocompleteItem(data.autocompleteQuery.suggestion, data.index, data.count);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.FEEDBACK_SET, (feedbackData) => {\n if (this.props.onSendFeedback !== undefined) {\n this.props.onSendFeedback(feedbackData);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.LIVE_SEARCH_STATE_CHANGED, (data) => {\n if (this.props.onChangeLiveSearchState !== undefined) {\n this.props.onChangeLiveSearchState(data.liveSearchState);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SEARCH, (data: {\n query: string;\n isFromAutocomplete?: boolean;\n }) => {\n let directStoreDataReturn: MynahUIDataModel = {};\n if (this.props.onSearch !== undefined) {\n directStoreDataReturn = this.props.onSearch({\n query: data.query,\n code: MynahUIDataStore.getInstance().getValue('code'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n matchPolicy: MynahUIDataStore.getInstance().getValue('matchPolicy'),\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n selectedTab: getSelectedTabValueFromStore(),\n }, false, data.isFromAutocomplete) ?? {};\n }\n if (this.props.onChangeLiveSearchState != null) {\n this.props.onChangeLiveSearchState(LiveSearchState.STOP);\n MynahUIDataStore.getInstance().updateStore({\n liveSearchState: MynahUIDataStore.getInstance().getDefaultValue('liveSearchState'),\n ...(MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true\n ? {\n headerInfo: {\n content: ''\n },\n showingHistoricalSearch: false,\n }\n : {}),\n ...directStoreDataReturn\n });\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.CONTEXT_VISIBILITY_CHANGE, (data: {\n type: ContextChangeType;\n context: ContextType;\n oldPolicyType?: ContextTypes;\n }) => {\n const currentMatchPolicy = Object.assign({}, MynahUIDataStore.getInstance().getValue('matchPolicy') as SearchPayloadMatchPolicy);\n if (data.type === ContextChangeType.ADD) {\n if (data.oldPolicyType !== undefined && data.oldPolicyType !== data.context.type) {\n currentMatchPolicy[data.oldPolicyType] = currentMatchPolicy[data.oldPolicyType]\n .filter((contextKey: string) => contextKey !== data.context.context);\n }\n currentMatchPolicy[data.context.type as ContextTypes].push(data.context.context);\n } else if (data.type === ContextChangeType.REMOVE) {\n currentMatchPolicy[data.context.type as ContextTypes] = currentMatchPolicy[data.context.type as ContextTypes]\n .filter((contextKey: string) => contextKey !== data.context.context);\n }\n MynahUIDataStore.getInstance().updateStore({\n matchPolicy: { ...currentMatchPolicy }\n });\n\n if (this.props.onSearch !== undefined && (\n MynahUIDataStore.getInstance().getValue('query') !== '' ||\n MynahUIDataStore.getInstance().getValue('codeSelection').selectedCode !== ''\n )) {\n const directStoreDataReturn: MynahUIDataModel = this.props.onSearch({\n query: MynahUIDataStore.getInstance().getValue('query'),\n code: MynahUIDataStore.getInstance().getValue('code'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n matchPolicy: currentMatchPolicy,\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n selectedTab: getSelectedTabValueFromStore(),\n }) ?? {};\n\n if (MynahUIDataStore.getInstance().getValue('showingHistoricalSearch') === true) {\n MynahUIDataStore.getInstance().updateStore({\n showingHistoricalSearch: false,\n headerInfo: MynahUIDataStore.getInstance().getDefaultValue('headerInfo'),\n ...directStoreDataReturn\n });\n }\n }\n\n if (this.props.onChangeContext != null) {\n this.props.onChangeContext(data.type, data.context);\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SEARCH_HISTORY_ITEM_CLICK, (data: {\n historyItem: SearchHistoryItem;\n }) => {\n let directStoreDataReturn: MynahUIDataModel = {};\n if (this.props.onSearch !== undefined) {\n directStoreDataReturn = this.props.onSearch({\n query: data.historyItem.query.input,\n codeSelection: data.historyItem.query.codeSelection,\n matchPolicy: data.historyItem.query.queryContext,\n codeQuery: data.historyItem.query.codeQuery,\n code: data.historyItem.query.code,\n selectedTab: data.historyItem.query.selectedTab\n }, true) ?? {};\n }\n const fullStoreData: Required<MynahUIDataModel> = Object.assign((new EmptyMynahUIDataModel(MynahUIDataStore.getInstance().getDefaults())).data, {\n ...(data.historyItem.query.input !== undefined ? { query: data.historyItem.query.input } : {}),\n ...(data.historyItem.query.queryContext !== undefined ? { matchPolicy: data.historyItem.query.queryContext } : {}),\n ...(data.historyItem.suggestions !== undefined ? { suggestions: data.historyItem.suggestions } : {}),\n ...(data.historyItem.query.codeQuery !== undefined ? { codeQuery: data.historyItem.query.codeQuery } : {}),\n ...(data.historyItem.query.codeSelection !== undefined ? { codeSelection: data.historyItem.query.codeSelection } : {}),\n ...(data.historyItem.query.code !== undefined ? { code: data.historyItem.query.code } : {}),\n showingHistoricalSearch: true,\n headerInfo: {\n content: data.historyItem.recordDate !== undefined\n ? `Showing the search you've performed ${getTimeDiff(\n new Date().getTime() - data.historyItem.recordDate\n ).toString()} ago.`\n : ''\n },\n ...directStoreDataReturn\n });\n MynahUIDataStore.getInstance().updateStore(fullStoreData);\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.CODE_DETAILS_CLICK, (data) => {\n if (this.props.onClickCodeDetails !== undefined) {\n this.props.onClickCodeDetails(\n data.code,\n data.fileName,\n data.range\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_ENGAGEMENT, (engagement: SuggestionEngagement) => {\n if (this.props.onSuggestionEngagement !== undefined) {\n this.props.onSuggestionEngagement(\n engagement\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_COPY_TO_CLIPBOARD, (data) => {\n if (this.props.onSuggestionClipboardInteraction !== undefined) {\n this.props.onSuggestionClipboardInteraction(\n data.suggestionId,\n data.type,\n data.text\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_OPEN, (data) => {\n if (this.props.onSuggestionInteraction !== undefined) {\n this.props.onSuggestionInteraction(\n SuggestionEventName.OPEN,\n data.suggestion,\n data.event\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_VOTE, (data) => {\n if (this.props.onClickSuggestionVote !== undefined) {\n this.props.onClickSuggestionVote(\n data.suggestion,\n data.vote\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.SUGGESTION_LINK_COPY, (data) => {\n if (this.props.onSuggestionInteraction !== undefined) {\n this.props.onSuggestionInteraction(\n SuggestionEventName.COPY,\n data.suggestion\n );\n }\n });\n\n MynahUIGlobalEvents.getInstance().addListener(MynahEventNames.RESET_STORE, () => {\n if (this.props.onResetStore !== undefined) {\n this.props.onResetStore();\n }\n });\n };\n\n /**\n * Updates only the UI with the given data.\n * @param data A full or partial set of data with values.\n */\n public updateStore = (data: MynahUIDataModel): void => {\n MynahUIDataStore.getInstance().updateStore({ ...data });\n };\n\n /**\n * Sets store defaults to use while clearing the store\n * To clear the defaults, send `null`\n * @param defaults partial set of MynahUIDataModel for defaults\n */\n public setStoreDefaults = (defaults: MynahUIDataModel | null): void => {\n MynahUIDataStore.getInstance().setDefaults(defaults);\n };\n\n /**\n * Returns the current search payload\n */\n public getSearchPayload = (): SearchPayload => ({\n query: MynahUIDataStore.getInstance().getValue('query'),\n matchPolicy: MynahUIDataStore.getInstance().getValue('matchPolicy'),\n codeSelection: MynahUIDataStore.getInstance().getValue('codeSelection'),\n codeQuery: MynahUIDataStore.getInstance().getValue('codeQuery'),\n code: MynahUIDataStore.getInstance().getValue('code'),\n selectedTab: getSelectedTabValueFromStore(),\n });\n\n /**\n * Simply creates and shows a notification\n * @param props NotificationProps\n */\n public notify = (props: {\n duration?: number;\n type?: NotificationType;\n title?: string;\n content: string;\n onNotificationClick?: () => void;\n onNotificationHide?: () => void;\n }): void => {\n new Notification({\n ...props,\n onNotificationClick: () => {}\n }).notify();\n };\n}\n"],"sourceRoot":""}