From 02726e5cfa6b742cd9313378c9aa0cc5dde31640 Mon Sep 17 00:00:00 2001 From: JetBrains Ring UI Automation Date: Wed, 21 Aug 2024 14:35:46 +0000 Subject: [PATCH] Deploy release-6.x --- release-6.x/auth-auth-stories.4b83a81f.iframe.bundle.js | 1 + release-6.x/auth-auth-stories.77ce3728.iframe.bundle.js | 1 - release-6.x/custom-header.js | 4 ++-- ...dle.js => header-header-stories.5d1a1ada.iframe.bundle.js} | 2 +- release-6.x/iframe.html | 2 +- release-6.x/project.json | 2 +- ...frame.bundle.js => runtime~main.2ed1e63b.iframe.bundle.js} | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 release-6.x/auth-auth-stories.4b83a81f.iframe.bundle.js delete mode 100644 release-6.x/auth-auth-stories.77ce3728.iframe.bundle.js rename release-6.x/{header-header-stories.7cbb3892.iframe.bundle.js => header-header-stories.5d1a1ada.iframe.bundle.js} (50%) rename release-6.x/{runtime~main.35144a7b.iframe.bundle.js => runtime~main.2ed1e63b.iframe.bundle.js} (99%) diff --git a/release-6.x/auth-auth-stories.4b83a81f.iframe.bundle.js b/release-6.x/auth-auth-stories.4b83a81f.iframe.bundle.js new file mode 100644 index 00000000000..dc5dd862cf2 --- /dev/null +++ b/release-6.x/auth-auth-stories.4b83a81f.iframe.bundle.js @@ -0,0 +1 @@ +(globalThis.webpackChunk_jetbrains_ring_ui=globalThis.webpackChunk_jetbrains_ring_ui||[]).push([[1812],{"./node_modules/@jetbrains/icons/checkmark.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/close.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/exception.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/warning.js":module=>{module.exports=''},"./src/auth/auth.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{InIFrame:()=>InIFrame,basic:()=>basic,default:()=>auth_stories});var react=__webpack_require__("./node_modules/react/index.js"),hub_config=__webpack_require__("./.storybook/hub-config.ts"),auth_dialog_service=__webpack_require__("./src/auth-dialog-service/auth-dialog-service.tsx"),link_link=__webpack_require__("./src/link/link.tsx"),auth_auth=__webpack_require__("./src/auth/auth.ts"),client=__webpack_require__("./node_modules/react-dom/client.js"),controls_height=__webpack_require__("./src/global/controls-height.tsx"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),dialog=__webpack_require__("./src/dialog/dialog.tsx"),content=__webpack_require__("./src/island/content.tsx"),loader_screen=__webpack_require__("./src/loader-screen/loader-screen.tsx"),background_flow=__webpack_require__("./src/auth/background-flow.ts"),login_dialog=__webpack_require__("./src/login-dialog/login-dialog.css"),login_dialog_default=__webpack_require__.n(login_dialog),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class LoginDialog extends react.Component{static propTypes={show:prop_types_default().bool,className:prop_types_default().string,url:prop_types_default().string,loader:prop_types_default().bool,loadingMessage:prop_types_default().string,showFallbackTimeout:prop_types_default().number,renderFallbackLink:prop_types_default().func,onCancel:prop_types_default().func.isRequired};static defaultProps={show:!1,url:"about:blank",renderFallbackLink:()=>null,showFallbackTimeout:5e3};state={loading:!0,loggingIn:!1,showFallbackLink:!1,height:517,width:333};componentDidMount(){window.addEventListener("message",this.onMessage),this.startFallbackCountdown()}componentWillUnmount(){window.removeEventListener("message",this.onMessage)}showFallbackTimout;startFallbackCountdown(){this.showFallbackTimout=window.setTimeout((()=>this.setState({showFallbackLink:!0})),this.props.showFallbackTimeout)}onMessage=event=>{const{data}=event;if(data)return data===background_flow.n?(clearTimeout(this.showFallbackTimout),void this.setState({loading:!1,loggingIn:!1})):"HUB_AUTH_PAGE_LOGIN_STARTED"===data?(this.setState({loading:!0,loggingIn:!0}),void this.startFallbackCountdown()):void("HUB_AUTH_PAGE_LOGIN_DIMENSIONS"===data.message&&this.setState({height:data.height,width:data.width}))};render(){const{show,className,url,loadingMessage,renderFallbackLink,onCancel}=this.props,{loading,height,width,loggingIn,showFallbackLink}=this.state,iFrameStyle={height,width};return(0,jsx_runtime.jsxs)(dialog.A,{"data-test":"ring-login-dialog",className,contentClassName:login_dialog_default().dialogContent,trapFocus:!0,autoFocusFirst:!1,show,showCloseButton:!0,onCloseAttempt:onCancel,children:[(0,jsx_runtime.jsx)(content.A,{children:(0,jsx_runtime.jsx)("iframe",{title:"Login dialog",style:iFrameStyle,src:url,className:login_dialog_default().iFrame,scrolling:"no"})}),loading&&(0,jsx_runtime.jsx)(loader_screen.A,{message:loadingMessage,containerClassName:login_dialog_default().nonOpaqueLoader}),showFallbackLink&&(0,jsx_runtime.jsx)("div",{className:login_dialog_default().fallbackLinkContainer,children:renderFallbackLink(loggingIn)})]})}}LoginDialog.__docgenInfo={description:"@name Login Dialog",methods:[{name:"startFallbackCountdown",docblock:null,modifiers:[],params:[],returns:null},{name:"onMessage",docblock:null,modifiers:[],params:[{name:"event",optional:!1,type:{name:"MessageEvent",alias:"MessageEvent"}}],returns:null}],displayName:"LoginDialog",props:{onCancel:{required:!0,tsType:{name:"signature",type:"function",raw:"() => void",signature:{arguments:[],return:{name:"void"}}},description:"",type:{name:"func"}},show:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1},type:{name:"bool"}},url:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'about:blank'",computed:!1},type:{name:"string"}},renderFallbackLink:{required:!1,tsType:{name:"signature",type:"function",raw:"(loggingIn: boolean) => ReactNode",signature:{arguments:[{type:{name:"boolean"},name:"loggingIn"}],return:{name:"ReactNode"}}},description:"",defaultValue:{value:"() => null",computed:!1},type:{name:"func"}},showFallbackTimeout:{required:!1,tsType:{name:"number"},description:"",defaultValue:{value:"5000",computed:!1},type:{name:"number"}},className:{required:!1,tsType:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}]},description:"",type:{name:"string"}},loader:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},loadingMessage:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}}}};const containerElement=document.createElement("div"),reactRoot=(0,client.createRoot)(containerElement);function renderLoginDialog(props){reactRoot.render((0,jsx_runtime.jsx)(controls_height.VJ.Provider,{value:(0,controls_height.jT)(),children:(0,jsx_runtime.jsx)(LoginDialog,{...props})}))}function noop(){}var response_parser=__webpack_require__("./src/auth/response-parser.ts");class IFrameFlow{hideDialog=null;_requestBuilder;_storage;_translations;reject;_promise;_loginWindow;constructor(requestBuilder,storage,translations){this._requestBuilder=requestBuilder,this._storage=storage,this._translations=translations,this._reset()}async _load(){const authRequest=await this._requestBuilder.prepareAuthRequest({request_credentials:"required",auth_mode:"bypass_to_login"},{nonRedirect:!1}),renderFallbackLink=()=>(0,jsx_runtime.jsx)(link_link.A,{href:authRequest.url,target:"_self",children:this._translations.nothingHappensLink});return new Promise(((resolve,reject)=>{this.hideDialog=function showAuthDialog(props={onCancel:noop}){return renderLoginDialog({...props,show:!0}),()=>{renderLoginDialog({...props,show:!1})}}({url:authRequest.url,loader:!0,onCancel:()=>{cleanUp(),this.stop()},renderFallbackLink}),this.reject=reject;const removeTokenListener=this._storage.onTokenChange((token=>{token&&(cleanUp(),resolve(token.accessToken))})),removeStateListener=this._storage.onStateChange(authRequest.stateId,(state=>{state&&state.error&&(cleanUp(),reject(new response_parser.A.AuthError(state)))})),cleanUp=()=>{this.hideDialog?.(),removeStateListener(),removeTokenListener()}}))}_reset=()=>{this._promise=null,this.hideDialog=null};stop(){this.hideDialog&&this.hideDialog(),this.reject&&this.reject("Login form closed"),this._reset()}authorize(){return null==this._promise||null==this._loginWindow||this._loginWindow.closed?(this._promise=this._load(),this._promise.then(this._reset,this._reset),this._promise):this._promise}}const auth_stories={title:"Utilities/Auth",parameters:{notes:"Authenticates a user in [Hub](https://www.jetbrains.com/hub/).",screenshots:{skip:!0}},tags:["skip-test"]},basic=()=>{const auth=new auth_auth.Ay(hub_config.A);return auth.setAuthDialogService(auth_dialog_service.A),(async()=>{try{const location=await auth.init();console.log("Location to restore:",location);const token=await auth.requestToken();console.log("Token:",token);const data=await auth.requestUser();console.log("User profile data:",data)}catch(e){if(!(e instanceof Error))throw e;console.error("Auth error",e)}})(),(0,jsx_runtime.jsx)(link_link.A,{pseudo:!0,onClick:async()=>{const newToken=await auth.forceTokenUpdate();console.log("Token has been refreshed:",newToken)},children:"Force token update"})};basic.storyName="basic";const InIFrame=()=>{const[data,setData]=(0,react.useState)(""),auth=new auth_auth.Ay({...hub_config.A,EmbeddedLoginFlow:IFrameFlow});return auth.setAuthDialogService(auth_dialog_service.A),(async()=>{try{const location=await auth.init();console.log(location),await auth.login(),setData(await auth.requestUser())}catch(e){if(!(e instanceof Error))throw e;console.error("Failed",e)}})(),(0,jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:data}})};InIFrame.storyName="in IFrame",basic.parameters={...basic.parameters,docs:{...basic.parameters?.docs,source:{originalSource:"() => {\n const auth = new Auth(hubConfig);\n auth.setAuthDialogService(authDialogService);\n (async () => {\n try {\n const location = await auth.init();\n console.log('Location to restore:', location);\n const token = await auth.requestToken();\n console.log('Token:', token);\n const data = await auth.requestUser();\n console.log('User profile data:', data);\n } catch (e) {\n if (!(e instanceof Error)) {\n throw e;\n }\n console.error('Auth error', e);\n }\n })();\n return {\n const newToken = await auth.forceTokenUpdate();\n console.log('Token has been refreshed:', newToken);\n }}>Force token update;\n}",...basic.parameters?.docs?.source}}},InIFrame.parameters={...InIFrame.parameters,docs:{...InIFrame.parameters?.docs,source:{originalSource:"() => {\n const [data, setData] = useState('');\n const auth = new Auth({\n ...hubConfig,\n EmbeddedLoginFlow: IFrameFlow\n });\n auth.setAuthDialogService(authDialogService);\n (async () => {\n try {\n const location = await auth.init();\n console.log(location);\n await auth.login();\n setData(await auth.requestUser());\n } catch (e) {\n if (!(e instanceof Error)) {\n throw e;\n }\n console.error('Failed', e);\n }\n })();\n return
;\n}",...InIFrame.parameters?.docs?.source}}}},"./src/auth-dialog-service/auth-dialog-service.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>showAuthDialog});var react_dom_client__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react-dom/client.js"),_global_controls_height__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/global/controls-height.tsx"),_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/auth-dialog/auth-dialog.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const containerElement=document.createElement("div"),reactRoot=(0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);function renderAuthDialog(props){reactRoot.render((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.VJ.Provider,{value:(0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.jT)(),children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__.A,{...props})}))}function showAuthDialog(props={}){return renderAuthDialog({...props,show:!0}),()=>{renderAuthDialog({show:!1})}}},"./src/global/url.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dn:()=>fixUrl,JO:()=>parseQueryString,Km:()=>joinBaseURLAndPath,oZ:()=>encodeURL,qG:()=>getAbsoluteBaseURL,zL:()=>isDataURI});const ABSOLUTE_URL_PATTERN=/^[a-z]+:\/\//i;function getBaseURI(){const baseElement=document.getElementsByTagName("base")[0];return baseElement?baseElement.href:void 0}function getAbsoluteBaseURL(){const baseUrl=getBaseURI(),host=`${window.location.protocol}//${window.location.host}`;let uri;return uri=baseUrl?ABSOLUTE_URL_PATTERN.test(baseUrl)?baseUrl:host+baseUrl:host,uri}function fixUrl(url,baseURIGetter=getBaseURI){if(-1===url.indexOf("http://")&&-1===url.indexOf("https://")&&0!==url.indexOf("/")){const baseUrl=baseURIGetter();if(baseUrl)return baseUrl+url}return url}function joinBaseURLAndPath(baseUrl,path){return baseUrl&&-1===path.indexOf("http://")&&-1===path.indexOf("https://")?baseUrl+path:path}function parseQueryString(queryString){if(null==queryString)return{};const queryParameterPairRE=/([^&;=]+)=?([^&;]*)/g,urlParams={};function decode(s){return decodeURIComponent(s.replace(/\+/g," "))}let matchedQueryPair;for(;null!=(matchedQueryPair=queryParameterPairRE.exec(queryString));)urlParams[decode(matchedQueryPair[1])]=decode(matchedQueryPair[2]);return urlParams}function customEncodeURIComponent(str){return encodeURIComponent(String(str)).replace(/%2C/g,",").replace(/%24/g,"$")}function encodeURL(url,params){const firstSeparator=-1===url.indexOf("?")?"?":"&";let k,res=url,i=0;for(k in params)params.hasOwnProperty(k)&&null!=params[k]&&(res+=(0==i++?firstSeparator:"&")+customEncodeURIComponent(k)+"="+customEncodeURIComponent(params[k]));return res}function isDataURI(uri){return 0===uri.indexOf("data:")}},"./src/i18n/i18n.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>getTranslations,xO:()=>getTranslationsWithFallback,Lw:()=>setTranslations,Tl:()=>translate});const messages_namespaceObject=JSON.parse('{"login":"Log in","logout":"Log out","loginTo":"Log in to {{serviceName}}","ok":"OK","cancel":"Cancel","tryAgainLabel":"Try again","postpone":"Postpone","youHaveLoggedInAs":"You have logged in as another user: {{userName}}","applyChange":"Apply change","backendIsNotAvailable":"Connection lost","checkAgain":"try again","nothingHappensLink":"Click here if nothing happens","errorMessage":"There may be a problem with your network connection. Make sure that you are online and","applyChangedUser":"Apply changed user","profile":"Profile","switchUser":"Switch user","addFirstDate":"Add first date","addSecondDate":"Add second date","addTime":"Add time","selectName":"Select {{name}}","setDate":"Set a date","setDateTime":"Set date and time","setPeriod":"Set a period","clear":"Clear input","gotIt":"Got it","dismiss":"Dismiss","perPage":"per page","firstPage":"First page","lastPage":"Last page","nextPage":"Next page","previousPage":"Previous","searchTitle":"Search","clearTitle":"Clear search input","userAgreement":"User Agreement","accept":"Accept","decline":"Decline","close":"Close","scrollToAccept":"View the entire agreement to continue","remindLater":"Remind me later","filterItems":"Filter items","selectOption":"Select an option","progress":"Progress","loading":"Loading...","noOptionsFound":"No options found","banned":"banned","online":"online","offline":"offline","copyToClipboard":"Copy email to clipboard","copiedToClipboard":"Email was copied to clipboard","copingToClipboardError":"Failed to copy to clipboard","unverified":"Unverified"}');let messages=messages_namespaceObject;const warned=new Set;function setTranslations(newMessages){messages=newMessages}function getTranslations(){return messages}function getTranslationsWithFallback(){return{...messages_namespaceObject,...messages}}function translate(key){var _messages$key;return key in messages||function warnMissedKeyOnce(key){warned.has(key)||(warned.add(key),console.warn(`Missing localisation for key "${key}"`))}(key),null!==(_messages$key=messages[key])&&void 0!==_messages$key?_messages$key:messages_namespaceObject[key]}},"./src/link/link.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__,F:()=>linkHOC});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/prop-types/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__),classnames__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/classnames/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__),_global_data_tests__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./src/global/data-tests.ts"),_clickableLink__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/link/clickableLink.tsx"),_link_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/link/link.css"),_link_css__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_link_css__WEBPACK_IMPORTED_MODULE_2__),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/react/jsx-runtime.js");function linkHOC(ComposedComponent){const isCustom="string"!=typeof ComposedComponent&&ComposedComponent!==_clickableLink__WEBPACK_IMPORTED_MODULE_4__.A;return class Link extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent{static propTypes={className:prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,active:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,inherit:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,pseudo:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,hover:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,children:prop_types__WEBPACK_IMPORTED_MODULE_5___default().node,"data-test":prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,href:prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,onPlainLeftClick:prop_types__WEBPACK_IMPORTED_MODULE_5___default().func,onClick:prop_types__WEBPACK_IMPORTED_MODULE_5___default().func};render(){const{active,inherit,pseudo,hover,className,"data-test":dataTest,href,children,onPlainLeftClick,onClick,...restProps}=this.props,useButton=pseudo||!isCustom&&null==href,classes=classnames__WEBPACK_IMPORTED_MODULE_1___default()(_link_css__WEBPACK_IMPORTED_MODULE_2___default().link,className,{[_link_css__WEBPACK_IMPORTED_MODULE_2___default().active]:active,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().inherit]:inherit,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().hover]:hover,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().pseudo]:useButton});let props=restProps;return isCustom&&!props.activeClassName&&(props={...props,activeClassName:_link_css__WEBPACK_IMPORTED_MODULE_2___default().active}),useButton?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("button",{type:"button",...props,className:classes,onClick:onClick||onPlainLeftClick,"data-test":(0,_global_data_tests__WEBPACK_IMPORTED_MODULE_6__.A)("ring-link",dataTest),children}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ComposedComponent,{...props,href,className:classes,onClick,onPlainLeftClick,"data-test":(0,_global_data_tests__WEBPACK_IMPORTED_MODULE_6__.A)("ring-link",dataTest),children})}}}const __WEBPACK_DEFAULT_EXPORT__=linkHOC(_clickableLink__WEBPACK_IMPORTED_MODULE_4__.A)},"./src/loader-screen/loader-screen.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>LoaderScreen});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/classnames/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__),prop_types__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/prop-types/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__),_loader_loader__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./src/loader/loader.tsx"),_loader_screen_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/loader-screen/loader-screen.css"),_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_loader_screen_css__WEBPACK_IMPORTED_MODULE_2__),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/react/jsx-runtime.js");class LoaderScreen extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent{static propTypes={className:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string,containerClassName:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string,message:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string};render(){const{message,className,containerClassName,...restProps}=this.props,containerClasses=classnames__WEBPACK_IMPORTED_MODULE_1___default()(containerClassName,_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loaderScreen),loaderClasses=classnames__WEBPACK_IMPORTED_MODULE_1___default()(className,_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loader,{[_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loaderWithoutSpacing]:!message});return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div",{className:containerClasses,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_loader_loader__WEBPACK_IMPORTED_MODULE_5__.A,{...restProps,message,className:loaderClasses})})}}LoaderScreen.__docgenInfo={description:"@name Loader Screen",methods:[],displayName:"LoaderScreen",props:{"data-test":{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:""},containerClassName:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},className:{description:"",type:{name:"string"},required:!1},message:{description:"",type:{name:"string"},required:!1}},composes:["Partial","HTMLAttributes"]}},"./src/loader/loader.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>Loader});var react=__webpack_require__("./node_modules/react/index.js"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),data_tests=__webpack_require__("./src/global/data-tests.ts"),dom=__webpack_require__("./src/global/dom.ts"),loader=__webpack_require__("./src/loader/loader.css"),loader_default=__webpack_require__.n(loader);class Particle{radius;x;y;color;decay;life;constructor({x,y,radius,color}){this.radius=radius,this.x=x,this.y=y,this.color=color,this.decay=.01,this.life=1}step(){this.life-=this.decay}isAlive(){return this.life>=0}draw(ctx){const alpha=this.life>=0?this.life:0;ctx.fillStyle=`rgba(${this.color.r}, ${this.color.g}, ${this.color.b}, ${alpha})`,ctx.beginPath(),ctx.arc(this.x+this.radius,this.y+this.radius,this.radius,0,2*Math.PI),ctx.fill()}}function deterministic(){return.5}class LoaderCore{static defaultProps={size:64,stop:!1,deterministic:!1,colors:[{r:215,g:60,b:234},{r:145,g:53,b:224},{r:88,g:72,b:224},{r:37,g:183,b:255},{r:89,g:189,b:0},{r:251,g:172,b:2},{r:227,g:37,b:129}]};static calculateGradient(startColor,stopColor,position){const calculateChannelValue=(a,b)=>a+Math.round((b-a)*position);return{r:calculateChannelValue(startColor.r,stopColor.r),g:calculateChannelValue(startColor.g,stopColor.g),b:calculateChannelValue(startColor.b,stopColor.b)}}props;canvas;textNode;ctx;height;width;particles;baseSpeed;colorIndex;maxRadius;minRadius;colorChangeTick;x;y;radius;hSpeed;vSpeed;radiusSpeed;tick;isRunning;constructor(containerNode,props){this.props=Object.assign({},LoaderCore.defaultProps,props),this.canvas=document.createElement("canvas"),this.canvas.dataset.test="ring-loader",this.canvas.classList.add(loader_default().canvas),this.textNode=document.createElement("div"),this.textNode.dataset.test="ring-loader-text",this.textNode.classList.add(loader_default().text),this.textNode.textContent=this.props.message?this.props.message:"",containerNode.appendChild(this.canvas),containerNode.appendChild(this.textNode);const pixelRatio=LoaderCore.getPixelRatio(),canvasSize=this.props.size*pixelRatio;this.canvas.width=canvasSize,this.canvas.height=canvasSize,this.canvas.style.width=`${this.props.size}px`,this.canvas.style.height=`${this.props.size}px`,this.ctx=this.canvas.getContext("2d"),this.ctx?.scale(pixelRatio,pixelRatio),this.height=this.props.size,this.width=this.props.size,this.particles=[],this.baseSpeed=1,this.colorIndex=0,this.maxRadius=10,this.minRadius=6,this.colorChangeTick=40,this.x=0,this.y=0,this.radius=8,this.hSpeed=1.5,this.vSpeed=.5,this.radiusSpeed=.05,this.tick=0,this.prepareInitialState(100),this.isRunning=!this.props.stop,this.isRunning?this.startAnimation():this.draw()}static getPixelRatio(){return(0,dom.sJ)()}prepareInitialState(ticks){for(let i=0;i=limit?-(this.baseSpeed+randomizedSpeedChange):coord<=this.baseSpeed?this.baseSpeed+randomizedSpeedChange:speed}calculateNextCoordinates(){this.x+=this.hSpeed,this.y+=this.vSpeed,this.hSpeed=this.handleLimits(this.x,this.radius,this.hSpeed,this.width),this.vSpeed=this.handleLimits(this.y,this.radius,this.vSpeed,this.height)}calculateNextRadius(){this.radius+=this.radiusSpeed,(this.radius>this.maxRadius||this.radiusthis.colorChangeTick&&(this.tick=0,this.colorIndex++,this.colorIndex>this.props.colors.length-1&&(this.colorIndex=0))}step(){this.nextTick(),this.calculateNextCoordinates(),this.calculateNextRadius(),this.particles.forEach((particle=>particle.step())),this.particles.push(new Particle({x:this.x,y:this.y,radius:this.radius,color:this.getNextColor()}))}removeDeadParticles(){this.particles=this.particles.filter((it=>it.isAlive()))}draw(){const ctx=this.ctx;null!=ctx&&(ctx.clearRect(0,0,this.width,this.height),this.removeDeadParticles(),this.particles.forEach((particle=>particle.draw(ctx))))}loop(){this.step(),this.draw(),this.isRunning&&window.requestAnimationFrame((()=>this.loop()))}updateMessage(text){this.textNode.textContent=text||""}stopAnimation(){this.isRunning=!1,this.canvas.classList.remove(loader_default().animate)}startAnimation(){this.isRunning=!0,this.canvas.classList.add(loader_default().animate),this.loop()}destroy(){this.isRunning=!1}}var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class Loader extends react.PureComponent{static propTypes={className:prop_types_default().string,size:prop_types_default().number,colors:prop_types_default().array,message:prop_types_default().string,"data-test":prop_types_default().string,stop:prop_types_default().bool,deterministic:prop_types_default().bool};componentDidUpdate(prevProps){this.loader&&(!prevProps.stop&&this.props.stop?this.loader.stopAnimation():prevProps.stop&&!this.props.stop&&this.loader.startAnimation())}componentWillUnmount(){this.loader?.destroy()}loader;initLoader=el=>{el&&(this.loader=new LoaderCore(el,this.props))};render(){const{message,size,colors,"data-test":dataTest,stop,deterministic,...restProps}=this.props;return(0,jsx_runtime.jsx)("div",{"data-test":(0,data_tests.A)("ring-loader",dataTest),...restProps,ref:this.initLoader})}}Loader.__docgenInfo={description:"Displays a large animated loader with an optional caption. Typical use cases: page loading animation, major action animation.",methods:[{name:"initLoader",docblock:null,modifiers:[],params:[{name:"el",optional:!1,type:{name:"union",raw:"Node | null",elements:[{name:"Node"},{name:"null"}]}}],returns:null}],displayName:"Loader",props:{"data-test":{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},className:{description:"",type:{name:"string"},required:!1},size:{description:"",type:{name:"number"},required:!1},colors:{description:"",type:{name:"array"},required:!1},message:{description:"",type:{name:"string"},required:!1},stop:{description:"",type:{name:"bool"},required:!1},deterministic:{description:"",type:{name:"bool"},required:!1}},composes:["Partial","HTMLAttributes"]}},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".link_c73c,\n.withLinks_a3f8 a {\n cursor: pointer;\n transition: color var(--ring-fast-ease);\n\n color: var(--ring-link-color);\n\n outline: none;\n\n text-decoration-line: none;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {:is(.link_c73c,.withLinks_a3f8 a):hover {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }}\n\n@media (resolution >= 2dppx) {\n\n.link_c73c,\n.withLinks_a3f8 a {\n text-decoration-thickness: 0.5px;\n}\n }\n\n.hover_e4ca:is(.link_c73c,.withLinks_a3f8 a) {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }\n\n/* stylelint-disable-next-line selector-max-specificity */\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.pseudo_cb40:is(.link_c73c,.withLinks_a3f8 a):hover {\n text-decoration: none;\n }}\n\n:is(.link_c73c,.withLinks_a3f8 a):focus-visible {\n box-shadow: 0 0 0 2px var(--ring-border-hover-color);\n }\n\n.link_c73c.active_eef2 {\n color: inherit;\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.inherit_c3d7:not(:hover) {\n color: inherit;\n}}\n\n.pseudo_cb40 {\n margin: 0;\n padding: 0;\n\n text-align: left;\n\n border: 0;\n\n background: transparent;\n\n font: inherit;\n}\n\n.pseudo_cb40::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n }\n","",{version:3,sources:["webpack://./src/link/link.css",""],names:[],mappings:"AAEA;;EAEE,eAAe;EACf,uCAAuC;;EAEvC,6BAA6B;;EAE7B,aAAa;;EAEb,0BAA0B;EAC1B,8BAA8B;EAC9B,0BAA0B;AAuB5B;;ACpCA,wGAAA;IAAA,gCAAA;;IAAA,iBAAA;;IAAA,oCAAA;GAAA,CAAA;;ADeE;;AAbF;;IAcI,gCAAgC;AAoBpC;EAnBE;;AAEA;IAEE,+BAA+B;;IAE/B,gBAAgB;;IAEhB,mCAAmC;EACrC;;AAEA,yDAAyD;;AC5B3D,wGAAA;IAAA,sBAAA;GAAA,CAAA;;ADiCE;IACE,oDAAoD;EACtD;;AAGF;EACE,cAAc;AAChB;;ACxCA,wGAAA;EAAA,eAAA;CAAA,CAAA;;AD8CA;EACE,SAAS;EACT,UAAU;;EAEV,gBAAgB;;EAEhB,SAAS;;EAET,uBAAuB;;EAEvB,aAAa;AAOf;;AALE;IACE,UAAU;;IAEV,SAAS;EACX",sourcesContent:['@import "../global/variables.css";\n\n.link,\n.withLinks a {\n cursor: pointer;\n transition: color var(--ring-fast-ease);\n\n color: var(--ring-link-color);\n\n outline: none;\n\n text-decoration-line: none;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n\n @media (resolution >= 2dppx) {\n text-decoration-thickness: 0.5px;\n }\n\n &:hover,\n &.hover {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }\n\n /* stylelint-disable-next-line selector-max-specificity */\n &.pseudo:hover {\n text-decoration: none;\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 2px var(--ring-border-hover-color);\n }\n}\n\n.link.active {\n color: inherit;\n}\n\n.inherit:not(:hover) {\n color: inherit;\n}\n\n.pseudo {\n margin: 0;\n padding: 0;\n\n text-align: left;\n\n border: 0;\n\n background: transparent;\n\n font: inherit;\n\n &::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n }\n}\n',null],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={link:"link_c73c",withLinks:"withLinks_a3f8",hover:"hover_e4ca",pseudo:"pseudo_cb40",active:"active_eef2",inherit:"inherit_c3d7"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader-screen/loader-screen.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,'.loaderScreen_b0c0 {\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n text-align: center;\n vertical-align: middle;\n}\n\n.loaderScreen_b0c0::before {\n display: inline-block;\n\n height: 100%;\n\n content: "";\n\n vertical-align: middle;\n }\n\n.loader_aabf {\n display: inline-block;\n}\n\n.loaderWithoutSpacing_f4b9 canvas {\n margin: 0;\n}\n',"",{version:3,sources:["webpack://./src/loader-screen/loader-screen.css"],names:[],mappings:"AAEA;EACE,kBAAkB;;EAElB,WAAW;EACX,YAAY;;EAEZ,kBAAkB;EAClB,sBAAsB;AAWxB;;AATE;IACE,qBAAqB;;IAErB,YAAY;;IAEZ,WAAW;;IAEX,sBAAsB;EACxB;;AAGF;EACE,qBAAqB;AACvB;;AAEA;EACE,SAAS;AACX",sourcesContent:['@import "../global/variables.css";\n\n.loaderScreen {\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n text-align: center;\n vertical-align: middle;\n\n &::before {\n display: inline-block;\n\n height: 100%;\n\n content: "";\n\n vertical-align: middle;\n }\n}\n\n.loader {\n display: inline-block;\n}\n\n.loaderWithoutSpacing canvas {\n margin: 0;\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={loaderScreen:"loaderScreen_b0c0",loader:"loader_aabf",loaderWithoutSpacing:"loaderWithoutSpacing_f4b9"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader/loader.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,"@keyframes rotation-keyframes_d87b {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.canvas_b4b4 {\n display: block;\n\n margin: calc(var(--ring-unit)*2) auto;\n\n pointer-events: none;\n}\n\n.animate_f7ea {\n animation: rotation-keyframes_d87b 36s linear infinite;\n}\n\n.text_fd63 {\n text-align: center;\n\n font-family: var(--ring-font-family);\n font-size: var(--ring-font-size);\n line-height: var(--ring-line-height);\n}\n","",{version:3,sources:["webpack://./src/loader/loader.css"],names:[],mappings:"AAEA;EACE;IACE,yBAAyB;EAC3B;AACF;;AAEA;EACE,cAAc;;EAEd,qCAAuC;;EAEvC,oBAAoB;AACtB;;AAEA;EACE,sDAAiD;AACnD;;AAEA;EACE,kBAAkB;;EAElB,oCAAoC;EACpC,gCAAgC;EAChC,oCAAoC;AACtC",sourcesContent:['@import "../global/variables.css";\n\n@keyframes rotation-keyframes {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.canvas {\n display: block;\n\n margin: calc(var(--ring-unit) * 2) auto;\n\n pointer-events: none;\n}\n\n.animate {\n animation: rotation-keyframes 36s linear infinite;\n}\n\n.text {\n text-align: center;\n\n font-family: var(--ring-font-family);\n font-size: var(--ring-font-size);\n line-height: var(--ring-line-height);\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={canvas:"canvas_b4b4",animate:"animate_f7ea","rotation-keyframes":"rotation-keyframes_d87b",text:"text_fd63"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/login-dialog/login-dialog.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".iFrame_b545 {\n overflow: hidden;\n\n border: none;\n}\n\n.dialogContent_c450 {\n width: auto;\n}\n\n.nonOpaqueLoader_d5c3 {\n background-color: var(--ring-content-background-color);\n}\n\n.fallbackLinkContainer_fd61 {\n position: absolute;\n top: 0;\n right: 0;\n\n padding: var(--ring-unit);\n}\n","",{version:3,sources:["webpack://./src/login-dialog/login-dialog.css"],names:[],mappings:"AAEA;EACE,gBAAgB;;EAEhB,YAAY;AACd;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,sDAAsD;AACxD;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;;EAER,yBAAyB;AAC3B",sourcesContent:['@import "../global/variables.css";\n\n.iFrame {\n overflow: hidden;\n\n border: none;\n}\n\n.dialogContent {\n width: auto;\n}\n\n.nonOpaqueLoader {\n background-color: var(--ring-content-background-color);\n}\n\n.fallbackLinkContainer {\n position: absolute;\n top: 0;\n right: 0;\n\n padding: var(--ring-unit);\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={iFrame:"iFrame_b545",dialogContent:"dialogContent_c450",nonOpaqueLoader:"nonOpaqueLoader_d5c3",fallbackLinkContainer:"fallbackLinkContainer_fd61"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/es6-error/es6/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=function(_extendableBuiltin2){function ExtendableError(){var message=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";!function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,ExtendableError);var _this=_possibleConstructorReturn(this,(ExtendableError.__proto__||Object.getPrototypeOf(ExtendableError)).call(this,message));return Object.defineProperty(_this,"message",{configurable:!0,enumerable:!1,value:message,writable:!0}),Object.defineProperty(_this,"name",{configurable:!0,enumerable:!1,value:_this.constructor.name,writable:!0}),Error.hasOwnProperty("captureStackTrace")?(Error.captureStackTrace(_this,_this.constructor),_possibleConstructorReturn(_this)):(Object.defineProperty(_this,"stack",{configurable:!0,enumerable:!1,value:new Error(message).stack,writable:!0}),_this)}return function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(ExtendableError,_extendableBuiltin2),ExtendableError}(function _extendableBuiltin(cls){function ExtendableBuiltin(){cls.apply(this,arguments)}return ExtendableBuiltin.prototype=Object.create(cls.prototype,{constructor:{value:cls,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(ExtendableBuiltin,cls):ExtendableBuiltin.__proto__=cls,ExtendableBuiltin}(Error))},"./node_modules/scrollbar-width/scrollbar-width.js":function(module,exports){var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var getScrollbarWidth,scrollbarWidth;scrollbarWidth=null,getScrollbarWidth=function(recalculate){var div1,div2;return null==recalculate&&(recalculate=!1),null==scrollbarWidth||recalculate?"loading"===document.readyState?null:(div1=document.createElement("div"),div2=document.createElement("div"),div1.style.width=div2.style.width=div1.style.height=div2.style.height="100px",div1.style.overflow="scroll",div2.style.overflow="hidden",document.body.appendChild(div1),document.body.appendChild(div2),scrollbarWidth=Math.abs(div1.scrollHeight-div2.scrollHeight),document.body.removeChild(div1),document.body.removeChild(div2),scrollbarWidth):scrollbarWidth},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return getScrollbarWidth}.apply(exports,[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}).call(this)},"./node_modules/simply-uuid/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__("./node_modules/simply-uuid/lib/uuid-node.js")},"./node_modules/simply-uuid/lib/uuid-node.js":(module,exports)=>{"use strict";module.exports.generate=function(){for(var lut=[],i=0;i<256;i++)lut[i]=(i<16?"0":"")+i.toString(16);var d0=4294967295*Math.random()|0,d1=4294967295*Math.random()|0,d2=4294967295*Math.random()|0,d3=4294967295*Math.random()|0;return lut[255&d0]+lut[d0>>8&255]+lut[d0>>16&255]+lut[d0>>24&255]+"-"+lut[255&d1]+lut[d1>>8&255]+"-"+lut[d1>>16&15|64]+lut[d1>>24&255]+"-"+lut[63&d2|128]+lut[d2>>8&255]+"-"+lut[d2>>16&255]+lut[d2>>24&255]+lut[255&d3]+lut[d3>>8&255]+lut[d3>>16&255]+lut[d3>>24&255]}},"./src/link/link.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/loader-screen/loader-screen.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader-screen/loader-screen.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/loader/loader.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader/loader.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/login-dialog/login-dialog.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/login-dialog/login-dialog.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}}}]); \ No newline at end of file diff --git a/release-6.x/auth-auth-stories.77ce3728.iframe.bundle.js b/release-6.x/auth-auth-stories.77ce3728.iframe.bundle.js deleted file mode 100644 index ae97b3713e7..00000000000 --- a/release-6.x/auth-auth-stories.77ce3728.iframe.bundle.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.webpackChunk_jetbrains_ring_ui=globalThis.webpackChunk_jetbrains_ring_ui||[]).push([[1812],{"./node_modules/@jetbrains/icons/checkmark.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/close.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/exception.js":module=>{module.exports=''},"./node_modules/@jetbrains/icons/warning.js":module=>{module.exports=''},"./src/auth/auth.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{InIFrame:()=>InIFrame,basic:()=>basic,default:()=>auth_stories});var react=__webpack_require__("./node_modules/react/index.js"),hub_config=__webpack_require__("./.storybook/hub-config.ts"),auth_dialog_service=__webpack_require__("./src/auth-dialog-service/auth-dialog-service.tsx"),link_link=__webpack_require__("./src/link/link.tsx"),auth_auth=__webpack_require__("./src/auth/auth.ts"),client=__webpack_require__("./node_modules/react-dom/client.js"),controls_height=__webpack_require__("./src/global/controls-height.tsx"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),dialog=__webpack_require__("./src/dialog/dialog.tsx"),content=__webpack_require__("./src/island/content.tsx"),loader_screen=__webpack_require__("./src/loader-screen/loader-screen.tsx"),background_flow=__webpack_require__("./src/auth/background-flow.ts"),login_dialog=__webpack_require__("./src/login-dialog/login-dialog.css"),login_dialog_default=__webpack_require__.n(login_dialog),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class LoginDialog extends react.Component{static propTypes={show:prop_types_default().bool,className:prop_types_default().string,url:prop_types_default().string,loader:prop_types_default().bool,loadingMessage:prop_types_default().string,showFallbackTimeout:prop_types_default().number,renderFallbackLink:prop_types_default().func,onCancel:prop_types_default().func.isRequired};static defaultProps={show:!1,url:"about:blank",renderFallbackLink:()=>null,showFallbackTimeout:5e3};state={loading:!0,loggingIn:!1,showFallbackLink:!1,height:517,width:333};componentDidMount(){window.addEventListener("message",this.onMessage),this.startFallbackCountdown()}componentWillUnmount(){window.removeEventListener("message",this.onMessage)}showFallbackTimout;startFallbackCountdown(){this.showFallbackTimout=window.setTimeout((()=>this.setState({showFallbackLink:!0})),this.props.showFallbackTimeout)}onMessage=event=>{const{data}=event;if(data)return data===background_flow.n?(clearTimeout(this.showFallbackTimout),void this.setState({loading:!1,loggingIn:!1})):"HUB_AUTH_PAGE_LOGIN_STARTED"===data?(this.setState({loading:!0,loggingIn:!0}),void this.startFallbackCountdown()):void("HUB_AUTH_PAGE_LOGIN_DIMENSIONS"===data.message&&this.setState({height:data.height,width:data.width}))};render(){const{show,className,url,loadingMessage,renderFallbackLink,onCancel}=this.props,{loading,height,width,loggingIn,showFallbackLink}=this.state,iFrameStyle={height,width};return(0,jsx_runtime.jsxs)(dialog.A,{"data-test":"ring-login-dialog",className,contentClassName:login_dialog_default().dialogContent,trapFocus:!0,autoFocusFirst:!1,show,showCloseButton:!0,onCloseAttempt:onCancel,children:[(0,jsx_runtime.jsx)(content.A,{children:(0,jsx_runtime.jsx)("iframe",{title:"Login dialog",style:iFrameStyle,src:url,className:login_dialog_default().iFrame,scrolling:"no"})}),loading&&(0,jsx_runtime.jsx)(loader_screen.A,{message:loadingMessage,containerClassName:login_dialog_default().nonOpaqueLoader}),showFallbackLink&&(0,jsx_runtime.jsx)("div",{className:login_dialog_default().fallbackLinkContainer,children:renderFallbackLink(loggingIn)})]})}}LoginDialog.__docgenInfo={description:"@name Login Dialog",methods:[{name:"startFallbackCountdown",docblock:null,modifiers:[],params:[],returns:null},{name:"onMessage",docblock:null,modifiers:[],params:[{name:"event",optional:!1,type:{name:"MessageEvent",alias:"MessageEvent"}}],returns:null}],displayName:"LoginDialog",props:{onCancel:{required:!0,tsType:{name:"signature",type:"function",raw:"() => void",signature:{arguments:[],return:{name:"void"}}},description:"",type:{name:"func"}},show:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1},type:{name:"bool"}},url:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'about:blank'",computed:!1},type:{name:"string"}},renderFallbackLink:{required:!1,tsType:{name:"signature",type:"function",raw:"(loggingIn: boolean) => ReactNode",signature:{arguments:[{type:{name:"boolean"},name:"loggingIn"}],return:{name:"ReactNode"}}},description:"",defaultValue:{value:"() => null",computed:!1},type:{name:"func"}},showFallbackTimeout:{required:!1,tsType:{name:"number"},description:"",defaultValue:{value:"5000",computed:!1},type:{name:"number"}},className:{required:!1,tsType:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}]},description:"",type:{name:"string"}},loader:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},loadingMessage:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}}}};const containerElement=document.createElement("div"),reactRoot=(0,client.createRoot)(containerElement);function noop(){}function showAuthDialog(props={onCancel:noop}){return function renderLoginDialog(props){reactRoot.render((0,jsx_runtime.jsx)(controls_height.VJ.Provider,{value:(0,controls_height.jT)(),children:(0,jsx_runtime.jsx)(LoginDialog,{...props})}))}({...props,show:!0}),()=>{reactRoot.unmount()}}var response_parser=__webpack_require__("./src/auth/response-parser.ts");class IFrameFlow{hideDialog=null;_requestBuilder;_storage;_translations;reject;_promise;_loginWindow;constructor(requestBuilder,storage,translations){this._requestBuilder=requestBuilder,this._storage=storage,this._translations=translations,this._reset()}async _load(){const authRequest=await this._requestBuilder.prepareAuthRequest({request_credentials:"required",auth_mode:"bypass_to_login"},{nonRedirect:!1}),renderFallbackLink=()=>(0,jsx_runtime.jsx)(link_link.A,{href:authRequest.url,target:"_self",children:this._translations.nothingHappensLink});return new Promise(((resolve,reject)=>{this.hideDialog=showAuthDialog({url:authRequest.url,loader:!0,onCancel:()=>{cleanUp(),this.stop()},renderFallbackLink}),this.reject=reject;const removeTokenListener=this._storage.onTokenChange((token=>{token&&(cleanUp(),resolve(token.accessToken))})),removeStateListener=this._storage.onStateChange(authRequest.stateId,(state=>{state&&state.error&&(cleanUp(),reject(new response_parser.A.AuthError(state)))})),cleanUp=()=>{this.hideDialog?.(),removeStateListener(),removeTokenListener()}}))}_reset=()=>{this._promise=null,this.hideDialog=null};stop(){this.hideDialog&&this.hideDialog(),this.reject&&this.reject("Login form closed"),this._reset()}authorize(){return null==this._promise||null==this._loginWindow||this._loginWindow.closed?(this._promise=this._load(),this._promise.then(this._reset,this._reset),this._promise):this._promise}}const auth_stories={title:"Utilities/Auth",parameters:{notes:"Authenticates a user in [Hub](https://www.jetbrains.com/hub/).",screenshots:{skip:!0}},tags:["skip-test"]},basic=()=>{const auth=new auth_auth.Ay(hub_config.A);return auth.setAuthDialogService(auth_dialog_service.A),(async()=>{try{const location=await auth.init();console.log("Location to restore:",location);const token=await auth.requestToken();console.log("Token:",token);const data=await auth.requestUser();console.log("User profile data:",data)}catch(e){if(!(e instanceof Error))throw e;console.error("Auth error",e)}})(),(0,jsx_runtime.jsx)(link_link.A,{pseudo:!0,onClick:async()=>{const newToken=await auth.forceTokenUpdate();console.log("Token has been refreshed:",newToken)},children:"Force token update"})};basic.storyName="basic";const InIFrame=()=>{const[data,setData]=(0,react.useState)(""),auth=new auth_auth.Ay({...hub_config.A,EmbeddedLoginFlow:IFrameFlow});return auth.setAuthDialogService(auth_dialog_service.A),(async()=>{try{const location=await auth.init();console.log(location),await auth.login(),setData(await auth.requestUser())}catch(e){if(!(e instanceof Error))throw e;console.error("Failed",e)}})(),(0,jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:data}})};InIFrame.storyName="in IFrame",basic.parameters={...basic.parameters,docs:{...basic.parameters?.docs,source:{originalSource:"() => {\n const auth = new Auth(hubConfig);\n auth.setAuthDialogService(authDialogService);\n (async () => {\n try {\n const location = await auth.init();\n console.log('Location to restore:', location);\n const token = await auth.requestToken();\n console.log('Token:', token);\n const data = await auth.requestUser();\n console.log('User profile data:', data);\n } catch (e) {\n if (!(e instanceof Error)) {\n throw e;\n }\n console.error('Auth error', e);\n }\n })();\n return {\n const newToken = await auth.forceTokenUpdate();\n console.log('Token has been refreshed:', newToken);\n }}>Force token update;\n}",...basic.parameters?.docs?.source}}},InIFrame.parameters={...InIFrame.parameters,docs:{...InIFrame.parameters?.docs,source:{originalSource:"() => {\n const [data, setData] = useState('');\n const auth = new Auth({\n ...hubConfig,\n EmbeddedLoginFlow: IFrameFlow\n });\n auth.setAuthDialogService(authDialogService);\n (async () => {\n try {\n const location = await auth.init();\n console.log(location);\n await auth.login();\n setData(await auth.requestUser());\n } catch (e) {\n if (!(e instanceof Error)) {\n throw e;\n }\n console.error('Failed', e);\n }\n })();\n return
;\n}",...InIFrame.parameters?.docs?.source}}}},"./src/auth-dialog-service/auth-dialog-service.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>showAuthDialog});var react_dom_client__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react-dom/client.js"),_global_controls_height__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/global/controls-height.tsx"),_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/auth-dialog/auth-dialog.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const containerElement=document.createElement("div"),reactRoot=(0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);function renderAuthDialog(props){reactRoot.render((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.VJ.Provider,{value:(0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.jT)(),children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__.A,{...props})}))}function showAuthDialog(props={}){return renderAuthDialog({...props,show:!0}),()=>{renderAuthDialog({show:!1})}}},"./src/global/url.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dn:()=>fixUrl,JO:()=>parseQueryString,Km:()=>joinBaseURLAndPath,oZ:()=>encodeURL,qG:()=>getAbsoluteBaseURL,zL:()=>isDataURI});const ABSOLUTE_URL_PATTERN=/^[a-z]+:\/\//i;function getBaseURI(){const baseElement=document.getElementsByTagName("base")[0];return baseElement?baseElement.href:void 0}function getAbsoluteBaseURL(){const baseUrl=getBaseURI(),host=`${window.location.protocol}//${window.location.host}`;let uri;return uri=baseUrl?ABSOLUTE_URL_PATTERN.test(baseUrl)?baseUrl:host+baseUrl:host,uri}function fixUrl(url,baseURIGetter=getBaseURI){if(-1===url.indexOf("http://")&&-1===url.indexOf("https://")&&0!==url.indexOf("/")){const baseUrl=baseURIGetter();if(baseUrl)return baseUrl+url}return url}function joinBaseURLAndPath(baseUrl,path){return baseUrl&&-1===path.indexOf("http://")&&-1===path.indexOf("https://")?baseUrl+path:path}function parseQueryString(queryString){if(null==queryString)return{};const queryParameterPairRE=/([^&;=]+)=?([^&;]*)/g,urlParams={};function decode(s){return decodeURIComponent(s.replace(/\+/g," "))}let matchedQueryPair;for(;null!=(matchedQueryPair=queryParameterPairRE.exec(queryString));)urlParams[decode(matchedQueryPair[1])]=decode(matchedQueryPair[2]);return urlParams}function customEncodeURIComponent(str){return encodeURIComponent(String(str)).replace(/%2C/g,",").replace(/%24/g,"$")}function encodeURL(url,params){const firstSeparator=-1===url.indexOf("?")?"?":"&";let k,res=url,i=0;for(k in params)params.hasOwnProperty(k)&&null!=params[k]&&(res+=(0==i++?firstSeparator:"&")+customEncodeURIComponent(k)+"="+customEncodeURIComponent(params[k]));return res}function isDataURI(uri){return 0===uri.indexOf("data:")}},"./src/i18n/i18n.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>getTranslations,xO:()=>getTranslationsWithFallback,Lw:()=>setTranslations,Tl:()=>translate});const messages_namespaceObject=JSON.parse('{"login":"Log in","logout":"Log out","loginTo":"Log in to {{serviceName}}","ok":"OK","cancel":"Cancel","tryAgainLabel":"Try again","postpone":"Postpone","youHaveLoggedInAs":"You have logged in as another user: {{userName}}","applyChange":"Apply change","backendIsNotAvailable":"Connection lost","checkAgain":"try again","nothingHappensLink":"Click here if nothing happens","errorMessage":"There may be a problem with your network connection. Make sure that you are online and","applyChangedUser":"Apply changed user","profile":"Profile","switchUser":"Switch user","addFirstDate":"Add first date","addSecondDate":"Add second date","addTime":"Add time","selectName":"Select {{name}}","setDate":"Set a date","setDateTime":"Set date and time","setPeriod":"Set a period","clear":"Clear input","gotIt":"Got it","dismiss":"Dismiss","perPage":"per page","firstPage":"First page","lastPage":"Last page","nextPage":"Next page","previousPage":"Previous","searchTitle":"Search","clearTitle":"Clear search input","userAgreement":"User Agreement","accept":"Accept","decline":"Decline","close":"Close","scrollToAccept":"View the entire agreement to continue","remindLater":"Remind me later","filterItems":"Filter items","selectOption":"Select an option","progress":"Progress","loading":"Loading...","noOptionsFound":"No options found","banned":"banned","online":"online","offline":"offline","copyToClipboard":"Copy email to clipboard","copiedToClipboard":"Email was copied to clipboard","copingToClipboardError":"Failed to copy to clipboard","unverified":"Unverified"}');let messages=messages_namespaceObject;const warned=new Set;function setTranslations(newMessages){messages=newMessages}function getTranslations(){return messages}function getTranslationsWithFallback(){return{...messages_namespaceObject,...messages}}function translate(key){var _messages$key;return key in messages||function warnMissedKeyOnce(key){warned.has(key)||(warned.add(key),console.warn(`Missing localisation for key "${key}"`))}(key),null!==(_messages$key=messages[key])&&void 0!==_messages$key?_messages$key:messages_namespaceObject[key]}},"./src/link/link.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__,F:()=>linkHOC});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/prop-types/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__),classnames__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/classnames/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__),_global_data_tests__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./src/global/data-tests.ts"),_clickableLink__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/link/clickableLink.tsx"),_link_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/link/link.css"),_link_css__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_link_css__WEBPACK_IMPORTED_MODULE_2__),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/react/jsx-runtime.js");function linkHOC(ComposedComponent){const isCustom="string"!=typeof ComposedComponent&&ComposedComponent!==_clickableLink__WEBPACK_IMPORTED_MODULE_4__.A;return class Link extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent{static propTypes={className:prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,active:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,inherit:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,pseudo:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,hover:prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool,children:prop_types__WEBPACK_IMPORTED_MODULE_5___default().node,"data-test":prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,href:prop_types__WEBPACK_IMPORTED_MODULE_5___default().string,onPlainLeftClick:prop_types__WEBPACK_IMPORTED_MODULE_5___default().func,onClick:prop_types__WEBPACK_IMPORTED_MODULE_5___default().func};render(){const{active,inherit,pseudo,hover,className,"data-test":dataTest,href,children,onPlainLeftClick,onClick,...restProps}=this.props,useButton=pseudo||!isCustom&&null==href,classes=classnames__WEBPACK_IMPORTED_MODULE_1___default()(_link_css__WEBPACK_IMPORTED_MODULE_2___default().link,className,{[_link_css__WEBPACK_IMPORTED_MODULE_2___default().active]:active,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().inherit]:inherit,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().hover]:hover,[_link_css__WEBPACK_IMPORTED_MODULE_2___default().pseudo]:useButton});let props=restProps;return isCustom&&!props.activeClassName&&(props={...props,activeClassName:_link_css__WEBPACK_IMPORTED_MODULE_2___default().active}),useButton?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("button",{type:"button",...props,className:classes,onClick:onClick||onPlainLeftClick,"data-test":(0,_global_data_tests__WEBPACK_IMPORTED_MODULE_6__.A)("ring-link",dataTest),children}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ComposedComponent,{...props,href,className:classes,onClick,onPlainLeftClick,"data-test":(0,_global_data_tests__WEBPACK_IMPORTED_MODULE_6__.A)("ring-link",dataTest),children})}}}const __WEBPACK_DEFAULT_EXPORT__=linkHOC(_clickableLink__WEBPACK_IMPORTED_MODULE_4__.A)},"./src/loader-screen/loader-screen.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>LoaderScreen});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/classnames/index.js"),classnames__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__),prop_types__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/prop-types/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__),_loader_loader__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./src/loader/loader.tsx"),_loader_screen_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/loader-screen/loader-screen.css"),_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_loader_screen_css__WEBPACK_IMPORTED_MODULE_2__),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/react/jsx-runtime.js");class LoaderScreen extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent{static propTypes={className:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string,containerClassName:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string,message:prop_types__WEBPACK_IMPORTED_MODULE_4___default().string};render(){const{message,className,containerClassName,...restProps}=this.props,containerClasses=classnames__WEBPACK_IMPORTED_MODULE_1___default()(containerClassName,_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loaderScreen),loaderClasses=classnames__WEBPACK_IMPORTED_MODULE_1___default()(className,_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loader,{[_loader_screen_css__WEBPACK_IMPORTED_MODULE_2___default().loaderWithoutSpacing]:!message});return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div",{className:containerClasses,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_loader_loader__WEBPACK_IMPORTED_MODULE_5__.A,{...restProps,message,className:loaderClasses})})}}LoaderScreen.__docgenInfo={description:"@name Loader Screen",methods:[],displayName:"LoaderScreen",props:{"data-test":{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:""},containerClassName:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},className:{description:"",type:{name:"string"},required:!1},message:{description:"",type:{name:"string"},required:!1}},composes:["Partial","HTMLAttributes"]}},"./src/loader/loader.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>Loader});var react=__webpack_require__("./node_modules/react/index.js"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),data_tests=__webpack_require__("./src/global/data-tests.ts"),dom=__webpack_require__("./src/global/dom.ts"),loader=__webpack_require__("./src/loader/loader.css"),loader_default=__webpack_require__.n(loader);class Particle{radius;x;y;color;decay;life;constructor({x,y,radius,color}){this.radius=radius,this.x=x,this.y=y,this.color=color,this.decay=.01,this.life=1}step(){this.life-=this.decay}isAlive(){return this.life>=0}draw(ctx){const alpha=this.life>=0?this.life:0;ctx.fillStyle=`rgba(${this.color.r}, ${this.color.g}, ${this.color.b}, ${alpha})`,ctx.beginPath(),ctx.arc(this.x+this.radius,this.y+this.radius,this.radius,0,2*Math.PI),ctx.fill()}}function deterministic(){return.5}class LoaderCore{static defaultProps={size:64,stop:!1,deterministic:!1,colors:[{r:215,g:60,b:234},{r:145,g:53,b:224},{r:88,g:72,b:224},{r:37,g:183,b:255},{r:89,g:189,b:0},{r:251,g:172,b:2},{r:227,g:37,b:129}]};static calculateGradient(startColor,stopColor,position){const calculateChannelValue=(a,b)=>a+Math.round((b-a)*position);return{r:calculateChannelValue(startColor.r,stopColor.r),g:calculateChannelValue(startColor.g,stopColor.g),b:calculateChannelValue(startColor.b,stopColor.b)}}props;canvas;textNode;ctx;height;width;particles;baseSpeed;colorIndex;maxRadius;minRadius;colorChangeTick;x;y;radius;hSpeed;vSpeed;radiusSpeed;tick;isRunning;constructor(containerNode,props){this.props=Object.assign({},LoaderCore.defaultProps,props),this.canvas=document.createElement("canvas"),this.canvas.dataset.test="ring-loader",this.canvas.classList.add(loader_default().canvas),this.textNode=document.createElement("div"),this.textNode.dataset.test="ring-loader-text",this.textNode.classList.add(loader_default().text),this.textNode.textContent=this.props.message?this.props.message:"",containerNode.appendChild(this.canvas),containerNode.appendChild(this.textNode);const pixelRatio=LoaderCore.getPixelRatio(),canvasSize=this.props.size*pixelRatio;this.canvas.width=canvasSize,this.canvas.height=canvasSize,this.canvas.style.width=`${this.props.size}px`,this.canvas.style.height=`${this.props.size}px`,this.ctx=this.canvas.getContext("2d"),this.ctx?.scale(pixelRatio,pixelRatio),this.height=this.props.size,this.width=this.props.size,this.particles=[],this.baseSpeed=1,this.colorIndex=0,this.maxRadius=10,this.minRadius=6,this.colorChangeTick=40,this.x=0,this.y=0,this.radius=8,this.hSpeed=1.5,this.vSpeed=.5,this.radiusSpeed=.05,this.tick=0,this.prepareInitialState(100),this.isRunning=!this.props.stop,this.isRunning?this.startAnimation():this.draw()}static getPixelRatio(){return(0,dom.sJ)()}prepareInitialState(ticks){for(let i=0;i=limit?-(this.baseSpeed+randomizedSpeedChange):coord<=this.baseSpeed?this.baseSpeed+randomizedSpeedChange:speed}calculateNextCoordinates(){this.x+=this.hSpeed,this.y+=this.vSpeed,this.hSpeed=this.handleLimits(this.x,this.radius,this.hSpeed,this.width),this.vSpeed=this.handleLimits(this.y,this.radius,this.vSpeed,this.height)}calculateNextRadius(){this.radius+=this.radiusSpeed,(this.radius>this.maxRadius||this.radiusthis.colorChangeTick&&(this.tick=0,this.colorIndex++,this.colorIndex>this.props.colors.length-1&&(this.colorIndex=0))}step(){this.nextTick(),this.calculateNextCoordinates(),this.calculateNextRadius(),this.particles.forEach((particle=>particle.step())),this.particles.push(new Particle({x:this.x,y:this.y,radius:this.radius,color:this.getNextColor()}))}removeDeadParticles(){this.particles=this.particles.filter((it=>it.isAlive()))}draw(){const ctx=this.ctx;null!=ctx&&(ctx.clearRect(0,0,this.width,this.height),this.removeDeadParticles(),this.particles.forEach((particle=>particle.draw(ctx))))}loop(){this.step(),this.draw(),this.isRunning&&window.requestAnimationFrame((()=>this.loop()))}updateMessage(text){this.textNode.textContent=text||""}stopAnimation(){this.isRunning=!1,this.canvas.classList.remove(loader_default().animate)}startAnimation(){this.isRunning=!0,this.canvas.classList.add(loader_default().animate),this.loop()}destroy(){this.isRunning=!1}}var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class Loader extends react.PureComponent{static propTypes={className:prop_types_default().string,size:prop_types_default().number,colors:prop_types_default().array,message:prop_types_default().string,"data-test":prop_types_default().string,stop:prop_types_default().bool,deterministic:prop_types_default().bool};componentDidUpdate(prevProps){this.loader&&(!prevProps.stop&&this.props.stop?this.loader.stopAnimation():prevProps.stop&&!this.props.stop&&this.loader.startAnimation())}componentWillUnmount(){this.loader?.destroy()}loader;initLoader=el=>{el&&(this.loader=new LoaderCore(el,this.props))};render(){const{message,size,colors,"data-test":dataTest,stop,deterministic,...restProps}=this.props;return(0,jsx_runtime.jsx)("div",{"data-test":(0,data_tests.A)("ring-loader",dataTest),...restProps,ref:this.initLoader})}}Loader.__docgenInfo={description:"Displays a large animated loader with an optional caption. Typical use cases: page loading animation, major action animation.",methods:[{name:"initLoader",docblock:null,modifiers:[],params:[{name:"el",optional:!1,type:{name:"union",raw:"Node | null",elements:[{name:"Node"},{name:"null"}]}}],returns:null}],displayName:"Loader",props:{"data-test":{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},className:{description:"",type:{name:"string"},required:!1},size:{description:"",type:{name:"number"},required:!1},colors:{description:"",type:{name:"array"},required:!1},message:{description:"",type:{name:"string"},required:!1},stop:{description:"",type:{name:"bool"},required:!1},deterministic:{description:"",type:{name:"bool"},required:!1}},composes:["Partial","HTMLAttributes"]}},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".link_c73c,\n.withLinks_a3f8 a {\n cursor: pointer;\n transition: color var(--ring-fast-ease);\n\n color: var(--ring-link-color);\n\n outline: none;\n\n text-decoration-line: none;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {:is(.link_c73c,.withLinks_a3f8 a):hover {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }}\n\n@media (resolution >= 2dppx) {\n\n.link_c73c,\n.withLinks_a3f8 a {\n text-decoration-thickness: 0.5px;\n}\n }\n\n.hover_e4ca:is(.link_c73c,.withLinks_a3f8 a) {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }\n\n/* stylelint-disable-next-line selector-max-specificity */\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.pseudo_cb40:is(.link_c73c,.withLinks_a3f8 a):hover {\n text-decoration: none;\n }}\n\n:is(.link_c73c,.withLinks_a3f8 a):focus-visible {\n box-shadow: 0 0 0 2px var(--ring-border-hover-color);\n }\n\n.link_c73c.active_eef2 {\n color: inherit;\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.inherit_c3d7:not(:hover) {\n color: inherit;\n}}\n\n.pseudo_cb40 {\n margin: 0;\n padding: 0;\n\n text-align: left;\n\n border: 0;\n\n background: transparent;\n\n font: inherit;\n}\n\n.pseudo_cb40::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n }\n","",{version:3,sources:["webpack://./src/link/link.css",""],names:[],mappings:"AAEA;;EAEE,eAAe;EACf,uCAAuC;;EAEvC,6BAA6B;;EAE7B,aAAa;;EAEb,0BAA0B;EAC1B,8BAA8B;EAC9B,0BAA0B;AAuB5B;;ACpCA,wGAAA;IAAA,gCAAA;;IAAA,iBAAA;;IAAA,oCAAA;GAAA,CAAA;;ADeE;;AAbF;;IAcI,gCAAgC;AAoBpC;EAnBE;;AAEA;IAEE,+BAA+B;;IAE/B,gBAAgB;;IAEhB,mCAAmC;EACrC;;AAEA,yDAAyD;;AC5B3D,wGAAA;IAAA,sBAAA;GAAA,CAAA;;ADiCE;IACE,oDAAoD;EACtD;;AAGF;EACE,cAAc;AAChB;;ACxCA,wGAAA;EAAA,eAAA;CAAA,CAAA;;AD8CA;EACE,SAAS;EACT,UAAU;;EAEV,gBAAgB;;EAEhB,SAAS;;EAET,uBAAuB;;EAEvB,aAAa;AAOf;;AALE;IACE,UAAU;;IAEV,SAAS;EACX",sourcesContent:['@import "../global/variables.css";\n\n.link,\n.withLinks a {\n cursor: pointer;\n transition: color var(--ring-fast-ease);\n\n color: var(--ring-link-color);\n\n outline: none;\n\n text-decoration-line: none;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n\n @media (resolution >= 2dppx) {\n text-decoration-thickness: 0.5px;\n }\n\n &:hover,\n &.hover {\n text-decoration-line: underline;\n\n transition: none;\n\n color: var(--ring-link-hover-color);\n }\n\n /* stylelint-disable-next-line selector-max-specificity */\n &.pseudo:hover {\n text-decoration: none;\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 2px var(--ring-border-hover-color);\n }\n}\n\n.link.active {\n color: inherit;\n}\n\n.inherit:not(:hover) {\n color: inherit;\n}\n\n.pseudo {\n margin: 0;\n padding: 0;\n\n text-align: left;\n\n border: 0;\n\n background: transparent;\n\n font: inherit;\n\n &::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n }\n}\n',null],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={link:"link_c73c",withLinks:"withLinks_a3f8",hover:"hover_e4ca",pseudo:"pseudo_cb40",active:"active_eef2",inherit:"inherit_c3d7"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader-screen/loader-screen.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,'.loaderScreen_b0c0 {\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n text-align: center;\n vertical-align: middle;\n}\n\n.loaderScreen_b0c0::before {\n display: inline-block;\n\n height: 100%;\n\n content: "";\n\n vertical-align: middle;\n }\n\n.loader_aabf {\n display: inline-block;\n}\n\n.loaderWithoutSpacing_f4b9 canvas {\n margin: 0;\n}\n',"",{version:3,sources:["webpack://./src/loader-screen/loader-screen.css"],names:[],mappings:"AAEA;EACE,kBAAkB;;EAElB,WAAW;EACX,YAAY;;EAEZ,kBAAkB;EAClB,sBAAsB;AAWxB;;AATE;IACE,qBAAqB;;IAErB,YAAY;;IAEZ,WAAW;;IAEX,sBAAsB;EACxB;;AAGF;EACE,qBAAqB;AACvB;;AAEA;EACE,SAAS;AACX",sourcesContent:['@import "../global/variables.css";\n\n.loaderScreen {\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n text-align: center;\n vertical-align: middle;\n\n &::before {\n display: inline-block;\n\n height: 100%;\n\n content: "";\n\n vertical-align: middle;\n }\n}\n\n.loader {\n display: inline-block;\n}\n\n.loaderWithoutSpacing canvas {\n margin: 0;\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={loaderScreen:"loaderScreen_b0c0",loader:"loader_aabf",loaderWithoutSpacing:"loaderWithoutSpacing_f4b9"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader/loader.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,"@keyframes rotation-keyframes_d87b {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.canvas_b4b4 {\n display: block;\n\n margin: calc(var(--ring-unit)*2) auto;\n\n pointer-events: none;\n}\n\n.animate_f7ea {\n animation: rotation-keyframes_d87b 36s linear infinite;\n}\n\n.text_fd63 {\n text-align: center;\n\n font-family: var(--ring-font-family);\n font-size: var(--ring-font-size);\n line-height: var(--ring-line-height);\n}\n","",{version:3,sources:["webpack://./src/loader/loader.css"],names:[],mappings:"AAEA;EACE;IACE,yBAAyB;EAC3B;AACF;;AAEA;EACE,cAAc;;EAEd,qCAAuC;;EAEvC,oBAAoB;AACtB;;AAEA;EACE,sDAAiD;AACnD;;AAEA;EACE,kBAAkB;;EAElB,oCAAoC;EACpC,gCAAgC;EAChC,oCAAoC;AACtC",sourcesContent:['@import "../global/variables.css";\n\n@keyframes rotation-keyframes {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.canvas {\n display: block;\n\n margin: calc(var(--ring-unit) * 2) auto;\n\n pointer-events: none;\n}\n\n.animate {\n animation: rotation-keyframes 36s linear infinite;\n}\n\n.text {\n text-align: center;\n\n font-family: var(--ring-font-family);\n font-size: var(--ring-font-size);\n line-height: var(--ring-line-height);\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={canvas:"canvas_b4b4",animate:"animate_f7ea","rotation-keyframes":"rotation-keyframes_d87b",text:"text_fd63"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/login-dialog/login-dialog.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".iFrame_b545 {\n overflow: hidden;\n\n border: none;\n}\n\n.dialogContent_c450 {\n width: auto;\n}\n\n.nonOpaqueLoader_d5c3 {\n background-color: var(--ring-content-background-color);\n}\n\n.fallbackLinkContainer_fd61 {\n position: absolute;\n top: 0;\n right: 0;\n\n padding: var(--ring-unit);\n}\n","",{version:3,sources:["webpack://./src/login-dialog/login-dialog.css"],names:[],mappings:"AAEA;EACE,gBAAgB;;EAEhB,YAAY;AACd;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,sDAAsD;AACxD;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;;EAER,yBAAyB;AAC3B",sourcesContent:['@import "../global/variables.css";\n\n.iFrame {\n overflow: hidden;\n\n border: none;\n}\n\n.dialogContent {\n width: auto;\n}\n\n.nonOpaqueLoader {\n background-color: var(--ring-content-background-color);\n}\n\n.fallbackLinkContainer {\n position: absolute;\n top: 0;\n right: 0;\n\n padding: var(--ring-unit);\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={iFrame:"iFrame_b545",dialogContent:"dialogContent_c450",nonOpaqueLoader:"nonOpaqueLoader_d5c3",fallbackLinkContainer:"fallbackLinkContainer_fd61"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/es6-error/es6/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=function(_extendableBuiltin2){function ExtendableError(){var message=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";!function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,ExtendableError);var _this=_possibleConstructorReturn(this,(ExtendableError.__proto__||Object.getPrototypeOf(ExtendableError)).call(this,message));return Object.defineProperty(_this,"message",{configurable:!0,enumerable:!1,value:message,writable:!0}),Object.defineProperty(_this,"name",{configurable:!0,enumerable:!1,value:_this.constructor.name,writable:!0}),Error.hasOwnProperty("captureStackTrace")?(Error.captureStackTrace(_this,_this.constructor),_possibleConstructorReturn(_this)):(Object.defineProperty(_this,"stack",{configurable:!0,enumerable:!1,value:new Error(message).stack,writable:!0}),_this)}return function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(ExtendableError,_extendableBuiltin2),ExtendableError}(function _extendableBuiltin(cls){function ExtendableBuiltin(){cls.apply(this,arguments)}return ExtendableBuiltin.prototype=Object.create(cls.prototype,{constructor:{value:cls,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(ExtendableBuiltin,cls):ExtendableBuiltin.__proto__=cls,ExtendableBuiltin}(Error))},"./node_modules/scrollbar-width/scrollbar-width.js":function(module,exports){var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var getScrollbarWidth,scrollbarWidth;scrollbarWidth=null,getScrollbarWidth=function(recalculate){var div1,div2;return null==recalculate&&(recalculate=!1),null==scrollbarWidth||recalculate?"loading"===document.readyState?null:(div1=document.createElement("div"),div2=document.createElement("div"),div1.style.width=div2.style.width=div1.style.height=div2.style.height="100px",div1.style.overflow="scroll",div2.style.overflow="hidden",document.body.appendChild(div1),document.body.appendChild(div2),scrollbarWidth=Math.abs(div1.scrollHeight-div2.scrollHeight),document.body.removeChild(div1),document.body.removeChild(div2),scrollbarWidth):scrollbarWidth},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return getScrollbarWidth}.apply(exports,[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}).call(this)},"./node_modules/simply-uuid/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__("./node_modules/simply-uuid/lib/uuid-node.js")},"./node_modules/simply-uuid/lib/uuid-node.js":(module,exports)=>{"use strict";module.exports.generate=function(){for(var lut=[],i=0;i<256;i++)lut[i]=(i<16?"0":"")+i.toString(16);var d0=4294967295*Math.random()|0,d1=4294967295*Math.random()|0,d2=4294967295*Math.random()|0,d3=4294967295*Math.random()|0;return lut[255&d0]+lut[d0>>8&255]+lut[d0>>16&255]+lut[d0>>24&255]+"-"+lut[255&d1]+lut[d1>>8&255]+"-"+lut[d1>>16&15|64]+lut[d1>>24&255]+"-"+lut[63&d2|128]+lut[d2>>8&255]+"-"+lut[d2>>16&255]+lut[d2>>24&255]+lut[255&d3]+lut[d3>>8&255]+lut[d3>>16&255]+lut[d3>>24&255]}},"./src/link/link.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/loader-screen/loader-screen.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader-screen/loader-screen.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/loader/loader.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/loader/loader.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/login-dialog/login-dialog.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/login-dialog/login-dialog.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}}}]); \ No newline at end of file diff --git a/release-6.x/custom-header.js b/release-6.x/custom-header.js index 750796c0922..36494dea887 100644 --- a/release-6.x/custom-header.js +++ b/release-6.x/custom-header.js @@ -689,7 +689,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SmartProfile)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _auth_auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../auth/auth */ \"./src/auth/auth.ts\");\n/* harmony import */ var _auth_auth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../auth/auth */ \"./src/auth/auth__core.ts\");\n/* harmony import */ var _alert_service_alert_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../alert-service/alert-service */ \"./src/alert-service/alert-service.tsx\");\n/* harmony import */ var _profile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./profile */ \"./src/header/profile.tsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\n\n\nconst CERTIFICATE_MISMATCH_HEADER = 'x-client-certificate-token-mismatch';\nclass SmartProfile extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent {\n static propTypes = {\n auth: prop_types__WEBPACK_IMPORTED_MODULE_2___default().instanceOf(_auth_auth__WEBPACK_IMPORTED_MODULE_3__[\"default\"]).isRequired,\n className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n translations: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n profileUrl: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n size: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].propTypes.size,\n round: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].propTypes.round\n };\n state = {\n user: null,\n size: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].defaultProps.size,\n isLogoutPostponed: false,\n isUserChangePostponed: false\n };\n componentDidMount() {\n this.requestUser();\n }\n static Size = _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Size;\n login = async () => {\n this.setState({\n loading: true\n });\n try {\n await this.props.auth.login();\n } catch (err) {\n // do nothing\n } finally {\n this.setState({\n loading: false\n });\n }\n };\n logout = () => this.props.auth.logout();\n switchUser = () => this.props.auth.switchUser();\n onRevertPostponement = () => {\n if (this.state.isLogoutPostponed) {\n this.props.auth.login();\n }\n if (this.state.isUserChangePostponed) {\n this.props.auth.updateUser();\n }\n };\n async requestUser() {\n try {\n const {\n auth\n } = this.props;\n const user = await auth.requestUser();\n this.checkUserCertificateMismatch(user);\n this.setState({\n user\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.USER_CHANGED_EVENT, newUser => {\n this.setState({\n user: newUser,\n isLogoutPostponed: false,\n isUserChangePostponed: false\n });\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.LOGOUT_POSTPONED_EVENT, () => {\n this.setState({\n isLogoutPostponed: true\n });\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.USER_CHANGE_POSTPONED_EVENT, () => {\n this.setState({\n isUserChangePostponed: true\n });\n });\n } catch (e) {\n // noop\n }\n }\n checkUserCertificateMismatch(user) {\n const {\n auth,\n translations\n } = this.props;\n const userMeta = auth.http.getMetaForResponse(user);\n if (userMeta?.headers?.has(CERTIFICATE_MISMATCH_HEADER)) {\n const message = translations?.certificateMismatch || `You are authenticated as ${user.login || user.name}. To authenticate with the client certificate for your account, log out, then click the \"Log in with certificate\" option on the login page.`;\n _alert_service_alert_service__WEBPACK_IMPORTED_MODULE_6__[\"default\"].warning(message, 0);\n }\n }\n render() {\n const {\n user,\n loading,\n isLogoutPostponed,\n isUserChangePostponed\n } = this.state;\n const {\n auth,\n profileUrl,\n ...props\n } = this.props;\n const url = profileUrl || (user ? `${auth.config.serverUri}users/${user.id}` : '');\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onLogin: this.login,\n onLogout: this.logout,\n onSwitchUser: this.switchUser,\n loading: loading,\n user: user,\n profileUrl: url,\n showApplyChangedUser: isUserChangePostponed,\n showLogIn: isLogoutPostponed,\n showLogOut: !isLogoutPostponed,\n showSwitchUser: auth._canShowDialogs() && !isLogoutPostponed && !isUserChangePostponed,\n onRevertPostponement: this.onRevertPostponement,\n ...props\n });\n }\n}\n\n//# sourceURL=webpack://@jetbrains/ring-ui/./src/header/smart-profile.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SmartProfile)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _auth_auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../auth/auth */ \"./src/auth/auth.ts\");\n/* harmony import */ var _auth_auth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../auth/auth */ \"./src/auth/auth__core.ts\");\n/* harmony import */ var _alert_service_alert_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../alert-service/alert-service */ \"./src/alert-service/alert-service.tsx\");\n/* harmony import */ var _profile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./profile */ \"./src/header/profile.tsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\n\n\nconst CERTIFICATE_MISMATCH_HEADER = 'x-client-certificate-token-mismatch';\nclass SmartProfile extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent {\n static propTypes = {\n auth: prop_types__WEBPACK_IMPORTED_MODULE_2___default().instanceOf(_auth_auth__WEBPACK_IMPORTED_MODULE_3__[\"default\"]).isRequired,\n className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n translations: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n profileUrl: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n size: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].propTypes.size,\n round: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].propTypes.round\n };\n state = {\n user: null,\n size: _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].defaultProps.size,\n isLogoutPostponed: false,\n isUserChangePostponed: false\n };\n componentDidMount() {\n this.requestUser();\n }\n static Size = _profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Size;\n login = async () => {\n this.setState({\n loading: true\n });\n try {\n await this.props.auth.login();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.debug('Profile login errored', err);\n } finally {\n this.setState({\n loading: false\n });\n }\n };\n logout = () => this.props.auth.logout();\n switchUser = () => this.props.auth.switchUser();\n onRevertPostponement = () => {\n if (this.state.isLogoutPostponed) {\n this.props.auth.login();\n }\n if (this.state.isUserChangePostponed) {\n this.props.auth.updateUser();\n }\n };\n async requestUser() {\n try {\n const {\n auth\n } = this.props;\n const user = await auth.requestUser();\n this.checkUserCertificateMismatch(user);\n this.setState({\n user\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.USER_CHANGED_EVENT, newUser => {\n this.setState({\n user: newUser,\n isLogoutPostponed: false,\n isUserChangePostponed: false\n });\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.LOGOUT_POSTPONED_EVENT, () => {\n this.setState({\n isLogoutPostponed: true\n });\n });\n auth.addListener(_auth_auth__WEBPACK_IMPORTED_MODULE_5__.USER_CHANGE_POSTPONED_EVENT, () => {\n this.setState({\n isUserChangePostponed: true\n });\n });\n } catch (e) {\n // noop\n }\n }\n checkUserCertificateMismatch(user) {\n const {\n auth,\n translations\n } = this.props;\n const userMeta = auth.http.getMetaForResponse(user);\n if (userMeta?.headers?.has(CERTIFICATE_MISMATCH_HEADER)) {\n const message = translations?.certificateMismatch || `You are authenticated as ${user.login || user.name}. To authenticate with the client certificate for your account, log out, then click the \"Log in with certificate\" option on the login page.`;\n _alert_service_alert_service__WEBPACK_IMPORTED_MODULE_6__[\"default\"].warning(message, 0);\n }\n }\n render() {\n const {\n user,\n loading,\n isLogoutPostponed,\n isUserChangePostponed\n } = this.state;\n const {\n auth,\n profileUrl,\n ...props\n } = this.props;\n const url = profileUrl || (user ? `${auth.config.serverUri}users/${user.id}` : '');\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_profile__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onLogin: this.login,\n onLogout: this.logout,\n onSwitchUser: this.switchUser,\n loading: loading,\n user: user,\n profileUrl: url,\n showApplyChangedUser: isUserChangePostponed,\n showLogIn: isLogoutPostponed,\n showLogOut: !isLogoutPostponed,\n showSwitchUser: auth._canShowDialogs() && !isLogoutPostponed && !isUserChangePostponed,\n onRevertPostponement: this.onRevertPostponement,\n ...props\n });\n }\n}\n\n//# sourceURL=webpack://@jetbrains/ring-ui/./src/header/smart-profile.tsx?"); /***/ }), @@ -1019,7 +1019,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ showAuthDialog)\n/* harmony export */ });\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _global_controls_height__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../global/controls-height */ \"./src/global/controls-height.tsx\");\n/* harmony import */ var _login_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./login-dialog */ \"./src/login-dialog/login-dialog.tsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\nconst containerElement = document.createElement('div');\nconst reactRoot = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);\n\n/**\n * Renders LoginDialog into virtual node to skip maintaining container\n */\nfunction renderLoginDialog(props) {\n reactRoot.render( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.ControlsHeightContext.Provider, {\n value: (0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.getGlobalControlsHeight)(),\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_login_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n ...props\n })\n }));\n}\nfunction noop() {}\nfunction showAuthDialog(props = {\n onCancel: noop\n}) {\n renderLoginDialog({\n ...props,\n show: true\n });\n return () => {\n reactRoot.unmount();\n };\n}\n\n//# sourceURL=webpack://@jetbrains/ring-ui/./src/login-dialog/service.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ showAuthDialog)\n/* harmony export */ });\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _global_controls_height__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../global/controls-height */ \"./src/global/controls-height.tsx\");\n/* harmony import */ var _login_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./login-dialog */ \"./src/login-dialog/login-dialog.tsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\nconst containerElement = document.createElement('div');\nconst reactRoot = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);\n\n/**\n * Renders LoginDialog into virtual node to skip maintaining container\n */\nfunction renderLoginDialog(props) {\n reactRoot.render( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.ControlsHeightContext.Provider, {\n value: (0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.getGlobalControlsHeight)(),\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_login_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n ...props\n })\n }));\n}\nfunction noop() {}\nfunction showAuthDialog(props = {\n onCancel: noop\n}) {\n renderLoginDialog({\n ...props,\n show: true\n });\n return () => {\n renderLoginDialog({\n ...props,\n show: false\n });\n };\n}\n\n//# sourceURL=webpack://@jetbrains/ring-ui/./src/login-dialog/service.tsx?"); /***/ }), diff --git a/release-6.x/header-header-stories.7cbb3892.iframe.bundle.js b/release-6.x/header-header-stories.5d1a1ada.iframe.bundle.js similarity index 50% rename from release-6.x/header-header-stories.7cbb3892.iframe.bundle.js rename to release-6.x/header-header-stories.5d1a1ada.iframe.bundle.js index 8d437ebded3..180f56d378e 100644 --- a/release-6.x/header-header-stories.7cbb3892.iframe.bundle.js +++ b/release-6.x/header-header-stories.5d1a1ada.iframe.bundle.js @@ -1 +1 @@ -(globalThis.webpackChunk_jetbrains_ring_ui=globalThis.webpackChunk_jetbrains_ring_ui||[]).push([[4370],{"./src/header/header.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>header_stories,header:()=>header_stories_header});var react=__webpack_require__("./node_modules/react/index.js"),hub=__webpack_require__("./node_modules/@jetbrains/logos/hub/hub.svg"),hub_default=__webpack_require__.n(hub),hub_text=__webpack_require__("./node_modules/@jetbrains/logos/hub/hub-text.svg"),hub_text_default=__webpack_require__.n(hub_text),add_20px=__webpack_require__("./node_modules/@jetbrains/icons/add-20px.js"),add_20px_default=__webpack_require__.n(add_20px),gift_20px=__webpack_require__("./node_modules/@jetbrains/icons/gift-20px.js"),gift_20px_default=__webpack_require__.n(gift_20px),help_20px=__webpack_require__("./node_modules/@jetbrains/icons/help-20px.js"),help_20px_default=__webpack_require__.n(help_20px),search_20px=__webpack_require__("./node_modules/@jetbrains/icons/search-20px.js"),search_20px_default=__webpack_require__.n(search_20px),settings_20px=__webpack_require__("./node_modules/@jetbrains/icons/settings-20px.js"),settings_20px_default=__webpack_require__.n(settings_20px),hub_config=__webpack_require__("./.storybook/hub-config.ts"),link_link=__webpack_require__("./src/link/link.tsx"),dropdown_menu=__webpack_require__("./src/dropdown-menu/dropdown-menu.tsx"),auth_dialog_service=__webpack_require__("./src/auth-dialog-service/auth-dialog-service.tsx"),global_theme=__webpack_require__("./src/global/theme.tsx"),auth_auth=__webpack_require__("./src/auth/auth.ts"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),classnames=__webpack_require__("./node_modules/classnames/index.js"),classnames_default=__webpack_require__.n(classnames),header_header=__webpack_require__("./src/header/header.css"),header_default=__webpack_require__.n(header_header),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class Header extends react.Component{static propTypes={className:prop_types_default().string,children:prop_types_default().node,spaced:prop_types_default().bool};static defaultProps={spaced:!0,theme:global_theme.Ay.DARK};render(){const{children,className,spaced,theme,...restProps}=this.props,classes=classnames_default()(header_default().header,className,{[header_default().headerSpaced]:spaced}),overrideOuterTheme=theme!==global_theme.Ay.LIGHT,header=(0,jsx_runtime.jsx)("header",{...restProps,className:classes,children});return overrideOuterTheme?(0,jsx_runtime.jsx)(global_theme.NP,{theme,children:header}):header}}const header=Header;Header.__docgenInfo={description:"Displays a configurable page header. See available presentation options in the knobs panel.",methods:[],displayName:"Header",props:{spaced:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1},type:{name:"bool"}},theme:{required:!1,tsType:{name:"Theme"},description:"",defaultValue:{value:"Theme.DARK",computed:!0}},className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1}},composes:["HTMLAttributes"]};var icon_constants=__webpack_require__("./src/icon/icon__constants.ts"),icon=__webpack_require__("./src/icon/icon.tsx");class Logo extends react.PureComponent{static propTypes={className:prop_types_default().string};static defaultProps={size:icon_constants.o.Size48,suppressSizeWarning:!0};static Size=icon_constants.o;render(){const{className,...restProps}=this.props,classes=classnames_default()(header_default().logo,className);return(0,jsx_runtime.jsx)("div",{className:classes,children:(0,jsx_runtime.jsx)(icon.Ay,{...restProps})})}}Logo.__docgenInfo={description:"",methods:[],displayName:"Logo",props:{size:{defaultValue:{value:"Size.Size48",computed:!0},required:!1},suppressSizeWarning:{defaultValue:{value:"true",computed:!1},required:!1},className:{description:"",type:{name:"string"},required:!1}}};const wrapChild=child=>child&&(0,jsx_runtime.jsx)("div",{className:header_default().trayItem,children:child});class Tray extends react.Component{static propTypes={className:prop_types_default().string,children:prop_types_default().node};render(){const{children,className,...restProps}=this.props,classes=classnames_default()(header_default().tray,className);return(0,jsx_runtime.jsx)("div",{...restProps,className:classes,children:react.Children.map(children,wrapChild)})}}Tray.__docgenInfo={description:"",methods:[],displayName:"Tray",props:{className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1}}};var button_button=__webpack_require__("./src/button/button.tsx");class TrayIcon extends react.Component{static propTypes={...button_button.Ay.propTypes,icon:prop_types_default().oneOfType([prop_types_default().string,prop_types_default().elementType]).isRequired,rotatable:prop_types_default().bool};render(){const{className,rotatable,...restProps}=this.props,classes=classnames_default()(header_default().icon,className,{[header_default().rotatable]:rotatable,[header_default().rotated]:rotatable&&restProps.active});return(0,jsx_runtime.jsx)(button_button.Ay,{...restProps,className:classes})}}TrayIcon.__docgenInfo={description:"",methods:[],displayName:"TrayIcon",props:{icon:{required:!0,tsType:{name:"union",raw:"string | IconType",elements:[{name:"string"},{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"}]},description:"",type:{name:"union",value:[{name:"string"},{name:"elementType"}]}},rotatable:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},active:{description:"",type:{name:"bool"},required:!1},danger:{description:"",type:{name:"bool"},required:!1},delayed:{description:"",type:{name:"bool"},required:!1},loader:{description:"",type:{name:"bool"},required:!1},primary:{description:"",type:{name:"bool"},required:!1},short:{description:"",type:{name:"bool"},required:!1},text:{description:"",type:{name:"bool"},required:!1},inline:{description:"",type:{name:"bool"},required:!1},dropdown:{description:"",type:{name:"bool"},required:!1},href:{description:"",type:{name:"string"},required:!1},target:{description:"",type:{name:"string"},required:!1},iconSize:{description:"",type:{name:"number"},required:!1},iconClassName:{description:"",type:{name:"string"},required:!1},iconSuppressSizeWarning:{description:"",type:{name:"bool"},required:!1},className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1},onClick:{description:"",type:{name:"func"},required:!1}}};var http=__webpack_require__("./src/http/http.ts"),services_20px=__webpack_require__("./node_modules/@jetbrains/icons/services-20px.js"),services_20px_default=__webpack_require__.n(services_20px),dropdown=__webpack_require__("./src/dropdown/dropdown.tsx"),popup=__webpack_require__("./src/popup/popup.tsx"),variables_dark=__webpack_require__("./src/global/variables_dark.css"),variables_dark_default=__webpack_require__.n(variables_dark),header_services=__webpack_require__("./src/header/services.css"),services_default=__webpack_require__.n(header_services);class ServicesLink extends react.PureComponent{static propTypes={isActive:prop_types_default().bool,service:prop_types_default().shape({applicationName:prop_types_default().string,iconUrl:prop_types_default().string,homeUrl:prop_types_default().string,name:prop_types_default().string})};render(){const{service,...props}=this.props;return(0,jsx_runtime.jsx)(link_link.A,{target:"_self",href:service.homeUrl,...props,children:service.iconUrl?[(0,jsx_runtime.jsx)("span",{className:services_default().itemLogo,style:{backgroundImage:`url(${service.iconUrl})`}},"icon"),(0,jsx_runtime.jsx)("div",{children:service.name},"text")]:service.name})}}ServicesLink.__docgenInfo={description:"",methods:[],displayName:"ServicesLink",props:{service:{required:!1,tsType:{name:"Service"},description:"",type:{name:"shape",value:{applicationName:{name:"string",required:!1},iconUrl:{name:"string",required:!1},homeUrl:{name:"string",required:!1},name:{name:"string",required:!1}}}},isActive:{description:"",type:{name:"bool"},required:!1}},composes:["Partial"]};const makeAnchor=loading=>{const Anchor=({active})=>(0,jsx_runtime.jsx)(TrayIcon,{loader:loading,active,icon:services_20px_default(),"aria-label":"Services"});return Anchor.propTypes={active:prop_types_default().bool},Anchor};class Services extends react.PureComponent{static sort=(a,b)=>{const aApplicationName=a.applicationName||"",bApplicationName=b.applicationName||"";return aApplicationName.localeCompare(bApplicationName)||a.name.localeCompare(b.name)};static propTypes={className:prop_types_default().string,clientId:prop_types_default().string,initShown:prop_types_default().bool,loading:prop_types_default().bool,onClick:prop_types_default().func,services:prop_types_default().arrayOf(ServicesLink.propTypes.service)};static defaultProps={theme:global_theme.Ay.DARK};static Link=ServicesLink;serviceIsActive=service=>service.id===this.props.clientId;render(){const{clientId,loading,services,initShown,theme,...props}=this.props;if(!services)return(0,jsx_runtime.jsx)(TrayIcon,{...props,loader:loading,active:loading,icon:services_20px_default(),"aria-label":"Services"});const sortedServices=[...services].sort(Services.sort),servicesWithIcons=sortedServices.filter((service=>service.iconUrl&&service.homeUrl)),servicesWithOutIcons=sortedServices.filter((service=>!service.iconUrl&&service.homeUrl)),separatorIsRequired=0!==servicesWithIcons.length&&0!==servicesWithOutIcons.length;return(0,jsx_runtime.jsx)(dropdown.A,{...props,anchor:makeAnchor(loading),initShown,children:(0,jsx_runtime.jsxs)(popup.Ay,{className:classnames_default()(services_default().services,{[variables_dark_default().dark]:theme===global_theme.Ay.DARK}),top:-3,children:[servicesWithIcons.map((service=>{const isActive=this.serviceIsActive(service);return(0,jsx_runtime.jsx)(Services.Link,{active:isActive,className:isActive?services_default().activeItem:services_default().item,service},service.id)})),separatorIsRequired&&(0,jsx_runtime.jsx)("div",{className:services_default().line},"separator"),servicesWithOutIcons.map((service=>{const isActive=this.serviceIsActive(service);return(0,jsx_runtime.jsx)(Services.Link,{active:isActive,className:isActive?services_default().activeItemStacked:services_default().itemStacked,service},service.id)}))]})})}}function noop(){}Services.__docgenInfo={description:"",methods:[{name:"sort",docblock:null,modifiers:["static"],params:[{name:"a",optional:!1,type:{name:"Service",alias:"Service"}},{name:"b",optional:!1,type:{name:"Service",alias:"Service"}}],returns:null},{name:"serviceIsActive",docblock:null,modifiers:[],params:[{name:"service",optional:!1,type:{name:"Service",alias:"Service"}}],returns:null}],displayName:"Services",props:{theme:{required:!1,tsType:{name:"Theme"},description:"",defaultValue:{value:"Theme.DARK",computed:!0}},clientId:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},initShown:{required:!1,tsType:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}]},description:"",type:{name:"bool"}},loading:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},services:{required:!1,tsType:{name:"union",raw:"Service[] | null | undefined",elements:[{name:"Array",elements:[{name:"Service"}],raw:"Service[]"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"arrayOf",value:{name:"custom",raw:"ServicesLink.propTypes.service"}}},className:{description:"",type:{name:"string"},required:!1},onClick:{description:"",type:{name:"func"},required:!1}},composes:["HTMLAttributes"]};class SmartServices extends react.Component{static propTypes={auth:prop_types_default().instanceOf(auth_auth.Ay).isRequired};state={visible:!0,loading:!1,services:null};componentDidMount(){const{auth}=this.props;this.http=new http.Ay(auth,auth.getAPIPath()),this.getServices(SmartServices.countFields)?.then((services=>{services.length||this.setState({visible:!1})})).catch(noop)}static allFields="id,name,applicationName,homeUrl,iconUrl";static countFields="key";http;stopLoading=()=>{this.setState({loading:!1})};getServicesContent=()=>{this.setState({loading:!0}),this.getServices(SmartServices.allFields)?.then((services=>{this.setState({services}),this.stopLoading()})).catch(this.stopLoading)};getServices(fields){return this.http?.get(`services/header?fields=${fields}`)}render(){const{services,visible,loading}=this.state,{auth,...props}=this.props;return visible?(0,jsx_runtime.jsx)(Services,{...props,clientId:auth.config.clientId,initShown:!0,loading,onClick:this.getServicesContent,services}):null}}SmartServices.__docgenInfo={description:"",methods:[{name:"stopLoading",docblock:null,modifiers:[],params:[],returns:null},{name:"getServicesContent",docblock:null,modifiers:[],params:[],returns:null},{name:"getServices",docblock:null,modifiers:[],params:[{name:"fields",optional:!1,type:{name:"string"}}],returns:null}],displayName:"SmartServices",props:{auth:{required:!0,tsType:{name:"Auth"},description:"",type:{name:"instanceOf",value:"Auth"}}},composes:["HTMLAttributes"]};var auth_core=__webpack_require__("./src/auth/auth__core.ts"),alert_service=__webpack_require__("./src/alert-service/alert-service.tsx"),avatar=__webpack_require__("./src/avatar/avatar.tsx"),popup_menu=__webpack_require__("./src/popup-menu/popup-menu.tsx"),i18n_context=__webpack_require__("./src/i18n/i18n-context.tsx"),typescript_utils=__webpack_require__("./src/global/typescript-utils.ts");const rgItemType=popup_menu.A.ListProps.Type.LINK;class Profile extends react.PureComponent{static propTypes={className:prop_types_default().string,activeClassName:prop_types_default().string,closeOnSelect:prop_types_default().bool,hasUpdates:prop_types_default().bool,loading:prop_types_default().bool,onLogin:prop_types_default().func,onLogout:prop_types_default().func,onSwitchUser:prop_types_default().func,profileUrl:prop_types_default().string,renderPopupItems:prop_types_default().func,LinkComponent:prop_types_default().oneOfType([prop_types_default().instanceOf(react.Component),prop_types_default().func,prop_types_default().string]),translations:prop_types_default().shape({profile:prop_types_default().string,login:prop_types_default().string,logout:prop_types_default().string,applyChangedUser:prop_types_default().string,switchUser:prop_types_default().string}),user:prop_types_default().shape({guest:prop_types_default().bool,profile:prop_types_default().object,name:prop_types_default().string}),size:prop_types_default().number,round:prop_types_default().bool,showName:prop_types_default().bool,showLogIn:prop_types_default().bool,showLogOut:prop_types_default().bool,showSwitchUser:prop_types_default().bool,showApplyChangedUser:prop_types_default().bool,onRevertPostponement:prop_types_default().func,renderGuest:prop_types_default().func,menuProps:prop_types_default().object,onShow:prop_types_default().func,onHide:prop_types_default().func};static defaultProps={closeOnSelect:!0,renderPopupItems:items=>items,size:avatar.o.Size32,renderGuest:({loading,onLogin,className,translations})=>(0,jsx_runtime.jsx)(i18n_context.g.Consumer,{children:({translate})=>{var _translations$login;return(0,jsx_runtime.jsx)("div",{className:classnames_default()(header_default().profileEmpty,className),children:(0,jsx_runtime.jsx)(button_button.Ay,{primary:!0,"data-test":"ring-header-login-button",disabled:loading,loader:loading,onClick:onLogin,children:null!==(_translations$login=translations?.login)&&void 0!==_translations$login?_translations$login:translate("login")})})}})};static contextType=i18n_context.g;static Size=avatar.o;render(){var _translations$applyCh,_translations$login2,_translations$profile,_translations$switchU,_translations$logout;const{className,activeClassName,closeOnSelect,hasUpdates,onLogout,user,profileUrl,LinkComponent,onSwitchUser,renderPopupItems,onRevertPostponement,showApplyChangedUser,showName,showLogIn,showLogOut,showSwitchUser,renderGuest,translations,size,round,loading,onLogin,menuProps,onShow,onHide,...props}=this.props,{translate}=this.context;if(!user)return(0,jsx_runtime.jsx)("div",{...props,className:classnames_default()(header_default().profileEmpty,className),children:(0,jsx_runtime.jsx)(avatar.A,{size,round})});if(user.guest)return renderGuest(this.props);const avatarWrapper=classnames_default()(header_default().avatarWrapper,{[header_default().hasUpdates]:hasUpdates}),anchor=(0,jsx_runtime.jsxs)("button",{type:"button",className:header_default().anchorClassName,children:[(0,jsx_runtime.jsx)("span",{className:avatarWrapper,children:(0,jsx_runtime.jsx)(avatar.A,{url:user.profile&&user.profile.avatar&&user.profile.avatar.url,size,round})}),showName&&(0,jsx_runtime.jsx)("span",{children:user.name})]}),items=[showApplyChangedUser&&{rgItemType,label:null!==(_translations$applyCh=translations?.applyChangedUser)&&void 0!==_translations$applyCh?_translations$applyCh:translate("applyChangedUser"),className:header_default().profileMenuItem,onClick:onRevertPostponement},showLogIn&&{rgItemType,label:null!==(_translations$login2=translations?.login)&&void 0!==_translations$login2?_translations$login2:translate("login"),className:header_default().profileMenuItem,onClick:onRevertPostponement},{rgItemType:popup_menu.A.ListProps.Type.LINK,label:null!==(_translations$profile=translations?.profile)&&void 0!==_translations$profile?_translations$profile:translate("profile"),target:"_self",href:profileUrl,LinkComponent},showSwitchUser&&{rgItemType,label:null!==(_translations$switchU=translations?.switchUser)&&void 0!==_translations$switchU?_translations$switchU:translate("switchUser"),className:header_default().profileMenuItem,onClick:onSwitchUser},showLogOut&&{rgItemType,label:null!==(_translations$logout=translations?.logout)&&void 0!==_translations$logout?_translations$logout:translate("logout"),onClick:onLogout}].filter(typescript_utils.z);return(0,jsx_runtime.jsx)(dropdown_menu.A,{...props,onShow,onHide,title:user.name,anchor,data:renderPopupItems(items),"data-test":"ring-profile",className:classnames_default()(header_default().profile,className),activeClassName,menuProps:{closeOnSelect,left:-2,top:-8,sidePadding:32,...menuProps}})}}Profile.__docgenInfo={description:"",methods:[],displayName:"Profile",props:{closeOnSelect:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1},type:{name:"bool"}},renderPopupItems:{required:!1,tsType:{name:"signature",type:"function",raw:"(items: ListDataItem[]) => readonly ListDataItem[]",signature:{arguments:[{type:{name:"Array",elements:[{name:"intersection",raw:"T & Partial> & {\n rgItemType?: Type | null | undefined\n key?: string | number | null | undefined\n disabled?: boolean | undefined\n details?: string | null | undefined\n hoverClassName?: string | null | undefined\n compact?: boolean | null | undefined\n className?: string | null | undefined\n url?: string | undefined\n showGeneratedAvatar?: boolean | null | undefined\n username?: string | null | undefined\n avatar?: string | null | undefined\n subavatar?: string | null | undefined\n glyph?: IconType | string | null | undefined\n icon?: string | undefined\n iconSize?: Size | null | undefined\n suppressSizeWarning?: boolean | null | undefined\n rightGlyph?: IconType | string | null | undefined\n title?: string | null | undefined\n level?: number | null | undefined\n checkbox?: boolean | undefined\n description?: ReactNode\n label?: ReactNode\n rightNodes?: ReactNode\n leftNodes?: ReactNode\n tagName?: keyof JSX.IntrinsicElements | null | undefined\n selectedLabel?: string | null | undefined,\n originalModel?: never\n LinkComponent?: ComponentType | string | null | undefined\n template?: ReactNode | ((props: ListDataItemProps) => ReactNode)\n labelWrapper?: (children: ReactNode) => ReactElement\n custom?: boolean | null | undefined\n onClick?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n onMouseUp?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n}",elements:[{name:"T"},{name:"Partial",elements:[{name:"Omit",elements:[{name:"intersection",raw:"Omit & LinkBaseProps",elements:[{name:"Omit",elements:[{name:"P"},{name:"LinkBaseProps"}],raw:"Omit"},{name:"LinkBaseProps"}]},{name:"union",raw:"'onClick' | 'onMouseUp'",elements:[{name:"literal",value:"'onClick'"},{name:"literal",value:"'onMouseUp'"}]}],raw:"Omit"}],raw:"Partial>"},{name:"signature",type:"object",raw:"{\n rgItemType?: Type | null | undefined\n key?: string | number | null | undefined\n disabled?: boolean | undefined\n details?: string | null | undefined\n hoverClassName?: string | null | undefined\n compact?: boolean | null | undefined\n className?: string | null | undefined\n url?: string | undefined\n showGeneratedAvatar?: boolean | null | undefined\n username?: string | null | undefined\n avatar?: string | null | undefined\n subavatar?: string | null | undefined\n glyph?: IconType | string | null | undefined\n icon?: string | undefined\n iconSize?: Size | null | undefined\n suppressSizeWarning?: boolean | null | undefined\n rightGlyph?: IconType | string | null | undefined\n title?: string | null | undefined\n level?: number | null | undefined\n checkbox?: boolean | undefined\n description?: ReactNode\n label?: ReactNode\n rightNodes?: ReactNode\n leftNodes?: ReactNode\n tagName?: keyof JSX.IntrinsicElements | null | undefined\n selectedLabel?: string | null | undefined,\n originalModel?: never\n LinkComponent?: ComponentType | string | null | undefined\n template?: ReactNode | ((props: ListDataItemProps) => ReactNode)\n labelWrapper?: (children: ReactNode) => ReactElement\n custom?: boolean | null | undefined\n onClick?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n onMouseUp?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n}",signature:{properties:[{key:"rgItemType",value:{name:"union",raw:"Type | null | undefined",elements:[{name:"Type"},{name:"null"},{name:"undefined"}],required:!1}},{key:"key",value:{name:"union",raw:"string | number | null | undefined",elements:[{name:"string"},{name:"number"},{name:"null"},{name:"undefined"}],required:!1}},{key:"disabled",value:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}],required:!1}},{key:"details",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"hoverClassName",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"compact",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"className",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"url",value:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}],required:!1}},{key:"showGeneratedAvatar",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"username",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"avatar",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"subavatar",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"glyph",value:{name:"union",raw:"IconType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"icon",value:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}],required:!1}},{key:"iconSize",value:{name:"union",raw:"Size | null | undefined",elements:[{name:"Size"},{name:"null"},{name:"undefined"}],required:!1}},{key:"suppressSizeWarning",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"rightGlyph",value:{name:"union",raw:"IconType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"title",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"level",value:{name:"union",raw:"number | null | undefined",elements:[{name:"number"},{name:"null"},{name:"undefined"}],required:!1}},{key:"checkbox",value:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}],required:!1}},{key:"description",value:{name:"ReactNode",required:!1}},{key:"label",value:{name:"ReactNode",required:!1}},{key:"rightNodes",value:{name:"ReactNode",required:!1}},{key:"leftNodes",value:{name:"ReactNode",required:!1}},{key:"tagName",value:{name:"union",raw:"keyof JSX.IntrinsicElements | null | undefined",elements:[{name:"JSX.IntrinsicElements"},{name:"null"},{name:"undefined"}],required:!1}},{key:"selectedLabel",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"originalModel",value:{name:"never",required:!1}},{key:"LinkComponent",value:{name:"union",raw:"ComponentType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"ClickableLinkProps"}],raw:"ComponentType"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"template",value:{name:"union",raw:"ReactNode | ((props: ListDataItemProps) => ReactNode)",elements:[{name:"ReactNode"},{name:"unknown"}],required:!1}},{key:"labelWrapper",value:{name:"signature",type:"function",raw:"(children: ReactNode) => ReactElement",signature:{arguments:[{type:{name:"ReactNode"},name:"children"}],return:{name:"ReactElement"}},required:!1}},{key:"custom",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"onClick",value:{name:"union",raw:"| ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n| null\n| undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}],required:!1}},{key:"onMouseUp",value:{name:"union",raw:"| ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n| null\n| undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}],required:!1}}]}}]}],raw:"ListDataItem[]"},name:"items"}],return:{name:"unknown"}}},description:"",defaultValue:{value:"items => items",computed:!1},type:{name:"func"}},translations:{required:!1,tsType:{name:"union",raw:"ProfileTranslations | null | undefined",elements:[{name:"ProfileTranslations"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"shape",value:{profile:{name:"string",required:!1},login:{name:"string",required:!1},logout:{name:"string",required:!1},applyChangedUser:{name:"string",required:!1},switchUser:{name:"string",required:!1}}}},size:{required:!1,tsType:{name:"Size"},description:"",defaultValue:{value:"Size.Size32",computed:!0},type:{name:"number"}},renderGuest:{required:!1,tsType:{name:"signature",type:"function",raw:"(props: ProfileProps) => ReactNode",signature:{arguments:[{type:{name:"ProfileProps"},name:"props"}],return:{name:"ReactNode"}}},description:"",defaultValue:{value:"({loading, onLogin, className, translations}) => (\n \n {({translate}) => (\n \n \n {translations?.login ?? translate('login')}\n \n
\n )}\n \n)",computed:!1},type:{name:"func"}},hasUpdates:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},loading:{required:!1,tsType:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}]},description:"",type:{name:"bool"}},onLogin:{required:!1,tsType:{name:"union",raw:"(() => void) | undefined",elements:[{name:"unknown"},{name:"undefined"}]},description:"",type:{name:"func"}},onLogout:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},onSwitchUser:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},profileUrl:{required:!1,tsType:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}]},description:"",type:{name:"string"}},LinkComponent:{required:!1,tsType:{name:"union",raw:"ComponentType | null | undefined",elements:[{name:"ComponentType",elements:[{name:"ClickableLinkProps"}],raw:"ComponentType"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"union",value:[{name:"instanceOf",value:"Component"},{name:"func"},{name:"string"}]}},user:{required:!1,tsType:{name:"union",raw:"AuthUser | null | undefined | void",elements:[{name:"AuthUser"},{name:"null"},{name:"undefined"},{name:"void"}]},description:"",type:{name:"shape",value:{guest:{name:"bool",required:!1},profile:{name:"object",required:!1},name:{name:"string",required:!1}}}},round:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showName:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showLogIn:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showLogOut:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showSwitchUser:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showApplyChangedUser:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},onRevertPostponement:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},menuProps:{required:!1,tsType:{name:"union",raw:"PopupMenuAttrs | null | undefined",elements:[{name:"JSX.LibraryManagedAttributes",elements:[{name:"PopupMenu"},{name:"PopupMenuProps",elements:[{name:"T"}],raw:"PopupMenuProps"}],raw:"JSX.LibraryManagedAttributes>"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"object"}},activeClassName:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},onShow:{required:!1,tsType:{name:"unknown"},description:"",type:{name:"func"}},onHide:{required:!1,tsType:{name:"unknown"},description:"",type:{name:"func"}},className:{description:"",type:{name:"string"},required:!1}},composes:["Omit"]};class SmartProfile extends react.PureComponent{static propTypes={auth:prop_types_default().instanceOf(auth_auth.Ay).isRequired,className:prop_types_default().string,translations:prop_types_default().object,profileUrl:prop_types_default().string,size:Profile.propTypes.size,round:Profile.propTypes.round};state={user:null,size:Profile.defaultProps.size,isLogoutPostponed:!1,isUserChangePostponed:!1};componentDidMount(){this.requestUser()}static Size=Profile.Size;login=async()=>{this.setState({loading:!0});try{await this.props.auth.login()}catch(err){}finally{this.setState({loading:!1})}};logout=()=>this.props.auth.logout();switchUser=()=>this.props.auth.switchUser();onRevertPostponement=()=>{this.state.isLogoutPostponed&&this.props.auth.login(),this.state.isUserChangePostponed&&this.props.auth.updateUser()};async requestUser(){try{const{auth}=this.props,user=await auth.requestUser();this.checkUserCertificateMismatch(user),this.setState({user}),auth.addListener(auth_core.yb,(newUser=>{this.setState({user:newUser,isLogoutPostponed:!1,isUserChangePostponed:!1})})),auth.addListener(auth_core.xi,(()=>{this.setState({isLogoutPostponed:!0})})),auth.addListener(auth_core.zz,(()=>{this.setState({isUserChangePostponed:!0})}))}catch(e){}}checkUserCertificateMismatch(user){const{auth,translations}=this.props,userMeta=auth.http.getMetaForResponse(user);if(userMeta?.headers?.has("x-client-certificate-token-mismatch")){const message=translations?.certificateMismatch||`You are authenticated as ${user.login||user.name}. To authenticate with the client certificate for your account, log out, then click the "Log in with certificate" option on the login page.`;alert_service.A.warning(message,0)}}render(){const{user,loading,isLogoutPostponed,isUserChangePostponed}=this.state,{auth,profileUrl,...props}=this.props,url=profileUrl||(user?`${auth.config.serverUri}users/${user.id}`:"");return(0,jsx_runtime.jsx)(Profile,{onLogin:this.login,onLogout:this.logout,onSwitchUser:this.switchUser,loading,user,profileUrl:url,showApplyChangedUser:isUserChangePostponed,showLogIn:isLogoutPostponed,showLogOut:!isLogoutPostponed,showSwitchUser:auth._canShowDialogs()&&!isLogoutPostponed&&!isUserChangePostponed,onRevertPostponement:this.onRevertPostponement,...props})}}SmartProfile.__docgenInfo={description:"",methods:[{name:"login",docblock:null,modifiers:["async"],params:[],returns:null},{name:"logout",docblock:null,modifiers:[],params:[],returns:null},{name:"switchUser",docblock:null,modifiers:[],params:[],returns:null},{name:"onRevertPostponement",docblock:null,modifiers:[],params:[],returns:null},{name:"requestUser",docblock:null,modifiers:["async"],params:[],returns:null},{name:"checkUserCertificateMismatch",docblock:null,modifiers:[],params:[{name:"user",optional:!1,type:{name:"AuthUser",alias:"AuthUser"}}],returns:null}],displayName:"SmartProfile",props:{auth:{required:!0,tsType:{name:"Auth"},description:"",type:{name:"instanceOf",value:"Auth"}},className:{description:"",type:{name:"string"},required:!1},translations:{description:"",type:{name:"object"},required:!1},profileUrl:{description:"",type:{name:"string"},required:!1},size:{description:"",type:{name:"custom",raw:"Profile.propTypes.size"},required:!1},round:{description:"",type:{name:"custom",raw:"Profile.propTypes.round"},required:!1}}};const blockAuth=window.location.search.includes("block-auth"),header_stories={title:"Components/Header",component:header,parameters:{storyStyles:"\n",zeplinLink:"https://app.zeplin.io/project/5afd8f5511c2d1c625752bb0/screen/6193bc71a88a41a987ba9918"},tags:["skip-test"]},header_stories_header=({isCompact,dark,...args})=>{class HeaderDemo extends react.Component{render(){const auth=new auth_auth.Ay(hub_config.A);blockAuth||(auth.setAuthDialogService(auth_dialog_service.A),auth.init());return(0,jsx_runtime.jsxs)(header,{...args,theme:dark?global_theme.Ay.DARK:global_theme.Ay.LIGHT,className:isCompact?"compactHeader":"",children:[(0,jsx_runtime.jsx)("a",{title:"Hub",href:"/",children:isCompact?(0,jsx_runtime.jsx)(Logo,{className:"compactLogo",glyph:hub_text_default(),size:Logo.Size.Size96}):(0,jsx_runtime.jsx)(Logo,{glyph:hub_default(),size:Logo.Size.Size48})}),(0,jsx_runtime.jsx)(link_link.A,{active:!0,href:"#",children:"Users"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Groups"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Spaces"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Services"}),(0,jsx_runtime.jsxs)(Tray,{children:[(0,jsx_runtime.jsx)(TrayIcon,{primary:!0,title:"Create issue",icon:add_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"Help",icon:help_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"What's new",icon:gift_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"Search",icon:search_20px_default()}),(0,jsx_runtime.jsx)(dropdown_menu.A,{data:[{label:"Test"},{label:"Test2"}],anchor:({active},ariaProps)=>(0,jsx_runtime.jsx)(TrayIcon,{title:"Settings",active,icon:settings_20px_default(),...ariaProps}),menuProps:{top:-12}}),(0,jsx_runtime.jsx)(SmartServices,{auth}),(0,jsx_runtime.jsx)(SmartProfile,{auth,hasUpdates:!0,LinkComponent:props=>(0,jsx_runtime.jsx)("a",{...props,children:"This is component"})})]})]})}}return(0,jsx_runtime.jsx)(HeaderDemo,{})};header_stories_header.parameters={notes:"See available presentation options in knobs panel"},header_stories_header.args={isCompact:!1,dark:!0},header_stories_header.parameters={storyStyles:"\n"},header_stories_header.parameters={...header_stories_header.parameters,docs:{...header_stories_header.parameters?.docs,source:{originalSource:'({\n isCompact,\n dark,\n ...args\n}) => {\n class HeaderDemo extends Component {\n render() {\n const auth = new Auth(hubConfig);\n if (!blockAuth) {\n auth.setAuthDialogService(showAuthDialog);\n auth.init();\n }\n const Comp = (props: ClickableLinkProps) => This is component;\n return
\n \n {isCompact ? : }\n \n \n Users\n \n Groups\n Spaces\n Services\n \n \n \n \n \n } menuProps={{\n top: -12\n }} />\n \n \n \n
;\n }\n }\n return ;\n}',...header_stories_header.parameters?.docs?.source}}}},"./src/auth-dialog-service/auth-dialog-service.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>showAuthDialog});var react_dom_client__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react-dom/client.js"),_global_controls_height__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/global/controls-height.tsx"),_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/auth-dialog/auth-dialog.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const containerElement=document.createElement("div"),reactRoot=(0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);function renderAuthDialog(props){reactRoot.render((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.VJ.Provider,{value:(0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.jT)(),children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__.A,{...props})}))}function showAuthDialog(props={}){return renderAuthDialog({...props,show:!0}),()=>{renderAuthDialog({show:!1})}}},"./src/i18n/i18n-context.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{g:()=>I18nContext,i:()=>I18nContextHolder});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),_i18n__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/i18n/i18n.ts"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const I18nContext=react__WEBPACK_IMPORTED_MODULE_0__.createContext({messages:(0,_i18n__WEBPACK_IMPORTED_MODULE_2__.$)(),translate:_i18n__WEBPACK_IMPORTED_MODULE_2__.Tl}),I18nContextHolder=({children,messages})=>((0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{(0,_i18n__WEBPACK_IMPORTED_MODULE_2__.Lw)(messages)}),[messages]),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(I18nContext.Provider,{value:{messages,translate:_i18n__WEBPACK_IMPORTED_MODULE_2__.Tl},children}));I18nContextHolder.__docgenInfo={description:"",methods:[],displayName:"I18nContextHolder",props:{messages:{required:!0,tsType:{name:"Partial",elements:[{name:"defaultMessages"}],raw:"Partial"},description:""},children:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""}}}},"./src/i18n/i18n.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>getTranslations,xO:()=>getTranslationsWithFallback,Lw:()=>setTranslations,Tl:()=>translate});const messages_namespaceObject=JSON.parse('{"login":"Log in","logout":"Log out","loginTo":"Log in to {{serviceName}}","ok":"OK","cancel":"Cancel","tryAgainLabel":"Try again","postpone":"Postpone","youHaveLoggedInAs":"You have logged in as another user: {{userName}}","applyChange":"Apply change","backendIsNotAvailable":"Connection lost","checkAgain":"try again","nothingHappensLink":"Click here if nothing happens","errorMessage":"There may be a problem with your network connection. Make sure that you are online and","applyChangedUser":"Apply changed user","profile":"Profile","switchUser":"Switch user","addFirstDate":"Add first date","addSecondDate":"Add second date","addTime":"Add time","selectName":"Select {{name}}","setDate":"Set a date","setDateTime":"Set date and time","setPeriod":"Set a period","clear":"Clear input","gotIt":"Got it","dismiss":"Dismiss","perPage":"per page","firstPage":"First page","lastPage":"Last page","nextPage":"Next page","previousPage":"Previous","searchTitle":"Search","clearTitle":"Clear search input","userAgreement":"User Agreement","accept":"Accept","decline":"Decline","close":"Close","scrollToAccept":"View the entire agreement to continue","remindLater":"Remind me later","filterItems":"Filter items","selectOption":"Select an option","progress":"Progress","loading":"Loading...","noOptionsFound":"No options found","banned":"banned","online":"online","offline":"offline","copyToClipboard":"Copy email to clipboard","copiedToClipboard":"Email was copied to clipboard","copingToClipboardError":"Failed to copy to clipboard","unverified":"Unverified"}');let messages=messages_namespaceObject;const warned=new Set;function setTranslations(newMessages){messages=newMessages}function getTranslations(){return messages}function getTranslationsWithFallback(){return{...messages_namespaceObject,...messages}}function translate(key){var _messages$key;return key in messages||function warnMissedKeyOnce(key){warned.has(key)||(warned.add(key),console.warn(`Missing localisation for key "${key}"`))}(key),null!==(_messages$key=messages[key])&&void 0!==_messages$key?_messages$key:messages_namespaceObject[key]}},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/header.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables_dark.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/global.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_5__.default),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default,"",!0),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default,"",!0),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__.default,"",!0),___CSS_LOADER_EXPORT___.push([module.id,`:root {\n --ring-header-link-color: var(--ring-link-color);\n}\n\n.${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default.locals.dark},\n.ring-ui-theme-dark {\n --ring-header-link-color: var(--ring-text-color);\n}\n\n.header_a3ab {\n display: flex;\n overflow: hidden;\n align-items: center;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit)*8);\n\n color: var(--ring-text-color);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.header_a3ab > * {\n display: inline-block;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit)*8);\n padding: 0 calc(var(--ring-unit)*1.5) 3px;\n }\n\n/* override link */\n\n.header_a3ab .${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.link} {\n color: var(--ring-header-link-color);\n }\n\n.header_a3ab .${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.active} {\n color: var(--ring-active-text-color);\n }\n\n.headerSpaced_f14a > *:first-child {\n padding-left: calc(var(--ring-unit)*4);\n }\n\n.headerSpaced_f14a > *:last-child {\n padding-right: calc(var(--ring-unit)*4);\n }\n\n.logo_a5a6 {\n display: inline-flex;\n align-items: center;\n\n height: calc(var(--ring-unit)*8);\n\n color: var(--ring-navigation-background-color);\n\n line-height: normal;\n}\n\n.logo_a5a6 svg {\n vertical-align: bottom;\n }\n\n.tray_fdd9 {\n align-items: flex-end;\n\n margin-left: auto;\n padding: 0 0 3px;\n}\n\n/* override .header > * */\n.tray_fdd9.tray_fdd9 {\n display: flex;\n}\n\n.trayItemContent_ea62 {\n height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.icon_d6e0 {\n width: calc(var(--ring-unit)*5);\n\n text-align: center;\n\n vertical-align: top;\n}\n\n/* override button */\n.icon_d6e0.icon_d6e0 {\n height: calc(var(--ring-unit)*8 - 3px);\n\n padding-top: calc(var(--ring-unit)/2);\n\n line-height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.main_b5f3 svg {\n color: var(--ring-main-color);\n}\n\n.rotatable_e034 svg {\n transition: transform 0.3s ease-out;\n transform: rotate(0deg);\n transform-origin: 50% 50%;\n}\n\n.rotated_f2a7 svg {\n transform: rotate(90deg);\n}\n\n.profileEmpty_fb73 {\n align-items: center;\n\n width: auto;\n height: calc(var(--ring-unit)*8 - 3px);\n padding-left: var(--ring-unit);\n\n vertical-align: bottom;\n}\n\n/* override dropdown */\n.profileEmpty_fb73.profileEmpty_fb73 {\n display: inline-flex;\n}\n\n.profile_ed45 {\n\n height: calc(var(--ring-unit)*8 - 3px);\n\n cursor: pointer;\n}\n\n.anchorClassName_ec21 {\n\n display: flex;\n align-items: center;\n gap: calc(var(--ring-unit)*1.5);\n}\n\n.avatarWrapper_daf7 {\n line-height: 0;\n}\n\n.hasUpdates_b76c {\n position: relative;\n}\n\n.hasUpdates_b76c::after {\n position: absolute;\n top: calc(15% - 5px);\n right: calc(15% - 5px);\n\n display: block;\n\n width: var(--ring-unit);\n height: var(--ring-unit);\n\n content: "";\n\n border: 1px solid var(--ring-white-text-color);\n border-radius: 50%;\n background-color: var(--ring-link-hover-color);\n }\n`,"",{version:3,sources:["webpack://./src/header/header.css"],names:[],mappings:"AAOA;EACE,gDAAgD;AAClD;;AAEA;;EAEE,gDAAgD;AAClD;;AAEA;EACE,aAAa;EACb,gBAAgB;EAChB,mBAAmB;;EAEnB,sBAAsB;EACtB,gCAAkC;;EAElC,6BAA6B;;EAE7B,yDAAyD;;EAEzD,2CAAwB;AAkB1B;;AAhBE;IACE,qBAAqB;;IAErB,sBAAsB;IACtB,gCAAkC;IAClC,yCAAkD;EACpD;;AAEA,kBAAkB;;AAClB;IACE,oCAAoC;EACtC;;AAEA;IACE,oCAAoC;EACtC;;AAIA;IACE,sCAAwC;EAC1C;;AAEA;IACE,uCAAyC;EAC3C;;AAGF;EACE,oBAAoB;EACpB,mBAAmB;;EAEnB,gCAAkC;;EAElC,8CAA8C;;EAE9C,mBAAmB;AAKrB;;AAHE;IACE,sBAAsB;EACxB;;AAGF;EACE,qBAAqB;;EAErB,iBAAiB;EACjB,gBAAuB;AACzB;;AAEA,yBAAyB;AACzB;EACE,aAAa;AACf;;AAEA;EACE,sCAAmB;AACrB;;AAEA;EACE,+BAAiC;;EAEjC,kBAAkB;;EAElB,mBAAmB;AACrB;;AAEA,oBAAoB;AACpB;EACE,sCAAmB;;EAEnB,qCAAuC;;EAEvC,2CAAwB;AAC1B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,mCAAmC;EACnC,uBAAuB;EACvB,yBAAyB;AAC3B;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,mBAAmB;;EAEnB,WAAW;EACX,sCAAmB;EACnB,8BAA8B;;EAE9B,sBAAsB;AACxB;;AAEA,sBAAsB;AACtB;EACE,oBAAoB;AACtB;;AAEA;;EAGE,sCAAmB;;EAEnB,eAAe;AACjB;;AAEA;;EAGE,aAAa;EACb,mBAAmB;EACnB,+BAAiC;AACnC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;AAkBpB;;AAhBE;IACE,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;;IAEtB,cAAc;;IAEd,uBAAuB;IACvB,wBAAwB;;IAExB,WAAW;;IAEX,8CAA8C;IAC9C,kBAAkB;IAClB,8CAA8C;EAChD",sourcesContent:['@import "../global/variables.css";\n\n@value dark from "../global/variables_dark.css";\n@value link, active from "../link/link.css";\n@value compensate: 3px;\n@value compensated: calc(calc(var(--ring-unit) * 8) - compensate);\n\n:root {\n --ring-header-link-color: var(--ring-link-color);\n}\n\n.dark,\n:global(.ring-ui-theme-dark) {\n --ring-header-link-color: var(--ring-text-color);\n}\n\n.header {\n display: flex;\n overflow: hidden;\n align-items: center;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit) * 8);\n\n color: var(--ring-text-color);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: compensated;\n\n & > * {\n display: inline-block;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit) * 8);\n padding: 0 calc(var(--ring-unit) * 1.5) compensate;\n }\n\n /* override link */\n & .link {\n color: var(--ring-header-link-color);\n }\n\n & .active {\n color: var(--ring-active-text-color);\n }\n}\n\n.headerSpaced {\n & > *:first-child {\n padding-left: calc(var(--ring-unit) * 4);\n }\n\n & > *:last-child {\n padding-right: calc(var(--ring-unit) * 4);\n }\n}\n\n.logo {\n display: inline-flex;\n align-items: center;\n\n height: calc(var(--ring-unit) * 8);\n\n color: var(--ring-navigation-background-color);\n\n line-height: normal;\n\n & svg {\n vertical-align: bottom;\n }\n}\n\n.tray {\n align-items: flex-end;\n\n margin-left: auto;\n padding: 0 0 compensate;\n}\n\n/* override .header > * */\n.tray.tray {\n display: flex;\n}\n\n.trayItemContent {\n height: compensated;\n}\n\n.icon {\n width: calc(var(--ring-unit) * 5);\n\n text-align: center;\n\n vertical-align: top;\n}\n\n/* override button */\n.icon.icon {\n height: compensated;\n\n padding-top: calc(var(--ring-unit) / 2);\n\n line-height: compensated;\n}\n\n.main svg {\n color: var(--ring-main-color);\n}\n\n.rotatable svg {\n transition: transform 0.3s ease-out;\n transform: rotate(0deg);\n transform-origin: 50% 50%;\n}\n\n.rotated svg {\n transform: rotate(90deg);\n}\n\n.profileEmpty {\n align-items: center;\n\n width: auto;\n height: compensated;\n padding-left: var(--ring-unit);\n\n vertical-align: bottom;\n}\n\n/* override dropdown */\n.profileEmpty.profileEmpty {\n display: inline-flex;\n}\n\n.profile {\n composes: profileEmpty;\n\n height: compensated;\n\n cursor: pointer;\n}\n\n.anchorClassName {\n composes: resetButton from "../global/global.css";\n\n display: flex;\n align-items: center;\n gap: calc(1.5 * var(--ring-unit));\n}\n\n.avatarWrapper {\n line-height: 0;\n}\n\n.hasUpdates {\n position: relative;\n\n &::after {\n position: absolute;\n top: calc(15% - 5px);\n right: calc(15% - 5px);\n\n display: block;\n\n width: var(--ring-unit);\n height: var(--ring-unit);\n\n content: "";\n\n border: 1px solid var(--ring-white-text-color);\n border-radius: 50%;\n background-color: var(--ring-link-hover-color);\n }\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={dark:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default.locals.dark}`,link:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.link}`,active:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.active}`,compensate:"3px",compensated:"calc(var(--ring-unit)*8 - 3px)",header:"header_a3ab",headerSpaced:"headerSpaced_f14a",logo:"logo_a5a6",tray:"tray_fdd9",trayItemContent:"trayItemContent_ea62",icon:"icon_d6e0",main:"main_b5f3",rotatable:"rotatable_e034",rotated:"rotated_f2a7",profileEmpty:"profileEmpty_fb73",profile:"profile_ed45 profileEmpty_fb73",anchorClassName:`anchorClassName_ec21 ${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__.default.locals.resetButton}`,avatarWrapper:"avatarWrapper_daf7",hasUpdates:"hasUpdates_b76c"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/services.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".services_ec8d {\n max-width: calc(var(--ring-unit)*50 + 2px);\n padding: calc(var(--ring-unit)*4) calc(var(--ring-unit)*4) calc(var(--ring-unit)*3);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: 10px; /* Eliminate gap between clickable blocks rows */\n}\n\n.active_d9f3 {\n font-weight: var(--ring-font-weight-bold);\n}\n\n.item_b99f {\n display: inline-block;\n overflow-x: hidden;\n\n box-sizing: border-box;\n width: calc(var(--ring-unit)*14);\n height: calc(var(--ring-unit)*14);\n\n text-align: center;\n text-overflow: ellipsis;\n\n color: var(--ring-active-text-color);\n\n line-height: initial;\n}\n\n.item_b99f::after {\n height: calc(var(--ring-unit)*14);\n\n vertical-align: middle;\n }\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.item_b99f:not(:hover),\n .item_b99f:visited:not(:hover) {\n color: var(--ring-active-text-color);\n }}\n\n.itemLogo_d217 {\n display: inline-block;\n\n width: calc(var(--ring-unit)*6);\n height: calc(var(--ring-unit)*6);\n margin: calc(var(--ring-unit)*2) 0 calc(var(--ring-unit) + 1px);\n\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.activeItem_fc8c {\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.activeItem_fc8c:hover {\n color: var(--ring-active-text-color);\n }}\n\n.line_c680 {\n height: 1px;\n margin: calc(var(--ring-unit)*4) 0 calc(var(--ring-unit)*2);\n\n background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);\n}\n\n.itemStacked_a198 {\n display: inline-block;\n\n width: 100%;\n margin-bottom: calc(var(--ring-unit)*2);\n\n text-decoration: none;\n\n line-height: calc(var(--ring-unit)*2);\n}\n\n.itemStacked_a198,\n .itemStacked_a198:visited {\n color: var(--ring-secondary-color);\n }\n\n.itemStacked_a198:last-child {\n margin-bottom: calc(var(--ring-unit)*-3);\n }\n\n.activeItemStacked_fc90 {\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.activeItemStacked_fc90:hover {\n color: var(--ring-secondary-color);\n }}\n","",{version:3,sources:["webpack://./src/header/services.css",""],names:[],mappings:"AAEA;EACE,0CAAkD;EAClD,mFAAyF;;EAEzF,yDAAyD;;EAEzD,iBAAiB,EAAE,gDAAgD;AACrE;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;;EAElB,sBAAsB;EACtB,gCAAkC;EAClC,iCAAmC;;EAEnC,kBAAkB;EAClB,uBAAuB;;EAEvB,oCAAoC;;EAEpC,oBAAoB;AAYtB;;AAVE;IACE,iCAAmC;;IAEnC,sBAAsB;EACxB;;AClCF,wGAAA;;IAAA,qCAAA;GAAA,CAAA;;AD0CA;EACE,qBAAqB;;EAErB,+BAAiC;EACjC,gCAAkC;EAClC,+DAAiE;;EAEjE,4BAA4B;EAC5B,wBAAwB;AAC1B;;AAEA;AAOA;;AC5DA,wGAAA;IAAA,qCAAA;GAAA,CAAA;;AD8DA;EACE,WAAW;EACX,2DAA+D;;EAE/D,yFAAyF;AAC3F;;AAEA;EACE,qBAAqB;;EAErB,WAAW;EACX,uCAAyC;;EAEzC,qBAAqB;;EAErB,qCAAuC;AAUzC;;AARE;;IAEE,kCAAkC;EACpC;;AAEA;IACE,wCAA0C;EAC5C;;AAGF;AAOA;;AChGA,wGAAA;IAAA,mCAAA;GAAA,CAAA",sourcesContent:['@import "../global/variables.css";\n\n.services {\n max-width: calc(calc(var(--ring-unit) * 50) + 2px);\n padding: calc(var(--ring-unit) * 4) calc(var(--ring-unit) * 4) calc(var(--ring-unit) * 3);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: 10px; /* Eliminate gap between clickable blocks rows */\n}\n\n.active {\n font-weight: var(--ring-font-weight-bold);\n}\n\n.item {\n display: inline-block;\n overflow-x: hidden;\n\n box-sizing: border-box;\n width: calc(var(--ring-unit) * 14);\n height: calc(var(--ring-unit) * 14);\n\n text-align: center;\n text-overflow: ellipsis;\n\n color: var(--ring-active-text-color);\n\n line-height: initial;\n\n &::after {\n height: calc(var(--ring-unit) * 14);\n\n vertical-align: middle;\n }\n\n &:not(:hover),\n &:visited:not(:hover) {\n color: var(--ring-active-text-color);\n }\n}\n\n.itemLogo {\n display: inline-block;\n\n width: calc(var(--ring-unit) * 6);\n height: calc(var(--ring-unit) * 6);\n margin: calc(var(--ring-unit) * 2) 0 calc(var(--ring-unit) + 1px);\n\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.activeItem {\n composes: item;\n composes: active;\n\n &:hover {\n color: var(--ring-active-text-color);\n }\n}\n\n.line {\n height: 1px;\n margin: calc(var(--ring-unit) * 4) 0 calc(var(--ring-unit) * 2);\n\n background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);\n}\n\n.itemStacked {\n display: inline-block;\n\n width: 100%;\n margin-bottom: calc(var(--ring-unit) * 2);\n\n text-decoration: none;\n\n line-height: calc(var(--ring-unit) * 2);\n\n &,\n &:visited {\n color: var(--ring-secondary-color);\n }\n\n &:last-child {\n margin-bottom: calc(var(--ring-unit) * -3);\n }\n}\n\n.activeItemStacked {\n composes: itemStacked;\n composes: active;\n\n &:hover {\n color: var(--ring-secondary-color);\n }\n}\n',null],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={services:"services_ec8d",active:"active_d9f3",item:"item_b99f",itemLogo:"itemLogo_d217",activeItem:"activeItem_fc8c item_b99f active_d9f3",line:"line_c680",itemStacked:"itemStacked_a198",activeItemStacked:"activeItemStacked_fc90 itemStacked_a198 active_d9f3"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./src/header/header.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/header.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/header/services.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/services.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}}}]); \ No newline at end of file +(globalThis.webpackChunk_jetbrains_ring_ui=globalThis.webpackChunk_jetbrains_ring_ui||[]).push([[4370],{"./src/header/header.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>header_stories,header:()=>header_stories_header});var react=__webpack_require__("./node_modules/react/index.js"),hub=__webpack_require__("./node_modules/@jetbrains/logos/hub/hub.svg"),hub_default=__webpack_require__.n(hub),hub_text=__webpack_require__("./node_modules/@jetbrains/logos/hub/hub-text.svg"),hub_text_default=__webpack_require__.n(hub_text),add_20px=__webpack_require__("./node_modules/@jetbrains/icons/add-20px.js"),add_20px_default=__webpack_require__.n(add_20px),gift_20px=__webpack_require__("./node_modules/@jetbrains/icons/gift-20px.js"),gift_20px_default=__webpack_require__.n(gift_20px),help_20px=__webpack_require__("./node_modules/@jetbrains/icons/help-20px.js"),help_20px_default=__webpack_require__.n(help_20px),search_20px=__webpack_require__("./node_modules/@jetbrains/icons/search-20px.js"),search_20px_default=__webpack_require__.n(search_20px),settings_20px=__webpack_require__("./node_modules/@jetbrains/icons/settings-20px.js"),settings_20px_default=__webpack_require__.n(settings_20px),hub_config=__webpack_require__("./.storybook/hub-config.ts"),link_link=__webpack_require__("./src/link/link.tsx"),dropdown_menu=__webpack_require__("./src/dropdown-menu/dropdown-menu.tsx"),auth_dialog_service=__webpack_require__("./src/auth-dialog-service/auth-dialog-service.tsx"),global_theme=__webpack_require__("./src/global/theme.tsx"),auth_auth=__webpack_require__("./src/auth/auth.ts"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),classnames=__webpack_require__("./node_modules/classnames/index.js"),classnames_default=__webpack_require__.n(classnames),header_header=__webpack_require__("./src/header/header.css"),header_default=__webpack_require__.n(header_header),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");class Header extends react.Component{static propTypes={className:prop_types_default().string,children:prop_types_default().node,spaced:prop_types_default().bool};static defaultProps={spaced:!0,theme:global_theme.Ay.DARK};render(){const{children,className,spaced,theme,...restProps}=this.props,classes=classnames_default()(header_default().header,className,{[header_default().headerSpaced]:spaced}),overrideOuterTheme=theme!==global_theme.Ay.LIGHT,header=(0,jsx_runtime.jsx)("header",{...restProps,className:classes,children});return overrideOuterTheme?(0,jsx_runtime.jsx)(global_theme.NP,{theme,children:header}):header}}const header=Header;Header.__docgenInfo={description:"Displays a configurable page header. See available presentation options in the knobs panel.",methods:[],displayName:"Header",props:{spaced:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1},type:{name:"bool"}},theme:{required:!1,tsType:{name:"Theme"},description:"",defaultValue:{value:"Theme.DARK",computed:!0}},className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1}},composes:["HTMLAttributes"]};var icon_constants=__webpack_require__("./src/icon/icon__constants.ts"),icon=__webpack_require__("./src/icon/icon.tsx");class Logo extends react.PureComponent{static propTypes={className:prop_types_default().string};static defaultProps={size:icon_constants.o.Size48,suppressSizeWarning:!0};static Size=icon_constants.o;render(){const{className,...restProps}=this.props,classes=classnames_default()(header_default().logo,className);return(0,jsx_runtime.jsx)("div",{className:classes,children:(0,jsx_runtime.jsx)(icon.Ay,{...restProps})})}}Logo.__docgenInfo={description:"",methods:[],displayName:"Logo",props:{size:{defaultValue:{value:"Size.Size48",computed:!0},required:!1},suppressSizeWarning:{defaultValue:{value:"true",computed:!1},required:!1},className:{description:"",type:{name:"string"},required:!1}}};const wrapChild=child=>child&&(0,jsx_runtime.jsx)("div",{className:header_default().trayItem,children:child});class Tray extends react.Component{static propTypes={className:prop_types_default().string,children:prop_types_default().node};render(){const{children,className,...restProps}=this.props,classes=classnames_default()(header_default().tray,className);return(0,jsx_runtime.jsx)("div",{...restProps,className:classes,children:react.Children.map(children,wrapChild)})}}Tray.__docgenInfo={description:"",methods:[],displayName:"Tray",props:{className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1}}};var button_button=__webpack_require__("./src/button/button.tsx");class TrayIcon extends react.Component{static propTypes={...button_button.Ay.propTypes,icon:prop_types_default().oneOfType([prop_types_default().string,prop_types_default().elementType]).isRequired,rotatable:prop_types_default().bool};render(){const{className,rotatable,...restProps}=this.props,classes=classnames_default()(header_default().icon,className,{[header_default().rotatable]:rotatable,[header_default().rotated]:rotatable&&restProps.active});return(0,jsx_runtime.jsx)(button_button.Ay,{...restProps,className:classes})}}TrayIcon.__docgenInfo={description:"",methods:[],displayName:"TrayIcon",props:{icon:{required:!0,tsType:{name:"union",raw:"string | IconType",elements:[{name:"string"},{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"}]},description:"",type:{name:"union",value:[{name:"string"},{name:"elementType"}]}},rotatable:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},active:{description:"",type:{name:"bool"},required:!1},danger:{description:"",type:{name:"bool"},required:!1},delayed:{description:"",type:{name:"bool"},required:!1},loader:{description:"",type:{name:"bool"},required:!1},primary:{description:"",type:{name:"bool"},required:!1},short:{description:"",type:{name:"bool"},required:!1},text:{description:"",type:{name:"bool"},required:!1},inline:{description:"",type:{name:"bool"},required:!1},dropdown:{description:"",type:{name:"bool"},required:!1},href:{description:"",type:{name:"string"},required:!1},target:{description:"",type:{name:"string"},required:!1},iconSize:{description:"",type:{name:"number"},required:!1},iconClassName:{description:"",type:{name:"string"},required:!1},iconSuppressSizeWarning:{description:"",type:{name:"bool"},required:!1},className:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1},onClick:{description:"",type:{name:"func"},required:!1}}};var http=__webpack_require__("./src/http/http.ts"),services_20px=__webpack_require__("./node_modules/@jetbrains/icons/services-20px.js"),services_20px_default=__webpack_require__.n(services_20px),dropdown=__webpack_require__("./src/dropdown/dropdown.tsx"),popup=__webpack_require__("./src/popup/popup.tsx"),variables_dark=__webpack_require__("./src/global/variables_dark.css"),variables_dark_default=__webpack_require__.n(variables_dark),header_services=__webpack_require__("./src/header/services.css"),services_default=__webpack_require__.n(header_services);class ServicesLink extends react.PureComponent{static propTypes={isActive:prop_types_default().bool,service:prop_types_default().shape({applicationName:prop_types_default().string,iconUrl:prop_types_default().string,homeUrl:prop_types_default().string,name:prop_types_default().string})};render(){const{service,...props}=this.props;return(0,jsx_runtime.jsx)(link_link.A,{target:"_self",href:service.homeUrl,...props,children:service.iconUrl?[(0,jsx_runtime.jsx)("span",{className:services_default().itemLogo,style:{backgroundImage:`url(${service.iconUrl})`}},"icon"),(0,jsx_runtime.jsx)("div",{children:service.name},"text")]:service.name})}}ServicesLink.__docgenInfo={description:"",methods:[],displayName:"ServicesLink",props:{service:{required:!1,tsType:{name:"Service"},description:"",type:{name:"shape",value:{applicationName:{name:"string",required:!1},iconUrl:{name:"string",required:!1},homeUrl:{name:"string",required:!1},name:{name:"string",required:!1}}}},isActive:{description:"",type:{name:"bool"},required:!1}},composes:["Partial"]};const makeAnchor=loading=>{const Anchor=({active})=>(0,jsx_runtime.jsx)(TrayIcon,{loader:loading,active,icon:services_20px_default(),"aria-label":"Services"});return Anchor.propTypes={active:prop_types_default().bool},Anchor};class Services extends react.PureComponent{static sort=(a,b)=>{const aApplicationName=a.applicationName||"",bApplicationName=b.applicationName||"";return aApplicationName.localeCompare(bApplicationName)||a.name.localeCompare(b.name)};static propTypes={className:prop_types_default().string,clientId:prop_types_default().string,initShown:prop_types_default().bool,loading:prop_types_default().bool,onClick:prop_types_default().func,services:prop_types_default().arrayOf(ServicesLink.propTypes.service)};static defaultProps={theme:global_theme.Ay.DARK};static Link=ServicesLink;serviceIsActive=service=>service.id===this.props.clientId;render(){const{clientId,loading,services,initShown,theme,...props}=this.props;if(!services)return(0,jsx_runtime.jsx)(TrayIcon,{...props,loader:loading,active:loading,icon:services_20px_default(),"aria-label":"Services"});const sortedServices=[...services].sort(Services.sort),servicesWithIcons=sortedServices.filter((service=>service.iconUrl&&service.homeUrl)),servicesWithOutIcons=sortedServices.filter((service=>!service.iconUrl&&service.homeUrl)),separatorIsRequired=0!==servicesWithIcons.length&&0!==servicesWithOutIcons.length;return(0,jsx_runtime.jsx)(dropdown.A,{...props,anchor:makeAnchor(loading),initShown,children:(0,jsx_runtime.jsxs)(popup.Ay,{className:classnames_default()(services_default().services,{[variables_dark_default().dark]:theme===global_theme.Ay.DARK}),top:-3,children:[servicesWithIcons.map((service=>{const isActive=this.serviceIsActive(service);return(0,jsx_runtime.jsx)(Services.Link,{active:isActive,className:isActive?services_default().activeItem:services_default().item,service},service.id)})),separatorIsRequired&&(0,jsx_runtime.jsx)("div",{className:services_default().line},"separator"),servicesWithOutIcons.map((service=>{const isActive=this.serviceIsActive(service);return(0,jsx_runtime.jsx)(Services.Link,{active:isActive,className:isActive?services_default().activeItemStacked:services_default().itemStacked,service},service.id)}))]})})}}function noop(){}Services.__docgenInfo={description:"",methods:[{name:"sort",docblock:null,modifiers:["static"],params:[{name:"a",optional:!1,type:{name:"Service",alias:"Service"}},{name:"b",optional:!1,type:{name:"Service",alias:"Service"}}],returns:null},{name:"serviceIsActive",docblock:null,modifiers:[],params:[{name:"service",optional:!1,type:{name:"Service",alias:"Service"}}],returns:null}],displayName:"Services",props:{theme:{required:!1,tsType:{name:"Theme"},description:"",defaultValue:{value:"Theme.DARK",computed:!0}},clientId:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},initShown:{required:!1,tsType:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}]},description:"",type:{name:"bool"}},loading:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},services:{required:!1,tsType:{name:"union",raw:"Service[] | null | undefined",elements:[{name:"Array",elements:[{name:"Service"}],raw:"Service[]"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"arrayOf",value:{name:"custom",raw:"ServicesLink.propTypes.service"}}},className:{description:"",type:{name:"string"},required:!1},onClick:{description:"",type:{name:"func"},required:!1}},composes:["HTMLAttributes"]};class SmartServices extends react.Component{static propTypes={auth:prop_types_default().instanceOf(auth_auth.Ay).isRequired};state={visible:!0,loading:!1,services:null};componentDidMount(){const{auth}=this.props;this.http=new http.Ay(auth,auth.getAPIPath()),this.getServices(SmartServices.countFields)?.then((services=>{services.length||this.setState({visible:!1})})).catch(noop)}static allFields="id,name,applicationName,homeUrl,iconUrl";static countFields="key";http;stopLoading=()=>{this.setState({loading:!1})};getServicesContent=()=>{this.setState({loading:!0}),this.getServices(SmartServices.allFields)?.then((services=>{this.setState({services}),this.stopLoading()})).catch(this.stopLoading)};getServices(fields){return this.http?.get(`services/header?fields=${fields}`)}render(){const{services,visible,loading}=this.state,{auth,...props}=this.props;return visible?(0,jsx_runtime.jsx)(Services,{...props,clientId:auth.config.clientId,initShown:!0,loading,onClick:this.getServicesContent,services}):null}}SmartServices.__docgenInfo={description:"",methods:[{name:"stopLoading",docblock:null,modifiers:[],params:[],returns:null},{name:"getServicesContent",docblock:null,modifiers:[],params:[],returns:null},{name:"getServices",docblock:null,modifiers:[],params:[{name:"fields",optional:!1,type:{name:"string"}}],returns:null}],displayName:"SmartServices",props:{auth:{required:!0,tsType:{name:"Auth"},description:"",type:{name:"instanceOf",value:"Auth"}}},composes:["HTMLAttributes"]};var auth_core=__webpack_require__("./src/auth/auth__core.ts"),alert_service=__webpack_require__("./src/alert-service/alert-service.tsx"),avatar=__webpack_require__("./src/avatar/avatar.tsx"),popup_menu=__webpack_require__("./src/popup-menu/popup-menu.tsx"),i18n_context=__webpack_require__("./src/i18n/i18n-context.tsx"),typescript_utils=__webpack_require__("./src/global/typescript-utils.ts");const rgItemType=popup_menu.A.ListProps.Type.LINK;class Profile extends react.PureComponent{static propTypes={className:prop_types_default().string,activeClassName:prop_types_default().string,closeOnSelect:prop_types_default().bool,hasUpdates:prop_types_default().bool,loading:prop_types_default().bool,onLogin:prop_types_default().func,onLogout:prop_types_default().func,onSwitchUser:prop_types_default().func,profileUrl:prop_types_default().string,renderPopupItems:prop_types_default().func,LinkComponent:prop_types_default().oneOfType([prop_types_default().instanceOf(react.Component),prop_types_default().func,prop_types_default().string]),translations:prop_types_default().shape({profile:prop_types_default().string,login:prop_types_default().string,logout:prop_types_default().string,applyChangedUser:prop_types_default().string,switchUser:prop_types_default().string}),user:prop_types_default().shape({guest:prop_types_default().bool,profile:prop_types_default().object,name:prop_types_default().string}),size:prop_types_default().number,round:prop_types_default().bool,showName:prop_types_default().bool,showLogIn:prop_types_default().bool,showLogOut:prop_types_default().bool,showSwitchUser:prop_types_default().bool,showApplyChangedUser:prop_types_default().bool,onRevertPostponement:prop_types_default().func,renderGuest:prop_types_default().func,menuProps:prop_types_default().object,onShow:prop_types_default().func,onHide:prop_types_default().func};static defaultProps={closeOnSelect:!0,renderPopupItems:items=>items,size:avatar.o.Size32,renderGuest:({loading,onLogin,className,translations})=>(0,jsx_runtime.jsx)(i18n_context.g.Consumer,{children:({translate})=>{var _translations$login;return(0,jsx_runtime.jsx)("div",{className:classnames_default()(header_default().profileEmpty,className),children:(0,jsx_runtime.jsx)(button_button.Ay,{primary:!0,"data-test":"ring-header-login-button",disabled:loading,loader:loading,onClick:onLogin,children:null!==(_translations$login=translations?.login)&&void 0!==_translations$login?_translations$login:translate("login")})})}})};static contextType=i18n_context.g;static Size=avatar.o;render(){var _translations$applyCh,_translations$login2,_translations$profile,_translations$switchU,_translations$logout;const{className,activeClassName,closeOnSelect,hasUpdates,onLogout,user,profileUrl,LinkComponent,onSwitchUser,renderPopupItems,onRevertPostponement,showApplyChangedUser,showName,showLogIn,showLogOut,showSwitchUser,renderGuest,translations,size,round,loading,onLogin,menuProps,onShow,onHide,...props}=this.props,{translate}=this.context;if(!user)return(0,jsx_runtime.jsx)("div",{...props,className:classnames_default()(header_default().profileEmpty,className),children:(0,jsx_runtime.jsx)(avatar.A,{size,round})});if(user.guest)return renderGuest(this.props);const avatarWrapper=classnames_default()(header_default().avatarWrapper,{[header_default().hasUpdates]:hasUpdates}),anchor=(0,jsx_runtime.jsxs)("button",{type:"button",className:header_default().anchorClassName,children:[(0,jsx_runtime.jsx)("span",{className:avatarWrapper,children:(0,jsx_runtime.jsx)(avatar.A,{url:user.profile&&user.profile.avatar&&user.profile.avatar.url,size,round})}),showName&&(0,jsx_runtime.jsx)("span",{children:user.name})]}),items=[showApplyChangedUser&&{rgItemType,label:null!==(_translations$applyCh=translations?.applyChangedUser)&&void 0!==_translations$applyCh?_translations$applyCh:translate("applyChangedUser"),className:header_default().profileMenuItem,onClick:onRevertPostponement},showLogIn&&{rgItemType,label:null!==(_translations$login2=translations?.login)&&void 0!==_translations$login2?_translations$login2:translate("login"),className:header_default().profileMenuItem,onClick:onRevertPostponement},{rgItemType:popup_menu.A.ListProps.Type.LINK,label:null!==(_translations$profile=translations?.profile)&&void 0!==_translations$profile?_translations$profile:translate("profile"),target:"_self",href:profileUrl,LinkComponent},showSwitchUser&&{rgItemType,label:null!==(_translations$switchU=translations?.switchUser)&&void 0!==_translations$switchU?_translations$switchU:translate("switchUser"),className:header_default().profileMenuItem,onClick:onSwitchUser},showLogOut&&{rgItemType,label:null!==(_translations$logout=translations?.logout)&&void 0!==_translations$logout?_translations$logout:translate("logout"),onClick:onLogout}].filter(typescript_utils.z);return(0,jsx_runtime.jsx)(dropdown_menu.A,{...props,onShow,onHide,title:user.name,anchor,data:renderPopupItems(items),"data-test":"ring-profile",className:classnames_default()(header_default().profile,className),activeClassName,menuProps:{closeOnSelect,left:-2,top:-8,sidePadding:32,...menuProps}})}}Profile.__docgenInfo={description:"",methods:[],displayName:"Profile",props:{closeOnSelect:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1},type:{name:"bool"}},renderPopupItems:{required:!1,tsType:{name:"signature",type:"function",raw:"(items: ListDataItem[]) => readonly ListDataItem[]",signature:{arguments:[{type:{name:"Array",elements:[{name:"intersection",raw:"T & Partial> & {\n rgItemType?: Type | null | undefined\n key?: string | number | null | undefined\n disabled?: boolean | undefined\n details?: string | null | undefined\n hoverClassName?: string | null | undefined\n compact?: boolean | null | undefined\n className?: string | null | undefined\n url?: string | undefined\n showGeneratedAvatar?: boolean | null | undefined\n username?: string | null | undefined\n avatar?: string | null | undefined\n subavatar?: string | null | undefined\n glyph?: IconType | string | null | undefined\n icon?: string | undefined\n iconSize?: Size | null | undefined\n suppressSizeWarning?: boolean | null | undefined\n rightGlyph?: IconType | string | null | undefined\n title?: string | null | undefined\n level?: number | null | undefined\n checkbox?: boolean | undefined\n description?: ReactNode\n label?: ReactNode\n rightNodes?: ReactNode\n leftNodes?: ReactNode\n tagName?: keyof JSX.IntrinsicElements | null | undefined\n selectedLabel?: string | null | undefined,\n originalModel?: never\n LinkComponent?: ComponentType | string | null | undefined\n template?: ReactNode | ((props: ListDataItemProps) => ReactNode)\n labelWrapper?: (children: ReactNode) => ReactElement\n custom?: boolean | null | undefined\n onClick?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n onMouseUp?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n}",elements:[{name:"T"},{name:"Partial",elements:[{name:"Omit",elements:[{name:"intersection",raw:"Omit & LinkBaseProps",elements:[{name:"Omit",elements:[{name:"P"},{name:"LinkBaseProps"}],raw:"Omit"},{name:"LinkBaseProps"}]},{name:"union",raw:"'onClick' | 'onMouseUp'",elements:[{name:"literal",value:"'onClick'"},{name:"literal",value:"'onMouseUp'"}]}],raw:"Omit"}],raw:"Partial>"},{name:"signature",type:"object",raw:"{\n rgItemType?: Type | null | undefined\n key?: string | number | null | undefined\n disabled?: boolean | undefined\n details?: string | null | undefined\n hoverClassName?: string | null | undefined\n compact?: boolean | null | undefined\n className?: string | null | undefined\n url?: string | undefined\n showGeneratedAvatar?: boolean | null | undefined\n username?: string | null | undefined\n avatar?: string | null | undefined\n subavatar?: string | null | undefined\n glyph?: IconType | string | null | undefined\n icon?: string | undefined\n iconSize?: Size | null | undefined\n suppressSizeWarning?: boolean | null | undefined\n rightGlyph?: IconType | string | null | undefined\n title?: string | null | undefined\n level?: number | null | undefined\n checkbox?: boolean | undefined\n description?: ReactNode\n label?: ReactNode\n rightNodes?: ReactNode\n leftNodes?: ReactNode\n tagName?: keyof JSX.IntrinsicElements | null | undefined\n selectedLabel?: string | null | undefined,\n originalModel?: never\n LinkComponent?: ComponentType | string | null | undefined\n template?: ReactNode | ((props: ListDataItemProps) => ReactNode)\n labelWrapper?: (children: ReactNode) => ReactElement\n custom?: boolean | null | undefined\n onClick?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n onMouseUp?:\n | ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n | null\n | undefined\n}",signature:{properties:[{key:"rgItemType",value:{name:"union",raw:"Type | null | undefined",elements:[{name:"Type"},{name:"null"},{name:"undefined"}],required:!1}},{key:"key",value:{name:"union",raw:"string | number | null | undefined",elements:[{name:"string"},{name:"number"},{name:"null"},{name:"undefined"}],required:!1}},{key:"disabled",value:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}],required:!1}},{key:"details",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"hoverClassName",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"compact",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"className",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"url",value:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}],required:!1}},{key:"showGeneratedAvatar",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"username",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"avatar",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"subavatar",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"glyph",value:{name:"union",raw:"IconType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"icon",value:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}],required:!1}},{key:"iconSize",value:{name:"union",raw:"Size | null | undefined",elements:[{name:"Size"},{name:"null"},{name:"undefined"}],required:!1}},{key:"suppressSizeWarning",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"rightGlyph",value:{name:"union",raw:"IconType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"SVGAttributes",elements:[{name:"SVGSVGElement"}],raw:"SVGAttributes"}],raw:"ComponentType>"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"title",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"level",value:{name:"union",raw:"number | null | undefined",elements:[{name:"number"},{name:"null"},{name:"undefined"}],required:!1}},{key:"checkbox",value:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}],required:!1}},{key:"description",value:{name:"ReactNode",required:!1}},{key:"label",value:{name:"ReactNode",required:!1}},{key:"rightNodes",value:{name:"ReactNode",required:!1}},{key:"leftNodes",value:{name:"ReactNode",required:!1}},{key:"tagName",value:{name:"union",raw:"keyof JSX.IntrinsicElements | null | undefined",elements:[{name:"JSX.IntrinsicElements"},{name:"null"},{name:"undefined"}],required:!1}},{key:"selectedLabel",value:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"originalModel",value:{name:"never",required:!1}},{key:"LinkComponent",value:{name:"union",raw:"ComponentType | string | null | undefined",elements:[{name:"ComponentType",elements:[{name:"ClickableLinkProps"}],raw:"ComponentType"},{name:"string"},{name:"null"},{name:"undefined"}],required:!1}},{key:"template",value:{name:"union",raw:"ReactNode | ((props: ListDataItemProps) => ReactNode)",elements:[{name:"ReactNode"},{name:"unknown"}],required:!1}},{key:"labelWrapper",value:{name:"signature",type:"function",raw:"(children: ReactNode) => ReactElement",signature:{arguments:[{type:{name:"ReactNode"},name:"children"}],return:{name:"ReactElement"}},required:!1}},{key:"custom",value:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}],required:!1}},{key:"onClick",value:{name:"union",raw:"| ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n| null\n| undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}],required:!1}},{key:"onMouseUp",value:{name:"union",raw:"| ((item: ListDataItem, event: Event | SyntheticEvent) => void)\n| null\n| undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}],required:!1}}]}}]}],raw:"ListDataItem[]"},name:"items"}],return:{name:"unknown"}}},description:"",defaultValue:{value:"items => items",computed:!1},type:{name:"func"}},translations:{required:!1,tsType:{name:"union",raw:"ProfileTranslations | null | undefined",elements:[{name:"ProfileTranslations"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"shape",value:{profile:{name:"string",required:!1},login:{name:"string",required:!1},logout:{name:"string",required:!1},applyChangedUser:{name:"string",required:!1},switchUser:{name:"string",required:!1}}}},size:{required:!1,tsType:{name:"Size"},description:"",defaultValue:{value:"Size.Size32",computed:!0},type:{name:"number"}},renderGuest:{required:!1,tsType:{name:"signature",type:"function",raw:"(props: ProfileProps) => ReactNode",signature:{arguments:[{type:{name:"ProfileProps"},name:"props"}],return:{name:"ReactNode"}}},description:"",defaultValue:{value:"({loading, onLogin, className, translations}) => (\n \n {({translate}) => (\n \n \n {translations?.login ?? translate('login')}\n \n
\n )}\n \n)",computed:!1},type:{name:"func"}},hasUpdates:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},loading:{required:!1,tsType:{name:"union",raw:"boolean | undefined",elements:[{name:"boolean"},{name:"undefined"}]},description:"",type:{name:"bool"}},onLogin:{required:!1,tsType:{name:"union",raw:"(() => void) | undefined",elements:[{name:"unknown"},{name:"undefined"}]},description:"",type:{name:"func"}},onLogout:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},onSwitchUser:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},profileUrl:{required:!1,tsType:{name:"union",raw:"string | undefined",elements:[{name:"string"},{name:"undefined"}]},description:"",type:{name:"string"}},LinkComponent:{required:!1,tsType:{name:"union",raw:"ComponentType | null | undefined",elements:[{name:"ComponentType",elements:[{name:"ClickableLinkProps"}],raw:"ComponentType"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"union",value:[{name:"instanceOf",value:"Component"},{name:"func"},{name:"string"}]}},user:{required:!1,tsType:{name:"union",raw:"AuthUser | null | undefined | void",elements:[{name:"AuthUser"},{name:"null"},{name:"undefined"},{name:"void"}]},description:"",type:{name:"shape",value:{guest:{name:"bool",required:!1},profile:{name:"object",required:!1},name:{name:"string",required:!1}}}},round:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showName:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showLogIn:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showLogOut:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showSwitchUser:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},showApplyChangedUser:{required:!1,tsType:{name:"union",raw:"boolean | null | undefined",elements:[{name:"boolean"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"bool"}},onRevertPostponement:{required:!1,tsType:{name:"union",raw:"(() => void) | null | undefined",elements:[{name:"unknown"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"func"}},menuProps:{required:!1,tsType:{name:"union",raw:"PopupMenuAttrs | null | undefined",elements:[{name:"JSX.LibraryManagedAttributes",elements:[{name:"PopupMenu"},{name:"PopupMenuProps",elements:[{name:"T"}],raw:"PopupMenuProps"}],raw:"JSX.LibraryManagedAttributes>"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"object"}},activeClassName:{required:!1,tsType:{name:"union",raw:"string | null | undefined",elements:[{name:"string"},{name:"null"},{name:"undefined"}]},description:"",type:{name:"string"}},onShow:{required:!1,tsType:{name:"unknown"},description:"",type:{name:"func"}},onHide:{required:!1,tsType:{name:"unknown"},description:"",type:{name:"func"}},className:{description:"",type:{name:"string"},required:!1}},composes:["Omit"]};class SmartProfile extends react.PureComponent{static propTypes={auth:prop_types_default().instanceOf(auth_auth.Ay).isRequired,className:prop_types_default().string,translations:prop_types_default().object,profileUrl:prop_types_default().string,size:Profile.propTypes.size,round:Profile.propTypes.round};state={user:null,size:Profile.defaultProps.size,isLogoutPostponed:!1,isUserChangePostponed:!1};componentDidMount(){this.requestUser()}static Size=Profile.Size;login=async()=>{this.setState({loading:!0});try{await this.props.auth.login()}catch(err){console.debug("Profile login errored",err)}finally{this.setState({loading:!1})}};logout=()=>this.props.auth.logout();switchUser=()=>this.props.auth.switchUser();onRevertPostponement=()=>{this.state.isLogoutPostponed&&this.props.auth.login(),this.state.isUserChangePostponed&&this.props.auth.updateUser()};async requestUser(){try{const{auth}=this.props,user=await auth.requestUser();this.checkUserCertificateMismatch(user),this.setState({user}),auth.addListener(auth_core.yb,(newUser=>{this.setState({user:newUser,isLogoutPostponed:!1,isUserChangePostponed:!1})})),auth.addListener(auth_core.xi,(()=>{this.setState({isLogoutPostponed:!0})})),auth.addListener(auth_core.zz,(()=>{this.setState({isUserChangePostponed:!0})}))}catch(e){}}checkUserCertificateMismatch(user){const{auth,translations}=this.props,userMeta=auth.http.getMetaForResponse(user);if(userMeta?.headers?.has("x-client-certificate-token-mismatch")){const message=translations?.certificateMismatch||`You are authenticated as ${user.login||user.name}. To authenticate with the client certificate for your account, log out, then click the "Log in with certificate" option on the login page.`;alert_service.A.warning(message,0)}}render(){const{user,loading,isLogoutPostponed,isUserChangePostponed}=this.state,{auth,profileUrl,...props}=this.props,url=profileUrl||(user?`${auth.config.serverUri}users/${user.id}`:"");return(0,jsx_runtime.jsx)(Profile,{onLogin:this.login,onLogout:this.logout,onSwitchUser:this.switchUser,loading,user,profileUrl:url,showApplyChangedUser:isUserChangePostponed,showLogIn:isLogoutPostponed,showLogOut:!isLogoutPostponed,showSwitchUser:auth._canShowDialogs()&&!isLogoutPostponed&&!isUserChangePostponed,onRevertPostponement:this.onRevertPostponement,...props})}}SmartProfile.__docgenInfo={description:"",methods:[{name:"login",docblock:null,modifiers:["async"],params:[],returns:null},{name:"logout",docblock:null,modifiers:[],params:[],returns:null},{name:"switchUser",docblock:null,modifiers:[],params:[],returns:null},{name:"onRevertPostponement",docblock:null,modifiers:[],params:[],returns:null},{name:"requestUser",docblock:null,modifiers:["async"],params:[],returns:null},{name:"checkUserCertificateMismatch",docblock:null,modifiers:[],params:[{name:"user",optional:!1,type:{name:"AuthUser",alias:"AuthUser"}}],returns:null}],displayName:"SmartProfile",props:{auth:{required:!0,tsType:{name:"Auth"},description:"",type:{name:"instanceOf",value:"Auth"}},className:{description:"",type:{name:"string"},required:!1},translations:{description:"",type:{name:"object"},required:!1},profileUrl:{description:"",type:{name:"string"},required:!1},size:{description:"",type:{name:"custom",raw:"Profile.propTypes.size"},required:!1},round:{description:"",type:{name:"custom",raw:"Profile.propTypes.round"},required:!1}}};const blockAuth=window.location.search.includes("block-auth"),header_stories={title:"Components/Header",component:header,parameters:{storyStyles:"\n",zeplinLink:"https://app.zeplin.io/project/5afd8f5511c2d1c625752bb0/screen/6193bc71a88a41a987ba9918"},tags:["skip-test"]},header_stories_header=({isCompact,dark,...args})=>{class HeaderDemo extends react.Component{render(){const auth=new auth_auth.Ay(hub_config.A);blockAuth||(auth.setAuthDialogService(auth_dialog_service.A),auth.init());return(0,jsx_runtime.jsxs)(header,{...args,theme:dark?global_theme.Ay.DARK:global_theme.Ay.LIGHT,className:isCompact?"compactHeader":"",children:[(0,jsx_runtime.jsx)("a",{title:"Hub",href:"/",children:isCompact?(0,jsx_runtime.jsx)(Logo,{className:"compactLogo",glyph:hub_text_default(),size:Logo.Size.Size96}):(0,jsx_runtime.jsx)(Logo,{glyph:hub_default(),size:Logo.Size.Size48})}),(0,jsx_runtime.jsx)(link_link.A,{active:!0,href:"#",children:"Users"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Groups"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Spaces"}),(0,jsx_runtime.jsx)(link_link.A,{href:"#",children:"Services"}),(0,jsx_runtime.jsxs)(Tray,{children:[(0,jsx_runtime.jsx)(TrayIcon,{primary:!0,title:"Create issue",icon:add_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"Help",icon:help_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"What's new",icon:gift_20px_default()}),(0,jsx_runtime.jsx)(TrayIcon,{title:"Search",icon:search_20px_default()}),(0,jsx_runtime.jsx)(dropdown_menu.A,{data:[{label:"Test"},{label:"Test2"}],anchor:({active},ariaProps)=>(0,jsx_runtime.jsx)(TrayIcon,{title:"Settings",active,icon:settings_20px_default(),...ariaProps}),menuProps:{top:-12}}),(0,jsx_runtime.jsx)(SmartServices,{auth}),(0,jsx_runtime.jsx)(SmartProfile,{auth,hasUpdates:!0,LinkComponent:props=>(0,jsx_runtime.jsx)("a",{...props,children:"This is component"})})]})]})}}return(0,jsx_runtime.jsx)(HeaderDemo,{})};header_stories_header.parameters={notes:"See available presentation options in knobs panel"},header_stories_header.args={isCompact:!1,dark:!0},header_stories_header.parameters={storyStyles:"\n"},header_stories_header.parameters={...header_stories_header.parameters,docs:{...header_stories_header.parameters?.docs,source:{originalSource:'({\n isCompact,\n dark,\n ...args\n}) => {\n class HeaderDemo extends Component {\n render() {\n const auth = new Auth(hubConfig);\n if (!blockAuth) {\n auth.setAuthDialogService(showAuthDialog);\n auth.init();\n }\n const Comp = (props: ClickableLinkProps) => This is component;\n return
\n \n {isCompact ? : }\n \n \n Users\n \n Groups\n Spaces\n Services\n \n \n \n \n \n } menuProps={{\n top: -12\n }} />\n \n \n \n
;\n }\n }\n return ;\n}',...header_stories_header.parameters?.docs?.source}}}},"./src/auth-dialog-service/auth-dialog-service.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>showAuthDialog});var react_dom_client__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react-dom/client.js"),_global_controls_height__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/global/controls-height.tsx"),_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/auth-dialog/auth-dialog.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const containerElement=document.createElement("div"),reactRoot=(0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(containerElement);function renderAuthDialog(props){reactRoot.render((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.VJ.Provider,{value:(0,_global_controls_height__WEBPACK_IMPORTED_MODULE_2__.jT)(),children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_auth_dialog_auth_dialog__WEBPACK_IMPORTED_MODULE_3__.A,{...props})}))}function showAuthDialog(props={}){return renderAuthDialog({...props,show:!0}),()=>{renderAuthDialog({show:!1})}}},"./src/i18n/i18n-context.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{g:()=>I18nContext,i:()=>I18nContextHolder});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),_i18n__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/i18n/i18n.ts"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react/jsx-runtime.js");const I18nContext=react__WEBPACK_IMPORTED_MODULE_0__.createContext({messages:(0,_i18n__WEBPACK_IMPORTED_MODULE_2__.$)(),translate:_i18n__WEBPACK_IMPORTED_MODULE_2__.Tl}),I18nContextHolder=({children,messages})=>((0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{(0,_i18n__WEBPACK_IMPORTED_MODULE_2__.Lw)(messages)}),[messages]),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(I18nContext.Provider,{value:{messages,translate:_i18n__WEBPACK_IMPORTED_MODULE_2__.Tl},children}));I18nContextHolder.__docgenInfo={description:"",methods:[],displayName:"I18nContextHolder",props:{messages:{required:!0,tsType:{name:"Partial",elements:[{name:"defaultMessages"}],raw:"Partial"},description:""},children:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""}}}},"./src/i18n/i18n.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>getTranslations,xO:()=>getTranslationsWithFallback,Lw:()=>setTranslations,Tl:()=>translate});const messages_namespaceObject=JSON.parse('{"login":"Log in","logout":"Log out","loginTo":"Log in to {{serviceName}}","ok":"OK","cancel":"Cancel","tryAgainLabel":"Try again","postpone":"Postpone","youHaveLoggedInAs":"You have logged in as another user: {{userName}}","applyChange":"Apply change","backendIsNotAvailable":"Connection lost","checkAgain":"try again","nothingHappensLink":"Click here if nothing happens","errorMessage":"There may be a problem with your network connection. Make sure that you are online and","applyChangedUser":"Apply changed user","profile":"Profile","switchUser":"Switch user","addFirstDate":"Add first date","addSecondDate":"Add second date","addTime":"Add time","selectName":"Select {{name}}","setDate":"Set a date","setDateTime":"Set date and time","setPeriod":"Set a period","clear":"Clear input","gotIt":"Got it","dismiss":"Dismiss","perPage":"per page","firstPage":"First page","lastPage":"Last page","nextPage":"Next page","previousPage":"Previous","searchTitle":"Search","clearTitle":"Clear search input","userAgreement":"User Agreement","accept":"Accept","decline":"Decline","close":"Close","scrollToAccept":"View the entire agreement to continue","remindLater":"Remind me later","filterItems":"Filter items","selectOption":"Select an option","progress":"Progress","loading":"Loading...","noOptionsFound":"No options found","banned":"banned","online":"online","offline":"offline","copyToClipboard":"Copy email to clipboard","copiedToClipboard":"Email was copied to clipboard","copingToClipboardError":"Failed to copy to clipboard","unverified":"Unverified"}');let messages=messages_namespaceObject;const warned=new Set;function setTranslations(newMessages){messages=newMessages}function getTranslations(){return messages}function getTranslationsWithFallback(){return{...messages_namespaceObject,...messages}}function translate(key){var _messages$key;return key in messages||function warnMissedKeyOnce(key){warned.has(key)||(warned.add(key),console.warn(`Missing localisation for key "${key}"`))}(key),null!==(_messages$key=messages[key])&&void 0!==_messages$key?_messages$key:messages_namespaceObject[key]}},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/header.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables_dark.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/link/link.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/global.css"),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_5__.default),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default,"",!0),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default,"",!0),___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__.default,"",!0),___CSS_LOADER_EXPORT___.push([module.id,`:root {\n --ring-header-link-color: var(--ring-link-color);\n}\n\n.${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default.locals.dark},\n.ring-ui-theme-dark {\n --ring-header-link-color: var(--ring-text-color);\n}\n\n.header_a3ab {\n display: flex;\n overflow: hidden;\n align-items: center;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit)*8);\n\n color: var(--ring-text-color);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.header_a3ab > * {\n display: inline-block;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit)*8);\n padding: 0 calc(var(--ring-unit)*1.5) 3px;\n }\n\n/* override link */\n\n.header_a3ab .${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.link} {\n color: var(--ring-header-link-color);\n }\n\n.header_a3ab .${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.active} {\n color: var(--ring-active-text-color);\n }\n\n.headerSpaced_f14a > *:first-child {\n padding-left: calc(var(--ring-unit)*4);\n }\n\n.headerSpaced_f14a > *:last-child {\n padding-right: calc(var(--ring-unit)*4);\n }\n\n.logo_a5a6 {\n display: inline-flex;\n align-items: center;\n\n height: calc(var(--ring-unit)*8);\n\n color: var(--ring-navigation-background-color);\n\n line-height: normal;\n}\n\n.logo_a5a6 svg {\n vertical-align: bottom;\n }\n\n.tray_fdd9 {\n align-items: flex-end;\n\n margin-left: auto;\n padding: 0 0 3px;\n}\n\n/* override .header > * */\n.tray_fdd9.tray_fdd9 {\n display: flex;\n}\n\n.trayItemContent_ea62 {\n height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.icon_d6e0 {\n width: calc(var(--ring-unit)*5);\n\n text-align: center;\n\n vertical-align: top;\n}\n\n/* override button */\n.icon_d6e0.icon_d6e0 {\n height: calc(var(--ring-unit)*8 - 3px);\n\n padding-top: calc(var(--ring-unit)/2);\n\n line-height: calc(var(--ring-unit)*8 - 3px);\n}\n\n.main_b5f3 svg {\n color: var(--ring-main-color);\n}\n\n.rotatable_e034 svg {\n transition: transform 0.3s ease-out;\n transform: rotate(0deg);\n transform-origin: 50% 50%;\n}\n\n.rotated_f2a7 svg {\n transform: rotate(90deg);\n}\n\n.profileEmpty_fb73 {\n align-items: center;\n\n width: auto;\n height: calc(var(--ring-unit)*8 - 3px);\n padding-left: var(--ring-unit);\n\n vertical-align: bottom;\n}\n\n/* override dropdown */\n.profileEmpty_fb73.profileEmpty_fb73 {\n display: inline-flex;\n}\n\n.profile_ed45 {\n\n height: calc(var(--ring-unit)*8 - 3px);\n\n cursor: pointer;\n}\n\n.anchorClassName_ec21 {\n\n display: flex;\n align-items: center;\n gap: calc(var(--ring-unit)*1.5);\n}\n\n.avatarWrapper_daf7 {\n line-height: 0;\n}\n\n.hasUpdates_b76c {\n position: relative;\n}\n\n.hasUpdates_b76c::after {\n position: absolute;\n top: calc(15% - 5px);\n right: calc(15% - 5px);\n\n display: block;\n\n width: var(--ring-unit);\n height: var(--ring-unit);\n\n content: "";\n\n border: 1px solid var(--ring-white-text-color);\n border-radius: 50%;\n background-color: var(--ring-link-hover-color);\n }\n`,"",{version:3,sources:["webpack://./src/header/header.css"],names:[],mappings:"AAOA;EACE,gDAAgD;AAClD;;AAEA;;EAEE,gDAAgD;AAClD;;AAEA;EACE,aAAa;EACb,gBAAgB;EAChB,mBAAmB;;EAEnB,sBAAsB;EACtB,gCAAkC;;EAElC,6BAA6B;;EAE7B,yDAAyD;;EAEzD,2CAAwB;AAkB1B;;AAhBE;IACE,qBAAqB;;IAErB,sBAAsB;IACtB,gCAAkC;IAClC,yCAAkD;EACpD;;AAEA,kBAAkB;;AAClB;IACE,oCAAoC;EACtC;;AAEA;IACE,oCAAoC;EACtC;;AAIA;IACE,sCAAwC;EAC1C;;AAEA;IACE,uCAAyC;EAC3C;;AAGF;EACE,oBAAoB;EACpB,mBAAmB;;EAEnB,gCAAkC;;EAElC,8CAA8C;;EAE9C,mBAAmB;AAKrB;;AAHE;IACE,sBAAsB;EACxB;;AAGF;EACE,qBAAqB;;EAErB,iBAAiB;EACjB,gBAAuB;AACzB;;AAEA,yBAAyB;AACzB;EACE,aAAa;AACf;;AAEA;EACE,sCAAmB;AACrB;;AAEA;EACE,+BAAiC;;EAEjC,kBAAkB;;EAElB,mBAAmB;AACrB;;AAEA,oBAAoB;AACpB;EACE,sCAAmB;;EAEnB,qCAAuC;;EAEvC,2CAAwB;AAC1B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,mCAAmC;EACnC,uBAAuB;EACvB,yBAAyB;AAC3B;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,mBAAmB;;EAEnB,WAAW;EACX,sCAAmB;EACnB,8BAA8B;;EAE9B,sBAAsB;AACxB;;AAEA,sBAAsB;AACtB;EACE,oBAAoB;AACtB;;AAEA;;EAGE,sCAAmB;;EAEnB,eAAe;AACjB;;AAEA;;EAGE,aAAa;EACb,mBAAmB;EACnB,+BAAiC;AACnC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;AAkBpB;;AAhBE;IACE,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;;IAEtB,cAAc;;IAEd,uBAAuB;IACvB,wBAAwB;;IAExB,WAAW;;IAEX,8CAA8C;IAC9C,kBAAkB;IAClB,8CAA8C;EAChD",sourcesContent:['@import "../global/variables.css";\n\n@value dark from "../global/variables_dark.css";\n@value link, active from "../link/link.css";\n@value compensate: 3px;\n@value compensated: calc(calc(var(--ring-unit) * 8) - compensate);\n\n:root {\n --ring-header-link-color: var(--ring-link-color);\n}\n\n.dark,\n:global(.ring-ui-theme-dark) {\n --ring-header-link-color: var(--ring-text-color);\n}\n\n.header {\n display: flex;\n overflow: hidden;\n align-items: center;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit) * 8);\n\n color: var(--ring-text-color);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: compensated;\n\n & > * {\n display: inline-block;\n\n box-sizing: border-box;\n height: calc(var(--ring-unit) * 8);\n padding: 0 calc(var(--ring-unit) * 1.5) compensate;\n }\n\n /* override link */\n & .link {\n color: var(--ring-header-link-color);\n }\n\n & .active {\n color: var(--ring-active-text-color);\n }\n}\n\n.headerSpaced {\n & > *:first-child {\n padding-left: calc(var(--ring-unit) * 4);\n }\n\n & > *:last-child {\n padding-right: calc(var(--ring-unit) * 4);\n }\n}\n\n.logo {\n display: inline-flex;\n align-items: center;\n\n height: calc(var(--ring-unit) * 8);\n\n color: var(--ring-navigation-background-color);\n\n line-height: normal;\n\n & svg {\n vertical-align: bottom;\n }\n}\n\n.tray {\n align-items: flex-end;\n\n margin-left: auto;\n padding: 0 0 compensate;\n}\n\n/* override .header > * */\n.tray.tray {\n display: flex;\n}\n\n.trayItemContent {\n height: compensated;\n}\n\n.icon {\n width: calc(var(--ring-unit) * 5);\n\n text-align: center;\n\n vertical-align: top;\n}\n\n/* override button */\n.icon.icon {\n height: compensated;\n\n padding-top: calc(var(--ring-unit) / 2);\n\n line-height: compensated;\n}\n\n.main svg {\n color: var(--ring-main-color);\n}\n\n.rotatable svg {\n transition: transform 0.3s ease-out;\n transform: rotate(0deg);\n transform-origin: 50% 50%;\n}\n\n.rotated svg {\n transform: rotate(90deg);\n}\n\n.profileEmpty {\n align-items: center;\n\n width: auto;\n height: compensated;\n padding-left: var(--ring-unit);\n\n vertical-align: bottom;\n}\n\n/* override dropdown */\n.profileEmpty.profileEmpty {\n display: inline-flex;\n}\n\n.profile {\n composes: profileEmpty;\n\n height: compensated;\n\n cursor: pointer;\n}\n\n.anchorClassName {\n composes: resetButton from "../global/global.css";\n\n display: flex;\n align-items: center;\n gap: calc(1.5 * var(--ring-unit));\n}\n\n.avatarWrapper {\n line-height: 0;\n}\n\n.hasUpdates {\n position: relative;\n\n &::after {\n position: absolute;\n top: calc(15% - 5px);\n right: calc(15% - 5px);\n\n display: block;\n\n width: var(--ring-unit);\n height: var(--ring-unit);\n\n content: "";\n\n border: 1px solid var(--ring-white-text-color);\n border-radius: 50%;\n background-color: var(--ring-link-hover-color);\n }\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={dark:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_dark_css__WEBPACK_IMPORTED_MODULE_2__.default.locals.dark}`,link:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.link}`,active:`${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_link_link_css__WEBPACK_IMPORTED_MODULE_3__.default.locals.active}`,compensate:"3px",compensated:"calc(var(--ring-unit)*8 - 3px)",header:"header_a3ab",headerSpaced:"headerSpaced_f14a",logo:"logo_a5a6",tray:"tray_fdd9",trayItemContent:"trayItemContent_ea62",icon:"icon_d6e0",main:"main_b5f3",rotatable:"rotatable_e034",rotated:"rotated_f2a7",profileEmpty:"profileEmpty_fb73",profile:"profile_ed45 profileEmpty_fb73",anchorClassName:`anchorClassName_ec21 ${_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_global_css__WEBPACK_IMPORTED_MODULE_4__.default.locals.resetButton}`,avatarWrapper:"avatarWrapper_daf7",hasUpdates:"hasUpdates_b76c"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/services.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/global/variables.css"),___CSS_LOADER_EXPORT___=_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_postcss_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_global_variables_css__WEBPACK_IMPORTED_MODULE_2__.default),___CSS_LOADER_EXPORT___.push([module.id,".services_ec8d {\n max-width: calc(var(--ring-unit)*50 + 2px);\n padding: calc(var(--ring-unit)*4) calc(var(--ring-unit)*4) calc(var(--ring-unit)*3);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: 10px; /* Eliminate gap between clickable blocks rows */\n}\n\n.active_d9f3 {\n font-weight: var(--ring-font-weight-bold);\n}\n\n.item_b99f {\n display: inline-block;\n overflow-x: hidden;\n\n box-sizing: border-box;\n width: calc(var(--ring-unit)*14);\n height: calc(var(--ring-unit)*14);\n\n text-align: center;\n text-overflow: ellipsis;\n\n color: var(--ring-active-text-color);\n\n line-height: initial;\n}\n\n.item_b99f::after {\n height: calc(var(--ring-unit)*14);\n\n vertical-align: middle;\n }\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.item_b99f:not(:hover),\n .item_b99f:visited:not(:hover) {\n color: var(--ring-active-text-color);\n }}\n\n.itemLogo_d217 {\n display: inline-block;\n\n width: calc(var(--ring-unit)*6);\n height: calc(var(--ring-unit)*6);\n margin: calc(var(--ring-unit)*2) 0 calc(var(--ring-unit) + 1px);\n\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.activeItem_fc8c {\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.activeItem_fc8c:hover {\n color: var(--ring-active-text-color);\n }}\n\n.line_c680 {\n height: 1px;\n margin: calc(var(--ring-unit)*4) 0 calc(var(--ring-unit)*2);\n\n background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);\n}\n\n.itemStacked_a198 {\n display: inline-block;\n\n width: 100%;\n margin-bottom: calc(var(--ring-unit)*2);\n\n text-decoration: none;\n\n line-height: calc(var(--ring-unit)*2);\n}\n\n.itemStacked_a198,\n .itemStacked_a198:visited {\n color: var(--ring-secondary-color);\n }\n\n.itemStacked_a198:last-child {\n margin-bottom: calc(var(--ring-unit)*-3);\n }\n\n.activeItemStacked_fc90 {\n}\n\n@media (hover: hover), (-moz-touch-enabled: 0), (-ms-high-contrast: none), (-ms-high-contrast: active) {.activeItemStacked_fc90:hover {\n color: var(--ring-secondary-color);\n }}\n","",{version:3,sources:["webpack://./src/header/services.css",""],names:[],mappings:"AAEA;EACE,0CAAkD;EAClD,mFAAyF;;EAEzF,yDAAyD;;EAEzD,iBAAiB,EAAE,gDAAgD;AACrE;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;;EAElB,sBAAsB;EACtB,gCAAkC;EAClC,iCAAmC;;EAEnC,kBAAkB;EAClB,uBAAuB;;EAEvB,oCAAoC;;EAEpC,oBAAoB;AAYtB;;AAVE;IACE,iCAAmC;;IAEnC,sBAAsB;EACxB;;AClCF,wGAAA;;IAAA,qCAAA;GAAA,CAAA;;AD0CA;EACE,qBAAqB;;EAErB,+BAAiC;EACjC,gCAAkC;EAClC,+DAAiE;;EAEjE,4BAA4B;EAC5B,wBAAwB;AAC1B;;AAEA;AAOA;;AC5DA,wGAAA;IAAA,qCAAA;GAAA,CAAA;;AD8DA;EACE,WAAW;EACX,2DAA+D;;EAE/D,yFAAyF;AAC3F;;AAEA;EACE,qBAAqB;;EAErB,WAAW;EACX,uCAAyC;;EAEzC,qBAAqB;;EAErB,qCAAuC;AAUzC;;AARE;;IAEE,kCAAkC;EACpC;;AAEA;IACE,wCAA0C;EAC5C;;AAGF;AAOA;;AChGA,wGAAA;IAAA,mCAAA;GAAA,CAAA",sourcesContent:['@import "../global/variables.css";\n\n.services {\n max-width: calc(calc(var(--ring-unit) * 50) + 2px);\n padding: calc(var(--ring-unit) * 4) calc(var(--ring-unit) * 4) calc(var(--ring-unit) * 3);\n\n background-color: var(--ring-navigation-background-color);\n\n line-height: 10px; /* Eliminate gap between clickable blocks rows */\n}\n\n.active {\n font-weight: var(--ring-font-weight-bold);\n}\n\n.item {\n display: inline-block;\n overflow-x: hidden;\n\n box-sizing: border-box;\n width: calc(var(--ring-unit) * 14);\n height: calc(var(--ring-unit) * 14);\n\n text-align: center;\n text-overflow: ellipsis;\n\n color: var(--ring-active-text-color);\n\n line-height: initial;\n\n &::after {\n height: calc(var(--ring-unit) * 14);\n\n vertical-align: middle;\n }\n\n &:not(:hover),\n &:visited:not(:hover) {\n color: var(--ring-active-text-color);\n }\n}\n\n.itemLogo {\n display: inline-block;\n\n width: calc(var(--ring-unit) * 6);\n height: calc(var(--ring-unit) * 6);\n margin: calc(var(--ring-unit) * 2) 0 calc(var(--ring-unit) + 1px);\n\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.activeItem {\n composes: item;\n composes: active;\n\n &:hover {\n color: var(--ring-active-text-color);\n }\n}\n\n.line {\n height: 1px;\n margin: calc(var(--ring-unit) * 4) 0 calc(var(--ring-unit) * 2);\n\n background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);\n}\n\n.itemStacked {\n display: inline-block;\n\n width: 100%;\n margin-bottom: calc(var(--ring-unit) * 2);\n\n text-decoration: none;\n\n line-height: calc(var(--ring-unit) * 2);\n\n &,\n &:visited {\n color: var(--ring-secondary-color);\n }\n\n &:last-child {\n margin-bottom: calc(var(--ring-unit) * -3);\n }\n}\n\n.activeItemStacked {\n composes: itemStacked;\n composes: active;\n\n &:hover {\n color: var(--ring-secondary-color);\n }\n}\n',null],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={services:"services_ec8d",active:"active_d9f3",item:"item_b99f",itemLogo:"itemLogo_d217",activeItem:"activeItem_fc8c item_b99f active_d9f3",line:"line_c680",itemStacked:"itemStacked_a198",activeItemStacked:"activeItemStacked_fc90 itemStacked_a198 active_d9f3"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./src/header/header.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/header.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}},"./src/header/services.css":(module,__unused_webpack_exports,__webpack_require__)=>{var API=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),domAPI=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),insertFn=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),setAttributes=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),insertStyleElement=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),styleTagTransformFn=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),content=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/header/services.css");content=content.__esModule?content.default:content;var options={};options.styleTagTransform=styleTagTransformFn,options.setAttributes=setAttributes,options.insert=insertFn.bind(null,"head"),options.domAPI=domAPI,options.insertStyleElement=insertStyleElement;API(content,options);module.exports=content&&content.locals||{}}}]); \ No newline at end of file diff --git a/release-6.x/iframe.html b/release-6.x/iframe.html index 2f3f8953b60..07c534cc207 100644 --- a/release-6.x/iframe.html +++ b/release-6.x/iframe.html @@ -504,7 +504,7 @@ window['TAGS_OPTIONS'] = {"dev-only":{"excludeFromDocsStories":true},"docs-only":{"excludeFromSidebar":true},"test-only":{"excludeFromSidebar":true,"excludeFromDocsStories":true}};