@lokalise/harmony 1.18.0 → 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/harmony.cjs +1 -1
- package/dist/harmony.mjs +96 -97
- package/dist/types/src/features/auth/core/headers/createHeaderBuilderMiddleware.d.ts +3 -3
- package/dist/types/src/features/auth/core/headers/headerBuilder.d.ts +13 -13
- package/dist/types/src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.d.ts +1 -1
- package/dist/types/src/features/publicApi/contributors.d.ts +0 -6
- package/dist/types/src/features/publicApi/languages.d.ts +0 -12
- package/dist/types/src/features/publicApi/projects.d.ts +0 -24
- package/dist/types/src/features/publicApi/teamUsers.d.ts +0 -6
- package/dist/types/src/features/publicApi/types/contributorTypes.d.ts +0 -6
- package/dist/types/src/features/publicApi/types/projectTypes.d.ts +0 -6
- package/dist/types/src/features/publicApi/types/sharedTypes.d.ts +0 -18
- package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +0 -6
- package/dist/types/src/features/publicApi/types/userTokenTypes.d.ts +0 -6
- package/dist/types/src/features/publicApi/userToken.d.ts +0 -6
- package/package.json +1 -1
package/README.md
CHANGED
@@ -80,7 +80,7 @@ import { Client } from 'undici'
|
|
80
80
|
const result: TeamUserResponse = async (client: Client) => {
|
81
81
|
return sendByGetRoute(client, getTeamUser, {
|
82
82
|
pathParams: { teamId, userId },
|
83
|
-
headers: { '
|
83
|
+
headers: { 'authorization': `Bearer token` }
|
84
84
|
});
|
85
85
|
}
|
86
86
|
```
|
package/dist/harmony.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";var rn=Object.defineProperty;var sn=(e,t,n)=>t in e?rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>sn(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),p=require("react"),d=require("@lokalise/louis"),se=require("date-fns"),an=require("date-fns-tz"),r=require("zod"),Ae=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),k=require("@lokalise/frontend-http-client"),I=require("@tanstack/react-query"),q=require("@lokalise/universal-ts-utils/node");function on(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const G=on(p),ne={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},z={...ne,NotStarted:"not_started"},F={translation:"translation",review:"review",lqa_by_ai:"lqa_by_ai",automatic_translation:"automatic_translation"};var te=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var me,Fe;function Ie(){if(Fe)return me;Fe=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return me=e,me}var ge,Ge;function cn(){if(Ge)return ge;Ge=1;var e=typeof te=="object"&&te&&te.Object===Object&&te;return ge=e,ge}var fe,Ke;function vt(){if(Ke)return fe;Ke=1;var e=cn(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return fe=n,fe}var _e,Qe;function ln(){if(Qe)return _e;Qe=1;var e=vt(),t=function(){return e.Date.now()};return _e=t,_e}var he,Je;function un(){if(Je)return he;Je=1;var e=/\s/;function t(n){for(var s=n.length;s--&&e.test(n.charAt(s)););return s}return he=t,he}var pe,We;function dn(){if(We)return pe;We=1;var e=un(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return pe=n,pe}var be,Xe;function jt(){if(Xe)return be;Xe=1;var e=vt(),t=e.Symbol;return be=t,be}var Te,Ye;function mn(){if(Ye)return Te;Ye=1;var e=jt(),t=Object.prototype,n=t.hasOwnProperty,s=t.toString,o=e?e.toStringTag:void 0;function i(c){var l=n.call(c,o),m=c[o];try{c[o]=void 0;var u=!0}catch{}var g=s.call(c);return u&&(l?c[o]=m:delete c[o]),g}return Te=i,Te}var ve,Ve;function gn(){if(Ve)return ve;Ve=1;var e=Object.prototype,t=e.toString;function n(s){return t.call(s)}return ve=n,ve}var je,Ze;function fn(){if(Ze)return je;Ze=1;var e=jt(),t=mn(),n=gn(),s="[object Null]",o="[object Undefined]",i=e?e.toStringTag:void 0;function c(l){return l==null?l===void 0?o:s:i&&i in Object(l)?t(l):n(l)}return je=c,je}var ye,et;function _n(){if(et)return ye;et=1;function e(t){return t!=null&&typeof t=="object"}return ye=e,ye}var Se,tt;function hn(){if(tt)return Se;tt=1;var e=fn(),t=_n(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return Se=s,Se}var xe,nt;function pn(){if(nt)return xe;nt=1;var e=dn(),t=Ie(),n=hn(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function m(u){if(typeof u=="number")return u;if(n(u))return s;if(t(u)){var g=typeof u.valueOf=="function"?u.valueOf():u;u=t(g)?g+"":g}if(typeof u!="string")return u===0?u:+u;u=e(u);var _=i.test(u);return _||c.test(u)?l(u.slice(2),_?2:8):o.test(u)?s:+u}return xe=m,xe}var Ee,rt;function yt(){if(rt)return Ee;rt=1;var e=Ie(),t=ln(),n=pn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var g,_,j,y,f,x,T=0,h=!1,b=!1,v=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(h=!!u.leading,b="maxWait"in u,j=b?o(n(u.maxWait)||0,m):j,v="trailing"in u?!!u.trailing:v);function P(S){var N=g,D=_;return g=_=void 0,T=S,y=l.apply(D,N),y}function E(S){return T=S,f=setTimeout(Z,m),h?P(S):y}function V(S){var N=S-x,D=S-T,$e=m-N;return b?i($e,j-D):$e}function He(S){var N=S-x,D=S-T;return x===void 0||N>=m||N<0||b&&D>=j}function Z(){var S=t();if(He(S))return De(S);f=setTimeout(Z,V(S))}function De(S){return f=void 0,v&&g?P(S):(g=_=void 0,y)}function tn(){f!==void 0&&clearTimeout(f),T=0,g=x=_=f=void 0}function nn(){return f===void 0?y:De(t())}function de(){var S=t(),N=He(S);if(g=arguments,_=this,x=S,N){if(f===void 0)return E(x);if(b)return clearTimeout(f),f=setTimeout(Z,m),P(x)}return f===void 0&&(f=setTimeout(Z,m)),y}return de.cancel=tn,de.flush=nn,de}return Ee=c,Ee}var bn=yt();const Tn=Tt(bn);var Pe,st;function vn(){if(st)return Pe;st=1;var e=yt(),t=Ie(),n="Expected a function";function s(o,i,c){var l=!0,m=!0;if(typeof o!="function")throw new TypeError(n);return t(c)&&(l="leading"in c?!!c.leading:l,m="trailing"in c?!!c.trailing:m),e(o,i,{leading:l,maxWait:i,trailing:m})}return Pe=s,Pe}var jn=vn();const yn=Tt(jn),Sn=(e,t,n,s)=>{switch(t){case"debounce":return Tn(e,n,s);case"throttle":return yn(e,n,s);default:return e}},xn=e=>{const t=G.useRef(e);return G.useEffect(()=>{t.current=e}),G.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},En=e=>{const[t,n]=G.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:G.useMemo(()=>new Proxy(o=>{o!==t&&n(o)},{get(o,i){return i==="current"?t:o[i]},set(o,i,c){return i==="current"?n(c):o[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Pn=(e,t)=>t==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:t==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function Cn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=p.useRef(e),g=xn(m),[_,j]=p.useState({width:void 0,height:void 0}),{refProxy:y,refElement:f}=En(c),{box:x}=l||{},T=p.useCallback(b=>{if(!o&&!i)return;if(u.current){u.current=!1;return}const v=(P,E)=>o&&P.width!==E.width||i&&P.height!==E.height;b.forEach(P=>{const E=Pn(P,x);j(V=>v(V,E)?(g==null||g({width:E.width,height:E.height,entry:P}),E):V)})},[o,i,u,x]),h=p.useCallback(Sn(T,t,n,s),[T,t,n,s]);return p.useEffect(()=>{let b;return f?(b=new window.ResizeObserver(h),b.observe(f,l)):(_.width||_.height)&&(g==null||g({width:null,height:null,entry:null}),j({width:void 0,height:void 0})),()=>{var v,P,E;(v=b==null?void 0:b.disconnect)===null||v===void 0||v.call(b),(E=(P=h).cancel)===null||E===void 0||E.call(P)}},[h,f]),Object.assign({ref:y},_)}function St(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=St(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function A(){for(var e,t,n=0,s="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=St(e))&&(s&&(s+=" "),s+=t);return s}const zn="_headerContainer_1cubo_1",wn="_navigationTabList_1cubo_8",kn="_navigationTab_1cubo_8",Rn="_headerContent_1cubo_34",An="_staticEnabled_1cubo_50",B={headerContainer:zn,navigationTabList:wn,navigationTab:kn,headerContent:Rn,staticEnabled:An},In=77,K=({sticky:e,children:t})=>{const{ref:n,height:s}=Cn({refreshMode:"debounce",refreshRate:0}),[o,i]=p.useState(!1),c=()=>o?!e:!0;p.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||In}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:A(B.headerContent,{[B.staticEnabled]:c()}),children:[a.jsx(K.Header,{}),a.jsx(K.Tabs,{}),t]})})})};K.Header=({children:e})=>a.jsx("div",{className:B.headerContainer,children:e});K.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Nn="_sidebarContainer_bmdti_1",Ln={sidebarContainer:Nn},On="_logoLink_1baxb_1",Mn={logoLink:On},Un=({src:e,href:t="/",ariaLabel:n="Home",alt:s="Lokalise"})=>a.jsx("a",{className:Mn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),Bn="_link_18vhx_1",qn="_active_18vhx_18",at={link:Bn,active:qn},Hn=({label:e,to:t,icon:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:e,children:a.jsx(d.Link,{className:A(at.link,{[at.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),Dn="_dropdownButton_13l5r_1",$n="_dropdownButtonActive_13l5r_18",ot={dropdownButton:Dn,dropdownButtonActive:$n},Fn=({children:e,icon:t})=>a.jsx(d.Menu,{menuButton:({opened:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:A(ot.dropdownButton,{[ot.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(d.MenuList,{placement:"right-start",children:e})}),Gn="_iconContainer_nz34m_1",Kn={iconContainer:Gn},xt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:A(Kn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Qn="_menuContainer_ywskt_5",Jn="_profileButton_ywskt_15",Wn="_profileImage_ywskt_28",Xn="_profileImageHighlight_ywskt_36",Yn="_profileImageUpgradeIcon_ywskt_40",Vn="_userIconWrapper_ywskt_46",L={menuContainer:Qn,profileButton:Jn,profileImage:Wn,profileImageHighlight:Xn,profileImageUpgradeIcon:Yn,userIconWrapper:Vn},Et=p.createContext({}),W=()=>p.useContext(Et),Zn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:g}=W();return a.jsx(d.Menu,{menuButton:()=>a.jsxs("button",{className:L.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:A(L.profileImage,{[L.profileImageHighlight]:s}),alt:"Team Logo"}):a.jsx("div",{className:A(L.userIconWrapper,"flex-row","align-center","items-center",{[L.profileImageHighlight]:s}),children:a.jsx(d.UserIcon,{size:"25px"})}),s&&a.jsx(xt,{className:L.profileImageUpgradeIcon})]}),children:a.jsx(d.MenuList,{placement:"right-end",className:L.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,showBillingButton:o,isProviderAlpha:c,isFullyAuthenticated:g})})})},Ne=0,Pt=9999,Ct=[150,151,250,251],zt=[152,153,252,253],wt=[154,155,157,158,254,255,258,354,355,358],kt=[156,159,160,256,259,260],Le=9998,ae=e=>e===Ne,Oe=e=>e===Pt,er=e=>Ct.includes(e),tr=e=>zt.includes(e),nr=e=>wt.includes(e),rr=e=>kt.includes(e),sr=e=>e>Ne&&e<Le,ar=e=>e===Le,or=/\n/,it=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[p.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),ir=(e,t,n)=>typeof e=="string"?it(e,t,n):e.flatMap(s=>typeof s=="string"?it(s,t,n):s),Rt=e=>ir(e,or,a.jsx("br",{})),cr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,lr=e=>e.match(cr)??[],ct=(e,t,n)=>{const s=e.split(t);if(s.length===1)return e;const o=[];return s[0]!==""&&o.push(s[0]),s.shift(),s[s.length-1]===""&&s.pop(),o.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),o.push(s.join(t)),o.filter(i=>i!=="")},lt=e=>{const t=lr(e);return t!=null&&t.length?t.reduce((n,s,o)=>typeof n=="string"?ct(n,s,o):n.flatMap(i=>typeof i=="string"?ct(i,s,o):i),e):e},At=e=>typeof e=="string"?lt(e):e.flatMap(t=>typeof t=="string"?lt(t):t,e),It=(e,t="PP")=>se.format(e,t),ur=(e,t,n="PP")=>se.format(an.toZonedTime(e,t),n),oe=e=>{p.useEffect(e,[])},ut={biller:"biller",owner:"owner"},dt=[ut.biller,ut.owner],dr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(h=>h.id===s),u=n.filter(h=>h.id!==s),g=dt.includes(l),_=dt.includes(l),j=ae(o)||Oe(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:g,canAccessTeamSettings:_,isOnFreeOrTrialPlan:j,showUpgradeCta:c&&j&&g,showBillingButton:c&&_&&g,allowTeamCreation:c&&!i};return a.jsx(Et.Provider,{value:T,children:e})},mr=({config:e,children:t})=>a.jsx(dr,{config:e,children:a.jsx(Zn,{children:t})}),gr="_container_q5pot_1",fr="_profileEmail_q5pot_5",mt={container:gr,profileEmail:fr},_r=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=W();return o||i?null:a.jsxs(a.Fragment,{children:[a.jsx(d.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${mt.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:mt.profileEmail,children:n})]})}),!s&&a.jsx(d.MenuDivider,{})]})},hr="_wrapper_15d85_1",pr="_profileImage_15d85_14",br="_teamName_15d85_22",Tr="_planLabel_15d85_29",vr="_membership_15d85_38",jr="_defaultProfileImage_15d85_44",M={wrapper:hr,profileImage:pr,teamName:br,planLabel:Tr,membership:vr,defaultProfileImage:jr},Nt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=W(),i=e||s;if(!i)return null;const c=ae(o)?"Free":Oe(o)?"Trial":void 0,l=t?d.MenuItem:"div";return a.jsxs(l,{className:`flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:M.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${M.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:"flex-col items-start",children:[a.jsxs("div",{className:"flex-row items-center flex-nowrap gap-2",children:[a.jsx("span",{title:i.name,className:M.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${M.planLabel}`,children:c})]}),a.jsx("span",{className:M.membership,children:i.role})]})]})},yr="_teamsContainer_1t68g_1",Sr={teamsContainer:yr},xr=({onSwitchTeam:e})=>{const{otherTeams:t}=W();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Sr.teamsContainer}`,children:t.map(n=>a.jsx(Nt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Er="_container_1u995_1",Pr="_planCta_1u995_15",Cr="_upgradeIconWrapper_1u995_19",Ce={container:Er,planCta:Pr,upgradeIconWrapper:Cr},zr=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=W();if(!s)return null;const c=ae(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(d.MenuItem,{href:e,className:`flex-col gap-1 items-start ${Ce.container}`,children:[a.jsx("span",{className:Ce.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${Ce.upgradeIconWrapper}`,children:[a.jsx(xt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},wr=Math.min,kr=Math.max;function gt(e,t,n){return kr(e,wr(t,n))}function Lt(e,t){return typeof e=="function"?e(t):e}function Ot(e){return e.split("-")[0]}function Rr(e){return e==="x"?"y":"x"}function Ar(e){return["top","bottom"].includes(Ot(e))?"y":"x"}function Ir(e){return{top:0,right:0,bottom:0,left:0,...e}}function Nr(e){return typeof e!="number"?Ir(e):{top:e,right:e,bottom:e,left:e}}function ft(e){const{x:t,y:n,width:s,height:o}=e;return{width:s,height:o,top:n,left:t,right:t+s,bottom:n+o,x:t,y:n}}async function Lr(e,t){var n;t===void 0&&(t={});const{x:s,y:o,platform:i,rects:c,elements:l,strategy:m}=e,{boundary:u="clippingAncestors",rootBoundary:g="viewport",elementContext:_="floating",altBoundary:j=!1,padding:y=0}=Lt(t,e),f=Nr(y),T=l[j?_==="floating"?"reference":"floating":_],h=ft(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(T)))==null||n?T:T.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:u,rootBoundary:g,strategy:m})),b=_==="floating"?{x:s,y:o,width:c.floating.width,height:c.floating.height}:c.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),P=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},E=ft(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:v,strategy:m}):b);return{top:(h.top-E.top+f.top)/P.y,bottom:(E.bottom-h.bottom+f.bottom)/P.y,left:(h.left-E.left+f.left)/P.x,right:(E.right-h.right+f.right)/P.x}}const Or=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:o}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:l={fn:T=>{let{x:h,y:b}=T;return{x:h,y:b}}},...m}=Lt(e,t),u={x:n,y:s},g=await Lr(t,m),_=Ar(Ot(o)),j=Rr(_);let y=u[j],f=u[_];if(i){const T=j==="y"?"top":"left",h=j==="y"?"bottom":"right",b=y+g[T],v=y-g[h];y=gt(b,y,v)}if(c){const T=_==="y"?"top":"left",h=_==="y"?"bottom":"right",b=f+g[T],v=f-g[h];f=gt(b,f,v)}const x=l.fn({...t,[j]:y,[_]:f});return{...x,data:{x:x.x-n,y:x.y-s,enabled:{[j]:i,[_]:c}}}}}},Mr="_navItem_1dudv_1",Ur="_activeNavItem_1dudv_18",Br="_badge_1dudv_23",ze={navItem:Mr,activeNavItem:Ur,badge:Br},Mt=p.createContext({}),X=()=>p.useContext(Mt),qr=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},Hr=(e,t)=>{switch(e){case z.Completed:return t<100?"Closed":"Completed";case z.Created:return t>0?"In progress":"Not started";case z.InProgress:return"In progress";case z.Queued:return"Queued";case z.NotStarted:return"Not started";default:return"-"}},Dr=e=>{const t=e.progress??0;return e.status===z.Created&&t>0?z.InProgress:e.status},$r={[F.translation]:"#0891B2",[F.review]:"#16922D",[F.lqa_by_ai]:"#8B5CF6",[F.automatic_translation]:"#60A5FA"},Fr=e=>{const t=[z.InProgress,z.Created,z.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:Dr(n)})).sort((n,s)=>n.status===z.InProgress&&n.progress===100?-1:s.status===z.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},_t=e=>e in[ne.InProgress,ne.Created],Gr=(e,t)=>_t(e.status)&&_t(t.status)&&(t.progress??0)>=100,Kr=({task:e,language:t})=>{const[n,s]=p.useState(!1),[o,i]=p.useState(!1),{onLanguageCompleteConfirm:c,fetchTasks:l}=X(),m=()=>{i(!1)};return a.jsxs(a.Fragment,{children:[o&&a.jsx(d.ConfirmModal,{opened:!0,loading:n,title:`Are you finished with ${t.name}?`,confirmText:"Mark as done",closeText:"Cancel",onClose:m,onConfirm:async()=>{s(!0),await c({task:e,language:t,closePrompt:m}),l()},children:a.jsxs(d.Alert,{status:"info",children:["Make sure you are finished and ",a.jsx("strong",{children:"mark it as done"})," to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."]})}),a.jsx(d.Link,{disabled:n,onClick:()=>{i(!0)},children:"Mark as done"})]})},Qr="_langRowCompleted_vpgdi_1",Jr="_langCellSecondary_vpgdi_15",Wr="_langStatus_vpgdi_20",we={langRowCompleted:Qr,langCellSecondary:Jr,langStatus:Wr},Xr=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===z.Completed,l=Gr(t,e);return a.jsxs("tr",{className:A({[we.langRowCompleted]:l}),children:[a.jsx("td",{children:a.jsx(d.Tooltip,{tooltip:"Open in bilingual view",children:a.jsx(d.Link,{href:n({task:t,language:e}),onClick:()=>{s==null||s({task:t,language:e})},children:e.name})})}),a.jsx("td",{className:we.langCellSecondary,children:l||c?"0":a.jsx(d.Tooltip,{tooltip:"Open uncompleted items",children:a.jsx(d.Link,{href:n({task:t,language:e,taskUncompleted:!0}),onClick:()=>{o==null||o({task:t,language:e})},children:e.base_words_total-e.base_words_done})})}),a.jsxs("td",{children:[i,"%"]}),a.jsx("td",{children:l?a.jsx(Kr,{task:t,language:e}):a.jsx("span",{className:`${we.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:Hr(e.status,i)})})]})},Yr="_taskContainer_mt2or_1",Vr="_taskTitle_mt2or_21",Zr="_taskDescription_mt2or_28",es="_languagesTable_mt2or_35",ts="_metadata_mt2or_87",U={taskContainer:Yr,taskTitle:Vr,taskDescription:Zr,languagesTable:es,metadata:ts},ns=({task:e})=>{const{tasks:t,getProjectUrl:n,taskTitleOnClick:s}=X(),o=Fr(e.langs),i=c=>{c!==void 0&&window.open(`/style-guide/${e.team_id}/download/${c.id}/link`,"_blank","noopener,noreferrer")};return t?a.jsxs("div",{className:U.taskContainer,children:[a.jsxs("div",{className:"flex-row gap-1 items-center",children:[a.jsxs("div",{className:"flex-row gap-1 items-start flex-wrap",children:[a.jsx(d.Tag,{color:$r[e.task_type],variant:"solid",children:e.task_type.toLocaleUpperCase()}),e.due_date&&a.jsxs(d.Tag,{color:"#EAB308",children:["DUE ",It(se.parseISO(e.due_date),"yyyy-MM-dd")]})]}),e.style_guides.length>0&&a.jsx("div",{className:"flex-row",children:e.style_guides.length===1?a.jsx(d.Button,{size:"sm",variant:"secondary",onClick:()=>i(e.style_guides[0]),children:"Download style guide"}):a.jsx(d.Menu,{menuButton:a.jsx(d.Button,{variant:"secondary",size:"sm",children:"Download style guide"}),children:a.jsx(d.MenuList,{children:e.style_guides.map(c=>a.jsx(d.MenuItem,{onClick:()=>i(c),children:qr(c.name).name},c.id))})})})]}),a.jsx("h4",{className:U.taskTitle,children:a.jsx(d.Link,{href:n({task:e,view:"multi"}),onClick:()=>{s==null||s({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:U.taskDescription,children:Rt(At(e.description))}),a.jsxs("table",{className:U.languagesTable,children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Languages"}),a.jsx("th",{children:"Words to do"}),a.jsx("th",{children:"Progress"}),a.jsx("th",{children:"Status"})]})}),a.jsx("tbody",{children:o.map(c=>a.jsx(Xr,{language:c,task:e},c.lang_id))})]}),a.jsxs("div",{className:U.metadata,children:[a.jsxs("span",{children:["Source: ",e.source_lang_name]}),a.jsx("span",{children:e.created_by_fullname}),a.jsxs("span",{children:["In ",e.project_name,e.master_branching_enabled==="1"&&a.jsx("div",{className:U.tag,children:e.branch_name?e.branch_name:"master"})]})]})]}):null},C={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},rs="_loadingContainer_19d6m_1",ss="_noTasksContainer_19d6m_7",as="_noTasksHeading_19d6m_14",os="_noTasksText_19d6m_18",is="_tasksContainer_19d6m_23",$={loadingContainer:rs,noTasksContainer:ss,noTasksHeading:as,noTasksText:os,tasksContainer:is},cs=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return oe(()=>(s(),t==null||t({tasks:e}),document.addEventListener(C.TaskCompleted,s),document.addEventListener(C.TaskClosed,s),document.addEventListener(C.Refresh,s),()=>{document.removeEventListener(C.TaskCompleted,s),document.removeEventListener(C.TaskClosed,s),document.removeEventListener(C.Refresh,s)})),n?a.jsx("div",{"data-testid":"sidebar-tasks-loading-popover",className:$.loadingContainer,children:a.jsx(d.Loading,{})}):e.length===0?a.jsxs("div",{"data-testid":"sidebar-no-tasks-popover",className:$.noTasksContainer,children:[a.jsx("h3",{className:$.noTasksHeading,children:"No tasks"}),a.jsxs("div",{className:$.noTasksText,children:["Your incoming tasks will appear here.",a.jsx("br",{}),a.jsx(d.Link,{href:"https://docs.lokalise.com/translation-workflow/tasks",target:"_new",children:"Learn more"})]})]}):a.jsx("div",{"data-testid":"sidebar-tasks-popover",className:$.tasksContainer,children:e.map(o=>a.jsx(ns,{task:o},o.id))})},ls=({children:e,config:t})=>{const[n,s]=p.useState([]),[o,i]=p.useState(!0),[c,l]=p.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y}=t,{getTasks:f,getTasksCount:x}=t,T=async()=>{i(!0);const v=await f();s(v),i(!1)},h=async()=>{const v=await x();l(v)};oe(()=>(h(),document.addEventListener(C.TaskCompleted,h),document.addEventListener(C.TaskClosed,h),document.addEventListener(C.Refresh,h),()=>{document.removeEventListener(C.TaskCompleted,h),document.removeEventListener(C.TaskClosed,h),document.removeEventListener(C.Refresh,h)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y};return a.jsx(Mt.Provider,{value:b,children:e})},us=e=>function(n){const{config:s,...o}=n;return a.jsx(ls,{config:s,children:a.jsx(e,{...o})})},ds=us(()=>{const[e,t]=p.useState(!1),{tasksCount:n}=X();return oe(()=>{const s=()=>{t(!0)};return document.addEventListener(C.ShowDialog,s),()=>{document.removeEventListener(C.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(cs,{}),placement:"right",open:e,onOpenChange:t,middlewares:[Or({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:A(ze.navItem,{[ze.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:ze.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),w=({children:e,...t})=>a.jsx("nav",{...t,className:Ln.sidebarContainer,children:e}),ms=({children:e})=>a.jsx("div",{children:e});w.Top=ms;const gs=({children:e})=>a.jsx("div",{children:e});w.Bottom=gs;w.Avatar=Un;w.IconLink=Hn;w.Menu=Fn;w.ProfileMenu=mr;w.TeamSwitch=xr;w.TeamMenuItem=Nt;w.UpgradeMenuItem=zr;w.ProfileSettingsMenuItem=_r;w.Tasks=ds;const fs="_breadcrumbsItem_1hm6a_1",_s="_breadcrumbs_1hm6a_1",ht={breadcrumbsItem:fs,breadcrumbs:_s},hs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:ht.breadcrumbs,children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[a.jsx(d.Link,{className:ht.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),ps=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[!!n&&t.some(s=>s.visible)&&a.jsx(d.MenuDivider,{}),t.filter(({visible:s})=>s).map(({link:s,label:o,onClick:i})=>a.jsx(d.MenuItem,{href:s||"#","aria-label":o,onClick:i,children:o},o))]},t[0].label))}),bs="_badge_1pc1v_1",Ts="_tag_1pc1v_15",vs="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",js="_disabled_1pc1v_57",ys="_projectNavigationItem_1pc1v_61",Ss="_projectNavigationItemDisabled_1pc1v_67",O={badge:bs,tag:Ts,withNavLinkStyle:vs,disabled:js,projectNavigationItem:ys,projectNavigationItemDisabled:Ss},pt=({label:e,badge:t,novel:n})=>a.jsxs("div",{className:"flex gap-1",children:[a.jsxs("div",{children:[a.jsx("span",{children:e}),!!t&&a.jsx("div",{className:O.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:O.tag,children:n})]}),ke=p.forwardRef(({label:e,href:t="",disabled:n=!1,badge:s,onClick:o,novel:i},c)=>a.jsx(d.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?O.projectNavigationItemDisabled:O.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:A(O.withNavLinkStyle,{[O.disabled]:n}),disabled:n,onClick:o,children:a.jsx(pt,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:O.withNavLinkStyle,children:a.jsx(pt,{label:e,badge:s,novel:i})})})}));ke.displayName="NavigationTabsItem";const xs=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,Es=e=>e.visible&&(!e.dropdown||xs(e.dropdown)),Ps=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:B.navigationTabList,"aria-orientation":"horizontal",children:e.filter(Es).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:B.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(d.Menu,{menuButton:({opened:c})=>a.jsx(ke,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(d.MenuList,{children:a.jsx(ps,{items:n.dropdown})})})},n.key):a.jsx("li",{className:B.navigationTab,"data-testid":n.key,"aria-selected":(o=n.isActive)==null?void 0:o.call(n,t),children:a.jsx(ke,{label:n.label,href:n.link,onClick:n.onClick,disabled:n.disabled,badge:n.badge,novel:n.novel,active:(i=n.isActive)==null?void 0:i.call(n,t)})},n.key)})})});class R{constructor(t){this.factories=t}static create(t={}){return new R([()=>t])}add(t,n){return new R([...this.factories,()=>({[t]:n})])}and(t){return new R([...this.factories,()=>t])}from(t){return new R([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new R([...this.factories,...t.factories])}async resolve(){const t=this.factories.map(s=>s()),n=await Promise.all(t);return Object.assign({},...n)}}function Me(e){return new Cs(e)}class Cs{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(R.create());return n instanceof Promise?n.then(s=>s.resolve()):n.resolve()})}}const Ut=r.z.union([r.z.literal("owner"),r.z.literal("admin"),r.z.literal("biller"),r.z.literal("member")]),zs=r.z.object({userId:r.z.number(),userUuid:r.z.string(),teamId:r.z.number(),userTeamRole:Ut,userEmail:r.z.string().email(),userName:r.z.string(),userCurrentTeamId:r.z.number(),planId:r.z.number(),planName:r.z.string(),isProviderAlpha:r.z.boolean(),isFullyAuthenticated:r.z.boolean(),exp:r.z.number()});function H(e){try{const t=e.split(".")[1],n=atob(t);return zs.parse(JSON.parse(n))}catch{return}}class Q extends Error{constructor(){super(...arguments);ee(this,"name","UnauthorizedError");ee(this,"status",401)}}function ws(e){return Me(async t=>{var i,c;const n=e.getCurrentToken()??await((i=e.generateNewToken)==null?void 0:i.call(e));if(!n)throw new Q;const{exp:s}=H(n.accessToken)??{exp:0};if(!se.isThisSecond(new Date(s)))return t.add("Authorization",`Bearer ${n.accessToken}`);const o=await e.refreshToken(n);if(!o)throw new Q;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("Authorization",`Bearer ${o.accessToken}`)})}const ks=Me(e=>e.and({"x-lokalise-plugin":"true"}));function Ue(){const e=Re(document.cookie,"accessToken"),t=Re(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Re(document.cookie,"csrf_token")??null}function Re(e,t){var n,s;return(s=(n=e.split(";").find(o=>o.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:s.substring(t.length+1)}function Rs(){const e=Ue();if(!e)return;const t=H(e.accessToken);if(t)return{...e,payload:t}}const qt=r.z.union([r.z.object({Authorization:r.z.string()}),r.z.object({authorization:r.z.string()}),r.z.object({AUTHORIZATION:r.z.string()})]),As=r.z.union([r.z.object({"X-API-Token":r.z.string()}),r.z.object({"X-Api-Token":r.z.string()}),r.z.object({"x-api-token":r.z.string()}),r.z.object({"X-API-TOKEN":r.z.string()})]),Is=r.z.union([qt,As]),Ns=r.z.union([r.z.object({"X-Lokalise-Plugin":r.z.string()}),r.z.object({"x-lokalise-plugin":r.z.string()}),r.z.object({"X-LOKALISE-PLUGIN":r.z.string()})]),Y=Is.and(Ns),Ls=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),Os=r.z.union([r.z.object({"X-Csrf-Token":r.z.string()}),r.z.object({"X-CSRF-Token":r.z.string()}),r.z.object({"x-csrf-token":r.z.string()}),r.z.object({"X-CSRF-TOKEN":r.z.string()})]),Ms=r.z.union([qt,Os]),ie=Ae.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:r.z.object({teamId:r.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:Ms,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:Ls});function Us(e,t,n){return async()=>{const s=t();if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:Number(await n())},headers:await R.create().add("x-csrf-token",s).resolve()})}}function Bs(e){return async({accessToken:t,refreshToken:n})=>{const s=H(t);if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:s.teamId},headers:await R.create().add("Authorization",`Bearer ${n}`).resolve()})}}const Ht={teamKey:e=>["getUserToken",e]},Dt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByPayloadRoute(e,ie,{headers:await t.resolve(),pathParams:{teamId:o}})}),re=class re extends CustomEvent{constructor(t){super(re.eventName,{detail:{token:t,payload:H(t.accessToken)}})}};ee(re,"eventName","new-jwt-issued");let J=re;function qs(e,t,n){const s=Bt(),o=Dt(e,t.add("x-csrf-token",s??""),{queryKey:Ht.teamKey(n),enabled:s!==void 0}),i=p.useRef();return p.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new J(o.data)),i.current=o.data.accessToken)},[o.data]),o}function Be(){const[e,t]=p.useState();return p.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Ue();return t(s?H(s.accessToken):void 0),window.addEventListener(J.eventName,n),()=>{window.removeEventListener(J.eventName,n)}},[]),e}const Hs=Y,Ds=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),role:Ut}),$s=r.z.object({team_id:r.z.number(),team_user:Ds}),$t=q.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Hs,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:$s}),Ft={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Gt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,$t,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function Fs(e,t){const n=Be();return Gt(e,t,{queryKey:Ft.teamUserKey((n==null?void 0:n.teamId)??0,(n==null?void 0:n.userId)??0),enabled:(n==null?void 0:n.userId)!==void 0&&n.teamId!==void 0})}const Gs=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_writable:r.z.union([r.z.literal(0),r.z.literal(1)])}),Ks=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Gs),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),Qs=r.z.object({project_id:r.z.string(),contributors:r.z.array(Ks)}),Kt=q.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:Y,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:Qs}),Qt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},Jt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,Kt,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function Js(e,t,n){const s=Be();return Jt(e,t,{queryKey:Qt.projectUserKey(n,(s==null?void 0:s.userId)??0),enabled:s!==void 0})}const Ws=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),Xs=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),Ys=r.z.object({projectId:r.z.string()}),Vs=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_rtl:r.z.boolean(),plural_forms:r.z.array(r.z.string().optional())}),Zs=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Vs)}),ea=r.z.object({projectId:r.z.string()}),ta=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),na=r.z.object({success:r.z.boolean()}),Wt=q.buildGetRoute({description:"List of project languages",requestHeaderSchema:Y,requestPathParamsSchema:Ys,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:Zs}),Xt=q.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:Y,method:"put",requestPathParamsSchema:ea,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:ta,successResponseBodySchema:na}),ce=Y,qe=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),ra=r.z.object({per_platform_key_names:r.z.boolean(),reviewing:r.z.boolean(),auto_toggle_unverified:r.z.boolean(),offline_translation:r.z.boolean(),key_editing:r.z.boolean(),inline_machine_translations:r.z.boolean(),custom_translation_statuses:r.z.boolean(),custom_translation_statuses_allow_multiple:r.z.boolean(),segmentation:r.z.boolean(),contributor_preview_download_enabled:r.z.boolean()}),sa=r.z.object({not_reviewed:r.z.number(),unverified:r.z.number(),spelling_grammar:r.z.number(),inconsistent_placeholders:r.z.number(),inconsistent_html:r.z.number(),different_number_of_urls:r.z.number(),different_urls:r.z.number(),leading_whitespace:r.z.number(),trailing_whitespace:r.z.number(),different_number_of_email_address:r.z.number(),different_email_address:r.z.number(),different_brackets:r.z.number(),different_numbers:r.z.number(),double_space:r.z.number(),special_placeholder:r.z.number(),unbalanced_brackets:r.z.number()}),aa=r.z.object({progress_total:r.z.number(),keys_total:r.z.number(),team:r.z.number(),base_words:r.z.number(),qa_issues_total:r.z.number(),qa_issues:sa,languages:r.z.array(Xs)}),le=r.z.object({project_id:r.z.string(),uuid:r.z.string().uuid(),project_type:qe,name:r.z.string(),description:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),created_by:r.z.number(),created_by_email:r.z.string(),team_id:r.z.number(),base_language_id:r.z.number(),base_language_iso:r.z.string(),settings:ra.optional(),statistics:aa.optional()}),oa=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(Ws),project_type:qe,is_segmentation_enabled:r.z.boolean()}),bt=r.z.union([r.z.literal(0),r.z.literal(1)]),ia=r.z.object({filter_type:qe.optional(),filter_team_id:r.z.number().optional(),filter_names:r.z.string().optional(),include_statistics:bt.optional(),include_settings:bt.optional(),limit:r.z.number().optional(),page:r.z.number().optional()}),ca=r.z.object({projects:r.z.array(le)}),la=r.z.object({project_id:r.z.string()}),ua=r.z.object({project_id:r.z.string()}),da=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),ue=()=>"/projects",Yt=Ae.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:ce,method:"post",pathResolver:ue,requestBodySchema:oa,successResponseBodySchema:le}),Vt=q.buildGetRoute({description:"List all projects",requestHeaderSchema:ce,pathResolver:ue,requestQuerySchema:ia,successResponseBodySchema:ca}),Zt=q.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:ce,requestPathParamsSchema:la,pathResolver:({project_id:e})=>`${ue()}/${e}`,successResponseBodySchema:le}),en=Ae.buildPayloadRoute({description:"Update a project",requestHeaderSchema:ce,method:"put",requestPathParamsSchema:ua,pathResolver:({project_id:e})=>`${ue()}/${e}`,requestBodySchema:da,successResponseBodySchema:le});function ma(e,t,n={}){return I.useMutation({...n,mutationFn:async s=>k.sendByPayloadRoute(e,Yt,{headers:await t.resolve(),body:s})})}const ga={projectIdKey:e=>["listProjectLanguages",e]};function fa(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Wt,{headers:await t.resolve(),pathParams:{projectId:o}})})}const _a={paramsKey:e=>["listProjects",e]};function ha(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Vt,{headers:await t.resolve(),queryParams:o})})}const pa={projectIdKey:e=>["retrieveProject",e]};function ba(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Zt,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ta(e,t,n,s={}){return I.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,en,{headers:await t.resolve(),body:o,pathParams:n})})}function va(e,t,n,s={}){return I.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,Xt,{pathParams:t,headers:await n.resolve(),body:o})})}exports.Breadcrumbs=hs;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=kt;exports.ESSENTIAL_PLAN_IDS=zt;exports.FREE_PLAN_ID=Ne;exports.HeaderBuilder=R;exports.JwtAuthHeaderBuilderMiddleware=ws;exports.NavigationPanel=K;exports.NavigationTabs=Ps;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=ks;exports.START_PLAN_IDS=Ct;exports.Sidebar=w;exports.SidebarTaskLanguageStatuses=z;exports.SidebarTaskStatuses=ne;exports.SidebarTaskTypeOptions=F;exports.TRIAL_PLAN_ID=Pt;exports.UnauthorizedError=Q;exports.bulkUpdateProjectLanguages=Xt;exports.convertNewLineToBreakTag=Rt;exports.createHeaderBuilderMiddleware=Me;exports.createProject=Yt;exports.formatDate=It;exports.formatDateTz=ur;exports.generateTokenFromClassicSession=Us;exports.getAuthenticatedSessionDetailFromRequest=Rs;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Ue;exports.getTeamUser=$t;exports.getTeamUsersQueryKey=Ft;exports.getUserToken=ie;exports.getUserTokenKey=Ht;exports.isEnterpriseOpenSourcePlan=ar;exports.isEnterprisePlan=rr;exports.isEssentialPlan=tr;exports.isFreePlan=ae;exports.isPaidPlan=sr;exports.isProPlan=nr;exports.isStartPlan=er;exports.isTrialPlan=Oe;exports.listProjectLanguages=Wt;exports.listProjectLanguagesKey=ga;exports.listProjects=Vt;exports.listProjectsKey=_a;exports.makeUrlClickable=At;exports.parseJwtTokenPayload=H;exports.refreshExpiredToken=Bs;exports.retrieveContributor=Kt;exports.retrieveContributorKeys=Qt;exports.retrieveProject=Zt;exports.retrieveProjectQueryKey=pa;exports.updateProject=en;exports.useAuthenticatedProjectContributor=Js;exports.useAuthenticatedSessionPayload=Be;exports.useAuthenticatedUser=Fs;exports.useBulkUpdateProjectLanguagesMutation=va;exports.useCreateProjectMutation=ma;exports.useEffectOnce=oe;exports.useGetPromotedClassicSessionJwtQuery=qs;exports.useGetTeamUsersQuery=Gt;exports.useGetUserTokenQuery=Dt;exports.useListProjectLanguagesQuery=fa;exports.useListProjectsQuery=ha;exports.useRetrieveContributorQuery=Jt;exports.useRetrieveProjectQuery=ba;exports.useUpdateProjectMutation=Ta;
|
1
|
+
"use strict";var rn=Object.defineProperty;var sn=(e,t,n)=>t in e?rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>sn(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),p=require("react"),d=require("@lokalise/louis"),se=require("date-fns"),an=require("date-fns-tz"),r=require("zod"),Ie=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),k=require("@lokalise/frontend-http-client"),A=require("@tanstack/react-query"),q=require("@lokalise/universal-ts-utils/node");function on(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const G=on(p),ne={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},z={...ne,NotStarted:"not_started"},F={translation:"translation",review:"review",lqa_by_ai:"lqa_by_ai",automatic_translation:"automatic_translation"};var te=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var me,Fe;function Ae(){if(Fe)return me;Fe=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return me=e,me}var ge,Ge;function cn(){if(Ge)return ge;Ge=1;var e=typeof te=="object"&&te&&te.Object===Object&&te;return ge=e,ge}var fe,Ke;function vt(){if(Ke)return fe;Ke=1;var e=cn(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return fe=n,fe}var _e,Qe;function ln(){if(Qe)return _e;Qe=1;var e=vt(),t=function(){return e.Date.now()};return _e=t,_e}var he,Je;function un(){if(Je)return he;Je=1;var e=/\s/;function t(n){for(var s=n.length;s--&&e.test(n.charAt(s)););return s}return he=t,he}var pe,We;function dn(){if(We)return pe;We=1;var e=un(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return pe=n,pe}var be,Xe;function jt(){if(Xe)return be;Xe=1;var e=vt(),t=e.Symbol;return be=t,be}var Te,Ye;function mn(){if(Ye)return Te;Ye=1;var e=jt(),t=Object.prototype,n=t.hasOwnProperty,s=t.toString,o=e?e.toStringTag:void 0;function i(c){var l=n.call(c,o),m=c[o];try{c[o]=void 0;var u=!0}catch{}var g=s.call(c);return u&&(l?c[o]=m:delete c[o]),g}return Te=i,Te}var ve,Ve;function gn(){if(Ve)return ve;Ve=1;var e=Object.prototype,t=e.toString;function n(s){return t.call(s)}return ve=n,ve}var je,Ze;function fn(){if(Ze)return je;Ze=1;var e=jt(),t=mn(),n=gn(),s="[object Null]",o="[object Undefined]",i=e?e.toStringTag:void 0;function c(l){return l==null?l===void 0?o:s:i&&i in Object(l)?t(l):n(l)}return je=c,je}var ye,et;function _n(){if(et)return ye;et=1;function e(t){return t!=null&&typeof t=="object"}return ye=e,ye}var Se,tt;function hn(){if(tt)return Se;tt=1;var e=fn(),t=_n(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return Se=s,Se}var xe,nt;function pn(){if(nt)return xe;nt=1;var e=dn(),t=Ae(),n=hn(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function m(u){if(typeof u=="number")return u;if(n(u))return s;if(t(u)){var g=typeof u.valueOf=="function"?u.valueOf():u;u=t(g)?g+"":g}if(typeof u!="string")return u===0?u:+u;u=e(u);var _=i.test(u);return _||c.test(u)?l(u.slice(2),_?2:8):o.test(u)?s:+u}return xe=m,xe}var Ee,rt;function yt(){if(rt)return Ee;rt=1;var e=Ae(),t=ln(),n=pn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var g,_,j,y,f,x,T=0,h=!1,b=!1,v=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(h=!!u.leading,b="maxWait"in u,j=b?o(n(u.maxWait)||0,m):j,v="trailing"in u?!!u.trailing:v);function P(S){var N=g,D=_;return g=_=void 0,T=S,y=l.apply(D,N),y}function E(S){return T=S,f=setTimeout(Z,m),h?P(S):y}function V(S){var N=S-x,D=S-T,$e=m-N;return b?i($e,j-D):$e}function He(S){var N=S-x,D=S-T;return x===void 0||N>=m||N<0||b&&D>=j}function Z(){var S=t();if(He(S))return De(S);f=setTimeout(Z,V(S))}function De(S){return f=void 0,v&&g?P(S):(g=_=void 0,y)}function tn(){f!==void 0&&clearTimeout(f),T=0,g=x=_=f=void 0}function nn(){return f===void 0?y:De(t())}function de(){var S=t(),N=He(S);if(g=arguments,_=this,x=S,N){if(f===void 0)return E(x);if(b)return clearTimeout(f),f=setTimeout(Z,m),P(x)}return f===void 0&&(f=setTimeout(Z,m)),y}return de.cancel=tn,de.flush=nn,de}return Ee=c,Ee}var bn=yt();const Tn=Tt(bn);var Pe,st;function vn(){if(st)return Pe;st=1;var e=yt(),t=Ae(),n="Expected a function";function s(o,i,c){var l=!0,m=!0;if(typeof o!="function")throw new TypeError(n);return t(c)&&(l="leading"in c?!!c.leading:l,m="trailing"in c?!!c.trailing:m),e(o,i,{leading:l,maxWait:i,trailing:m})}return Pe=s,Pe}var jn=vn();const yn=Tt(jn),Sn=(e,t,n,s)=>{switch(t){case"debounce":return Tn(e,n,s);case"throttle":return yn(e,n,s);default:return e}},xn=e=>{const t=G.useRef(e);return G.useEffect(()=>{t.current=e}),G.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},En=e=>{const[t,n]=G.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:G.useMemo(()=>new Proxy(o=>{o!==t&&n(o)},{get(o,i){return i==="current"?t:o[i]},set(o,i,c){return i==="current"?n(c):o[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Pn=(e,t)=>t==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:t==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function Cn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=p.useRef(e),g=xn(m),[_,j]=p.useState({width:void 0,height:void 0}),{refProxy:y,refElement:f}=En(c),{box:x}=l||{},T=p.useCallback(b=>{if(!o&&!i)return;if(u.current){u.current=!1;return}const v=(P,E)=>o&&P.width!==E.width||i&&P.height!==E.height;b.forEach(P=>{const E=Pn(P,x);j(V=>v(V,E)?(g==null||g({width:E.width,height:E.height,entry:P}),E):V)})},[o,i,u,x]),h=p.useCallback(Sn(T,t,n,s),[T,t,n,s]);return p.useEffect(()=>{let b;return f?(b=new window.ResizeObserver(h),b.observe(f,l)):(_.width||_.height)&&(g==null||g({width:null,height:null,entry:null}),j({width:void 0,height:void 0})),()=>{var v,P,E;(v=b==null?void 0:b.disconnect)===null||v===void 0||v.call(b),(E=(P=h).cancel)===null||E===void 0||E.call(P)}},[h,f]),Object.assign({ref:y},_)}function St(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=St(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function I(){for(var e,t,n=0,s="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=St(e))&&(s&&(s+=" "),s+=t);return s}const zn="_headerContainer_1cubo_1",wn="_navigationTabList_1cubo_8",kn="_navigationTab_1cubo_8",Rn="_headerContent_1cubo_34",In="_staticEnabled_1cubo_50",B={headerContainer:zn,navigationTabList:wn,navigationTab:kn,headerContent:Rn,staticEnabled:In},An=77,K=({sticky:e,children:t})=>{const{ref:n,height:s}=Cn({refreshMode:"debounce",refreshRate:0}),[o,i]=p.useState(!1),c=()=>o?!e:!0;p.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||An}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:I(B.headerContent,{[B.staticEnabled]:c()}),children:[a.jsx(K.Header,{}),a.jsx(K.Tabs,{}),t]})})})};K.Header=({children:e})=>a.jsx("div",{className:B.headerContainer,children:e});K.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Nn="_sidebarContainer_bmdti_1",Ln={sidebarContainer:Nn},On="_logoLink_1baxb_1",Mn={logoLink:On},Un=({src:e,href:t="/",ariaLabel:n="Home",alt:s="Lokalise"})=>a.jsx("a",{className:Mn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),Bn="_link_18vhx_1",qn="_active_18vhx_18",at={link:Bn,active:qn},Hn=({label:e,to:t,icon:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:e,children:a.jsx(d.Link,{className:I(at.link,{[at.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),Dn="_dropdownButton_13l5r_1",$n="_dropdownButtonActive_13l5r_18",ot={dropdownButton:Dn,dropdownButtonActive:$n},Fn=({children:e,icon:t})=>a.jsx(d.Menu,{menuButton:({opened:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:I(ot.dropdownButton,{[ot.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(d.MenuList,{placement:"right-start",children:e})}),Gn="_iconContainer_nz34m_1",Kn={iconContainer:Gn},xt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:I(Kn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Qn="_menuContainer_ywskt_5",Jn="_profileButton_ywskt_15",Wn="_profileImage_ywskt_28",Xn="_profileImageHighlight_ywskt_36",Yn="_profileImageUpgradeIcon_ywskt_40",Vn="_userIconWrapper_ywskt_46",L={menuContainer:Qn,profileButton:Jn,profileImage:Wn,profileImageHighlight:Xn,profileImageUpgradeIcon:Yn,userIconWrapper:Vn},Et=p.createContext({}),W=()=>p.useContext(Et),Zn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:g}=W();return a.jsx(d.Menu,{menuButton:()=>a.jsxs("button",{className:L.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:I(L.profileImage,{[L.profileImageHighlight]:s}),alt:"Team Logo"}):a.jsx("div",{className:I(L.userIconWrapper,"flex-row","align-center","items-center",{[L.profileImageHighlight]:s}),children:a.jsx(d.UserIcon,{size:"25px"})}),s&&a.jsx(xt,{className:L.profileImageUpgradeIcon})]}),children:a.jsx(d.MenuList,{placement:"right-end",className:L.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,showBillingButton:o,isProviderAlpha:c,isFullyAuthenticated:g})})})},Ne=0,Pt=9999,Ct=[150,151,250,251],zt=[152,153,252,253],wt=[154,155,157,158,254,255,258,354,355,358],kt=[156,159,160,256,259,260],Le=9998,ae=e=>e===Ne,Oe=e=>e===Pt,er=e=>Ct.includes(e),tr=e=>zt.includes(e),nr=e=>wt.includes(e),rr=e=>kt.includes(e),sr=e=>e>Ne&&e<Le,ar=e=>e===Le,or=/\n/,it=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[p.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),ir=(e,t,n)=>typeof e=="string"?it(e,t,n):e.flatMap(s=>typeof s=="string"?it(s,t,n):s),Rt=e=>ir(e,or,a.jsx("br",{})),cr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,lr=e=>e.match(cr)??[],ct=(e,t,n)=>{const s=e.split(t);if(s.length===1)return e;const o=[];return s[0]!==""&&o.push(s[0]),s.shift(),s[s.length-1]===""&&s.pop(),o.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),o.push(s.join(t)),o.filter(i=>i!=="")},lt=e=>{const t=lr(e);return t!=null&&t.length?t.reduce((n,s,o)=>typeof n=="string"?ct(n,s,o):n.flatMap(i=>typeof i=="string"?ct(i,s,o):i),e):e},It=e=>typeof e=="string"?lt(e):e.flatMap(t=>typeof t=="string"?lt(t):t,e),At=(e,t="PP")=>se.format(e,t),ur=(e,t,n="PP")=>se.format(an.toZonedTime(e,t),n),oe=e=>{p.useEffect(e,[])},ut={biller:"biller",owner:"owner"},dt=[ut.biller,ut.owner],dr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(h=>h.id===s),u=n.filter(h=>h.id!==s),g=dt.includes(l),_=dt.includes(l),j=ae(o)||Oe(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:g,canAccessTeamSettings:_,isOnFreeOrTrialPlan:j,showUpgradeCta:c&&j&&g,showBillingButton:c&&_&&g,allowTeamCreation:c&&!i};return a.jsx(Et.Provider,{value:T,children:e})},mr=({config:e,children:t})=>a.jsx(dr,{config:e,children:a.jsx(Zn,{children:t})}),gr="_container_q5pot_1",fr="_profileEmail_q5pot_5",mt={container:gr,profileEmail:fr},_r=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=W();return o||i?null:a.jsxs(a.Fragment,{children:[a.jsx(d.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${mt.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:mt.profileEmail,children:n})]})}),!s&&a.jsx(d.MenuDivider,{})]})},hr="_wrapper_15d85_1",pr="_profileImage_15d85_14",br="_teamName_15d85_22",Tr="_planLabel_15d85_29",vr="_membership_15d85_38",jr="_defaultProfileImage_15d85_44",M={wrapper:hr,profileImage:pr,teamName:br,planLabel:Tr,membership:vr,defaultProfileImage:jr},Nt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=W(),i=e||s;if(!i)return null;const c=ae(o)?"Free":Oe(o)?"Trial":void 0,l=t?d.MenuItem:"div";return a.jsxs(l,{className:`flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:M.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${M.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:"flex-col items-start",children:[a.jsxs("div",{className:"flex-row items-center flex-nowrap gap-2",children:[a.jsx("span",{title:i.name,className:M.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${M.planLabel}`,children:c})]}),a.jsx("span",{className:M.membership,children:i.role})]})]})},yr="_teamsContainer_1t68g_1",Sr={teamsContainer:yr},xr=({onSwitchTeam:e})=>{const{otherTeams:t}=W();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Sr.teamsContainer}`,children:t.map(n=>a.jsx(Nt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Er="_container_1u995_1",Pr="_planCta_1u995_15",Cr="_upgradeIconWrapper_1u995_19",Ce={container:Er,planCta:Pr,upgradeIconWrapper:Cr},zr=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=W();if(!s)return null;const c=ae(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(d.MenuItem,{href:e,className:`flex-col gap-1 items-start ${Ce.container}`,children:[a.jsx("span",{className:Ce.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${Ce.upgradeIconWrapper}`,children:[a.jsx(xt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},wr=Math.min,kr=Math.max;function gt(e,t,n){return kr(e,wr(t,n))}function Lt(e,t){return typeof e=="function"?e(t):e}function Ot(e){return e.split("-")[0]}function Rr(e){return e==="x"?"y":"x"}function Ir(e){return["top","bottom"].includes(Ot(e))?"y":"x"}function Ar(e){return{top:0,right:0,bottom:0,left:0,...e}}function Nr(e){return typeof e!="number"?Ar(e):{top:e,right:e,bottom:e,left:e}}function ft(e){const{x:t,y:n,width:s,height:o}=e;return{width:s,height:o,top:n,left:t,right:t+s,bottom:n+o,x:t,y:n}}async function Lr(e,t){var n;t===void 0&&(t={});const{x:s,y:o,platform:i,rects:c,elements:l,strategy:m}=e,{boundary:u="clippingAncestors",rootBoundary:g="viewport",elementContext:_="floating",altBoundary:j=!1,padding:y=0}=Lt(t,e),f=Nr(y),T=l[j?_==="floating"?"reference":"floating":_],h=ft(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(T)))==null||n?T:T.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:u,rootBoundary:g,strategy:m})),b=_==="floating"?{x:s,y:o,width:c.floating.width,height:c.floating.height}:c.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),P=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},E=ft(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:v,strategy:m}):b);return{top:(h.top-E.top+f.top)/P.y,bottom:(E.bottom-h.bottom+f.bottom)/P.y,left:(h.left-E.left+f.left)/P.x,right:(E.right-h.right+f.right)/P.x}}const Or=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:o}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:l={fn:T=>{let{x:h,y:b}=T;return{x:h,y:b}}},...m}=Lt(e,t),u={x:n,y:s},g=await Lr(t,m),_=Ir(Ot(o)),j=Rr(_);let y=u[j],f=u[_];if(i){const T=j==="y"?"top":"left",h=j==="y"?"bottom":"right",b=y+g[T],v=y-g[h];y=gt(b,y,v)}if(c){const T=_==="y"?"top":"left",h=_==="y"?"bottom":"right",b=f+g[T],v=f-g[h];f=gt(b,f,v)}const x=l.fn({...t,[j]:y,[_]:f});return{...x,data:{x:x.x-n,y:x.y-s,enabled:{[j]:i,[_]:c}}}}}},Mr="_navItem_1dudv_1",Ur="_activeNavItem_1dudv_18",Br="_badge_1dudv_23",ze={navItem:Mr,activeNavItem:Ur,badge:Br},Mt=p.createContext({}),X=()=>p.useContext(Mt),qr=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},Hr=(e,t)=>{switch(e){case z.Completed:return t<100?"Closed":"Completed";case z.Created:return t>0?"In progress":"Not started";case z.InProgress:return"In progress";case z.Queued:return"Queued";case z.NotStarted:return"Not started";default:return"-"}},Dr=e=>{const t=e.progress??0;return e.status===z.Created&&t>0?z.InProgress:e.status},$r={[F.translation]:"#0891B2",[F.review]:"#16922D",[F.lqa_by_ai]:"#8B5CF6",[F.automatic_translation]:"#60A5FA"},Fr=e=>{const t=[z.InProgress,z.Created,z.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:Dr(n)})).sort((n,s)=>n.status===z.InProgress&&n.progress===100?-1:s.status===z.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},_t=e=>e in[ne.InProgress,ne.Created],Gr=(e,t)=>_t(e.status)&&_t(t.status)&&(t.progress??0)>=100,Kr=({task:e,language:t})=>{const[n,s]=p.useState(!1),[o,i]=p.useState(!1),{onLanguageCompleteConfirm:c,fetchTasks:l}=X(),m=()=>{i(!1)};return a.jsxs(a.Fragment,{children:[o&&a.jsx(d.ConfirmModal,{opened:!0,loading:n,title:`Are you finished with ${t.name}?`,confirmText:"Mark as done",closeText:"Cancel",onClose:m,onConfirm:async()=>{s(!0),await c({task:e,language:t,closePrompt:m}),l()},children:a.jsxs(d.Alert,{status:"info",children:["Make sure you are finished and ",a.jsx("strong",{children:"mark it as done"})," to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."]})}),a.jsx(d.Link,{disabled:n,onClick:()=>{i(!0)},children:"Mark as done"})]})},Qr="_langRowCompleted_vpgdi_1",Jr="_langCellSecondary_vpgdi_15",Wr="_langStatus_vpgdi_20",we={langRowCompleted:Qr,langCellSecondary:Jr,langStatus:Wr},Xr=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===z.Completed,l=Gr(t,e);return a.jsxs("tr",{className:I({[we.langRowCompleted]:l}),children:[a.jsx("td",{children:a.jsx(d.Tooltip,{tooltip:"Open in bilingual view",children:a.jsx(d.Link,{href:n({task:t,language:e}),onClick:()=>{s==null||s({task:t,language:e})},children:e.name})})}),a.jsx("td",{className:we.langCellSecondary,children:l||c?"0":a.jsx(d.Tooltip,{tooltip:"Open uncompleted items",children:a.jsx(d.Link,{href:n({task:t,language:e,taskUncompleted:!0}),onClick:()=>{o==null||o({task:t,language:e})},children:e.base_words_total-e.base_words_done})})}),a.jsxs("td",{children:[i,"%"]}),a.jsx("td",{children:l?a.jsx(Kr,{task:t,language:e}):a.jsx("span",{className:`${we.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:Hr(e.status,i)})})]})},Yr="_taskContainer_mt2or_1",Vr="_taskTitle_mt2or_21",Zr="_taskDescription_mt2or_28",es="_languagesTable_mt2or_35",ts="_metadata_mt2or_87",U={taskContainer:Yr,taskTitle:Vr,taskDescription:Zr,languagesTable:es,metadata:ts},ns=({task:e})=>{const{tasks:t,getProjectUrl:n,taskTitleOnClick:s}=X(),o=Fr(e.langs),i=c=>{c!==void 0&&window.open(`/style-guide/${e.team_id}/download/${c.id}/link`,"_blank","noopener,noreferrer")};return t?a.jsxs("div",{className:U.taskContainer,children:[a.jsxs("div",{className:"flex-row gap-1 items-center",children:[a.jsxs("div",{className:"flex-row gap-1 items-start flex-wrap",children:[a.jsx(d.Tag,{color:$r[e.task_type],variant:"solid",children:e.task_type.toLocaleUpperCase()}),e.due_date&&a.jsxs(d.Tag,{color:"#EAB308",children:["DUE ",At(se.parseISO(e.due_date),"yyyy-MM-dd")]})]}),e.style_guides.length>0&&a.jsx("div",{className:"flex-row",children:e.style_guides.length===1?a.jsx(d.Button,{size:"sm",variant:"secondary",onClick:()=>i(e.style_guides[0]),children:"Download style guide"}):a.jsx(d.Menu,{menuButton:a.jsx(d.Button,{variant:"secondary",size:"sm",children:"Download style guide"}),children:a.jsx(d.MenuList,{children:e.style_guides.map(c=>a.jsx(d.MenuItem,{onClick:()=>i(c),children:qr(c.name).name},c.id))})})})]}),a.jsx("h4",{className:U.taskTitle,children:a.jsx(d.Link,{href:n({task:e,view:"multi"}),onClick:()=>{s==null||s({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:U.taskDescription,children:Rt(It(e.description))}),a.jsxs("table",{className:U.languagesTable,children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Languages"}),a.jsx("th",{children:"Words to do"}),a.jsx("th",{children:"Progress"}),a.jsx("th",{children:"Status"})]})}),a.jsx("tbody",{children:o.map(c=>a.jsx(Xr,{language:c,task:e},c.lang_id))})]}),a.jsxs("div",{className:U.metadata,children:[a.jsxs("span",{children:["Source: ",e.source_lang_name]}),a.jsx("span",{children:e.created_by_fullname}),a.jsxs("span",{children:["In ",e.project_name,e.master_branching_enabled==="1"&&a.jsx("div",{className:U.tag,children:e.branch_name?e.branch_name:"master"})]})]})]}):null},C={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},rs="_loadingContainer_19d6m_1",ss="_noTasksContainer_19d6m_7",as="_noTasksHeading_19d6m_14",os="_noTasksText_19d6m_18",is="_tasksContainer_19d6m_23",$={loadingContainer:rs,noTasksContainer:ss,noTasksHeading:as,noTasksText:os,tasksContainer:is},cs=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return oe(()=>(s(),t==null||t({tasks:e}),document.addEventListener(C.TaskCompleted,s),document.addEventListener(C.TaskClosed,s),document.addEventListener(C.Refresh,s),()=>{document.removeEventListener(C.TaskCompleted,s),document.removeEventListener(C.TaskClosed,s),document.removeEventListener(C.Refresh,s)})),n?a.jsx("div",{"data-testid":"sidebar-tasks-loading-popover",className:$.loadingContainer,children:a.jsx(d.Loading,{})}):e.length===0?a.jsxs("div",{"data-testid":"sidebar-no-tasks-popover",className:$.noTasksContainer,children:[a.jsx("h3",{className:$.noTasksHeading,children:"No tasks"}),a.jsxs("div",{className:$.noTasksText,children:["Your incoming tasks will appear here.",a.jsx("br",{}),a.jsx(d.Link,{href:"https://docs.lokalise.com/translation-workflow/tasks",target:"_new",children:"Learn more"})]})]}):a.jsx("div",{"data-testid":"sidebar-tasks-popover",className:$.tasksContainer,children:e.map(o=>a.jsx(ns,{task:o},o.id))})},ls=({children:e,config:t})=>{const[n,s]=p.useState([]),[o,i]=p.useState(!0),[c,l]=p.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y}=t,{getTasks:f,getTasksCount:x}=t,T=async()=>{i(!0);const v=await f();s(v),i(!1)},h=async()=>{const v=await x();l(v)};oe(()=>(h(),document.addEventListener(C.TaskCompleted,h),document.addEventListener(C.TaskClosed,h),document.addEventListener(C.Refresh,h),()=>{document.removeEventListener(C.TaskCompleted,h),document.removeEventListener(C.TaskClosed,h),document.removeEventListener(C.Refresh,h)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y};return a.jsx(Mt.Provider,{value:b,children:e})},us=e=>function(n){const{config:s,...o}=n;return a.jsx(ls,{config:s,children:a.jsx(e,{...o})})},ds=us(()=>{const[e,t]=p.useState(!1),{tasksCount:n}=X();return oe(()=>{const s=()=>{t(!0)};return document.addEventListener(C.ShowDialog,s),()=>{document.removeEventListener(C.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(cs,{}),placement:"right",open:e,onOpenChange:t,middlewares:[Or({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:I(ze.navItem,{[ze.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:ze.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),w=({children:e,...t})=>a.jsx("nav",{...t,className:Ln.sidebarContainer,children:e}),ms=({children:e})=>a.jsx("div",{children:e});w.Top=ms;const gs=({children:e})=>a.jsx("div",{children:e});w.Bottom=gs;w.Avatar=Un;w.IconLink=Hn;w.Menu=Fn;w.ProfileMenu=mr;w.TeamSwitch=xr;w.TeamMenuItem=Nt;w.UpgradeMenuItem=zr;w.ProfileSettingsMenuItem=_r;w.Tasks=ds;const fs="_breadcrumbsItem_1hm6a_1",_s="_breadcrumbs_1hm6a_1",ht={breadcrumbsItem:fs,breadcrumbs:_s},hs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:ht.breadcrumbs,children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[a.jsx(d.Link,{className:ht.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),ps=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[!!n&&t.some(s=>s.visible)&&a.jsx(d.MenuDivider,{}),t.filter(({visible:s})=>s).map(({link:s,label:o,onClick:i})=>a.jsx(d.MenuItem,{href:s||"#","aria-label":o,onClick:i,children:o},o))]},t[0].label))}),bs="_badge_1pc1v_1",Ts="_tag_1pc1v_15",vs="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",js="_disabled_1pc1v_57",ys="_projectNavigationItem_1pc1v_61",Ss="_projectNavigationItemDisabled_1pc1v_67",O={badge:bs,tag:Ts,withNavLinkStyle:vs,disabled:js,projectNavigationItem:ys,projectNavigationItemDisabled:Ss},pt=({label:e,badge:t,novel:n})=>a.jsxs("div",{className:"flex gap-1",children:[a.jsxs("div",{children:[a.jsx("span",{children:e}),!!t&&a.jsx("div",{className:O.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:O.tag,children:n})]}),ke=p.forwardRef(({label:e,href:t="",disabled:n=!1,badge:s,onClick:o,novel:i},c)=>a.jsx(d.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?O.projectNavigationItemDisabled:O.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:I(O.withNavLinkStyle,{[O.disabled]:n}),disabled:n,onClick:o,children:a.jsx(pt,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:O.withNavLinkStyle,children:a.jsx(pt,{label:e,badge:s,novel:i})})})}));ke.displayName="NavigationTabsItem";const xs=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,Es=e=>e.visible&&(!e.dropdown||xs(e.dropdown)),Ps=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:B.navigationTabList,"aria-orientation":"horizontal",children:e.filter(Es).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:B.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(d.Menu,{menuButton:({opened:c})=>a.jsx(ke,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(d.MenuList,{children:a.jsx(ps,{items:n.dropdown})})})},n.key):a.jsx("li",{className:B.navigationTab,"data-testid":n.key,"aria-selected":(o=n.isActive)==null?void 0:o.call(n,t),children:a.jsx(ke,{label:n.label,href:n.link,onClick:n.onClick,disabled:n.disabled,badge:n.badge,novel:n.novel,active:(i=n.isActive)==null?void 0:i.call(n,t)})},n.key)})})});class R{constructor(t){this.factories=t}static create(t={}){return new R([()=>t])}add(t,n){return new R([...this.factories,()=>({[t]:n})])}and(t){return new R([...this.factories,()=>t])}from(t){return new R([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new R([...this.factories,...t.factories])}async resolve(){const t=this.factories.map(s=>s()),n=await Promise.all(t);return Object.assign({},...n)}}function Me(e){return new Cs(e)}class Cs{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(R.create());return n instanceof Promise?n.then(s=>s.resolve()):n.resolve()})}}const Ut=r.z.union([r.z.literal("owner"),r.z.literal("admin"),r.z.literal("biller"),r.z.literal("member")]),zs=r.z.object({userId:r.z.number(),userUuid:r.z.string(),teamId:r.z.number(),userTeamRole:Ut,userEmail:r.z.string().email(),userName:r.z.string(),userCurrentTeamId:r.z.number(),planId:r.z.number(),planName:r.z.string(),isProviderAlpha:r.z.boolean(),isFullyAuthenticated:r.z.boolean(),exp:r.z.number()});function H(e){try{const t=e.split(".")[1],n=atob(t);return zs.parse(JSON.parse(n))}catch{return}}class Q extends Error{constructor(){super(...arguments);ee(this,"name","UnauthorizedError");ee(this,"status",401)}}function ws(e){return Me(async t=>{var i,c;const n=e.getCurrentToken()??await((i=e.generateNewToken)==null?void 0:i.call(e));if(!n)throw new Q;const{exp:s}=H(n.accessToken)??{exp:0};if(!se.isThisSecond(new Date(s)))return t.add("authorization",`Bearer ${n.accessToken}`);const o=await e.refreshToken(n);if(!o)throw new Q;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("authorization",`Bearer ${o.accessToken}`)})}const ks=Me(e=>e.and({"x-lokalise-plugin":"true"}));function Ue(){const e=Re(document.cookie,"accessToken"),t=Re(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Re(document.cookie,"csrf_token")??null}function Re(e,t){var n,s;return(s=(n=e.split(";").find(o=>o.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:s.substring(t.length+1)}function Rs(){const e=Ue();if(!e)return;const t=H(e.accessToken);if(t)return{...e,payload:t}}const qt=r.z.union([r.z.object({authorization:r.z.string()}),r.z.object({AUTHORIZATION:r.z.string()})]),Is=r.z.union([r.z.object({"X-API-Token":r.z.string()}),r.z.object({"X-Api-Token":r.z.string()}),r.z.object({"x-api-token":r.z.string()}),r.z.object({"X-API-TOKEN":r.z.string()})]),As=r.z.union([qt,Is]),Ns=r.z.union([r.z.object({"X-Lokalise-Plugin":r.z.string()}),r.z.object({"x-lokalise-plugin":r.z.string()}),r.z.object({"X-LOKALISE-PLUGIN":r.z.string()})]),Y=As.and(Ns),Ls=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),Os=r.z.union([r.z.object({"X-Csrf-Token":r.z.string()}),r.z.object({"X-CSRF-Token":r.z.string()}),r.z.object({"x-csrf-token":r.z.string()}),r.z.object({"X-CSRF-TOKEN":r.z.string()})]),Ms=r.z.union([qt,Os]),ie=Ie.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:r.z.object({teamId:r.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:Ms,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:Ls});function Us(e,t,n){return async()=>{const s=t();if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:Number(await n())},headers:await R.create().add("x-csrf-token",s).resolve()})}}function Bs(e){return async({accessToken:t,refreshToken:n})=>{const s=H(t);if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:s.teamId},headers:await R.create().add("authorization",`Bearer ${n}`).resolve()})}}const Ht={teamKey:e=>["getUserToken",e]},Dt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByPayloadRoute(e,ie,{headers:await t.resolve(),pathParams:{teamId:o}})}),re=class re extends CustomEvent{constructor(t){super(re.eventName,{detail:{token:t,payload:H(t.accessToken)}})}};ee(re,"eventName","new-jwt-issued");let J=re;function qs(e,t,n){const s=Bt(),o=Dt(e,t.add("x-csrf-token",s??""),{queryKey:Ht.teamKey(n),enabled:s!==void 0}),i=p.useRef();return p.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new J(o.data)),i.current=o.data.accessToken)},[o.data]),o}function Be(){const[e,t]=p.useState();return p.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Ue();return t(s?H(s.accessToken):void 0),window.addEventListener(J.eventName,n),()=>{window.removeEventListener(J.eventName,n)}},[]),e}const Hs=Y,Ds=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),role:Ut}),$s=r.z.object({team_id:r.z.number(),team_user:Ds}),$t=q.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Hs,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:$s}),Ft={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Gt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,$t,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function Fs(e,t){const n=Be();return Gt(e,t,{queryKey:Ft.teamUserKey((n==null?void 0:n.teamId)??0,(n==null?void 0:n.userId)??0),enabled:(n==null?void 0:n.userId)!==void 0&&n.teamId!==void 0})}const Gs=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_writable:r.z.union([r.z.literal(0),r.z.literal(1)])}),Ks=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Gs),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),Qs=r.z.object({project_id:r.z.string(),contributors:r.z.array(Ks)}),Kt=q.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:Y,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:Qs}),Qt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},Jt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,Kt,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function Js(e,t,n){const s=Be();return Jt(e,t,{queryKey:Qt.projectUserKey(n,(s==null?void 0:s.userId)??0),enabled:s!==void 0})}const Ws=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),Xs=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),Ys=r.z.object({projectId:r.z.string()}),Vs=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_rtl:r.z.boolean(),plural_forms:r.z.array(r.z.string().optional())}),Zs=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Vs)}),ea=r.z.object({projectId:r.z.string()}),ta=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),na=r.z.object({success:r.z.boolean()}),Wt=q.buildGetRoute({description:"List of project languages",requestHeaderSchema:Y,requestPathParamsSchema:Ys,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:Zs}),Xt=q.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:Y,method:"put",requestPathParamsSchema:ea,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:ta,successResponseBodySchema:na}),ce=Y,qe=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),ra=r.z.object({per_platform_key_names:r.z.boolean(),reviewing:r.z.boolean(),auto_toggle_unverified:r.z.boolean(),offline_translation:r.z.boolean(),key_editing:r.z.boolean(),inline_machine_translations:r.z.boolean(),custom_translation_statuses:r.z.boolean(),custom_translation_statuses_allow_multiple:r.z.boolean(),segmentation:r.z.boolean(),contributor_preview_download_enabled:r.z.boolean()}),sa=r.z.object({not_reviewed:r.z.number(),unverified:r.z.number(),spelling_grammar:r.z.number(),inconsistent_placeholders:r.z.number(),inconsistent_html:r.z.number(),different_number_of_urls:r.z.number(),different_urls:r.z.number(),leading_whitespace:r.z.number(),trailing_whitespace:r.z.number(),different_number_of_email_address:r.z.number(),different_email_address:r.z.number(),different_brackets:r.z.number(),different_numbers:r.z.number(),double_space:r.z.number(),special_placeholder:r.z.number(),unbalanced_brackets:r.z.number()}),aa=r.z.object({progress_total:r.z.number(),keys_total:r.z.number(),team:r.z.number(),base_words:r.z.number(),qa_issues_total:r.z.number(),qa_issues:sa,languages:r.z.array(Xs)}),le=r.z.object({project_id:r.z.string(),uuid:r.z.string().uuid(),project_type:qe,name:r.z.string(),description:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),created_by:r.z.number(),created_by_email:r.z.string(),team_id:r.z.number(),base_language_id:r.z.number(),base_language_iso:r.z.string(),settings:ra.optional(),statistics:aa.optional()}),oa=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(Ws),project_type:qe,is_segmentation_enabled:r.z.boolean()}),bt=r.z.union([r.z.literal(0),r.z.literal(1)]),ia=r.z.object({filter_type:qe.optional(),filter_team_id:r.z.number().optional(),filter_names:r.z.string().optional(),include_statistics:bt.optional(),include_settings:bt.optional(),limit:r.z.number().optional(),page:r.z.number().optional()}),ca=r.z.object({projects:r.z.array(le)}),la=r.z.object({project_id:r.z.string()}),ua=r.z.object({project_id:r.z.string()}),da=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),ue=()=>"/projects",Yt=Ie.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:ce,method:"post",pathResolver:ue,requestBodySchema:oa,successResponseBodySchema:le}),Vt=q.buildGetRoute({description:"List all projects",requestHeaderSchema:ce,pathResolver:ue,requestQuerySchema:ia,successResponseBodySchema:ca}),Zt=q.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:ce,requestPathParamsSchema:la,pathResolver:({project_id:e})=>`${ue()}/${e}`,successResponseBodySchema:le}),en=Ie.buildPayloadRoute({description:"Update a project",requestHeaderSchema:ce,method:"put",requestPathParamsSchema:ua,pathResolver:({project_id:e})=>`${ue()}/${e}`,requestBodySchema:da,successResponseBodySchema:le});function ma(e,t,n={}){return A.useMutation({...n,mutationFn:async s=>k.sendByPayloadRoute(e,Yt,{headers:await t.resolve(),body:s})})}const ga={projectIdKey:e=>["listProjectLanguages",e]};function fa(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Wt,{headers:await t.resolve(),pathParams:{projectId:o}})})}const _a={paramsKey:e=>["listProjects",e]};function ha(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Vt,{headers:await t.resolve(),queryParams:o})})}const pa={projectIdKey:e=>["retrieveProject",e]};function ba(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Zt,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ta(e,t,n,s={}){return A.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,en,{headers:await t.resolve(),body:o,pathParams:n})})}function va(e,t,n,s={}){return A.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,Xt,{pathParams:t,headers:await n.resolve(),body:o})})}exports.Breadcrumbs=hs;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=kt;exports.ESSENTIAL_PLAN_IDS=zt;exports.FREE_PLAN_ID=Ne;exports.HeaderBuilder=R;exports.JwtAuthHeaderBuilderMiddleware=ws;exports.NavigationPanel=K;exports.NavigationTabs=Ps;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=ks;exports.START_PLAN_IDS=Ct;exports.Sidebar=w;exports.SidebarTaskLanguageStatuses=z;exports.SidebarTaskStatuses=ne;exports.SidebarTaskTypeOptions=F;exports.TRIAL_PLAN_ID=Pt;exports.UnauthorizedError=Q;exports.bulkUpdateProjectLanguages=Xt;exports.convertNewLineToBreakTag=Rt;exports.createHeaderBuilderMiddleware=Me;exports.createProject=Yt;exports.formatDate=At;exports.formatDateTz=ur;exports.generateTokenFromClassicSession=Us;exports.getAuthenticatedSessionDetailFromRequest=Rs;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Ue;exports.getTeamUser=$t;exports.getTeamUsersQueryKey=Ft;exports.getUserToken=ie;exports.getUserTokenKey=Ht;exports.isEnterpriseOpenSourcePlan=ar;exports.isEnterprisePlan=rr;exports.isEssentialPlan=tr;exports.isFreePlan=ae;exports.isPaidPlan=sr;exports.isProPlan=nr;exports.isStartPlan=er;exports.isTrialPlan=Oe;exports.listProjectLanguages=Wt;exports.listProjectLanguagesKey=ga;exports.listProjects=Vt;exports.listProjectsKey=_a;exports.makeUrlClickable=It;exports.parseJwtTokenPayload=H;exports.refreshExpiredToken=Bs;exports.retrieveContributor=Kt;exports.retrieveContributorKeys=Qt;exports.retrieveProject=Zt;exports.retrieveProjectQueryKey=pa;exports.updateProject=en;exports.useAuthenticatedProjectContributor=Js;exports.useAuthenticatedSessionPayload=Be;exports.useAuthenticatedUser=Fs;exports.useBulkUpdateProjectLanguagesMutation=va;exports.useCreateProjectMutation=ma;exports.useEffectOnce=oe;exports.useGetPromotedClassicSessionJwtQuery=qs;exports.useGetTeamUsersQuery=Gt;exports.useGetUserTokenQuery=Dt;exports.useListProjectLanguagesQuery=fa;exports.useListProjectsQuery=ha;exports.useRetrieveContributorQuery=Jt;exports.useRetrieveProjectQuery=ba;exports.useUpdateProjectMutation=Ta;
|
package/dist/harmony.mjs
CHANGED
@@ -3,8 +3,8 @@ var Zt = (e, t, n) => t in e ? Vt(e, t, { enumerable: !0, configurable: !0, writ
|
|
3
3
|
var ne = (e, t, n) => Zt(e, typeof t != "symbol" ? t + "" : t, n);
|
4
4
|
import { jsx as s, jsxs as h, Fragment as Ue } from "react/jsx-runtime";
|
5
5
|
import * as G from "react";
|
6
|
-
import { useRef as wt, useState as R, useCallback as We, useEffect as
|
7
|
-
import { Tooltip as q, Link as L, Menu as ce, MenuList as le, CaretUpIcon as nn, UserIcon as
|
6
|
+
import { useRef as wt, useState as R, useCallback as We, useEffect as z, useContext as Ct, createContext as Pt, cloneElement as en, Fragment as kt, forwardRef as tn } from "react";
|
7
|
+
import { Tooltip as q, Link as L, Menu as ce, MenuList as le, CaretUpIcon as nn, UserIcon as It, MenuItem as J, MenuDivider as At, ConfirmModal as rn, Alert as on, Tag as je, Button as xe, Loading as an, Popover as sn, JobIcon as cn } from "@lokalise/louis";
|
8
8
|
import { format as Rt, parseISO as ln, isThisSecond as dn } from "date-fns";
|
9
9
|
import { toZonedTime as un } from "date-fns-tz";
|
10
10
|
import { z as r } from "zod";
|
@@ -191,27 +191,27 @@ function Ot() {
|
|
191
191
|
var j = S - E, $ = S - b, Je = u - j;
|
192
192
|
return p ? i(Je, T - $) : Je;
|
193
193
|
}
|
194
|
-
function
|
194
|
+
function Ke(S) {
|
195
195
|
var j = S - E, $ = S - b;
|
196
196
|
return E === void 0 || j >= u || j < 0 || p && $ >= T;
|
197
197
|
}
|
198
198
|
function te() {
|
199
199
|
var S = t();
|
200
|
-
if (
|
201
|
-
return
|
200
|
+
if (Ke(S))
|
201
|
+
return ze(S);
|
202
202
|
f = setTimeout(te, ee(S));
|
203
203
|
}
|
204
|
-
function
|
204
|
+
function ze(S) {
|
205
205
|
return f = void 0, v && m ? C(S) : (m = _ = void 0, y);
|
206
206
|
}
|
207
207
|
function Xt() {
|
208
208
|
f !== void 0 && clearTimeout(f), b = 0, m = E = _ = f = void 0;
|
209
209
|
}
|
210
210
|
function Yt() {
|
211
|
-
return f === void 0 ? y :
|
211
|
+
return f === void 0 ? y : ze(t());
|
212
212
|
}
|
213
213
|
function fe() {
|
214
|
-
var S = t(), j =
|
214
|
+
var S = t(), j = Ke(S);
|
215
215
|
if (m = arguments, _ = this, E = S, j) {
|
216
216
|
if (f === void 0)
|
217
217
|
return w(E);
|
@@ -226,9 +226,9 @@ function Ot() {
|
|
226
226
|
}
|
227
227
|
var En = Ot();
|
228
228
|
const wn = /* @__PURE__ */ Nt(En);
|
229
|
-
var
|
229
|
+
var Ie, lt;
|
230
230
|
function Cn() {
|
231
|
-
if (lt) return
|
231
|
+
if (lt) return Ie;
|
232
232
|
lt = 1;
|
233
233
|
var e = Ot(), t = Be(), n = "Expected a function";
|
234
234
|
function o(a, i, c) {
|
@@ -241,10 +241,10 @@ function Cn() {
|
|
241
241
|
trailing: u
|
242
242
|
});
|
243
243
|
}
|
244
|
-
return
|
244
|
+
return Ie = o, Ie;
|
245
245
|
}
|
246
246
|
var Pn = Cn();
|
247
|
-
const kn = /* @__PURE__ */ Nt(Pn),
|
247
|
+
const kn = /* @__PURE__ */ Nt(Pn), In = (e, t, n, o) => {
|
248
248
|
switch (t) {
|
249
249
|
case "debounce":
|
250
250
|
return wn(e, n, o);
|
@@ -253,7 +253,7 @@ const kn = /* @__PURE__ */ Nt(Pn), An = (e, t, n, o) => {
|
|
253
253
|
default:
|
254
254
|
return e;
|
255
255
|
}
|
256
|
-
},
|
256
|
+
}, An = (
|
257
257
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
258
258
|
(e) => {
|
259
259
|
const t = G.useRef(e);
|
@@ -292,7 +292,7 @@ const kn = /* @__PURE__ */ Nt(Pn), An = (e, t, n, o) => {
|
|
292
292
|
height: e.contentRect.height
|
293
293
|
};
|
294
294
|
function jn({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refreshOptions: o, handleWidth: a = !0, handleHeight: i = !0, targetRef: c, observerOptions: d, onResize: u } = {}) {
|
295
|
-
const l = wt(e), m =
|
295
|
+
const l = wt(e), m = An(u), [_, T] = R({
|
296
296
|
width: void 0,
|
297
297
|
height: void 0
|
298
298
|
}), { refProxy: y, refElement: f } = Rn(c), { box: E } = d || {}, b = We((p) => {
|
@@ -311,13 +311,13 @@ function jn({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refresh
|
|
311
311
|
entry: C
|
312
312
|
}), w) : ee);
|
313
313
|
});
|
314
|
-
}, [a, i, l, E]), g = We(
|
314
|
+
}, [a, i, l, E]), g = We(In(b, t, n, o), [
|
315
315
|
b,
|
316
316
|
t,
|
317
317
|
n,
|
318
318
|
o
|
319
319
|
]);
|
320
|
-
return
|
320
|
+
return z(() => {
|
321
321
|
let p;
|
322
322
|
return f ? (p = new window.ResizeObserver(g), p.observe(f, d)) : (_.width || _.height) && (m == null || m({
|
323
323
|
width: null,
|
@@ -353,7 +353,7 @@ const xn = "_headerContainer_1cubo_1", On = "_navigationTabList_1cubo_8", Ln = "
|
|
353
353
|
refreshMode: "debounce",
|
354
354
|
refreshRate: 0
|
355
355
|
}), [a, i] = R(!1), c = () => a ? !e : !0;
|
356
|
-
|
356
|
+
z(() => {
|
357
357
|
const u = () => {
|
358
358
|
i(window.scrollY > 0);
|
359
359
|
};
|
@@ -381,10 +381,10 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
381
381
|
sidebarContainer: qn
|
382
382
|
}, Dn = "_logoLink_1baxb_1", $n = {
|
383
383
|
logoLink: Dn
|
384
|
-
}, Fn = ({ src: e, href: t = "/", ariaLabel: n = "Home", alt: o = "Lokalise" }) => /* @__PURE__ */ s("a", { className: $n.logoLink, href: t, "aria-label": n, children: /* @__PURE__ */ s("img", { src: e, alt: o }) }), Gn = "_link_18vhx_1",
|
384
|
+
}, Fn = ({ src: e, href: t = "/", ariaLabel: n = "Home", alt: o = "Lokalise" }) => /* @__PURE__ */ s("a", { className: $n.logoLink, href: t, "aria-label": n, children: /* @__PURE__ */ s("img", { src: e, alt: o }) }), Gn = "_link_18vhx_1", Kn = "_active_18vhx_18", dt = {
|
385
385
|
link: Gn,
|
386
|
-
active:
|
387
|
-
},
|
386
|
+
active: Kn
|
387
|
+
}, zn = ({ label: e, to: t, icon: n }) => /* @__PURE__ */ s(q, { placement: "right", tooltip: e, children: /* @__PURE__ */ s(
|
388
388
|
L,
|
389
389
|
{
|
390
390
|
className: N(dt.link, {
|
@@ -465,7 +465,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
465
465
|
className: N(x.userIconWrapper, "flex-row", "align-center", "items-center", {
|
466
466
|
[x.profileImageHighlight]: o
|
467
467
|
}),
|
468
|
-
children: /* @__PURE__ */ s(
|
468
|
+
children: /* @__PURE__ */ s(It, { size: "25px" })
|
469
469
|
}
|
470
470
|
),
|
471
471
|
o && /* @__PURE__ */ s(Mt, { className: x.profileImageUpgradeIcon })
|
@@ -494,7 +494,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
494
494
|
const t = _r(e);
|
495
495
|
return t != null && t.length ? t.reduce((n, o, a) => typeof n == "string" ? ft(n, o, a) : n.flatMap((i) => typeof i == "string" ? ft(i, o, a) : i), e) : e;
|
496
496
|
}, gr = (e) => typeof e == "string" ? _t(e) : e.flatMap((t) => typeof t == "string" ? _t(t) : t, e), hr = (e, t = "PP") => Rt(e, t), Da = (e, t, n = "PP") => Rt(un(e, t), n), $e = (e) => {
|
497
|
-
|
497
|
+
z(e, []);
|
498
498
|
}, gt = {
|
499
499
|
biller: "biller",
|
500
500
|
owner: "owner"
|
@@ -538,7 +538,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
538
538
|
] })
|
539
539
|
}
|
540
540
|
),
|
541
|
-
!o && /* @__PURE__ */ s(
|
541
|
+
!o && /* @__PURE__ */ s(At, {})
|
542
542
|
] });
|
543
543
|
}, Sr = "_wrapper_15d85_1", Er = "_profileImage_15d85_14", wr = "_teamName_15d85_22", Cr = "_planLabel_15d85_29", Pr = "_membership_15d85_38", kr = "_defaultProfileImage_15d85_44", M = {
|
544
544
|
wrapper: Sr,
|
@@ -558,7 +558,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
558
558
|
className: `flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,
|
559
559
|
...t && { onClick: () => t(i) },
|
560
560
|
children: [
|
561
|
-
i.logoUrl ? /* @__PURE__ */ s("img", { className: M.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ s("span", { className: `flex-row justify-center items-center ${M.defaultProfileImage}`, children: /* @__PURE__ */ s(
|
561
|
+
i.logoUrl ? /* @__PURE__ */ s("img", { className: M.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ s("span", { className: `flex-row justify-center items-center ${M.defaultProfileImage}`, children: /* @__PURE__ */ s(It, { size: "25px" }) }),
|
562
562
|
/* @__PURE__ */ h("div", { className: "flex-col items-start", children: [
|
563
563
|
/* @__PURE__ */ h("div", { className: "flex-row items-center flex-nowrap gap-2", children: [
|
564
564
|
/* @__PURE__ */ s("span", { title: i.name, className: M.teamName, children: i.name }),
|
@@ -569,12 +569,12 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
569
569
|
]
|
570
570
|
}
|
571
571
|
);
|
572
|
-
},
|
573
|
-
teamsContainer:
|
572
|
+
}, Ir = "_teamsContainer_1t68g_1", Ar = {
|
573
|
+
teamsContainer: Ir
|
574
574
|
}, Rr = ({ onSwitchTeam: e }) => {
|
575
575
|
const { otherTeams: t } = X();
|
576
|
-
return t.length === 0 ? null : /* @__PURE__ */ s("div", { className: `flex-col items-stretch ${
|
577
|
-
}, Nr = "_container_1u995_1", jr = "_planCta_1u995_15", xr = "_upgradeIconWrapper_1u995_19",
|
576
|
+
return t.length === 0 ? null : /* @__PURE__ */ s("div", { className: `flex-col items-stretch ${Ar.teamsContainer}`, children: t.map((n) => /* @__PURE__ */ s(Dt, { team: n, onClick: e, hidePlanLabel: !0 }, n.id)) });
|
577
|
+
}, Nr = "_container_1u995_1", jr = "_planCta_1u995_15", xr = "_upgradeIconWrapper_1u995_19", Ae = {
|
578
578
|
container: Nr,
|
579
579
|
planCta: jr,
|
580
580
|
upgradeIconWrapper: xr
|
@@ -583,9 +583,9 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
|
|
583
583
|
if (!o)
|
584
584
|
return null;
|
585
585
|
const c = De(t) ? "Your team is currently on the Free plan" : `Free trial ends in ${n} ${n === 1 ? "day" : "days"}`;
|
586
|
-
return /* @__PURE__ */ h(J, { href: e, className: `flex-col gap-1 items-start ${
|
587
|
-
/* @__PURE__ */ s("span", { className:
|
588
|
-
/* @__PURE__ */ h("div", { className: `flex-row items-center gap-1 ${
|
586
|
+
return /* @__PURE__ */ h(J, { href: e, className: `flex-col gap-1 items-start ${Ae.container}`, children: [
|
587
|
+
/* @__PURE__ */ s("span", { className: Ae.planCta, children: c }),
|
588
|
+
/* @__PURE__ */ h("div", { className: `flex-row items-center gap-1 ${Ae.upgradeIconWrapper}`, children: [
|
589
589
|
/* @__PURE__ */ s(Mt, {}),
|
590
590
|
/* @__PURE__ */ s("span", { children: "See upgrade options" })
|
591
591
|
] })
|
@@ -742,11 +742,11 @@ const $r = function(e) {
|
|
742
742
|
};
|
743
743
|
}
|
744
744
|
};
|
745
|
-
}, Fr = "_navItem_1dudv_1", Gr = "_activeNavItem_1dudv_18",
|
745
|
+
}, Fr = "_navItem_1dudv_1", Gr = "_activeNavItem_1dudv_18", Kr = "_badge_1dudv_23", Re = {
|
746
746
|
navItem: Fr,
|
747
747
|
activeNavItem: Gr,
|
748
|
-
badge:
|
749
|
-
}, Gt = Pt({}), Y = () => Ct(Gt),
|
748
|
+
badge: Kr
|
749
|
+
}, Gt = Pt({}), Y = () => Ct(Gt), zr = (e) => {
|
750
750
|
const t = e.lastIndexOf("."), n = e.slice(0, t), o = e.slice(t + 1);
|
751
751
|
return { name: n, extension: o };
|
752
752
|
}, Jr = (e, t) => {
|
@@ -901,7 +901,7 @@ const $r = function(e) {
|
|
901
901
|
J,
|
902
902
|
{
|
903
903
|
onClick: () => i(c),
|
904
|
-
children:
|
904
|
+
children: zr(c.name).name
|
905
905
|
},
|
906
906
|
c.id
|
907
907
|
)) })
|
@@ -1042,19 +1042,19 @@ const $r = function(e) {
|
|
1042
1042
|
)
|
1043
1043
|
}
|
1044
1044
|
) });
|
1045
|
-
}),
|
1046
|
-
|
1045
|
+
}), I = ({ children: e, ...t }) => /* @__PURE__ */ s("nav", { ...t, className: Bn.sidebarContainer, children: e }), vo = ({ children: e }) => /* @__PURE__ */ s("div", { children: e });
|
1046
|
+
I.Top = vo;
|
1047
1047
|
const To = ({ children: e }) => /* @__PURE__ */ s("div", { children: e });
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1048
|
+
I.Bottom = To;
|
1049
|
+
I.Avatar = Fn;
|
1050
|
+
I.IconLink = zn;
|
1051
|
+
I.Menu = Qn;
|
1052
|
+
I.ProfileMenu = br;
|
1053
|
+
I.TeamSwitch = Rr;
|
1054
|
+
I.TeamMenuItem = Dt;
|
1055
|
+
I.UpgradeMenuItem = Or;
|
1056
|
+
I.ProfileSettingsMenuItem = yr;
|
1057
|
+
I.Tasks = bo;
|
1058
1058
|
const yo = "_breadcrumbsItem_1hm6a_1", So = "_breadcrumbs_1hm6a_1", yt = {
|
1059
1059
|
breadcrumbsItem: yo,
|
1060
1060
|
breadcrumbs: So
|
@@ -1062,15 +1062,15 @@ const yo = "_breadcrumbsItem_1hm6a_1", So = "_breadcrumbs_1hm6a_1", yt = {
|
|
1062
1062
|
/* @__PURE__ */ s(L, { className: yt.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
|
1063
1063
|
n < e.length - 1 && /* @__PURE__ */ s("span", { children: " — " })
|
1064
1064
|
] }, `${t.link}-${t.name}`)) }), Eo = ({ items: e }) => /* @__PURE__ */ s(Ue, { children: e.map((t, n) => /* @__PURE__ */ h(kt, { children: [
|
1065
|
-
!!n && t.some((o) => o.visible) && /* @__PURE__ */ s(
|
1065
|
+
!!n && t.some((o) => o.visible) && /* @__PURE__ */ s(At, {}),
|
1066
1066
|
t.filter(({ visible: o }) => o).map(({ link: o, label: a, onClick: i }) => /* @__PURE__ */ s(J, { href: o || "#", "aria-label": a, onClick: i, children: a }, a))
|
1067
|
-
] }, t[0].label)) }), wo = "_badge_1pc1v_1", Co = "_tag_1pc1v_15", Po = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", ko = "_disabled_1pc1v_57",
|
1067
|
+
] }, t[0].label)) }), wo = "_badge_1pc1v_1", Co = "_tag_1pc1v_15", Po = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", ko = "_disabled_1pc1v_57", Io = "_projectNavigationItem_1pc1v_61", Ao = "_projectNavigationItemDisabled_1pc1v_67", O = {
|
1068
1068
|
badge: wo,
|
1069
1069
|
tag: Co,
|
1070
1070
|
withNavLinkStyle: Po,
|
1071
1071
|
disabled: ko,
|
1072
|
-
projectNavigationItem:
|
1073
|
-
projectNavigationItemDisabled:
|
1072
|
+
projectNavigationItem: Io,
|
1073
|
+
projectNavigationItemDisabled: Ao
|
1074
1074
|
}, St = ({ label: e, badge: t, novel: n }) => /* @__PURE__ */ h("div", { className: "flex gap-1", children: [
|
1075
1075
|
/* @__PURE__ */ h("div", { children: [
|
1076
1076
|
/* @__PURE__ */ s("span", { children: e }),
|
@@ -1138,7 +1138,7 @@ const Ro = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible)))
|
|
1138
1138
|
n.key
|
1139
1139
|
);
|
1140
1140
|
}) }) });
|
1141
|
-
class
|
1141
|
+
class A {
|
1142
1142
|
/**
|
1143
1143
|
* This constructor is private to prevent the creation of a HeaderBuilder, it's an implementation detail
|
1144
1144
|
* that users of this class should not be aware of. The only way to create a HeaderBuilder is through the
|
@@ -1150,7 +1150,7 @@ class I {
|
|
1150
1150
|
this.factories = t;
|
1151
1151
|
}
|
1152
1152
|
static create(t = {}) {
|
1153
|
-
return new
|
1153
|
+
return new A([() => t]);
|
1154
1154
|
}
|
1155
1155
|
/**
|
1156
1156
|
* Adds a single header to the builder by providing a key and a value.
|
@@ -1159,18 +1159,18 @@ class I {
|
|
1159
1159
|
* ```typescript
|
1160
1160
|
* const builder = HeaderBuilder.create()
|
1161
1161
|
* .add('Content-Type', 'application/json')
|
1162
|
-
* .add('
|
1162
|
+
* .add('authorization', 'Bearer token')
|
1163
1163
|
*
|
1164
1164
|
* const headers = await builder.resolve()
|
1165
1165
|
* console.log(headers)
|
1166
|
-
* // { 'Content-Type': 'application/json', '
|
1166
|
+
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
1167
1167
|
* ```
|
1168
1168
|
*
|
1169
1169
|
* @param key - The key of the header
|
1170
1170
|
* @param value - The value of the header
|
1171
1171
|
*/
|
1172
1172
|
add(t, n) {
|
1173
|
-
return new
|
1173
|
+
return new A([...this.factories, () => ({ [t]: n })]);
|
1174
1174
|
}
|
1175
1175
|
/**
|
1176
1176
|
* Adds multiple headers to the builder by providing an object or a promise of an object with the headers.
|
@@ -1178,14 +1178,14 @@ class I {
|
|
1178
1178
|
* @example
|
1179
1179
|
* ```typescript
|
1180
1180
|
* const builder = HeaderBuilder.create()
|
1181
|
-
* .and({ 'Content-Type': 'application/json', '
|
1181
|
+
* .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
|
1182
1182
|
* .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
|
1183
1183
|
*
|
1184
1184
|
* const headers = await builder.resolve()
|
1185
1185
|
* console.log(headers)
|
1186
1186
|
* // Prints: {
|
1187
1187
|
* // 'Content-Type': 'application/json',
|
1188
|
-
* // '
|
1188
|
+
* // 'authorization': 'Bearer token',
|
1189
1189
|
* // 'X-Custom-Header': 'custom',
|
1190
1190
|
* // 'X-Another-Header': 'another'
|
1191
1191
|
* // }
|
@@ -1194,7 +1194,7 @@ class I {
|
|
1194
1194
|
* @param extension - An object with the headers to add
|
1195
1195
|
*/
|
1196
1196
|
and(t) {
|
1197
|
-
return new
|
1197
|
+
return new A([...this.factories, () => t]);
|
1198
1198
|
}
|
1199
1199
|
/**
|
1200
1200
|
* Adds a factory function that returns a promise of headers to the builder.
|
@@ -1205,17 +1205,17 @@ class I {
|
|
1205
1205
|
* const builder = HeaderBuilder.create()
|
1206
1206
|
* .from(async () => {
|
1207
1207
|
* const token = await fetchToken()
|
1208
|
-
* return { '
|
1208
|
+
* return { 'authorization': `Bearer ${token}` }
|
1209
1209
|
* })
|
1210
1210
|
*
|
1211
1211
|
* const headers = await builder.resolve()
|
1212
|
-
* console.log(headers) // { '
|
1212
|
+
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
1213
1213
|
* ```
|
1214
1214
|
*
|
1215
1215
|
* @param factory - A function that returns a promise of headers
|
1216
1216
|
*/
|
1217
1217
|
from(t) {
|
1218
|
-
return new
|
1218
|
+
return new A([...this.factories, t]);
|
1219
1219
|
}
|
1220
1220
|
/**
|
1221
1221
|
* Takes a middleware function that receives the current builder and returns a new, modified, builder.
|
@@ -1224,14 +1224,14 @@ class I {
|
|
1224
1224
|
* ```typescript
|
1225
1225
|
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
1226
1226
|
* const token = await fetchToken()
|
1227
|
-
* return builder.add('
|
1227
|
+
* return builder.add('authorization', `Bearer ${token}`)
|
1228
1228
|
* })
|
1229
1229
|
*
|
1230
1230
|
* const builder = HeaderBuilder.create()
|
1231
1231
|
* .with(authMiddleware)
|
1232
1232
|
*
|
1233
|
-
* const headers = await builder.resolve() // Type of headers is { '
|
1234
|
-
* console.log(headers) // { '
|
1233
|
+
* const headers = await builder.resolve() // Type of headers is { 'authorization': string }
|
1234
|
+
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
1235
1235
|
* ```
|
1236
1236
|
*
|
1237
1237
|
* @param middleware
|
@@ -1248,19 +1248,19 @@ class I {
|
|
1248
1248
|
* .add('Content-Type', 'application/json')
|
1249
1249
|
*
|
1250
1250
|
* const builderB = HeaderBuilder.create()
|
1251
|
-
* .add('
|
1251
|
+
* .add('authorization', 'Bearer token')
|
1252
1252
|
*
|
1253
1253
|
* const mergedBuilder = builderA.merge(builderB)
|
1254
1254
|
*
|
1255
1255
|
* const headers = await mergedBuilder.resolve()
|
1256
1256
|
* console.log(headers)
|
1257
|
-
* // { 'Content-Type': 'application/json', '
|
1257
|
+
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
1258
1258
|
* ```
|
1259
1259
|
*
|
1260
1260
|
* @param builder - The builder to merge with
|
1261
1261
|
*/
|
1262
1262
|
merge(t) {
|
1263
|
-
return new
|
1263
|
+
return new A([...this.factories, ...t.factories]);
|
1264
1264
|
}
|
1265
1265
|
/**
|
1266
1266
|
* Resolves the headers by waiting for all the promises to resolve and merging them together.
|
@@ -1278,7 +1278,7 @@ class I {
|
|
1278
1278
|
return Object.assign({}, ...n);
|
1279
1279
|
}
|
1280
1280
|
}
|
1281
|
-
function
|
1281
|
+
function Kt(e) {
|
1282
1282
|
return new jo(e);
|
1283
1283
|
}
|
1284
1284
|
class jo {
|
@@ -1287,12 +1287,12 @@ class jo {
|
|
1287
1287
|
}
|
1288
1288
|
apply(t) {
|
1289
1289
|
return t.from(async () => {
|
1290
|
-
const n = this.middleware(
|
1290
|
+
const n = this.middleware(A.create());
|
1291
1291
|
return n instanceof Promise ? n.then((o) => o.resolve()) : n.resolve();
|
1292
1292
|
});
|
1293
1293
|
}
|
1294
1294
|
}
|
1295
|
-
const
|
1295
|
+
const zt = r.union([
|
1296
1296
|
r.literal("owner"),
|
1297
1297
|
r.literal("admin"),
|
1298
1298
|
r.literal("biller"),
|
@@ -1301,7 +1301,7 @@ const Kt = r.union([
|
|
1301
1301
|
userId: r.number(),
|
1302
1302
|
userUuid: r.string(),
|
1303
1303
|
teamId: r.number(),
|
1304
|
-
userTeamRole:
|
1304
|
+
userTeamRole: zt,
|
1305
1305
|
userEmail: r.string().email(),
|
1306
1306
|
userName: r.string(),
|
1307
1307
|
userCurrentTeamId: r.number(),
|
@@ -1327,21 +1327,21 @@ class se extends Error {
|
|
1327
1327
|
}
|
1328
1328
|
}
|
1329
1329
|
function Ga(e) {
|
1330
|
-
return
|
1330
|
+
return Kt(async (t) => {
|
1331
1331
|
var i, c;
|
1332
1332
|
const n = e.getCurrentToken() ?? await ((i = e.generateNewToken) == null ? void 0 : i.call(e));
|
1333
1333
|
if (!n)
|
1334
1334
|
throw new se();
|
1335
1335
|
const { exp: o } = V(n.accessToken) ?? { exp: 0 };
|
1336
1336
|
if (!dn(new Date(o)))
|
1337
|
-
return t.add("
|
1337
|
+
return t.add("authorization", `Bearer ${n.accessToken}`);
|
1338
1338
|
const a = await e.refreshToken(n);
|
1339
1339
|
if (!a)
|
1340
1340
|
throw new se();
|
1341
|
-
return (c = e.onNewTokenIssued) == null || c.call(e, a), t.add("
|
1341
|
+
return (c = e.onNewTokenIssued) == null || c.call(e, a), t.add("authorization", `Bearer ${a.accessToken}`);
|
1342
1342
|
});
|
1343
1343
|
}
|
1344
|
-
const
|
1344
|
+
const Ka = Kt(
|
1345
1345
|
(e) => e.and({ "x-lokalise-plugin": "true" })
|
1346
1346
|
);
|
1347
1347
|
function Jt() {
|
@@ -1355,7 +1355,7 @@ function Me(e, t) {
|
|
1355
1355
|
var n, o;
|
1356
1356
|
return (o = (n = e.split(";").find((a) => a.trim().startsWith(`${t}=`))) == null ? void 0 : n.trim()) == null ? void 0 : o.substring(t.length + 1);
|
1357
1357
|
}
|
1358
|
-
function
|
1358
|
+
function za() {
|
1359
1359
|
const e = Jt();
|
1360
1360
|
if (!e)
|
1361
1361
|
return;
|
@@ -1364,7 +1364,6 @@ function Ka() {
|
|
1364
1364
|
return { ...e, payload: t };
|
1365
1365
|
}
|
1366
1366
|
const Wt = r.union([
|
1367
|
-
r.object({ Authorization: r.string() }),
|
1368
1367
|
r.object({ authorization: r.string() }),
|
1369
1368
|
r.object({ AUTHORIZATION: r.string() })
|
1370
1369
|
]), Lo = r.union([
|
@@ -1407,7 +1406,7 @@ function Ja(e, t, n) {
|
|
1407
1406
|
throw new se();
|
1408
1407
|
return B(e, Fe, {
|
1409
1408
|
pathParams: { teamId: Number(await n()) },
|
1410
|
-
headers: await
|
1409
|
+
headers: await A.create().add("x-csrf-token", o).resolve()
|
1411
1410
|
});
|
1412
1411
|
};
|
1413
1412
|
}
|
@@ -1418,7 +1417,7 @@ function Wa(e) {
|
|
1418
1417
|
throw new se();
|
1419
1418
|
return B(e, Fe, {
|
1420
1419
|
pathParams: { teamId: o.teamId },
|
1421
|
-
headers: await
|
1420
|
+
headers: await A.create().add("authorization", `Bearer ${n}`).resolve()
|
1422
1421
|
});
|
1423
1422
|
};
|
1424
1423
|
}
|
@@ -1438,24 +1437,24 @@ const Do = {
|
|
1438
1437
|
}
|
1439
1438
|
};
|
1440
1439
|
ne(ie, "eventName", "new-jwt-issued");
|
1441
|
-
let
|
1440
|
+
let K = ie;
|
1442
1441
|
function Qa(e, t, n) {
|
1443
1442
|
const o = Oo(), a = $o(e, t.add("x-csrf-token", o ?? ""), {
|
1444
1443
|
queryKey: Do.teamKey(n),
|
1445
1444
|
enabled: o !== void 0
|
1446
1445
|
}), i = wt();
|
1447
|
-
return
|
1448
|
-
a.data && a.data.accessToken !== i.current && (window.dispatchEvent(new
|
1446
|
+
return z(() => {
|
1447
|
+
a.data && a.data.accessToken !== i.current && (window.dispatchEvent(new K(a.data)), i.current = a.data.accessToken);
|
1449
1448
|
}, [a.data]), a;
|
1450
1449
|
}
|
1451
1450
|
function Qt() {
|
1452
1451
|
const [e, t] = R();
|
1453
|
-
return
|
1452
|
+
return z(() => {
|
1454
1453
|
const n = (a) => {
|
1455
1454
|
t(a.detail.payload);
|
1456
1455
|
}, o = Jt();
|
1457
|
-
return t(o ? V(o.accessToken) : void 0), window.addEventListener(
|
1458
|
-
window.removeEventListener(
|
1456
|
+
return t(o ? V(o.accessToken) : void 0), window.addEventListener(K.eventName, n), () => {
|
1457
|
+
window.removeEventListener(K.eventName, n);
|
1459
1458
|
};
|
1460
1459
|
}, []), e;
|
1461
1460
|
}
|
@@ -1465,21 +1464,21 @@ const Fo = Z, Go = r.object({
|
|
1465
1464
|
fullname: r.string(),
|
1466
1465
|
created_at: r.string(),
|
1467
1466
|
created_at_timestamp: r.number(),
|
1468
|
-
role:
|
1469
|
-
}),
|
1467
|
+
role: zt
|
1468
|
+
}), Ko = r.object({
|
1470
1469
|
team_id: r.number(),
|
1471
1470
|
team_user: Go
|
1472
|
-
}),
|
1471
|
+
}), zo = Q({
|
1473
1472
|
description: "Get the details of a team user",
|
1474
1473
|
requestHeaderSchema: Fo,
|
1475
1474
|
requestPathParamsSchema: r.object({ teamId: r.number(), userId: r.number() }),
|
1476
1475
|
pathResolver: ({ teamId: e, userId: t }) => `/teams/${e}/users/${t}`,
|
1477
|
-
successResponseBodySchema:
|
1476
|
+
successResponseBodySchema: Ko
|
1478
1477
|
}), Jo = {
|
1479
1478
|
teamUserKey: (e, t) => ["GetTeamUsers", e, t]
|
1480
1479
|
}, Wo = (e, t, n) => D({
|
1481
1480
|
...n,
|
1482
|
-
queryFn: async ({ queryKey: [o, a, i] }) => W(e,
|
1481
|
+
queryFn: async ({ queryKey: [o, a, i] }) => W(e, zo, {
|
1483
1482
|
headers: await t.resolve(),
|
1484
1483
|
pathParams: { teamId: a, userId: i }
|
1485
1484
|
})
|
@@ -1754,14 +1753,14 @@ export {
|
|
1754
1753
|
lr as ENTERPRISE_PLAN_IDS,
|
1755
1754
|
ir as ESSENTIAL_PLAN_IDS,
|
1756
1755
|
Ht as FREE_PLAN_ID,
|
1757
|
-
|
1756
|
+
A as HeaderBuilder,
|
1758
1757
|
Ga as JwtAuthHeaderBuilderMiddleware,
|
1759
1758
|
ae as NavigationPanel,
|
1760
1759
|
Fa as NavigationTabs,
|
1761
1760
|
cr as PRO_PLAN_IDS,
|
1762
|
-
|
1761
|
+
Ka as PublicApiHeaderBuilderMiddleware,
|
1763
1762
|
sr as START_PLAN_IDS,
|
1764
|
-
|
1763
|
+
I as Sidebar,
|
1765
1764
|
k as SidebarTaskLanguageStatuses,
|
1766
1765
|
Oe as SidebarTaskStatuses,
|
1767
1766
|
re as SidebarTaskTypeOptions,
|
@@ -1769,15 +1768,15 @@ export {
|
|
1769
1768
|
se as UnauthorizedError,
|
1770
1769
|
da as bulkUpdateProjectLanguages,
|
1771
1770
|
mr as convertNewLineToBreakTag,
|
1772
|
-
|
1771
|
+
Kt as createHeaderBuilderMiddleware,
|
1773
1772
|
Ta as createProject,
|
1774
1773
|
hr as formatDate,
|
1775
1774
|
Da as formatDateTz,
|
1776
1775
|
Ja as generateTokenFromClassicSession,
|
1777
|
-
|
1776
|
+
za as getAuthenticatedSessionDetailFromRequest,
|
1778
1777
|
Oo as getCsrfTokenFromCookie,
|
1779
1778
|
Jt as getJwtTokenFromCookie,
|
1780
|
-
|
1779
|
+
zo as getTeamUser,
|
1781
1780
|
Jo as getTeamUsersQueryKey,
|
1782
1781
|
Fe as getUserToken,
|
1783
1782
|
Do as getUserTokenKey,
|
@@ -16,14 +16,14 @@ export type { HeaderBuilderMiddleware };
|
|
16
16
|
* ```typescript
|
17
17
|
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
18
18
|
* const token = await fetchToken()
|
19
|
-
* return builder.add('
|
19
|
+
* return builder.add('authorization', `Bearer ${token}`)
|
20
20
|
* })
|
21
21
|
*
|
22
22
|
* const builder = HeaderBuilder.create()
|
23
23
|
* .with(authMiddleware)
|
24
24
|
*
|
25
|
-
* const headers = await builder.resolve() // Type of headers is { '
|
26
|
-
* console.log(headers) // { '
|
25
|
+
* const headers = await builder.resolve() // Type of headers is { 'authorization': string }
|
26
|
+
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
27
27
|
*/
|
28
28
|
declare class HeaderBuilderMiddleware<const H extends Headers> {
|
29
29
|
private readonly middleware;
|
@@ -11,7 +11,7 @@ type NoHeaders = {};
|
|
11
11
|
* ```typescript
|
12
12
|
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
13
13
|
* const token = await fetchToken()
|
14
|
-
* return builder.add('
|
14
|
+
* return builder.add('authorization', `Bearer ${token}`)
|
15
15
|
* })
|
16
16
|
*
|
17
17
|
* const builder = HeaderBuilder.create()
|
@@ -25,7 +25,7 @@ type NoHeaders = {};
|
|
25
25
|
* // 'Content-Type': 'application/json',
|
26
26
|
* // 'X-Custom-Header': 'custom',
|
27
27
|
* // 'X-Another-Header': 'another',
|
28
|
-
* // '
|
28
|
+
* // 'authorization': 'Bearer <token>'
|
29
29
|
* // }
|
30
30
|
*/
|
31
31
|
export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
@@ -60,11 +60,11 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
|
60
60
|
* ```typescript
|
61
61
|
* const builder = HeaderBuilder.create()
|
62
62
|
* .add('Content-Type', 'application/json')
|
63
|
-
* .add('
|
63
|
+
* .add('authorization', 'Bearer token')
|
64
64
|
*
|
65
65
|
* const headers = await builder.resolve()
|
66
66
|
* console.log(headers)
|
67
|
-
* // { 'Content-Type': 'application/json', '
|
67
|
+
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
68
68
|
* ```
|
69
69
|
*
|
70
70
|
* @param key - The key of the header
|
@@ -79,14 +79,14 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
|
79
79
|
* @example
|
80
80
|
* ```typescript
|
81
81
|
* const builder = HeaderBuilder.create()
|
82
|
-
* .and({ 'Content-Type': 'application/json', '
|
82
|
+
* .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
|
83
83
|
* .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
|
84
84
|
*
|
85
85
|
* const headers = await builder.resolve()
|
86
86
|
* console.log(headers)
|
87
87
|
* // Prints: {
|
88
88
|
* // 'Content-Type': 'application/json',
|
89
|
-
* // '
|
89
|
+
* // 'authorization': 'Bearer token',
|
90
90
|
* // 'X-Custom-Header': 'custom',
|
91
91
|
* // 'X-Another-Header': 'another'
|
92
92
|
* // }
|
@@ -104,11 +104,11 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
|
104
104
|
* const builder = HeaderBuilder.create()
|
105
105
|
* .from(async () => {
|
106
106
|
* const token = await fetchToken()
|
107
|
-
* return { '
|
107
|
+
* return { 'authorization': `Bearer ${token}` }
|
108
108
|
* })
|
109
109
|
*
|
110
110
|
* const headers = await builder.resolve()
|
111
|
-
* console.log(headers) // { '
|
111
|
+
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
112
112
|
* ```
|
113
113
|
*
|
114
114
|
* @param factory - A function that returns a promise of headers
|
@@ -121,14 +121,14 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
|
121
121
|
* ```typescript
|
122
122
|
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
123
123
|
* const token = await fetchToken()
|
124
|
-
* return builder.add('
|
124
|
+
* return builder.add('authorization', `Bearer ${token}`)
|
125
125
|
* })
|
126
126
|
*
|
127
127
|
* const builder = HeaderBuilder.create()
|
128
128
|
* .with(authMiddleware)
|
129
129
|
*
|
130
|
-
* const headers = await builder.resolve() // Type of headers is { '
|
131
|
-
* console.log(headers) // { '
|
130
|
+
* const headers = await builder.resolve() // Type of headers is { 'authorization': string }
|
131
|
+
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
132
132
|
* ```
|
133
133
|
*
|
134
134
|
* @param middleware
|
@@ -143,13 +143,13 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
|
|
143
143
|
* .add('Content-Type', 'application/json')
|
144
144
|
*
|
145
145
|
* const builderB = HeaderBuilder.create()
|
146
|
-
* .add('
|
146
|
+
* .add('authorization', 'Bearer token')
|
147
147
|
*
|
148
148
|
* const mergedBuilder = builderA.merge(builderB)
|
149
149
|
*
|
150
150
|
* const headers = await mergedBuilder.resolve()
|
151
151
|
* console.log(headers)
|
152
|
-
* // { 'Content-Type': 'application/json', '
|
152
|
+
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
153
153
|
* ```
|
154
154
|
*
|
155
155
|
* @param builder - The builder to merge with
|
@@ -6,5 +6,5 @@ export type JwtAuthHeaderBuilderMiddlewareProps = {
|
|
6
6
|
onNewTokenIssued?: (token: JwtToken) => void;
|
7
7
|
};
|
8
8
|
export declare function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps): import('../headers/createHeaderBuilderMiddleware').HeaderBuilderMiddleware<{
|
9
|
-
|
9
|
+
authorization: `Bearer ${string}`;
|
10
10
|
}>;
|
@@ -109,12 +109,6 @@ export declare const retrieveContributor: import('@lokalise/universal-ts-utils/n
|
|
109
109
|
projectId: string;
|
110
110
|
contributorId: number;
|
111
111
|
}>, undefined, z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
112
|
-
Authorization: z.ZodString;
|
113
|
-
}, "strip", z.ZodTypeAny, {
|
114
|
-
Authorization: string;
|
115
|
-
}, {
|
116
|
-
Authorization: string;
|
117
|
-
}>, z.ZodObject<{
|
118
112
|
authorization: z.ZodString;
|
119
113
|
}, "strip", z.ZodTypeAny, {
|
120
114
|
authorization: string;
|
@@ -49,12 +49,6 @@ export declare const listProjectLanguages: import('@lokalise/universal-ts-utils/
|
|
49
49
|
}, {
|
50
50
|
projectId: string;
|
51
51
|
}>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
52
|
-
Authorization: import('zod').ZodString;
|
53
|
-
}, "strip", import('zod').ZodTypeAny, {
|
54
|
-
Authorization: string;
|
55
|
-
}, {
|
56
|
-
Authorization: string;
|
57
|
-
}>, import('zod').ZodObject<{
|
58
52
|
authorization: import('zod').ZodString;
|
59
53
|
}, "strip", import('zod').ZodTypeAny, {
|
60
54
|
authorization: string;
|
@@ -145,12 +139,6 @@ export declare const bulkUpdateProjectLanguages: import('@lokalise/universal-ts-
|
|
145
139
|
}, {
|
146
140
|
projectId: string;
|
147
141
|
}>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
148
|
-
Authorization: import('zod').ZodString;
|
149
|
-
}, "strip", import('zod').ZodTypeAny, {
|
150
|
-
Authorization: string;
|
151
|
-
}, {
|
152
|
-
Authorization: string;
|
153
|
-
}>, import('zod').ZodObject<{
|
154
142
|
authorization: import('zod').ZodString;
|
155
143
|
}, "strip", import('zod').ZodTypeAny, {
|
156
144
|
authorization: string;
|
@@ -332,12 +332,6 @@ export declare const createProject: import('@lokalise/universal-ts-utils/node').
|
|
332
332
|
};
|
333
333
|
} | undefined;
|
334
334
|
}>, undefined, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
335
|
-
Authorization: import('zod').ZodString;
|
336
|
-
}, "strip", import('zod').ZodTypeAny, {
|
337
|
-
Authorization: string;
|
338
|
-
}, {
|
339
|
-
Authorization: string;
|
340
|
-
}>, import('zod').ZodObject<{
|
341
335
|
authorization: import('zod').ZodString;
|
342
336
|
}, "strip", import('zod').ZodTypeAny, {
|
343
337
|
authorization: string;
|
@@ -832,12 +826,6 @@ export declare const listProjects: import('@lokalise/universal-ts-utils/node').G
|
|
832
826
|
include_settings?: 0 | 1 | undefined;
|
833
827
|
limit?: number | undefined;
|
834
828
|
}>, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
835
|
-
Authorization: import('zod').ZodString;
|
836
|
-
}, "strip", import('zod').ZodTypeAny, {
|
837
|
-
Authorization: string;
|
838
|
-
}, {
|
839
|
-
Authorization: string;
|
840
|
-
}>, import('zod').ZodObject<{
|
841
829
|
authorization: import('zod').ZodString;
|
842
830
|
}, "strip", import('zod').ZodTypeAny, {
|
843
831
|
authorization: string;
|
@@ -1198,12 +1186,6 @@ export declare const retrieveProject: import('@lokalise/universal-ts-utils/node'
|
|
1198
1186
|
}, {
|
1199
1187
|
project_id: string;
|
1200
1188
|
}>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
1201
|
-
Authorization: import('zod').ZodString;
|
1202
|
-
}, "strip", import('zod').ZodTypeAny, {
|
1203
|
-
Authorization: string;
|
1204
|
-
}, {
|
1205
|
-
Authorization: string;
|
1206
|
-
}>, import('zod').ZodObject<{
|
1207
1189
|
authorization: import('zod').ZodString;
|
1208
1190
|
}, "strip", import('zod').ZodTypeAny, {
|
1209
1191
|
authorization: string;
|
@@ -1573,12 +1555,6 @@ export declare const updateProject: import('@lokalise/universal-ts-utils/node').
|
|
1573
1555
|
}, {
|
1574
1556
|
project_id: string;
|
1575
1557
|
}>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
|
1576
|
-
Authorization: import('zod').ZodString;
|
1577
|
-
}, "strip", import('zod').ZodTypeAny, {
|
1578
|
-
Authorization: string;
|
1579
|
-
}, {
|
1580
|
-
Authorization: string;
|
1581
|
-
}>, import('zod').ZodObject<{
|
1582
1558
|
authorization: import('zod').ZodString;
|
1583
1559
|
}, "strip", import('zod').ZodTypeAny, {
|
1584
1560
|
authorization: string;
|
@@ -59,12 +59,6 @@ export declare const getTeamUser: import('@lokalise/universal-ts-utils/node').Ge
|
|
59
59
|
userId: number;
|
60
60
|
teamId: number;
|
61
61
|
}>, undefined, z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
62
|
-
Authorization: z.ZodString;
|
63
|
-
}, "strip", z.ZodTypeAny, {
|
64
|
-
Authorization: string;
|
65
|
-
}, {
|
66
|
-
Authorization: string;
|
67
|
-
}>, z.ZodObject<{
|
68
62
|
authorization: z.ZodString;
|
69
63
|
}, "strip", z.ZodTypeAny, {
|
70
64
|
authorization: string;
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
export declare const CONTRIBUTOR_API_BASE_HEADER_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
3
|
-
Authorization: z.ZodString;
|
4
|
-
}, "strip", z.ZodTypeAny, {
|
5
|
-
Authorization: string;
|
6
|
-
}, {
|
7
|
-
Authorization: string;
|
8
|
-
}>, z.ZodObject<{
|
9
3
|
authorization: z.ZodString;
|
10
4
|
}, "strip", z.ZodTypeAny, {
|
11
5
|
authorization: string;
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
export declare const PROJECT_API_BASE_HEADERS_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
3
|
-
Authorization: z.ZodString;
|
4
|
-
}, "strip", z.ZodTypeAny, {
|
5
|
-
Authorization: string;
|
6
|
-
}, {
|
7
|
-
Authorization: string;
|
8
|
-
}>, z.ZodObject<{
|
9
3
|
authorization: z.ZodString;
|
10
4
|
}, "strip", z.ZodTypeAny, {
|
11
5
|
authorization: string;
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
export declare const AUTHORIZATION_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
|
3
|
-
Authorization: z.ZodString;
|
4
|
-
}, "strip", z.ZodTypeAny, {
|
5
|
-
Authorization: string;
|
6
|
-
}, {
|
7
|
-
Authorization: string;
|
8
|
-
}>, z.ZodObject<{
|
9
3
|
authorization: z.ZodString;
|
10
4
|
}, "strip", z.ZodTypeAny, {
|
11
5
|
authorization: string;
|
@@ -44,12 +38,6 @@ export declare const APU_TOKEN_AUTH_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
|
|
44
38
|
'X-API-TOKEN': string;
|
45
39
|
}>]>;
|
46
40
|
export declare const AUTHENTICATION_HEADERS_SCHEMA: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
47
|
-
Authorization: z.ZodString;
|
48
|
-
}, "strip", z.ZodTypeAny, {
|
49
|
-
Authorization: string;
|
50
|
-
}, {
|
51
|
-
Authorization: string;
|
52
|
-
}>, z.ZodObject<{
|
53
41
|
authorization: z.ZodString;
|
54
42
|
}, "strip", z.ZodTypeAny, {
|
55
43
|
authorization: string;
|
@@ -108,12 +96,6 @@ export declare const API_PLUGIN_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
|
|
108
96
|
}>]>;
|
109
97
|
export type ApiPluginHeader = z.infer<typeof API_PLUGIN_HEADER_SCHEMA>;
|
110
98
|
export declare const BASE_API_ENDPOINT_HEADER_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
111
|
-
Authorization: z.ZodString;
|
112
|
-
}, "strip", z.ZodTypeAny, {
|
113
|
-
Authorization: string;
|
114
|
-
}, {
|
115
|
-
Authorization: string;
|
116
|
-
}>, z.ZodObject<{
|
117
99
|
authorization: z.ZodString;
|
118
100
|
}, "strip", z.ZodTypeAny, {
|
119
101
|
authorization: string;
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
export declare const TEAM_USER_API_BASE_HEADERS_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
3
|
-
Authorization: z.ZodString;
|
4
|
-
}, "strip", z.ZodTypeAny, {
|
5
|
-
Authorization: string;
|
6
|
-
}, {
|
7
|
-
Authorization: string;
|
8
|
-
}>, z.ZodObject<{
|
9
3
|
authorization: z.ZodString;
|
10
4
|
}, "strip", z.ZodTypeAny, {
|
11
5
|
authorization: string;
|
@@ -11,12 +11,6 @@ export declare const JWT_TOKEN_SCHEMA: z.ZodObject<{
|
|
11
11
|
}>;
|
12
12
|
export type JwtToken = z.infer<typeof JWT_TOKEN_SCHEMA>;
|
13
13
|
export declare const USER_TOKEN_REQUEST_HEADER_SCHEMA: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
14
|
-
Authorization: z.ZodString;
|
15
|
-
}, "strip", z.ZodTypeAny, {
|
16
|
-
Authorization: string;
|
17
|
-
}, {
|
18
|
-
Authorization: string;
|
19
|
-
}>, z.ZodObject<{
|
20
14
|
authorization: z.ZodString;
|
21
15
|
}, "strip", z.ZodTypeAny, {
|
22
16
|
authorization: string;
|
@@ -21,12 +21,6 @@ export declare const getUserToken: import('@lokalise/universal-ts-utils/node').P
|
|
21
21
|
}, {
|
22
22
|
teamId: number;
|
23
23
|
}>, undefined, z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
24
|
-
Authorization: z.ZodString;
|
25
|
-
}, "strip", z.ZodTypeAny, {
|
26
|
-
Authorization: string;
|
27
|
-
}, {
|
28
|
-
Authorization: string;
|
29
|
-
}>, z.ZodObject<{
|
30
24
|
authorization: z.ZodString;
|
31
25
|
}, "strip", z.ZodTypeAny, {
|
32
26
|
authorization: string;
|