@raclettejs/core 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cli.js +4 -4
- package/dist/index.js +4 -4
- package/package.json +1 -1
- package/services/frontend/src/core/lib/data/fetchDataHandler.ts +0 -1
- package/services/frontend/src/core/lib/data/queryApi.ts +2 -1
- package/services/frontend/src/core/setup/plugin-system/api/plugin-data.ts +10 -6
- package/services/frontend/src/core/store/reducers/queries/effects.ts +1 -1
- package/services/frontend/src/orchestrator/WelcomeScreen.vue +120 -1
- package/services/frontend/src/orchestrator/components/welcomeScreen/AdminWelcomeScreen.vue +117 -0
- package/services/frontend/src/orchestrator/components/welcomeScreen/UserWelcomeScreen.vue +17 -0
- package/services/frontend/src/orchestrator/i18n/de-DE.json +33 -0
- package/services/frontend/src/orchestrator/i18n/en-EU.json +34 -1
- package/services/frontend/src/orchestrator/i18n/sk.json +33 -0
- package/services/frontend/src/orchestrator/i18n/tl-TL.json +34 -1
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
var xe=Object.create;var
|
|
2
|
+
var xe=Object.create;var B=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Ae=Object.prototype.hasOwnProperty;var E=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var G=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ke=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Re(r))!Ae.call(e,o)&&o!==t&&B(e,o,{get:()=>r[o],enumerable:!(n=Te(r,o))||n.enumerable});return e};var Ne=(e,r,t)=>(t=e!=null?xe(Oe(e)):{},ke(r||!e||!e.__esModule?B(t,"default",{value:e,enumerable:!0}):t,e));var ee=G((Sr,qe)=>{qe.exports={name:"dotenv",version:"17.2.0",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ie=G((Lr,y)=>{var S=E("fs"),j=E("path"),Ke=E("os"),He=E("crypto"),We=ee(),L=We.version,re=["\u{1F510} encrypt with dotenvx: https://dotenvx.com","\u{1F510} prevent committing .env to code: https://dotenvx.com/precommit","\u{1F510} prevent building .env in docker: https://dotenvx.com/prebuild","\u{1F6E0}\uFE0F run anywhere with `dotenvx run -- yourcommand`","\u2699\uFE0F specify custom .env file path with { path: '/custom/path/.env' }","\u2699\uFE0F enable debug logging with { debug: true }","\u2699\uFE0F override existing env vars with { override: true }","\u2699\uFE0F suppress all logs with { quiet: true }","\u2699\uFE0F write to custom object with { processEnv: myObject }","\u2699\uFE0F load multiple .env files with { path: ['.env.local', '.env'] }"];function Je(){return re[Math.floor(Math.random()*re.length)]}function w(e){return typeof e=="string"?!["false","0","no","off",""].includes(e.toLowerCase()):!!e}function Qe(){return process.stdout.isTTY}function ze(e){return Qe()?`\x1B[2m${e}\x1B[0m`:e}var Ze=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Xe(e){let r={},t=e.toString();t=t.replace(/\r\n?/mg,`
|
|
3
3
|
`);let n;for(;(n=Ze.exec(t))!=null;){let o=n[1],i=n[2]||"";i=i.trim();let s=i[0];i=i.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(i=i.replace(/\\n/g,`
|
|
4
|
-
`),i=i.replace(/\\r/g,"\r")),r[o]=i}return r}function er(e){e=e||{};let r=se(e);e.path=r;let t=u.configDotenv(e);if(!t.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw s.code="MISSING_DATA",s}let n=oe(e).split(","),o=n.length,i;for(let s=0;s<o;s++)try{let a=n[s].trim(),p=tr(t,a);i=u.decrypt(p.ciphertext,p.key);break}catch(a){if(s+1>=o)throw a}return u.parse(i)}function rr(e){console.error(`[dotenv@${L}][WARN] ${e}`)}function R(e){console.log(`[dotenv@${L}][DEBUG] ${e}`)}function ne(e){console.log(`[dotenv@${L}] ${e}`)}function oe(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function tr(e,r){let t;try{t=new URL(r)}catch(a){if(a.code==="ERR_INVALID_URL"){let p=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw p.code="INVALID_DOTENV_KEY",p}throw a}let n=t.password;if(!n){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let o=t.searchParams.get("environment");if(!o){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let i=`DOTENV_VAULT_${o.toUpperCase()}`,s=e.parsed[i];if(!s){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${i} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:s,key:n}}function se(e){let r=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let t of e.path)S.existsSync(t)&&(r=t.endsWith(".vault")?t:`${t}.vault`);else r=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else r=j.resolve(process.cwd(),".env.vault");return S.existsSync(r)?r:null}function te(e){return e[0]==="~"?j.join(Ke.homedir(),e.slice(1)):e}function nr(e){let r=w(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),t=w(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(r||!t)&&ne("Loading env from encrypted .env.vault");let n=u._parseVault(e),o=process.env;return e&&e.processEnv!=null&&(o=e.processEnv),u.populate(o,n,e),{parsed:n}}function or(e){let r=j.resolve(process.cwd(),".env"),t="utf8",n=process.env;e&&e.processEnv!=null&&(n=e.processEnv);let o=w(n.DOTENV_CONFIG_DEBUG||e&&e.debug),i=w(n.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?t=e.encoding:o&&R("No encoding is specified. UTF-8 is used by default");let s=[r];if(e&&e.path)if(!Array.isArray(e.path))s=[te(e.path)];else{s=[];for(let f of e.path)s.push(te(f))}let a,p={};for(let f of s)try{let h=u.parse(S.readFileSync(f,{encoding:t}));u.populate(p,h,e)}catch(h){o&&R(`Failed to load ${f} ${h.message}`),a=h}let C=u.populate(n,p,e);if(o=w(n.DOTENV_CONFIG_DEBUG||o),i=w(n.DOTENV_CONFIG_QUIET||i),o||!i){let f=Object.keys(C).length,h=[];for(let
|
|
4
|
+
`),i=i.replace(/\\r/g,"\r")),r[o]=i}return r}function er(e){e=e||{};let r=se(e);e.path=r;let t=u.configDotenv(e);if(!t.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw s.code="MISSING_DATA",s}let n=oe(e).split(","),o=n.length,i;for(let s=0;s<o;s++)try{let a=n[s].trim(),p=tr(t,a);i=u.decrypt(p.ciphertext,p.key);break}catch(a){if(s+1>=o)throw a}return u.parse(i)}function rr(e){console.error(`[dotenv@${L}][WARN] ${e}`)}function R(e){console.log(`[dotenv@${L}][DEBUG] ${e}`)}function ne(e){console.log(`[dotenv@${L}] ${e}`)}function oe(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function tr(e,r){let t;try{t=new URL(r)}catch(a){if(a.code==="ERR_INVALID_URL"){let p=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw p.code="INVALID_DOTENV_KEY",p}throw a}let n=t.password;if(!n){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let o=t.searchParams.get("environment");if(!o){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let i=`DOTENV_VAULT_${o.toUpperCase()}`,s=e.parsed[i];if(!s){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${i} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:s,key:n}}function se(e){let r=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let t of e.path)S.existsSync(t)&&(r=t.endsWith(".vault")?t:`${t}.vault`);else r=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else r=j.resolve(process.cwd(),".env.vault");return S.existsSync(r)?r:null}function te(e){return e[0]==="~"?j.join(Ke.homedir(),e.slice(1)):e}function nr(e){let r=w(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),t=w(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(r||!t)&&ne("Loading env from encrypted .env.vault");let n=u._parseVault(e),o=process.env;return e&&e.processEnv!=null&&(o=e.processEnv),u.populate(o,n,e),{parsed:n}}function or(e){let r=j.resolve(process.cwd(),".env"),t="utf8",n=process.env;e&&e.processEnv!=null&&(n=e.processEnv);let o=w(n.DOTENV_CONFIG_DEBUG||e&&e.debug),i=w(n.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?t=e.encoding:o&&R("No encoding is specified. UTF-8 is used by default");let s=[r];if(e&&e.path)if(!Array.isArray(e.path))s=[te(e.path)];else{s=[];for(let f of e.path)s.push(te(f))}let a,p={};for(let f of s)try{let h=u.parse(S.readFileSync(f,{encoding:t}));u.populate(p,h,e)}catch(h){o&&R(`Failed to load ${f} ${h.message}`),a=h}let C=u.populate(n,p,e);if(o=w(n.DOTENV_CONFIG_DEBUG||o),i=w(n.DOTENV_CONFIG_QUIET||i),o||!i){let f=Object.keys(C).length,h=[];for(let M of s)try{let A=j.relative(process.cwd(),M);h.push(A)}catch(A){o&&R(`Failed to load ${M} ${A.message}`),a=A}ne(`injecting env (${f}) from ${h.join(",")} ${ze(`(tip: ${Je()})`)}`)}return a?{parsed:p,error:a}:{parsed:p}}function sr(e){if(oe(e).length===0)return u.configDotenv(e);let r=se(e);return r?u._configVault(e):(rr(`You set DOTENV_KEY but you are missing a .env.vault file at ${r}. Did you forget to build it?`),u.configDotenv(e))}function ir(e,r){let t=Buffer.from(r.slice(-64),"hex"),n=Buffer.from(e,"base64"),o=n.subarray(0,12),i=n.subarray(-16);n=n.subarray(12,-16);try{let s=He.createDecipheriv("aes-256-gcm",t,o);return s.setAuthTag(i),`${s.update(n)}${s.final()}`}catch(s){let a=s instanceof RangeError,p=s.message==="Invalid key length",C=s.message==="Unsupported state or unable to authenticate data";if(a||p){let f=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw f.code="INVALID_DOTENV_KEY",f}else if(C){let f=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw f.code="DECRYPTION_FAILED",f}else throw s}}function ar(e,r,t={}){let n=!!(t&&t.debug),o=!!(t&&t.override),i={};if(typeof r!="object"){let s=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw s.code="OBJECT_REQUIRED",s}for(let s of Object.keys(r))Object.prototype.hasOwnProperty.call(e,s)?(o===!0&&(e[s]=r[s],i[s]=r[s]),n&&R(o===!0?`"${s}" is already defined and WAS overwritten`:`"${s}" is already defined and was NOT overwritten`)):(e[s]=r[s],i[s]=r[s]);return i}var u={configDotenv:or,_configVault:nr,_parseVault:er,config:sr,decrypt:ir,parse:Xe,populate:ar};y.exports.configDotenv=u.configDotenv;y.exports._configVault=u._configVault;y.exports._parseVault=u._parseVault;y.exports.config=u.config;y.exports.decrypt=u.decrypt;y.exports.parse=u.parse;y.exports.populate=u.populate;y.exports=u});var Y=(e=0)=>r=>`\x1B[${r+e}m`,U=(e=0)=>r=>`\x1B[${38+e};5;${r}m`,q=(e=0)=>(r,t,n)=>`\x1B[${38+e};2;${r};${t};${n}m`,l={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Er=Object.keys(l.modifier),je=Object.keys(l.color),De=Object.keys(l.bgColor),xr=[...je,...De];function _e(){let e=new Map;for(let[r,t]of Object.entries(l)){for(let[n,o]of Object.entries(t))l[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},t[n]=l[n],e.set(o[0],o[1]);Object.defineProperty(l,r,{value:t,enumerable:!1})}return Object.defineProperty(l,"codes",{value:e,enumerable:!1}),l.color.close="\x1B[39m",l.bgColor.close="\x1B[49m",l.color.ansi=Y(),l.color.ansi256=U(),l.color.ansi16m=q(),l.bgColor.ansi=Y(10),l.bgColor.ansi256=U(10),l.bgColor.ansi16m=q(10),Object.defineProperties(l,{rgbToAnsi256:{value(r,t,n){return r===t&&t===n?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(r){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(r.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(i=>i+i).join(""));let o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:r=>l.rgbToAnsi256(...l.hexToRgb(r)),enumerable:!1},ansi256ToAnsi:{value(r){if(r<8)return 30+r;if(r<16)return 90+(r-8);let t,n,o;if(r>=232)t=((r-232)*10+8)/255,n=t,o=t;else{r-=16;let a=r%36;t=Math.floor(r/36)/5,n=Math.floor(a/6)/5,o=a%6/5}let i=Math.max(t,n,o)*2;if(i===0)return 30;let s=30+(Math.round(o)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(r,t,n)=>l.ansi256ToAnsi(l.rgbToAnsi256(r,t,n)),enumerable:!1},hexToAnsi:{value:r=>l.ansi256ToAnsi(l.hexToAnsi256(r)),enumerable:!1}}),l}var Ie=_e(),d=Ie;import D from"node:process";import $e from"node:os";import K from"node:tty";function g(e,r=globalThis.Deno?globalThis.Deno.args:D.argv){let t=e.startsWith("-")?"":e.length===1?"-":"--",n=r.indexOf(t+e),o=r.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:c}=D,k;g("no-color")||g("no-colors")||g("color=false")||g("color=never")?k=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(k=1);function Se(){if("FORCE_COLOR"in c)return c.FORCE_COLOR==="true"?1:c.FORCE_COLOR==="false"?0:c.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(c.FORCE_COLOR,10),3)}function Le(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Ve(e,{streamIsTTY:r,sniffFlags:t=!0}={}){let n=Se();n!==void 0&&(k=n);let o=t?k:n;if(o===0)return 0;if(t){if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2}if("TF_BUILD"in c&&"AGENT_NAME"in c)return 1;if(e&&!r&&o===void 0)return 0;let i=o||0;if(c.TERM==="dumb")return i;if(D.platform==="win32"){let s=$e.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in c)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in c)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in c)||c.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in c)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(c.TEAMCITY_VERSION)?1:0;if(c.COLORTERM==="truecolor"||c.TERM==="xterm-kitty"||c.TERM==="xterm-ghostty"||c.TERM==="wezterm")return 3;if("TERM_PROGRAM"in c){let s=Number.parseInt((c.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(c.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(c.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(c.TERM)||"COLORTERM"in c?1:i}function H(e,r={}){let t=Ve(e,{streamIsTTY:e&&e.isTTY,...r});return Le(t)}var Pe={stdout:H({isTTY:K.isatty(1)}),stderr:H({isTTY:K.isatty(2)})},W=Pe;function J(e,r,t){let n=e.indexOf(r);if(n===-1)return e;let o=r.length,i=0,s="";do s+=e.slice(i,n)+r+t,i=n+o,n=e.indexOf(r,i);while(n!==-1);return s+=e.slice(i),s}function Q(e,r,t,n){let o=0,i="";do{let s=e[n-1]==="\r";i+=e.slice(o,s?n-1:n)+r+(s?`\r
|
|
5
5
|
`:`
|
|
6
6
|
`)+t,o=n+1,n=e.indexOf(`
|
|
7
|
-
`,o)}while(n!==-1);return i+=e.slice(o),i}var{stdout:z,stderr:Z}=W,_=Symbol("GENERATOR"),v=Symbol("STYLER"),x=Symbol("IS_EMPTY"),X=["ansi","ansi","ansi256","ansi16m"],b=Object.create(null),Fe=(e,r={})=>{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=z?z.level:0;e.level=r.level===void 0?t:r.level};var
|
|
8
|
-
`);return i!==-1&&(r=Q(r,o,n,i)),n+r+o};Object.defineProperties(T.prototype,b);var Ue=T(),Ir=T({level:Z?Z.level:0});var m=Ue;var lr=Ne(ie(),1);import Hr from"chokidar";import Jr from"fs-extra";import zr from"path";import
|
|
7
|
+
`,o)}while(n!==-1);return i+=e.slice(o),i}var{stdout:z,stderr:Z}=W,_=Symbol("GENERATOR"),v=Symbol("STYLER"),x=Symbol("IS_EMPTY"),X=["ansi","ansi","ansi256","ansi16m"],b=Object.create(null),Fe=(e,r={})=>{if(r.level&&!(Number.isInteger(r.level)&&r.level>=0&&r.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=z?z.level:0;e.level=r.level===void 0?t:r.level};var Me=e=>{let r=(...t)=>t.join(" ");return Fe(r,e),Object.setPrototypeOf(r,T.prototype),r};function T(e){return Me(e)}Object.setPrototypeOf(T.prototype,Function.prototype);for(let[e,r]of Object.entries(d))b[e]={get(){let t=N(this,$(r.open,r.close,this[v]),this[x]);return Object.defineProperty(this,e,{value:t}),t}};b.visible={get(){let e=N(this,this[v],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var I=(e,r,t,...n)=>e==="rgb"?r==="ansi16m"?d[t].ansi16m(...n):r==="ansi256"?d[t].ansi256(d.rgbToAnsi256(...n)):d[t].ansi(d.rgbToAnsi(...n)):e==="hex"?I("rgb",r,t,...d.hexToRgb(...n)):d[t][e](...n),Be=["rgb","hex","ansi256"];for(let e of Be){b[e]={get(){let{level:t}=this;return function(...n){let o=$(I(e,X[t],"color",...n),d.color.close,this[v]);return N(this,o,this[x])}}};let r="bg"+e[0].toUpperCase()+e.slice(1);b[r]={get(){let{level:t}=this;return function(...n){let o=$(I(e,X[t],"bgColor",...n),d.bgColor.close,this[v]);return N(this,o,this[x])}}}}var Ge=Object.defineProperties(()=>{},{...b,level:{enumerable:!0,get(){return this[_].level},set(e){this[_].level=e}}}),$=(e,r,t)=>{let n,o;return t===void 0?(n=e,o=r):(n=t.openAll+e,o=r+t.closeAll),{open:e,close:r,openAll:n,closeAll:o,parent:t}},N=(e,r,t)=>{let n=(...o)=>Ye(n,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(n,Ge),n[_]=e,n[v]=r,n[x]=t,n},Ye=(e,r)=>{if(e.level<=0||!r)return e[x]?"":r;let t=e[v];if(t===void 0)return r;let{openAll:n,closeAll:o}=t;if(r.includes("\x1B"))for(;t!==void 0;)r=J(r,t.close,t.open),t=t.parent;let i=r.indexOf(`
|
|
8
|
+
`);return i!==-1&&(r=Q(r,o,n,i)),n+r+o};Object.defineProperties(T.prototype,b);var Ue=T(),Ir=T({level:Z?Z.level:0});var m=Ue;var lr=Ne(ie(),1);import Hr from"chokidar";import Jr from"fs-extra";import zr from"path";import Mr from"fs-extra";import Gr from"path";var V=class{constructor(){this.level="info";this.verbose=!1}setLevel(r){this.level=r}setVerbose(r){this.verbose=r}shouldLog(r){let t={error:0,warn:1,info:2,debug:3};return r==="debug"&&this.verbose?!0:t[r]<=t[this.level]}getTypeStyle(r){switch(r){case"success":return m.green;case"error":return m.red;case"warning":return m.yellow;case"info":return m.blue;case"instruction":return m.cyan;case"progress":return m.reset;case"debug":return m.gray;case"raclette":return m.rgb(221,139,64);default:return t=>t}}getTypeIcon(r){switch(r){case"success":return"\u2705";case"error":return"\u274C";case"warning":return"\u26A0\uFE0F";case"info":return"\u2139\uFE0F";case"instruction":return"\u{1F4A1}";case"progress":return"\u{1F504}";case"debug":return"";case"raclette":return"\u{1F9C0}";default:return""}}log(r,t,n){if(!this.shouldLog(r))return;let o=n?this.getTypeStyle(n):m.reset,i=n?this.getTypeIcon(n):"",s=i?`${i} `:"";console.log(o(`${s}${t}`))}logError(r,t){if(!this.shouldLog("error"))return;let n=this.getTypeStyle("error"),o=this.getTypeIcon("error"),i=o?`${o} `:"";t?console.error(n(`${i}${r}`),t):console.error(n(`${i}${r}`))}error(r,t){this.logError(r,t)}warn(r){this.log("warn",r,"warning")}info(r){this.log("info",r,"info")}debug(r){this.log("debug",r,"debug")}success(r){this.log("info",r,"success")}instruction(r){this.log("info",r,"instruction")}progress(r){this.log("info",r,"progress")}raclette(r){this.log("info",r,"raclette")}raw(r,t="info"){this.shouldLog(t)&&console.log(r)}},O=new V;var cr=e=>e;import Ce from"fs-extra";import Ee from"path";var ae=(e=!1)=>["eslint","@eslint/js","globals","eslint-config-prettier","prettier","eslint-plugin-prettier",...e?ur():[]],ur=()=>[],le=()=>["import globals from 'globals';","import eslintConfigPrettier from 'eslint-config-prettier';"],ce=(e=!1)=>{let r=` // JavaScript config
|
|
9
9
|
{
|
|
10
10
|
files: ["**/*.{js,mjs,cjs}"],
|
|
11
11
|
languageOptions: {
|
package/package.json
CHANGED
|
@@ -51,10 +51,11 @@ export const $queryApi = (
|
|
|
51
51
|
resultSubject$.next({})
|
|
52
52
|
const queryParams = mergeDeepRight(cleanedParams, _executeParams)
|
|
53
53
|
$store.dispatch({
|
|
54
|
-
type: "queries/update
|
|
54
|
+
type: "queries/update",
|
|
55
55
|
payload: {
|
|
56
56
|
loading: true,
|
|
57
57
|
actionId: actionId,
|
|
58
|
+
params: queryParams,
|
|
58
59
|
},
|
|
59
60
|
})
|
|
60
61
|
|
|
@@ -54,7 +54,6 @@ export const handlePluginOperations =
|
|
|
54
54
|
instanceId: string,
|
|
55
55
|
pluginData: PluginFrontendDefinition["data"] = {},
|
|
56
56
|
) => {
|
|
57
|
-
const plugin = registeredPlugins[prefixedPluginName]
|
|
58
57
|
const customStoreActions: Record<string, any> = {}
|
|
59
58
|
for (let [dataTypeName, value] of Object.entries(pluginData)) {
|
|
60
59
|
if (!dataTypeName) return log("no type for datatype given", value)
|
|
@@ -76,18 +75,21 @@ export const handlePluginOperations =
|
|
|
76
75
|
let actionIdBase = customOperation.actionId || customOperationName
|
|
77
76
|
if (actionIdOverride.length) actionIdBase = actionIdOverride
|
|
78
77
|
const actionId = createPluginActionId(dataTypeName, actionIdBase)
|
|
78
|
+
// This is the id for the query of the handler itself
|
|
79
|
+
let handlerId = nanoid(4)
|
|
79
80
|
storeActionTypeStoreActions[customOperationName] = ({
|
|
80
|
-
id
|
|
81
|
+
id,
|
|
81
82
|
params = {},
|
|
82
83
|
options = {},
|
|
83
84
|
}: CustomStoreActionsPayload = {}) => {
|
|
85
|
+
if (id) handlerId = id
|
|
84
86
|
const instanceActionId =
|
|
85
87
|
getInstanceActionId(
|
|
86
88
|
prefixedPluginName,
|
|
87
89
|
instanceId,
|
|
88
90
|
actionId,
|
|
89
91
|
actionIdOverride,
|
|
90
|
-
) + `-${
|
|
92
|
+
) + `-${handlerId}`
|
|
91
93
|
if (!params._id && options.immediate === true) {
|
|
92
94
|
params._id = uuidv4()
|
|
93
95
|
}
|
|
@@ -109,19 +111,21 @@ export const handlePluginOperations =
|
|
|
109
111
|
let actionIdBase = customOperation.actionId || customOperationName
|
|
110
112
|
if (actionIdOverride.length) actionIdBase = actionIdOverride
|
|
111
113
|
const actionId = createPluginActionId(dataTypeName, actionIdBase)
|
|
112
|
-
|
|
114
|
+
// This is the id for the query of the handler itself
|
|
115
|
+
let handlerId = nanoid(4)
|
|
113
116
|
storeActionTypeStoreActions[customOperationName] = ({
|
|
114
|
-
id
|
|
117
|
+
id,
|
|
115
118
|
params = {},
|
|
116
119
|
options = {},
|
|
117
120
|
}: CustomStoreActionsPayload = {}) => {
|
|
121
|
+
if (id) handlerId = id
|
|
118
122
|
const instanceActionId =
|
|
119
123
|
getInstanceActionId(
|
|
120
124
|
prefixedPluginName,
|
|
121
125
|
instanceId,
|
|
122
126
|
actionId,
|
|
123
127
|
actionIdOverride,
|
|
124
|
-
) + `-${
|
|
128
|
+
) + `-${handlerId}`
|
|
125
129
|
const method = customOperation.method || "get"
|
|
126
130
|
let target = handleOperationTarget(customOperation.target, params)
|
|
127
131
|
|
|
@@ -28,7 +28,7 @@ const queriesEffects = (store) => {
|
|
|
28
28
|
tap((action) => {
|
|
29
29
|
if (Object.keys(action.actionResult.updated.items).length) {
|
|
30
30
|
Object.values(action.actionResult.updated.items).forEach((query) => {
|
|
31
|
-
getData(query.actionId, query.target, query.params || false)
|
|
31
|
+
getData(query.actionId, query.target, query.params || false, {})
|
|
32
32
|
})
|
|
33
33
|
}
|
|
34
34
|
}),
|
|
@@ -1,3 +1,122 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div class="welcome-screen">
|
|
3
|
+
<v-container>
|
|
4
|
+
<component :is="currentComponent" />
|
|
5
|
+
<v-row>
|
|
6
|
+
<v-col cols="12">
|
|
7
|
+
<h2 class="tw:text-2xl tw:font-semibold tw:mb-4">
|
|
8
|
+
{{ $t("core.welcomeScreen.builtInFeaturesTitle") }}
|
|
9
|
+
</h2>
|
|
10
|
+
<v-expansion-panels flat variant="accordion">
|
|
11
|
+
<v-expansion-panel v-for="feature in features" :key="feature.key">
|
|
12
|
+
<v-expansion-panel-title>
|
|
13
|
+
<v-icon :icon="feature.icon" class="tw:mr-3"></v-icon>
|
|
14
|
+
{{ $t(`core.welcomeScreen.${feature.key}Title`) }}
|
|
15
|
+
</v-expansion-panel-title>
|
|
16
|
+
<v-expansion-panel-text>
|
|
17
|
+
<div class="tw:py-2">
|
|
18
|
+
{{ $t(`core.welcomeScreen.${feature.key}Description`) }}
|
|
19
|
+
</div>
|
|
20
|
+
<template v-if="feature.status">
|
|
21
|
+
<a
|
|
22
|
+
v-if="feature.status.link"
|
|
23
|
+
target="_blank"
|
|
24
|
+
:href="feature.status.link"
|
|
25
|
+
>
|
|
26
|
+
<v-chip
|
|
27
|
+
v-if="feature.status"
|
|
28
|
+
:color="feature.status.color"
|
|
29
|
+
size="small"
|
|
30
|
+
class="tw:mt-2"
|
|
31
|
+
>
|
|
32
|
+
<v-icon start :icon="feature.status.icon"></v-icon>
|
|
33
|
+
{{ $t(`core.welcomeScreen.${feature.status.key}`) }}
|
|
34
|
+
</v-chip>
|
|
35
|
+
</a>
|
|
36
|
+
<v-chip
|
|
37
|
+
v-else
|
|
38
|
+
:color="feature.status.color"
|
|
39
|
+
size="small"
|
|
40
|
+
class="tw:mt-2"
|
|
41
|
+
>
|
|
42
|
+
<v-icon start :icon="feature.status.icon"></v-icon>
|
|
43
|
+
{{ $t(`core.welcomeScreen.${feature.status.key}`) }}
|
|
44
|
+
</v-chip>
|
|
45
|
+
</template>
|
|
46
|
+
</v-expansion-panel-text>
|
|
47
|
+
</v-expansion-panel>
|
|
48
|
+
</v-expansion-panels>
|
|
49
|
+
</v-col>
|
|
50
|
+
</v-row>
|
|
51
|
+
</v-container>
|
|
52
|
+
</div>
|
|
3
53
|
</template>
|
|
54
|
+
|
|
55
|
+
<script setup lang="ts">
|
|
56
|
+
import { computed } from "vue"
|
|
57
|
+
import type { ServerState } from "@racletteCore/store/types"
|
|
58
|
+
import UserWelcome from "./components/welcomeScreen/UserWelcomeScreen.vue"
|
|
59
|
+
import AdminWelcome from "./components/welcomeScreen/AdminWelcomeScreen.vue"
|
|
60
|
+
import useStateSubscriber from "@racletteOrchestrator/composables/useStateSubscriber"
|
|
61
|
+
|
|
62
|
+
const { state: backend } = useStateSubscriber<ServerState>("backend")
|
|
63
|
+
|
|
64
|
+
const { state: user } = useStateSubscriber("user")
|
|
65
|
+
|
|
66
|
+
// Built-in features
|
|
67
|
+
const features = computed(() => {
|
|
68
|
+
const list = [
|
|
69
|
+
{
|
|
70
|
+
key: "userMenu",
|
|
71
|
+
icon: "mdi-menu",
|
|
72
|
+
status: null,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
key: "localization",
|
|
76
|
+
icon: "mdi-translate",
|
|
77
|
+
status: null,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
key: "theming",
|
|
81
|
+
icon: "mdi-palette",
|
|
82
|
+
status: null,
|
|
83
|
+
},
|
|
84
|
+
]
|
|
85
|
+
if (backend.value.socket.status) {
|
|
86
|
+
list.push({
|
|
87
|
+
key: "notifications",
|
|
88
|
+
icon: "mdi-bell",
|
|
89
|
+
status: {
|
|
90
|
+
key: "connected",
|
|
91
|
+
icon: "mdi-wifi",
|
|
92
|
+
color: "success",
|
|
93
|
+
},
|
|
94
|
+
})
|
|
95
|
+
} else {
|
|
96
|
+
list.push({
|
|
97
|
+
key: "notifications",
|
|
98
|
+
icon: "mdi-bell",
|
|
99
|
+
status: {
|
|
100
|
+
key: "disconnected",
|
|
101
|
+
icon: "mdi-wifi",
|
|
102
|
+
color: "error",
|
|
103
|
+
},
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
list.push({
|
|
107
|
+
key: "more_soon",
|
|
108
|
+
icon: "mdi-party-popper",
|
|
109
|
+
status: {
|
|
110
|
+
key: "roadmap",
|
|
111
|
+
icon: "mdi-chart-timeline",
|
|
112
|
+
color: "info",
|
|
113
|
+
link: "https://gitlab.com/groups/raclettejs/-/roadmap?state=all&sort=START_DATE_ASC&layout=QUARTERS&timeframe_range_type=THREE_YEARS&progress=WEIGHT&show_progress=true&show_milestones=true&milestones_type=ALL&show_labels=true",
|
|
114
|
+
},
|
|
115
|
+
})
|
|
116
|
+
return list
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
const currentComponent = computed(() => {
|
|
120
|
+
return user.value.isAdmin ? AdminWelcome : UserWelcome
|
|
121
|
+
})
|
|
122
|
+
</script>
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-row>
|
|
3
|
+
<v-col cols="12">
|
|
4
|
+
<v-card flat class="tw:bg-transparent tw:p-5">
|
|
5
|
+
<v-card-title class="tw:text-3xl tw:font-bold tw:pb-2">
|
|
6
|
+
🧀
|
|
7
|
+
{{ $t("core.welcomeScreen.title") }}
|
|
8
|
+
</v-card-title>
|
|
9
|
+
<v-card-subtitle class="tw:text-lg tw:opacity-90">
|
|
10
|
+
{{ $t("core.welcomeScreen.subtitle") }}
|
|
11
|
+
</v-card-subtitle>
|
|
12
|
+
</v-card>
|
|
13
|
+
</v-col>
|
|
14
|
+
</v-row>
|
|
15
|
+
|
|
16
|
+
<!-- Main CTA Section -->
|
|
17
|
+
<v-row class="tw:mt-6">
|
|
18
|
+
<v-col cols="12">
|
|
19
|
+
<v-alert type="info" variant="tonal" prominent class="tw:mb-6">
|
|
20
|
+
<template v-slot:title>
|
|
21
|
+
{{ $t("core.welcomeScreen.noLandingPage") }}
|
|
22
|
+
</template>
|
|
23
|
+
<div class="tw:mt-3">
|
|
24
|
+
{{ $t("core.welcomeScreen.visitWorkbench") }}
|
|
25
|
+
</div>
|
|
26
|
+
<!--TODO get the workbench url and make this button work-->
|
|
27
|
+
<!--v-btn
|
|
28
|
+
color="primary"
|
|
29
|
+
variant="elevated"
|
|
30
|
+
class="tw:mt-4"
|
|
31
|
+
prepend-icon="mdi-cog"
|
|
32
|
+
@click="handleWorkbenchClick"
|
|
33
|
+
>
|
|
34
|
+
{{ $t("core.welcomeScreen.goToWorkbench") }}
|
|
35
|
+
</!--v-btn-->
|
|
36
|
+
</v-alert>
|
|
37
|
+
</v-col>
|
|
38
|
+
</v-row>
|
|
39
|
+
|
|
40
|
+
<!-- Configuration Options -->
|
|
41
|
+
<v-row>
|
|
42
|
+
<v-col cols="12">
|
|
43
|
+
<h2 class="tw:text-2xl tw:font-semibold tw:mb-4">
|
|
44
|
+
{{ $t("core.welcomeScreen.configurationsTitle") }}
|
|
45
|
+
</h2>
|
|
46
|
+
</v-col>
|
|
47
|
+
</v-row>
|
|
48
|
+
|
|
49
|
+
<v-row>
|
|
50
|
+
<v-col
|
|
51
|
+
v-for="config in configurations"
|
|
52
|
+
:key="config.key"
|
|
53
|
+
cols="12"
|
|
54
|
+
md="6"
|
|
55
|
+
lg="4"
|
|
56
|
+
>
|
|
57
|
+
<v-card
|
|
58
|
+
variant="outlined"
|
|
59
|
+
class="tw:h-full tw:transition-all hover:tw:shadow-lg"
|
|
60
|
+
>
|
|
61
|
+
<v-card-item>
|
|
62
|
+
<template v-slot:prepend>
|
|
63
|
+
<v-avatar :color="config.color" variant="tonal">
|
|
64
|
+
<v-icon :icon="config.icon"></v-icon>
|
|
65
|
+
</v-avatar>
|
|
66
|
+
</template>
|
|
67
|
+
<v-card-title class="tw:text-lg">
|
|
68
|
+
{{ $t(`core.welcomeScreen.${config.key}Title`) }}
|
|
69
|
+
</v-card-title>
|
|
70
|
+
</v-card-item>
|
|
71
|
+
<v-card-text>
|
|
72
|
+
{{ $t(`core.welcomeScreen.${config.key}`) }}
|
|
73
|
+
</v-card-text>
|
|
74
|
+
</v-card>
|
|
75
|
+
</v-col>
|
|
76
|
+
</v-row>
|
|
77
|
+
</template>
|
|
78
|
+
|
|
79
|
+
<script setup lang="ts">
|
|
80
|
+
import { computed } from "vue"
|
|
81
|
+
|
|
82
|
+
// Configuration items
|
|
83
|
+
const configurations = computed(() => [
|
|
84
|
+
{
|
|
85
|
+
key: "compositionInfo",
|
|
86
|
+
icon: "mdi-view-dashboard",
|
|
87
|
+
color: "primary",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
key: "interactionLinkInfo",
|
|
91
|
+
icon: "mdi-link-variant",
|
|
92
|
+
color: "secondary",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
key: "userInfo",
|
|
96
|
+
icon: "mdi-account-multiple",
|
|
97
|
+
color: "success",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
key: "tagInfo",
|
|
101
|
+
icon: "mdi-tag-multiple",
|
|
102
|
+
color: "warning",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
key: "pluginInfo",
|
|
106
|
+
icon: "mdi-puzzle",
|
|
107
|
+
color: "info",
|
|
108
|
+
},
|
|
109
|
+
])
|
|
110
|
+
|
|
111
|
+
// Methods
|
|
112
|
+
const handleWorkbenchClick = () => {
|
|
113
|
+
// Navigate to workbench or emit event
|
|
114
|
+
console.log("Navigate to Raclette Workbench")
|
|
115
|
+
// router.push('/workbench') // Uncomment when route is available
|
|
116
|
+
}
|
|
117
|
+
</script>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-row>
|
|
3
|
+
<v-col cols="12">
|
|
4
|
+
<v-card flat class="tw:bg-transparent">
|
|
5
|
+
<v-card-title class="tw:text-3xl tw:font-bold tw:pb-2">
|
|
6
|
+
🧀
|
|
7
|
+
{{ $t("core.welcomeScreen.title") }}
|
|
8
|
+
</v-card-title>
|
|
9
|
+
<v-card-subtitle class="tw:text-lg tw:opacity-90">
|
|
10
|
+
{{ $t("core.welcomeScreen.subtitleUser") }}
|
|
11
|
+
</v-card-subtitle>
|
|
12
|
+
</v-card>
|
|
13
|
+
</v-col>
|
|
14
|
+
</v-row>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script setup lang="ts"></script>
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"core": {
|
|
3
|
+
"welcomeScreen": {
|
|
4
|
+
"title": "Willkommen bei ",
|
|
5
|
+
"subtitle": "Konfiguriere eine Landingpage in der Workbench, damit diese Seite verschwindet! Sieh dir den Dialog zur Erstellung/Bearbeitung von InteractionLinks für den Landingpage-Umschalter an.",
|
|
6
|
+
"subtitleUser": "Deine Schnittstelle zur käsigen Seite der Dinge",
|
|
7
|
+
"noLandingPage": "Keine Landingpage konfiguriert",
|
|
8
|
+
"visitWorkbench": "Besuche die Raclette-Workbench, um dein Portal zu konfigurieren und deine bevorzugte Landingpage einzurichten.",
|
|
9
|
+
"goToWorkbench": "Workbench öffnen",
|
|
10
|
+
"configurationsTitle": "Was du in der Workbench konfigurieren kannst",
|
|
11
|
+
"compositionInfoTitle": "Kompositionen",
|
|
12
|
+
"compositionInfo": "Erstelle Kompositionen, um das Layout deiner Seiten oder Modale zu definieren",
|
|
13
|
+
"interactionLinkInfoTitle": "Interaction Links",
|
|
14
|
+
"interactionLinkInfo": "Erstelle InteractionLinks, um zu definieren, wie Nutzer auf Seiten oder Modale zugreifen können",
|
|
15
|
+
"userInfoTitle": "Benutzerverwaltung",
|
|
16
|
+
"userInfo": "Erstelle Benutzer, damit sie deine App nutzen und etwas Käse bekommen können!",
|
|
17
|
+
"tagInfoTitle": "Tags",
|
|
18
|
+
"tagInfo": "Erstelle Tags, um... na ja... Dinge zu taggen!",
|
|
19
|
+
"pluginInfoTitle": "Plugins",
|
|
20
|
+
"pluginInfo": "Sieh dir deine installierten Plugins an, füge Konfigurationen hinzu oder genieße einfach den Anblick des Tisches",
|
|
21
|
+
"builtInFeaturesTitle": "Integrierte Funktionen",
|
|
22
|
+
"userMenuTitle": "Benutzermenü",
|
|
23
|
+
"userMenuDescription": "Benutzermenü mit Zugriff auf konfigurierte Kompositionen und andere nützliche Funktionen",
|
|
24
|
+
"localizationTitle": "Lokalisierung",
|
|
25
|
+
"localizationDescription": "Mehrsprachige Unterstützung",
|
|
26
|
+
"themingTitle": "Design",
|
|
27
|
+
"themingDescription": "Anpassbare Designs mit Unterstützung für Hell-/Dunkelmodus",
|
|
28
|
+
"notificationsTitle": "Echtzeit-Benachrichtigungen",
|
|
29
|
+
"notificationsDescription": "Socket-basierte Echtzeitkommunikation – sieh dir das Serverstatus-Symbol in der oberen Leiste an",
|
|
30
|
+
"connected": "Verbunden",
|
|
31
|
+
"disconnected": "Getrennt",
|
|
32
|
+
"more_soonTitle": "Weitere Funktionen bald verfügbar!",
|
|
33
|
+
"more_soonDescription": "Wir befinden uns noch in der Beta-Phase, aber liefern bereits! Schau dir unsere Roadmap an",
|
|
34
|
+
"roadmap": "Roadmap auf Gitlab"
|
|
35
|
+
},
|
|
3
36
|
"dataSync": {
|
|
4
37
|
"update": {
|
|
5
38
|
"$docCountOf$docTypeHaveBeenHandled": "{docCount} Dokumente vom Typ {docType} wurden erfolgreich geupdated",
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"core": {
|
|
3
|
+
"welcomeScreen": {
|
|
4
|
+
"title": "Welcome to ",
|
|
5
|
+
"subtitle": "Configure a Landingpage in the Workbench to make this Page disapear! See the InteractionLink Creation/Edit Dialogue for the landingpage toggle",
|
|
6
|
+
"subtitleUser": "Your interface to the cheesy side of things",
|
|
7
|
+
"noLandingPage": "No landing page configured",
|
|
8
|
+
"visitWorkbench": "Visit the Raclette Workbench to configure your portal and set up your preferred landing page.",
|
|
9
|
+
"goToWorkbench": "Open Workbench",
|
|
10
|
+
"configurationsTitle": "What you can configure in the Workbench",
|
|
11
|
+
"compositionInfoTitle": "Compositions",
|
|
12
|
+
"compositionInfo": "Create compositions to define the layout of your pages or modals",
|
|
13
|
+
"interactionLinkInfoTitle": "Interaction Links",
|
|
14
|
+
"interactionLinkInfo": "Create InteractionLinks to define how users can access pages or modals",
|
|
15
|
+
"userInfoTitle": "User Management",
|
|
16
|
+
"userInfo": "Create users so they can use your app and get some cheese!",
|
|
17
|
+
"tagInfoTitle": "Tags",
|
|
18
|
+
"tagInfo": "Create tags to... well... tag things!",
|
|
19
|
+
"pluginInfoTitle": "Plugins",
|
|
20
|
+
"pluginInfo": "Check out your installed plugins, add configurations, or just enjoy the view of the table",
|
|
21
|
+
"builtInFeaturesTitle": "Built-in Features",
|
|
22
|
+
"userMenuTitle": "User Menu",
|
|
23
|
+
"userMenuDescription": "User Menu with access to configured Compositions and other handy functions",
|
|
24
|
+
"localizationTitle": "Localization",
|
|
25
|
+
"localizationDescription": "Multi-language support",
|
|
26
|
+
"themingTitle": "Theming",
|
|
27
|
+
"themingDescription": "Customizable themes with dark/light mode support",
|
|
28
|
+
"notificationsTitle": "Real-time Notifications",
|
|
29
|
+
"notificationsDescription": "Socket-based real-time communication - check the server status icon in the top bar",
|
|
30
|
+
"connected": "Connected",
|
|
31
|
+
"disconnected": "Disconnected",
|
|
32
|
+
"more_soonTitle": "More Features soon!",
|
|
33
|
+
"more_soonDescription": "We are still in Beta but on our way to deliver! Checkout our Roadmap",
|
|
34
|
+
"roadmap": "Roadmap on Gitlab"
|
|
35
|
+
},
|
|
3
36
|
"dataSync": {
|
|
4
37
|
"update": {
|
|
5
38
|
"$docCountOf$docTypeHaveBeenHandled": "{docCount} documents of type {docType} were successfully updated",
|
|
@@ -44,7 +77,7 @@
|
|
|
44
77
|
"clear": "Clear",
|
|
45
78
|
"copyToClipboard$name": "Copy {name} to clipboard",
|
|
46
79
|
"timeAgo": "{time} ago",
|
|
47
|
-
"raclette": "<span class=\"raclette\">
|
|
80
|
+
"raclette": "<span class=\"raclette\">1raclette</span>",
|
|
48
81
|
"error": {
|
|
49
82
|
"404": "Error 404",
|
|
50
83
|
"page_not_foundTitle": "The requested page was not found",
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"core": {
|
|
3
|
+
"welcomeScreen": {
|
|
4
|
+
"title": "Vitajte v ",
|
|
5
|
+
"subtitle": "Nakonfigurujte vstupnú stránku vo Workbench, aby táto stránka zmizla! Pozrite si dialóg na vytváranie/upravenie InteractionLink pre prepínač vstupnej stránky.",
|
|
6
|
+
"subtitleUser": "Vaše rozhranie k syrovej strane vecí",
|
|
7
|
+
"noLandingPage": "Vstupná stránka nie je nakonfigurovaná",
|
|
8
|
+
"visitWorkbench": "Navštívte Raclette Workbench na konfiguráciu vášho portálu a nastavenie preferovanej vstupnej stránky.",
|
|
9
|
+
"goToWorkbench": "Otvoriť Workbench",
|
|
10
|
+
"configurationsTitle": "Čo môžete nakonfigurovať vo Workbench",
|
|
11
|
+
"compositionInfoTitle": "Kompozície",
|
|
12
|
+
"compositionInfo": "Vytvárajte kompozície na definovanie rozloženia vašich stránok alebo modálnych okien",
|
|
13
|
+
"interactionLinkInfoTitle": "Interakčné odkazy",
|
|
14
|
+
"interactionLinkInfo": "Vytvárajte InteractionLinks na definovanie spôsobu, akým môžu používatelia pristupovať k stránkam alebo modálnym oknám",
|
|
15
|
+
"userInfoTitle": "Správa používateľov",
|
|
16
|
+
"userInfo": "Vytvorte používateľov, aby mohli používať vašu aplikáciu a získať trochu syra!",
|
|
17
|
+
"tagInfoTitle": "Tagy",
|
|
18
|
+
"tagInfo": "Vytvárajte tagy na... no... označovanie vecí!",
|
|
19
|
+
"pluginInfoTitle": "Pluginy",
|
|
20
|
+
"pluginInfo": "Pozrite si nainštalované pluginy, pridajte konfigurácie alebo si len užívajte pohľad na stôl",
|
|
21
|
+
"builtInFeaturesTitle": "Vstavané funkcie",
|
|
22
|
+
"userMenuTitle": "Používateľské menu",
|
|
23
|
+
"userMenuDescription": "Používateľské menu s prístupom ku nakonfigurovaným kompozíciám a ďalším užitočným funkciám",
|
|
24
|
+
"localizationTitle": "Lokalizácia",
|
|
25
|
+
"localizationDescription": "Podpora viacerých jazykov",
|
|
26
|
+
"themingTitle": "Témy",
|
|
27
|
+
"themingDescription": "Prispôsobiteľné témy s podporou svetlého/tmavého režimu",
|
|
28
|
+
"notificationsTitle": "Notifikácie v reálnom čase",
|
|
29
|
+
"notificationsDescription": "Komunikácia v reálnom čase cez socket – skontrolujte ikonu stavu servera v hornej lište",
|
|
30
|
+
"connected": "Pripojený",
|
|
31
|
+
"disconnected": "Odpojený",
|
|
32
|
+
"more_soonTitle": "Ďalšie funkcie čoskoro!",
|
|
33
|
+
"more_soonDescription": "Stále sme v beta verzii, ale pracujeme na tom, aby sme doručili! Pozrite si našu cestovnú mapu",
|
|
34
|
+
"roadmap": "Cestovná mapa na Gitlabe"
|
|
35
|
+
},
|
|
3
36
|
"dataSync": {
|
|
4
37
|
"update": {
|
|
5
38
|
"$docCountOf$docTypeHaveBeenHandled": "{docCount} dokumentov typu {docType} bolo úspešne aktualizovaných",
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"core": {
|
|
3
|
+
"welcomeScreen": {
|
|
4
|
+
"title": "Qapla'! yI'el ",
|
|
5
|
+
"subtitle": "WorkbenchDaq Landingpage yI'ogh! vaj Dochvam yItlhej! InteractionLink chenmoHmeH QIn yIlaH.",
|
|
6
|
+
"subtitleUser": "SoHvaD Huch vIghaj – Queso yIchargh!",
|
|
7
|
+
"noLandingPage": "Landingpage tu'lu'be'",
|
|
8
|
+
"visitWorkbench": "WorkbenchDaq yIjaH, portal yIchoH 'ej Du' landingpage yI'ogh.",
|
|
9
|
+
"goToWorkbench": "Workbench yIpoSmoH",
|
|
10
|
+
"configurationsTitle": "WorkbenchDaq bIchenmoHlaHbogh",
|
|
11
|
+
"compositionInfoTitle": "qonwI' mIllogh",
|
|
12
|
+
"compositionInfo": "mIllogh gho'mey yIchenmoH, De' ghoSmeH He' yISeH",
|
|
13
|
+
"interactionLinkInfoTitle": "lo'laHbogh rarwI'",
|
|
14
|
+
"interactionLinkInfo": "lo'wI' page vISuqmeH rarwI' yIchenmoH",
|
|
15
|
+
"userInfoTitle": "lo'wI' SeH",
|
|
16
|
+
"userInfo": "lo'wI' yIchenmoH – vaj app lo'laH 'ej nIb chIS SuvwI' Soj SuqlaH",
|
|
17
|
+
"tagInfoTitle": "tagmey",
|
|
18
|
+
"tagInfo": "Dochmey yItag – qar'a'? yItag neH!",
|
|
19
|
+
"pluginInfoTitle": "nIqHom",
|
|
20
|
+
"pluginInfo": "nIqHommey Datu'pu'bogh yIlegh, yIchoH, pagh neH yIlegh je",
|
|
21
|
+
"builtInFeaturesTitle": "naw'mey wIchenmoHpu'",
|
|
22
|
+
"userMenuTitle": "lo'wI' 'echletHommey",
|
|
23
|
+
"userMenuDescription": "Compositions rarbogh lo'wI' 'echletHommey, QapmeH DuHmey je",
|
|
24
|
+
"localizationTitle": "Holmey",
|
|
25
|
+
"localizationDescription": "latlh Holmey Qutlh",
|
|
26
|
+
"themingTitle": "qIj/wov chutmey",
|
|
27
|
+
"themingDescription": "chutmey DachoHlaH – Hurgh/wov pat Qutlh",
|
|
28
|
+
"notificationsTitle": "DaHjaj QInmey",
|
|
29
|
+
"notificationsDescription": "Socket Qum – De'wI' SeH Hal wIvlu'",
|
|
30
|
+
"connected": "rarlu'",
|
|
31
|
+
"disconnected": "rarlu'be'",
|
|
32
|
+
"more_soonTitle": "latlh naw'mey – cha'logh!",
|
|
33
|
+
"more_soonDescription": "Beta wItaH 'ach wIghoS – Roadmap yIlegh!",
|
|
34
|
+
"roadmap": "GitlabDaq Roadmap"
|
|
35
|
+
},
|
|
3
36
|
"dataSync": {
|
|
4
37
|
"update": {
|
|
5
38
|
"$docCountOf$docTypeHaveBeenHandled": "{docCount} {docType} puS ghItlhmey Qapla’ vI’taH",
|
|
@@ -73,4 +106,4 @@
|
|
|
73
106
|
"color": "ngem",
|
|
74
107
|
"versionUpdate": "veS wov ’oH. paq reload chel pagh SoH Hoch tlhab!"
|
|
75
108
|
}
|
|
76
|
-
}
|
|
109
|
+
}
|