@clevercloud/components
Advanced tools
Comparing version 2.0.2 to 3.0.0
# Clever Components changelog | ||
## 3.0.0 (2020-03-14) | ||
### Components | ||
* New component: `<env-var-linked-services>` | ||
* `<env-var-form>`: | ||
* center overlay blocks in env editor | ||
* introduce `context` (and `appName`) to provide several translated heading & descriptions | ||
* pause skeleton on loading errors | ||
* remove `@env-var-form:dismissed-error` for loading errors | ||
* just mention "variables" without environment in i18n | ||
* add docs for default slot | ||
* remove promise based API | ||
### For devs | ||
* Add Apache 2 license | ||
* Update dev deps (build, tasks...) | ||
* Update to Storybook 5.3.17 | ||
### ⚠️ BREAKING CHANGES | ||
* `<env-var-full>`: remove component | ||
NOTE: This component was a bit too high level and the composition was hard to struggle with | ||
## 2.0.2 (2020-03-06) | ||
* env-var-form: fix parsing/serialization pb with simple/export mode | ||
* `<env-var-form>`: fix parsing/serialization pb with simple/export mode | ||
@@ -7,0 +33,0 @@ NOTE: This is a bug fix but if you copy/paste stuffs in the expert mode that was serialized in the old version you could have some problems. |
@@ -1,2 +0,2 @@ | ||
import"../atoms/cc-button.js";import"../atoms/cc-expand.js";import"../atoms/cc-loader.js";import"../atoms/cc-toggle.js";import"../molecules/cc-error.js";import"./env-var-editor-expert.js";import"./env-var-editor-simple.js";import{classMap as e}from"lit-html/directives/class-map.js";import{css as t,html as r,LitElement as i}from"lit-element";import{dispatchCustomEvent as s}from"../lib/events.js";import{i18n as a}from"../lib/i18n.js";export class EnvVarForm extends i{static get properties(){return{error:{type:String,reflect:!0},heading:{type:String,reflect:!0},readonly:{type:Boolean,reflect:!0},restartApp:{type:Boolean,attribute:"restart-app"},saving:{type:Boolean,reflect:!0},variables:{type:Array,attribute:!1},_currentVariables:{type:Array,attribute:!1},_expertVariables:{type:Array,attribute:!1},_mode:{type:String,attribute:!1},_isPristine:{type:Boolean,attribute:!1}}}constructor(){super(),this.error=null,this.heading=null,this.readonly=!1,this.restartApp=!1,this.saving=!1,this._mode="SIMPLE"}static get modes(){return[{label:a("env-var-form.mode.simple"),value:"SIMPLE"},{label:a("env-var-form.mode.expert"),value:"EXPERT"}]}set variables(e){if(null==e)return this._setVariables(null);null!=this._initVariables&&(this.saving=!0),this.error=null,e.then(e=>{this._setVariables(e),this.error=null,this.saving=!1}).catch(()=>{null==this._initVariables?this.error="loading":this.error="saving",this.saving=!1})}_setVariables(e){this._initVariables=e,this._isPristine=!0,null==e?(this._currentVariables=null,this._expertVariables=null):(this._currentVariables=e.sort((e,t)=>e.name.localeCompare(t.name)),this._expertVariables=e.sort((e,t)=>e.name.localeCompare(t.name)))}_onChange({detail:e}){const t=this._initVariables.filter(t=>{const r=e.find(e=>e.name===t.name);return(null==r||r.isDeleted)&&!t.isNew}).map(e=>({...e,isDeleted:!0})),r=e.filter(e=>null==this._initVariables.find(t=>t.name===e.name)).map(e=>({...e,isNew:!0})),i=e.filter(e=>{const i=t.find(t=>t.name===e.name),s=r.find(t=>t.name===e.name);return!i&&!s}).map(e=>{const t=this._initVariables.find(t=>t.name===e.name).value!==e.value;return{...e,isEdited:t}}),s=[...t,...r,...i];this._isPristine=!s.some(({isDeleted:e,isNew:t,isEdited:r})=>e||t||r),this._currentVariables=s.sort((e,t)=>e.name.localeCompare(t.name))}_onToggleMode({detail:e}){"EXPERT"===e&&(this._expertVariables=this._currentVariables),this._mode=e}_onResetForm(){this._setVariables(this._initVariables)}_onUpdateForm(){const e=this._currentVariables.filter(({isDeleted:e})=>!e).map(({name:e,value:t})=>({name:e,value:t}));s(this,"submit",e)}get _errorMessage(){return"loading"===this.error?a("env-var-form.error.loading"):"saving"===this.error?a("env-var-form.error.saving"):a("env-var-form.error.unknown")}_onRequestSubmit(e,t){e.stopPropagation(),t||this._onUpdateForm()}render(){const t=this.saving||null!=this.error,i=null==this._currentVariables||this._isPristine||t;return r`<div class=header>${null!=this.heading?r`<div class=heading>${this.heading}</div>`:""}<cc-toggle class="${e({saving:this.saving||null!=this.error})} mode-switcher" value=${this._mode} .choices=${EnvVarForm.modes} ?disabled=${t} @cc-toggle:input=${this._onToggleMode}></cc-toggle></div><slot class=description></slot><cc-expand class=${e({saving:this.saving||null!=this.error})}><env-var-editor-simple ?hidden=${"SIMPLE"!==this._mode} .variables=${this._currentVariables} ?disabled=${t} ?readonly=${this.readonly} @env-var-editor-simple:change=${this._onChange} @cc-input-text:requestimplicitsubmit=${e=>this._onRequestSubmit(e,i)}></env-var-editor-simple><env-var-editor-expert ?hidden=${"EXPERT"!==this._mode} .variables=${this._expertVariables} ?disabled=${t} ?readonly=${this.readonly} @env-var-editor-expert:change=${this._onChange} @cc-input-text:requestimplicitsubmit=${e=>this._onRequestSubmit(e,i)}></env-var-editor-expert></cc-expand>${this.readonly?"":r`<div class=button-bar><cc-button ?disabled=${i} @cc-button:click=${this._onResetForm}>${a("env-var-form.reset")}</cc-button><div class=spacer></div>${this.restartApp?r`<cc-button @cc-button:click=${()=>s(this,"restart-app")}>${a("env-var-form.restart-app")}</cc-button>`:""}<cc-button success ?disabled=${i} @cc-button:click=${this._onUpdateForm}>${a("env-var-form.update")}</cc-button></div>`} ${this.saving?r`<cc-loader class=saving-loader></cc-loader>`:""} ${null!=this.error?r`<div class=error-container><cc-error mode=confirm @cc-error:ok=${()=>s(this,"dismissed-error",this.error)}>${this._errorMessage}</cc-error></div>`:""}`}static get styles(){return[t`:host{display:block;background:#fff;border-radius:.25rem;border:1px solid #bcc2d1;padding:1rem;position:relative}.header{align-items:flex-start;display:flex;justify-content:center;margin-bottom:.5rem}.heading{color:#3a3871;flex:1 1 0;font-size:1.2rem;font-weight:700;margin:.2rem}.description{display:block;color:#555;font-style:italic;margin:.2rem .2rem 1rem}.saving{filter:blur(.3rem)}.button-bar{display:flex;flex-wrap:wrap;margin-top:1rem}.spacer{flex:1 1 0}.saving-loader{height:100%;left:0;position:absolute;top:0;width:100%}.error-container{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}`]}}window.customElements.define("env-var-form",EnvVarForm); | ||
import"../atoms/cc-button.js";import"../atoms/cc-expand.js";import"../atoms/cc-loader.js";import"../atoms/cc-toggle.js";import"../molecules/cc-error.js";import"./env-var-editor-expert.js";import"./env-var-editor-simple.js";import{classMap as e}from"lit-html/directives/class-map.js";import{css as t,html as r,LitElement as i}from"lit-element";import{dispatchCustomEvent as a}from"../lib/events.js";import{i18n as s}from"../lib/i18n.js";import{linkStyles as n}from"../templates/cc-link.js";export class EnvVarForm extends i{static get properties(){return{appName:{type:String,attribute:"app-name"},context:{type:String},error:{type:String,reflect:!0},heading:{type:String,reflect:!0},readonly:{type:Boolean,reflect:!0},restartApp:{type:Boolean,attribute:"restart-app"},saving:{type:Boolean,reflect:!0},variables:{type:Array,attribute:!1},_currentVariables:{type:Array,attribute:!1},_description:{type:String,attribute:!1},_expertVariables:{type:Array,attribute:!1},_mode:{type:String,attribute:!1},_isPristine:{type:Boolean,attribute:!1}}}constructor(){super(),this.appName="?",this.context=null,this.error=null,this.heading=null,this.readonly=!1,this.restartApp=!1,this.saving=!1,this._mode="SIMPLE",this._description=""}static get modes(){return[{label:s("env-var-form.mode.simple"),value:"SIMPLE"},{label:s("env-var-form.mode.expert"),value:"EXPERT"}]}set context(e){"env-var"===e&&(this.heading=s("env-var-form.heading.env-var"),this._description=s("env-var-form.description.env-var",{appName:this.appName}),this.requestUpdate()),"env-var-simple"===e&&(this.heading=s("env-var-form.heading.env-var"),this.requestUpdate()),"exposed-config"===e&&(this.heading=s("env-var-form.heading.exposed-config"),this._description=s("env-var-form.description.exposed-config",{appName:this.appName}),this.requestUpdate())}set variables(e){this._initVariables=e,this._isPristine=!0,null==e?(this._currentVariables=null,this._expertVariables=null):(this._currentVariables=e.sort((e,t)=>e.name.localeCompare(t.name)),this._expertVariables=e.sort((e,t)=>e.name.localeCompare(t.name)))}_onChange({detail:e}){const t=this._initVariables.filter(t=>{const r=e.find(e=>e.name===t.name);return(null==r||r.isDeleted)&&!t.isNew}).map(e=>({...e,isDeleted:!0})),r=e.filter(e=>null==this._initVariables.find(t=>t.name===e.name)).map(e=>({...e,isNew:!0})),i=e.filter(e=>{const i=t.find(t=>t.name===e.name),a=r.find(t=>t.name===e.name);return!i&&!a}).map(e=>{const t=this._initVariables.find(t=>t.name===e.name).value!==e.value;return{...e,isEdited:t}}),a=[...t,...r,...i];this._isPristine=!a.some(({isDeleted:e,isNew:t,isEdited:r})=>e||t||r),this._currentVariables=a.sort((e,t)=>e.name.localeCompare(t.name))}_onToggleMode({detail:e}){"EXPERT"===e&&(this._expertVariables=this._currentVariables),this._mode=e}_onResetForm(){this.variables=this._initVariables}_onUpdateForm(){const e=this._currentVariables.filter(({isDeleted:e})=>!e).map(({name:e,value:t})=>({name:e,value:t}));a(this,"submit",e)}get _errorMessage(){return"loading"===this.error?s("env-var-form.error.loading"):"saving"===this.error?s("env-var-form.error.saving"):s("env-var-form.error.unknown")}_onRequestSubmit(e,t){e.stopPropagation(),t||this._onUpdateForm()}render(){const t=this.saving||null!=this.error,i=null==this._currentVariables||this._isPristine||t,n=this.saving||null!=this.error;return r`<div class=header>${null!=this.heading?r`<div class=heading>${this.heading}</div>`:""}<cc-toggle class="${e({hasOverlay:n})} mode-switcher" value=${this._mode} .choices=${EnvVarForm.modes} ?disabled=${t} @cc-toggle:input=${this._onToggleMode}></cc-toggle></div><slot class=description>${this._description}</slot><div class=overlay-container><cc-expand class=${e({hasOverlay:n})}><env-var-editor-simple ?hidden=${"SIMPLE"!==this._mode} .variables=${this._currentVariables} ?disabled=${t} ?readonly=${this.readonly} @env-var-editor-simple:change=${this._onChange} @cc-input-text:requestimplicitsubmit=${e=>this._onRequestSubmit(e,i)}></env-var-editor-simple><env-var-editor-expert ?hidden=${"EXPERT"!==this._mode} .variables=${this._expertVariables} ?disabled=${t} ?readonly=${this.readonly} @env-var-editor-expert:change=${this._onChange} @cc-input-text:requestimplicitsubmit=${e=>this._onRequestSubmit(e,i)}></env-var-editor-expert></cc-expand>${"loading"===this.error?r`<div class=error-container><cc-error mode=info>${this._errorMessage}</cc-error></div>`:""} ${"saving"===this.error?r`<div class=error-container><cc-error mode=confirm @cc-error:ok=${()=>a(this,"dismissed-error")}>${this._errorMessage}</cc-error></div>`:""} ${this.saving?r`<cc-loader class=saving-loader></cc-loader>`:""}</div>${this.readonly?"":r`<div class=button-bar><cc-button ?disabled=${i} @cc-button:click=${this._onResetForm}>${s("env-var-form.reset")}</cc-button><div class=spacer></div>${this.restartApp?r`<cc-button @cc-button:click=${()=>a(this,"restart-app")}>${s("env-var-form.restart-app")}</cc-button>`:""}<cc-button success ?disabled=${i} @cc-button:click=${this._onUpdateForm}>${s("env-var-form.update")}</cc-button></div>`}`}static get styles(){return[n,t`:host{display:block;background:#fff;border-radius:.25rem;border:1px solid #bcc2d1;padding:1rem}.header{align-items:flex-start;display:flex;justify-content:center;margin-bottom:.5rem}.heading{color:#3a3871;flex:1 1 0;font-size:1.2rem;font-weight:700;margin:.2rem}.description{display:block;color:#555;font-style:italic;line-height:1.5;margin:.2rem .2rem 1rem}.hasOverlay{--cc-skeleton-state:paused;filter:blur(.3rem)}.overlay-container{position:relative}.error-container{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.saving-loader{height:100%;left:0;position:absolute;top:0;width:100%}.button-bar{display:flex;flex-wrap:wrap;margin-top:1rem}.spacer{flex:1 1 0}`]}}window.customElements.define("env-var-form",EnvVarForm); | ||
//# sourceMappingURL=env-var-form.js.map |
@@ -1,2 +0,2 @@ | ||
const e=["STRONG","EM","CODE","A"],t=(()=>{if(null==globalThis.document)return()=>"";const e=document.createElement("span"),t=document.createTextNode("");return e.appendChild(t),n=>(t.data=n,e.innerHTML)})();function n(e){return null!=e&&e.nodeType===document.TEXT_NODE?(e.parentNode.removeChild(e),e.data):""}export function sanitize(o,...r){let a="";for(let e=0;e<o.length;e++)a+=o[e],null!=r[e]&&(a+=t(r[e]));const l=document.createElement("template");return l.innerHTML=a,Array.from(l.content.querySelectorAll("*")).forEach(t=>{if(e.includes(t.tagName))Array.from(t.attributes).filter(e=>"title"!==e.name&&("A"!==t.tagName||"href"!==e.name)).forEach(e=>(console.warn(`Attribute ${e.name} is not allowed on <${t.tagName.toLowerCase()}> in translations!`),t.removeAttribute(e.name))),"A"===t.tagName&&null!=t.getAttribute("href")&&t.origin!==window.location.origin&&(t.classList.add("sanitized-link"),t.setAttribute("rel","noopener noreferrer"),t.setAttribute("target","_blank"));else{const e=n(t.previousSibling),o=n(t.nextSibling),r=document.createTextNode(e+t.textContent+o);t.parentNode.replaceChild(r,t),console.warn(`Node <${t.tagName.toLowerCase()}> is not allowed in translations!`)}}),l.content.cloneNode(!0)} | ||
const e=["STRONG","EM","CODE","A","BR"],t=(()=>{if(null==globalThis.document)return()=>"";const e=document.createElement("span"),t=document.createTextNode("");return e.appendChild(t),n=>(t.data=n,e.innerHTML)})();function n(e){return null!=e&&e.nodeType===document.TEXT_NODE?(e.parentNode.removeChild(e),e.data):""}export function sanitize(o,...r){let a="";for(let e=0;e<o.length;e++)a+=o[e],null!=r[e]&&(a+=t(r[e]));const l=document.createElement("template");return l.innerHTML=a,Array.from(l.content.querySelectorAll("*")).forEach(t=>{if(e.includes(t.tagName))Array.from(t.attributes).filter(e=>"title"!==e.name&&("A"!==t.tagName||"href"!==e.name)).forEach(e=>(console.warn(`Attribute ${e.name} is not allowed on <${t.tagName.toLowerCase()}> in translations!`),t.removeAttribute(e.name))),"A"===t.tagName&&null!=t.getAttribute("href")&&t.origin!==window.location.origin&&(t.classList.add("sanitized-link"),t.setAttribute("rel","noopener noreferrer"),t.setAttribute("target","_blank"));else{const e=n(t.previousSibling),o=n(t.nextSibling),r=document.createTextNode(e+t.textContent+o);t.parentNode.replaceChild(r,t),console.warn(`Node <${t.tagName.toLowerCase()}> is not allowed in translations!`)}}),l.content.cloneNode(!0)} | ||
//# sourceMappingURL=i18n-sanitize.js.map |
@@ -1,2 +0,2 @@ | ||
import"../atoms/cc-button.js";import"../molecules/cc-error.js";import t from"./git.svg";import e from"./restart-failed.svg";import i from"./restarting.svg";import s from"./restarting-with-downtime.svg";import a from"./running.svg";import r from"./start-failed.svg";import n from"./starting.svg";import o from"./stopped.svg";import c from"./unknown.svg";import{ccLink as l,linkStyles as m}from"../templates/cc-link.js";import{classMap as p}from"lit-html/directives/class-map.js";import{css as d,html as g,LitElement as u}from"lit-element";import{dispatchCustomEvent as h}from"../lib/events.js";import{i18n as b}from"../lib/i18n.js";import{ifDefined as f}from"lit-html/directives/if-defined.js";import{skeleton as $}from"../styles/skeleton.js";const _={git:t,running:a,starting:n},w={"restart-failed":e,restarting:i,"restarting-with-downtime":s,running:a,"start-failed":r,starting:n,stopped:o};export class CcHeaderApp extends u{static get properties(){return{app:{type:Object,attribute:!1},disableButtons:{type:Boolean,attribute:"disable-buttons",reflect:!0},error:{type:Boolean,reflect:!0},runningCommit:{type:String,attribute:"running-commit"},startingCommit:{type:String,attribute:"starting-commit"},status:{type:String},_lastUserAction:{type:String,attribute:!1}}}constructor(){super(),this.disableButtons=!1,this.error=!1}set status(t){const e=this._status;this._lastUserAction=this.status!==t?null:this._lastUserAction,this._status=t,this.requestUpdate("status",e)}get status(){return this._status}static get skeletonApp(){return{name:"??????????????????????????",commit:"????????????????????????????????????????"}}static get skeletonStatus(){return"unknown"}_getCommitTitle(t,e){if(null!=e)return"git"===t?b("cc-header-app.commits.git",{commit:e}):"running"===t?b("cc-header-app.commits.running",{commit:e}):"starting"===t?b("cc-header-app.commits.starting",{commit:e}):void 0}_getStatusMsg(t){return"restart-failed"===t?b("cc-header-app.state-msg.app-is-running")+" "+b("cc-header-app.state-msg.last-deploy-failed"):"restarting"===t?b("cc-header-app.state-msg.app-is-restarting"):"restarting-with-downtime"===t?b("cc-header-app.state-msg.app-is-restarting"):"running"===t?b("cc-header-app.state-msg.app-is-running"):"start-failed"===t?b("cc-header-app.state-msg.app-is-stopped")+" "+b("cc-header-app.state-msg.last-deploy-failed"):b("starting"===t?"cc-header-app.state-msg.app-is-starting":"stopped"===t?"cc-header-app.state-msg.app-is-stopped":"cc-header-app.state-msg.unknown-state")}_getLastUserActionMsg(){return"start"===this._lastUserAction?b("cc-header-app.user-action-msg.app-will-start"):"restart"===this._lastUserAction?b("cc-header-app.user-action-msg.deploy-will-begin"):"cancel"===this._lastUserAction?b("cc-header-app.user-action-msg.deploy-cancelled"):"stop"===this._lastUserAction?b("cc-header-app.user-action-msg.app-will-stop"):void 0}_onStart(t){this._lastUserAction="start",h(this,"start",t)}_onRestart(t){this._lastUserAction="restart",h(this,"restart",t)}_onCancel(){this._lastUserAction="cancel",h(this,"cancel")}_onStop(){this._lastUserAction="stop",h(this,"stop")}_renderCommit(t,e,i){return null==t&&"git"!==e?"":g`<span class="${p({"is-deploying":"starting"===e})} commit-item" title=${f(i?void 0:this._getCommitTitle(e,t))} data-type=${e}><img class=commit_img src=${_[e]} alt=""> ${null!=t?g`<span class=${p({skeleton:i})}>${t.slice(0,8)}<span class=commit_rest>${t.slice(8)}</span></span>`:""} ${null==t?g`<span>${b("cc-header-app.commits.no-commits")}</span>`:""}</span>`}render(){if(this.error)return g`<cc-error>${b("cc-header-app.error")}</cc-error>`;const t=null==this.app,{name:e,commit:i,variantName:s,variantLogo:a,lastDeploymentLogsUrl:r}=t?CcHeaderApp.skeletonApp:this.app,n=null==this.status,o=n?CcHeaderApp.skeletonStatus:this.status,m=["restarting","restarting-with-downtime","starting"].includes(o),d=["restart-failed","restarting","running"].includes(o),u=null!=this._lastUserAction||this.disableButtons,h=["start-failed","stopped","unknown"].includes(o),$=["start-failed","stopped"].includes(o),_=n||["restart-failed","running","unknown"].includes(o),v="start"!==this._lastUserAction&&"stop"!==this._lastUserAction,y=["restart-failed","restarting","restarting-with-downtime","starting","start-failed"].includes(o),k=this.disableButtons?b("cc-header-app.disable-buttons"):void 0;return g`<div class=main><div class="${p({skeleton:t})} flavor-logo" title=${f(s)}><img class=flavor-logo_img src=${f(a)} alt=""></div><div class=details><div class=name><span class=${p({skeleton:t})}>${e}</span></div><div class=commits>${this._renderCommit(i,"git",t)} ${d?this._renderCommit(this.runningCommit,"running",t):""} ${m?this._renderCommit(this.startingCommit,"starting",t):""}</div></div><div class=buttons>${$?g`<cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("normal")}>${b("cc-header-app.action.start")}</cc-button><cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("rebuild")}>${b("cc-header-app.action.start-rebuild")}</cc-button><cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("last-commit")}>${b("cc-header-app.action.start-last-commit")}</cc-button>`:""} ${_?g`<cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("normal")}>${b("cc-header-app.action.restart")}</cc-button><cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("rebuild")}>${b("cc-header-app.action.restart-rebuild")}</cc-button><cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("last-commit")}>${b("cc-header-app.action.restart-last-commit")}</cc-button>`:""} ${m?g`<cc-button warning outlined title=${f(k)} ?disabled=${u} @cc-button:click=${this._onCancel}>${b("cc-header-app.action.cancel-deployment")}</cc-button>`:""}<cc-button danger outlined delay=3 title=${f(k)} ?skeleton=${n} ?disabled=${u||h} @cc-button:click=${this._onStop}>${b("cc-header-app.action.stop")}</cc-button></div></div><div class="${p({"is-deploying":m})} messages">${v?g`<img class=status-icon src=${w[o]||c} alt=""> <span class=${p({skeleton:n})}>${this._getStatusMsg(o)} </span>${y?l(r,b("cc-header-app.read-logs")):""}`:""} ${null!=this._lastUserAction?g`${this._getLastUserActionMsg()}`:""}</div>`}static get styles(){return[$,m,d`:host{background-color:#fff;border-radius:.25rem;border:1px solid #bcc2d1;display:flex;flex-direction:column;flex-wrap:wrap}cc-error{padding:1rem;text-align:center}.main{align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:flex-end}.flavor-logo{border-radius:.25rem;align-self:flex-start;height:3.25rem;margin:1rem;overflow:hidden;width:3.25rem}.flavor-logo_img{display:block;height:100%;width:100%}.skeleton .flavor-logo_img{opacity:0}.details{display:flex;flex-direction:column;flex:1 1 0;min-height:3rem;margin:1rem 1rem 1rem 0;justify-content:space-between}.name{font-weight:700;font-size:1.1rem;min-width:12rem}.commits{display:flex;flex-wrap:wrap}.commit-item{align-items:flex-start;display:flex;margin-right:.75rem;margin-top:.5rem}.commit-item[data-type=git]{color:#5d5d5d}.commit-item[data-type=running]{color:#2faa60}.commit-item[data-type=starting]{color:#2b96fd}.commit_img{height:1.1rem;margin-right:.2rem;overflow:hidden;width:1.1rem}.commit_rest{font-size:0}.buttons{display:flex;flex-wrap:wrap;padding:.5rem 1rem .5rem 0}cc-button{flex:1 1 auto;margin:.5rem 0 .5rem 1rem;min-width:0}:host([disable-buttons]) cc-button{cursor:not-allowed}@keyframes deploying{from{opacity:.85}to{opacity:1}}.messages{background-color:#f1f5ff;box-shadow:inset 0 6px 6px -6px #a4b1c9;box-sizing:border-box;color:#2e2e2e;font-size:.9rem;font-style:italic;padding:.4rem 1rem}.is-deploying{animation-direction:alternate;animation-duration:.5s;animation-iteration-count:infinite;animation-name:deploying}.status-icon{height:1.25rem;vertical-align:middle;min-width:1.25rem}[title]{cursor:help}.skeleton{background-color:#bbb}`]}}window.customElements.define("cc-header-app",CcHeaderApp); | ||
import"../atoms/cc-button.js";import"../molecules/cc-error.js";import t from"./git.svg";import e from"./restart-failed.svg";import i from"./restarting.svg";import s from"./restarting-with-downtime.svg";import a from"./running.svg";import r from"./start-failed.svg";import n from"./starting.svg";import o from"./stopped.svg";import c from"./unknown.svg";import{ccLink as l,linkStyles as m}from"../templates/cc-link.js";import{classMap as p}from"lit-html/directives/class-map.js";import{css as d,html as g,LitElement as u}from"lit-element";import{dispatchCustomEvent as h}from"../lib/events.js";import{i18n as b}from"../lib/i18n.js";import{ifDefined as f}from"lit-html/directives/if-defined.js";import{skeleton as $}from"../styles/skeleton.js";const _={git:t,running:a,starting:n},w={"restart-failed":e,restarting:i,"restarting-with-downtime":s,running:a,"start-failed":r,starting:n,stopped:o};export class CcHeaderApp extends u{static get properties(){return{app:{type:Object,attribute:!1},disableButtons:{type:Boolean,attribute:"disable-buttons",reflect:!0},error:{type:Boolean,reflect:!0},runningCommit:{type:String,attribute:"running-commit"},startingCommit:{type:String,attribute:"starting-commit"},status:{type:String},_lastUserAction:{type:String,attribute:!1}}}constructor(){super(),this.disableButtons=!1,this.error=!1}set status(t){const e=this._status;this._lastUserAction=this.status!==t?null:this._lastUserAction,this._status=t,this.requestUpdate("status",e)}get status(){return this._status}static get skeletonApp(){return{name:"??????????????????????????",commit:"????????????????????????????????????????"}}static get skeletonStatus(){return"unknown"}_getCommitTitle(t,e){if(null!=e)return"git"===t?b("cc-header-app.commits.git",{commit:e}):"running"===t?b("cc-header-app.commits.running",{commit:e}):"starting"===t?b("cc-header-app.commits.starting",{commit:e}):void 0}_getStatusMsg(t){return"restart-failed"===t?b("cc-header-app.state-msg.app-is-running")+" "+b("cc-header-app.state-msg.last-deploy-failed"):"restarting"===t||"restarting-with-downtime"===t?b("cc-header-app.state-msg.app-is-restarting"):"running"===t?b("cc-header-app.state-msg.app-is-running"):"start-failed"===t?b("cc-header-app.state-msg.app-is-stopped")+" "+b("cc-header-app.state-msg.last-deploy-failed"):b("starting"===t?"cc-header-app.state-msg.app-is-starting":"stopped"===t?"cc-header-app.state-msg.app-is-stopped":"cc-header-app.state-msg.unknown-state")}_getLastUserActionMsg(){return"start"===this._lastUserAction?b("cc-header-app.user-action-msg.app-will-start"):"restart"===this._lastUserAction?b("cc-header-app.user-action-msg.deploy-will-begin"):"cancel"===this._lastUserAction?b("cc-header-app.user-action-msg.deploy-cancelled"):"stop"===this._lastUserAction?b("cc-header-app.user-action-msg.app-will-stop"):void 0}_onStart(t){this._lastUserAction="start",h(this,"start",t)}_onRestart(t){this._lastUserAction="restart",h(this,"restart",t)}_onCancel(){this._lastUserAction="cancel",h(this,"cancel")}_onStop(){this._lastUserAction="stop",h(this,"stop")}_renderCommit(t,e,i){return null==t&&"git"!==e?"":g`<span class="${p({"is-deploying":"starting"===e})} commit-item" title=${f(i?void 0:this._getCommitTitle(e,t))} data-type=${e}><img class=commit_img src=${_[e]} alt=""> ${null!=t?g`<span class=${p({skeleton:i})}>${t.slice(0,8)}<span class=commit_rest>${t.slice(8)}</span></span>`:""} ${null==t?g`<span>${b("cc-header-app.commits.no-commits")}</span>`:""}</span>`}render(){if(this.error)return g`<cc-error>${b("cc-header-app.error")}</cc-error>`;const t=null==this.app,{name:e,commit:i,variantName:s,variantLogo:a,lastDeploymentLogsUrl:r}=t?CcHeaderApp.skeletonApp:this.app,n=null==this.status,o=n?CcHeaderApp.skeletonStatus:this.status,m=["restarting","restarting-with-downtime","starting"].includes(o),d=["restart-failed","restarting","running"].includes(o),u=null!=this._lastUserAction||this.disableButtons,h=["start-failed","stopped","unknown"].includes(o),$=["start-failed","stopped"].includes(o),_=n||["restart-failed","running","unknown"].includes(o),v="start"!==this._lastUserAction&&"stop"!==this._lastUserAction,y=["restart-failed","restarting","restarting-with-downtime","starting","start-failed"].includes(o),k=this.disableButtons?b("cc-header-app.disable-buttons"):void 0;return g`<div class=main><div class="${p({skeleton:t})} flavor-logo" title=${f(s)}><img class=flavor-logo_img src=${f(a)} alt=""></div><div class=details><div class=name><span class=${p({skeleton:t})}>${e}</span></div><div class=commits>${this._renderCommit(i,"git",t)} ${d?this._renderCommit(this.runningCommit,"running",t):""} ${m?this._renderCommit(this.startingCommit,"starting",t):""}</div></div><div class=buttons>${$?g`<cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("normal")}>${b("cc-header-app.action.start")}</cc-button><cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("rebuild")}>${b("cc-header-app.action.start-rebuild")}</cc-button><cc-button title=${f(k)} ?disabled=${u} @cc-button:click=${()=>this._onStart("last-commit")}>${b("cc-header-app.action.start-last-commit")}</cc-button>`:""} ${_?g`<cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("normal")}>${b("cc-header-app.action.restart")}</cc-button><cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("rebuild")}>${b("cc-header-app.action.restart-rebuild")}</cc-button><cc-button title=${f(k)} ?skeleton=${n} ?disabled=${u} @cc-button:click=${()=>this._onRestart("last-commit")}>${b("cc-header-app.action.restart-last-commit")}</cc-button>`:""} ${m?g`<cc-button warning outlined title=${f(k)} ?disabled=${u} @cc-button:click=${this._onCancel}>${b("cc-header-app.action.cancel-deployment")}</cc-button>`:""}<cc-button danger outlined delay=3 title=${f(k)} ?skeleton=${n} ?disabled=${u||h} @cc-button:click=${this._onStop}>${b("cc-header-app.action.stop")}</cc-button></div></div><div class="${p({"is-deploying":m})} messages">${v?g`<img class=status-icon src=${w[o]||c} alt=""> <span class=${p({skeleton:n})}>${this._getStatusMsg(o)} </span>${y?l(r,b("cc-header-app.read-logs")):""}`:""} ${null!=this._lastUserAction?g`${this._getLastUserActionMsg()}`:""}</div>`}static get styles(){return[$,m,d`:host{background-color:#fff;border-radius:.25rem;border:1px solid #bcc2d1;display:flex;flex-direction:column;flex-wrap:wrap}cc-error{padding:1rem;text-align:center}.main{align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:flex-end}.flavor-logo{border-radius:.25rem;align-self:flex-start;height:3.25rem;margin:1rem;overflow:hidden;width:3.25rem}.flavor-logo_img{display:block;height:100%;width:100%}.skeleton .flavor-logo_img{opacity:0}.details{display:flex;flex-direction:column;flex:1 1 0;min-height:3rem;margin:1rem 1rem 1rem 0;justify-content:space-between}.name{font-weight:700;font-size:1.1rem;min-width:12rem}.commits{display:flex;flex-wrap:wrap}.commit-item{align-items:flex-start;display:flex;margin-right:.75rem;margin-top:.5rem}.commit-item[data-type=git]{color:#5d5d5d}.commit-item[data-type=running]{color:#2faa60}.commit-item[data-type=starting]{color:#2b96fd}.commit_img{height:1.1rem;margin-right:.2rem;overflow:hidden;width:1.1rem}.commit_rest{font-size:0}.buttons{display:flex;flex-wrap:wrap;padding:.5rem 1rem .5rem 0}cc-button{flex:1 1 auto;margin:.5rem 0 .5rem 1rem;min-width:0}:host([disable-buttons]) cc-button{cursor:not-allowed}@keyframes deploying{from{opacity:.85}to{opacity:1}}.messages{background-color:#f1f5ff;box-shadow:inset 0 6px 6px -6px #a4b1c9;box-sizing:border-box;color:#2e2e2e;font-size:.9rem;font-style:italic;padding:.4rem 1rem}.is-deploying{animation-direction:alternate;animation-duration:.5s;animation-iteration-count:infinite;animation-name:deploying}.status-icon{height:1.25rem;vertical-align:middle;min-width:1.25rem}[title]{cursor:help}.skeleton{background-color:#bbb}`]}}window.customElements.define("cc-header-app",CcHeaderApp); | ||
//# sourceMappingURL=cc-header-app.js.map |
@@ -1,2 +0,2 @@ | ||
import{css as e}from"lit-element";export const skeleton=e`@keyframes skeleton-pulse{from{opacity:.85}to{opacity:.45}}.skeleton{animation-direction:alternate;animation-duration:.5s;animation-iteration-count:infinite;animation-name:skeleton-pulse;color:transparent;cursor:progress;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.skeleton--paused{animation-play-state:paused}`; | ||
import{css as e}from"lit-element";export const skeleton=e`@keyframes skeleton-pulse{from{opacity:.85}to{opacity:.45}}.skeleton{animation-direction:alternate;animation-duration:.5s;animation-iteration-count:infinite;animation-name:skeleton-pulse;animation-play-state:var(--cc-skeleton-state,running);color:transparent;cursor:progress;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}`; | ||
//# sourceMappingURL=skeleton.js.map |
@@ -1,2 +0,2 @@ | ||
import{prepareFormatDate as e,prepareFormatDateOnly as a,prepareFormatDatetime as t,prepareFormatDistanceToNow as n,prepareFormatHours as o}from"../lib/i18n-date.js";import{prepareNumberUnitFormatter as i}from"../lib/i18n-number.js";import{sanitize as c}from"../lib/i18n-sanitize.js";export const lang="en";function s(e,a=e+"s"){return t=>1===t?e:a}const r=n("en",(e,a)=>`${e} ${s(a)(e)} ago`,"just now"),d=e("en"),l=t("en"),p=a("en"),u=o("en"),m=new Intl.NumberFormat("en",{style:"currency",currency:"EUR"}),h=new Intl.NumberFormat("en",{style:"percent",minimumFractionDigits:1,maximumFractionDigits:1}),g=new Intl.NumberFormat("en"),f=i("en");function b(e){return[`CPUs: ${e.cpus}`+(e.microservice?" (shared)":""),e.gpus>0?`GPUs: ${e.gpus}`:"",`RAM: ${e.mem<1024?`${e.mem} MB`:`${e.mem/1024} GB`}`].filter(e=>e).join("\n")}export const translations={LANGUAGE:"🇬🇧 English","cc-addon-backups.command-password":"This command will ask for your password, here it is:","cc-addon-backups.delete":({createdAt:e})=>c`Delete the backup from <strong title="${d(e)}">${l(e)}</strong>`,"cc-addon-backups.delete.btn":"delete...","cc-addon-backups.delete.with-service.title.es-addon":"Delete with Kibana","cc-addon-backups.delete.with-service.description.es-addon":({href:e})=>c`You can delete this backup using Kibana by going to the <a href="${e}">backup repository</a>.`,"cc-addon-backups.delete.manual.title":"Delete manually","cc-addon-backups.delete.manual.description.es-addon":"You can delete this backup using cURL by executing this command:","cc-addon-backups.description.es-addon":"Backups are managed by Elasticsearch itself. You can define the retention period and backup frequency through Kibana's UI.","cc-addon-backups.description.es-addon-old":"Backups are managed by Elasticsearch itself. The version of your Elasticsearch does not allow to define a retention policy. Deleting a backup can be done manually through Elasticsearch's API.","cc-addon-backups.empty":"There are no backups yet.","cc-addon-backups.link.es-addon":"open in Kibana","cc-addon-backups.link.es-addon-old":"open in Elasticsearch","cc-addon-backups.loading-error":"Something went wrong while loading the backups.","cc-addon-backups.restore":({createdAt:e})=>c`Restore the backup from <strong title="${d(e)}">${l(e)}</strong>`,"cc-addon-backups.restore.btn":"restore...","cc-addon-backups.restore.with-service.title.es-addon":"Restore with Kibana","cc-addon-backups.restore.with-service.description.es-addon":({href:e})=>c`You can restore this backup using Kibana by going to the <a href="${e}">backup repository</a>.`,"cc-addon-backups.restore.manual.title":"Restore manually","cc-addon-backups.restore.manual.description.es-addon":"You can restore this backup using cURL by executing this command:","cc-addon-backups.text":({createdAt:e,expiresAt:a})=>c`Backup from <strong title="${d(e)}">${l(e)}</strong> (expires on <strong>${p(a)}</strong>)`,"cc-addon-backups.text.user-defined-retention":({createdAt:e})=>c`Backup from <strong title="${d(e)}">${l(e)}</strong> (expires after defined retention)`,"cc-addon-backups.title":"Backups","cc-addon-credentials.description.apm":"Use those credentials to connect an APM Server instance to your Elasticsearch cluster.","cc-addon-credentials.description.elasticsearch":"Use those credentials to connect to your Elasticsearch cluster.","cc-addon-credentials.description.kibana":"Use those credentials to connect a Kibana instance to your Elasticsearch cluster.","cc-addon-credentials.field.auth-token":"Authentication token","cc-addon-credentials.field.host":"Domain name","cc-addon-credentials.field.password":"Password","cc-addon-credentials.field.user":"User","cc-addon-credentials.loading-error":"Something went wrong while loading the credentials.","cc-addon-credentials.title":({name:e})=>`${e} credentials`,"cc-addon-features.details":"Here's the list of all the features of your add-on. Features may evolve and your add-on would need a migration to match them all.","cc-addon-features.feature-name.disk":"Disk","cc-addon-features.feature-name.memory":"Memory","cc-addon-features.feature-name.nodes":"Nodes","cc-addon-features.feature-value.dedicated":"Dedicated","cc-addon-features.feature-value.no":"No","cc-addon-features.feature-value.yes":"Yes","cc-addon-features.loading-error":"Something went wrong while loading add-on features.","cc-addon-features.title":"Features","cc-addon-linked-apps.details":"Here's the list of applications linked to this add-on. The add-on exposes its environment variables to those linked applications.","cc-addon-linked-apps.loading-error":"Something went wrong while loading linked applications.","cc-addon-linked-apps.no-linked-applications":"No applications linked yet.","cc-addon-linked-apps.title":"Linked applications","cc-addon-linked-apps.zone":"zone:","cc-beta.label":"beta","cc-block.toggle.open":"Open","cc-block.toggle.close":"Close","cc-button.cancel":"Click to cancel","cc-datetime-relative.distance":({date:e})=>r(e),"cc-datetime-relative.title":({date:e})=>d(e),"cc-elasticsearch-info.error":"Something went wrong while loading add-ons linked to this application.","cc-elasticsearch-info.info":"Info","cc-elasticsearch-info.link.apm":"Open APM","cc-elasticsearch-info.link.doc":"Read the documentation","cc-elasticsearch-info.link.elasticsearch":"Check out the Elasticsearch add-on","cc-elasticsearch-info.link.kibana":"Open Kibana","cc-elasticsearch-info.text":"This add-on is part of the Elastic Stack offer. You can find the documentation and linked services right below.","cc-elasticsearch-options.enabled":"Enabled","cc-elasticsearch-options.disabled":"Disabled","cc-elasticsearch-options.confirm":"Confirm options","cc-elasticsearch-options.title":"Options for the Elastic Stack","cc-elasticsearch-options.description":()=>c`This add-on is part of the Elastic Stack offer which includes two options. Both these options will be deployed as applications, managed and updated by Clever Cloud on your behalf. They will appear as regular applications that you can stop, scale up or down automatically like one of your own applications. As such, <strong>enabling these options will result in an increase in credits consumption</strong> as well.`,"cc-elasticsearch-options.description.kibana":()=>c`Kibana is the admin UI for the Elastic Stack. It lets you visualize your Elasticsearch data and navigate the stack so you can do anything from tracking query load to understanding the way requests flow through your apps. Learn more in the <a href="https://www.elastic.co/guide/en/kibana/master/index.html">official Kibana documentation</a>.`,"cc-elasticsearch-options.description.apm":()=>c`Elastic APM server is an application performance monitoring system built on the Elastic Stack. Deploying this will allow you to automatically send APM metrics from any applications linked to the Elasticsearch add-on instance, providing you add the Elastic APM agent to the application code. Learn more in the <a href="https://www.elastic.co/guide/en/apm/get-started/current/overview.html">official APM server documentation</a>.`,"cc-elasticsearch-options.warning.kibana":"If you enable this option, we'll deploy and manage a Kibana application for you, this will lead to additional costs.","cc-elasticsearch-options.warning.kibana.details":e=>c`By default, the app will start on a <strong title="${b(e)}">${e.name} instance</strong> which costs around <strong>${m.format(e.monthlyCost)} per month</strong>.`,"cc-elasticsearch-options.warning.apm":"If you enable this option, we'll deploy and manage an Elastic APM server application for you, this will lead to additional costs.","cc-elasticsearch-options.warning.apm.details":e=>c`By default, the app will start on a <strong title="${b(e)}">${e.name} instance</strong> which costs around <strong>${m.format(e.monthlyCost)} per month</strong>.`,"cc-error.ok":"OK","cc-header-addon.plan":"Plan","cc-header-addon.version":"Version","cc-header-addon.creation-date":"Creation date","cc-header-addon.creation-date.short":({date:e})=>p(e),"cc-header-addon.creation-date.full":({date:e})=>d(e),"cc-header-addon.error":"Something went wrong while loading add-on info.","cc-header-app.action.cancel-deployment":"Cancel deployment","cc-header-app.action.restart":"Restart","cc-header-app.action.restart-last-commit":"Restart last pushed commit","cc-header-app.action.restart-rebuild":"Re-build and restart","cc-header-app.action.start":"Start","cc-header-app.action.start-last-commit":"Start last pushed commit","cc-header-app.action.start-rebuild":"Re-build and start","cc-header-app.action.stop":"Stop app","cc-header-app.disable-buttons":"You are not authorized to perform those actions","cc-header-app.read-logs":"read logs here","cc-header-app.commits.no-commits":"no commits yet","cc-header-app.commits.git":({commit:e})=>`git repo version (HEAD): ${e}`,"cc-header-app.commits.running":({commit:e})=>`running version: ${e}`,"cc-header-app.commits.starting":({commit:e})=>`deploying version: ${e}`,"cc-header-app.state-msg.app-is-restarting":"Your application is restarting...","cc-header-app.state-msg.app-is-running":"Your application is running!","cc-header-app.state-msg.app-is-starting":"Your application is starting...","cc-header-app.state-msg.app-is-stopped":"Your application is currently stopped.","cc-header-app.state-msg.last-deploy-failed":"The last deployment failed,","cc-header-app.state-msg.unknown-state":"Unknown state, try to restart the application or contact our support if you have additional questions.","cc-header-app.user-action-msg.app-will-start":"Your application is about to start...","cc-header-app.user-action-msg.deploy-will-begin":"A new deployment is about to begin...","cc-header-app.user-action-msg.deploy-cancelled":"This deployment has been cancelled.","cc-header-app.user-action-msg.app-will-stop":"Your application is about to stop...","cc-header-app.error":"Something went wrong while loading app info.","cc-header-orga.hotline":"Hotline:","cc-header-orga.error":"Something went wrong while loading organization info.","cc-addon-admin.addon-name":"Add-on name","cc-addon-admin.admin":"Administration","cc-addon-admin.delete":"Delete the add-on","cc-addon-admin.danger-zone":"Danger zone","cc-addon-admin.delete-24h-delay":"The virtual machine will be stopped in 24 hours.","cc-addon-admin.delete-keep-backups":"Backups will be kept according to the retention policy.","cc-addon-admin.delete-unavailable":"Deleting this add-on will make it immediately unavailable.","cc-addon-admin.error-loading":"Something went wrong while loading add-on info.","cc-addon-admin.error-saving":"An error occurred when saving your modifications.","cc-addon-admin.tags":"Tags","cc-addon-admin.tags-description":"Tags allow you to classify your applications and add-ons to create categories","cc-addon-admin.tags-empty":"No defined tags","cc-addon-admin.tags-update":"Update tags","cc-addon-admin.update":"Update name","cc-tile-consumption.title":"Credits consumption","cc-tile-consumption.yesterday":"Yesterday","cc-tile-consumption.last-30-days":"Last 30 days","cc-tile-consumption.amount":({amount:e})=>m.format(e),"cc-tile-consumption.error":"Something went wrong while loading consumption info.","cc-tile-deployments.title":"Last deployments","cc-tile-deployments.state.failed":"Failed","cc-tile-deployments.state.started":"Started","cc-tile-deployments.state.cancelled":"Cancelled","cc-tile-deployments.state.stopped":"Stopped","cc-tile-deployments.empty":"No deployments yet.","cc-tile-deployments.error":"Something went wrong while loading deployments info.","cc-tile-instances.title":"Instances","cc-tile-instances.status.deploying":"Deploying","cc-tile-instances.status.running":"Running","cc-tile-instances.empty":"No instances. Your app is stopped.","cc-tile-instances.error":"Something went wrong while loading instances.","cc-tile-requests.title":"HTTP requests","cc-tile-requests.about":"About this chart...","cc-tile-requests.date-hours":({date:e})=>u(e),"cc-tile-requests.date-tooltip":({from:e,to:a})=>`${p(e)}: from ${u(e)} to ${u(a)}`,"cc-tile-requests.requests-nb":({value:e,windowHours:a})=>{const t=s("request")(e),n=s("hour")(a);return`${g.format(e)} ${t} (in ${a} ${n})`},"cc-tile-requests.requests-nb.total":({totalRequests:e})=>{const a=s("request")(e);return`${f(e)} ${a} in 24 hours`},"cc-tile-requests.requests-count":({requestCount:e})=>f(e),"cc-tile-requests.empty":"No data to display for now.","cc-tile-requests.error":"Something went wrong while loading HTTP requests.","cc-tile-requests.docs.msg":({windowHours:e})=>{const a=s("hour")(e);return c`HTTP requests received in the last 24 hours. Each bar represents a time window of <strong>${e} ${a}</strong>.`},"cc-tile-scalability.title":"Scalability","cc-tile-scalability.size":"Size","cc-tile-scalability.number":"Number","cc-tile-scalability.flavor-info":e=>b(e),"cc-tile-scalability.error":"Something went wrong while loading scalability config.","cc-tile-status-codes.title":"HTTP response codes","cc-tile-status-codes.about":"About this chart...","cc-tile-status-codes.tooltip":({value:e,percent:a})=>{const t=s("request")(e);return`${g.format(e)} ${t} (${h.format(a)})`},"cc-tile-status-codes.error":"Something went wrong while loading HTTP response codes.","cc-tile-status-codes.empty":"No data to display for now.","cc-tile-status-codes.docs.msg":"Repartition of HTTP response codes returned in the last 24 hours. Click on legend items to show/hide HTTP code categories.","cc-tile-status-codes.docs.link":()=>c`<a href="https://developer.mozilla.org/en/docs/Web/HTTP/Status">HTTP response status codes (MDN)</a>`,"cc-input-text.clipboard":"Copy to clipboard","cc-input-text.secret.show":"Show secret","cc-input-text.secret.hide":"Hide secret","cc-logsmap.mode.points":"Realtime","cc-logsmap.mode.heatmap":"Last 24h","cc-logsmap.legend.points":({orgaName:e})=>c`Realtime map of HTTP requests received by all apps from <strong>${e}</strong>.`,"cc-logsmap.legend.points.app":({appName:e})=>c`Realtime map of HTTP requests received by <strong>${e}</strong>.`,"cc-logsmap.legend.heatmap":({orgaName:e})=>c`Heatmap of HTTP requests received by all apps from <strong>${e}</strong> during the last 24 hours.`,"cc-logsmap.legend.heatmap.app":({appName:e})=>c`Heatmap of HTTP requests received by <strong>${e}</strong> during the last 24 hours.`,"cc-map.error":"Something went wrong while trying to fetch data for the map.","cc-map.no-points":"No data to display on the map right now.","env-var-create.name.placeholder":"VARIABLE_NAME","env-var-create.value.placeholder":"variable value","env-var-create.create-button":"Add","env-var-create.errors.invalid-name":({name:e})=>c`Name <code>${e}</code> is invalid`,"env-var-create.errors.already-defined-name":({name:e})=>c`Name <code>${e}</code> is already defined`,"env-var-editor-simple.empty-data":"There are no variables.","env-var-editor-expert.placeholder":'VARIABLE_NAME="variable value"',"env-var-editor-expert.placeholder-readonly":"There are no variables.","env-var-editor-expert.errors.unknown":"Unknown Error","env-var-editor-expert.errors.line":"line","env-var-editor-expert.errors.invalid-name":({name:e})=>c`<code>${e}</code> is not a valid variable name`,"env-var-editor-expert.errors.duplicated-name":({name:e})=>c`be careful, the name <code>${e}</code> is already defined`,"env-var-editor-expert.errors.invalid-line":()=>c`this line is not valid, the correct pattern is: <code>NAME="VALUE"</code>`,"env-var-editor-expert.errors.invalid-value":()=>c`the value is not valid, if you use quotes, you need to escape them like this: <code>\\"</code> or quote the whole value.`,"env-var-form.mode.simple":"Simple","env-var-form.mode.expert":"Expert","env-var-form.reset":"Reset changes","env-var-form.restart-app":"Restart the app to apply changes","env-var-form.update":"Update changes","env-var-form.error.loading":"Something went wrong while loading environment variables.","env-var-form.error.saving":"Something went wrong while updating environment variables.","env-var-form.error.unknown":"Something went wrong...","env-var-input.delete-button":"Remove","env-var-input.keep-button":"Keep","env-var-input.value-placeholder":"variable value","env-var-full.heading":"Environment variables","env-var-full.message":"Environment variables allow you to inject data in your application’s environment.","env-var-full.link":"Learn more"}; | ||
import{prepareFormatDate as e,prepareFormatDateOnly as a,prepareFormatDatetime as t,prepareFormatDistanceToNow as n,prepareFormatHours as o}from"../lib/i18n-date.js";import{prepareNumberUnitFormatter as i}from"../lib/i18n-number.js";import{sanitize as s}from"../lib/i18n-sanitize.js";export const lang="en";function r(e,a=e+"s"){return t=>1===t?e:a}const c=n("en",(e,a)=>`${e} ${r(a)(e)} ago`,"just now"),d=e("en"),l=t("en"),p=a("en"),m=o("en"),u=new Intl.NumberFormat("en",{style:"currency",currency:"EUR"}),h=new Intl.NumberFormat("en",{style:"percent",minimumFractionDigits:1,maximumFractionDigits:1}),g=new Intl.NumberFormat("en"),v=i("en");function b(e){return[`CPUs: ${e.cpus}`+(e.microservice?" (shared)":""),e.gpus>0?`GPUs: ${e.gpus}`:"",`RAM: ${e.mem<1024?`${e.mem} MB`:`${e.mem/1024} GB`}`].filter(e=>e).join("\n")}export const translations={LANGUAGE:"🇬🇧 English","cc-addon-backups.command-password":"This command will ask for your password, here it is:","cc-addon-backups.delete":({createdAt:e})=>s`Delete the backup from <strong title="${d(e)}">${l(e)}</strong>`,"cc-addon-backups.delete.btn":"delete...","cc-addon-backups.delete.with-service.title.es-addon":"Delete with Kibana","cc-addon-backups.delete.with-service.description.es-addon":({href:e})=>s`You can delete this backup using Kibana by going to the <a href="${e}">backup repository</a>.`,"cc-addon-backups.delete.manual.title":"Delete manually","cc-addon-backups.delete.manual.description.es-addon":"You can delete this backup using cURL by executing this command:","cc-addon-backups.description.es-addon":"Backups are managed by Elasticsearch itself. You can define the retention period and backup frequency through Kibana's UI.","cc-addon-backups.description.es-addon-old":"Backups are managed by Elasticsearch itself. The version of your Elasticsearch does not allow to define a retention policy. Deleting a backup can be done manually through Elasticsearch's API.","cc-addon-backups.empty":"There are no backups yet.","cc-addon-backups.link.es-addon":"open in Kibana","cc-addon-backups.link.es-addon-old":"open in Elasticsearch","cc-addon-backups.loading-error":"Something went wrong while loading the backups.","cc-addon-backups.restore":({createdAt:e})=>s`Restore the backup from <strong title="${d(e)}">${l(e)}</strong>`,"cc-addon-backups.restore.btn":"restore...","cc-addon-backups.restore.with-service.title.es-addon":"Restore with Kibana","cc-addon-backups.restore.with-service.description.es-addon":({href:e})=>s`You can restore this backup using Kibana by going to the <a href="${e}">backup repository</a>.`,"cc-addon-backups.restore.manual.title":"Restore manually","cc-addon-backups.restore.manual.description.es-addon":"You can restore this backup using cURL by executing this command:","cc-addon-backups.text":({createdAt:e,expiresAt:a})=>s`Backup from <strong title="${d(e)}">${l(e)}</strong> (expires on <strong>${p(a)}</strong>)`,"cc-addon-backups.text.user-defined-retention":({createdAt:e})=>s`Backup from <strong title="${d(e)}">${l(e)}</strong> (expires after defined retention)`,"cc-addon-backups.title":"Backups","cc-addon-credentials.description.apm":"Use those credentials to connect an APM Server instance to your Elasticsearch cluster.","cc-addon-credentials.description.elasticsearch":"Use those credentials to connect to your Elasticsearch cluster.","cc-addon-credentials.description.kibana":"Use those credentials to connect a Kibana instance to your Elasticsearch cluster.","cc-addon-credentials.field.auth-token":"Authentication token","cc-addon-credentials.field.host":"Domain name","cc-addon-credentials.field.password":"Password","cc-addon-credentials.field.user":"User","cc-addon-credentials.loading-error":"Something went wrong while loading the credentials.","cc-addon-credentials.title":({name:e})=>`${e} credentials`,"cc-addon-features.details":"Here's the list of all the features of your add-on. Features may evolve and your add-on would need a migration to match them all.","cc-addon-features.feature-name.disk":"Disk","cc-addon-features.feature-name.memory":"Memory","cc-addon-features.feature-name.nodes":"Nodes","cc-addon-features.feature-value.dedicated":"Dedicated","cc-addon-features.feature-value.no":"No","cc-addon-features.feature-value.yes":"Yes","cc-addon-features.loading-error":"Something went wrong while loading add-on features.","cc-addon-features.title":"Features","cc-addon-linked-apps.details":"Here's the list of applications linked to this add-on. The add-on exposes its environment variables to those linked applications.","cc-addon-linked-apps.loading-error":"Something went wrong while loading linked applications.","cc-addon-linked-apps.no-linked-applications":"No applications linked yet.","cc-addon-linked-apps.title":"Linked applications","cc-addon-linked-apps.zone":"zone:","cc-beta.label":"beta","cc-block.toggle.open":"Open","cc-block.toggle.close":"Close","cc-button.cancel":"Click to cancel","cc-datetime-relative.distance":({date:e})=>c(e),"cc-datetime-relative.title":({date:e})=>d(e),"cc-elasticsearch-info.error":"Something went wrong while loading add-ons linked to this application.","cc-elasticsearch-info.info":"Info","cc-elasticsearch-info.link.apm":"Open APM","cc-elasticsearch-info.link.doc":"Read the documentation","cc-elasticsearch-info.link.elasticsearch":"Check out the Elasticsearch add-on","cc-elasticsearch-info.link.kibana":"Open Kibana","cc-elasticsearch-info.text":"This add-on is part of the Elastic Stack offer. You can find the documentation and linked services right below.","cc-elasticsearch-options.enabled":"Enabled","cc-elasticsearch-options.disabled":"Disabled","cc-elasticsearch-options.confirm":"Confirm options","cc-elasticsearch-options.title":"Options for the Elastic Stack","cc-elasticsearch-options.description":()=>s`This add-on is part of the Elastic Stack offer which includes two options. Both these options will be deployed as applications, managed and updated by Clever Cloud on your behalf. They will appear as regular applications that you can stop, scale up or down automatically like one of your own applications. As such, <strong>enabling these options will result in an increase in credits consumption</strong> as well.`,"cc-elasticsearch-options.description.kibana":()=>s`Kibana is the admin UI for the Elastic Stack. It lets you visualize your Elasticsearch data and navigate the stack so you can do anything from tracking query load to understanding the way requests flow through your apps. Learn more in the <a href="https://www.elastic.co/guide/en/kibana/master/index.html">official Kibana documentation</a>.`,"cc-elasticsearch-options.description.apm":()=>s`Elastic APM server is an application performance monitoring system built on the Elastic Stack. Deploying this will allow you to automatically send APM metrics from any applications linked to the Elasticsearch add-on instance, providing you add the Elastic APM agent to the application code. Learn more in the <a href="https://www.elastic.co/guide/en/apm/get-started/current/overview.html">official APM server documentation</a>.`,"cc-elasticsearch-options.warning.kibana":"If you enable this option, we'll deploy and manage a Kibana application for you, this will lead to additional costs.","cc-elasticsearch-options.warning.kibana.details":e=>s`By default, the app will start on a <strong title="${b(e)}">${e.name} instance</strong> which costs around <strong>${u.format(e.monthlyCost)} per month</strong>.`,"cc-elasticsearch-options.warning.apm":"If you enable this option, we'll deploy and manage an Elastic APM server application for you, this will lead to additional costs.","cc-elasticsearch-options.warning.apm.details":e=>s`By default, the app will start on a <strong title="${b(e)}">${e.name} instance</strong> which costs around <strong>${u.format(e.monthlyCost)} per month</strong>.`,"cc-error.ok":"OK","cc-header-addon.plan":"Plan","cc-header-addon.version":"Version","cc-header-addon.creation-date":"Creation date","cc-header-addon.creation-date.short":({date:e})=>p(e),"cc-header-addon.creation-date.full":({date:e})=>d(e),"cc-header-addon.error":"Something went wrong while loading add-on info.","cc-header-app.action.cancel-deployment":"Cancel deployment","cc-header-app.action.restart":"Restart","cc-header-app.action.restart-last-commit":"Restart last pushed commit","cc-header-app.action.restart-rebuild":"Re-build and restart","cc-header-app.action.start":"Start","cc-header-app.action.start-last-commit":"Start last pushed commit","cc-header-app.action.start-rebuild":"Re-build and start","cc-header-app.action.stop":"Stop app","cc-header-app.disable-buttons":"You are not authorized to perform those actions","cc-header-app.read-logs":"read logs here","cc-header-app.commits.no-commits":"no commits yet","cc-header-app.commits.git":({commit:e})=>`git repo version (HEAD): ${e}`,"cc-header-app.commits.running":({commit:e})=>`running version: ${e}`,"cc-header-app.commits.starting":({commit:e})=>`deploying version: ${e}`,"cc-header-app.state-msg.app-is-restarting":"Your application is restarting...","cc-header-app.state-msg.app-is-running":"Your application is running!","cc-header-app.state-msg.app-is-starting":"Your application is starting...","cc-header-app.state-msg.app-is-stopped":"Your application is currently stopped.","cc-header-app.state-msg.last-deploy-failed":"The last deployment failed,","cc-header-app.state-msg.unknown-state":"Unknown state, try to restart the application or contact our support if you have additional questions.","cc-header-app.user-action-msg.app-will-start":"Your application is about to start...","cc-header-app.user-action-msg.deploy-will-begin":"A new deployment is about to begin...","cc-header-app.user-action-msg.deploy-cancelled":"This deployment has been cancelled.","cc-header-app.user-action-msg.app-will-stop":"Your application is about to stop...","cc-header-app.error":"Something went wrong while loading app info.","cc-header-orga.hotline":"Hotline:","cc-header-orga.error":"Something went wrong while loading organization info.","cc-addon-admin.addon-name":"Add-on name","cc-addon-admin.admin":"Administration","cc-addon-admin.delete":"Delete the add-on","cc-addon-admin.danger-zone":"Danger zone","cc-addon-admin.delete-24h-delay":"The virtual machine will be stopped in 24 hours.","cc-addon-admin.delete-keep-backups":"Backups will be kept according to the retention policy.","cc-addon-admin.delete-unavailable":"Deleting this add-on will make it immediately unavailable.","cc-addon-admin.error-loading":"Something went wrong while loading add-on info.","cc-addon-admin.error-saving":"An error occurred when saving your modifications.","cc-addon-admin.tags":"Tags","cc-addon-admin.tags-description":"Tags allow you to classify your applications and add-ons to create categories","cc-addon-admin.tags-empty":"No defined tags","cc-addon-admin.tags-update":"Update tags","cc-addon-admin.update":"Update name","cc-tile-consumption.title":"Credits consumption","cc-tile-consumption.yesterday":"Yesterday","cc-tile-consumption.last-30-days":"Last 30 days","cc-tile-consumption.amount":({amount:e})=>u.format(e),"cc-tile-consumption.error":"Something went wrong while loading consumption info.","cc-tile-deployments.title":"Last deployments","cc-tile-deployments.state.failed":"Failed","cc-tile-deployments.state.started":"Started","cc-tile-deployments.state.cancelled":"Cancelled","cc-tile-deployments.state.stopped":"Stopped","cc-tile-deployments.empty":"No deployments yet.","cc-tile-deployments.error":"Something went wrong while loading deployments info.","cc-tile-instances.title":"Instances","cc-tile-instances.status.deploying":"Deploying","cc-tile-instances.status.running":"Running","cc-tile-instances.empty":"No instances. Your app is stopped.","cc-tile-instances.error":"Something went wrong while loading instances.","cc-tile-requests.title":"HTTP requests","cc-tile-requests.about":"About this chart...","cc-tile-requests.date-hours":({date:e})=>m(e),"cc-tile-requests.date-tooltip":({from:e,to:a})=>`${p(e)}: from ${m(e)} to ${m(a)}`,"cc-tile-requests.requests-nb":({value:e,windowHours:a})=>{const t=r("request")(e),n=r("hour")(a);return`${g.format(e)} ${t} (in ${a} ${n})`},"cc-tile-requests.requests-nb.total":({totalRequests:e})=>{const a=r("request")(e);return`${v(e)} ${a} in 24 hours`},"cc-tile-requests.requests-count":({requestCount:e})=>v(e),"cc-tile-requests.empty":"No data to display for now.","cc-tile-requests.error":"Something went wrong while loading HTTP requests.","cc-tile-requests.docs.msg":({windowHours:e})=>{const a=r("hour")(e);return s`HTTP requests received in the last 24 hours. Each bar represents a time window of <strong>${e} ${a}</strong>.`},"cc-tile-scalability.title":"Scalability","cc-tile-scalability.size":"Size","cc-tile-scalability.number":"Number","cc-tile-scalability.flavor-info":e=>b(e),"cc-tile-scalability.error":"Something went wrong while loading scalability config.","cc-tile-status-codes.title":"HTTP response codes","cc-tile-status-codes.about":"About this chart...","cc-tile-status-codes.tooltip":({value:e,percent:a})=>{const t=r("request")(e);return`${g.format(e)} ${t} (${h.format(a)})`},"cc-tile-status-codes.error":"Something went wrong while loading HTTP response codes.","cc-tile-status-codes.empty":"No data to display for now.","cc-tile-status-codes.docs.msg":"Repartition of HTTP response codes returned in the last 24 hours. Click on legend items to show/hide HTTP code categories.","cc-tile-status-codes.docs.link":()=>s`<a href="https://developer.mozilla.org/en/docs/Web/HTTP/Status">HTTP response status codes (MDN)</a>`,"cc-input-text.clipboard":"Copy to clipboard","cc-input-text.secret.show":"Show secret","cc-input-text.secret.hide":"Hide secret","cc-logsmap.mode.points":"Realtime","cc-logsmap.mode.heatmap":"Last 24h","cc-logsmap.legend.points":({orgaName:e})=>s`Realtime map of HTTP requests received by all apps from <strong>${e}</strong>.`,"cc-logsmap.legend.points.app":({appName:e})=>s`Realtime map of HTTP requests received by <strong>${e}</strong>.`,"cc-logsmap.legend.heatmap":({orgaName:e})=>s`Heatmap of HTTP requests received by all apps from <strong>${e}</strong> during the last 24 hours.`,"cc-logsmap.legend.heatmap.app":({appName:e})=>s`Heatmap of HTTP requests received by <strong>${e}</strong> during the last 24 hours.`,"cc-map.error":"Something went wrong while trying to fetch data for the map.","cc-map.no-points":"No data to display on the map right now.","env-var-create.name.placeholder":"VARIABLE_NAME","env-var-create.value.placeholder":"variable value","env-var-create.create-button":"Add","env-var-create.errors.invalid-name":({name:e})=>s`Name <code>${e}</code> is invalid`,"env-var-create.errors.already-defined-name":({name:e})=>s`Name <code>${e}</code> is already defined`,"env-var-editor-simple.empty-data":"There are no variables.","env-var-editor-expert.placeholder":'VARIABLE_NAME="variable value"',"env-var-editor-expert.placeholder-readonly":"There are no variables.","env-var-editor-expert.errors.unknown":"Unknown Error","env-var-editor-expert.errors.line":"line","env-var-editor-expert.errors.invalid-name":({name:e})=>s`<code>${e}</code> is not a valid variable name`,"env-var-editor-expert.errors.duplicated-name":({name:e})=>s`be careful, the name <code>${e}</code> is already defined`,"env-var-editor-expert.errors.invalid-line":()=>s`this line is not valid, the correct pattern is: <code>NAME="VALUE"</code>`,"env-var-editor-expert.errors.invalid-value":()=>s`the value is not valid, if you use quotes, you need to escape them like this: <code>\\"</code> or quote the whole value.`,"env-var-linked-services.description.addon":({serviceName:e,appName:a})=>s`List of variables exposed by the add-on <strong>${e}</strong>.<br>Those variables will be injected as environment variables in the application <strong>${a}</strong>.`,"env-var-linked-services.description.app":({serviceName:e,appName:a})=>s`Configuration exposed by the application <strong>${e}</strong>.<br>Those variables will be injected as environement variables in the application <strong>${a}</strong>.`,"env-var-linked-services.empty.addon":({appName:e})=>s`No add-ons linked to <strong>${e}</strong>.`,"env-var-linked-services.empty.app":({appName:e})=>s`No applications linked to <strong>${e}</strong>.`,"env-var-linked-services.error.addon":({appName:e})=>s`Something went wrong while loading add-ons linked to <strong>${e}</strong>.`,"env-var-linked-services.error.app":({appName:e})=>s`Something went wrong while loading applications linked to <strong>${e}</strong>.`,"env-var-linked-services.heading.addon":({name:e})=>`Add-on: ${e}`,"env-var-linked-services.heading.app":({name:e})=>`Application: ${e}`,"env-var-linked-services.loading.addon":({appName:e})=>s`Loading variables exposed by add-ons linked to <strong>${e}</strong>...`,"env-var-linked-services.loading.app":({appName:e})=>s`Loading configuration exposed by applications linked to <strong>${e}</strong>...`,"env-var-form.mode.simple":"Simple","env-var-form.mode.expert":"Expert","env-var-form.reset":"Reset changes","env-var-form.restart-app":"Restart the app to apply changes","env-var-form.update":"Update changes","env-var-form.error.loading":"Something went wrong while loading variables.","env-var-form.error.saving":"Something went wrong while updating variables.","env-var-form.error.unknown":"Something went wrong...","env-var-form.heading.env-var":"Environment variables","env-var-form.heading.exposed-config":"Exposed configuration","env-var-form.description.env-var":({appName:e})=>s`List of environment variables that will be injected in the application <strong>${e}</strong>. <a href="http://doc.clever-cloud.com/admin-console/environment-variables/">Learn more</a>`,"env-var-form.description.exposed-config":({appName:e})=>s`Configuration exposed to dependent applications.<br>Those variables won't be injected in the application <strong>${e}</strong>, they will be injected as environment variables in applications that have <strong>${e}</strong> in their service dependencies. <a href="https://www.clever-cloud.com/doc/admin-console/service-dependencies/">Learn more</a>`,"env-var-input.delete-button":"Remove","env-var-input.keep-button":"Keep","env-var-input.value-placeholder":"variable value"}; | ||
//# sourceMappingURL=translations.en.js.map |
@@ -1,2 +0,2 @@ | ||
import{prepareFormatDate as e,prepareFormatDateOnly as a,prepareFormatDatetime as t,prepareFormatDistanceToNow as r,prepareFormatHours as n}from"../lib/i18n-date.js";import{prepareNumberUnitFormatter as s}from"../lib/i18n-number.js";import{sanitize as c}from"../lib/i18n-sanitize";export const lang="fr";function i(e,a=e+"s"){return t=>t<=1?e:a}const o={year:"année",month:"mois",week:"semaine",day:"jour",hour:"heure",minute:"minute",second:"seconde"},d=r("fr",(e,a)=>{const t=o[a];return`il y a ${e} ${t.endsWith("s")?i(t,t)(e):i(t)(e)}`},"à l'instant"),l=e("fr"),u=t("fr"),p=a("fr"),m=n("fr"),v=new Intl.NumberFormat("fr",{style:"currency",currency:"EUR"}),g=new Intl.NumberFormat("fr",{style:"percent",minimumFractionDigits:1,maximumFractionDigits:1}),h=new Intl.NumberFormat("fr"),f=s("fr");function b(e){return[`CPUs : ${e.cpus}`+(e.microservice?" (partagé)":""),e.gpus>0?`GPUs : ${e.gpus}`:"",`RAM : ${e.mem<1024?`${e.mem} Mo`:`${e.mem/1024} Go`}`].filter(e=>e).join("\n")}export const translations={LANGUAGE:"🇫🇷 Français","cc-addon-backups.command-password":"Cette commande vous demandera votre mot de passe, le voici :","cc-addon-backups.delete":({createdAt:e})=>c`Supprimer la sauvegarde du <strong title="${l(e)}">${u(e)}</strong>`,"cc-addon-backups.delete.btn":"supprimer...","cc-addon-backups.delete.with-service.title.es-addon":"Suppression avec Kibana","cc-addon-backups.delete.with-service.description.es-addon":({href:e})=>c`Vous pouvez supprimer cette sauvegarde avec Kibana en vous rendant sur le <a href="${e}">dépôt de sauvegardes</a>.`,"cc-addon-backups.delete.manual.title":"Suppression manuelle","cc-addon-backups.delete.manual.description.es-addon":"Vous pouvez supprimer cette sauvegarde manuellement grâce à l'outil cURL en exécutant cette commande :","cc-addon-backups.description.es-addon":"Les sauvegardes sont gérées par Elasticsearch lui-même. Vous pouvez définir la rétention ainsi que la périodicité des sauvegardes dans l'interface de Kibana.","cc-addon-backups.description.es-addon-old":"Les sauvegardes sont gérées par Elasticsearch lui-même. La version de votre Elasticsearch ne permet pas de définir de politique de rétention. La suppression d'une sauvegarde se fait manuellement avec l'API d'Elasticsearch.","cc-addon-backups.empty":"Il n'y a aucune sauvegarde pour l'instant.","cc-addon-backups.link.es-addon":"ouvrir dans Kibana","cc-addon-backups.link.es-addon-old":"ouvrir dans Elasticsearch","cc-addon-backups.loading-error":"Une erreur est survenue pendant le chargement des sauvegardes.","cc-addon-backups.restore":({createdAt:e})=>c`Restaurer la sauvegarde du <strong title="${l(e)}">${u(e)}</strong>`,"cc-addon-backups.restore.btn":"restaurer...","cc-addon-backups.restore.with-service.title.es-addon":"Restauration avec Kibana","cc-addon-backups.restore.with-service.description.es-addon":({href:e})=>c`Vous pouvez restaurer cette sauvegarde avec Kibana en vous rendant sur le <a href="${e}">dépôt de sauvegardes</a>.`,"cc-addon-backups.restore.manual.title":"Restauration manuelle","cc-addon-backups.restore.manual.description.es-addon":"Vous pouvez restaurer cette sauvegarde manuellement grâce à l'outil cURL en exécutant cette commande :","cc-addon-backups.text":({createdAt:e,expiresAt:a})=>c`Sauvegarde du <strong title="${l(e)}">${u(e)}</strong> (expire le <strong>${p(a)}</strong>)`,"cc-addon-backups.text.user-defined-retention":({createdAt:e})=>c`Sauvegarde du <strong title="${l(e)}">${u(e)}</strong> (expire après la durée de rétention définie)`,"cc-addon-backups.title":"Sauvegardes","cc-addon-credentials.description.apm":"Utilisez ces identifiants pour connecter une instance d'APM Server à votre cluster Elasticsearch.","cc-addon-credentials.description.elasticsearch":"Utilisez ces identifiants pour vous connecter à votre cluster Elasticsearch.","cc-addon-credentials.description.kibana":"Utilisez ces identifiants pour connecter une instance de Kibana à votre cluster Elasticsearch.","cc-addon-credentials.field.auth-token":"Token d'authentification","cc-addon-credentials.field.host":"Nom de domaine","cc-addon-credentials.field.password":"Mot de passe","cc-addon-credentials.field.user":"Utilisateur","cc-addon-credentials.loading-error":"Une erreur est survenue pendant le chargement des informations de connexion.","cc-addon-credentials.title":({name:e})=>`Identifiants ${e}`,"cc-addon-features.details":"Ci-dessous, les spécifications de votre add-on. Elles peuvent évoluer et une migration de l'add-on peut être nécessaire pour en bénéficier.","cc-addon-features.feature-name.disk":"Disque","cc-addon-features.feature-name.memory":"Mémoire","cc-addon-features.feature-name.nodes":"Nœuds","cc-addon-features.feature-value.dedicated":"Dédié","cc-addon-features.feature-value.no":"Non","cc-addon-features.feature-value.yes":"Oui","cc-addon-features.loading-error":"Une erreur est survenue pendant le chargement des spécifications de l'add-on","cc-addon-features.title":"Spécifications","cc-addon-linked-apps.details":"Ci-dessous la liste des applications liées à l'add-on. L'add-on expose ses variables d'environnement aux applications qui lui sont liées.","cc-addon-linked-apps.loading-error":"Une erreur est survenue pendant le chargement des applications liées.","cc-addon-linked-apps.no-linked-applications":"Aucune application liée pour l'instant.","cc-addon-linked-apps.title":"Applications liées","cc-addon-linked-apps.zone":"zone:","cc-beta.label":"bêta","cc-error.ok":"OK","cc-block.toggle.open":"Ouvrir","cc-block.toggle.close":"Fermer","cc-button.cancel":"Cliquez pour annuler","cc-datetime-relative.distance":({date:e})=>d(e),"cc-datetime-relative.title":({date:e})=>l(e),"cc-elasticsearch-info.error":"Une erreur est survenue pendant le chargement des liens des add-on liés à cette application.","cc-elasticsearch-info.info":"Info","cc-elasticsearch-info.link.apm":"Ouvrir APM","cc-elasticsearch-info.link.doc":"Lire la documentation","cc-elasticsearch-info.link.elasticsearch":"Voir l'add-on Elasticsearch","cc-elasticsearch-info.link.kibana":"Ouvrir Kibana","cc-elasticsearch-info.text":"Cet add-on fait partie de l'offre Suite Elastic. Vous pouvez retrouver la documentation ainsi que les différents services liés ci-dessous.","cc-elasticsearch-options.enabled":"Activé","cc-elasticsearch-options.disabled":"Désactivé","cc-elasticsearch-options.confirm":"Confirmer les options","cc-elasticsearch-options.title":"Options pour la Suite Elastic","cc-elasticsearch-options.description":()=>c`Cet add-on fait partie de l'offre Suite Elastic qui inclue deux options. Ces options sont déployées comme des applications et seront gérées et mises à jour par Clever Cloud. Elles apparaîtront donc comme des application habituelles que vous pouvez arrêter, supprimer, scaler comme n'importe quelle autre application. <strong>Activer ces options augmentera votre consommation de crédits.</strong>`,"cc-elasticsearch-options.description.kibana":()=>c`Kibana est l'interface d'administration de la Suite Elastic. Kibana vous permet de visualiser vos données Elasticsearch et de naviguer dans la Suite Elastic. Vous voulez effectuer le suivi de la charge de travail liée à la recherche ou comprendre le flux des requêtes dans vos applications ? Kibana est là pour ça. Retrouvez plus de détails dans <a href="https://www.elastic.co/guide/en/kibana/master/index.html">la documentation officielle de Kibana</a>.`,"cc-elasticsearch-options.description.apm":()=>c`Elastic APM est un serveur de monitoring de performance applicative pour la Suite Elastic. Déployer cette option permet d'envoyer automatiquement les métriques de toute application liée à cette instance d'add-on Elasticsearch, en supposant que vous utilisez bien l'agent Elastic APM dans les dépendances de vos applications. Retrouvez plus de détails dans <a href="https://www.elastic.co/guide/en/apm/get-started/current/overview.html">la documentation officielle de APM server</a>.`,"cc-elasticsearch-options.warning.kibana":"Si vous activez cette option, nous allons déployer et gérer pour vous un Kibana, ce qui entraînera des coûts supplémentaires.","cc-elasticsearch-options.warning.kibana.details":e=>c`Par défaut, l'app sera démarrée sur une <strong title="${b(e)}">instance ${e.name}</strong> qui coûte environ <strong>${v.format(e.monthlyCost)} par mois</strong>.`,"cc-elasticsearch-options.warning.apm":"Si vous activez cette option, nous allons déployer et gérer pour vous un APM server, ce qui entraînera des coûts supplémentaires.","cc-elasticsearch-options.warning.apm.details":e=>c`Par défaut, l'app sera démarrée sur une <strong title="${b(e)}">instance ${e.name}</strong> qui coûte environ <strong>${v.format(e.monthlyCost)} par mois</strong>. `,"cc-header-addon.plan":"Plan","cc-header-addon.version":"Version","cc-header-addon.creation-date":"Date de création","cc-header-addon.creation-date.short":({date:e})=>p(e),"cc-header-addon.creation-date.full":({date:e})=>l(e),"cc-header-addon.error":"Une erreur est survenue pendant le chargement des informations de l'add-on.","cc-header-app.action.cancel-deployment":"Annuler le déploiement","cc-header-app.action.restart":"Redémarrer","cc-header-app.action.restart-last-commit":"Redémarrer le dernier commit poussé","cc-header-app.action.restart-rebuild":"Re-build et redémarrer","cc-header-app.action.start":"Démarrer","cc-header-app.action.start-last-commit":"Démarrer le dernier commit poussé","cc-header-app.action.start-rebuild":"Re-build et démarrer","cc-header-app.action.stop":"Arrêter l'application","cc-header-app.disable-buttons":"Vous n'êtes pas autorisé à réaliser ces actions","cc-header-app.read-logs":"voir les logs","cc-header-app.commits.no-commits":"pas encore de commit","cc-header-app.commits.git":({commit:e})=>`version du dépôt git (HEAD) : ${e}`,"cc-header-app.commits.running":({commit:e})=>`version en ligne : ${e}`,"cc-header-app.commits.starting":({commit:e})=>`version en cours de déploiement : ${e}`,"cc-header-app.state-msg.app-is-restarting":"L'application redémarre...","cc-header-app.state-msg.app-is-running":"Votre application est disponible !","cc-header-app.state-msg.app-is-starting":"L'application démarre...","cc-header-app.state-msg.app-is-stopped":"L'application est arrêtée.","cc-header-app.state-msg.last-deploy-failed":"Le dernier déploiement a échoué,","cc-header-app.state-msg.unknown-state":"État inconnu, essayez de redémarrer l'application ou de contacter notre support si vous avez des questions.","cc-header-app.user-action-msg.app-will-start":"L'application va bientôt démarrer...","cc-header-app.user-action-msg.deploy-will-begin":"Un déploiement va bientôt commencer...","cc-header-app.user-action-msg.deploy-cancelled":"Ce déploiement a été annulé.","cc-header-app.user-action-msg.app-will-stop":"L'application va s'arrêter...","cc-header-app.error":"Une erreur est survenue pendant le chargement des informations de l'application.","cc-header-orga.hotline":"Numéro d'urgence :","cc-header-orga.error":"Une erreur est survenue pendant le chargement des informations de l'organisation.","cc-addon-admin.addon-name":"Nom de l'add-on","cc-addon-admin.admin":"Administration","cc-addon-admin.danger-zone":"Zone de danger","cc-addon-admin.delete":"Supprimer l'add-on","cc-addon-admin.delete-24h-delay":"La machine virtuelle sera arrêtée dans 24 heures.","cc-addon-admin.delete-keep-backups":"Les backups seront gardés suivant la politique de rétention.","cc-addon-admin.delete-unavailable":"Supprimer cet add-on le rendra directement indisponible.","cc-addon-admin.error-loading":"Une erreur est survenue pendant le chargement des informations de l'add-on.","cc-addon-admin.error-saving":"Une erreur est survenue pendant la sauvegarde des modifications","cc-addon-admin.tags":"Tags","cc-addon-admin.tags-description":"Les tags vous permettent de classer vos applications et add-ons afin de les catégoriser","cc-addon-admin.tags-empty":"Pas de tags définis","cc-addon-admin.tags-update":"Mettre à jour les tags","cc-addon-admin.update":"Mettre à jour le nom","cc-tile-consumption.title":"Consommation de crédits","cc-tile-consumption.yesterday":"Hier","cc-tile-consumption.last-30-days":"30 derniers jours","cc-tile-consumption.amount":({amount:e})=>v.format(e),"cc-tile-consumption.error":"Une erreur est survenue pendant le chargement de la consommation.","cc-tile-deployments.title":"Derniers déploiements","cc-tile-deployments.state.failed":"Échoué","cc-tile-deployments.state.started":"Démarré","cc-tile-deployments.state.cancelled":"Annulé","cc-tile-deployments.state.stopped":"Arrêté","cc-tile-deployments.empty":"Pas encore de déploiement.","cc-tile-deployments.error":"Une erreur est survenue pendant le chargement des déploiements.","cc-tile-instances.title":"Instances","cc-tile-instances.status.deploying":"Déploiement","cc-tile-instances.status.running":"En ligne","cc-tile-instances.empty":"Pas d'instance. L'application est arrêtée.","cc-tile-instances.error":"Une erreur est survenue pendant le chargement des instances.","cc-tile-requests.title":"Requêtes HTTP","cc-tile-requests.about":"À propos de ce graphe...","cc-tile-requests.date-hours":({date:e})=>m(e),"cc-tile-requests.date-tooltip":({from:e,to:a})=>`${p(e)} : de ${m(e)} à ${m(a)}`,"cc-tile-requests.requests-nb":({value:e,windowHours:a})=>{const t=i("requête")(e),r=i("heure")(a);return`${h.format(e)} ${t} (en ${a} ${r})`},"cc-tile-requests.requests-nb.total":({totalRequests:e})=>{const a=i("requête")(e);return`${f(e)} ${a} sur 24 heures`},"cc-tile-requests.requests-count":({requestCount:e})=>f(e),"cc-tile-requests.empty":"Il n'y a pas de données à afficher pour l'instant.","cc-tile-requests.error":"Une erreur est survenue pendant le chargement des requêtes.","cc-tile-requests.docs.msg":({windowHours:e})=>{const a=i("heure")(e);return c`Requêtes HTTP reçues durant les dernières 24 heures. Chaque barre représente une fenêtre de temps de <strong>${e} ${a}</strong>.`},"cc-tile-scalability.title":"Scalabilité","cc-tile-scalability.size":"Taille","cc-tile-scalability.number":"Nombre","cc-tile-scalability.flavor-info":e=>b(e),"cc-tile-scalability.error":"Une erreur est survenue pendant le chargement de la configuration de scalabilité.","cc-tile-status-codes.title":"Codes de réponses HTTP","cc-tile-status-codes.about":"À propos de ce graphe...","cc-tile-status-codes.tooltip":({value:e,percent:a})=>{const t=i("requête")(e);return`${h.format(e)} ${t} (${g.format(a)})`},"cc-tile-status-codes.error":"Une erreur est survenue pendant le chargement des codes de réponses HTTP.","cc-tile-status-codes.empty":"Il n'y a pas de données à afficher pour l'instant.","cc-tile-status-codes.docs.msg":"Répartition des codes de réponses HTTP envoyés durant les dernières 24 heures. Cliquez sur les éléments de légende pour cacher/montrer certaines catégories de codes.","cc-tile-status-codes.docs.link":()=>c`<a href="https://developer.mozilla.org/fr/docs/Web/HTTP/Status">Codes de réponses HTTP (MDN)</a>`,"cc-input-text.clipboard":"Copier dans le presse-papier","cc-input-text.secret.show":"Afficher le secret","cc-input-text.secret.hide":"Cacher le secret","cc-logsmap.mode.points":"En direct","cc-logsmap.mode.heatmap":"Dernières 24h","cc-logsmap.legend.points":({orgaName:e})=>c`Carte temps réel des requêtes HTTP reçues par toutes les applications de <strong>${e}</strong>.`,"cc-logsmap.legend.points.app":({appName:e})=>c`Carte temps réel des requêtes HTTP reçues par l'application <strong>${e}</strong>.`,"cc-logsmap.legend.heatmap":({orgaName:e})=>c`Carte de chaleur des requêtes HTTP reçues par les applications de <strong>${e}</strong> durant les dernières 24 heures.`,"cc-logsmap.legend.heatmap.app":({appName:e})=>c`Carte de chaleur des requêtes HTTP reçues par l'application <strong>${e}</strong> durant les dernières 24 heures.`,"cc-map.error":"Une erreur est survenue pendant le chargement des données de la carte.","cc-map.no-points":"Pas de données à afficher sur la carte en ce moment.","env-var-create.name.placeholder":"NOM_DE_LA_VARIABLE","env-var-create.value.placeholder":"valeur de la variable","env-var-create.create-button":"Ajouter","env-var-create.errors.invalid-name":({name:e})=>c`Le nom <code>${e}</code> n'est pas valide`,"env-var-create.errors.already-defined-name":({name:e})=>c`Le nom <code>${e}</code> est déjà défini`,"env-var-editor-simple.empty-data":"Il n'y a pas de variable.","env-var-editor-expert.placeholder":'NOM_DE_LA_VARIABLE="valeur de la variable"',"env-var-editor-expert.placeholder-readonly":"Il n'y a pas de variable.","env-var-editor-expert.errors.unknown":"Erreur inconnue","env-var-editor-expert.errors.line":"ligne","env-var-editor-expert.errors.invalid-name":({name:e})=>c`Le nom <code>${e}</code> n'est pas valide`,"env-var-editor-expert.errors.duplicated-name":({name:e})=>c`attention, le nom <code>${e}</code> est déjà défini`,"env-var-editor-expert.errors.invalid-line":()=>c`cette ligne est invalide, le format correct est : <code>NOM="VALEUR"</code>`,"env-var-editor-expert.errors.invalid-value":()=>c`la valeur est invalide, si vous utilisez des guillements, vous devez les échapper comme ceci : <code>\\"</code> ou alors mettre toute la valeur entre guillemets.`,"env-var-form.mode.simple":"Simple","env-var-form.mode.expert":"Expert","env-var-form.reset":"Annuler les changements","env-var-form.restart-app":"Redémarrer l'app pour appliquer les changements","env-var-form.update":"Mettre à jour les changements","env-var-form.error.loading":"Une erreur est survenue pendant le chargement des variables d'environnement.","env-var-form.error.saving":"Une erreur est survenue pendant la mise à jour des variables d'environnement.","env-var-form.error.unknown":"Une erreur est survenue...","env-var-input.delete-button":"Enlever","env-var-input.keep-button":"Garder","env-var-input.value-placeholder":"valeur de la variable","env-var-full.heading":"Variables d'environnement","env-var-full.message":"Les variables d'environnement sont des variables dynamiques que vous pouvez injecter dans votre application.","env-var-full.link":"En savoir plus"}; | ||
import{prepareFormatDate as e,prepareFormatDateOnly as a,prepareFormatDatetime as r,prepareFormatDistanceToNow as n,prepareFormatHours as t}from"../lib/i18n-date.js";import{prepareNumberUnitFormatter as s}from"../lib/i18n-number.js";import{sanitize as i}from"../lib/i18n-sanitize";export const lang="fr";function o(e,a=e+"s"){return r=>r<=1?e:a}const c={year:"année",month:"mois",week:"semaine",day:"jour",hour:"heure",minute:"minute",second:"seconde"},d=n("fr",(e,a)=>{const r=c[a];return`il y a ${e} ${r.endsWith("s")?o(r,r)(e):o(r)(e)}`},"à l'instant"),l=e("fr"),p=r("fr"),u=a("fr"),m=t("fr"),v=new Intl.NumberFormat("fr",{style:"currency",currency:"EUR"}),g=new Intl.NumberFormat("fr",{style:"percent",minimumFractionDigits:1,maximumFractionDigits:1}),h=new Intl.NumberFormat("fr"),f=s("fr");function b(e){return[`CPUs : ${e.cpus}`+(e.microservice?" (partagé)":""),e.gpus>0?`GPUs : ${e.gpus}`:"",`RAM : ${e.mem<1024?`${e.mem} Mo`:`${e.mem/1024} Go`}`].filter(e=>e).join("\n")}export const translations={LANGUAGE:"🇫🇷 Français","cc-addon-backups.command-password":"Cette commande vous demandera votre mot de passe, le voici :","cc-addon-backups.delete":({createdAt:e})=>i`Supprimer la sauvegarde du <strong title="${l(e)}">${p(e)}</strong>`,"cc-addon-backups.delete.btn":"supprimer...","cc-addon-backups.delete.with-service.title.es-addon":"Suppression avec Kibana","cc-addon-backups.delete.with-service.description.es-addon":({href:e})=>i`Vous pouvez supprimer cette sauvegarde avec Kibana en vous rendant sur le <a href="${e}">dépôt de sauvegardes</a>.`,"cc-addon-backups.delete.manual.title":"Suppression manuelle","cc-addon-backups.delete.manual.description.es-addon":"Vous pouvez supprimer cette sauvegarde manuellement grâce à l'outil cURL en exécutant cette commande :","cc-addon-backups.description.es-addon":"Les sauvegardes sont gérées par Elasticsearch lui-même. Vous pouvez définir la rétention ainsi que la périodicité des sauvegardes dans l'interface de Kibana.","cc-addon-backups.description.es-addon-old":"Les sauvegardes sont gérées par Elasticsearch lui-même. La version de votre Elasticsearch ne permet pas de définir de politique de rétention. La suppression d'une sauvegarde se fait manuellement avec l'API d'Elasticsearch.","cc-addon-backups.empty":"Il n'y a aucune sauvegarde pour l'instant.","cc-addon-backups.link.es-addon":"ouvrir dans Kibana","cc-addon-backups.link.es-addon-old":"ouvrir dans Elasticsearch","cc-addon-backups.loading-error":"Une erreur est survenue pendant le chargement des sauvegardes.","cc-addon-backups.restore":({createdAt:e})=>i`Restaurer la sauvegarde du <strong title="${l(e)}">${p(e)}</strong>`,"cc-addon-backups.restore.btn":"restaurer...","cc-addon-backups.restore.with-service.title.es-addon":"Restauration avec Kibana","cc-addon-backups.restore.with-service.description.es-addon":({href:e})=>i`Vous pouvez restaurer cette sauvegarde avec Kibana en vous rendant sur le <a href="${e}">dépôt de sauvegardes</a>.`,"cc-addon-backups.restore.manual.title":"Restauration manuelle","cc-addon-backups.restore.manual.description.es-addon":"Vous pouvez restaurer cette sauvegarde manuellement grâce à l'outil cURL en exécutant cette commande :","cc-addon-backups.text":({createdAt:e,expiresAt:a})=>i`Sauvegarde du <strong title="${l(e)}">${p(e)}</strong> (expire le <strong>${u(a)}</strong>)`,"cc-addon-backups.text.user-defined-retention":({createdAt:e})=>i`Sauvegarde du <strong title="${l(e)}">${p(e)}</strong> (expire après la durée de rétention définie)`,"cc-addon-backups.title":"Sauvegardes","cc-addon-credentials.description.apm":"Utilisez ces identifiants pour connecter une instance d'APM Server à votre cluster Elasticsearch.","cc-addon-credentials.description.elasticsearch":"Utilisez ces identifiants pour vous connecter à votre cluster Elasticsearch.","cc-addon-credentials.description.kibana":"Utilisez ces identifiants pour connecter une instance de Kibana à votre cluster Elasticsearch.","cc-addon-credentials.field.auth-token":"Token d'authentification","cc-addon-credentials.field.host":"Nom de domaine","cc-addon-credentials.field.password":"Mot de passe","cc-addon-credentials.field.user":"Utilisateur","cc-addon-credentials.loading-error":"Une erreur est survenue pendant le chargement des informations de connexion.","cc-addon-credentials.title":({name:e})=>`Identifiants ${e}`,"cc-addon-features.details":"Ci-dessous, les spécifications de votre add-on. Elles peuvent évoluer et une migration de l'add-on peut être nécessaire pour en bénéficier.","cc-addon-features.feature-name.disk":"Disque","cc-addon-features.feature-name.memory":"Mémoire","cc-addon-features.feature-name.nodes":"Nœuds","cc-addon-features.feature-value.dedicated":"Dédié","cc-addon-features.feature-value.no":"Non","cc-addon-features.feature-value.yes":"Oui","cc-addon-features.loading-error":"Une erreur est survenue pendant le chargement des spécifications de l'add-on","cc-addon-features.title":"Spécifications","cc-addon-linked-apps.details":"Ci-dessous la liste des applications liées à l'add-on. L'add-on expose ses variables d'environnement aux applications qui lui sont liées.","cc-addon-linked-apps.loading-error":"Une erreur est survenue pendant le chargement des applications liées.","cc-addon-linked-apps.no-linked-applications":"Aucune application liée pour l'instant.","cc-addon-linked-apps.title":"Applications liées","cc-addon-linked-apps.zone":"zone:","cc-beta.label":"bêta","cc-error.ok":"OK","cc-block.toggle.open":"Ouvrir","cc-block.toggle.close":"Fermer","cc-button.cancel":"Cliquez pour annuler","cc-datetime-relative.distance":({date:e})=>d(e),"cc-datetime-relative.title":({date:e})=>l(e),"cc-elasticsearch-info.error":"Une erreur est survenue pendant le chargement des liens des add-on liés à cette application.","cc-elasticsearch-info.info":"Info","cc-elasticsearch-info.link.apm":"Ouvrir APM","cc-elasticsearch-info.link.doc":"Lire la documentation","cc-elasticsearch-info.link.elasticsearch":"Voir l'add-on Elasticsearch","cc-elasticsearch-info.link.kibana":"Ouvrir Kibana","cc-elasticsearch-info.text":"Cet add-on fait partie de l'offre Suite Elastic. Vous pouvez retrouver la documentation ainsi que les différents services liés ci-dessous.","cc-elasticsearch-options.enabled":"Activé","cc-elasticsearch-options.disabled":"Désactivé","cc-elasticsearch-options.confirm":"Confirmer les options","cc-elasticsearch-options.title":"Options pour la Suite Elastic","cc-elasticsearch-options.description":()=>i`Cet add-on fait partie de l'offre Suite Elastic qui inclue deux options. Ces options sont déployées comme des applications et seront gérées et mises à jour par Clever Cloud. Elles apparaîtront donc comme des applications habituelles que vous pouvez arrêter, supprimer, scaler comme n'importe quelle autre application. <strong>Activer ces options augmentera votre consommation de crédits.</strong>`,"cc-elasticsearch-options.description.kibana":()=>i`Kibana est l'interface d'administration de la Suite Elastic. Kibana vous permet de visualiser vos données Elasticsearch et de naviguer dans la Suite Elastic. Vous voulez effectuer le suivi de la charge de travail liée à la recherche ou comprendre le flux des requêtes dans vos applications ? Kibana est là pour ça. Retrouvez plus de détails dans <a href="https://www.elastic.co/guide/en/kibana/master/index.html">la documentation officielle de Kibana</a>.`,"cc-elasticsearch-options.description.apm":()=>i`Elastic APM est un serveur de monitoring de performance applicative pour la Suite Elastic. Déployer cette option permet d'envoyer automatiquement les métriques de toute application liée à cette instance d'add-on Elasticsearch, en supposant que vous utilisez bien l'agent Elastic APM dans les dépendances de vos applications. Retrouvez plus de détails dans <a href="https://www.elastic.co/guide/en/apm/get-started/current/overview.html">la documentation officielle de APM server</a>.`,"cc-elasticsearch-options.warning.kibana":"Si vous activez cette option, nous allons déployer et gérer pour vous un Kibana, ce qui entraînera des coûts supplémentaires.","cc-elasticsearch-options.warning.kibana.details":e=>i`Par défaut, l'app sera démarrée sur une <strong title="${b(e)}">instance ${e.name}</strong> qui coûte environ <strong>${v.format(e.monthlyCost)} par mois</strong>.`,"cc-elasticsearch-options.warning.apm":"Si vous activez cette option, nous allons déployer et gérer pour vous un APM server, ce qui entraînera des coûts supplémentaires.","cc-elasticsearch-options.warning.apm.details":e=>i`Par défaut, l'app sera démarrée sur une <strong title="${b(e)}">instance ${e.name}</strong> qui coûte environ <strong>${v.format(e.monthlyCost)} par mois</strong>. `,"cc-header-addon.plan":"Plan","cc-header-addon.version":"Version","cc-header-addon.creation-date":"Date de création","cc-header-addon.creation-date.short":({date:e})=>u(e),"cc-header-addon.creation-date.full":({date:e})=>l(e),"cc-header-addon.error":"Une erreur est survenue pendant le chargement des informations de l'add-on.","cc-header-app.action.cancel-deployment":"Annuler le déploiement","cc-header-app.action.restart":"Redémarrer","cc-header-app.action.restart-last-commit":"Redémarrer le dernier commit poussé","cc-header-app.action.restart-rebuild":"Re-build et redémarrer","cc-header-app.action.start":"Démarrer","cc-header-app.action.start-last-commit":"Démarrer le dernier commit poussé","cc-header-app.action.start-rebuild":"Re-build et démarrer","cc-header-app.action.stop":"Arrêter l'application","cc-header-app.disable-buttons":"Vous n'êtes pas autorisé à réaliser ces actions","cc-header-app.read-logs":"voir les logs","cc-header-app.commits.no-commits":"pas encore de commit","cc-header-app.commits.git":({commit:e})=>`version du dépôt git (HEAD) : ${e}`,"cc-header-app.commits.running":({commit:e})=>`version en ligne : ${e}`,"cc-header-app.commits.starting":({commit:e})=>`version en cours de déploiement : ${e}`,"cc-header-app.state-msg.app-is-restarting":"L'application redémarre...","cc-header-app.state-msg.app-is-running":"Votre application est disponible !","cc-header-app.state-msg.app-is-starting":"L'application démarre...","cc-header-app.state-msg.app-is-stopped":"L'application est arrêtée.","cc-header-app.state-msg.last-deploy-failed":"Le dernier déploiement a échoué,","cc-header-app.state-msg.unknown-state":"État inconnu, essayez de redémarrer l'application ou de contacter notre support si vous avez des questions.","cc-header-app.user-action-msg.app-will-start":"L'application va bientôt démarrer...","cc-header-app.user-action-msg.deploy-will-begin":"Un déploiement va bientôt commencer...","cc-header-app.user-action-msg.deploy-cancelled":"Ce déploiement a été annulé.","cc-header-app.user-action-msg.app-will-stop":"L'application va s'arrêter...","cc-header-app.error":"Une erreur est survenue pendant le chargement des informations de l'application.","cc-header-orga.hotline":"Numéro d'urgence :","cc-header-orga.error":"Une erreur est survenue pendant le chargement des informations de l'organisation.","cc-addon-admin.addon-name":"Nom de l'add-on","cc-addon-admin.admin":"Administration","cc-addon-admin.danger-zone":"Zone de danger","cc-addon-admin.delete":"Supprimer l'add-on","cc-addon-admin.delete-24h-delay":"La machine virtuelle sera arrêtée dans 24 heures.","cc-addon-admin.delete-keep-backups":"Les backups seront gardés suivant la politique de rétention.","cc-addon-admin.delete-unavailable":"Supprimer cet add-on le rendra directement indisponible.","cc-addon-admin.error-loading":"Une erreur est survenue pendant le chargement des informations de l'add-on.","cc-addon-admin.error-saving":"Une erreur est survenue pendant la sauvegarde des modifications","cc-addon-admin.tags":"Tags","cc-addon-admin.tags-description":"Les tags vous permettent de classer vos applications et add-ons afin de les catégoriser","cc-addon-admin.tags-empty":"Pas de tags définis","cc-addon-admin.tags-update":"Mettre à jour les tags","cc-addon-admin.update":"Mettre à jour le nom","cc-tile-consumption.title":"Consommation de crédits","cc-tile-consumption.yesterday":"Hier","cc-tile-consumption.last-30-days":"30 derniers jours","cc-tile-consumption.amount":({amount:e})=>v.format(e),"cc-tile-consumption.error":"Une erreur est survenue pendant le chargement de la consommation.","cc-tile-deployments.title":"Derniers déploiements","cc-tile-deployments.state.failed":"Échoué","cc-tile-deployments.state.started":"Démarré","cc-tile-deployments.state.cancelled":"Annulé","cc-tile-deployments.state.stopped":"Arrêté","cc-tile-deployments.empty":"Pas encore de déploiement.","cc-tile-deployments.error":"Une erreur est survenue pendant le chargement des déploiements.","cc-tile-instances.title":"Instances","cc-tile-instances.status.deploying":"Déploiement","cc-tile-instances.status.running":"En ligne","cc-tile-instances.empty":"Pas d'instance. L'application est arrêtée.","cc-tile-instances.error":"Une erreur est survenue pendant le chargement des instances.","cc-tile-requests.title":"Requêtes HTTP","cc-tile-requests.about":"À propos de ce graphe...","cc-tile-requests.date-hours":({date:e})=>m(e),"cc-tile-requests.date-tooltip":({from:e,to:a})=>`${u(e)} : de ${m(e)} à ${m(a)}`,"cc-tile-requests.requests-nb":({value:e,windowHours:a})=>{const r=o("requête")(e),n=o("heure")(a);return`${h.format(e)} ${r} (en ${a} ${n})`},"cc-tile-requests.requests-nb.total":({totalRequests:e})=>{const a=o("requête")(e);return`${f(e)} ${a} sur 24 heures`},"cc-tile-requests.requests-count":({requestCount:e})=>f(e),"cc-tile-requests.empty":"Il n'y a pas de données à afficher pour l'instant.","cc-tile-requests.error":"Une erreur est survenue pendant le chargement des requêtes.","cc-tile-requests.docs.msg":({windowHours:e})=>{const a=o("heure")(e);return i`Requêtes HTTP reçues durant les dernières 24 heures. Chaque barre représente une fenêtre de temps de <strong>${e} ${a}</strong>.`},"cc-tile-scalability.title":"Scalabilité","cc-tile-scalability.size":"Taille","cc-tile-scalability.number":"Nombre","cc-tile-scalability.flavor-info":e=>b(e),"cc-tile-scalability.error":"Une erreur est survenue pendant le chargement de la configuration de scalabilité.","cc-tile-status-codes.title":"Codes de réponses HTTP","cc-tile-status-codes.about":"À propos de ce graphe...","cc-tile-status-codes.tooltip":({value:e,percent:a})=>{const r=o("requête")(e);return`${h.format(e)} ${r} (${g.format(a)})`},"cc-tile-status-codes.error":"Une erreur est survenue pendant le chargement des codes de réponses HTTP.","cc-tile-status-codes.empty":"Il n'y a pas de données à afficher pour l'instant.","cc-tile-status-codes.docs.msg":"Répartition des codes de réponses HTTP envoyés durant les dernières 24 heures. Cliquez sur les éléments de légende pour cacher/montrer certaines catégories de codes.","cc-tile-status-codes.docs.link":()=>i`<a href="https://developer.mozilla.org/fr/docs/Web/HTTP/Status">Codes de réponses HTTP (MDN)</a>`,"cc-input-text.clipboard":"Copier dans le presse-papier","cc-input-text.secret.show":"Afficher le secret","cc-input-text.secret.hide":"Cacher le secret","cc-logsmap.mode.points":"En direct","cc-logsmap.mode.heatmap":"Dernières 24h","cc-logsmap.legend.points":({orgaName:e})=>i`Carte temps réel des requêtes HTTP reçues par toutes les applications de <strong>${e}</strong>.`,"cc-logsmap.legend.points.app":({appName:e})=>i`Carte temps réel des requêtes HTTP reçues par l'application <strong>${e}</strong>.`,"cc-logsmap.legend.heatmap":({orgaName:e})=>i`Carte de chaleur des requêtes HTTP reçues par les applications de <strong>${e}</strong> durant les dernières 24 heures.`,"cc-logsmap.legend.heatmap.app":({appName:e})=>i`Carte de chaleur des requêtes HTTP reçues par l'application <strong>${e}</strong> durant les dernières 24 heures.`,"cc-map.error":"Une erreur est survenue pendant le chargement des données de la carte.","cc-map.no-points":"Pas de données à afficher sur la carte en ce moment.","env-var-create.name.placeholder":"NOM_DE_LA_VARIABLE","env-var-create.value.placeholder":"valeur de la variable","env-var-create.create-button":"Ajouter","env-var-create.errors.invalid-name":({name:e})=>i`Le nom <code>${e}</code> n'est pas valide`,"env-var-create.errors.already-defined-name":({name:e})=>i`Le nom <code>${e}</code> est déjà défini`,"env-var-editor-simple.empty-data":"Il n'y a pas de variable.","env-var-editor-expert.placeholder":'NOM_DE_LA_VARIABLE="valeur de la variable"',"env-var-editor-expert.placeholder-readonly":"Il n'y a pas de variable.","env-var-editor-expert.errors.unknown":"Erreur inconnue","env-var-editor-expert.errors.line":"ligne","env-var-editor-expert.errors.invalid-name":({name:e})=>i`Le nom <code>${e}</code> n'est pas valide`,"env-var-editor-expert.errors.duplicated-name":({name:e})=>i`attention, le nom <code>${e}</code> est déjà défini`,"env-var-editor-expert.errors.invalid-line":()=>i`cette ligne est invalide, le format correct est : <code>NOM="VALEUR"</code>`,"env-var-editor-expert.errors.invalid-value":()=>i`la valeur est invalide, si vous utilisez des guillements, vous devez les échapper comme ceci : <code>\\"</code> ou alors mettre toute la valeur entre guillemets.`,"env-var-linked-services.description.addon":({serviceName:e,appName:a})=>i`Liste des variables exposées par l'add-on <strong>${e}</strong>.<br>Ces variables seront injectées en tant que variables d'environnement dans l'application <strong>${a}</strong>.`,"env-var-linked-services.description.app":({serviceName:e,appName:a})=>i`Configuration publiée par l'application <strong>${e}</strong>.<br>Ces variables seront injectées en tant que variables d'environnement dans l'application <strong>${a}</strong>.`,"env-var-linked-services.empty.addon":({appName:e})=>i`Aucun add-on lié à <strong>${e}</strong>.`,"env-var-linked-services.empty.app":({appName:e})=>i`Aucune application liée à <strong>${e}</strong>.`,"env-var-linked-services.error.addon":({appName:e})=>i`Une erreur est survenue pendant le chargement des add-ons liés à <strong>${e}</strong>.`,"env-var-linked-services.error.app":({appName:e})=>i`Une erreur est survenue pendant le chargement des applications liées à <strong>${e}</strong>.`,"env-var-linked-services.heading.addon":({name:e})=>`Add-on : ${e}`,"env-var-linked-services.heading.app":({name:e})=>`Application : ${e}`,"env-var-linked-services.loading.addon":({appName:e})=>i`Chargement des variables exposées par les add-ons liés à <strong>${e}</strong>...`,"env-var-linked-services.loading.app":({appName:e})=>i`Chargement de la configuration publiée par les applications liées à <strong>${e}</strong>...`,"env-var-form.mode.simple":"Simple","env-var-form.mode.expert":"Expert","env-var-form.reset":"Annuler les changements","env-var-form.restart-app":"Redémarrer l'app pour appliquer les changements","env-var-form.update":"Mettre à jour les changements","env-var-form.error.loading":"Une erreur est survenue pendant le chargement des variables.","env-var-form.error.saving":"Une erreur est survenue pendant la mise à jour des variables.","env-var-form.error.unknown":"Une erreur est survenue...","env-var-form.heading.env-var":"Variables d'environnement","env-var-form.heading.exposed-config":"Configuration publiée","env-var-form.description.env-var":({appName:e})=>i`Liste des variables d'environnement qui seront injectées dans l'application <strong>${e}</strong>. <a href="http://doc.clever-cloud.com/admin-console/environment-variables/">En savoir plus</a>`,"env-var-form.description.exposed-config":({appName:e})=>i`Configuration publiée pour les applications dépendantes.<br>Ces variables ne seront pas injectées dans l'application <strong>${e}</strong>, elles seront injectées en tant que variables d'environnement dans les applications qui ont <strong>${e}</strong> dans leurs services liés. <a href="https://www.clever-cloud.com/doc/admin-console/service-dependencies/">En savoir plus</a>`,"env-var-input.delete-button":"Enlever","env-var-input.keep-button":"Garder","env-var-input.value-placeholder":"valeur de la variable"}; | ||
//# sourceMappingURL=translations.fr.js.map |
{ | ||
"name": "@clevercloud/components", | ||
"version": "2.0.2", | ||
"version": "3.0.0", | ||
"description": "This is a Work In Progress to introduce Web Components in our Clever Cloud Web based UIs.", | ||
"license": "Apache-2.0", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/CleverCloud/clever-components.git" | ||
}, | ||
"main": "dist/index.js", | ||
@@ -38,19 +43,19 @@ "files": [ | ||
"devDependencies": { | ||
"@babel/core": "^7.8.4", | ||
"@babel/core": "^7.8.7", | ||
"@babel/plugin-syntax-dynamic-import": "^7.8.3", | ||
"@storybook/addon-a11y": "^5.3.12", | ||
"@storybook/addon-actions": "^5.3.12", | ||
"@storybook/addon-docs": "^5.3.12", | ||
"@storybook/addon-knobs": "^5.3.12", | ||
"@storybook/addon-notes": "^5.3.12", | ||
"@storybook/addon-viewport": "^5.3.12", | ||
"@storybook/addons": "^5.3.12", | ||
"@storybook/addon-a11y": "^5.3.17", | ||
"@storybook/addon-actions": "^5.3.17", | ||
"@storybook/addon-docs": "^5.3.17", | ||
"@storybook/addon-knobs": "^5.3.17", | ||
"@storybook/addon-notes": "^5.3.17", | ||
"@storybook/addon-viewport": "^5.3.17", | ||
"@storybook/addons": "^5.3.17", | ||
"@storybook/csf": "0.0.1", | ||
"@storybook/theming": "^5.3.12", | ||
"@storybook/web-components": "^5.3.12", | ||
"@storybook/theming": "^5.3.17", | ||
"@storybook/web-components": "^5.3.17", | ||
"babel-loader": "^8.0.6", | ||
"babel-plugin-inline-svg": "^1.0.1", | ||
"babel-plugin-template-html-minifier": "^4.0.0", | ||
"bundle-phobia-cli": "^0.14.1", | ||
"cypress": "^4.0.1", | ||
"bundle-phobia-cli": "^0.14.3", | ||
"cypress": "^4.1.0", | ||
"del": "^5.1.0", | ||
@@ -65,3 +70,3 @@ "eslint": "^6.8.0", | ||
"fs-extra": "^8.1.0", | ||
"github-markdown-css": "^3.0.1", | ||
"github-markdown-css": "^4.0.0", | ||
"glob": "^7.1.6", | ||
@@ -76,6 +81,6 @@ "gzip-size": "^5.1.1", | ||
"svgo": "^1.3.2", | ||
"terser": "^4.6.3", | ||
"terser": "^4.6.6", | ||
"text-table": "^0.2.0", | ||
"web-component-analyzer": "1.0.2" | ||
"web-component-analyzer": "1.0.3" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No License Found
License(Experimental) License information could not be found.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
1113544
132
0
1191
0